ref #10186: remove datachangeBehaviour classes
authorKatja Luther <k.luther@bgbm.org>
Fri, 18 Nov 2022 16:59:59 +0000 (17:59 +0100)
committerKatja Luther <k.luther@bgbm.org>
Fri, 18 Nov 2022 16:59:59 +0000 (17:59 +0100)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/e4/TaxonEditorInputDataChangeBehaviourE4_.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/KeyEditorDataChangeBehaviourE4_.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/PolytomousKeyViewPartDataChangeBehaviorE4_.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorDataChangeBehaviorE4_.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractDataChangeBehaviour_.java [deleted file]

diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/e4/TaxonEditorInputDataChangeBehaviourE4_.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/e4/TaxonEditorInputDataChangeBehaviourE4_.java
deleted file mode 100644 (file)
index 8661430..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.e4;
-
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour_;
-
-/**
- * @author pplitzner
- * @date Aug 24, 2017
- */
-public class TaxonEditorInputDataChangeBehaviourE4_ extends
-               AbstractDataChangeBehaviour_ {
-
-       private TaxonEditorInputE4 source;
-
-       public TaxonEditorInputDataChangeBehaviourE4_(TaxonEditorInputE4 taxonEditorInput) {
-               source = taxonEditorInput;
-       }
-
-       @Override
-       public void reactOnDataChange(CdmDataChangeMap events) {
-               //source.update(events);
-
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/KeyEditorDataChangeBehaviourE4_.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/KeyEditorDataChangeBehaviourE4_.java
deleted file mode 100644 (file)
index 7693471..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.key.e4;
-
-import java.util.Vector;
-
-import eu.etaxonomy.cdm.model.description.PolytomousKey;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
-import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4;
-import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour_;
-
-/**
- * @author n.hoffmann
- * @created May 5, 2011
- */
-public class KeyEditorDataChangeBehaviourE4_ extends AbstractDataChangeBehaviour_ {
-
-       private final PolytomousKeyListEditorE4 source;
-       private PolytomousKeyEditorInput input;
-
-       public KeyEditorDataChangeBehaviourE4_(PolytomousKeyListEditorE4 keyEditor) {
-               source = keyEditor;
-       }
-
-       @Override
-       public void reactOnDataChange(CdmDataChangeMap changeEvents) {
-               input = source.getEditorInput();
-
-               if(changeEvents.sizeByEventType(EventType.UPDATE) > 0){
-                       reactOnUpdate(changeEvents.getEvents(EventType.UPDATE));
-               }
-       }
-
-       @Override
-       public void reactOnUpdate(Vector<CdmDataChangeEvent> events){
-
-               for(CdmDataChangeEvent event : events){
-
-                       // update editor title
-                       if(event.getEntity() instanceof PolytomousKey){
-                               if(input.getKey().equals(event.getEntity())){
-                                       // set the name of the editor window
-                                       source.setPartName();
-                               }
-                       }
-               }
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/PolytomousKeyViewPartDataChangeBehaviorE4_.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/PolytomousKeyViewPartDataChangeBehaviorE4_.java
deleted file mode 100644 (file)
index c747531..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.navigation.key.polytomous.e4;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-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 eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.description.PolytomousKey;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
-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.navigation.l10n.Messages;
-
-/**
- *
- * @author pplitzner
- * @since Sep 28, 2017
- *
- */
-public class PolytomousKeyViewPartDataChangeBehaviorE4_ extends
-               AbstractDataChangeBehaviour_ {
-
-    private static final String UPDATING_POLYTOMOUS_KEY_VIEWER = Messages.PolytomousKeyViewPartDataChangeBehavior_UPDATE;
-    private final PolytomousKeyViewPartE4 source;
-
-       public PolytomousKeyViewPartDataChangeBehaviorE4_(
-                       PolytomousKeyViewPartE4 polytomousKeyViewPart) {
-               source = polytomousKeyViewPart;
-       }
-
-       @Override
-       public void reactOnDataChange(CdmDataChangeMap changeEvents) {
-               if(isRelevant(changeEvents)){
-                       final Display display = Display.getCurrent();
-                       Job job = new Job(UPDATING_POLYTOMOUS_KEY_VIEWER) {
-
-                               @Override
-                               protected IStatus run(IProgressMonitor monitor) {
-                                       monitor.beginTask(UPDATING_POLYTOMOUS_KEY_VIEWER, 3);
-                                       monitor.worked(1);
-
-                                       // clear the session completely
-                                       monitor.subTask(Messages.PolytomousKeyViewPartDataChangeBehavior_CLEAR);
-                                       display.asyncExec(new Runnable() {
-                                                @Override
-                        public void run() {
-//                                                      source.getConversationHolder().clear();
-                                                }
-                                       });
-                                       // FIXME completely clearing the session is a brute force approach.
-                                       // It would be much more elegant to clear only those elements that have been changed.
-                                       // I could not get that to work but we should consider workin on this because we might
-                                       // run into serious performance issues, especially when it comes to large trees
-                                       //
-                                       // at least, we moved this to a job so it can run in a background thred
-                                       // seems to improve the situation but not sure if final solution
-                                       monitor.worked(1);
-
-                                       monitor.subTask(Messages.PolytomousKeyViewPartDataChangeBehavior_REFRESH);
-
-                                       display.asyncExec(new Runnable() {
-                                           @Override
-                        public void run() {
-                                               source.refresh();
-                                           }
-                                       });
-
-
-
-                                       monitor.worked(1);
-                                       monitor.done();
-                                       return Status.OK_STATUS;
-                               }
-                       };
-
-                       job.setPriority(Job.SHORT);
-                       job.schedule();
-
-               }
-       }
-
-       private boolean isRelevant(CdmDataChangeMap changeEvents) {
-               for(CdmDataChangeEvent event : changeEvents.getAllEvents()){
-                       EventType eventType = event.getEventType();
-                       CdmBase eventEntity = event.getEntity();
-
-                       // all poyltomous key changes are relevant
-                       if((eventType == EventType.INSERT || eventType == EventType.DELETE || eventType == EventType.UPDATE)
-                                       && eventEntity instanceof PolytomousKey){
-                               return true;
-                       }
-               }
-               return false;
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorDataChangeBehaviorE4_.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorDataChangeBehaviorE4_.java
deleted file mode 100644 (file)
index 50026ea..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.navigation.navigator.e4;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-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 eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-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;
-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.l10n.Messages;
-
-/**
- * <p>TaxonNavigatorDataChangeBehavior class.</p>
- *
- * @author n.hoffmann
- * @created 01.04.2009
- * @version 1.0
- */
-public class TaxonNavigatorDataChangeBehaviorE4_ extends AbstractDataChangeBehaviour_ implements
-               IDataChangeBehavior {
-
-    private static final String UPDATING_TAXON_NAVIGATOR = Messages.TaxonNavigatorDataChangeBehavior_UPDATE_NAVIGATOR;
-
-    private final TaxonNavigatorE4 source;
-
-       private Set<CdmBase> staleObjects;
-
-       /**
-        * <p>Constructor for TaxonNavigatorDataChangeBehavior.</p>
-        *
-        * @param taxonNavigator a {@link eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator} object.
-        */
-       public TaxonNavigatorDataChangeBehaviorE4_(TaxonNavigatorE4 taxonNavigator) {
-               source = taxonNavigator;
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#isRelevant(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
-        */
-       /**
-        * <p>isRelevant</p>
-        *
-        * @param events a {@link eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap} object.
-        * @return a boolean.
-        */
-       public boolean isRelevant(CdmDataChangeMap events) {
-
-               // TODO react only on insert/update/delete of taxon and synonym objects
-               // and on update of name objects
-               boolean relevant = false;
-               staleObjects = new HashSet<CdmBase>();
-
-               for(CdmDataChangeEvent event : events.getAllEvents()){
-                       EventType eventType = event.getEventType();
-                       CdmBase eventEntity = event.getEntity();
-
-                       Set<CdmBase> affectedObjects = event.getAffectedObjects();
-                       if(affectedObjects != null) {
-                           for(CdmBase cb : affectedObjects) {
-                               staleObjects.add(HibernateProxyHelper.deproxy(cb));
-                           }
-                       }
-
-                       // all tree node changes are relevant
-                       if((eventType == EventType.INSERT || eventType == EventType.DELETE || eventType == EventType.UPDATE)
-                                       && event.getEntity() instanceof ITaxonTreeNode){
-                               return true;
-                       }
-
-                       if (eventType == EventType.DELETE){
-                               return true;
-                       }
-
-
-
-                       if(eventType == EventType.UPDATE && event.getEntity() instanceof Taxon){
-                               TaxonName name = null;
-                               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.UPDATE){
-//                             relevant = true;
-//                             CdmBase entity = event.getEntity();
-//                             if((entity instanceof TaxonNameBase)
-//                                             || (entity instanceof Taxon)
-//                                             || (entity instanceof Synonym)){
-//                                     staleObjects.add(entity);
-//                             }
-//                     }
-               }
-
-               return false;
-
-               // @deprecated
-               // react on everything except load
-//             if(events.sizeByEventType(EventType.INSERT) > 0){
-//                     return true;
-//             }else if(events.sizeByEventType(EventType.UPDATE) > 0){
-//                     return true;
-//             }else if(events.sizeByEventType(EventType.DELETE) > 0){
-//                     return true;
-//             }else{
-//                     return false;
-//             }
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void reactOnDataChange(CdmDataChangeMap events) {
-               if(isRelevant(events)){
-
-                       final Display display = Display.getCurrent();
-                       Job job = new Job(UPDATING_TAXON_NAVIGATOR) {
-
-                               @Override
-                               protected IStatus run(IProgressMonitor monitor) {
-                                       monitor.beginTask(UPDATING_TAXON_NAVIGATOR, 3);
-                                       monitor.worked(1);
-
-                                       // clear the session completely
-                                       monitor.subTask(Messages.TaxonNavigatorDataChangeBehavior_CLEAR_SESSION);
-                                       display.asyncExec(new Runnable() {
-                                                @Override
-                                                public void run() {
-                                                        //TODO: check wether we can remove this
-                                                        
-                                                        //source.getConversationHolder().clear();
-                                                }
-                                       });
-                                       // FIXME completely clearing the session is a brute force approach.
-                                       // It would be much more elegant to clear only those elements that have been changed.
-                                       // I could not get that to work but we should consider workin on this because we might
-                                       // run into serious performance issues, especially when it comes to large trees
-                                       //
-                                       // at least, we moved this to a job so it can run in a background thred
-                                       // seems to improve the situation but not sure if final solution
-                                       monitor.worked(1);
-
-                                       monitor.subTask(Messages.TaxonNavigatorDataChangeBehavior_REFRESH_VIEWER);
-
-                                       display.asyncExec(new Runnable() {
-                                           @Override
-                                           public void run() {
-                                               if(staleObjects != null && staleObjects.size() > 0) {
-                                                  source.refresh(staleObjects);
-                                               } else {
-                                                   source.refresh();
-                                               }
-                                           }
-                                       });
-
-
-
-                                       monitor.worked(1);
-                                       monitor.done();
-                                       return Status.OK_STATUS;
-                               }
-                       };
-
-                       job.setPriority(Job.SHORT);
-                       job.schedule();
-
-               }
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractDataChangeBehaviour_.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractDataChangeBehaviour_.java
deleted file mode 100644 (file)
index 6526e36..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.model;
-
-import java.util.Vector;
-
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-
-/**
- * Reactions on specific EventyTypes are overridden here for convenience.
- *
- * @author n.hoffmann
- * @created 09.04.2009
- * @version 1.0
- */
-public abstract class AbstractDataChangeBehaviour_ implements IDataChangeBehavior {
-       
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange(java.lang.Object, java.util.List)
-        */
-       /** {@inheritDoc} */
-       public abstract void reactOnDataChange(CdmDataChangeMap events);
-
-       /**
-        * {@inheritDoc}
-        *
-        * Implementors should overwrite this method if needed
-        * @see eu.etaxonomy.taxeditor.model.IDataChangeBehavior#reactOnDelete(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent)
-        */
-       public void reactOnDelete(Vector<CdmDataChangeEvent> event) {}
-
-       /**
-        * {@inheritDoc}
-        *
-        * Implementors should overwrite this method if needed
-        * @see eu.etaxonomy.taxeditor.model.IDataChangeBehavior#reactOnInsert(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent)
-        */
-       public void reactOnInsert(Vector<CdmDataChangeEvent> event) {}
-
-       /**
-        * {@inheritDoc}
-        *
-        * Implementors should overwrite this method if needed
-        * @see eu.etaxonomy.taxeditor.model.IDataChangeBehavior#reactOnUpdate(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent)
-        */
-       public void reactOnUpdate(Vector<CdmDataChangeEvent> event) {}
-}