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

Completed context menu service introspection UI.

refs 2460
parent 3c69ed3b
No related branches found
No related tags found
No related merge requests found
......@@ -18,19 +18,19 @@ $Id$
package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
import org.conqat.ide.commons.ui.jface.TreeContentProviderBase;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TableLabelProviderBase;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
import org.eclipse.ui.dialogs.PatternFilter;
import org.fortiss.tooling.kernel.extension.IConstraintChecker;
import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
import org.fortiss.tooling.kernel.service.IConstraintCheckerService;
import org.fortiss.tooling.kernel.ui.extension.IContextMenuContributor;
import org.fortiss.tooling.kernel.ui.internal.introspection.items.ContextMenuServiceIntrospectionDetailsItem;
import org.fortiss.tooling.kernel.ui.service.IContextMenuService;
......@@ -48,9 +48,9 @@ public final class ContextMenuServiceIntrospectionDetailsUIHandler extends
/** {@inheritDoc} */
@Override
public Control createComposite(ScrolledComposite parent) {
String h = "Type to search registered menu providers:";
String f = "Number of registered menu providers: " + getInputObject().getHandlerList();
return createFilteredTreeInTabFolder(parent, h, f, "Registered Providers");
String h = "Type to search registered menu contributors:";
String f = "Number of registered menu contributors: " + getInputObject().getHandlerList();
return createFilteredTreeInTabFolder(parent, h, f, "Registered Contributors");
}
/** {@inheritDoc} */
......@@ -58,11 +58,11 @@ public final class ContextMenuServiceIntrospectionDetailsUIHandler extends
protected void createTreeColumns(Tree tree) {
TreeColumn col0 = new TreeColumn(tree, SWT.LEFT);
col0.setText("Menu Section");
col0.setWidth(200);
col0.setWidth(400);
TreeColumn col1 = new TreeColumn(tree, SWT.LEFT);
col1.setText("Menu Provider Class");
col1.setWidth(400);
col1.setWidth(500);
}
/** {@inheritDoc} */
......@@ -75,7 +75,8 @@ public final class ContextMenuServiceIntrospectionDetailsUIHandler extends
if(parentElement == getInputObject()) {
return IContextMenuService.MENU_SECTION_IDS;
} else if(parentElement instanceof String) {
return getInputObject().getHandlerList().toArray();
return getInputObject().getHandlerList().stream()
.filter(h -> parentElement.equals(h.getMenuSectionID())).toArray();
}
return null;
}
......@@ -86,23 +87,16 @@ public final class ContextMenuServiceIntrospectionDetailsUIHandler extends
@Override
protected ITableLabelProvider createLabelProvider() {
return new TableLabelProviderBase() {
// TODO: continue HERE
@SuppressWarnings("unchecked")
@Override
public String getColumnText(Object element, int columnIndex) {
if(element instanceof Class) {
switch(columnIndex) {
case 0:
return ((Class<?>)element).getSimpleName();
case 1:
return ((Class<?>)element).getName();
}
} else if(element instanceof IConstraintChecker) {
IConstraintChecker<EObject> icc = (IConstraintChecker<EObject>)element;
if(element instanceof String && columnIndex == 0) {
return (String)element;
} else if(element instanceof IContextMenuContributor) {
IContextMenuContributor icc = (IContextMenuContributor)element;
switch(columnIndex) {
case 0:
return icc.getClass().getSimpleName();
case 2:
case 1:
return icc.getClass().getName();
}
}
......@@ -117,6 +111,27 @@ public final class ContextMenuServiceIntrospectionDetailsUIHandler extends
return new TableViewerPatternFilter();
}
/** {@inheritDoc} */
@Override
protected ViewerSorter createSorter() {
return new ViewerSorter() {
/** {@inheritDoc} */
@Override
public int category(Object element) {
if(element instanceof String) {
String section = (String)element;
for(int i = 0; i < IContextMenuService.MENU_SECTION_IDS.length; i++) {
if(section.equals(IContextMenuService.MENU_SECTION_IDS[i])) {
return i;
}
}
return IContextMenuService.MENU_SECTION_IDS.length;
}
return super.category(element);
}
};
}
/** {@inheritDoc} */
@Override
protected ContextMenuServiceIntrospectionDetailsItem getInputObject() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment