From c69c2dcde39c9f8a89408d5b977c9b8c5a9e8deb Mon Sep 17 00:00:00 2001 From: Cherian Mathew Date: Mon, 24 Aug 2015 14:33:09 +0200 Subject: [PATCH] Add entity type to CdmChangeEvent and fixes #5139 --- .../etaxonomy/cdm/api/application/CdmChangeEvent.java | 10 ++++++++++ .../taxeditor/navigation/navigator/TaxonNavigator.java | 5 +++++ .../operation/RemotingDeleteTaxonNodeOperation.java | 1 + .../taxeditor/operation/RemotingCdmOperation.java | 6 +++--- .../taxeditor/ui/dialog/RemotingLoginDialog.java | 4 ++-- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmChangeEvent.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmChangeEvent.java index 26fb75d68..4dddf33c8 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmChangeEvent.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmChangeEvent.java @@ -30,6 +30,7 @@ public class CdmChangeEvent { private final Action action; private final Set changedObjects; private final Class sourceType; + private Class entityType; private Object source; public CdmChangeEvent(Action action, Set changedObjects, Class sourceType) { @@ -45,6 +46,11 @@ public class CdmChangeEvent { this.sourceType = sourceType; } + public CdmChangeEvent(Action action, Set changedObjects, Class sourceType, Class entityType) { + this(action, changedObjects, sourceType); + this.entityType = entityType; + } + public CdmChangeEvent(Action action, Set changedObjects, Object source) { this(action, changedObjects, source.getClass()); this.source = source; @@ -79,6 +85,10 @@ public class CdmChangeEvent { return source; } + public Class getEntityType() { + return entityType; + } + public boolean hasChanges() { return changedObjects != null && !changedObjects.isEmpty(); } diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java index ccf26252a..d41b1489f 100644 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java @@ -33,6 +33,7 @@ import org.eclipse.ui.navigator.CommonNavigator; import eu.etaxonomy.cdm.api.application.CdmApplicationState; import eu.etaxonomy.cdm.api.application.CdmChangeEvent; +import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action; import eu.etaxonomy.cdm.api.application.ICdmChangeListener; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; @@ -524,6 +525,10 @@ public class TaxonNavigator extends CommonNavigator implements */ @Override public void onChange(CdmChangeEvent event) { + if(event.getAction() == Action.Delete && Classification.class.equals(event.getEntityType())) { + refresh(); + return; + } for(CdmBase cb : event.getChangedObjects()) { if(cb instanceof TaxonNode) { TaxonNode tn = (TaxonNode)cb; diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/RemotingDeleteTaxonNodeOperation.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/RemotingDeleteTaxonNodeOperation.java index 0445bc10b..e1df3bd07 100644 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/RemotingDeleteTaxonNodeOperation.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/RemotingDeleteTaxonNodeOperation.java @@ -63,6 +63,7 @@ public class RemotingDeleteTaxonNodeOperation extends RemotingCdmUpdateOperation if(node instanceof TaxonNode) { return CdmApplicationState.getCurrentAppConfig().getTaxonNodeService().deleteTaxonNode(((TaxonNode)node).getUuid(), config); } else if(node instanceof Classification) { + entityType = Classification.class; return CdmApplicationState.getCurrentAppConfig().getClassificationService().delete(((Classification)node).getUuid()); } } else { diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmOperation.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmOperation.java index 7084fa68a..129b96cdb 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmOperation.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmOperation.java @@ -33,6 +33,7 @@ public abstract class RemotingCdmOperation extends AbstractOperation { private final Object source; private final Action action; private final boolean async; + protected Class entityType; public RemotingCdmOperation(String label, Action action, Object source, boolean async) { super(label); @@ -66,9 +67,8 @@ public abstract class RemotingCdmOperation extends AbstractOperation { protected void fireDataChangeEvent(UpdateResult updateResult) { Set updatedObjects = updateResult.getUpdatedObjects(); - if(updatedObjects != null && !updatedObjects.isEmpty()) { - CdmApplicationState.getCurrentDataChangeService().fireChangeEvent(new CdmChangeEvent(action, updatedObjects, source.getClass()), async); - } + CdmApplicationState.getCurrentDataChangeService() + .fireChangeEvent(new CdmChangeEvent(action, updatedObjects, source.getClass(), entityType), async); } protected void fireDataChangeEvent(CdmBase cdmBase) { diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java index ee7107e08..19e24f073 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java @@ -689,9 +689,9 @@ public class RemotingLoginDialog extends Dialog { String username, password; IEclipsePreferences preferences = ConfigurationScope.INSTANCE.getNode(STORE_PREFERENCES_NODE); Preferences credentialsPrefs = preferences.node(LOGIN_NODE); - username = credentialsPrefs.get(getUsernamePrefKey(), ""); + username = credentialsPrefs.get(getUsernamePrefKey(), txtLogin.getText()); txtLogin.setText(username); - password = credentialsPrefs.get(getPasswordPrefKey(), ""); + password = credentialsPrefs.get(getPasswordPrefKey(),txtPassword.getText()); txtPassword.setText(password); if(username.isEmpty() || password.isEmpty()) { autoConnect = false; -- 2.34.1