|
36 | 36 | import org.eclipse.e4.ui.css.core.engine.CSSEngine; |
37 | 37 | import org.eclipse.e4.ui.css.swt.dom.WidgetElement; |
38 | 38 | import org.eclipse.e4.ui.css.swt.engine.CSSSWTEngineImpl; |
39 | | -import org.eclipse.e4.ui.model.application.ui.basic.MPart; |
40 | | -import org.eclipse.e4.ui.services.IServiceConstants; |
| 39 | +import org.eclipse.jface.action.Action; |
| 40 | +import org.eclipse.jface.action.MenuManager; |
41 | 41 | import org.eclipse.jface.dialogs.MessageDialog; |
42 | 42 | import org.eclipse.jface.layout.GridDataFactory; |
43 | 43 | import org.eclipse.jface.layout.GridLayoutFactory; |
44 | 44 | import org.eclipse.jface.layout.TableColumnLayout; |
45 | 45 | import org.eclipse.jface.layout.TreeColumnLayout; |
| 46 | +import org.eclipse.jface.notifications.NotificationPopup; |
46 | 47 | import org.eclipse.jface.viewers.CellEditor; |
47 | 48 | import org.eclipse.jface.viewers.ColumnLabelProvider; |
48 | 49 | import org.eclipse.jface.viewers.ColumnViewerEditor; |
|
89 | 90 | import org.eclipse.swt.widgets.Control; |
90 | 91 | import org.eclipse.swt.widgets.Display; |
91 | 92 | import org.eclipse.swt.widgets.Label; |
| 93 | +import org.eclipse.swt.widgets.Menu; |
92 | 94 | import org.eclipse.swt.widgets.Shell; |
93 | 95 | import org.eclipse.swt.widgets.Table; |
94 | 96 | import org.eclipse.swt.widgets.Text; |
@@ -598,6 +600,21 @@ public String getText(Object item) { |
598 | 600 | widgetsTableLayout.setColumnData(widgetClassColumn.getColumn(), new ColumnWeightData(40)); |
599 | 601 | widgetsComposite.setLayout(widgetsTableLayout); |
600 | 602 |
|
| 603 | + MenuManager menuManager = new MenuManager(); |
| 604 | + menuManager.setRemoveAllWhenShown(true); |
| 605 | + menuManager.addMenuListener(manager -> { |
| 606 | + Action copyAction = new Action(Messages.CssSpyPart_Copy_widget_info) { |
| 607 | + @Override |
| 608 | + public void run() { |
| 609 | + copyWidgetHierarchyToClipboard(); |
| 610 | + } |
| 611 | + }; |
| 612 | + copyAction.setEnabled(!widgetTreeViewer.getSelection().isEmpty()); |
| 613 | + manager.add(copyAction); |
| 614 | + }); |
| 615 | + Menu menu = menuManager.createContextMenu(widgetTreeViewer.getControl()); |
| 616 | + widgetTreeViewer.getControl().setMenu(menu); |
| 617 | + |
601 | 618 | // / HEADERS |
602 | 619 | Composite container = new Composite(sashForm, SWT.NONE); |
603 | 620 | container.setLayout(new GridLayout(2, true)); |
@@ -1002,6 +1019,8 @@ protected void copyWidgetHierarchyToClipboard() { |
1002 | 1019 | Clipboard clipboard = new Clipboard(display); |
1003 | 1020 | try { |
1004 | 1021 | clipboard.setContents(new Object[] { sb.toString() }, new Transfer[] { TextTransfer.getInstance() }); |
| 1022 | + NotificationPopup.forDisplay(display).text(Messages.CssSpyPart_Widget_hierarchy_copied_to_clipboard) |
| 1023 | + .title(Messages.CssSpyPart_Copy_widget_info, true).open(); |
1005 | 1024 | } finally { |
1006 | 1025 | clipboard.dispose(); |
1007 | 1026 | } |
|
0 commit comments