/* * 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 net.brutex.mylyn.sbmconnector.core.SBMRepositoryConnector; 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.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.Label; import org.eclipse.swt.widgets.Text; public class SBMRepositoryQueryPage extends AbstractRepositoryQueryPage { private Combo table = null; 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("table", table.getText()); 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")); Label label = new Label(control, SWT.NONE); label.setText("Table:"); table = new Combo(control, SWT.SINGLE | SWT.BORDER); for(String table_name : SBMRepositoryConnector.getClient(getTaskRepository()).getPrimaryTables()) { table.add(table_name); if(getQuery()!=null && getQuery().getAttribute("table").equals(table_name)) { table.setText(table_name); } } 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(table); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).applyTo(query_title); Dialog.applyDialogFont(control); setControl(control); } }