List of usage examples for org.eclipse.jface.window ToolTip ToolTip
public ToolTip(Control control, int style, boolean manualActivation)
From source file:com.nokia.tools.variant.compare.ui.CustomCheckedTreeViewer.java
License:Open Source License
private void initViewer() { tooltipBG = new Color(getTree().getDisplay(), new RGB(245, 245, 200)); tooltipFG = new Color(getTree().getDisplay(), new RGB(0, 0, 0)); highlightBG = new Color(getTree().getDisplay(), new RGB(255, 255, 200)); getTree().addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { tooltipBG.dispose();/* ww w .j a va2s .c o m*/ tooltipFG.dispose(); highlightBG.dispose(); } }); setUseHashlookup(true); addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { doCheckStateChanged(event.getElement()); } }); addTreeListener(new ITreeViewerListener() { public void treeCollapsed(TreeExpansionEvent event) { } public void treeExpanded(TreeExpansionEvent event) { Widget item = findItem(event.getElement()); if (item instanceof TreeItem) { initializeItem((TreeItem) item); } } }); new ToolTip(getControl(), ToolTip.NO_RECREATE, false) { @Override protected Composite createToolTipContentArea(Event event, Composite parent) { Composite area = new Composite(parent, SWT.NONE); area.setLayout(new GridLayout()); area.setBackground(tooltipBG); area.setForeground(tooltipFG); Label label = new Label(area, SWT.NONE); label.setText("Unknown"); label.setBackground(tooltipBG); label.setForeground(tooltipFG); String text = getTooltipText(new Point(event.x, event.y)); if (text != null) { label.setText(text); } // // computeShift(event,parent); return area; } String getTooltipText(Point p) { TreeItem item = getTree().getItem(p); if (item == null) { return null; } String tooltip = null; IBaseLabelProvider blp = getLabelProvider(); if (blp instanceof ITableTooltipProvider) { int offset = 0; int width = 0; int columnIndex = -1; for (int idx : getTree().getColumnOrder()) { TreeColumn column = getTree().getColumn(idx); int offset2 = offset + column.getWidth(); if (p.x >= offset && p.x < offset2) { columnIndex = idx; width = column.getWidth(); break; } offset = offset2; } Rectangle bounds = item.getBounds(); bounds.x += offset; bounds.width = width; tooltip = ((ITableTooltipProvider) blp).getColumnTooltip(item.getData(), columnIndex); } return tooltip; } @Override protected Object getToolTipArea(Event event) { Point p = new Point(event.x, event.y); TreeItem item = getTree().getItem(p); if (item == null) { return null; } String tooltip = null; IBaseLabelProvider blp = getLabelProvider(); if (blp instanceof ITableTooltipProvider) { int offset = 0; int width = 0; int columnIndex = -1; for (int idx : getTree().getColumnOrder()) { TreeColumn column = getTree().getColumn(idx); int offset2 = offset + column.getWidth(); if (event.x >= offset && event.x < offset2) { columnIndex = idx; width = column.getWidth(); break; } offset = offset2; } Rectangle bounds = item.getBounds(); bounds.x += offset; bounds.width = width; tooltip = ((ITableTooltipProvider) blp).getColumnTooltip(item.getData(), columnIndex); if (tooltip != null && tooltip.trim().length() > 0) { return bounds; } } return null; } }; getTree().addListener(SWT.EraseItem, new Listener() { public void handleEvent(Event event) { // Gradient selection color if ((event.detail & SWT.SELECTED) != 0) { return; } // event.detail &= ~SWT.HOT; // if ((event.detail & SWT.SELECTED) == 0) // return; /* item not selected */ // int clientWidth = getTree().getClientArea().width; // GC gc = event.gc; // Color oldForeground = gc.getForeground(); // Color oldBackground = gc.getBackground(); // //gc.setForeground(gc.getDevice().getSystemColor(SWT. // COLOR_BLACK // // )); // //gc.setBackground(gc.getDevice().getSystemColor(SWT. // COLOR_WHITE // // )); // gc.fillGradientRectangle(0 + clientWidth - 1, event.y, // -clientWidth, event.height, false); // gc.setForeground(oldForeground); // gc.setBackground(oldBackground); // event.detail &= ~SWT.SELECTED; } }); getTree().addListener(SWT.MeasureItem, new Listener() { public void handleEvent(Event event) { TreeItem item = (TreeItem) event.item; Object data = item.getData(); IBaseLabelProvider blp = getLabelProvider(); if (!(blp instanceof ITableAnnotationProvider)) { return; } ITableAnnotationProvider prov = (ITableAnnotationProvider) blp; String annotation = prov.getAnnotationText(data, event.index); if (annotation == null) { return; } int colWidth = getTree().getColumn(event.index).getWidth(); GC gc = event.gc; Font font = prov.getAnnotationFont(data, event.index); gc.setFont(font == null ? item.getFont(event.index) : font); Point extent = gc.textExtent(annotation + " "); event.width += extent.x; event.width = Math.max(colWidth - 1, event.width); } }); getTree().addListener(SWT.PaintItem, new Listener() { public void handleEvent(Event event) { TreeItem item = (TreeItem) event.item; // Rectangle bounds = item.getBounds(); // if (!event.gc.getClipping().intersects(bounds)) { // return; // } Object data = item.getData(); IBaseLabelProvider blp = getLabelProvider(); if (!(blp instanceof ITableAnnotationProvider)) { return; } if (blp instanceof ICheckEnabledLabelProvider) { ICheckEnabledLabelProvider checkProvider = (ICheckEnabledLabelProvider) blp; if (!checkProvider.isCheckEnabled(data)) { redrawTreeItemCheckBox(event, disabledCheckBox); } } ITableAnnotationProvider prov = (ITableAnnotationProvider) blp; GC gc = event.gc; int offset = 0; int width = 0; TreeColumn column = null; for (int idx : getTree().getColumnOrder()) { column = getTree().getColumn(idx); width = column.getWidth(); if (idx == event.index) { break; } } String annotation = prov.getAnnotationText(data, event.index); if (annotation == null) { return; } String text = item.getText(event.index); Point ext2 = gc.textExtent(text); int space = gc.getFontMetrics().getAverageCharWidth(); Font font = prov.getAnnotationFont(data, event.index); Color foreground = prov.getAnnotationForeground(data, event.index); gc.setFont(font == null ? item.getFont(event.index) : font); if ((event.detail & SWT.SELECTED) == 0 && foreground != null) { gc.setForeground(foreground); } else { // gc.setForeground(gc.getDevice().getSystemColor(SWT. // COLOR_WHITE)); } // gc.setBackground(tooltipBG); Point extent = gc.textExtent(annotation + " "); if (ext2.x + space + extent.x > column.getWidth()) { gc.drawText(" " + annotation, event.x + ext2.x + space, event.y + (event.height - extent.y) / 2, true); } else { gc.drawText(" " + annotation, event.x + width - extent.x, event.y + (event.height - extent.y) / 2, true); } offset += width; } }); }
From source file:com.nokia.tools.variant.navigator.views.NavigatorComposite.java
License:Open Source License
public NavigatorComposite(Composite parent, int style, NavigatorViewer viewer) { super(parent, style | SWT.DOUBLE_BUFFERED); addKeyListener(this); this.listeners = new ListenerList(); this.buttons = new ArrayList<NavigatorButton>(); this.buttonListener = new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { setSelectedWidget((NavigatorButton) e.widget); }/*from w w w . j a va 2s . c om*/ public void widgetSelected(SelectionEvent e) { setSelectedWidget((NavigatorButton) e.widget); } }; this.addFocusListener(new FocusListener() { public void focusGained(FocusEvent e) { if (selectedButton != null && selectedButton.getSelectedLabel() != null) { NavigatorLabel label = selectedButton.getSelectedLabel(); label.updateColors(true); Rectangle bounds = label.getBounds(); redraw(bounds.x, bounds.y, bounds.width, bounds.height, false); } } public void focusLost(FocusEvent e) { if (selectedButton != null && selectedButton.getSelectedLabel() != null) { NavigatorLabel label = selectedButton.getSelectedLabel(); label.updateColors(false); Rectangle bounds = label.getBounds(); redraw(bounds.x, bounds.y, bounds.width, bounds.height, false); } } }); setBackground(ColorConstants.white); addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent e) { setFocus(); for (NavigatorButton button : getButtons()) { if (button.getBounds().contains(e.x, e.y)) { NavigatorLabel label = button.getSelectedLabel(); if (button.isExpanded()) { for (NavigatorLabel child : button.getLabels()) { if (child.getBounds().contains(e.x, e.y)) { setSelectedWidget(child); return; } } } if (button.isSelected()) { if (button.isNonExpanded()) { button.setExpanded(true); } else { button.setSelectedLabel(null); redraw(); setSelectedWidget(button); break; // button.setExpanded(!button.isExpanded()); } setSelectedWidget(label == null ? button : button.isExpanded() ? label : button); } else { setSelectedWidget(label == null ? button : label); } break; } } } }); addDisposeListener(DisposeHandler.INSTANCE); addPaintListener(PaintHandler.INSTANCE); addControlListener(ControlHandler.INSTANCE); new ToolTip(this, ToolTip.NO_RECREATE, false) { @Override protected Composite createToolTipContentArea(Event event, Composite parent) { Composite area = new Composite(parent, SWT.NONE); area.setLayout(new Layout() { @Override protected Point computeSize(Composite composite, int hint, int hint2, boolean flushCache) { Point size = new Point(5, 5); for (Control child : composite.getChildren()) { Point cs = child.computeSize(SWT.DEFAULT, SWT.DEFAULT); if (cs.x > 250) { cs = child.computeSize(250, SWT.DEFAULT); } size.x = Math.max(size.x, cs.x + 10); size.y += cs.y + 5; } return size; } @Override protected void layout(Composite composite, boolean flushCache) { Point csize = composite.getSize(); int y = 5; for (Control child : composite.getChildren()) { Point cs = child.computeSize(csize.x - 10, SWT.DEFAULT); child.setBounds(5, y, cs.x, cs.y); y += cs.y + 5; } } }); area.setBackground(COLOR_TT_BACKGROUND); area.setForeground(COLOR_TT_FOREGROUND); Label label = new Label(area, SWT.WRAP); label.setText("Undefined"); label.setBackground(COLOR_TT_BACKGROUND); label.setForeground(COLOR_TT_FOREGROUND); Point point = new Point(event.x, event.y); String text = null; outer: for (NavigatorButton button : getButtons()) { if (button.getBounds().contains(point)) { text = button.getButtonDescription(); if (button.isExpanded()) { for (NavigatorLabel labelItem : button.getLabels()) { if (labelItem.getBounds().contains(point)) { text = labelItem.getToolTipText(); break outer; } } } break; } } if (text != null) { label.setText(text); } return area; } @Override protected Object getToolTipArea(Event event) { String text = null; Rectangle bounds = null; outer: for (NavigatorButton button : getButtons()) { if (button.getBounds().contains(event.x, event.y)) { text = button.getButtonDescription(); bounds = button.getBounds(); if (button.isExpanded()) { for (NavigatorLabel labelItem : button.getLabels()) { if (labelItem.getBounds().contains(event.x, event.y)) { text = labelItem.getToolTipText(); bounds = labelItem.getBounds(); break outer; } } } break; } } return text != null && text.length() > 0 ? bounds : null; } @Override public Point getLocation(Point tipSize, Event event) { Rectangle bounds = null; outer: for (NavigatorButton button : getButtons()) { if (button.getBounds().contains(event.x, event.y)) { bounds = button.getBounds(); if (button.isExpanded()) { for (NavigatorLabel labelItem : button.getLabels()) { if (labelItem.getBounds().contains(event.x, event.y)) { bounds = labelItem.getBounds(); break outer; } } } break; } } if (bounds == null) { return super.getLocation(tipSize, event); } ScrolledComposite sc = SWTUtil.getScrolledComposite(NavigatorComposite.this); Rectangle ca = sc.getClientArea(); Point caBottom = sc.toDisplay(ca.x, ca.y + ca.height); Point display = NavigatorComposite.this.toDisplay(bounds.x, bounds.y + bounds.height); display.y = Math.min(display.y, caBottom.y); return display; } }; }
From source file:com.nokia.tools.vct.internal.common.ui.navigator.NavigatorComposite.java
License:Open Source License
public NavigatorComposite(Composite parent, int style, NavigatorViewer viewer) { super(parent, style | SWT.DOUBLE_BUFFERED); ITheme theme = PlatformUI.getWorkbench().getThemeManager().getCurrentTheme(); ColorRegistry colorRegistry = theme.getColorRegistry(); tooltipBackgroundColor = colorRegistry .get("com.nokia.tools.vct.common.ui.navigator.TooltipBackgroundColor"); tooltipForegroundColor = colorRegistry .get("com.nokia.tools.vct.common.ui.navigator.TooltipForegroundColor"); mainBackgroundColor = colorRegistry.get("com.nokia.tools.vct.common.ui.navigator.MainBackgroundColor"); addKeyListener(this); this.listeners = new ListenerList(); this.buttons = new ArrayList<NavigatorButton>(); this.buttonListener = new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { setSelectedWidget((NavigatorButton) e.widget); }/* w w w . j a va2 s . c om*/ public void widgetSelected(SelectionEvent e) { setSelectedWidget((NavigatorButton) e.widget); } }; this.addFocusListener(new FocusListener() { public void focusGained(FocusEvent e) { if (selectedButton != null && selectedButton.getSelectedLabel() != null) { NavigatorLabel label = selectedButton.getSelectedLabel(); label.updateColors(true); Rectangle bounds = label.getBounds(); redraw(bounds.x, bounds.y, bounds.width, bounds.height, false); } } public void focusLost(FocusEvent e) { if (selectedButton != null && selectedButton.getSelectedLabel() != null) { NavigatorLabel label = selectedButton.getSelectedLabel(); label.updateColors(false); Rectangle bounds = label.getBounds(); redraw(bounds.x, bounds.y, bounds.width, bounds.height, false); } } }); setBackground(mainBackgroundColor); addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent e) { setFocus(); for (NavigatorButton button : getButtons()) { if (button.getBounds().contains(e.x, e.y)) { NavigatorLabel label = button.getSelectedLabel(); if (button.isExpanded()) { for (NavigatorLabel child : button.getLabels()) { if (child.getBounds().contains(e.x, e.y)) { setSelectedWidget(child); return; } } } if (button.isSelected()) { if (button.isNonExpanded()) { button.setExpanded(true); } else { button.setSelectedLabel(null); redraw(); setSelectedWidget(button); break; // button.setExpanded(!button.isExpanded()); } setSelectedWidget(label == null ? button : button.isExpanded() ? label : button); } else { setSelectedWidget(label == null ? button : label); } break; } } } }); addDisposeListener(DisposeHandler.INSTANCE); addPaintListener(PaintHandler.INSTANCE); addControlListener(ControlHandler.INSTANCE); new ToolTip(this, ToolTip.NO_RECREATE, false) { @Override protected Composite createToolTipContentArea(Event event, Composite parent) { Composite area = new Composite(parent, SWT.NONE); area.setLayout(new Layout() { @Override protected Point computeSize(Composite composite, int hint, int hint2, boolean flushCache) { Point size = new Point(5, 5); for (Control child : composite.getChildren()) { Point cs = child.computeSize(SWT.DEFAULT, SWT.DEFAULT); if (cs.x > 250) { cs = child.computeSize(250, SWT.DEFAULT); } size.x = Math.max(size.x, cs.x + 10); size.y += cs.y + 5; } return size; } @Override protected void layout(Composite composite, boolean flushCache) { Point csize = composite.getSize(); int y = 5; for (Control child : composite.getChildren()) { Point cs = child.computeSize(csize.x - 10, SWT.DEFAULT); child.setBounds(5, y, cs.x, cs.y); y += cs.y + 5; } } }); area.setBackground(tooltipBackgroundColor); area.setForeground(tooltipForegroundColor); Label label = new Label(area, SWT.WRAP); label.setText("Undefined"); label.setBackground(tooltipBackgroundColor); label.setForeground(tooltipForegroundColor); Point point = new Point(event.x, event.y); String text = null; outer: for (NavigatorButton button : getButtons()) { if (button.getBounds().contains(point)) { text = button.getButtonDescription(); if (button.isExpanded()) { for (NavigatorLabel labelItem : button.getLabels()) { if (labelItem.getBounds().contains(point)) { text = labelItem.getToolTipText(); break outer; } } } break; } } if (text != null) { if (text.length() > 200) { int i = Math.min(text.indexOf("\n", 199), text.indexOf("\r", 199)); if (i >= 199 && i < 250) { text = text.substring(0, i); } else { text = text.substring(0, 200); } text += "\n\r..."; } label.setText(text); } return area; } @Override protected Object getToolTipArea(Event event) { String text = null; Rectangle bounds = null; outer: for (NavigatorButton button : getButtons()) { if (button.getBounds().contains(event.x, event.y)) { text = button.getButtonDescription(); bounds = button.getBounds(); if (button.isExpanded()) { for (NavigatorLabel labelItem : button.getLabels()) { if (labelItem.getBounds().contains(event.x, event.y)) { text = labelItem.getToolTipText(); bounds = labelItem.getBounds(); break outer; } } } break; } } return text != null && text.length() > 0 ? bounds : null; } @Override public Point getLocation(Point tipSize, Event event) { Rectangle bounds = null; outer: for (NavigatorButton button : getButtons()) { if (button.getBounds().contains(event.x, event.y)) { bounds = button.getBounds(); if (button.isExpanded()) { for (NavigatorLabel labelItem : button.getLabels()) { if (labelItem.getBounds().contains(event.x, event.y)) { bounds = labelItem.getBounds(); break outer; } } } break; } } if (bounds == null) { return super.getLocation(tipSize, event); } ScrolledComposite sc = SWTUtil.getScrolledComposite(NavigatorComposite.this); Rectangle ca = sc.getClientArea(); Point caBottom = sc.toDisplay(ca.x, ca.y + ca.height); Point display = NavigatorComposite.this.toDisplay(bounds.x, bounds.y + bounds.height); display.y = Math.min(display.y, caBottom.y); return display; } }; }
From source file:net.certiv.fluentmark.outline.FluentOutlinePage.java
License:Open Source License
@SuppressWarnings("unused") private void createToolTip() { new ToolTip(viewer.getControl(), ToolTip.RECREATE, false) { @Override/* w w w . jav a 2s . c om*/ protected Composite createToolTipContentArea(Event event, Composite parent) { Composite comp = new Composite(parent, SWT.NONE); comp.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); GridLayoutFactory.swtDefaults().margins(2, 2).spacing(4, 1).applyTo(comp); Object tipItem = getToolTipItem(new Point(event.x, event.y)); if (tipItem instanceof PagePart) { PagePart part = (PagePart) tipItem; Label label = new Label(comp, SWT.WRAP); label.setBackground(comp.getBackground()); label.setText(part.getTooltip()); } return comp; } @Override protected boolean shouldCreateToolTip(Event event) { final Object eventItem = getToolTipItem(new Point(event.x, event.y)); boolean shouldCreate = eventItem != null && eventItem instanceof PagePart && super.shouldCreateToolTip(event); if (!shouldCreate) hide(); return shouldCreate; } protected Object getToolTipItem(Point point) { Tree control = (Tree) viewer.getControl(); TreeItem item = control.getItem(point); if (item != null) return item.getData(); return null; } }; }
From source file:net.heartsome.cat.common.ui.wizard.TSTitleAreaDialog.java
License:Open Source License
/** * Re-layout the labels for the new message. * //from w ww . j a v a 2 s.co m * @param forceLayout * <code>true</code> to force a layout of the shell */ private void layoutForNewMessage(boolean forceLayout) { int verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); int horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); // If there are no images then layout as normal if (errorMessage == null && messageImage == null) { setImageLabelVisible(false); setLayoutsForNormalMessage(verticalSpacing, horizontalSpacing); } else { messageImageLabel.setVisible(true); bottomFillerLabel.setVisible(true); leftFillerLabel.setVisible(true); /** * Note that we do not use horizontalSpacing here as when the * background of the messages changes there will be gaps between the * icon label and the message that are the background color of the * shell. We add a leading space elsewhere to compendate for this. */ FormData data = new FormData(); data.left = new FormAttachment(0, H_GAP_IMAGE); data.top = new FormAttachment(titleLabel, verticalSpacing); messageImageLabel.setLayoutData(data); data = new FormData(); data.top = new FormAttachment(messageImageLabel, 0); data.left = new FormAttachment(0, 0); data.bottom = new FormAttachment(messageLabel, 0, SWT.BOTTOM); data.right = new FormAttachment(messageImageLabel, 0, SWT.RIGHT); bottomFillerLabel.setLayoutData(data); data = new FormData(); data.top = new FormAttachment(messageImageLabel, 0, SWT.TOP); data.left = new FormAttachment(0, 0); data.bottom = new FormAttachment(messageImageLabel, 0, SWT.BOTTOM); data.right = new FormAttachment(messageImageLabel, 0); leftFillerLabel.setLayoutData(data); FormData messageLabelData = new FormData(); messageLabelData.top = new FormAttachment(titleLabel, verticalSpacing); messageLabelData.right = new FormAttachment(titleImageLabel); messageLabelData.left = new FormAttachment(messageImageLabel, 0); messageLabelData.height = messageLabelHeight; if (titleImageLargest) messageLabelData.bottom = new FormAttachment(titleImageLabel, 0, SWT.BOTTOM); messageLabel.setLayoutData(messageLabelData); } if (forceLayout) { getShell().layout(); } else { // Do not layout before the dialog area has been created // to avoid incomplete calculations. if (dialogArea != null) workArea.getParent().layout(true); } int messageLabelUnclippedHeight = messageLabel.computeSize(messageLabel.getSize().x - xTrim, SWT.DEFAULT, true).y; boolean messageLabelClipped = messageLabelUnclippedHeight > messageLabel.getSize().y - yTrim; if (messageLabel.getData() instanceof ToolTip) { ToolTip toolTip = (ToolTip) messageLabel.getData(); toolTip.hide(); toolTip.deactivate(); messageLabel.setData(null); } if (messageLabelClipped) { ToolTip tooltip = new ToolTip(messageLabel, ToolTip.NO_RECREATE, false) { protected Composite createToolTipContentArea(Event event, Composite parent) { Composite result = new Composite(parent, SWT.NONE); result.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); result.setLayout(new GridLayout()); Text text = new Text(result, SWT.WRAP); text.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); text.setForeground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND)); text.setText(messageLabel.getText()); GridData gridData = new GridData(); gridData.widthHint = messageLabel.getSize().x; text.setLayoutData(gridData); Dialog.applyDialogFont(result); return result; } public Point getLocation(Point tipSize, Event event) { return messageLabel.getShell().toDisplay(messageLabel.getLocation()); } }; messageLabel.setData(tooltip); tooltip.setPopupDelay(0); tooltip.activate(); } }
From source file:org.eclipse.mylyn.internal.wikitext.ui.editor.MarkupEditorOutline.java
License:Open Source License
@Override public void createControl(Composite parent) { super.createControl(parent); TreeViewer viewer = getTreeViewer(); viewer.setUseHashlookup(true);//from w w w.j a va 2 s. c om viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); viewer.setContentProvider(new BaseWorkbenchContentProvider()); viewer.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider()); viewer.setInput(editor.getOutlineModel()); viewer.addOpenListener(new IOpenListener() { public void open(OpenEvent event) { revealInEditor(event.getSelection(), true); } }); viewer.addPostSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { revealInEditor(event.getSelection(), false); } }); viewer.expandAll(); new ToolTip(viewer.getControl(), ToolTip.RECREATE, false) { @Override protected Composite createToolTipContentArea(Event event, Composite parent) { Composite comp = new Composite(parent, SWT.NONE); comp.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); GridLayout gl = new GridLayout(1, false); gl.marginBottom = 2; gl.marginTop = 2; gl.marginHeight = 0; gl.marginWidth = 0; gl.marginLeft = 2; gl.marginRight = 2; gl.verticalSpacing = 1; comp.setLayout(gl); Object tipItem = getToolTipItem(new Point(event.x, event.y)); if (tipItem instanceof OutlineItem) { OutlineItem outlineItem = (OutlineItem) tipItem; Label label = new Label(comp, SWT.WRAP); label.setBackground(comp.getBackground()); label.setText(outlineItem.getTooltip()); } return comp; } @Override protected boolean shouldCreateToolTip(Event event) { final Object eventItem = getToolTipItem(new Point(event.x, event.y)); boolean shouldCreate = eventItem != null && eventItem instanceof OutlineItem && super.shouldCreateToolTip(event); if (!shouldCreate) { hide(); } return shouldCreate; } protected Object getToolTipItem(Point point) { TreeItem item = ((Tree) getTreeViewer().getControl()).getItem(point); if (item != null) { return item.getData(); } return null; } }; IPageSite site = getSite(); site.setSelectionProvider(viewer); configureActionBars(site); MenuManager manager = new MenuManager("#PopUp"); //$NON-NLS-1$ manager.setRemoveAllWhenShown(true); manager.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager menuManager) { contextMenuAboutToShow(menuManager); } }); viewer.getTree().setMenu(manager.createContextMenu(viewer.getTree())); site.registerContextMenu(MarkupEditor.ID + ".outlineContextMenu", manager, viewer); //$NON-NLS-1$ configureDnd(); configureActions(); }
From source file:org.eclipse.mylyn.wikitext.ui.editor.DefaultWikiTextSourceEditorOutline.java
License:Open Source License
@Override public void createControl(Composite parent) { super.createControl(parent); TreeViewer viewer = getTreeViewer(); viewer.setUseHashlookup(true);// w w w . j a va2 s.co m viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); viewer.setContentProvider(new BaseWorkbenchContentProvider()); viewer.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider()); viewer.setInput(getEditor().getAdapter(OutlineItem.class)); viewer.addOpenListener(new IOpenListener() { public void open(OpenEvent event) { revealInEditor(event.getSelection()); } }); viewer.addPostSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { revealInEditor(event.getSelection()); } }); viewer.expandAll(); updateSelectionToMatchEditor(); new ToolTip(viewer.getControl(), ToolTip.RECREATE, false) { @Override protected Composite createToolTipContentArea(Event event, Composite parent) { Composite comp = new Composite(parent, SWT.NONE); comp.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); GridLayout gl = new GridLayout(1, false); gl.marginBottom = 2; gl.marginTop = 2; gl.marginHeight = 0; gl.marginWidth = 0; gl.marginLeft = 2; gl.marginRight = 2; gl.verticalSpacing = 1; comp.setLayout(gl); Object tipItem = getToolTipItem(new Point(event.x, event.y)); if (tipItem instanceof OutlineItem) { OutlineItem outlineItem = (OutlineItem) tipItem; Label label = new Label(comp, SWT.WRAP); label.setBackground(comp.getBackground()); label.setText(outlineItem.getTooltip()); } return comp; } @Override protected boolean shouldCreateToolTip(Event event) { final Object eventItem = getToolTipItem(new Point(event.x, event.y)); boolean shouldCreate = eventItem != null && eventItem instanceof OutlineItem && super.shouldCreateToolTip(event); if (!shouldCreate) { hide(); } return shouldCreate; } protected Object getToolTipItem(Point point) { TreeItem item = ((Tree) getTreeViewer().getControl()).getItem(point); if (item != null) { return item.getData(); } return null; } }; MenuManager manager = new MenuManager("#PopUp"); //$NON-NLS-1$ manager.setRemoveAllWhenShown(true); manager.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager menuManager) { contextMenuAboutToShow(menuManager); } }); viewer.getTree().setMenu(manager.createContextMenu(viewer.getTree())); }
From source file:org.eclipse.ui.internal.handlers.SpyHandler.java
License:Open Source License
/** * @param control/*from w ww . j a va2 s . c om*/ * @param offset * @param contributionInfo */ protected void doShowTooltip(Control control, Point offset, final ContributionInfo contributionInfo) { ToolTip toolTip = new ToolTip(control, ToolTip.NO_RECREATE, true) { protected Composite createToolTipContentArea(Event event, Composite parent) { // Create the content area Composite composite = new Composite(parent, SWT.NONE); Color fg = parent.getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND); Color bg = parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND); composite.setForeground(fg); composite.setBackground(bg); Text text = new Text(composite, SWT.READ_ONLY); text.setForeground(fg); text.setBackground(bg); String info = NLS.bind(ContributionInfoMessages.ContributionInfo_ContributedBy, contributionInfo.getElementType(), contributionInfo.getBundleId()); text.setText(info); GridLayoutFactory.fillDefaults().margins(2, 2).generateLayout(composite); return composite; } }; toolTip.setHideOnMouseDown(false); toolTip.setHideDelay(3000); toolTip.show(offset); }