use of org.eclipse.swt.events.MouseTrackAdapter in project tdi-studio-se by Talend.
the class Marker method createLineHover.
private void createLineHover(Integer invertedSeriesIndex) {
if (lineHover == null || lineHover.isDisposed() || !lineHover.isVisible()) {
lineHover = new Shell(chart.getShell(), SWT.NO_TRIM | SWT.ON_TOP | SWT.NO_FOCUS | SWT.TOOL | SWT.NO_BACKGROUND);
lineHover.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent e) {
e.gc.setLineStyle(SWT.LINE_DOT);
e.gc.setAntialias(SWT.ON);
e.gc.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_RED));
// e.gc.fillOval(2-1,150-1, 3, 3);
e.gc.drawLine(2, 0, 2, chart.getPlotArea().getSize().y);
}
});
lineHover.addMouseTrackListener(new MouseTrackAdapter() {
@Override
public void mouseEnter(MouseEvent e) {
if (!isDisposed()) {
setPosition(mouseXPosition);
}
}
});
}
lineHover.setSize(4, chart.getPlotArea().getSize().y);
ISeries largestSeries = getLargestSeries();
Date[] dates = largestSeries.getXDateSeries();
long time = dates[dates.length - invertedSeriesIndex].getTime();
int timeInPixel = chart.getAxisSet().getXAxes()[0].getPixelCoordinate(time);
lineHover.setLocation(chart.getPlotArea().toDisplay(timeInPixel - 3, 0));
lineHover.redraw();
lineHover.setVisible(true);
}
use of org.eclipse.swt.events.MouseTrackAdapter in project tdi-studio-se by Talend.
the class TalendEditPartTipHelper method hookShellListeners.
@Override
protected void hookShellListeners() {
/*
* If the cursor leaves the tip window, hide the tooltip and dispose of its shell
*/
getShell().addMouseTrackListener(new MouseTrackAdapter() {
@Override
public void mouseExit(MouseEvent e) {
getShell().setCapture(false);
dispose();
}
});
/*
* If the mouseExit listener does not get called, dispose of the shell if the cursor is no longer in the
* tooltip. This occurs in the rare case that a mouseEnter is not received on the tooltip when it appears.
*/
getShell().addMouseMoveListener(new MouseMoveListener() {
@Override
public void mouseMove(MouseEvent e) {
Point eventPoint = getShell().toDisplay(new Point(e.x, e.y));
if (!getShell().getBounds().contains(eventPoint)) {
if (isShowing()) {
getShell().setCapture(false);
}
dispose();
}
}
});
// window.
if (shellListener == null) {
shellListener = new ShellAdapter() {
@Override
public void shellDeactivated(ShellEvent event) {
Display.getCurrent().asyncExec(new Runnable() {
@Override
public void run() {
Shell active = Display.getCurrent().getActiveShell();
if (getShell() == active || control.getShell() == active || getShell().isDisposed()) {
return;
}
if (isShowing()) {
getShell().setCapture(false);
}
dispose();
}
});
}
};
control.getShell().addShellListener(shellListener);
getShell().addShellListener(shellListener);
}
/*
* Workaround for GTK Bug - Control.setCapture(boolean) not implemented: If the cursor is not over the shell
* when it is first painted, hide the tooltip and dispose of the shell.
*/
if (SWT.getPlatform().equals("gtk")) {
//$NON-NLS-1$
getShell().addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent event) {
Point cursorLoc = Display.getCurrent().getCursorLocation();
if (!getShell().getBounds().contains(cursorLoc)) {
// This must be run asynchronously. If not, other paint
// listeners may attempt to paint on a disposed control.
Display.getCurrent().asyncExec(new Runnable() {
@Override
public void run() {
if (isShowing()) {
getShell().setCapture(false);
}
dispose();
}
});
}
}
});
}
}
use of org.eclipse.swt.events.MouseTrackAdapter in project cubrid-manager by CUBRID.
the class CubridNavigatorView method addListener.
/**
*
* Add listener
*
*/
protected void addListener() {
tv.getTree().addMouseListener(new MouseAdapter() {
public void mouseDown(MouseEvent event) {
if (toolTip.isVisible()) {
toolTip.setVisible(false);
}
}
public void mouseUp(MouseEvent event) {
if (event.button == 1 && LayoutManager.getInstance().isUseClickOnce()) {
ISelection selection = tv.getSelection();
if (selection == null || selection.isEmpty()) {
return;
}
Object obj = ((IStructuredSelection) selection).getFirstElement();
if (!(obj instanceof ICubridNode)) {
return;
}
ICubridNode cubridNode = (ICubridNode) obj;
LayoutManager.getInstance().getWorkbenchContrItem().openEditorOrView(cubridNode);
}
}
});
tv.getTree().addMouseTrackListener(new MouseTrackAdapter() {
public void mouseHover(MouseEvent event) {
if (toolTip.isVisible()) {
toolTip.setVisible(false);
}
int x = event.x;
int y = event.y;
TreeItem item = tv.getTree().getItem(new Point(x, y));
if (item == null) {
return;
}
showToolTip(item);
}
});
tv.getTree().addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent event) {
widgetSelected(event);
}
public void widgetSelected(SelectionEvent event) {
if (toolTip.isVisible()) {
toolTip.setVisible(false);
}
TreeItem[] items = tv.getTree().getSelection();
if (items == null || items.length == 0) {
return;
}
showToolTip(items[0]);
if (items.length == 1) {
showSchemaInfo(items[0]);
} else {
showSchemaInfo(null);
}
}
});
addDragDropSupport(tv.getTree());
tv.getTree().addKeyListener(new KeyListener() {
public void keyReleased(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
// prevent to make events by key press for a long time
if (e.character == ' ') {
TreeItem[] items = tv.getTree().getSelection();
if (items == null || items.length == 0) {
return;
}
if (items.length == 1) {
showSchemaInfo(items[0]);
} else {
showSchemaInfo(null);
}
}
lastKeyInputTimestamp = System.currentTimeMillis();
// by showing object information tab on the query editor.
if (e.keyCode == SWT.F2) {
TreeItem[] items = tv.getTree().getSelection();
if (items == null || items.length == 0) {
return;
}
for (TreeItem item : items) {
Object obj = item.getData();
if (obj instanceof ICubridNode) {
ICubridNode node = (ICubridNode) obj;
if (NodeType.USER_TABLE.equals(node.getType()) || NodeType.SYSTEM_TABLE.equals(node.getType()) || NodeType.USER_VIEW.equals(node.getType()) || NodeType.SYSTEM_VIEW.equals(node.getType())) {
DefaultSchemaNode table = (DefaultSchemaNode) obj;
OpenTargetAction action = new OpenTargetAction();
action.showObjectInfo(table);
} else if (NodeType.TABLE_FOLDER.equals(node.getType())) {
CubridNavigatorView view = CubridNavigatorView.getNavigatorView(ID_CQB);
if (view == null) {
view = CubridNavigatorView.getNavigatorView(ID_CM);
}
if (view == null) {
return;
}
TreeViewer treeViewer = view.getViewer();
//if not expand ,expand the node and wait until all children be added
if (!treeViewer.getExpandedState(node)) {
treeViewer.expandToLevel(node, 1);
while (node.getChildren().size() == 0) {
try {
Thread.sleep(500);
} catch (Exception ignored) {
}
}
}
CubridDatabase database = (CubridDatabase) node.getParent();
OpenTargetAction action = new OpenTargetAction();
action.showTableDashboard(database);
}
}
}
}
}
});
}
use of org.eclipse.swt.events.MouseTrackAdapter in project eclipse.platform.text by eclipse.
the class OverviewRuler method createControl.
@Override
public Control createControl(Composite parent, ITextViewer textViewer) {
fTextViewer = textViewer;
fHitDetectionCursor = parent.getDisplay().getSystemCursor(SWT.CURSOR_HAND);
fHeader = new Canvas(parent, SWT.NONE);
if (fAnnotationAccess instanceof IAnnotationAccessExtension) {
fHeader.addMouseTrackListener(new MouseTrackAdapter() {
/*
* @see org.eclipse.swt.events.MouseTrackAdapter#mouseHover(org.eclipse.swt.events.MouseEvent)
* @since 3.3
*/
@Override
public void mouseEnter(MouseEvent e) {
updateHeaderToolTipText();
}
});
}
fCanvas = new Canvas(parent, SWT.NO_BACKGROUND);
fCanvas.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent event) {
if (fTextViewer != null)
doubleBufferPaint(event.gc);
}
});
fCanvas.addDisposeListener(new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent event) {
handleDispose();
fTextViewer = null;
}
});
fCanvas.addMouseListener(new MouseAdapter() {
@Override
public void mouseDown(MouseEvent event) {
handleMouseDown(event);
}
});
fCanvas.addMouseMoveListener(new MouseMoveListener() {
@Override
public void mouseMove(MouseEvent event) {
handleMouseMove(event);
}
});
fCanvas.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseScrolled(MouseEvent e) {
handleMouseScrolled(e);
}
});
if (fTextViewer != null) {
fTextViewer.addTextListener(fInternalListener);
// on word wrap toggle a "resized" ControlEvent is fired: suggest a redraw of the ruler
fTextViewer.getTextWidget().addControlListener(new ControlAdapter() {
@Override
public void controlResized(ControlEvent e) {
if (fTextViewer == null) {
return;
}
StyledText textWidget = fTextViewer.getTextWidget();
if (textWidget != null && textWidget.getWordWrap()) {
redraw();
}
}
});
}
return fCanvas;
}
use of org.eclipse.swt.events.MouseTrackAdapter 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();
}
Aggregations