use of net.sourceforge.sqlexplorer.history.SQLHistoryElement in project tdq-studio-se by Talend.
the class SQLHistoryView method createPartControl.
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
public void createPartControl(final Composite parent) {
// MOD gdbu 2011-4-29 bug : 20960
SQLHistory tem_history = SQLExplorerPlugin.getDefault().getSQLHistory();
final SQLHistory history = tem_history == null ? new SQLHistory() : tem_history;
// ~20960
history.sort(1, SWT.DOWN);
// $NON-NLS-1$
PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, SQLExplorerPlugin.PLUGIN_ID + ".SQLHistoryView");
history.addListener(this);
Composite composite = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout();
layout.numColumns = 1;
layout.marginLeft = 0;
layout.horizontalSpacing = 0;
layout.verticalSpacing = 2;
layout.marginWidth = 0;
layout.marginHeight = 0;
composite.setLayout(layout);
composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
// add search box
_searchBox = new Text(composite, SWT.BORDER);
_searchBox.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
// $NON-NLS-1$
_searchBox.setText(Messages.getString("SQLHistoryView.SearchText"));
_searchBox.selectAll();
SQLHistorySearchListener searchListener = new SQLHistorySearchListener(history);
_searchBox.addModifyListener(searchListener);
_searchBox.addMouseListener(new MouseAdapter() {
public void mouseDown(MouseEvent e) {
Text searchbox = (Text) e.widget;
if (searchbox.getText() != null && searchbox.getText().equals(Messages.getString("SQLHistoryView.SearchText"))) {
searchbox.setText("");
}
}
});
_tableViewer = new TableViewer(composite, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI | SWT.VIRTUAL);
getSite().setSelectionProvider(_tableViewer);
_table = _tableViewer.getTable();
_table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
_table.setHeaderVisible(true);
_table.setLinesVisible(true);
_table.setItemCount(history.getEntryCount());
_tableViewer.setLabelProvider(new SQLHistoryLabelProvider());
_tableViewer.setContentProvider(new IStructuredContentProvider() {
public void dispose() {
}
public Object[] getElements(Object inputElement) {
return SQLExplorerPlugin.getDefault().getSQLHistory().toArray();
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
});
_tableViewer.setInput(history);
// create listener for sorting
Listener sortListener = new Listener() {
public void handleEvent(Event e) {
// determine new sort column and direction
TableColumn sortColumn = _table.getSortColumn();
TableColumn currentColumn = (TableColumn) e.widget;
int dir = _table.getSortDirection();
if (sortColumn == currentColumn) {
dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;
} else {
_table.setSortColumn(currentColumn);
dir = SWT.UP;
}
sortColumn = _table.getSortColumn();
TableColumn[] cols = _table.getColumns();
for (int i = 0; i < cols.length; i++) {
if (cols[i] == sortColumn) {
history.sort(i, dir);
break;
}
}
// update data displayed in table
_table.setSortDirection(dir);
_tableViewer.refresh();
}
};
String[] columnLabels = new String[] { Messages.getString("SQLHistoryView.Column.SQL"), Messages.getString("SQLHistoryView.Column.Time"), Messages.getString("SQLHistoryView.Column.Connection"), Messages.getString("SQLHistoryView.Column.Executions") };
_tableViewer.setColumnProperties(columnLabels);
// add all column headers to our table
for (int i = 0; i < columnLabels.length; i++) {
// add column header
TableColumn column = new TableColumn(_table, SWT.LEFT);
column.setText(columnLabels[i]);
column.setMoveable(false);
column.setResizable(true);
column.addListener(SWT.Selection, sortListener);
}
_tableViewer.refresh();
// add sizing weights to the different columns
TableLayout tableLayout = new TableLayout();
tableLayout.addColumnData(new ColumnWeightData(7, 150));
tableLayout.addColumnData(new ColumnWeightData(2, 120));
tableLayout.addColumnData(new ColumnWeightData(1, 50));
tableLayout.addColumnData(new ColumnWeightData(1, 50));
_table.setLayout(tableLayout);
_table.layout();
// redraw table if view is resized
parent.addControlListener(new ControlAdapter() {
public void controlResized(ControlEvent e) {
super.controlResized(e);
// reset weights in case of view resizing
TableLayout tableLayout = new TableLayout();
tableLayout.addColumnData(new ColumnWeightData(7, 150));
tableLayout.addColumnData(new ColumnWeightData(2, 120));
tableLayout.addColumnData(new ColumnWeightData(1, 50));
tableLayout.addColumnData(new ColumnWeightData(1, 50));
_table.setLayout(tableLayout);
}
});
// create action bar
final IToolBarManager toolBarMgr = getViewSite().getActionBars().getToolBarManager();
final SQLHistoryActionGroup actionGroup = new SQLHistoryActionGroup(this, history, _tableViewer, toolBarMgr);
_tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
actionGroup.refresh();
toolBarMgr.update(true);
}
});
// add context menus
final MenuManager menuMgr = new MenuManager("#HistoryPopupMenu");
menuMgr.setRemoveAllWhenShown(true);
Menu historyContextMenu = menuMgr.createContextMenu(_table);
_table.setMenu(historyContextMenu);
menuMgr.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
toolBarMgr.markDirty();
actionGroup.fillContextMenu(manager);
}
});
// also add action as default when an entry is doubleclicked.
final OpenInEditorAction openInEditorAction = new OpenInEditorAction();
openInEditorAction.setTableViewer(_tableViewer);
openInEditorAction.setView(this);
_tableViewer.addDoubleClickListener(new IDoubleClickListener() {
public void doubleClick(DoubleClickEvent event) {
openInEditorAction.run();
}
});
// add remove action on delete key
final RemoveFromHistoryAction removeFromHistoryAction = new RemoveFromHistoryAction();
removeFromHistoryAction.setTableViewer(_tableViewer);
_table.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
// delete entry
if (e.keyCode == SWT.DEL) {
removeFromHistoryAction.run();
}
}
});
// Set multi-line tooltip
final Display display = parent.getDisplay();
_tipShell = new Shell(parent.getShell(), SWT.ON_TOP);
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 2;
gridLayout.marginWidth = 2;
gridLayout.marginHeight = 2;
_tipShell.setLayout(gridLayout);
_tipShell.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
_tipLabelText = new Label(_tipShell, SWT.WRAP | SWT.LEFT);
_tipLabelText.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
_tipLabelText.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
_tipLabelText.setLayoutData(gridData);
_table.addMouseListener(new MouseAdapter() {
public void mouseDown(MouseEvent e) {
if (_tipShell.isVisible()) {
_tipShell.setVisible(false);
_tipWidget = null;
}
}
});
_table.addMouseTrackListener(new MouseTrackAdapter() {
public void mouseExit(MouseEvent e) {
if (_tipShell.isVisible())
_tipShell.setVisible(false);
_tipWidget = null;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.events.MouseTrackListener#mouseHover(org.eclipse.swt.events.MouseEvent)
*/
public void mouseHover(MouseEvent event) {
Point pt = new Point(event.x, event.y);
Widget widget = event.widget;
TableItem tableItem = null;
if (widget instanceof Table) {
Table table = (Table) widget;
widget = table.getItem(pt);
}
if (widget instanceof TableItem) {
tableItem = (TableItem) widget;
}
if (widget == null) {
_tipShell.setVisible(false);
_tipWidget = null;
return;
}
if (widget == _tipWidget)
return;
_tipWidget = widget;
_tipPosition = _table.toDisplay(pt);
SQLHistoryElement sqlString = (SQLHistoryElement) tableItem.getData();
String text = TextUtil.getWrappedText(sqlString.getRawSQLString());
if (text == null || text.equals("")) {
_tipWidget = null;
return;
}
// Set off the table tooltip as we provide our own
_table.setToolTipText("");
_tipLabelText.setText(text);
_tipShell.pack();
setHoverLocation(_tipShell, _tipPosition, _tipLabelText.getBounds().height);
_tipShell.setVisible(true);
}
});
_tableViewer.setSelection(null);
composite.layout();
parent.layout();
}
use of net.sourceforge.sqlexplorer.history.SQLHistoryElement in project tdq-studio-se by Talend.
the class AppendToEditorAction method run.
public void run() {
try {
TableItem[] ti = _table.getSelection();
if (ti == null || ti.length == 0) {
return;
}
String queryDelimiter = SQLExplorerPlugin.getDefault().getPluginPreferences().getString(IConstants.SQL_QRY_DELIMITER);
StringBuffer copiedText = new StringBuffer();
for (int i = 0; i < ti.length; i++) {
SQLHistoryElement el = (SQLHistoryElement) ti[i].getData();
copiedText.append(el.getRawSQLString());
copiedText.append(queryDelimiter);
if (ti.length > 1) {
copiedText.append("\n");
}
}
IWorkbenchPage page = SQLExplorerPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
if (page == null) {
return;
}
SQLEditor editorPart = (SQLEditor) page.getActiveEditor();
editorPart.setText(editorPart.getSQLToBeExecuted() + "\n" + copiedText.toString());
} catch (Throwable e) {
SQLExplorerPlugin.error("Error creating sql editor", e);
}
}
use of net.sourceforge.sqlexplorer.history.SQLHistoryElement in project tdq-studio-se by Talend.
the class RemoveFromHistoryAction method run.
public void run() {
try {
TableItem[] selections = _table.getSelection();
if (selections != null && selections.length != 0) {
for (int i = 0; i < selections.length; i++) {
SQLHistoryElement el = (SQLHistoryElement) selections[i].getData();
if (el != null) {
_history.remove(el);
}
}
}
_table.deselectAll();
setEnabled(false);
} catch (Throwable e) {
SQLExplorerPlugin.error("Error removing item from clipboard", e);
}
}
use of net.sourceforge.sqlexplorer.history.SQLHistoryElement in project tdq-studio-se by Talend.
the class OpenInEditorAction method run.
public void run() {
try {
TableItem[] ti = _table.getSelection();
if (ti == null || ti.length == 0) {
return;
}
String queryDelimiter = SQLExplorerPlugin.getDefault().getPluginPreferences().getString(IConstants.SQL_QRY_DELIMITER);
StringBuffer copiedText = new StringBuffer();
for (int i = 0; i < ti.length; i++) {
SQLHistoryElement el = (SQLHistoryElement) ti[i].getData();
copiedText.append(el.getRawSQLString());
if (ti.length > 0) {
copiedText.append(queryDelimiter);
copiedText.append("\n");
}
}
SQLHistoryElement sqlHistoryElement = (SQLHistoryElement) ti[0].getData();
User user = sqlHistoryElement.getUser();
Alias alias;
if (user != null)
alias = user.getAlias();
else {
alias = sqlHistoryElement.getAlias();
if (alias != null)
user = alias.getDefaultUser();
if (user == null) {
ConnectionsView view = SQLExplorerPlugin.getDefault().getConnectionsView();
if (view != null)
user = view.getDefaultUser();
}
}
if (user != null && !user.hasAuthenticated()) {
boolean okToOpen = MessageDialog.openConfirm(_table.getShell(), Messages.getString("SQLHistoryView.OpenInEditor.Confirm.Title"), Messages.getString("SQLHistoryView.OpenInEditor.Confirm.Message.Prefix") + " " + user.getDescription() + Messages.getString("SQLHistoryView.OpenInEditor.Confirm.Message.Postfix"));
if (okToOpen) {
OpenPasswordConnectDialogAction openDlgAction = new OpenPasswordConnectDialogAction(alias, user, false);
openDlgAction.run();
}
}
SQLEditorInput input = new SQLEditorInput("SQL Editor (" + SQLExplorerPlugin.getDefault().getEditorSerialNo() + ").sql");
input.setUser(user);
IWorkbenchPage page = SQLExplorerPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
if (page == null)
return;
SQLEditor editorPart = (SQLEditor) page.openEditor(input, SQLEditor.class.getName());
editorPart.setText(copiedText.toString());
} catch (Throwable e) {
SQLExplorerPlugin.error("Error creating sql editor", e);
}
}
use of net.sourceforge.sqlexplorer.history.SQLHistoryElement in project tdq-studio-se by Talend.
the class CopyStatementAction method run.
public void run() {
try {
TableItem[] ti = _table.getSelection();
if (ti == null || ti.length == 0) {
return;
}
String queryDelimiter = SQLExplorerPlugin.getDefault().getPluginPreferences().getString(IConstants.SQL_QRY_DELIMITER);
StringBuffer copiedText = new StringBuffer();
for (int i = 0; i < ti.length; i++) {
SQLHistoryElement el = (SQLHistoryElement) ti[i].getData();
copiedText.append(el.getRawSQLString());
if (ti.length > 0) {
copiedText.append(queryDelimiter);
copiedText.append("\n");
}
}
Clipboard cb = new Clipboard(Display.getCurrent());
TextTransfer textTransfer = TextTransfer.getInstance();
cb.setContents(new Object[] { copiedText.toString() }, new Transfer[] { textTransfer });
} catch (Throwable e) {
SQLExplorerPlugin.error("Error copying to clipboard", e);
}
}
Aggregations