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.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreePath;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.IClassificationService;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
import eu.etaxonomy.cdm.model.common.ITreeNode;
import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.TaxonNaturalComparator;
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.IContextListener;
import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
/**
- * Taxonomic tree implementation using Common Navigator Framework.
*
- * @author p.ciardelli
- * @author n.hoffmann
- * @created 02.06.2009
- * @version 1.0+-
+ * @author pplitzner
+ * @since Sep 7, 2017
+ *
*/
public class TaxonNavigatorE4 implements
IPostOperationEnabled, IConversationEnabled, Observer,
- ICdmEntitySessionEnabled, ICdmChangeListener {
+ ICdmEntitySessionEnabled, ICdmChangeListener, IContextListener {
private static final String RESTORING_TAXON_NAVIGATOR = Messages.TaxonNavigator_RESTORE;
private ICdmEntitySession cdmEntitySession;
- private String partNameCache;
-
private IDataChangeBehavior dataChangeBehavior;
private Root root;
@Inject
public TaxonNavigatorE4() {
+ CdmStore.getContextManager().addContextListener(this);
}
@PostConstruct
viewer.setContentProvider(new TaxonNavigatorContentProviderE4());
viewer.setLabelProvider(new TaxonNavigatorLabelProviderE4());
- viewer.setInput(getInitialInput());
+ viewer.addDoubleClickListener(event->{
+ ISelection selection = event.getSelection();
+ if(selection instanceof IStructuredSelection){
+ Object firstElement = ((IStructuredSelection) selection).getFirstElement();
+ if(firstElement instanceof ICdmBase){
+ NavigationUtil.openEditor((ICdmBase) firstElement, viewer.getControl().getShell());
+ }
+ }
+ });
//propagate selection
- selectionChangedListener = (event -> selService.setSelection(AbstractUtility.getElementsFromSelectionChangedEvent(event)));
+ selectionChangedListener = (event -> selService.setSelection(event.getSelection()));
viewer.addSelectionChangedListener(selectionChangedListener);
//create context menu
menuService.registerContextMenu(viewer.getControl(), "eu.etaxonomy.taxeditor.navigator.popupmenu.taxonnavigator");
+ menuService.registerContextMenu(viewer.getControl(), "eu.etaxonomy.taxeditor.store.menu.import");
init();
}
CdmApplicationState.getCurrentDataChangeService().register(this);
}
CdmStore.getLoginManager().addObserver(this);
+ viewer.setInput(getInitialInput());
}
/**
return true;
}
- //FIXME E4 migrate double click
-// /** {@inheritDoc} */
-// @Override
-// protected void handleDoubleClick(DoubleClickEvent event) {
-// ISelection selection = event.getSelection();
-// if(selection instanceof IStructuredSelection){
-// Object firstElement = ((IStructuredSelection) selection).getFirstElement();
-// if(firstElement instanceof ICdmBase){
-// NavigationUtil.openEditor((ICdmBase) firstElement);
-// }
-// }
-// // If the double click is passed up to the super-class it will
-// // expand/collapse trees.
-// // We do not want that
-// // super.handleDoubleClick(anEvent);
-// }
-
@Override
public boolean onComplete() {
return true;
propertyPathsMap.put("childNodes", taxonNodePropertyPaths); //$NON-NLS-1$
return propertyPathsMap;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void contextStop(IMemento memento, IProgressMonitor monitor) {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void contextStart(IMemento memento, IProgressMonitor monitor) {
+ if(viewer!=null){
+ init();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void contextRefresh(IProgressMonitor monitor) {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
+ }
}