Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion ui/org.eclipse.pde.spy.css/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="3.29.0",
org.eclipse.e4.ui.css.swt;bundle-version="0.10.0",
org.eclipse.e4.ui.css.swt.theme;bundle-version="0.9.201",
org.eclipse.e4.ui.model.workbench;bundle-version="0.9.1",
org.eclipse.pde.spy.core;bundle-version="1.0.200"
org.eclipse.pde.spy.core;bundle-version="1.0.200",
org.eclipse.jface.notifications;bundle-version="0.8.0"
Bundle-ActivationPolicy: lazy
Import-Package: jakarta.annotation;version="[2.1.0,3.0.0)",
jakarta.inject;version="[2.0.0,3.0.0)",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,14 @@
import org.eclipse.e4.ui.css.swt.engine.CSSSWTEngineImpl;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.services.IServiceConstants;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.jface.layout.TreeColumnLayout;
import org.eclipse.jface.notifications.NotificationPopup;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ColumnViewerEditor;
Expand Down Expand Up @@ -89,6 +92,7 @@
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Text;
Expand Down Expand Up @@ -598,6 +602,21 @@ public String getText(Object item) {
widgetsTableLayout.setColumnData(widgetClassColumn.getColumn(), new ColumnWeightData(40));
widgetsComposite.setLayout(widgetsTableLayout);

MenuManager menuManager = new MenuManager();
menuManager.setRemoveAllWhenShown(true);
menuManager.addMenuListener(manager -> {
Action copyAction = new Action(Messages.CssSpyPart_Copy_widget_info) {
@Override
public void run() {
copyWidgetHierarchyToClipboard();
}
};
copyAction.setEnabled(!widgetTreeViewer.getSelection().isEmpty());
manager.add(copyAction);
});
Menu menu = menuManager.createContextMenu(widgetTreeViewer.getControl());
widgetTreeViewer.getControl().setMenu(menu);

// / HEADERS
Composite container = new Composite(sashForm, SWT.NONE);
container.setLayout(new GridLayout(2, true));
Expand Down Expand Up @@ -1002,6 +1021,8 @@ protected void copyWidgetHierarchyToClipboard() {
Clipboard clipboard = new Clipboard(display);
try {
clipboard.setContents(new Object[] { sb.toString() }, new Transfer[] { TextTransfer.getInstance() });
NotificationPopup.forDisplay(display).text(Messages.CssSpyPart_Widget_hierarchy_copied_to_clipboard)
.title(Messages.CssSpyPart_Copy_widget_info, true).open();
} finally {
clipboard.dispose();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ private Messages() {
public static String CssSpyPart_Bounds;
public static String CssSpyPart_Copy_widget_info;
public static String CssSpyPart_Copy_widget_hierarchy_tooltip;
public static String CssSpyPart_Widget_hierarchy_copied_to_clipboard;
public static String CssSpyPart_Classes;
public static String CssSpyPart_CSS;
public static String CssSpyPart_CSS_Class;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ CssSpyPart_All_shells=All shells
CssSpyPart_Bounds=Bounds:
CssSpyPart_Copy_widget_info=Copy widget info to clipboard
CssSpyPart_Copy_widget_hierarchy_tooltip=Copies the selected widget's hierarchy and CSS styling information to the clipboard
CssSpyPart_Widget_hierarchy_copied_to_clipboard=Widget hierarchy copied to clipboard
CssSpyPart_Classes=Classes:
CssSpyPart_CSS=CSS
CssSpyPart_CSS_Class=CSS Class
Expand Down
Loading