From e7923b05560383e8cf8d84aa2b1a20bd10c01895 Mon Sep 17 00:00:00 2001 From: Cherian Mathew Date: Mon, 21 Sep 2015 11:41:03 +0200 Subject: [PATCH] #5247 Use updated entities --- .../polytomous/PolytomousKeyListEditor.java | 10 ++----- ...otingCreatePolytomousKeyNodeOperation.java | 6 ++-- .../store/CdmUIDataChangeService.java | 16 +++++----- .../ui/element/KeyStatementElement.java | 29 +++++++++++++------ .../ui/element/MultilanguageTextElement.java | 8 ++--- .../key/PolytomousKeyNodeDetailElement.java | 9 +++--- 6 files changed, 43 insertions(+), 35 deletions(-) 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 7b8fb00a5..4ecb14983 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 @@ -10,8 +10,6 @@ package eu.etaxonomy.taxeditor.editor.key.polytomous; -import java.util.List; - import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.action.GroupMarker; import org.eclipse.jface.action.MenuManager; @@ -318,11 +316,9 @@ public class PolytomousKeyListEditor extends EditorPart implements } if (element instanceof PolytomousKeyNode) { - List children = ((PolytomousKeyNode) element) - .getParent().getChildren(); - viewer.update(((PolytomousKeyNode) element) - .getParent(), null); - for (PolytomousKeyNode child : children) { + PolytomousKeyNode node = (PolytomousKeyNode) element; + viewer.update(node, null); + for (PolytomousKeyNode child : node.getChildren()) { viewer.update(child, null); } 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 index 77f037346..61c75bb8b 100644 --- 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 @@ -15,10 +15,8 @@ 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.common.LanguageString; import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; import eu.etaxonomy.taxeditor.operation.RemotingCdmMergeOperation; -import eu.etaxonomy.taxeditor.store.CdmStore; /** * @author cmathew @@ -44,8 +42,8 @@ public class RemotingCreatePolytomousKeyNodeOperation extends RemotingCdmMergeOp protected CdmBase doMergeExecute(IProgressMonitor monitor, IAdaptable info) throws Exception { PolytomousKeyNode childNode = PolytomousKeyNode.NewInstance(); parentNode.addChild(childNode); - childNode.getModifyingText().put(CdmStore.getDefaultLanguage(),LanguageString.NewInstance("",CdmStore.getDefaultLanguage())); - return CdmApplicationState.getCurrentAppConfig().getPolytomousKeyNodeService().merge(childNode); + //childNode.getModifyingText().put(CdmStore.getDefaultLanguage(),LanguageString.NewInstance("",CdmStore.getDefaultLanguage())); + return CdmApplicationState.getCurrentAppConfig().getPolytomousKeyNodeService().merge(parentNode); } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmUIDataChangeService.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmUIDataChangeService.java index 0a9d4451f..6757ad969 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmUIDataChangeService.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmUIDataChangeService.java @@ -27,6 +27,7 @@ public class CdmUIDataChangeService extends CdmDataChangeService { */ @Override public void fireChangeEvent(final CdmChangeEvent event, boolean async) { + for(final ICdmChangeListener listener : listeners) { // Update the user interface asynchronously if(async) { @@ -36,14 +37,15 @@ public class CdmUIDataChangeService extends CdmDataChangeService { listener.onChange(event); } }); + } else { + // Update the user interface synchronously + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + listener.onChange(event); + } + }); } - // Update the user interface synchronously - Display.getDefault().syncExec(new Runnable() { - @Override - public void run() { - listener.onChange(event); - } - }); } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/KeyStatementElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/KeyStatementElement.java index 8ea582219..386a8a8cf 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/KeyStatementElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/KeyStatementElement.java @@ -1,9 +1,9 @@ // $Id$ /** * Copyright (C) 2007 EDIT - * European Distributed Institute of Taxonomy + * 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. */ @@ -13,6 +13,7 @@ package eu.etaxonomy.taxeditor.ui.element; import org.eclipse.jface.util.PropertyChangeEvent; import eu.etaxonomy.cdm.model.description.KeyStatement; +import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; /** * @author n.hoffmann @@ -52,9 +53,19 @@ public class KeyStatementElement extends MultilanguageTextElement { return keyStatement; } + public void update(PolytomousKeyNode node) { + if(node.getStatement() == null) { + node.setStatement(KeyStatement.NewInstance(element_languageString.getLanguageString().getLanguage(), + element_languageString.getLanguageString().getText())); + } else { + node.getStatement().getLabel().put(element_languageString.getLanguageString().getLanguage(), + element_languageString.getLanguageString()); + } + } + /* * (non-Javadoc) - * + * * @see * eu.etaxonomy.taxeditor.ui.forms.MultilanguageTextElement#propertyChange * (org.eclipse.jface.util.PropertyChangeEvent) @@ -64,24 +75,24 @@ public class KeyStatementElement extends MultilanguageTextElement { if (event == null) { return; } - + if (keyStatement == null) { Object eventSource = event.getSource(); if (eventSource == element_languageString) { - + if(element_languageString.getLanguageString() != null) { - // for the case when the user copy / pastes text into the + // for the case when the user copy / pastes text into the // (LanguageStringWithLabelElement) element_languageString text field setKeyStatement(KeyStatement.NewInstance(element_languageString.getLanguageString().getLanguage(), element_languageString.getLanguageString().getText())); } else { - setKeyStatement(KeyStatement.NewInstance()); + //setKeyStatement(KeyStatement.NewInstance()); } } } - + super.propertyChange(event); - + } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java index be80e262f..25ef4b2d1 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java @@ -197,10 +197,10 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements if (multilanguageText != null) { if (multilanguageText.isEmpty()) { - multilanguageText.put( - CdmStore.getDefaultLanguage(), - LanguageString.NewInstance("", - CdmStore.getDefaultLanguage())); +// multilanguageText.put( +// CdmStore.getDefaultLanguage(), +// LanguageString.NewInstance("", +// CdmStore.getDefaultLanguage())); } if (PreferencesUtil.isMultilanguageTextEditingCapability()) { combo_language.setTerms(getLanguages()); diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyNodeDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyNodeDetailElement.java index 46c95c83d..29cee3d5e 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyNodeDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyNodeDetailElement.java @@ -1,5 +1,5 @@ /** - * + * */ package eu.etaxonomy.taxeditor.ui.section.key; @@ -16,7 +16,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement; /** * @author n.hoffmann - * + * */ public class PolytomousKeyNodeDetailElement extends AbstractCdmDetailElement { @@ -97,7 +97,7 @@ public class PolytomousKeyNodeDetailElement extends /* * (non-Javadoc) - * + * * @see * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java * .lang.Object) @@ -108,7 +108,8 @@ public class PolytomousKeyNodeDetailElement extends getEntity().getParent().setQuestion( element_question.getKeyStatement()); } else if (eventSource == element_statement) { - getEntity().setStatement(element_statement.getKeyStatement()); + //getEntity().setStatement(element_statement.getKeyStatement()); + element_statement.update(getEntity()); } else if (eventSource == selection_feature) { getEntity().getParent().setFeature(selection_feature.getEntity()); } else if (eventSource == selection_taxon) { -- 2.34.1