/* * Mylyn Connector for Serena Business Mashups * Copyright 2010 Brian Rosenberger (Brutex Network) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Serena, TeamTrack and Serena Business Mashup are * registered trademarks of SERENA Software Inc. */ package net.brutex.mylyn.sbmconnector.ui; import java.awt.Color; import net.brutex.mylyn.sbmconnector.core.SBMRepositoryConnector; import net.brutex.mylyn.sbmconnector.core.model.SBMField; import net.brutex.mylyn.sbmconnector.core.model.SBMSystemFields; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.mylyn.tasks.core.IRepositoryQuery; import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositoryQueryPage; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Widget; public class SBMRepositoryQueryPage extends AbstractRepositoryQueryPage { private Text sql_where_clause = null; private Text query_title = null; public SBMRepositoryQueryPage(String pageName, TaskRepository repository, IRepositoryQuery query) { super(pageName, repository, query); setTitle("SBM Query"); setDescription("Please specify table database name."); } @Override public void applyTo(IRepositoryQuery query) { if (getQueryTitle() != null) { query.setSummary(getQueryTitle()); } query.setAttribute("sql_where", sql_where_clause.getText()); query.setAttribute("name", query_title.getText()); } @Override public String getQueryTitle() { if (query_title != null && !query_title.getText().isEmpty()) return query_title.getText(); return "new query"; } @Override public void createControl(Composite arg0) { Composite control = new Composite(arg0, SWT.BORDER); control.setLayout(new GridLayout(2, false)); Label query_label = new Label(control, SWT.NONE); query_label.setText("Query Name:"); query_title = new Text(control, SWT.BORDER); if (getQuery() != null) query_title.setText(getQuery().getAttribute("name")); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.heightHint = 200; Label label_sql = new Label(control, SWT.NONE); label_sql.setText("SQL where:"); sql_where_clause = new Text(control, SWT.MULTI | SWT.WRAP | SWT.V_SCROLL | SWT.BORDER); GridData gd = new GridData(300, 150); gd.horizontalSpan = 2; sql_where_clause.setLayoutData(gd); if (getQuery() != null) sql_where_clause.setText(getQuery().getAttribute("sql_where")); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).applyTo( query_title); Dialog.applyDialogFont(control); setControl(control); } }