import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.e4.ui.di.Focus;
+import org.eclipse.e4.ui.services.EMenuService;
+import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.TreePath;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import eu.etaxonomy.cdm.model.taxon.TaxonNodeByNameComparator;
import eu.etaxonomy.cdm.model.taxon.TaxonNodeByRankAndNameComparator;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.DataChangeBridge;
import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
private TreeViewer viewer;
+ @Inject
+ private ESelectionService selService;
+
+ private ISelectionChangedListener selectionChangedListener;
+
@Inject
public TaxonNavigatorE4() {
}
@PostConstruct
- private void create(Composite parent){
+ private void create(Composite parent, EMenuService menuService){
FillLayout layout = new FillLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
viewer = new TreeViewer(parent);
viewer.getControl().setLayoutData(LayoutConstants.FILL());
+ viewer.setContentProvider(new TaxonNavigatorContentProviderE4());
+ viewer.setLabelProvider(new TaxonNavigatorLabelProviderE4());
+ viewer.setInput(getInitialInput());
+
+ //propagate selection
+ selectionChangedListener = (event -> selService.setSelection(AbstractUtility.getElementsFromSelectionChangedEvent(event)));
+ viewer.addSelectionChangedListener(selectionChangedListener);
+
+ //create context menu
+ menuService.registerContextMenu(viewer.getControl(), "eu.etaxonomy.taxeditor.navigator.popupmenu.taxonnavigator");
+
init();
}
CdmApplicationState.getCurrentDataChangeService().register(this);
}
CdmStore.getLoginManager().addObserver(this);
-
- viewer.setContentProvider(new TaxonNavigatorContentProviderE4());
- viewer.setLabelProvider(new TaxonNavigatorLabelProviderE4());
- viewer.setInput(getInitialInput());
}
/**