From: Cherian Mathew Date: Wed, 22 Jul 2015 07:39:09 +0000 (+0200) Subject: Add remoting operation / handlers for key list editor X-Git-Tag: remoting-3.9.0~81 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/9bc47800b7474a0cde2b022ac20bc8c97cd345a2 Add remoting operation / handlers for key list editor --- diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/EntityCacherDebugResult.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/EntityCacherDebugResult.java index ca7ac3502..85012f237 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/EntityCacherDebugResult.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/EntityCacherDebugResult.java @@ -123,13 +123,15 @@ public class EntityCacherDebugResult { sb.append(System.getProperty("line.separator")); CdmEntityInfo cei = entry.getKey(); CdmBase cb = (CdmBase) cei.getObject(); - Object cbParent = cei.getParent().getObject(); + sb.append(" - " + cei.getField().getName() + ":" + cb.getUserFriendlyTypeName() + "/" + cb.getId()); + if(cei.getParent() != null) { + Object cbParent = cei.getParent().getObject(); + sb.append(" in entity " + cbParent.getClass().getCanonicalName()); + if(cbParent instanceof CdmBase) { - sb.append(" - " + cei.getField().getName() + ":" + cb.getUserFriendlyTypeName() + "/" + cb.getId() + - " in entity " + cbParent.getClass().getCanonicalName()); - if(cbParent instanceof CdmBase) { - sb.append(" with id : " + ((CdmBase)cbParent).getId()); + sb.append(" with id : " + ((CdmBase)cbParent).getId()); + } } sb.append(System.getProperty("line.separator")); sb.append(" -- entity belongs to cache(s) : " + getCachesContainingEntity(cb)); @@ -138,12 +140,18 @@ public class EntityCacherDebugResult { CdmEntityInfo dupCei = entry.getValue(); CdmBase dupCb = (CdmBase) dupCei.getObject(); - Object dupCbParent = dupCei.getParent().getObject(); - sb.append(" - " + dupCei.getField().getName() + ":" + dupCb.getUserFriendlyTypeName() + "/" + dupCb.getId() + - " in entity " + dupCbParent.getClass().getCanonicalName()); - if(dupCbParent instanceof CdmBase) { - sb.append(" with id : " + ((CdmBase)dupCbParent).getId()); + String dupCeiFieldName = ""; + if(dupCei.getField() != null) { + dupCeiFieldName = dupCei.getField().getName(); + } + sb.append(" - " + dupCeiFieldName + ":" + dupCb.getUserFriendlyTypeName() + "/" + dupCb.getId()); + if(dupCei.getParent() != null) { + Object dupCbParent = dupCei.getParent().getObject(); + sb.append(" in entity " + dupCbParent.getClass().getCanonicalName()); + if(dupCbParent instanceof CdmBase) { + sb.append(" with id : " + ((CdmBase)dupCbParent).getId()); + } } sb.append(System.getProperty("line.separator")); sb.append(" -- entity belongs to cache(s) : " + getCachesContainingEntity(dupCb)); @@ -350,18 +358,11 @@ public class EntityCacherDebugResult { childCei.setField(field); if(o != null) { + boolean isProxy = ProxyUtils.isProxy(o); - if(o instanceof HibernateProxy) { - isHibernateProxy = true; - } - - if(o instanceof PersistentCollection) { - isPersistentCollection = true; - } - childCei.setObject(o); - childCei.setProxy(isHibernateProxy || isPersistentCollection); - if(!isHibernateProxy && !isPersistentCollection) { - + childCei.setProxy(isProxy); + if(!isProxy) { + childCei.setObject(ProxyUtils.deproxy(o)); if(CdmBase.class.isAssignableFrom(o.getClass())) { logger.info("found initialised cdm entity '" + fieldName + "' in object of type " + clazz.getName() + " with id " + cdmEntity.getId()); cdmEntityInSubGraph = (CdmBase)o; diff --git a/eu.etaxonomy.taxeditor.editor/plugin.xml b/eu.etaxonomy.taxeditor.editor/plugin.xml index d06b782aa..2129cf851 100644 --- a/eu.etaxonomy.taxeditor.editor/plugin.xml +++ b/eu.etaxonomy.taxeditor.editor/plugin.xml @@ -1109,6 +1109,24 @@ class="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.ToggleShowOnlyIndividualAssociationsHandler" commandId="eu.etaxonomy.taxeditor.editor.handler.showOnlyIndividualAssociations"> + + + + + + + + + + + + + + + + diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java index 1edd65393..2ef447a68 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java @@ -17,8 +17,12 @@ import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.forms.editor.FormEditor; +import eu.etaxonomy.cdm.api.application.CdmApplicationState; +import eu.etaxonomy.cdm.api.application.CdmChangeEvent; +import eu.etaxonomy.cdm.api.application.ICdmChangeListener; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; +import eu.etaxonomy.cdm.model.common.CdmBase; import eu.etaxonomy.cdm.model.description.PolytomousKey; import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput; @@ -35,7 +39,7 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils; * @version 1.0 */ public class KeyEditor extends FormEditor implements IConversationEnabled, - IDirtyMarkable, IPartContentHasDetails { + IDirtyMarkable, IPartContentHasDetails, ICdmChangeListener { public static final String ID = "eu.etaxonomy.taxeditor.editor.key"; @@ -57,6 +61,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled, public void init(IEditorSite site, IEditorInput input) throws PartInitException { polytomousKeyEditorInput = (PolytomousKeyEditorInput)input; + CdmApplicationState.getCurrentDataChangeService().register(this); super.init(site, input); } @@ -201,6 +206,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled, conversation.unregisterForDataStoreChanges(this); conversation.close(); polytomousKeyEditorInput.dispose(); + CdmApplicationState.getCurrentDataChangeService().unregister(this); super.dispose(); } @@ -236,4 +242,18 @@ public class KeyEditor extends FormEditor implements IConversationEnabled, PolytomousKey key = polytomousKeyEditorInput.getKey(); setPartName(key.getTitleCache()); } + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent) + */ + @Override + public void onChange(CdmChangeEvent event) { + editorDirtyStateChanged(); + IEditorPart activeEditor = getActiveEditor(); + if (activeEditor instanceof IDirtyMarkable) { + for(CdmBase cdmBase : event.getChangedObjects()) { + ((IDirtyMarkable) activeEditor).changed(cdmBase); + } + } + } } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorLabels.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorLabels.java new file mode 100644 index 000000000..82ee611fa --- /dev/null +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorLabels.java @@ -0,0 +1,24 @@ +// $Id$ +/** +* Copyright (C) 2015 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.polytomous; + +/** + * @author cmathew + * @date 21 Jul 2015 + * + */ +public interface PolytomousKeyEditorLabels { + + public static final String CREATE_CHILD_POLYTOMOUS_KEY_NODE_LABEL = "Create Child Polytomous Key Node"; + public static final String CREATE_SIBLING_POLYTOMOUS_KEY_NODE_LABEL = "Create Sibling Polytomous Key Node"; + + public static final String NO_KEY_NODE_FOR_CHILD_SELECTED_MESSAGE = "No Key Node Selected.Please right-click on a specific key node to create a new child key node."; + public static final String NO_KEY_NODE_FOR_SIBLING_SELECTED_MESSAGE = "No Key Node Selected.Please right-click on a specific key node to create a new sibling key node."; +} diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListEditor.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListEditor.java index cbbeb8b8b..ce2d59515 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListEditor.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListEditor.java @@ -262,7 +262,7 @@ public class PolytomousKeyListEditor extends EditorPart implements } public PolytomousKey getViewerInputKey() { - return (PolytomousKey) viewer.getInput(); + return ((PolytomousKeyEditorInput) viewer.getInput()).getKey(); } private void createMenu() { // register context menu @@ -325,9 +325,9 @@ public class PolytomousKeyListEditor extends EditorPart implements for (PolytomousKeyNode child : children) { viewer.update(child, null); } - } - + } + viewer.refresh(); } /* (non-Javadoc) diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/RemotingCreateChildPolytomousKeyNodeHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/RemotingCreateChildPolytomousKeyNodeHandler.java new file mode 100644 index 000000000..1d679a851 --- /dev/null +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/RemotingCreateChildPolytomousKeyNodeHandler.java @@ -0,0 +1,90 @@ +// $Id$ +/** + * Copyright (C) 2015 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.polytomous.handler; + +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.operations.AbstractOperation; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.handlers.HandlerUtil; + +import eu.etaxonomy.cdm.model.description.PolytomousKey; +import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; +import eu.etaxonomy.taxeditor.editor.key.KeyEditor; +import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage; +import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorLabels; +import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListEditor; +import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.RemotingCreatePolytomousKeyNodeOperation; +import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler; + +/** + * @author cmathew + * @date 21 Jul 2015 + * + */ +public class RemotingCreateChildPolytomousKeyNodeHandler extends RemotingCdmHandler { + + private PolytomousKeyNode parentNode; + + public RemotingCreateChildPolytomousKeyNodeHandler() { + super(PolytomousKeyEditorLabels.CREATE_CHILD_POLYTOMOUS_KEY_NODE_LABEL); + } + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#allowOperations(org.eclipse.core.commands.ExecutionEvent) + */ + @Override + public IStatus allowOperations(ExecutionEvent event) { + IEditorPart editor = HandlerUtil.getActiveEditor(event); + + if (editor instanceof KeyEditor) { + IPolytomousKeyEditorPage editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor) + .getActiveEditor(); + + if (editorPage instanceof PolytomousKeyListEditor) { + PolytomousKeyListEditor klEditor = (PolytomousKeyListEditor) editorPage; + if(klEditor.getTableItemCount() == 0) { + PolytomousKey pk = klEditor.getViewerInputKey(); + parentNode = pk.getRoot(); + + } else { + IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event); + if (selection.getFirstElement() instanceof PolytomousKeyNode) { + parentNode = (PolytomousKeyNode) selection.getFirstElement(); + } else { + return new Status(IStatus.ERROR, + "unknown", + PolytomousKeyEditorLabels.NO_KEY_NODE_FOR_CHILD_SELECTED_MESSAGE); + } + } + } + } + return Status.OK_STATUS; + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#prepareOperation(org.eclipse.core.commands.ExecutionEvent) + */ + @Override + public AbstractOperation prepareOperation(ExecutionEvent event) { + return new RemotingCreatePolytomousKeyNodeOperation(event.getTrigger(), false, parentNode); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#onComplete() + */ + @Override + public void onComplete() { + // TODO Auto-generated method stub + + } + +} diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/RemotingCreateSiblingPolytomousKeyNodeHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/RemotingCreateSiblingPolytomousKeyNodeHandler.java new file mode 100644 index 000000000..7f726a8cb --- /dev/null +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/RemotingCreateSiblingPolytomousKeyNodeHandler.java @@ -0,0 +1,72 @@ +// $Id$ +/** +* Copyright (C) 2015 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.polytomous.handler; + +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.operations.AbstractOperation; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.handlers.HandlerUtil; + +import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; +import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorLabels; +import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.RemotingCreatePolytomousKeyNodeOperation; +import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler; + +/** + * @author cmathew + * @date 21 Jul 2015 + * + */ +public class RemotingCreateSiblingPolytomousKeyNodeHandler extends RemotingCdmHandler { + + private PolytomousKeyNode parentNode; + + public RemotingCreateSiblingPolytomousKeyNodeHandler() { + super(PolytomousKeyEditorLabels.CREATE_SIBLING_POLYTOMOUS_KEY_NODE_LABEL); + } + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#allowOperations(org.eclipse.core.commands.ExecutionEvent) + */ + @Override + public IStatus allowOperations(ExecutionEvent event) { + + IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event); + + if (selection.getFirstElement() instanceof PolytomousKeyNode) { + parentNode = (PolytomousKeyNode) selection.getFirstElement(); + } else { + return new Status(IStatus.ERROR, + "unknown", + PolytomousKeyEditorLabels.NO_KEY_NODE_FOR_SIBLING_SELECTED_MESSAGE); + } + + return Status.OK_STATUS; + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#prepareOperation(org.eclipse.core.commands.ExecutionEvent) + */ + @Override + public AbstractOperation prepareOperation(ExecutionEvent event) { + return new RemotingCreatePolytomousKeyNodeOperation(event.getTrigger(), false, parentNode.getParent()); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#onComplete() + */ + @Override + public void onComplete() { + // TODO Auto-generated method stub + + } + +} diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/CreateNodeOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/CreateNodeOperation.java index fcf5b9171..aa1a363f9 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/CreateNodeOperation.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/CreateNodeOperation.java @@ -9,7 +9,6 @@ import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; -import eu.etaxonomy.cdm.api.application.CdmApplicationState; import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation; import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; @@ -39,7 +38,7 @@ public class CreateNodeOperation extends AbstractPostTaxonOperation { childNode = PolytomousKeyNode.NewInstance(); parentNode.addChild(childNode); - childNode = CdmApplicationState.getCurrentAppConfig().getPolytomousKeyNodeService().merge(childNode); + return postExecute(childNode); } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/RemotingCreatePolytomousKeyNodeOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/RemotingCreatePolytomousKeyNodeOperation.java new file mode 100644 index 000000000..544c89b63 --- /dev/null +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/RemotingCreatePolytomousKeyNodeOperation.java @@ -0,0 +1,48 @@ +// $Id$ +/** +* Copyright (C) 2015 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.polytomous.operation; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; + +import eu.etaxonomy.cdm.api.application.CdmApplicationState; +import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action; +import eu.etaxonomy.cdm.model.common.CdmBase; +import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; +import eu.etaxonomy.taxeditor.operation.RemotingCdmMergeOperation; + +/** + * @author cmathew + * @date 21 Jul 2015 + * + */ +public class RemotingCreatePolytomousKeyNodeOperation extends RemotingCdmMergeOperation { + + private final PolytomousKeyNode parentNode; + + private final static String LABEL = "Create new polytomous key node"; + + public RemotingCreatePolytomousKeyNodeOperation(Object source, + boolean async, + PolytomousKeyNode parentNode){ + super(LABEL, Action.Create, source, async); + this.parentNode = parentNode; + } + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.operation.RemotingCdmMergeOperation#doMergeExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable) + */ + @Override + protected CdmBase doMergeExecute(IProgressMonitor monitor, IAdaptable info) throws Exception { + PolytomousKeyNode childNode = PolytomousKeyNode.NewInstance(); + parentNode.addChild(childNode); + return CdmApplicationState.getCurrentAppConfig().getPolytomousKeyNodeService().merge(childNode); + } + +} diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmMergeOperation.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmMergeOperation.java index 004c18312..b93937e9d 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmMergeOperation.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmMergeOperation.java @@ -12,6 +12,7 @@ package eu.etaxonomy.taxeditor.operation; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action; import eu.etaxonomy.cdm.model.common.CdmBase; @@ -55,8 +56,7 @@ public abstract class RemotingCdmMergeOperation extends RemotingCdmOperation { */ @Override protected IStatus onComplete(boolean success) { - // TODO Auto-generated method stub - return null; + return Status.OK_STATUS; } } 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 8a856d27e..7084fa68a 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 @@ -71,6 +71,12 @@ public abstract class RemotingCdmOperation extends AbstractOperation { } } + protected void fireDataChangeEvent(CdmBase cdmBase) { + if(cdmBase != null) { + CdmApplicationState.getCurrentDataChangeService().fireChangeEvent(new CdmChangeEvent(action, cdmBase, source.getClass()), async); + } + } + /* (non-Javadoc) * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable) */