Skip to content
Snippets Groups Projects
Commit f32b12fd authored by Florian Hölzl's avatar Florian Hölzl
Browse files

Context menu working, but not per cell only per row.

refs 2460
parent acb62580
Branches
Tags
No related merge requests found
......@@ -75,6 +75,8 @@ public abstract class IntrospectionDetailsUIHandlerBase extends DetailsUIHandler
treeViewer.setSorter(createSorter());
treeViewer.setInput(getInputObject());
addContextMenu(treeViewer);
if(footerLabel != null) {
Label lbl = new Label(composite, SWT.BOLD);
lbl.setText(footerLabel);
......@@ -84,6 +86,12 @@ public abstract class IntrospectionDetailsUIHandlerBase extends DetailsUIHandler
return composite;
}
/** Creates the context menu. Sub-classes may override; the default does not create anything. */
@SuppressWarnings("unused")
protected void addContextMenu(final TreeViewer treeViewer) {
// do not create a menu
}
/** Creates a tab folder with the filtered tree as a tab. */
protected final CTabFolder createTabFolder(Composite parent, String... tabNames) {
CTabFolder tabFolder = new CTabFolder(parent, SWT.BOTTOM);
......
......@@ -18,9 +18,15 @@ $Id$
package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
import org.conqat.ide.commons.ui.jface.TreeContentProviderBase;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TableLabelProviderBase;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.widgets.Control;
......@@ -85,6 +91,28 @@ public final class PrototypeServiceIntrospectionDetailsUIHandler extends
col3.setWidth(50);
}
/** {@inheritDoc} */
@Override
protected void addContextMenu(final TreeViewer treeViewer) {
final Action a = new Action("") {
// filled in later by menuAboutToShow()
};
final MenuManager mgr = new MenuManager();
mgr.setRemoveAllWhenShown(true);
mgr.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager manager) {
IStructuredSelection sel = (IStructuredSelection)treeViewer.getSelection();
if(sel != null && !sel.isEmpty()) {
a.setText(sel.getFirstElement().toString());
mgr.add(a);
}
}
});
treeViewer.getControl().setMenu(mgr.createContextMenu(treeViewer.getControl()));
}
/** {@inheritDoc} */
@Override
protected ITreeContentProvider createContentProvider() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment