ref #6909 Add "Link with editor" icon to navigator toolbar
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / TaxonNavigatorDataChangeBehavior.java
index b1a636182f437497435f86860f87cc197b8712d8..19ee3feefb5d0fa2abfa412df1c9c1eecb0a5fb4 100644 (file)
@@ -17,11 +17,10 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
 
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
@@ -29,7 +28,7 @@ import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour;
 import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
-import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 
 /**
  * <p>TaxonNavigatorDataChangeBehavior class.</p>
@@ -41,7 +40,9 @@ import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements
                IDataChangeBehavior {
 
-       private final TaxonNavigator source;
+    private static final String UPDATING_TAXON_NAVIGATOR = Messages.TaxonNavigatorDataChangeBehavior_UPDATE_NAVIGATOR;
+
+    private final TaxonNavigator source;
 
        private Set<CdmBase> staleObjects;
 
@@ -77,7 +78,7 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
                        Set<CdmBase> affectedObjects = event.getAffectedObjects();
                        if(affectedObjects != null) {
                            for(CdmBase cb : affectedObjects) {
-                               staleObjects.add((CdmBase)HibernateProxyHelper.deproxy(cb));
+                               staleObjects.add(HibernateProxyHelper.deproxy(cb));
                            }
                        }
 
@@ -87,25 +88,6 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
                                return true;
                        }
 
-                       // name updates of the accepted taxon of open editors are relevant
-                       if(eventType == EventType.UPDATE && event.getEntity() instanceof TaxonNameBase){
-                               TaxonNameBase name = null;
-                               if(eventEntity instanceof TaxonNameBase){
-                                       name = (TaxonNameBase) eventEntity;
-                               }else if(eventEntity instanceof Taxon){
-                                       name = ((Taxon) eventEntity).getName();
-                               }else{
-                                       continue;
-                               }
-
-                               Set<IEditorPart> openEditors = NavigationUtil.getOpenEditors();
-                               /*for(IEditorPart editor : openEditors){
-
-                                       if(name.equals(((TaxonEditorInput) editor.getEditorInput()).getTaxon().getName())){
-                                               return true;
-                                       }
-                               }*/
-                       }
                        if (eventType == EventType.DELETE){
                                return true;
                        }
@@ -113,7 +95,7 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
 
 
                        if(eventType == EventType.UPDATE && event.getEntity() instanceof Taxon){
-                               TaxonNameBase name = null;
+                               TaxonName name = null;
                                if(eventEntity instanceof Taxon){
                                        name = ((Taxon) eventEntity).getName();
                                }else{
@@ -155,24 +137,21 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
 //             }
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
-        */
        /** {@inheritDoc} */
        @Override
        public void reactOnDataChange(CdmDataChangeMap events) {
                if(isRelevant(events)){
 
                        final Display display = Display.getCurrent();
-                       Job job = new Job("Updating Taxon Navigator") {
+                       Job job = new Job(UPDATING_TAXON_NAVIGATOR) {
 
                                @Override
                                protected IStatus run(IProgressMonitor monitor) {
-                                       monitor.beginTask("Updating Taxon Navigator", 3);
+                                       monitor.beginTask(UPDATING_TAXON_NAVIGATOR, 3);
                                        monitor.worked(1);
 
                                        // clear the session completely
-                                       monitor.subTask("Clearing Taxon Navigators session");
+                                       monitor.subTask(Messages.TaxonNavigatorDataChangeBehavior_CLEAR_SESSION);
                                        display.asyncExec(new Runnable() {
                                                 @Override
                                                 public void run() {
@@ -188,7 +167,7 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
                                        // seems to improve the situation but not sure if final solution
                                        monitor.worked(1);
 
-                                       monitor.subTask("Refreshing viewer");
+                                       monitor.subTask(Messages.TaxonNavigatorDataChangeBehavior_REFRESH_VIEWER);
 
                                        display.asyncExec(new Runnable() {
                                            @Override