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;
}
if (element instanceof PolytomousKeyNode) {
- List<PolytomousKeyNode> 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);
}
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
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);
}
}
*/
@Override
public void fireChangeEvent(final CdmChangeEvent event, boolean async) {
+
for(final ICdmChangeListener listener : listeners) {
// Update the user interface asynchronously
if(async) {
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);
- }
- });
}
}
// $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.
*/
import org.eclipse.jface.util.PropertyChangeEvent;
import eu.etaxonomy.cdm.model.description.KeyStatement;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
/**
* @author n.hoffmann
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)
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);
-
+
}
}
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());
/**
- *
+ *
*/
package eu.etaxonomy.taxeditor.ui.section.key;
/**
* @author n.hoffmann
- *
+ *
*/
public class PolytomousKeyNodeDetailElement extends
AbstractCdmDetailElement<PolytomousKeyNode> {
/*
* (non-Javadoc)
- *
+ *
* @see
* eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
* .lang.Object)
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) {