X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/view/TableView.java b/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/view/TableView.java index 97c351f..d0048a5 100644 --- a/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/view/TableView.java +++ b/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/view/TableView.java @@ -1,7 +1,5 @@ package net.sourceforge.phpdt.sql.view; -import net.sourceforge.phpdt.sql.PHPEclipseSQLPlugin; - import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuListener; import org.eclipse.jface.action.IMenuManager; @@ -30,410 +28,403 @@ import org.eclipse.ui.ISelectionListener; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.part.ViewPart; +import net.sourceforge.phpdt.sql.Messages; +import net.sourceforge.phpdt.sql.PHPEclipseSQLPlugin; import net.sourceforge.phpdt.sql.actions.CloseTableAction; import net.sourceforge.phpdt.sql.actions.RefreshTableAction; import net.sourceforge.phpdt.sql.sql.SQLResults; import net.sourceforge.phpdt.sql.sql.TableRow; +import net.sourceforge.phpdt.sql.view.bookmark.BookmarkNode; import net.sourceforge.phpdt.sql.view.tableview.TableAdapter; import net.sourceforge.phpdt.sql.wizards.DeleteRowPage; import net.sourceforge.phpdt.sql.wizards.InsertRowPage; -import net.sourceforge.phpdt.sql.wizards.PHPSelectRowPage; import net.sourceforge.phpdt.sql.wizards.SQLRowWizard; import net.sourceforge.phpdt.sql.wizards.SortFilterPage; import net.sourceforge.phpdt.sql.wizards.UpdateRowPage; -import net.sourceforge.phpdt.sql.wizards.PHPSelectRowPage; public class TableView extends ViewPart implements ISelectionListener { - public static String TABLEVIEW_ID = "net.sourceforge.phpdt.sql.view.tableview"; - private Clipboard clip; - private RefreshTableAction refreshTableAction; - private CloseTableAction closeTableAction; - private static TableView instance = null; - private TabFolder tabs; - private Composite parent; - public TableView() { - super(); - } - public void setFocus() { - } - public static TableView getInstance() { - return instance; - } - public void closeCurrent() { - TabItem item = tabs.getItem(tabs.getSelectionIndex()); - item.dispose(); - } - public void refreshCurrent() { - TabItem item = tabs.getItem(tabs.getSelectionIndex()); - TableAdapter adapter = (TableAdapter) item.getData(); - String table = adapter.getTable(); - if (table == null) { - loadTable(item, null, null, true, true); - } else { - loadTable(item, null, null, true, true); - } - } - public void loadQuery(SQLResults results) { - loadTable(null, null, results, true, false); - } - public void loadTable(String table) { - loadTable(null, table, null, false, true); - } - public void loadTable( - TabItem tabItem, - String entity, - SQLResults results, - boolean query, - boolean reload) { - TableAdapter adapter; - if (tabItem == null) { - tabItem = new TabItem(tabs, SWT.NONE); - if (query) { - adapter = TableAdapter.createFromQuery(results); - } else { - adapter = TableAdapter.createFromTable(entity); - } - tabItem.setData(adapter); - } else { - adapter = (TableAdapter) tabItem.getData(); - } - - final TableAdapter ta = adapter; - - Composite main = new Composite(tabs, SWT.NONE); - GridLayout layout = new GridLayout(1, false); - layout.horizontalSpacing = 0; - layout.verticalSpacing = 0; - main.setLayout(layout); - - // load up main - ToolBar toolbar = new ToolBar(main, SWT.HORIZONTAL); - final Table table = new Table(main, SWT.FULL_SELECTION | SWT.MULTI); - final Label label = new Label(main, SWT.NULL); - - final Action copyAction = new Action() { - public void run() { - TableItem items[] = table.getSelection(); - StringBuffer text = new StringBuffer(); - for (int i = 0; i < items.length; i++) { - int columns = table.getColumnCount(); - for (int col = 0; col < columns; col++) { - text.append(items[i].getText(col)); - text.append('\t'); - } - text.append('\n'); - } - clip.setContents( - new Object[] { text.toString()}, - new Transfer[] { TextTransfer.getInstance()}); - } - }; - final Action selectAllAction = new Action() { - public void run() { - table.selectAll(); - } - }; - - // load toobar - ToolItem toolItem = new ToolItem(toolbar, SWT.PUSH); - toolItem.setImage(PHPEclipseSQLPlugin.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(); - } - }); - toolItem = new ToolItem(toolbar, SWT.PUSH); - toolItem.setImage(PHPEclipseSQLPlugin.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(PHPEclipseSQLPlugin.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(); - } - }); + private Clipboard clip; + private RefreshTableAction refreshTableAction; + private CloseTableAction closeTableAction; + private static TableView instance = null; + private TabFolder tabs; + private Composite parent; + public TableView() { + super(); + } + public void setFocus() { + } + public static TableView getInstance() { + return instance; + } + public void closeCurrent() { + TabItem item = tabs.getItem(tabs.getSelectionIndex()); + item.dispose(); + } + public void refreshCurrent() { + TabItem item = tabs.getItem(tabs.getSelectionIndex()); + TableAdapter adapter = (TableAdapter) item.getData(); + BookmarkView bookmarkView = BookmarkView.getInstance(); + BookmarkNode bookmark = bookmarkView.getCurrentBookmark(); + String table = adapter.getTable(); + if (table == null) { + loadTable(bookmark, item, null, null, true, true); + } else { + loadTable(bookmark, item, null, null, true, true); + } + } + public void loadQuery(BookmarkNode bookmark, SQLResults results) { + loadTable(bookmark, null, null, results, true, false); + } + public void loadTable(BookmarkNode bookmark, String table) { + loadTable(bookmark, null, table, null, false, true); + } + public void loadTable(BookmarkNode bookmark, TabItem tabItem, String entity, SQLResults results, boolean query, boolean reload) { + TableAdapter adapter; + if (tabItem == null) { + tabItem = new TabItem(tabs, SWT.NONE); + if (query) { + adapter = TableAdapter.createFromQuery(bookmark, results); + } else { + adapter = TableAdapter.createFromTable(bookmark, entity); + } + tabItem.setData(adapter); + } else { + adapter = (TableAdapter) tabItem.getData(); + } - ToolItem filter = new ToolItem(toolbar, SWT.PUSH); - filter.setImage(PHPEclipseSQLPlugin.getImage("filter.gif")); //$NON-NLS-1$ - filter.setToolTipText(Messages.getString("tableview.filterSort")); //$NON-NLS-1$ + final TableAdapter ta = adapter; + + Composite main = new Composite(tabs, SWT.NONE); + GridLayout layout = new GridLayout(1, false); + layout.horizontalSpacing = 0; + layout.verticalSpacing = 0; + main.setLayout(layout); - toolItem = new ToolItem(toolbar, SWT.SEPARATOR); + // load up main + ToolBar toolbar = new ToolBar(main, SWT.HORIZONTAL); + final Table table = new Table(main, SWT.FULL_SELECTION | SWT.MULTI); + final Label label = new Label(main, SWT.NULL); - final ToolItem fullMode = new ToolItem(toolbar, SWT.PUSH | SWT.CHECK); + final Action copyAction = new Action() { + public void run() { + TableItem items[] = table.getSelection(); + StringBuffer text = new StringBuffer(); + for (int i = 0; i < items.length; i++) { + int columns = table.getColumnCount(); + for (int col = 0; col < columns; col++) { + text.append(items[i].getText(col)); + text.append('\t'); + } + text.append('\n'); + } + clip.setContents( + new Object[] { text.toString()}, + new Transfer[] { TextTransfer.getInstance()}); + } + }; + final Action selectAllAction = new Action() { + public void run() { + table.selectAll(); + } + }; - final ToolItem previous = new ToolItem(toolbar, SWT.PUSH); - final ToolItem next = new ToolItem(toolbar, SWT.PUSH); + // load toobar + ToolItem toolItem = new ToolItem(toolbar, SWT.PUSH); + toolItem.setImage(PHPEclipseSQLPlugin.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(); + } + }); + toolItem = new ToolItem(toolbar, SWT.PUSH); + toolItem.setImage(PHPEclipseSQLPlugin.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(PHPEclipseSQLPlugin.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(); + } + }); - fullMode.setImage(PHPEclipseSQLPlugin.getImage("fulldata.gif")); - 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 e) { - 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()); - } - }); - previous.setImage(PHPEclipseSQLPlugin.getImage("previous.gif")); - previous.setToolTipText("Previous"); - previous.addSelectionListener(new SelectionListener() { - public void widgetDefaultSelected(SelectionEvent e) { - } - public void widgetSelected(SelectionEvent e) { - 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()); - } - }); - next.setImage(PHPEclipseSQLPlugin.getImage("next.gif")); - next.setToolTipText("Next"); - next.addSelectionListener(new SelectionListener() { - public void widgetDefaultSelected(SelectionEvent e) { - } - public void widgetSelected(SelectionEvent e) { - 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()); - } - }); + ToolItem filter = new ToolItem(toolbar, SWT.PUSH); + filter.setImage(PHPEclipseSQLPlugin.getImage("filter.gif")); //$NON-NLS-1$ + filter.setToolTipText(Messages.getString("tableview.filterSort")); //$NON-NLS-1$ - toolItem = new ToolItem(toolbar, SWT.SEPARATOR); + toolItem = new ToolItem(toolbar, SWT.SEPARATOR); - toolItem = new ToolItem(toolbar, SWT.PUSH); - toolItem.setImage(PHPEclipseSQLPlugin.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(); - } - }); + final ToolItem fullMode = new ToolItem(toolbar, SWT.PUSH | SWT.CHECK); - // load table - if (reload) { - adapter.resetOffset(); - adapter.loadData(); - } - adapter.loadTable(table); - String tableName = adapter.getTable(); - if (tableName != null) { - tabItem.setText(tableName); - } else { - tabItem.setText(adapter.getQuery()); - } + final ToolItem previous = new ToolItem(toolbar, SWT.PUSH); + final ToolItem next = new ToolItem(toolbar, SWT.PUSH); - previous.setEnabled(adapter.hasPreviousPage()); - next.setEnabled(adapter.hasNextPage()); - label.setText(ta.getStatusString()); + fullMode.setImage(PHPEclipseSQLPlugin.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 e) { + 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()); + } + }); + previous.setImage(PHPEclipseSQLPlugin.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 e) { + 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()); + } + }); + next.setImage(PHPEclipseSQLPlugin.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 e) { + 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()); + } + }); - GridData gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.verticalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace = true; - gridData.grabExcessVerticalSpace = true; - table.setLayoutData(gridData); + toolItem = new ToolItem(toolbar, SWT.SEPARATOR); - gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - label.setLayoutData(gridData); + toolItem = new ToolItem(toolbar, SWT.PUSH); + toolItem.setImage(PHPEclipseSQLPlugin.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(); + } + }); - // create empty table row - TableColumn[] columns = table.getColumns(); - String columnNames[] = new String[columns.length]; - for (int i = 0; i < columns.length; i++) { - columnNames[i] = columns[i].getText(); - } - String data[] = new String[columnNames.length]; - for (int i = 0; i < columns.length; i++) { - data[i] = ""; - } - final TableRow emptyRow = new TableRow(ta.getTable(), columnNames, data); + // load table + if (reload) { + adapter.resetOffset(); + adapter.loadData(); + } + adapter.loadTable(table); + String tableName = adapter.getTable(); + if (tableName != null) { + tabItem.setText(tableName); + } else { + tabItem.setText(adapter.getQuery()); + } - filter.addSelectionListener(new SelectionListener() { - public void widgetDefaultSelected(SelectionEvent e) { - } - public void widgetSelected(SelectionEvent e) { - SortFilterPage page = new SortFilterPage(""); - SQLRowWizard wizard = new SQLRowWizard(); - wizard.init("Filter and Sort", page, emptyRow, ta); - WizardDialog dialog = new WizardDialog(getSite().getShell(), wizard); - dialog.open(); - } - }); + previous.setEnabled(adapter.hasPreviousPage()); + next.setEnabled(adapter.hasNextPage()); + label.setText(ta.getStatusString()); + + GridData gridData = new GridData(); + gridData.horizontalAlignment = GridData.FILL; + gridData.verticalAlignment = GridData.FILL; + gridData.grabExcessHorizontalSpace = true; + gridData.grabExcessVerticalSpace = true; + table.setLayoutData(gridData); - final Action defaultEncodingAction = new Action() { - public void run() { - ta.setEncoding(TableAdapter.DEFAULT); - } - }; - defaultEncodingAction.setText(Messages.getString("tableview.defaultEncoding")); //$NON-NLS-1$ - final Action UTF8EncodingAction = new Action() { - public void run() { - ta.setEncoding(TableAdapter.UTF_8); - } - }; - UTF8EncodingAction.setText(Messages.getString("tableview.UTF8Encoding")); //$NON-NLS-1$ - final Action UTF16EncodingAction = new Action() { - public void run() { - ta.setEncoding(TableAdapter.UTF_16); - } - }; - UTF16EncodingAction.setText(Messages.getString("tableview.UTF16Encoding")); //$NON-NLS-1$ + gridData = new GridData(); + gridData.horizontalAlignment = GridData.FILL; + label.setLayoutData(gridData); - IMenuListener menuListener = new IMenuListener() { - public void menuAboutToShow(IMenuManager mgr) { - if (ta.getTable() != null) { - TableItem[] selection = table.getSelection(); - TableColumn[] columns = table.getColumns(); - String columnNames[] = new String[columns.length]; - for (int i = 0; i < columns.length; i++) { - columnNames[i] = columns[i].getText(); - } - String data[] = new String[columnNames.length]; - if (selection != null && selection.length > 0) { - TableItem sel = selection[0]; - for (int i = 0; i < columns.length; i++) { - data[i] = sel.getText(i); - } - } else { - for (int i = 0; i < columns.length; i++) { - data[i] = ""; - } - } - final TableRow row = new TableRow(ta.getTable(), columnNames, data); - Action updateAction = new Action() { - public void run() { - UpdateRowPage page = new UpdateRowPage(""); - SQLRowWizard wizard = new SQLRowWizard(); - wizard.init("Update Row", page, row, ta); - WizardDialog dialog = - new WizardDialog(getSite().getShell(), wizard); - dialog.open(); - } - }; - updateAction.setText(Messages.getString("tableview.update")); //$NON-NLS-1$ - Action insertAction = new Action() { - public void run() { - InsertRowPage page = new InsertRowPage(""); - SQLRowWizard wizard = new SQLRowWizard(); - wizard.init("Insert Row", page, row, ta); - WizardDialog dialog = - new WizardDialog(getSite().getShell(), wizard); - dialog.open(); - } - }; - insertAction.setText(Messages.getString("tableview.insert")); //$NON-NLS-1$ - Action deleteAction = new Action() { - public void run() { - DeleteRowPage page = new DeleteRowPage(""); - SQLRowWizard wizard = new SQLRowWizard(); - wizard.init("Delete Row", page, row, ta); - WizardDialog dialog = - new WizardDialog(getSite().getShell(), wizard); - dialog.open(); - } - }; - deleteAction.setText(Messages.getString("tableview.delete")); //$NON-NLS-1$ + // create empty table row + TableColumn[] columns = table.getColumns(); + String columnNames[] = new String[columns.length]; + for (int i = 0; i < columns.length; i++) { + columnNames[i] = columns[i].getText(); + } + String data[] = new String[columnNames.length]; + for (int i = 0; i < columns.length; i++) { + data[i] = ""; //$NON-NLS-1$ + } + + final TableRow emptyRow = + new TableRow(ta.getBookmark(), ta.getTable(), columnNames, 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( + getSite().getShell(), + wizard); + dialog.open(); + } + }); - Action phpSelectAction = new Action() { - public void run() { - PHPSelectRowPage page = new PHPSelectRowPage(""); - SQLRowWizard wizard = new SQLRowWizard(); - wizard.init("PHP Select Generation", page, row, ta); - WizardDialog dialog = - new WizardDialog(getSite().getShell(), wizard); - dialog.open(); - } - }; - phpSelectAction.setText(Messages.getString("tableview.phpselect")); //$NON-NLS-1$ - mgr.add(phpSelectAction); - - mgr.add(insertAction); - mgr.add(updateAction); - mgr.add(deleteAction); - - - } - mgr.add(defaultEncodingAction); - mgr.add(UTF8EncodingAction); - mgr.add(UTF16EncodingAction); - } - }; + final Action defaultEncodingAction = new Action() { + public void run() { + ta.setEncoding(TableAdapter.DEFAULT); + } + }; + defaultEncodingAction.setText(Messages.getString("tableview.defaultEncoding")); //$NON-NLS-1$ + final Action UTF8EncodingAction = new Action() { + public void run() { + ta.setEncoding(TableAdapter.UTF_8); + } + }; + UTF8EncodingAction.setText(Messages.getString("tableview.UTF8Encoding")); //$NON-NLS-1$ + final Action UTF16EncodingAction = new Action() { + public void run() { + ta.setEncoding(TableAdapter.UTF_16); + } + }; + UTF16EncodingAction.setText(Messages.getString("tableview.UTF16Encoding")); //$NON-NLS-1$ - // final setup - MenuManager manager = new MenuManager(); - manager.setRemoveAllWhenShown(true); - Menu fTextContextMenu = manager.createContextMenu(table); - table.setMenu(fTextContextMenu); - table.setLinesVisible(true); - manager.addMenuListener(menuListener); + IMenuListener menuListener = new IMenuListener() { + public void menuAboutToShow(IMenuManager mgr) { + if (ta.getTable() != null) { + TableItem[] selection = table.getSelection(); + TableColumn[] columns = table.getColumns(); + String columnNames[] = new String[columns.length]; + for (int i = 0; i < columns.length; i++) { + columnNames[i] = columns[i].getText(); + } + String data[] = new String[columnNames.length]; + if (selection != null && selection.length > 0) { + TableItem sel = selection[0]; + for (int i = 0; i < columns.length; i++) { + data[i] = sel.getText(i); + } + } else { + for (int i = 0; i < columns.length; i++) { + data[i] = ""; //$NON-NLS-1$ + } + } + final TableRow row = + new TableRow(ta.getBookmark(), ta.getTable(), columnNames, data); + Action updateAction = new Action() { + public void run() { + UpdateRowPage page = new UpdateRowPage(""); //$NON-NLS-1$ + SQLRowWizard wizard = new SQLRowWizard(); + wizard.init(Messages.getString("TableView.UpdateRow"), page, row, ta); //$NON-NLS-1$ + WizardDialog dialog = + new WizardDialog( + getSite().getShell(), + wizard); + dialog.open(); + } + }; + updateAction.setText(Messages.getString("tableview.update")); //$NON-NLS-1$ + Action insertAction = new Action() { + public void run() { + InsertRowPage page = new InsertRowPage(""); //$NON-NLS-1$ + SQLRowWizard wizard = new SQLRowWizard(); + wizard.init(Messages.getString("TableView.InsertRow"), page, row, ta); //$NON-NLS-1$ + WizardDialog dialog = + new WizardDialog( + getSite().getShell(), + wizard); + dialog.open(); + } + }; + insertAction.setText(Messages.getString("tableview.insert")); //$NON-NLS-1$ + Action deleteAction = new Action() { + public void run() { + DeleteRowPage page = new DeleteRowPage(""); //$NON-NLS-1$ + SQLRowWizard wizard = new SQLRowWizard(); + wizard.init(Messages.getString("TableView.DeleteRow"), page, row, ta); //$NON-NLS-1$ + WizardDialog dialog = + new WizardDialog( + getSite().getShell(), + wizard); + dialog.open(); + } + }; + deleteAction.setText(Messages.getString("tableview.delete")); //$NON-NLS-1$ + mgr.add(insertAction); + mgr.add(updateAction); + mgr.add(deleteAction); + } + mgr.add(defaultEncodingAction); + mgr.add(UTF8EncodingAction); + mgr.add(UTF16EncodingAction); + } + }; - tabItem.setControl(main); - tabs.setSelection(tabs.indexOf(tabItem)); - } + // final setup + MenuManager manager = new MenuManager(); + manager.setRemoveAllWhenShown(true); + Menu fTextContextMenu = manager.createContextMenu(table); + table.setMenu(fTextContextMenu); + table.setLinesVisible(true); + manager.addMenuListener(menuListener); + + tabItem.setControl(main); + tabs.setSelection(tabs.indexOf(tabItem)); + } - public void createPartControl(Composite parent) { - instance = this; - this.parent = parent; - initActions(); - clip = new Clipboard(getSite().getShell().getDisplay()); - tabs = new TabFolder(parent, SWT.NONE); - } - public void initActions() { - refreshTableAction = new RefreshTableAction(); - refreshTableAction.setText(Messages.getString("tableview.refresh")); - refreshTableAction.setImageDescriptor( - PHPEclipseSQLPlugin.getImageDescriptor("refresh.gif")); - refreshTableAction.init(this); - closeTableAction = new CloseTableAction(); - closeTableAction.setText(Messages.getString("tableview.close")); - closeTableAction.setImageDescriptor( - PHPEclipseSQLPlugin.getImageDescriptor("close.gif")); - closeTableAction.init(this); - } + public void createPartControl(Composite parent) { + instance = this; + this.parent = parent; + initActions(); + clip = new Clipboard(getSite().getShell().getDisplay()); + tabs = new TabFolder(parent, SWT.NONE); + } + public void initActions() { + refreshTableAction = new RefreshTableAction(); + refreshTableAction.setText(Messages.getString("tableview.refresh")); //$NON-NLS-1$ + refreshTableAction.setImageDescriptor( + PHPEclipseSQLPlugin.getImageDescriptor("refresh.gif")); //$NON-NLS-1$ + refreshTableAction.init(this); + closeTableAction = new CloseTableAction(); + closeTableAction.setText(Messages.getString("tableview.close")); //$NON-NLS-1$ + closeTableAction.setImageDescriptor( + PHPEclipseSQLPlugin.getImageDescriptor("close.gif")); //$NON-NLS-1$ + closeTableAction.init(this); + } - public void selectionChanged(IWorkbenchPart part, ISelection selection) { - } + public void selectionChanged(IWorkbenchPart part, ISelection selection) { + } } \ No newline at end of file