X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/tableview/TableViewToolBar.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/tableview/TableViewToolBar.java new file mode 100644 index 0000000..cb06fbd --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/tableview/TableViewToolBar.java @@ -0,0 +1,246 @@ +/* + * Created on 28-jul-2003 + * + */ +package com.quantum.view.tableview; + +import com.quantum.Messages; +import com.quantum.QuantumPlugin; +import com.quantum.actions.CloseTableAction; +import com.quantum.actions.RefreshTableAction; +import com.quantum.model.NotConnectedException; +import com.quantum.sql.TableRow; +import com.quantum.util.StringMatrix; +import com.quantum.view.CopyAction; +import com.quantum.wizards.SQLRowWizard; +import com.quantum.wizards.SortFilterPage; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.wizard.WizardDialog; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; + +/** + * @author panic + * + */ +public class TableViewToolBar { + + private ToolBar toolBar; + private RefreshTableAction refreshTableAction; + private CloseTableAction closeTableAction; + private ToolItem previous; + private ToolItem next; + + ToolItem filter; + + public TableViewToolBar( + final TableView view, + final ToolBar toolBar, + final Table table, + final TableAdapter ta, + final Label label) { + + this.toolBar = toolBar; + + refreshTableAction = new RefreshTableAction(); + refreshTableAction.setText(Messages.getString("tableview.refresh")); //$NON-NLS-1$ + refreshTableAction.setImageDescriptor( + QuantumPlugin.getImageDescriptor("refresh.gif")); //$NON-NLS-1$ + refreshTableAction.init(view); + closeTableAction = new CloseTableAction(); + closeTableAction.setText(Messages.getString("tableview.close")); //$NON-NLS-1$ + closeTableAction.setImageDescriptor( + QuantumPlugin.getImageDescriptor("close.gif")); //$NON-NLS-1$ + closeTableAction.init(view); + + ToolItem toolItem = new ToolItem(toolBar, SWT.PUSH); + toolItem.setImage(QuantumPlugin.getImage("refresh.gif")); //$NON-NLS-1$ + toolItem.setToolTipText(Messages.getString("tableview.refresh")); //$NON-NLS-1$ + toolItem.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + refreshTableAction.run(); + } + }); + + final Action copyAction = new CopyAction(view, table); + final Action selectAllAction = new Action() { + public void run() { + table.selectAll(); + } + }; + toolItem = new ToolItem(toolBar, SWT.PUSH); + toolItem.setImage(QuantumPlugin.getImage("copy.gif")); //$NON-NLS-1$ + toolItem.setToolTipText(Messages.getString("tableview.copy")); //$NON-NLS-1$ + toolItem.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + copyAction.run(); + } + }); + toolItem = new ToolItem(toolBar, SWT.PUSH); + toolItem.setImage(QuantumPlugin.getImage("table.gif")); //$NON-NLS-1$ + toolItem.setToolTipText(Messages.getString("tableview.selectAll")); //$NON-NLS-1$ + toolItem.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + selectAllAction.run(); + } + }); + + filter = new ToolItem(toolBar, SWT.PUSH); + filter.setImage(QuantumPlugin.getImage("filter.gif")); //$NON-NLS-1$ + filter.setToolTipText(Messages.getString("tableview.filterSort")); //$NON-NLS-1$ + + toolItem = new ToolItem(toolBar, SWT.SEPARATOR); + + final ToolItem fullMode = new ToolItem(toolBar, SWT.PUSH | SWT.CHECK); + + previous = new ToolItem(toolBar, SWT.PUSH); + next = new ToolItem(toolBar, SWT.PUSH); + + fullMode.setImage(QuantumPlugin.getImage("fulldata.gif")); //$NON-NLS-1$ + fullMode.setToolTipText(Messages.getString("tableview.showAll")); //$NON-NLS-1$ + fullMode.setSelection(false); + fullMode.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent event) { + try { + if (ta.getPageSize() == Integer.MAX_VALUE) { + ta.resetMode(); + } else { + ta.fullMode(); + } + ta.loadData(); + table.removeAll(); + for (int i = table.getColumnCount() - 1; i >= 0; i--) { + table.getColumn(i).dispose(); + } + ta.loadTable(table); + label.setText(ta.getStatusString()); + previous.setEnabled(ta.hasPreviousPage()); + next.setEnabled(ta.hasNextPage()); + } catch (NotConnectedException e) { + view.handleException(e); + } + } + }); + previous.setImage(QuantumPlugin.getImage("previous.gif")); //$NON-NLS-1$ + previous.setToolTipText("Previous"); //$NON-NLS-1$ + previous.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent event) { + try { + ta.previousPage(); + ta.loadData(); + table.removeAll(); + for (int i = table.getColumnCount() - 1; i >= 0; i--) { + table.getColumn(i).dispose(); + } + ta.loadTable(table); + label.setText(ta.getStatusString()); + previous.setEnabled(ta.hasPreviousPage()); + next.setEnabled(ta.hasNextPage()); + } catch (NotConnectedException e) { + view.handleException(e); + } + } + }); + next.setImage(QuantumPlugin.getImage("next.gif")); //$NON-NLS-1$ + next.setToolTipText("Next"); //$NON-NLS-1$ + next.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent event) { + try { + ta.nextPage(); + ta.loadData(); + table.removeAll(); + for (int i = table.getColumnCount() - 1; i >= 0; i--) { + table.getColumn(i).dispose(); + } + ta.loadTable(table); + label.setText(ta.getStatusString()); + previous.setEnabled(ta.hasPreviousPage()); + next.setEnabled(ta.hasNextPage()); + } catch (NotConnectedException e) { + view.handleException(e); + } + } + }); + + toolItem = new ToolItem(toolBar, SWT.SEPARATOR); + + toolItem = new ToolItem(toolBar, SWT.PUSH); + toolItem.setImage(QuantumPlugin.getImage("close.gif")); //$NON-NLS-1$ + toolItem.setToolTipText(Messages.getString("tableview.close")); //$NON-NLS-1$ + toolItem.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + closeTableAction.run(); + } + }); + + } + + public void setColumns( final TableView view, final TableAdapter ta, Table table) { + + // We create a matrix of TableColumn (columns in the Table widget) with + // the columns in the table object + TableColumn[] columns = table.getColumns(); + String columnNames[] = new String[columns.length]; + for (int i = 0; i < columns.length; i++) { + columnNames[i] = columns[i].getText(); + } + // Copy in data the values of the data columns of the selected rows + StringMatrix data = new StringMatrix(); + data.addMatrixHeader(columnNames); + // Create dummy values in case nothing selected + for (int i = 0; i < columns.length; i++) { + data.addAt(columnNames[i], "", 0); //$NON-NLS-1$ + } + final TableRow emptyRow = new TableRow(ta.getEntity(), ta.getBookmark(), ta.getTable(), data); + + filter.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + SortFilterPage page = new SortFilterPage(""); //$NON-NLS-1$ + SQLRowWizard wizard = new SQLRowWizard(); + wizard.init(Messages.getString("TableView.FilterAndSort"), page, emptyRow, ta); //$NON-NLS-1$ + WizardDialog dialog = new WizardDialog(view.getSite().getShell(), wizard); + dialog.open(); + } + }); + } + + + + /** + * @return + */ + public ToolItem getNext() { + return next; + } + + /** + * @return + */ + public ToolItem getPrevious() { + return previous; + } + +}