revert contextRefresh implementation
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / e4 / TaxonNavigatorE4.java
index 062ef63f9003022470023bc04b78d77122b534bb..74284994ae746922325ceb6ef9c1281f539eac8d 100644 (file)
@@ -219,7 +219,13 @@ public class TaxonNavigatorE4 implements
        /** {@inheritDoc} */
        protected IAdaptable getInitialInput() {
                Comparator<TaxonNodeDto> comparator;
-               NavigatorOrderEnum orderValue = PreferencesUtil.getSortNodes();
+               NavigatorOrderEnum orderValue = NavigatorOrderEnum.RankAndNameOrder;
+               try{
+                   orderValue = PreferencesUtil.getSortNodes();
+               }catch(IllegalArgumentException e){
+
+               }
+
                if (orderValue.equals(NavigatorOrderEnum.NaturalOrder)){
                        comparator = new TaxonNodeDtoNaturalComparator();
                } else if (orderValue.equals(NavigatorOrderEnum.AlphabeticalOrder)){
@@ -305,6 +311,8 @@ public class TaxonNavigatorE4 implements
                 if (taxonNode != null){
                     viewer.reveal(taxonNode);
                     viewer.setSelection(new StructuredSelection(taxonNode));
+                }else{
+                    //TODO: show message in status bar
                 }
 
                }
@@ -331,6 +339,9 @@ public class TaxonNavigatorE4 implements
                        }
                }
                if(!viewer.getTree().isDisposed()){
+                   if (CdmStore.isActive()){
+                       viewer.setInput(getInitialInput());
+                   }
                    viewer.refresh();
                }
 
@@ -550,6 +561,7 @@ public class TaxonNavigatorE4 implements
 
     @Override
     public void onChange(CdmChangeEvent event) {
+        Object[] expandedElements = viewer.getExpandedElements();
         refresh();
         for(CdmBase cb : event.getChangedObjects()) {
                if(cb instanceof TaxonNode) {
@@ -568,6 +580,7 @@ public class TaxonNavigatorE4 implements
                 viewer.refresh();
             }
         }
+        viewer.setExpandedElements(expandedElements);
     }
 
     @Override
@@ -611,6 +624,7 @@ public class TaxonNavigatorE4 implements
      */
     @Override
     public void contextRefresh(IProgressMonitor monitor) {
+//        viewer.refresh();
     }
 
     /**
@@ -620,6 +634,19 @@ public class TaxonNavigatorE4 implements
     public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
     }
 
+    @Inject
+    @Optional
+    private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAVIGATOR)TaxonNodeDto dto){
+        if(dto!= null){
+            Object[] expandedElements = viewer.getExpandedElements();
+            refresh();
+            viewer.reveal(dto);
+            viewer.setExpandedElements(expandedElements);
+            viewer.setSelection(new StructuredSelection(dto));
+
+        }
+    }
+
     @Inject
     @Optional
     private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAVIGATOR)boolean refresh){