From: Patric Plitzner Date: Tue, 20 Aug 2013 12:56:45 +0000 (+0000) Subject: merged/implemented cdm3.3 model adaptations X-Git-Tag: 3.6.0~841^2~131 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/1e2ff9ee581e9129435098e4453f9aa2fd70b3e9 merged/implemented cdm3.3 model adaptations --- 1e2ff9ee581e9129435098e4453f9aa2fd70b3e9 diff --cc .gitattributes index 8d0bf27ad,cadffbe93..5df9dc33c --- a/.gitattributes +++ b/.gitattributes @@@ -1288,6 -1259,8 +1284,7 @@@ eu.etaxonomy.taxeditor.store/src/main/j eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmPropertyChangeEvent.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CheckboxElement.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/DateDetailSection.java -text + eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/GatheringEventUnitElement.java -text -eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ICdmFormElement.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IEnableableFormElement.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IEntityElement.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IErrorIntolerableElement.java -text diff --cc eu.etaxonomy.taxeditor.cdmlib/.classpath index 32ee1a39b,f2f431199..08b9fd306 --- a/eu.etaxonomy.taxeditor.cdmlib/.classpath +++ b/eu.etaxonomy.taxeditor.cdmlib/.classpath @@@ -204,5 -188,21 +188,21 @@@ + + + + + + + + + + + + + + + - ++ diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java index df7875ca6,df7875ca6..a951ef903 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java @@@ -26,8 -26,8 +26,8 @@@ import org.eclipse.ui.IEditorReference import org.eclipse.ui.PartInitException; import org.eclipse.ui.handlers.HandlerUtil; --import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput; import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditor; ++import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput; import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin; import eu.etaxonomy.taxeditor.editor.key.KeyEditor; import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput; diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditorDataChangeBehaviour.java index d9c202c99,d9c202c99..aa6dc659c --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditorDataChangeBehaviour.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditorDataChangeBehaviour.java @@@ -17,8 -17,8 +17,8 @@@ import eu.etaxonomy.cdm.model.name.Taxo import eu.etaxonomy.cdm.model.taxon.Synonym; import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent; --import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; 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; diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java index 6db78f03d,74b3ff406..6a295e64e --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java @@@ -1,8 -1,8 +1,8 @@@ /** * 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. */ @@@ -25,7 -25,7 +25,7 @@@ import eu.etaxonomy.cdm.api.service.ITa import eu.etaxonomy.cdm.api.service.ITaxonService; import eu.etaxonomy.cdm.model.common.CdmBase; import eu.etaxonomy.cdm.model.name.TaxonNameBase; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.Synonym; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonBase; @@@ -37,6 -37,6 +37,7 @@@ import eu.etaxonomy.taxeditor.model.Dat import eu.etaxonomy.taxeditor.preference.PreferencesUtil; import eu.etaxonomy.taxeditor.store.CdmStore; ++ /** *

TaxonEditorInput class.

* @@@ -47,20 -47,20 +48,20 @@@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPersistableElement { private ConversationHolder conversation; -- ++ private TaxonNode taxonNode; private TaxonEditorInputDataChangeBehaviour dataChangeBehavior; -- ++ private TaxonBase initiallySelectedTaxonBase; -- ++ private TaxonEditorInput(TaxonNode taxonNode, ConversationHolder conversation){ this.conversation = conversation; this.taxonNode = taxonNode; } -- -- ++ ++ /** *

NewInstance

* @@@ -76,26 -76,26 +77,26 @@@ throw e; } } -- ++ /** -- * ++ * * @param taxonNodeUuid * @param conversation * @return */ private static TaxonEditorInput NewInstance(UUID taxonNodeUuid, ConversationHolder conversation){ -- -- ++ ++ TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNodeUuid, null); -- ++ if(taxonNode == null){ EditorUtil.warningDialog("Not yet implemented", TaxonEditorInput.class, "Selected element is not type TaxonBase."); return null; -- } -- ++ } ++ return new TaxonEditorInput(taxonNode, conversation); } -- ++ /** *

NewInstanceFromTaxonBase

* @@@ -104,20 -104,20 +105,20 @@@ */ public static TaxonEditorInput NewInstanceFromTaxonBase(UUID taxonBaseUuid){ ConversationHolder conversation = CdmStore.createConversation(); -- ++ TaxonEditorInput input = null; -- ++ TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).find(taxonBaseUuid); if(taxonBase.isOrphaned()) { EditorUtil.warningDialog("Orphaned Taxon", TaxonEditorInput.class, "This is an orphaned taxon i.e. a taxon that is not connected to a classification and not having any taxonomic relationships. Editing of orphaned taxon is currently not supported."); } else if(taxonBase.isInstanceOf(Taxon.class)){ Taxon taxon = CdmBase.deproxy(taxonBase, Taxon.class); -- ++ if (taxon.isMisapplication()){ // TODO get accepted taxon EditorUtil.info("trying to open Mispplied Name "); -- ++ Set acceptedTaxa = new HashSet(); Set relations = taxon.getRelationsFromThisTaxon(); for(TaxonRelationship relation : relations){ @@@ -126,22 -126,22 +127,22 @@@ } } input = getInputForMultipleTaxa(conversation, acceptedTaxa); -- ++ }else{ input = getInputForMultipleNodes(conversation, taxon.getTaxonNodes()); } }else if(taxonBase instanceof Synonym){ Synonym synonym = (Synonym) taxonBase; -- ++ Set taxa = synonym.getAcceptedTaxa(); input = getInputForMultipleTaxa(conversation, taxa); } -- ++ input.setInitiallySelectedTaxonBase(taxonBase); -- ++ return input; } -- ++ private static TaxonEditorInput getInputForMultipleNodes(ConversationHolder conversation, Set taxonNodes){ if(taxonNodes.size() == 1){ TaxonNode taxonNode = taxonNodes.iterator().next(); @@@ -149,7 -149,7 +150,7 @@@ }else if(taxonNodes.size() > 1){ TaxonNode taxonNode = ChooseFromMultipleTaxonNodesDialog.choose(taxonNodes); if(taxonNode != null){ -- return NewInstance(taxonNode.getUuid(), conversation); ++ return NewInstance(taxonNode.getUuid(), conversation); } }else if(taxonNodes.size() == 0){ // this is an undesired state @@@ -157,7 -157,7 +158,7 @@@ } return null; } -- ++ private static TaxonEditorInput getInputForMultipleTaxa(ConversationHolder conversation, Set taxa){ if(taxa.size() == 1){ Taxon taxon = taxa.iterator().next(); @@@ -176,7 -176,7 +177,7 @@@ } return null; } -- ++ /** *

NewEmptyInstance

* @@@ -185,19 -185,19 +186,19 @@@ */ public static TaxonEditorInput NewEmptyInstance(UUID parentNodeUuid){ ConversationHolder conversation = CdmStore.createConversation(); -- ++ TaxonNameBase name = PreferencesUtil.getPreferredNomenclaturalCode().getNewTaxonNameInstance(null); -- ITreeNode parentNode = CdmStore.getService(IClassificationService.class).getTreeNodeByUuid(parentNodeUuid); -- ++ ITaxonTreeNode parentNode = CdmStore.getService(IClassificationService.class).getTreeNodeByUuid(parentNodeUuid); ++ Taxon newTaxon = Taxon.NewInstance(name, parentNode.getReference()); - TaxonNode newTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference(), null); - + TaxonNode newTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference()); - ++ // add the new taxon to the editors persistence context UUID newTaxonNodeUuid = CdmStore.getService(ITaxonNodeService.class).save(newTaxonNode); -- ++ return new TaxonEditorInput(newTaxonNode, conversation); } -- ++ /* (non-Javadoc) * @see org.eclipse.ui.IEditorInput#exists() */ @@@ -206,7 -206,7 +207,8 @@@ * * @return a boolean. */ -- public boolean exists() { ++ @Override ++ public boolean exists() { return taxonNode != null; } @@@ -218,7 -218,7 +220,8 @@@ * * @return a {@link org.eclipse.jface.resource.ImageDescriptor} object. */ -- public ImageDescriptor getImageDescriptor() { ++ @Override ++ public ImageDescriptor getImageDescriptor() { return null; } @@@ -230,7 -230,7 +233,8 @@@ * * @return a {@link java.lang.String} object. */ -- public String getName() { ++ @Override ++ public String getName() { if(getTaxon() == null){ return null; } @@@ -239,7 -239,7 +243,7 @@@ return "New taxon"; } else { return name.getTitleCache(); -- } ++ } } /* (non-Javadoc) @@@ -250,7 -250,7 +254,8 @@@ * * @return a {@link org.eclipse.ui.IPersistableElement} object. */ -- public IPersistableElement getPersistable() { ++ @Override ++ public IPersistableElement getPersistable() { // if(CdmStore.isActive()){ // TaxonNode test = CdmStore.getTaxonTreeService().getTaxonNodeByUuid(taxonNode.getUuid()); // boolean isPersistable = CdmStore.getTaxonTreeService().getTaxonNodeByUuid(taxonNode.getUuid()) != null; @@@ -269,7 -269,7 +274,8 @@@ * * @return a {@link java.lang.String} object. */ -- public String getToolTipText() { ++ @Override ++ public String getToolTipText() { return getName(); } @@@ -277,27 -277,27 +283,29 @@@ * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) */ /** {@inheritDoc} */ -- public Object getAdapter(Class adapter) { ++ @Override ++ public Object getAdapter(Class adapter) { if (adapter == Taxon.class) { return taxonNode.getTaxon(); } -- ++ if (adapter == TaxonNode.class) { return taxonNode; } -- ++ return null; } -- ++ /** * {@inheritDoc} * * Overrides equals to ensure that a taxon can only be edited by * one editor at a time. */ -- public boolean equals(Object obj) { -- if (TaxonEditorInput.class.equals(obj.getClass()) ++ @Override ++ public boolean equals(Object obj) { ++ if (TaxonEditorInput.class.equals(obj.getClass()) && getTaxon() != null && getTaxon().equals(((TaxonEditorInput) obj).getTaxon())){ if(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase() != null){ @@@ -316,7 -316,7 +324,7 @@@ public Taxon getTaxon(){ return taxonNode.getTaxon(); } -- ++ /** *

Getter for the field taxonNode.

* @@@ -325,7 -325,7 +333,7 @@@ public TaxonNode getTaxonNode() { return taxonNode; } -- ++ /* * (non-Javadoc) * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder() @@@ -335,7 -335,7 +343,8 @@@ * * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object. */ -- public ConversationHolder getConversationHolder() { ++ @Override ++ public ConversationHolder getConversationHolder() { return conversation; } @@@ -344,11 -344,11 +353,12 @@@ * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostCrudObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent) */ /** {@inheritDoc} */ -- public void update(CdmDataChangeMap events) { ++ @Override ++ public void update(CdmDataChangeMap events) { if(dataChangeBehavior == null){ dataChangeBehavior = new TaxonEditorInputDataChangeBehaviour(this); } -- ++ DataChangeBridge.handleDataChange(events, dataChangeBehavior); } @@@ -360,7 -360,7 +370,8 @@@ * * @return a {@link java.lang.String} object. */ -- public String getFactoryId() { ++ @Override ++ public String getFactoryId() { return TaxonEditorInputFactory.getFactoryId(); } @@@ -368,11 -368,11 +379,12 @@@ * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento) */ /** {@inheritDoc} */ -- public void saveState(IMemento memento) { ++ @Override ++ public void saveState(IMemento memento) { TaxonEditorInputFactory.saveState(memento, this); } -- ++ /** *

Setter for the field initiallySelectedTaxonBase.

* @@@ -390,7 -390,7 +402,7 @@@ public TaxonBase getInitiallySelectedTaxonBase() { return initiallySelectedTaxonBase; } -- ++ @Override public String toString() { return String.format("%s[%s]", this.getClass().getSimpleName(), getTaxon()); diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/UseObjectManager.java index b4dafb7e7,3d40d7c2e..a12ebd3bf --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/UseObjectManager.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/UseObjectManager.java @@@ -23,8 -24,8 +24,7 @@@ import eu.etaxonomy.cdm.model.common.Te import eu.etaxonomy.cdm.model.description.Feature; import eu.etaxonomy.cdm.model.description.FeatureNode; import eu.etaxonomy.cdm.model.description.FeatureTree; - import eu.etaxonomy.cdm.model.description.Modifier; import eu.etaxonomy.cdm.model.description.State; -import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; import eu.etaxonomy.taxeditor.model.ContextListenerAdapter; import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.store.StoreUtil; diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java index 0e1e3be37,0e1e3be37..492e597fb --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java @@@ -23,13 -23,13 +23,11 @@@ import org.eclipse.jface.action.MenuMan import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.StructuredSelection; --import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.DND; import org.eclipse.swt.dnd.DropTarget; import org.eclipse.swt.dnd.Transfer; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Composite; --import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SwapSynonymAndAcceptedHandler.java index 507d44cf7,507d44cf7..55c685bdf --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SwapSynonymAndAcceptedHandler.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SwapSynonymAndAcceptedHandler.java @@@ -18,14 -18,14 +18,11 @@@ import org.eclipse.core.commands.IHandl import org.eclipse.core.commands.common.NotDefinedException; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; --import org.eclipse.ui.PartInitException; --import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.handlers.HandlerUtil; import eu.etaxonomy.cdm.model.common.CdmBase; import eu.etaxonomy.cdm.model.taxon.Synonym; import eu.etaxonomy.cdm.model.taxon.Taxon; --import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.taxeditor.editor.EditorUtil; import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor; import eu.etaxonomy.taxeditor.editor.name.operation.SwapSynonymAndAcceptedOperation; diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java index fa39cab53,ff4ff1fbd..5d8b351fd --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java @@@ -1,8 -1,8 +1,8 @@@ /** * 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. */ @@@ -18,7 -18,7 +18,7 @@@ import org.eclipse.core.runtime.IStatus import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; import eu.etaxonomy.cdm.api.service.ITaxonService; import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.Synonym; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonNode; @@@ -36,37 -36,37 +36,37 @@@ import eu.etaxonomy.taxeditor.store.Sto * @version 1.0 */ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPostOperation { -- ++ private Taxon newTaxon; private Synonym synonym; -- private ITreeNode parentNode; ++ private ITaxonTreeNode parentNode; private TaxonNode newNode; private Synonym[] synonymsInHomotypicalGroup; -- ++ /** *

Constructor for ChangeSynonymToAcceptedTaxonOperation.

* * @param label a {@link java.lang.String} object. * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object. * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object. -- * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object. ++ * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object. * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object. * @param synonymsInHomotypicalGroup an array of {@link eu.etaxonomy.cdm.model.taxon.Synonym} objects. * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object. * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object. */ public ChangeSynonymToAcceptedTaxonOperation(String label, IUndoContext undoContext, -- Taxon taxon, ITreeNode parentNode, Synonym synonym, Synonym[] synonymsInHomotypicalGroup, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) { ++ Taxon taxon, ITaxonTreeNode parentNode, Synonym synonym, Synonym[] synonymsInHomotypicalGroup, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) { super(label, undoContext, postOperationEnabled, conversationEnabled); this.taxon = taxon; this.parentNode = parentNode; -- this.synonym = synonym; ++ this.synonym = synonym; this.synonymsInHomotypicalGroup = synonymsInHomotypicalGroup; } -- ++ /* (non-Javadoc) * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable) */ @@@ -74,7 -74,7 +74,7 @@@ @Override public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { -- ++ try { newTaxon = CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym, taxon, true, true, null, null); } catch (HomotypicalGroupChangeException e) { @@@ -82,17 -82,17 +82,17 @@@ return postExecute(null); } monitor.worked(20); -- ++ synonym.setSec(null); - newNode = parentNode.addChildTaxon(newTaxon, null, null, null); - + newNode = parentNode.addChildTaxon(newTaxon, null, null); - ++ if(synonymsInHomotypicalGroup != null){ Taxon taxon = newNode.getTaxon(); for (Synonym synonym : synonymsInHomotypicalGroup){ taxon.addHomotypicSynonym(synonym, null, null); } } -- ++ monitor.worked(40); return postExecute(newNode); @@@ -115,10 -115,10 +115,10 @@@ @Override public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { -- ++ // TODO implement - biggest problem is that any window open for new taxon must be closed first StoreUtil.warn(this.getClass(), "Not yet implemented"); -- ++ return postExecute(taxon); } diff --cc eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DynamicFeatureMenu.java index 766c5cf8d,766c5cf8d..0c10b9ad7 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DynamicFeatureMenu.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DynamicFeatureMenu.java @@@ -1,9 -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. */ @@@ -31,7 -31,7 +31,6 @@@ import eu.etaxonomy.cdm.model.descripti import eu.etaxonomy.cdm.model.description.FeatureTree; import eu.etaxonomy.cdm.model.description.TaxonDescription; import eu.etaxonomy.taxeditor.editor.EditorUtil; --import eu.etaxonomy.taxeditor.editor.UsageTermCollection; import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart; import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateDescriptionElementOperation; import eu.etaxonomy.taxeditor.model.FeatureNodeContainer; @@@ -42,7 -42,7 +41,7 @@@ import eu.etaxonomy.taxeditor.store.Cdm *

* DynamicFeatureMenu class. *

-- * ++ * * @author n.hoffmann * @created 17.04.2009 * @version 1.0 @@@ -56,7 -56,7 +55,7 @@@ public class DynamicFeatureMenu extend /* * (non-Javadoc) -- * ++ * * @see * org.eclipse.ui.actions.CompoundContributionItem#getContributionItems() */ @@@ -65,7 -65,7 +64,8 @@@ protected IContributionItem[] getContributionItems() { return new IContributionItem[] { new ContributionItem() { -- public void fill(Menu menu, int index) { ++ @Override ++ public void fill(Menu menu, int index) { ISelection selection = selectionService .getSelection(DescriptiveViewPart.ID); @@@ -90,7 -90,7 +90,7 @@@ createMenuItem(menu, featureNode.getFeature()); // add possible children to the menu -- for (FeatureNode childNode : featureNode.getChildren()) { ++ for (FeatureNode childNode : featureNode.getChildNodes()) { createMenuItem(menu, childNode.getFeature()); } } else if (selectedElement instanceof DescriptionElementBase) { @@@ -111,10 -111,10 +111,12 @@@ menuItem.setText(deproxiedFeature.getLabel()); menuItem.addSelectionListener(new SelectionListener() { -- public void widgetDefaultSelected(SelectionEvent e) { ++ @Override ++ public void widgetDefaultSelected(SelectionEvent e) { } -- public void widgetSelected(SelectionEvent ev) { ++ @Override ++ public void widgetSelected(SelectionEvent ev) { Event event = new Event(); event.data = deproxiedFeature; try { @@@ -130,10 -130,10 +132,10 @@@ /** * Retrieves the feature tree associated with the given description -- * ++ * * TODO as of now this is always the same thing because feature trees may * not be associated to descriptions yet. -- * ++ * * @param description * @return */ diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/ClassificationLabelProvider.java index 7d16f1904,7d16f1904..76f8bc0ab --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/ClassificationLabelProvider.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/ClassificationLabelProvider.java @@@ -18,8 -18,8 +18,6 @@@ import org.eclipse.jface.viewers.Styled import org.eclipse.swt.graphics.Image; import org.eclipse.ui.navigator.IDescriptionProvider; --import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; --import eu.etaxonomy.cdm.model.common.LanguageString; import eu.etaxonomy.cdm.model.taxon.Classification; /** diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymLabelProvider.java index de5a60595,de5a60595..158423da0 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymLabelProvider.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymLabelProvider.java @@@ -12,9 -12,9 +12,9 @@@ package eu.etaxonomy.taxeditor.navigati import org.apache.log4j.Logger; import org.eclipse.jface.viewers.ColumnLabelProvider; ++import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.StyledString; --import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.navigator.IDescriptionProvider; diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigatorDataChangeBehavior.java index b50082362,b50082362..9816d777b --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigatorDataChangeBehavior.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigatorDataChangeBehavior.java @@@ -1,8 -1,8 +1,8 @@@ /** * 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. */ @@@ -21,7 -21,7 +21,7 @@@ import org.eclipse.ui.IEditorPart import eu.etaxonomy.cdm.model.common.CdmBase; import eu.etaxonomy.cdm.model.name.TaxonNameBase; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++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; @@@ -38,13 -38,13 +38,13 @@@ import eu.etaxonomy.taxeditor.navigatio * @created 01.04.2009 * @version 1.0 */ --public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements ++public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements IDataChangeBehavior { private TaxonNavigator source; private Set staleObjects; -- ++ /** *

Constructor for TaxonNavigatorDataChangeBehavior.

* @@@ -53,7 -53,7 +53,7 @@@ public TaxonNavigatorDataChangeBehavior(TaxonNavigator taxonNavigator) { source = taxonNavigator; } -- ++ /* (non-Javadoc) * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#isRelevant(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent) */ @@@ -64,22 -64,22 +64,22 @@@ * @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(); -- ++ for(CdmDataChangeEvent event : events.getAllEvents()){ EventType eventType = event.getEventType(); CdmBase eventEntity = event.getEntity(); -- ++ // all tree node changes are relevant -- if((eventType == EventType.INSERT || eventType == EventType.DELETE || eventType == EventType.UPDATE) -- && event.getEntity() instanceof ITreeNode){ ++ if((eventType == EventType.INSERT || eventType == EventType.DELETE || eventType == EventType.UPDATE) ++ && event.getEntity() instanceof ITaxonTreeNode){ return true; } -- ++ // name updates of the accepted taxon of open editors are relevant if(eventType == EventType.UPDATE){ TaxonNameBase name = null; @@@ -90,17 -90,17 +90,17 @@@ }else{ continue; } -- ++ Set 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(); @@@ -111,9 -111,9 +111,9 @@@ // } // } } -- ++ return false; -- ++ // @deprecated // react on everything except load // if(events.sizeByEventType(EventType.INSERT) > 0){ @@@ -131,25 -131,25 +131,27 @@@ * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent) */ /** {@inheritDoc} */ -- public void reactOnDataChange(CdmDataChangeMap events) { ++ @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("Clearing Taxon Navigators session"); display.asyncExec(new Runnable() { -- public void run() { ++ @Override ++ public void run() { source.getConversationHolder().clear(); } -- }); -- // FIXME completely clearing the session is a brute force approach. ++ }); ++ // 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 @@@ -157,26 -157,26 +159,27 @@@ // 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("Refreshing viewer"); -- ++ display.asyncExec(new Runnable() { -- public void run() { ++ @Override ++ public void run() { source.refresh(); } }); -- -- -- ++ ++ ++ monitor.worked(1); monitor.done(); return Status.OK_STATUS; } }; -- ++ job.setPriority(Job.SHORT); job.schedule(); -- ++ } } } diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeContentProvider.java index 7819132c1,7819132c1..c7a431daf --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeContentProvider.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeContentProvider.java @@@ -1,9 -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. */ @@@ -15,7 -15,7 +15,7 @@@ import org.eclipse.jface.viewers.ITreeC import org.eclipse.jface.viewers.Viewer; import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.TaxonNode; /** @@@ -30,29 -30,29 +30,32 @@@ public class TaxonNodeContentProvider i .getLogger(TaxonNodeContentProvider.class); private static final Object[] NO_CHILDREN = new Object[0]; -- ++ /** {@inheritDoc} */ -- public Object[] getChildren(Object parentElement) { -- Object[] children = null; -- -- if(parentElement instanceof ITreeNode){ -- ITreeNode treeNode = (ITreeNode) HibernateProxyHelper.deproxy(parentElement); ++ @Override ++ public Object[] getChildren(Object parentElement) { ++ Object[] children = null; ++ ++ if(parentElement instanceof ITaxonTreeNode){ ++ ITaxonTreeNode treeNode = (ITaxonTreeNode) HibernateProxyHelper.deproxy(parentElement); children = treeNode.getChildNodes().toArray(); } -- ++ return children != null ? children : NO_CHILDREN; } /** {@inheritDoc} */ -- public Object getParent(Object element) { ++ @Override ++ public Object getParent(Object element) { if(element instanceof TaxonNode){ return ((TaxonNode) element).getParent(); -- } ++ } return null; } /** {@inheritDoc} */ -- public boolean hasChildren(Object element) { ++ @Override ++ public boolean hasChildren(Object element) { if(element instanceof TaxonNode){ return ((TaxonNode) element).getCountChildren() > 0; } @@@ -60,17 -60,17 +63,20 @@@ } /** {@inheritDoc} */ -- public Object[] getElements(Object inputElement) { ++ @Override ++ public Object[] getElements(Object inputElement) { return this.getChildren(inputElement); } /** *

dispose

*/ -- public void dispose() { ++ @Override ++ public void dispose() { } /** {@inheritDoc} */ -- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { ++ @Override ++ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } } diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java index 7774c2c1e,7774c2c1e..d4b243b01 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java @@@ -10,13 -10,13 +10,11 @@@ package eu.etaxonomy.taxeditor.navigation.navigator; --import org.apache.log4j.Logger; import org.eclipse.jface.viewers.ColumnLabelProvider; ++import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.StyledString; --import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider; import org.eclipse.jface.viewers.StyledString.Styler; --import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.TextStyle; import org.eclipse.ui.navigator.IDescriptionProvider; @@@ -27,7 -27,7 +25,6 @@@ import eu.etaxonomy.cdm.model.common.Cd import eu.etaxonomy.cdm.model.common.IIdentifiableEntity; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonNode; --import eu.etaxonomy.cdm.persistence.hibernate.permission.Operation; import eu.etaxonomy.taxeditor.navigation.NavigationUtil; import eu.etaxonomy.taxeditor.preference.Resources; import eu.etaxonomy.taxeditor.security.RequiredPermissions; diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapterAssistant.java index b0d7bb74f,b0d7bb74f..dd7c51520 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapterAssistant.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapterAssistant.java @@@ -1,9 -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. */ @@@ -28,7 -28,7 +28,7 @@@ import org.eclipse.ui.navigator.CommonD import org.eclipse.ui.navigator.CommonDropAdapterAssistant; import eu.etaxonomy.cdm.model.common.CdmBase; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.taxeditor.navigation.NavigationUtil; import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxonOperation; @@@ -48,7 -48,7 +48,7 @@@ public class TreeNodeDropAdapterAssista /** Constant ID="eu.etaxonomy.taxeditor.navigation.navig"{trunked} */ public static final String ID = "eu.etaxonomy.taxeditor.navigation.navigator.dropassistant"; //$NON-NLS-1$ -- ++ /* (non-Javadoc) * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#handleDrop(org.eclipse.ui.navigator.CommonDropAdapter, org.eclipse.swt.dnd.DropTargetEvent, java.lang.Object) */ @@@ -56,25 -56,25 +56,26 @@@ @Override public IStatus handleDrop(CommonDropAdapter dropAdapter, DropTargetEvent dropTargetEvent, Object target) { -- -- if (target instanceof ITreeNode) { ++ ++ if (target instanceof ITaxonTreeNode) { Set taxonNodes = getSelectedTaxa(); -- ITreeNode targetTreeNode = (ITreeNode) target; -- if(taxonNodes != null) -- return moveTaxon(taxonNodes, targetTreeNode); ++ ITaxonTreeNode targetTreeNode = (ITaxonTreeNode) target; ++ if(taxonNodes != null) { ++ return moveTaxon(taxonNodes, targetTreeNode); ++ } } -- ++ return Status.CANCEL_STATUS; } -- ++ private Set getSelectedTaxa(){ -- HashSet taxonNodes = new HashSet(); -- ++ HashSet taxonNodes = new HashSet(); ++ ISelection selection = LocalSelectionTransfer.getTransfer().getSelection(); if (selection instanceof TreeSelection) { -- ++ Iterator selectionIterator = ((TreeSelection) selection).iterator(); -- ++ while (selectionIterator.hasNext()){ Object object = selectionIterator.next(); if(object instanceof TaxonNode){ @@@ -92,8 -92,8 +93,8 @@@ /** {@inheritDoc} */ @Override public IStatus validateDrop(Object target, int operation, -- TransferData transferType) { -- if (target instanceof ITreeNode) { ++ TransferData transferType) { ++ if (target instanceof ITaxonTreeNode) { // do not allow to drop onto itself for(TaxonNode taxonNode : getSelectedTaxa()){ if (taxonNode.equals(target)) { @@@ -101,53 -101,53 +102,53 @@@ } } return Status.OK_STATUS; -- } ++ } return Status.CANCEL_STATUS; } -- ++ /** * @param childTaxonNode * @param parentTaxon * @return */ -- private IStatus moveTaxon(Set taxonNodes, ITreeNode targetITreeNode) { -- ++ private IStatus moveTaxon(Set taxonNodes, ITaxonTreeNode targetITaxonTreeNode) { ++ TaxonNavigator taxonNavigator; taxonNavigator = (TaxonNavigator) NavigationUtil.showView(TaxonNavigator.ID); -- -- if(targetITreeNode instanceof TaxonNode){ -- -- TaxonNode targetTaxonNode = (TaxonNode) targetITreeNode; -- ++ ++ if(targetITaxonTreeNode instanceof TaxonNode){ ++ ++ TaxonNode targetTaxonNode = (TaxonNode) targetITaxonTreeNode; ++ // for(TaxonNode taxonNode : taxonNodes){ // if (taxonNode.equals(targetTaxonNode)) { // return Status.CANCEL_STATUS; // } // } -- ++ // Make sure parent taxon does not have unsaved changes if (NavigationUtil.isDirty(targetTaxonNode)){ MessageDialog.openWarning(NavigationUtil.getShell(), "Unsaved Parent Taxon", "There are unsaved " + "changes in the parent taxon. Pleas save first."); return Status.CANCEL_STATUS; } -- -- ++ ++ // Make sure parentTaxon is not the drop target // if (!childTaxonNode.isTopmostNode() && childTaxonNode.getParent().equals(targetTaxonNode)){ // return Status.CANCEL_STATUS; // } -- ++ // Make sure taxon is not being dropped onto itself // if (childTaxonNode.equals(targetTaxonNode)) { // return Status.CANCEL_STATUS; // } -- -- -- } -- ++ ++ ++ } ++ IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext(); if (workspaceUndoContext == null) { logger.error("Workspace undo context is null. DND operation cancelled"); @@@ -155,10 -155,10 +156,10 @@@ } AbstractPostOperation operation = new MoveTaxonOperation -- ("Move Taxon", workspaceUndoContext, taxonNodes, targetITreeNode, this, taxonNavigator); -- NavigationUtil.executeOperation(operation); -- -- logger.info("Moved taxa to new parent " + targetITreeNode); ++ ("Move Taxon", workspaceUndoContext, taxonNodes, targetITaxonTreeNode, this, taxonNavigator); ++ NavigationUtil.executeOperation(operation); ++ ++ logger.info("Moved taxa to new parent " + targetITaxonTreeNode); return Status.OK_STATUS; } @@@ -166,7 -166,7 +167,8 @@@ * @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase) */ /** {@inheritDoc} */ -- public boolean postOperation(CdmBase objectAffectedByOperation) { ++ @Override ++ public boolean postOperation(CdmBase objectAffectedByOperation) { return true; } @@@ -175,7 -175,7 +177,8 @@@ * * @return a boolean. */ -- public boolean onComplete() { ++ @Override ++ public boolean onComplete() { // TODO Auto-generated method stub return false; } diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/CopyHandler.java index aaf3e6de8,aaf3e6de8..7e0b59b63 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/CopyHandler.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/CopyHandler.java @@@ -9,8 -9,8 +9,6 @@@ */ package eu.etaxonomy.taxeditor.navigation.navigator.handler; --import java.util.Iterator; -- import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; @@@ -20,11 -20,11 +18,7 @@@ import org.eclipse.core.runtime.IStatus import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.handlers.HandlerUtil; --import eu.etaxonomy.cdm.model.common.TermBase; --import eu.etaxonomy.cdm.model.taxon.Taxon; --import eu.etaxonomy.cdm.model.taxon.TaxonBase; import eu.etaxonomy.cdm.model.taxon.TaxonNode; --import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor; import eu.etaxonomy.taxeditor.navigation.NavigationUtil; import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator; import eu.etaxonomy.taxeditor.navigation.navigator.operation.CopyOperation; diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.java index 86ed939b6,86ed939b6..a1a4425b5 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.java @@@ -1,9 -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. */ @@@ -29,7 -29,7 +29,7 @@@ import org.eclipse.ui.IWorkbenchPage import org.eclipse.ui.PartInitException; import org.eclipse.ui.handlers.HandlerUtil; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.taxeditor.editor.TaxonEditorInput; import eu.etaxonomy.taxeditor.navigation.NavigationUtil; @@@ -50,57 -50,57 +50,59 @@@ public class DeleteHandler extends Abst private TaxonNavigator taxonNavigator; /** {@inheritDoc} */ -- public Object execute(ExecutionEvent event) throws ExecutionException { -- ++ @Override ++ public Object execute(ExecutionEvent event) throws ExecutionException { ++ activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage(); -- ++ taxonNavigator = NavigationUtil.showNavigator(); -- ++ TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event); -- ++ String plural = selection.size() > 1 ? "s" : ""; // Prompt user for confirmation if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Are you sure you want to delete the selected node" + plural +"?")){ return null; } -- ++ Iterator selectionIterator = selection.iterator(); -- Set treeNodes = new HashSet(); -- ++ Set treeNodes = new HashSet(); ++ while (selectionIterator.hasNext()){ Object object = selectionIterator.next(); -- if(object instanceof ITreeNode) -- treeNodes.add((ITreeNode) object); ++ if(object instanceof ITaxonTreeNode) { ++ treeNodes.add((ITaxonTreeNode) object); ++ } } -- ++ AbstractPostOperation operation = null; try { operation = new DeleteOperation( -- event.getCommand().getName(), NavigationUtil.getUndoContext(), ++ event.getCommand().getName(), NavigationUtil.getUndoContext(), treeNodes, taxonNavigator, taxonNavigator); -- ++ IStatus status = NavigationUtil.executeOperation(operation); -- -- ++ ++ // FIXME is there a better place for this code? if (status == Status.OK_STATUS){ -- for (ITreeNode treeNode : treeNodes){ ++ for (ITaxonTreeNode treeNode : treeNodes){ if(treeNode instanceof TaxonNode) { closeObsoleteEditor((TaxonNode) treeNode); } } } -- ++ } catch (NotDefinedException e) { NavigationUtil.warn(getClass(), "Command name not set"); } return null; } -- ++ private void closeObsoleteEditor(TaxonNode taxonNode){ for (IEditorReference ref : activePage.getEditorReferences()) { try { -- IEditorInput input = ref.getEditorInput(); ++ IEditorInput input = ref.getEditorInput(); if (input instanceof TaxonEditorInput) { TaxonNode node = ((TaxonEditorInput) input).getTaxonNode(); if (taxonNode.equals(node)) { diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/CopyOperation.java index a514c8ce3,a514c8ce3..25c8632a1 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/CopyOperation.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/CopyOperation.java @@@ -11,11 -11,11 +11,6 @@@ package eu.etaxonomy.taxeditor.navigati import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.commands.operations.IUndoContext; -- --import eu.etaxonomy.cdm.model.taxon.TaxonNode; --import eu.etaxonomy.taxeditor.operation.AbstractPostOperation; --import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; -- import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; @@@ -23,6 -23,6 +18,10 @@@ import org.eclipse.swt.dnd.Clipboard import org.eclipse.swt.dnd.TextTransfer; import org.eclipse.swt.dnd.Transfer; ++import eu.etaxonomy.cdm.model.taxon.TaxonNode; ++import eu.etaxonomy.taxeditor.operation.AbstractPostOperation; ++import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; ++ /** * @author l.morris diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java index 381dbf6b1,381dbf6b1..eab39d5f0 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java @@@ -1,9 -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. */ @@@ -21,7 -21,7 +21,7 @@@ import org.eclipse.core.runtime.IStatus import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; import eu.etaxonomy.cdm.api.service.IClassificationService; import eu.etaxonomy.cdm.model.taxon.Classification; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation; import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; @@@ -36,10 -36,10 +36,10 @@@ import eu.etaxonomy.taxeditor.store.Sto * @version 1.0 */ public class DeleteOperation extends AbstractPersistentPostOperation{ -- -- private Set treeNodes; -- ++ private Set treeNodes; ++ ++ /** *

Constructor for DeleteTreeNodeOperation.

* @@@ -50,14 -50,14 +50,14 @@@ * @param treeNodes a {@link java.util.Set} object. */ public DeleteOperation(String label, IUndoContext undoContext, -- Set treeNodes, ++ Set treeNodes, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) { super(label, undoContext, postOperationEnabled, conversationEnabled); this.treeNodes = treeNodes; } -- ++ /* (non-Javadoc) * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable) */ @@@ -68,7 -68,7 +68,7 @@@ bind(); monitor.worked(20); -- for (ITreeNode treeNode : treeNodes){ ++ for (ITaxonTreeNode treeNode : treeNodes){ if(treeNode instanceof TaxonNode){ ((TaxonNode) treeNode).delete(); }else if(treeNode instanceof Classification){ diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java index 6bf1a5deb,5fc9af831..87df0560e --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java @@@ -1,8 -1,8 +1,8 @@@ /** * 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. */ @@@ -21,7 -21,7 +21,7 @@@ import org.eclipse.core.runtime.IStatus import org.eclipse.core.runtime.Status; import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException; import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation; @@@ -36,16 -36,16 +36,16 @@@ import eu.etaxonomy.taxeditor.store.Sto * @version 1.0 */ public class MoveTaxonOperation extends AbstractPersistentPostOperation { -- ++ /** * A reference to the new taxonomical parent. */ -- private ITreeNode newParentTreeNode; ++ private ITaxonTreeNode newParentTreeNode; /** * A reference to the former taxonomical parents */ -- private Map oldParentTreeNodes; -- ++ private Map oldParentTreeNodes; ++ private Set taxonNodes; /** @@@ -54,25 -54,25 +54,25 @@@ * @param label a {@link java.lang.String} object. * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object. * @param taxonNodes a {@link java.util.Set} object. -- * @param newParentTreeNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object. ++ * @param newParentTreeNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object. * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object. * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object. */ public MoveTaxonOperation(String label, IUndoContext undoContext, -- Set taxonNodes, ITreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) { ++ Set taxonNodes, ITaxonTreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) { super(label, undoContext, postOperationEnabled, conversationEnabled); this.taxonNodes = taxonNodes; -- ++ this.newParentTreeNode = newParentTreeNode; -- -- // Save old parent ITreeNodes for undo -- oldParentTreeNodes = new HashMap(); ++ ++ // Save old parent ITaxonTreeNodes for undo ++ oldParentTreeNodes = new HashMap(); for(TaxonNode taxonNode : taxonNodes){ this.oldParentTreeNodes.put(taxonNode, taxonNode.getParent()); } } -- ++ /* (non-Javadoc) * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable) */ @@@ -82,12 -82,11 +82,11 @@@ throws ExecutionException { bind(); monitor.worked(20); -- ++ try { for (TaxonNode taxonNode : taxonNodes){ -- TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode, - newParentTreeNode.getReference(), newParentTreeNode.getMicroReference(), - taxonNode.getSynonymToBeUsed()); ++ TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode, + newParentTreeNode.getReference(), newParentTreeNode.getMicroReference()); taxonNodes.add(newTaxonNode); monitor.worked(2); } @@@ -95,7 -94,7 +94,7 @@@ StoreUtil.warningDialog("Illegal ancestry", this, e.getMessage()); } monitor.worked(40); -- ++ return postExecute(null); } @@@ -117,9 -116,9 +116,9 @@@ public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { StoreUtil.warn(this.getClass(), "Not implemented yet."); -- -- // iterate over oldParentTreeNodes, delete each TaxonNode from its actual parent and add to its former parent -- ++ ++ // iterate over oldParentTreeNodes, delete each TaxonNode from its actual parent and add to its former parent ++ return Status.OK_STATUS; } } diff --cc eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateTaxonNode.java index 3ae83c87f,0bd7e6d00..98915188d --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateTaxonNode.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateTaxonNode.java @@@ -1,9 -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. */ @@@ -20,7 -20,7 +20,7 @@@ import org.eclipse.core.runtime.Status import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; import eu.etaxonomy.cdm.api.service.ITaxonNodeService; import eu.etaxonomy.cdm.model.name.TaxonNameBase; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.taxeditor.navigation.NavigationUtil; @@@ -38,11 -38,11 +38,11 @@@ import eu.etaxonomy.taxeditor.store.Sto */ @Deprecated // we do not undo creation of elements public class CreateTaxonNode extends AbstractPersistentPostOperation { -- ++ private Taxon newTaxon; -- ++ private TaxonNode childTaxonNode; -- ++ /** * Add a name to a taxonomic tree * @@@ -50,17 -50,17 +50,17 @@@ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object. * @param name a {@link eu.etaxonomy.cdm.model.name.TaxonNameBase} object. * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object. -- * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object. ++ * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object. * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object. */ public CreateTaxonNode(String label, IUndoContext undoContext, -- ITreeNode parentNode, TaxonNameBase name, IPostOperationEnabled postOperationEnabled, ++ ITaxonTreeNode parentNode, TaxonNameBase name, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) { super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled); -- ++ newTaxon = Taxon.NewInstance(name, null); } -- ++ /** * Add a taxon to a taxonomic tree * @@@ -68,14 -68,14 +68,14 @@@ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object. * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object. * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object. -- * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object. ++ * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object. * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object. */ public CreateTaxonNode(String label, IUndoContext undoContext, -- ITreeNode parentNode, Taxon taxon, IPostOperationEnabled postOperationEnabled, ++ ITaxonTreeNode parentNode, Taxon taxon, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) { super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled); -- ++ this.newTaxon = taxon; } @@@ -92,17 -92,17 +92,17 @@@ // add the taxon bind(); monitor.worked(20); - childTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference(), null); - + childTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference()); - ++ monitor.worked(40); CdmStore.getService(ITaxonNodeService.class).saveOrUpdate(childTaxonNode); -- ++ return postExecute(childTaxonNode); }catch(Exception e){ NavigationUtil.errorDialog("Could not create taxon node", getClass(), e.getLocalizedMessage(), e); return Status.CANCEL_STATUS; -- } ++ } } /* (non-Javadoc) @@@ -122,7 -122,7 +122,7 @@@ @Override public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { -- ++ StoreUtil.warn(this.getClass(), "Not yet implemented."); return null; } diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeContentProvider.java index a8278c654,a8278c654..02875a7be --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeContentProvider.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeContentProvider.java @@@ -1,9 -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. */ @@@ -61,7 -61,7 +61,7 @@@ public class FeatureTreeContentProvide List children = ((FeatureTree) parentElement).getRootChildren(); return children.toArray(); }else if(parentElement instanceof FeatureNode){ -- List children = ((FeatureNode) parentElement).getChildren(); ++ List children = ((FeatureNode) parentElement).getChildNodes(); return children.toArray(); }else if(parentElement instanceof List){ return ((List) parentElement).toArray(); diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java index 3072f460e,3072f460e..308d27587 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java @@@ -49,7 -49,7 +49,6 @@@ import org.eclipse.ui.progress.IWorkben import org.eclipse.ui.themes.ITheme; import org.eclipse.ui.themes.IThemeManager; --import eu.etaxonomy.cdm.model.common.TermBase; import eu.etaxonomy.taxeditor.operation.AbstractPostOperation; import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java index 328f57a22,2bfc537d4..1fc1cfd18 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java @@@ -19,7 -19,7 +19,6 @@@ import eu.etaxonomy.cdm.api.service.Def import eu.etaxonomy.cdm.api.service.DefaultQuantitativeDescriptionBuilder; import eu.etaxonomy.cdm.api.service.DescriptionBuilder; import eu.etaxonomy.cdm.common.CdmUtils; - import eu.etaxonomy.cdm.model.common.DescriptionElementSource; -import eu.etaxonomy.cdm.model.description.DescriptionElementSource; import eu.etaxonomy.cdm.model.common.IIdentifiableEntity; import eu.etaxonomy.cdm.model.common.ISourceable; import eu.etaxonomy.cdm.model.common.IdentifiableEntity; @@@ -33,6 -33,6 +32,7 @@@ import eu.etaxonomy.cdm.model.descripti import eu.etaxonomy.cdm.model.description.CommonTaxonName; import eu.etaxonomy.cdm.model.description.DescriptionBase; import eu.etaxonomy.cdm.model.description.DescriptionElementBase; ++import eu.etaxonomy.cdm.model.description.DescriptionElementSource; import eu.etaxonomy.cdm.model.description.Distribution; import eu.etaxonomy.cdm.model.description.Feature; import eu.etaxonomy.cdm.model.description.IndividualsAssociation; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureNodeContainer.java index 900665e9e,900665e9e..ce88d1cbc --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureNodeContainer.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureNodeContainer.java @@@ -1,9 -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. */ @@@ -35,11 -35,11 +35,11 @@@ import eu.etaxonomy.cdm.model.descripti * @version 1.0 */ public class FeatureNodeContainer{ -- -- -- ++ ++ ++ private FeatureNodeContainer parent; -- ++ private FeatureNode featureNode; @@@ -48,35 -48,35 +48,35 @@@ private FeatureNodeContainerTree containerTree; -- ++ /** * @param description */ protected FeatureNodeContainer(FeatureNodeContainerTree containerTree) { -- this.containerTree = containerTree; ++ this.containerTree = containerTree; this.containerTree.addContainer(this); } -- -- ++ ++ /** -- * Recursively traverse a branch of a feature tree and check if there are -- * ++ * Recursively traverse a branch of a feature tree and check if there are ++ * * @param featureNode -- * @param description ++ * @param description * @return */ protected void findLeaves(FeatureNode featureNode) { if(featureNode.isLeaf()){ buildLeaf(featureNode); }else{ -- for(FeatureNode childNode : featureNode.getChildren()){ ++ for(FeatureNode childNode : featureNode.getChildNodes()){ findLeaves(childNode); } } } -- ++ /** -- * ++ * * @param featureNode * @param description * @return @@@ -85,12 -85,12 +85,12 @@@ if(featureNode.getFeature() == null){ throw new IllegalArgumentException("The given feature node does not have a feature."); } -- ++ Feature feature = (Feature) HibernateProxyHelper.deproxy(featureNode.getFeature()); -- ++ // get feature node container for the given feature FeatureNodeContainer container = containerTree.getFeatureNodeContainer(feature); -- ++ // get description elements for the given feature List elements = containerTree.getDescriptionsElementsForFeature(feature); // no description elements, so we should also remove the feature node container @@@ -108,12 -108,12 +108,12 @@@ container.buildBranch(); } // add description elements to the feature node container -- container.setDescriptionElements(elements); ++ container.setDescriptionElements(elements); } } -- ++ /** -- * ++ * */ private void remove() { if(getParent() != null){ @@@ -134,15 -134,15 +134,15 @@@ /** -- * Recursively -- * ++ * Recursively ++ * * @param featureNodeMap * @return */ -- private void buildBranch(){ ++ private void buildBranch(){ if(getParent() == null){ FeatureNode parentFeatureNode = getFeatureNode().getParent(); -- ++ if(parentFeatureNode.isRoot()){ containerTree.getRoot().addChild(this); }else{ @@@ -151,15 -151,15 +151,15 @@@ parentContainer = new FeatureNodeContainer(containerTree); parentContainer.setFeatureNode(parentFeatureNode); } -- ++ parentContainer.addChild(this); -- ++ parentContainer.buildBranch(); -- ++ } } } -- ++ /** *

Getter for the field children.

* @@@ -182,7 -182,7 +182,7 @@@ throw new IllegalStateException("Container may not have a description element set when setting children."); } } -- ++ /** * Adds a child container to the list of this containers children * @@@ -201,11 -201,11 +201,11 @@@ public void addDescriptionElement(DescriptionElementBase descriptionElement){ descriptionElements.add(descriptionElement); } -- ++ public void removeDescriptionElement(DescriptionElementBase descriptionElement){ descriptionElements.remove(descriptionElement); } -- ++ /** * If {@link #isLeaf()} is true, i.e. this container should have elements, returns the list of description elements. * @@@ -225,7 -225,7 +225,7 @@@ public List getDescriptionElementsForEntireBranch(){ return getDescriptionElementsRecursively(new ArrayList()); } -- ++ private List getDescriptionElementsRecursively(List descriptionElements){ if(isLeaf()){ descriptionElements.addAll(getDescriptionElements()); @@@ -236,20 -236,20 +236,20 @@@ } return descriptionElements; } -- ++ protected List getLeafs(){ List leafs = new ArrayList(); -- ++ if(isLeaf()){ leafs.add(this); }else{ for(FeatureNodeContainer container : getChildren()){ leafs.addAll(container.getLeafs()); -- } ++ } } return leafs; } -- ++ /** * Set the description element * @@@ -263,7 -263,7 +263,7 @@@ throw new IllegalStateException("Container may not contain child container when adding description elements."); } } -- ++ /** * If the container is a leaf, it will hold a description element and no child containers * @@@ -272,7 -272,7 +272,7 @@@ public boolean isLeaf(){ return ! descriptionElements.isEmpty() && children.isEmpty(); } -- ++ /** *

Setter for the field featureNode.

* @@@ -290,7 -290,7 +290,7 @@@ public FeatureNode getFeatureNode() { return featureNode; } -- ++ /** *

getFeature

* @@@ -311,14 -311,14 +311,14 @@@ public DescriptionBase getDescription(){ return containerTree.getDescription(); } -- ++ public FeatureNodeContainerTree getContainerTree(){ return containerTree; } /** -- * ++ * */ public void clear() { children.clear(); diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/ImageResources.java index f06ac99b7,f06ac99b7..86c47a77f --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/ImageResources.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/ImageResources.java @@@ -21,7 -21,7 +21,6 @@@ import org.eclipse.jface.resource.Image import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.swt.graphics.Image; --import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType; import eu.etaxonomy.taxeditor.store.StoreUtil; import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewDerivedUnitBaseWizard.java index d132f0544,90e1b3e78..401bc1091 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewDerivedUnitBaseWizard.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewDerivedUnitBaseWizard.java @@@ -13,10 -13,16 +13,11 @@@ package eu.etaxonomy.taxeditor.newWizar import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException; import eu.etaxonomy.cdm.api.service.IOccurrenceService; - import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase; - import eu.etaxonomy.cdm.model.occurrence.Specimen; -import eu.etaxonomy.cdm.model.common.OriginalSourceType; + import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; -import eu.etaxonomy.cdm.model.occurrence.FieldUnit; + import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen; -import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; + import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; import eu.etaxonomy.taxeditor.preference.PreferencesUtil; import eu.etaxonomy.taxeditor.store.CdmStore; -import eu.etaxonomy.taxeditor.ui.dialog.selection.OriginalSourceTypeSelectionDialog; -import eu.etaxonomy.taxeditor.ui.dialog.selection.SpecimenOrObservationTypeSelectionDialog; import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseWizardPage; import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationWizardPage; import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventWizardPage; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewGrantedAuthorityWizard.java index 351583132,351583132..d14e60819 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewGrantedAuthorityWizard.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewGrantedAuthorityWizard.java @@@ -11,11 -11,11 +11,9 @@@ package eu.etaxonomy.taxeditor.newWizard; import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService; --import eu.etaxonomy.cdm.api.service.IGroupService; import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl; import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityDetailWizardPage; --import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailWizardPage; /** * @author a.kohlbecker diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizard.java index f0e65cbd5,e05e04906..194bc3c7a --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizard.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizard.java @@@ -1,5 -1,5 +1,5 @@@ /** -- * ++ * */ package eu.etaxonomy.taxeditor.newWizard; @@@ -10,7 -10,7 +10,7 @@@ import org.apache.commons.lang.StringUt import eu.etaxonomy.cdm.api.service.IClassificationService; import eu.etaxonomy.cdm.api.service.ITaxonNodeService; import eu.etaxonomy.cdm.model.taxon.Classification; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.taxeditor.store.CdmStore; @@@ -24,7 -24,7 +24,7 @@@ import eu.etaxonomy.taxeditor.ui.sectio * @created Sep 15, 2009 * @version 1.0 */ --public class NewTaxonNodeWizard extends AbstractNewEntityWizard{ ++public class NewTaxonNodeWizard extends AbstractNewEntityWizard{ private TaxonNodeWizardPage taxonNodePage; private boolean openEmptyEditor; @@@ -35,17 -35,17 +35,17 @@@ taxonNodePage = new TaxonNodeWizardPage(formFactory, getConversationHolder(), getEntity()); addPage(taxonNodePage); } -- ++ @Override protected void saveEntity() { if(taxonNodePage.getTaxon() == null || StringUtils.isEmpty(taxonNodePage.getTaxon().getName().getFullTitleCache())){ openEmptyEditor = true; }else{ getConversationHolder().bind(); -- ITreeNode parent = getParentTreeNode(); ++ ITaxonTreeNode parent = getParentTreeNode(); Taxon taxon = taxonNodePage.getTaxon(); try{ - TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference(), null); + TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference()); generatedTaxonNodeUuid = CdmStore.getService(ITaxonNodeService.class).saveOrUpdate(taxonNode); }catch(IllegalArgumentException e){ StoreUtil.warningDialog("Taxon already exists in classfication", getClass(), e.getMessage()); @@@ -54,12 -54,12 +54,12 @@@ } @Override -- protected ITreeNode createNewEntity() { ++ protected ITaxonTreeNode createNewEntity() { if(getSelection() != null){ Object selectedObject = getSelection().getFirstElement(); -- if(selectedObject instanceof ITreeNode){ -- ITreeNode treeNode = (ITreeNode) selectedObject; -- ++ if(selectedObject instanceof ITaxonTreeNode){ ++ ITaxonTreeNode treeNode = (ITaxonTreeNode) selectedObject; ++ if(treeNode instanceof Classification){ return CdmStore.getService(IClassificationService.class).load(treeNode.getUuid()); } @@@ -68,10 -68,10 +68,10 @@@ } } } -- ++ return null; } -- ++ /** *

openInEditor

* @@@ -80,7 -80,7 +80,7 @@@ public boolean openInEditor(){ return taxonNodePage.openInEditor(); } -- ++ /** *

openEmpty

* @@@ -89,7 -89,7 +89,7 @@@ public boolean openEmpty(){ return openInEditor() && openEmptyEditor; } -- ++ /** *

getTaxonNode

* @@@ -97,12 -97,12 +97,12 @@@ */ public TaxonNode getTaxonNode(){ if(generatedTaxonNodeUuid != null){ -- return CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid); ++ return CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid); } return null; } -- -- public ITreeNode getParentTreeNode(){ ++ ++ public ITaxonTreeNode getParentTreeNode(){ return taxonNodePage.getParentTreeNode(); } @@@ -110,5 -110,5 +110,5 @@@ protected String getEntityName() { return "Taxon"; } -- ++ } diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPersistentPostOperation.java index ad9a0a9ab,ad9a0a9ab..0b2f6f0f2 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPersistentPostOperation.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPersistentPostOperation.java @@@ -1,9 -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. */ @@@ -16,7 -16,7 +16,7 @@@ import org.eclipse.core.runtime.IStatus import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; import eu.etaxonomy.cdm.model.common.CdmBase; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.TaxonNode; /** @@@ -32,9 -32,9 +32,9 @@@ */ public abstract class AbstractPersistentPostOperation extends AbstractPostOperation { private IConversationEnabled conversationEnabled; -- -- protected ITreeNode parentNode; -- ++ ++ protected ITaxonTreeNode parentNode; ++ /** *

Constructor for AbstractPersistentPostOperation.

* @@@ -49,7 -49,7 +49,7 @@@ super(label, undoContext, postOperationEnabled); this.conversationEnabled = conversationEnabled; } -- ++ /** *

Constructor for AbstractPersistentPostOperation.

* @@@ -66,7 -66,7 +66,7 @@@ super(label, undoContext, taxonNode, postOperationEnabled); this.conversationEnabled = conversationEnabled; } -- ++ /** *

Constructor for AbstractPersistentPostOperation.

* @@@ -74,10 -74,10 +74,10 @@@ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object. * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object. * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object. -- * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object. ++ * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object. */ public AbstractPersistentPostOperation(String label, -- IUndoContext undoContext, ITreeNode parentNode, ++ IUndoContext undoContext, ITaxonTreeNode parentNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) { super(label, undoContext, postOperationEnabled); @@@ -89,21 -89,21 +89,22 @@@ * @see eu.etaxonomy.taxeditor.operations.AbstractPostOperation#postExecute(eu.etaxonomy.cdm.model.common.CdmBase) */ /** {@inheritDoc} */ -- protected IStatus postExecute(CdmBase objectAffectedByOperation) { ++ @Override ++ protected IStatus postExecute(CdmBase objectAffectedByOperation) { Assert.isNotNull(conversationEnabled, "Operation has to have a valid conversation attached."); -- ++ conversationEnabled.getConversationHolder().commit(true); -- ++ IStatus status = super.postExecute(objectAffectedByOperation); -- ++ return status; } -- ++ /** * Binds the conversation that was attached to this operation. */ public void bind(){ -- conversationEnabled.getConversationHolder().bind(); ++ conversationEnabled.getConversationHolder().bind(); } } diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/NumberFieldController.java index 3fe4eb266,000000000..34d7415aa mode 100644,000000..100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/NumberFieldController.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/NumberFieldController.java @@@ -1,181 -1,0 +1,171 @@@ +// $Id$ +/** +* Copyright (C) 2013 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.ui.campanula.basicFields; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Text; + +import eu.etaxonomy.cdm.common.CdmUtils; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; +import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; +import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent; + +/** + * @author pplitzner + * @date 12.08.2013 + * + */ +public class NumberFieldController extends TextFieldController { + private Float start; + private Float end; + + private NumberFormatException exception; + + /** + *

Constructor for NumberWithLabelElement.

+ * + * @param toolkit a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object. + * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object. + * @param labelString a {@link java.lang.String} object. - * @param initialInteger a {@link java.lang.Integer} object. ++ * @param initialNumber a {@link java.lang.Integer} object. + * @param style a int. + */ - public NumberFieldController(Text controlledText, CdmFormFactory formFactory, ICdmFormElement parentElement, Integer initialInteger){ ++ public NumberFieldController(Text controlledText, CdmFormFactory formFactory, ICdmFormElement parentElement, Number initialNumber){ + super(controlledText, formFactory, parentElement, null, null); + //WindowBuilder exception handling - if(initialInteger==null){ - initialInteger = 0; ++ if(initialNumber==null){ ++ initialNumber = 0; + } - setInteger(initialInteger); - } - - /** - *

Constructor for NumberWithLabelElement.

- * - * @param toolkit a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object. - * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object. - * @param labelString a {@link java.lang.String} object. - * @param initialFloat a {@link java.lang.Float} object. - * @param style a int. - * @wbp.parser.constructor - */ - public NumberFieldController(Text controlledText, CdmFormFactory formFactory, - ICdmFormElement parentElement, Float initialFloat) { - super(controlledText, formFactory, parentElement, null, null); - //WindowBuilder exception handling - if(initialFloat==null){ - initialFloat = 0f; - } - setFloat(initialFloat); ++ setNumber(initialNumber); + } + + /** + *

setInteger

+ * + * @param number a {@link java.lang.Integer} object. + */ + public void setInteger(Integer number) { + super.setText(getStringRepresentation(number)); + } + + /** - *

setFloat

++ *

setNumber

+ * - * @param number a {@link java.lang.Float} object. ++ * @param number a {@link java.lang.Number} object. + */ - public void setFloat(Float number) { ++ public void setNumber(Number number) { + super.setText(getStringRepresentation(number)); + } + + /** + *

getInteger

+ * + * @return a {@link java.lang.Integer} object. + */ + public Integer getInteger() { + String text = super.getText().trim(); + return text.equals("") ? 0 : new Integer(text); + } + + /** + *

getFloat

+ * + * @return a {@link java.lang.Float} object. + */ + public Float getFloat(){ + String text = super.getText(); + return new Float(text); + } + ++ /** ++ *

getDouble

++ * ++ * @return a {@link java.lang.Float} object. ++ */ ++ public Double getDouble(){ ++ String text = super.getText(); ++ return new Double(text); ++ } ++ + private String getStringRepresentation(Object number){ + if(number != null){ + return number.toString(); + } + return null; + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org.eclipse.jface.util.PropertyChangeEvent) + */ + /** {@inheritDoc} */ + @Override + public void modifyText(ModifyEvent event) { + String value = text.getText(); + if(CdmUtils.isEmpty(value)){ + text.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + return; + } + + try{ + + Float number = Float.parseFloat(value); + + if((start != null && number < start) || (end != null && number > end)){ + throw new NumberFormatException("You entered a number that is not within the allowed bounds."); + } + + }catch(NumberFormatException e){ + text.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED)); + firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e)); + exception = e; + return; + } + + exception = null; + text.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + + super.modifyText(event); + } + + /** + *

setLimits

+ * + * @param numberOfDigits a int. + * @param start a {@link java.lang.Integer} object. + * @param end a {@link java.lang.Integer} object. + */ + public void setLimits(int numberOfDigits, Integer start, Integer end){ + setLimits(numberOfDigits, start.floatValue(), end.floatValue()); + } + + /** + *

setLimits

+ * + * @param numberOfDigits a int. + * @param start a {@link java.lang.Float} object. + * @param end a {@link java.lang.Float} object. + */ + public void setLimits(int numberOfDigits, Float start, Float end){ + text.setTextLimit(numberOfDigits); + this.start = start; + this.end = end; + } + + /** + *

Getter for the field exception.

+ * + * @return the exception + */ + public NumberFormatException getException() { + return exception; + } +} diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventDetailsElementController.java index 3fa01f509,000000000..56f104594 mode 100644,000000..100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventDetailsElementController.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventDetailsElementController.java @@@ -1,114 -1,0 +1,115 @@@ +// $Id$ +/** +* Copyright (C) 2013 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.ui.campanula.detailViews.fieldObservation; + +import org.eclipse.ui.forms.widgets.ExpandableComposite; + +import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; - import eu.etaxonomy.taxeditor.model.AbstractUtility; - import eu.etaxonomy.taxeditor.preference.Resources; +import eu.etaxonomy.taxeditor.ui.campanula.basicFields.NumberFieldController; +import eu.etaxonomy.taxeditor.ui.campanula.basicFields.TextFieldController; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; +import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; +import eu.etaxonomy.taxeditor.ui.element.LayoutConstants; +import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; +import eu.etaxonomy.taxeditor.ui.section.occurrence.CollectingAreasDetailSection; + +/** + * @author pplitzner + * @date 14.08.2013 + * + */ +public class GatheringEventDetailsElementController extends AbstractCdmDetailElement { + + private GatheringEventDetailsElement gatheringEventDetailsElement; + - private NumberFieldController number_absoluteElevationError; ++// private NumberFieldController number_absoluteElevationError; + - private NumberFieldController number_absoluteElevationMinimum; ++// private NumberFieldController number_absoluteElevationMinimum; + + private NumberFieldController number_absoluteElevationMaximum; + + private TextFieldController text_collectingMethod; + + private NumberFieldController number_distanceToGround; + + private NumberFieldController number_distanceToWaterSurface; + + private TextFieldController text_gatheringEventDescription; + + private CollectingAreasDetailSection section_collectingAreas; + + /** + *

+ * Constructor for GatheringEventDetailElement. + *

+ * + * @param formFactory + * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} + * object. + * @param formElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + */ + public GatheringEventDetailsElementController(GatheringEventDetailsElement gatheringEventDetailsElement, CdmFormFactory formFactory, ICdmFormElement formElement) { + super(formFactory, formElement); + this.gatheringEventDetailsElement = gatheringEventDetailsElement; + } + + /** {@inheritDoc} */ + @Override + protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) { + - number_absoluteElevationError = new NumberFieldController(gatheringEventDetailsElement.getTextElevationError(), formFactory, this, entity.getAbsoluteElevation()); - number_absoluteElevationMinimum = new NumberFieldController(gatheringEventDetailsElement.getText_ElevationMinimum(), formFactory, this, entity.getAbsoluteElevationMinimum()); ++// number_absoluteElevationError = new NumberFieldController(gatheringEventDetailsElement.getTextElevationError(), formFactory, this, entity.getAbsoluteElevation()); ++// number_absoluteElevationMinimum = new NumberFieldController(gatheringEventDetailsElement.getText_ElevationMinimum(), formFactory, this, entity.getAbsoluteElevationMinimum()); + number_absoluteElevationMaximum = new NumberFieldController(gatheringEventDetailsElement.getText_ElevationMaximum(), formFactory, this, entity.getAbsoluteElevationMaximum()); + text_collectingMethod = new TextFieldController(gatheringEventDetailsElement.getText_CollectingMethod(), formFactory, this, entity.getCollectingMethod(), null); + number_distanceToGround = new NumberFieldController(gatheringEventDetailsElement.getText_DistanceToGround(), formFactory, this, entity.getDistanceToGround()); + number_distanceToWaterSurface = new NumberFieldController(gatheringEventDetailsElement.getText_DistanceToWaterSurface(), formFactory, this, entity.getDistanceToWaterSurface()); + text_gatheringEventDescription = new TextFieldController(gatheringEventDetailsElement.getText_GatheringEventDescription(), formFactory, this, entity.getGatheringEventDescription(), null); + section_collectingAreas = formFactory.createCollectingAreasDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE); + section_collectingAreas.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); + section_collectingAreas.setEntity(entity); + } + + /** {@inheritDoc} */ + @Override + public void handleEvent(Object eventSource) { - if (eventSource == number_absoluteElevationError) { - getEntity().setAbsoluteElevationError(number_absoluteElevationError.getInteger()); - } else if (eventSource == number_absoluteElevationMinimum) { - try { - getEntity().setAbsoluteElevationRange(number_absoluteElevationMinimum.getInteger(), number_absoluteElevationMaximum.getInteger()); - number_absoluteElevationMinimum.setBackground(getColor(Resources.COLOR_COMPOSITE_BACKGROUND)); - } catch (IllegalArgumentException e) { - number_absoluteElevationMinimum.setBackground(getColor(Resources.COLOR_PARSE_ERROR)); - AbstractUtility.warn(getClass(), e.getLocalizedMessage()); - } - } else if (eventSource == number_absoluteElevationMaximum) { - try { - getEntity().setAbsoluteElevationRange(number_absoluteElevationMinimum.getInteger(), number_absoluteElevationMaximum.getInteger()); - number_absoluteElevationMaximum.setBackground(getColor(Resources.COLOR_COMPOSITE_BACKGROUND)); - } catch (IllegalArgumentException e) { - number_absoluteElevationMaximum.setBackground(getColor(Resources.COLOR_PARSE_ERROR)); - AbstractUtility.warn(getClass(), e.getLocalizedMessage()); - } - } else if (eventSource == text_collectingMethod) { ++// if (eventSource == number_absoluteElevationError) { ++// getEntity().setAbsoluteElevationError(number_absoluteElevationError.getDouble()); ++// } ++// else if (eventSource == number_absoluteElevationMinimum) { ++// try { ++// getEntity().setAbsoluteElevationRange(number_absoluteElevationMinimum.getInteger(), number_absoluteElevationMaximum.getInteger()); ++// number_absoluteElevationMinimum.setBackground(getColor(Resources.COLOR_COMPOSITE_BACKGROUND)); ++// } catch (IllegalArgumentException e) { ++// number_absoluteElevationMinimum.setBackground(getColor(Resources.COLOR_PARSE_ERROR)); ++// AbstractUtility.warn(getClass(), e.getLocalizedMessage()); ++// } ++// } ++// else if (eventSource == number_absoluteElevationMaximum) { ++// try { ++// getEntity().setAbsoluteElevationRange(number_absoluteElevationError.getInteger(), number_absoluteElevationMaximum.getInteger()); ++// number_absoluteElevationMaximum.setBackground(getColor(Resources.COLOR_COMPOSITE_BACKGROUND)); ++// } catch (IllegalArgumentException e) { ++// number_absoluteElevationMaximum.setBackground(getColor(Resources.COLOR_PARSE_ERROR)); ++// AbstractUtility.warn(getClass(), e.getLocalizedMessage()); ++// } ++// } else ++ if (eventSource == text_collectingMethod) { + getEntity().setCollectingMethod(text_collectingMethod.getText()); + } else if (eventSource == number_distanceToGround) { - getEntity().setDistanceToGround(number_distanceToGround.getInteger()); ++ getEntity().setDistanceToGround(number_distanceToGround.getDouble()); + } else if (eventSource == number_distanceToWaterSurface) { - getEntity().setDistanceToWaterSurface(number_distanceToWaterSurface.getInteger()); ++ getEntity().setDistanceToWaterSurface(number_distanceToWaterSurface.getDouble()); + } else if (eventSource == text_gatheringEventDescription) { + getEntity().setGatheringEventDescription(text_gatheringEventDescription.getText()); + } + } +} diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmEnumSelectionDialog.java index 000000000,18641f908..641193b67 mode 000000,100644..100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmEnumSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmEnumSelectionDialog.java @@@ -1,0 -1,434 +1,428 @@@ + //$Id$ + + package eu.etaxonomy.taxeditor.ui.dialog.selection; + + import java.lang.reflect.Field; + import java.text.Collator; + import java.util.Comparator; -import java.util.HashSet; + import java.util.List; -import java.util.Set; -import java.util.UUID; + + import org.eclipse.core.runtime.CoreException; + import org.eclipse.core.runtime.IProgressMonitor; + import org.eclipse.core.runtime.IStatus; + import org.eclipse.core.runtime.OperationCanceledException; + import org.eclipse.core.runtime.Status; + import org.eclipse.jface.dialogs.IDialogSettings; + import org.eclipse.jface.viewers.ILabelProvider; + import org.eclipse.jface.viewers.LabelProvider; + import org.eclipse.jface.window.Window; + import org.eclipse.jface.wizard.WizardDialog; + import org.eclipse.swt.SWT; + import org.eclipse.swt.events.SelectionAdapter; + import org.eclipse.swt.events.SelectionEvent; + import org.eclipse.swt.events.SelectionListener; + import org.eclipse.swt.widgets.Composite; + import org.eclipse.swt.widgets.Control; + import org.eclipse.swt.widgets.Link; + import org.eclipse.swt.widgets.Shell; + import org.eclipse.swt.widgets.Text; + import org.eclipse.ui.IMemento; + import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog; + + 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.common.ICdmBase; + import eu.etaxonomy.cdm.model.common.IEnumTerm; -import eu.etaxonomy.cdm.model.common.IIdentifiableEntity; + import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; + import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard; + import eu.etaxonomy.taxeditor.store.StoreUtil; + import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin; + + /** + *

Abstract AbstractFilteredCdmEnumSelectionDialog class.

+ * + * @author c.mathew + * @created 18.07.2013 + * @version 1.0 + */ + public abstract class AbstractFilteredCdmEnumSelectionDialog extends + FilteredItemsSelectionDialog implements IConversationEnabled { + + private ConversationHolder conversation; + + protected List model; + private String settings; + + + + /** + *

Constructor for AbstractFilteredCdmResourceSelectionDialog.

+ * + * @param shell a {@link org.eclipse.swt.widgets.Shell} object. + * @param conversation + * @param title a {@link java.lang.String} object. + * @param multi a boolean. + * @param settings a {@link java.lang.String} object. + * @param cdmEnum a T object. + * @param a T object. + */ + protected AbstractFilteredCdmEnumSelectionDialog(Shell shell, + ConversationHolder conversation, + String title, + boolean multi, + String settings, + T cdmEnum) { + super(shell, multi); + setTitle(title); + setMessage("Use * for wildcard, or ? to see all entries"); + this.settings = settings; + + this.conversation = conversation; + + init(); + + initModel(); + + String objectTitle = getTitle(cdmEnum); + if (objectTitle != null) { + setInitialPattern(objectTitle); + } + + setListLabelProvider(createListLabelProvider()); + setDetailsLabelProvider(createDetailsLabelProvider()); + + setSelectionHistory(new ResourceSelectionHistory()); + } + + /** + * By default, we are returning the standard list label provider + * + * Override in subclasses if you want different behavior + * + * @return + */ + protected ILabelProvider createDetailsLabelProvider() { + return createListLabelProvider(); + } + + /** + * + * @return + */ + protected ILabelProvider createListLabelProvider() { + return new FilteredCdmResourceLabelProvider(); + } + + /** + * Override in subclasses. + * Will run before initModel() + */ + protected void init() { + + } + + /** + *

getSelectionFromDialog

+ * + * @param dialog a {@link eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog} object. + * @param a TYPE object. + * @return a TYPE object. + */ + protected static TYPE getSelectionFromDialog(AbstractFilteredCdmEnumSelectionDialog dialog) { + + int result = dialog.open(); + + if (result == Window.CANCEL) { + return null; + } + + return dialog.getSelectedEnumTerm(); + } + + + /** + *

getTitle

+ * + * @param cdmObject a T object. + * @return a {@link java.lang.String} object. + */ + protected String getTitle(T cdmEnum) { + return cdmEnum.getMessage(); + } + + + /** {@inheritDoc} */ + @Override + public void refresh() { + initModel(); + super.refresh(); + } + + /** + *

initModel

+ */ + abstract protected void initModel(); + + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createFilter() + */ + /** {@inheritDoc} */ + @Override + protected ItemsFilter createFilter() { + return new ItemsFilter() { + + /** + * Always returns false to enforce refiltering even if the pattern is equal + */ + @Override + public boolean equalsFilter(ItemsFilter filter) { + return false; + } + + @Override + public boolean isConsistentItem(Object item) { + return false; + } + + @Override + public boolean matchItem(Object item) { + String text = null; + if(item instanceof IEnumTerm){ + text = ((IEnumTerm) item).getMessage(); + }else if(item instanceof String){ + text = (String) item; + } + return text != null ? matches(text) : false; + } + + }; + } + + + /** + * Set the filter input to the Agent's title cache + * + * @param cdmObject a T object. + */ + protected void setPattern(T cdmObject) { + // FilteredSelection does some very tricky caching to make sure it + // runs with high performance. + // This works for most use cases, but we want to change the model while the dialog is open + // and all the clever caching prevents the content provider from knowing that the model has changed + // I am aware, that this is a hack, but the FilteredSelectionDialog API does not offer a convenient + // way to solve the problem. + try { + Field lastCompletedFilter = this.getClass().getSuperclass().getSuperclass().getDeclaredField("lastCompletedFilter"); + lastCompletedFilter.setAccessible(true); + lastCompletedFilter.set(this, null); + } catch (SecurityException e) { + StoreUtil.error(getClass(), e); + } catch (NoSuchFieldException e) { + StoreUtil.error(getClass(), e); + } catch (IllegalArgumentException e) { + StoreUtil.error(getClass(), e); + } catch (IllegalAccessException e) { + StoreUtil.error(getClass(), e); + } + + // this also is not the nicest way to do it. + // I am still amazed, that FilteredSelectionDialog does not offer any methods to change its data + // once it was opened. Am I doing it wrong? + String pattern = getTitle(cdmObject); + ((Text) getPatternControl()).setText(pattern); + } + + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#fillContentProvider(org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.AbstractContentProvider, org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ItemsFilter, org.eclipse.core.runtime.IProgressMonitor) + */ + /** {@inheritDoc} */ + @Override + protected void fillContentProvider(AbstractContentProvider contentProvider, + ItemsFilter itemsFilter, IProgressMonitor progressMonitor) + throws CoreException { + try { + if(model != null){ + progressMonitor.beginTask("Looking for entities", model.size()); + for(T element : model){ + contentProvider.add(element, itemsFilter); + if (progressMonitor.isCanceled()) { + throw new OperationCanceledException(); + } + progressMonitor.worked(1); + } + }else{ + StoreUtil.warn(getClass(), "Model for Filtered Selection is null:" + this.getClass().getSimpleName()); + } + } + finally { + progressMonitor.done(); + } + } + + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getDialogSettings() + */ + /** {@inheritDoc} */ + @Override + protected IDialogSettings getDialogSettings() { + IDialogSettings settings = TaxeditorStorePlugin.getDefault().getDialogSettings().getSection(getSettings()); + + if (settings == null) { + settings = TaxeditorStorePlugin.getDefault().getDialogSettings().addNewSection(getSettings()); + } + return settings; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getElementName(java.lang.Object) + */ + /** {@inheritDoc} */ + @Override + public String getElementName(Object item) { + return ((IEnumTerm) item).getMessage(); + } + + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getItemsComparator() + */ + /** {@inheritDoc} */ + @Override + protected Comparator getItemsComparator() { + return new Comparator() { + public int compare(IEnumTerm entity1, + IEnumTerm entity2) { + Collator collator = Collator.getInstance(); + return collator.compare(entity1.getMessage(), entity2.getMessage()); + } + }; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#validateItem(java.lang.Object) + */ + /** {@inheritDoc} */ + @Override + protected IStatus validateItem(Object item) { + return Status.OK_STATUS; + } + + /** + *

getSelectedUuidAndTitleCache

+ * + * @return a {@link eu.etaxonomy.cdm.model.common.UuidAndTitleCache} object. + */ + protected T getSelectedEnumTerm() { + Object[] result = getResult(); + return result[0] == null ? null : (T) result[0]; + } + + /** + *

Getter for the field settings.

+ * + * @return a {@link java.lang.String} object. + */ + public String getSettings() { + if(settings == null){ + throw new IllegalStateException("No SETTINGS set."); + } + return settings; + } + + /** + * + * @author n.hoffmann + * @created Oct 19, 2009 + * @version 1.0 + */ + private class ResourceSelectionHistory extends SelectionHistory { + /* + * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.SelectionHistory#restoreItemFromMemento(org.eclipse.ui.IMemento) + */ + protected Object restoreItemFromMemento(IMemento element) { + return element.getString("resource"); //$NON-NLS-1$ + } + /* + * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.SelectionHistory#storeItemToMemento(java.lang.Object, + * org.eclipse.ui.IMemento) + */ + protected void storeItemToMemento(Object item, IMemento element) { + element.putString("resource", item.toString()); //$NON-NLS-1$ + } + } + + /** + *

getNewWizardLinkText

+ * + * @return a {@link java.lang.String} object. + */ + protected abstract String getNewWizardLinkText(); + + /** + *

getNewEntityWizard

+ * @param parameter + * @return a {@link eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard} object. + */ + protected abstract AbstractNewEntityWizard getNewEntityWizard(String parameter); + + public class FilteredCdmResourceLabelProvider extends LabelProvider { + public String getText(Object element) { + if (element == null) { + return null; + } + return ((IEnumTerm) element).getMessage(); + } + }; + + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createExtendedContentArea(org.eclipse.swt.widgets.Composite) + */ + /** {@inheritDoc} */ + @Override + protected Control createExtendedContentArea(Composite parent) { + if(getNewWizardLinkText() != null){ + Link link = new Link(parent, SWT.NONE); + link.setText(getNewWizardLinkText()); + link.addSelectionListener(getNewWizardLinkSelectionListener()); + return link; + } + return null; + } + + protected SelectionListener getNewWizardLinkSelectionListener(){ + return new SelectionAdapter() { + + /* (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetSelected(SelectionEvent e) { + + AbstractNewEntityWizard wizard = getNewEntityWizard(e.text); + wizard.init(null, null); + WizardDialog dialog = new WizardDialog(getShell(), wizard); + int status = dialog.open(); + + if (status == IStatus.OK) { + + T entity = (T) wizard.getEntity(); + + refresh(); + setPattern(entity); + getConversationHolder().bind(); + } + } + }; + } + + /** + *

getConversationHolder

+ * + * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object. + */ + public ConversationHolder getConversationHolder() { + return conversation; + } + + /** {@inheritDoc} */ + public void update(CdmDataChangeMap changeEvents) {} + + } diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/GrantedAuthoritySelectionDialog.java index 1cd609d16,1cd609d16..7f4ba7e51 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/GrantedAuthoritySelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/GrantedAuthoritySelectionDialog.java @@@ -19,13 -19,13 +19,10 @@@ import org.springframework.security.cor import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService; --import eu.etaxonomy.cdm.api.service.IGroupService; --import eu.etaxonomy.cdm.api.service.IUserService; import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl; import eu.etaxonomy.cdm.model.common.UuidAndTitleCache; import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard; import eu.etaxonomy.taxeditor.newWizard.NewGrantedAuthorityWizard; --import eu.etaxonomy.taxeditor.newWizard.NewGroupWizard; import eu.etaxonomy.taxeditor.store.CdmStore; /** diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java index 7417334d9,7417334d9..d2858ccdd --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java @@@ -1,9 -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. */ @@@ -17,7 -17,7 +17,7 @@@ import org.eclipse.swt.widgets.Shell import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.service.IReferenceService; import eu.etaxonomy.cdm.model.reference.Reference; --import eu.etaxonomy.cdm.strategy.cache.reference.ReferenceBaseDefaultCacheStrategy; ++import eu.etaxonomy.cdm.strategy.cache.reference.ReferenceDefaultCacheStrategy; import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard; import eu.etaxonomy.taxeditor.newWizard.NewReferenceWizard; import eu.etaxonomy.taxeditor.store.CdmStore; @@@ -30,7 -30,7 +30,7 @@@ * @version 1.0 */ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelectionDialog { -- ++ /** *

select

* @@@ -41,11 -41,11 +41,11 @@@ */ public static Reference select(Shell shell, ConversationHolder conversation, Reference reference) { ReferenceSelectionDialog dialog = new ReferenceSelectionDialog(shell, conversation, -- "Choose a reference", false, (Reference) reference); ++ "Choose a reference", false, reference); return getSelectionFromDialog(dialog); } -- ++ /** *

Constructor for FilteredReferenceSelectionDialog.

* @@@ -58,7 -58,7 +58,7 @@@ protected ReferenceSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, Reference reference) { super(shell, conversation, title, multi, ReferenceSelectionDialog.class.getCanonicalName(), null); } -- ++ /* (non-Javadoc) * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#getPersistentObject(java.util.UUID) @@@ -74,10 -74,10 +74,10 @@@ */ /** {@inheritDoc} */ @Override -- protected void initModel() { ++ protected void initModel() { model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache(); } -- ++ /** {@inheritDoc} */ @Override @@@ -87,10 -87,10 +87,10 @@@ }else if(cdmObject.getAuthorTeam() == null){ return super.getTitle(cdmObject); }else{ -- return ReferenceBaseDefaultCacheStrategy.putAuthorToEndOfString(cdmObject.getTitleCache(), cdmObject.getAuthorTeam().getTitleCache()); ++ return ReferenceDefaultCacheStrategy.putAuthorToEndOfString(cdmObject.getTitleCache(), cdmObject.getAuthorTeam().getTitleCache()); } } -- ++ /** {@inheritDoc} */ @Override protected AbstractNewEntityWizard getNewEntityWizard(String parameter) { @@@ -102,5 -102,5 +102,5 @@@ protected String getNewWizardLinkText() { return "Click here to create a new reference."; } -- ++ } diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java index 741d99e21,533b43b02..29f1bb064 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java @@@ -47,13 -48,15 +48,13 @@@ import eu.etaxonomy.cdm.model.agent.Tea import eu.etaxonomy.cdm.model.common.Annotation; import eu.etaxonomy.cdm.model.common.CdmBase; import eu.etaxonomy.cdm.model.common.Credit; + import eu.etaxonomy.cdm.model.common.DefinedTerm; import eu.etaxonomy.cdm.model.common.DefinedTermBase; - import eu.etaxonomy.cdm.model.common.DescriptionElementSource; -import eu.etaxonomy.cdm.model.description.DescriptionElementSource; import eu.etaxonomy.cdm.model.common.Extension; import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl; import eu.etaxonomy.cdm.model.common.Group; import eu.etaxonomy.cdm.model.common.ICdmBase; --import eu.etaxonomy.cdm.model.common.IDefinedTerm; + import eu.etaxonomy.cdm.model.common.IEnumTerm; import eu.etaxonomy.cdm.model.common.IdentifiableSource; import eu.etaxonomy.cdm.model.common.Language; import eu.etaxonomy.cdm.model.common.LanguageString; @@@ -64,6 -68,6 +66,7 @@@ import eu.etaxonomy.cdm.model.common.Ve import eu.etaxonomy.cdm.model.description.CategoricalData; import eu.etaxonomy.cdm.model.description.CommonTaxonName; import eu.etaxonomy.cdm.model.description.DescriptionElementBase; ++import eu.etaxonomy.cdm.model.description.DescriptionElementSource; import eu.etaxonomy.cdm.model.description.Distribution; import eu.etaxonomy.cdm.model.description.Feature; import eu.etaxonomy.cdm.model.description.IndividualsAssociation; @@@ -89,26 -91,15 +90,27 @@@ import eu.etaxonomy.cdm.model.name.Nome import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation; import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent; - import eu.etaxonomy.cdm.model.occurrence.Specimen; -import eu.etaxonomy.cdm.model.occurrence.GatheringEvent; ++import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; import eu.etaxonomy.cdm.model.reference.Reference; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.cdm.strategy.parser.ParserProblem; import eu.etaxonomy.taxeditor.model.AbstractUtility; +import eu.etaxonomy.taxeditor.ui.campanula.basicFields.NamedAreaFieldController; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; +import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationDetailsElement; +import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationDetailsElementController; +import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationGeneralElement; +import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationGeneralElementController; +import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationSection; +import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.GatheringEventDetailsElement; +import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.GatheringEventDetailsElementController; +import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.SpecimenGeneralElement; +import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.SpecimenGeneralElementController; +import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.SpecimenSection; import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement; import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; + import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection.UnitType; import eu.etaxonomy.taxeditor.ui.openurl.IOpenUrlEnabled; import eu.etaxonomy.taxeditor.ui.openurl.OpenUrlSelectorElement; import eu.etaxonomy.taxeditor.ui.password.EditPasswordElement; @@@ -586,116 -577,91 +588,90 @@@ public class CdmFormFactory extends For public UriWithLabelElement createUriWithLabelElement(ICdmFormElement parentElement, String labelString, URI initialUri, int style) { UriWithLabelElement element = new UriWithLabelElement(this, parentElement, labelString, initialUri, null, style); - adapt(element); - parentElement.addElement(element); - return element; - } + adapt(element); + parentElement.addElement(element); + return element; + } - /** - * @param element - * @param string - * @param uri - * @param style - * @return - */ + /** + * @param element + * @param string + * @param uri + * @param style + * @return + */ public OpenUrlSelectorElement createOpenUrlSelectorElement(ICdmFormElement parentElement, String labelString, - IOpenUrlEnabled openUrlEnabled, int style) { + IOpenUrlEnabled openUrlEnabled, int style) { OpenUrlSelectorElement element = new OpenUrlSelectorElement(this, parentElement, labelString, openUrlEnabled, style); - adapt(element); - parentElement.addElement(element); - return element; - } + adapt(element); + parentElement.addElement(element); + return element; + } - /** - * - * @param parentElement - * @param labelString - * @param conversationEnabled - * @param user - * @param style - * @return - */ + /** + * + * @param parentElement + * @param labelString + * @param conversationEnabled + * @param user + * @param style + * @return + */ public EditPasswordElement createEditPasswordElement(ICdmFormElement parentElement, String labelString, - ConversationHolder conversation, User user, int style) { + ConversationHolder conversation, User user, int style) { EditPasswordElement element = new EditPasswordElement(this, parentElement, labelString, user, conversation); - adapt(element); - parentElement.addElement(element); - return element; - } + adapt(element); + parentElement.addElement(element); + return element; + } - /** - *

- * createIntegerTextWithLabelElement - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param labelString - * a {@link java.lang.String} object. - * @param initialInteger - * a {@link java.lang.Integer} object. - * @param style - * a int. + /** + *

+ * createIntegerTextWithLabelElement + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param labelString + * a {@link java.lang.String} object. + * @param initialInteger + * a {@link java.lang.Integer} object. + * @param style + * a int. * @return a * {@link eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement} - * object. - */ + * object. + */ - public NumberWithLabelElement createIntegerTextWithLabelElement(ICdmFormElement parentElement, String labelString, - Integer initialInteger, int style) { - NumberWithLabelElement element = new NumberWithLabelElement(this, parentElement, labelString, initialInteger, - style); - adapt(element); - parentElement.addElement(element); - return element; - } - - /** - *

- * createFloatTextWithLabelElement - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param labelString - * a {@link java.lang.String} object. - * @param initialFloat - * a float. - * @param style - * a int. - * @return a - * {@link eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement} - * object. - */ - public NumberWithLabelElement createFloatTextWithLabelElement(ICdmFormElement parentElement, String labelString, - float initialFloat, int style) { - NumberWithLabelElement element = new NumberWithLabelElement(this, parentElement, labelString, initialFloat, - style); - adapt(element); - parentElement.addElement(element); - return element; - } + public NumberWithLabelElement createNumberTextWithLabelElement( + ICdmFormElement parentElement, String labelString, + Number initialNumber, int style) { + NumberWithLabelElement element = new NumberWithLabelElement(this, + parentElement, labelString, initialNumber, style); + adapt(element); + parentElement.addElement(element); + return element; + } - - /** - *

- * createLanguageStringWithLabelElement - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param labelString - * a {@link java.lang.String} object. - * @param languageString - * a {@link eu.etaxonomy.cdm.model.common.LanguageString} object. - * @param style - * a int. - * @return a - * {@link eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement} - * object. - */ + /** + *

+ * createLanguageStringWithLabelElement + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param labelString + * a {@link java.lang.String} object. + * @param languageString + * a {@link eu.etaxonomy.cdm.model.common.LanguageString} object. + * @param style + * a int. + * @return a + * {@link eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement} + * object. + */ public LanguageStringWithLabelElement createLanguageStringWithLabelElement(ICdmFormElement parentElement, String labelString, LanguageString languageString, int style) { LanguageStringWithLabelElement element = new LanguageStringWithLabelElement(this, parentElement, labelString, @@@ -808,522 -774,606 +784,612 @@@ ICdmFormElement parentElement, String labelString, T selection, int style) { TermComboElement element = new TermComboElement(this, parentElement, termComboType, labelString, selection, style); - adapt(element); - parentElement.addElement(element); - return element; - } - + adapt(element); + parentElement.addElement(element); + return element; + } + + /** + *

+ * createTermComboElement + *

- * ++ * + * @param termComboType + * a + * {@link eu.eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.TermComboType} + * object. + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param labelString + * a {@link java.lang.String} object. + * @param selection + * a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase} + * object. + * @param style + * a int. + * @return a {@link eu.etaxonomy.taxeditor.ui.combo.TermComboElement} + * object. + */ - ++ + public TermComboElement createDefinedTermComboElement( - TermType termType, ++ TermType termType, + ICdmFormElement parentElement, - String labelString, - T selection, ++ String labelString, ++ T selection, + int style) { + TermComboElement element = new TermComboElement(this, parentElement, termType, labelString, selection, style); + adapt(element); + parentElement.addElement(element); + return element; + } + - /** - *

- * createEnumComboElement - *

- * - * @param enumComboType - * a - * {@link eu.eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.EnumComboType} - * object. - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param style - * a int. - * @return a {@link eu.etaxonomy.taxeditor.ui.term.AbstractEnumComboElement} - * object. - */ + /** + *

+ * createEnumComboElement + *

+ * + * @param enumComboType + * a + * {@link eu.eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.EnumComboType} + * object. + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param style + * a int. + * @return a {@link eu.etaxonomy.taxeditor.ui.term.AbstractEnumComboElement} + * object. + */ - public EnumComboElement createEnumComboElement(Class enumComboType, - ICdmFormElement parentElement, int style) { + public EnumComboElement createEnumComboElement( + Class enumComboType, ICdmFormElement parentElement, + int style) { - EnumComboElement element = new EnumComboElement(this, parentElement, enumComboType, style); - adapt(element); - parentElement.addElement(element); - return element; - } + EnumComboElement element = new EnumComboElement(this, parentElement, enumComboType, style); + adapt(element); + parentElement.addElement(element); + return element; + } - /** - *

- * createBrowserElement - *

- * - * @param imageUri - * a {@link java.net.URI} object. - * @param style - * a int. - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. + /** + *

+ * createBrowserElement + *

+ * + * @param imageUri + * a {@link java.net.URI} object. + * @param style + * a int. + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. * @return a {@link eu.etaxonomy.taxeditor.ui.element.BrowserElement} * object. - */ + */ public BrowserElement createBrowserElement(ICdmFormElement parentElement, URI imageUri, int style) { BrowserElement element = new BrowserElement(this, parentElement, imageUri, style); - adapt(element); - parentElement.addElement(element); - return element; - } + adapt(element); + parentElement.addElement(element); + return element; + } - /** - *

- * createImageElement - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param imageUri - * a {@link java.net.URI} object. - * @param style - * a int. - * @return a {@link eu.etaxonomy.taxeditor.ui.element.ImageElement} object. - */ + /** + *

+ * createImageElement + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param imageUri + * a {@link java.net.URI} object. + * @param style + * a int. + * @return a {@link eu.etaxonomy.taxeditor.ui.element.ImageElement} object. + */ public ImageElement createImageElement(ICdmFormElement parentElement, URI imageUri, int style) { ImageElement element = new ImageElement(this, parentElement, imageUri, style); - adapt(element); - parentElement.addElement(element); - return element; - } + adapt(element); + parentElement.addElement(element); + return element; + } - /** - *

- * createTextActionElement - *

- * - * @param labelString - * a {@link java.lang.String} object. - * @param initialText - * a {@link java.lang.String} object. - * @param style - * a int. - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param buttonLabel - * a {@link java.lang.String} object. - * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextActionElement} - * object. - */ + /** + *

+ * createTextActionElement + *

+ * + * @param labelString + * a {@link java.lang.String} object. + * @param initialText + * a {@link java.lang.String} object. + * @param style + * a int. + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param buttonLabel + * a {@link java.lang.String} object. + * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextActionElement} + * object. + */ public TextActionElement createTextActionElement(ICdmFormElement parentElement, String labelString, - String buttonLabel, String initialText, int style) { + String buttonLabel, String initialText, int style) { TextActionElement element = new TextActionElement(this, parentElement, labelString, buttonLabel, initialText, style); - adapt(element); - parentElement.addElement(element); - return element; - } + adapt(element); + parentElement.addElement(element); + return element; + } - /** - *

- * createCheckbox - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param label - * a {@link java.lang.String} object. - * @param initialState - * a boolean. - * @param style - * a int. + /** + *

+ * createCheckbox + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param label + * a {@link java.lang.String} object. + * @param initialState + * a boolean. + * @param style + * a int. * @return a {@link eu.etaxonomy.taxeditor.ui.element.CheckboxElement} * object. - */ + */ public CheckboxElement createCheckbox(ICdmFormElement parentElement, String label, boolean initialState, int style) { CheckboxElement element = new CheckboxElement(this, parentElement, label, initialState, style | orientation); - adapt(element); - parentElement.addElement(element); - return element; - } + adapt(element); + parentElement.addElement(element); + return element; + } - /** - * Creates a section as a part of the form. - * - * @return the section widget - * @param section + /** + * Creates a section as a part of the form. + * + * @return the section widget + * @param section * a * {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} - * object. - */ - public Section adapt(AbstractFormSection section) { - section.setMenu(section.getLayoutComposite().getMenu()); - adapt(section, true, true); + * object. + */ + public Section adapt(AbstractFormSection section) { + section.setMenu(section.getLayoutComposite().getMenu()); + adapt(section, true, true); - // handle focus and property change events for cdm use - section.addFocusListener(selectionFocusHandler); - section.setPropertyChangeListeners(propertyChangeListeners); + // handle focus and property change events for cdm use + section.addFocusListener(selectionFocusHandler); + section.setPropertyChangeListeners(propertyChangeListeners); - if (section.getToggle() != null) { + if (section.getToggle() != null) { section.getToggle().setHoverDecorationColor(getColors().getColor(IFormColors.TB_TOGGLE_HOVER)); section.getToggle().setDecorationColor(getColors().getColor(IFormColors.TB_TOGGLE)); - } + } section.setFont(boldFontHolder2.getBoldFont(section.getLayoutComposite().getFont())); if ((section.getStyle() & ExpandableComposite.TITLE_BAR) != 0 || (section.getStyle() & ExpandableComposite.SHORT_TITLE_BAR) != 0) { - getColors().initializeSectionToolBarColors(); + getColors().initializeSectionToolBarColors(); section.setTitleBarBackground(getColors().getColor(IFormColors.TB_BG)); section.setTitleBarBorderColor(getColors().getColor(IFormColors.TB_BORDER)); - } - // call setTitleBarForeground regardless as it also sets the label color + } + // call setTitleBarForeground regardless as it also sets the label color section.setTitleBarForeground(getColors().getColor(IFormColors.TB_TOGGLE)); - return section; - } + return section; + } - private class BoldFontHolder2 { - private Font normalFont; + private class BoldFontHolder2 { + private Font normalFont; - private Font boldFont; + private Font boldFont; - public BoldFontHolder2() { - } + public BoldFontHolder2() { + } - public Font getBoldFont(Font font) { - createBoldFont(font); - return boldFont; - } + public Font getBoldFont(Font font) { + createBoldFont(font); + return boldFont; + } - private void createBoldFont(Font font) { - if (normalFont == null || !normalFont.equals(font)) { - normalFont = font; - dispose(); - } - if (boldFont == null) { + private void createBoldFont(Font font) { + if (normalFont == null || !normalFont.equals(font)) { + normalFont = font; + dispose(); + } + if (boldFont == null) { boldFont = FormFonts.getInstance().getBoldFont(getColors().getDisplay(), normalFont); - } - } + } + } - public void dispose() { - if (boldFont != null) { + public void dispose() { + if (boldFont != null) { FormFonts.getInstance().markFinished(boldFont, getColors().getDisplay()); - boldFont = null; - } - } - } + boldFont = null; + } + } + } - /** - *

- * createToggleableTextField - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param labelString - * a {@link java.lang.String} object. - * @param initialText - * a {@link java.lang.String} object. - * @param initialState - * a boolean. - * @param style - * a int. - * @return a {@link eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement} - * object. - */ + /** + *

+ * createToggleableTextField + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param labelString + * a {@link java.lang.String} object. + * @param initialText + * a {@link java.lang.String} object. + * @param initialState + * a boolean. + * @param style + * a int. + * @return a {@link eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement} + * object. + */ public ToggleableTextElement createToggleableTextField(ICdmFormElement parentElement, String labelString, - String initialText, boolean initialState, int style) { + String initialText, boolean initialState, int style) { ToggleableTextElement element = new ToggleableTextElement(this, parentElement, labelString, initialText, initialState, style | orientation); - adapt(element); - parentElement.addElement(element); - return element; - } + adapt(element); + parentElement.addElement(element); + return element; + } - /** - *

- * createTimePeriodElement - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param labelString - * a {@link java.lang.String} object. - * @param timePeriod - * a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object. - * @param style - * a int. - * @return a {@link eu.etaxonomy.taxeditor.ui.element.TimePeriodElement} - * object. - */ + /** + *

+ * createTimePeriodElement + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param labelString + * a {@link java.lang.String} object. + * @param timePeriod + * a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object. + * @param style + * a int. + * @return a {@link eu.etaxonomy.taxeditor.ui.element.TimePeriodElement} + * object. + */ public TimePeriodElement createTimePeriodElement(ICdmFormElement parentElement, String labelString, - TimePeriod timePeriod, int style) { + TimePeriod timePeriod, int style) { TimePeriodElement element = new TimePeriodElement(this, parentElement, labelString, timePeriod, style); - adapt(element); - parentElement.addElement(element); - return element; - } - + adapt(element); + parentElement.addElement(element); + return element; + } + + /** + *

+ * createGatheringEventUnitElement + *

- * ++ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param labelString + * a {@link java.lang.String} object. + * @param timePeriod + * a {@link eu.etaxonomy.cdm.model.common.GatheringEvent} object. + * @param style + * a int. + * @return a {@link eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement} + * object. + */ + public GatheringEventUnitElement createGatheringEventUnitElement( - ICdmFormElement parentElement, ++ ICdmFormElement parentElement, + String labelString, - DerivedUnitFacade gatheringEvent, - MinMaxTextSection.UnitType unitType, ++ DerivedUnitFacade gatheringEvent, ++ MinMaxTextSection.UnitType unitType, + int style) { - GatheringEventUnitElement element = new GatheringEventUnitElement(this, ++ GatheringEventUnitElement element = new GatheringEventUnitElement(this, + parentElement, - labelString, - gatheringEvent, ++ labelString, ++ gatheringEvent, + unitType, + style); + adapt(element); + parentElement.addElement(element); + return element; + } + - /** - *

- * createPointElement - *

- * - * @param style - * a int. - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param point - * a {@link eu.etaxonomy.cdm.model.location.Point} object. - * @return a {@link eu.etaxonomy.taxeditor.ui.element.PointElement} object. - */ + /** + *

+ * createPointElement + *

+ * + * @param style + * a int. + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param point + * a {@link eu.etaxonomy.cdm.model.location.Point} object. + * @return a {@link eu.etaxonomy.taxeditor.ui.element.PointElement} object. + */ public PointElement createPointElement(ICdmFormElement parentElement, Point point, int style) { PointElement element = new PointElement(this, parentElement, point, style); - adapt(element); - parentElement.addElement(element); - return element; - } + adapt(element); + parentElement.addElement(element); + return element; + } - /** - *

- * createDateDetailSection - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param style - * a int. - * @return a {@link eu.etaxonomy.taxeditor.ui.element.DateDetailSection} - * object. - */ + /** + *

+ * createDateDetailSection + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param style + * a int. + * @return a {@link eu.etaxonomy.taxeditor.ui.element.DateDetailSection} + * object. + */ public DateDetailSection createDateDetailSection(ICdmFormElement parentElement, int style) { DateDetailSection section = new DateDetailSection(this, parentElement, style); - parentElement.addElement(section); - adapt(section); - return section; - } - - /** - *

- * createDateDetailSection - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param style - * a int. - * @return a {@link eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection} - * object. - */ - public MinMaxTextSection createMinMaxTextSection(ICdmFormElement parentElement, UnitType unitType, int style) { - MinMaxTextSection section = new MinMaxTextSection(this, parentElement, unitType, style); - parentElement.addElement(section); - adapt(section); - return section; - } - - /** - *

- * createPartialElement - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param labelString - * a {@link java.lang.String} object. - * @param partial - * a {@link org.joda.time.Partial} object. - * @param style - * a int. - * @return a {@link eu.etaxonomy.taxeditor.ui.element.PartialElement} - * object. - */ - public PartialElement createPartialElement(ICdmFormElement parentElement, String labelString, Partial partial, - int style) { - PartialElement element = new PartialElement(this, parentElement, labelString, style); - adapt(element); - parentElement.addElement(element); - return element; - } - - /** - *

- * addSelectionListener - *

- * - * @param listener - * a {@link org.eclipse.swt.events.SelectionListener} object. - */ - public void addSelectionListener(SelectionListener listener) { - selectionListenerList.add(listener); - } - - /** - *

- * removeSelectionListener - *

- * - * @param listener - * a {@link org.eclipse.swt.events.SelectionListener} object. - */ - public void removeSelectionListener(SelectionListener listener) { - if (listener == null) { - AbstractUtility.error(this.getClass(), - "Tried to remove a selection listener from this factories listeners but was null", null); - } else { - selectionListenerList.remove(listener); - } - } - - /** - *

- * addPropertyChangeListener - *

- * - * @param listener - * a {@link org.eclipse.jface.util.IPropertyChangeListener} - * object. - */ - public void addPropertyChangeListener(IPropertyChangeListener listener) { - if(propertyChangeListeners.contains(listener)){ - return; - } - propertyChangeListeners.add(0, listener); - } - - /** - *

- * removePropertyChangeListener - *

- * - * @param listener - * a {@link org.eclipse.jface.util.IPropertyChangeListener} - * object. - */ - public void removePropertyChangeListener(IPropertyChangeListener listener) { - propertyChangeListeners.remove(listener); - } - - /** - *

- * createHorizontalSeparator - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param style - * a int. - * @return a {@link org.eclipse.swt.widgets.Label} object. - */ - public Label createHorizontalSeparator(ICdmFormElement parentElement, int style) { - Label separator = this.createSeparator(parentElement.getLayoutComposite(), SWT.HORIZONTAL | style); - separator.setLayoutData(LayoutConstants.FILL_HORIZONTALLY()); - return separator; - } - - /** - *

- * createVersionElement - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param entity - * a {@link eu.etaxonomy.cdm.model.common.VersionableEntity} - * object. - * @param style - * a int. - * @return a - * {@link eu.etaxonomy.taxeditor.ui.section.supplemental.VersionElement} - * object. - */ - public VersionElement createVersionElement(ICdmFormElement parentElement, VersionableEntity entity, int style) { - VersionElement element = new VersionElement(this, parentElement, entity, style); - adapt(element); - parentElement.addElement(element); - return element; - } - - /** - * @param cdmBaseSection - * @param object - * @param style - * @return - */ - public CdmBaseElement createCdmBaseElement(ICdmFormElement parentElement, CdmBase entity, int style) { - CdmBaseElement element = new CdmBaseElement(this, parentElement, entity, style); - adapt(element); - parentElement.addElement(element); - return element; - } - - - /** - *

- * createVersionSection - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param style - * a int. - * @return a - * {@link eu.etaxonomy.taxeditor.ui.section.supplemental.VersionSection} - * object. - */ - public VersionSection createVersionSection(ICdmFormElement parentElement, int style) { - VersionSection section = new VersionSection(this, parentElement, style); - parentElement.addElement(section); - adapt(section); - return section; - } - - /** - * @param parent - * @param i - * @return - */ - public CdmBaseSection createCdmBaseSection(ICdmFormElement parentElement, int style) { - CdmBaseSection section = new CdmBaseSection(this, parentElement, style); - parentElement.addElement(section); - adapt(section); - return section; - } - - /** - *

- * createEmptyElement - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @return a {@link eu.etaxonomy.taxeditor.ui.section.EmptyElement} object. - */ - public EmptyElement createEmptyElement(ICdmFormElement parentElement) { - EmptyElement element = new EmptyElement(this, parentElement, null, SWT.NULL); - adapt(element); - parentElement.addElement(element); - return element; - } - - /** - *

- * createHeadlineSection - *

- * - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @return a - * {@link eu.etaxonomy.taxeditor.ui.section.supplemental.HeadlineSection} - * object. - */ - public HeadlineSection createHeadlineSection(ICdmFormElement parentElement) { - HeadlineSection section = new HeadlineSection(this, parentElement, SWT.NULL); - parentElement.addElement(section); - adapt(section); - return section; - } + parentElement.addElement(section); + adapt(section); + return section; + } + /** + *

- * createParsingMessageElement ++ * createDateDetailSection + *

- * ++ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. - * @param parserProblem - * a {@link eu.etaxonomy.cdm.strategy.parser.ParserProblem} - * object. + * @param style + * a int. - * @return a - * {@link eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessageElement} ++ * @return a {@link eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection} + * object. + */ ++ public MinMaxTextSection createMinMaxTextSection(ICdmFormElement parentElement, UnitType unitType, int style) { ++ MinMaxTextSection section = new MinMaxTextSection(this, parentElement, unitType, style); ++ parentElement.addElement(section); ++ adapt(section); ++ return section; ++ } ++ + /** + *

+ * createPartialElement + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param labelString + * a {@link java.lang.String} object. + * @param partial + * a {@link org.joda.time.Partial} object. + * @param style + * a int. + * @return a {@link eu.etaxonomy.taxeditor.ui.element.PartialElement} + * object. + */ + public PartialElement createPartialElement(ICdmFormElement parentElement, String labelString, Partial partial, + int style) { + PartialElement element = new PartialElement(this, parentElement, labelString, style); + adapt(element); + parentElement.addElement(element); + return element; + } + + /** + *

+ * addSelectionListener + *

+ * + * @param listener + * a {@link org.eclipse.swt.events.SelectionListener} object. + */ + public void addSelectionListener(SelectionListener listener) { + selectionListenerList.add(listener); + } + + /** + *

+ * removeSelectionListener + *

+ * + * @param listener + * a {@link org.eclipse.swt.events.SelectionListener} object. + */ + public void removeSelectionListener(SelectionListener listener) { + if (listener == null) { + AbstractUtility.error(this.getClass(), + "Tried to remove a selection listener from this factories listeners but was null", null); + } else { + selectionListenerList.remove(listener); + } + } + + /** + *

+ * addPropertyChangeListener + *

+ * + * @param listener + * a {@link org.eclipse.jface.util.IPropertyChangeListener} + * object. + */ + public void addPropertyChangeListener(IPropertyChangeListener listener) { + if (propertyChangeListeners.contains(listener)) { + return; + } + propertyChangeListeners.add(0, listener); + } + + /** + *

+ * removePropertyChangeListener + *

+ * + * @param listener + * a {@link org.eclipse.jface.util.IPropertyChangeListener} + * object. + */ + public void removePropertyChangeListener(IPropertyChangeListener listener) { + propertyChangeListeners.remove(listener); + } + + /** + * @return the propertyChangeListeners + */ + public List getPropertyChangeListeners() { + return propertyChangeListeners; + } + + /** + *

+ * createHorizontalSeparator + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param style + * a int. + * @return a {@link org.eclipse.swt.widgets.Label} object. + */ + public Label createHorizontalSeparator(ICdmFormElement parentElement, int style) { + Label separator = this.createSeparator(parentElement.getLayoutComposite(), SWT.HORIZONTAL | style); + separator.setLayoutData(LayoutConstants.FILL_HORIZONTALLY()); + return separator; + } + + /** + *

+ * createVersionElement + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param entity + * a {@link eu.etaxonomy.cdm.model.common.VersionableEntity} + * object. + * @param style + * a int. + * @return a + * {@link eu.etaxonomy.taxeditor.ui.section.supplemental.VersionElement} + * object. + */ + public VersionElement createVersionElement(ICdmFormElement parentElement, VersionableEntity entity, int style) { + VersionElement element = new VersionElement(this, parentElement, entity, style); + adapt(element); + parentElement.addElement(element); + return element; + } + + /** + * @param cdmBaseSection + * @param object + * @param style + * @return + */ + public CdmBaseElement createCdmBaseElement(ICdmFormElement parentElement, CdmBase entity, int style) { + CdmBaseElement element = new CdmBaseElement(this, parentElement, entity, style); + adapt(element); + parentElement.addElement(element); + return element; + } + + /** + *

+ * createVersionSection + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param style + * a int. + * @return a + * {@link eu.etaxonomy.taxeditor.ui.section.supplemental.VersionSection} + * object. + */ + public VersionSection createVersionSection(ICdmFormElement parentElement, int style) { + VersionSection section = new VersionSection(this, parentElement, style); + parentElement.addElement(section); + adapt(section); + return section; + } + + /** + * @param parent + * @param i + * @return + */ + public CdmBaseSection createCdmBaseSection(ICdmFormElement parentElement, int style) { + CdmBaseSection section = new CdmBaseSection(this, parentElement, style); + parentElement.addElement(section); + adapt(section); + return section; + } + + /** + *

+ * createEmptyElement + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @return a {@link eu.etaxonomy.taxeditor.ui.section.EmptyElement} object. + */ + public EmptyElement createEmptyElement(ICdmFormElement parentElement) { + EmptyElement element = new EmptyElement(this, parentElement, null, SWT.NULL); + adapt(element); + parentElement.addElement(element); + return element; + } + + /** + *

+ * createHeadlineSection + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @return a + * {@link eu.etaxonomy.taxeditor.ui.section.supplemental.HeadlineSection} + * object. + */ + public HeadlineSection createHeadlineSection(ICdmFormElement parentElement) { + HeadlineSection section = new HeadlineSection(this, parentElement, SWT.NULL); + parentElement.addElement(section); + adapt(section); + return section; + } + + /** + *

+ * createParsingMessageElement + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param parserProblem + * a {@link eu.etaxonomy.cdm.strategy.parser.ParserProblem} + * object. + * @param style + * a int. + * @return a + * {@link eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessageElement} + * object. + */ public ParsingMessageElement createParsingMessageElement(ICdmFormElement parentElement, ParserProblem parserProblem, int style) { ParsingMessageElement element = new ParsingMessageElement(this, parentElement, parserProblem, style); @@@ -1558,6 -1608,6 +1624,11 @@@ return section; } ++ public GatheringEventDetailSection createGatheringSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){ ++ GatheringEventDetailSection section = new GatheringEventDetailSection(this, conversation, parentElement, selectionProvider, style); ++ addAndAdaptSection(parentElement, section); ++ return section; ++ } public NamedAreaDetailSection createNamedAreaDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){ NamedAreaDetailSection section = new NamedAreaDetailSection(this, conversation, parentElement, selectionProvider, style); @@@ -2048,85 -2114,113 +2119,120 @@@ element = new RightsElement(this, parentElement, (Rights) entity, removeListener, style); } else if (entity instanceof DescriptionElementSource) { element = new DescriptionElementSourceElement(this, parentElement, (DescriptionElementSource) entity, - removeListener, style); - } else if (entity instanceof IdentifiableSource) { + removeListener, style); + } else if (entity instanceof IdentifiableSource) { element = new IdentifiableSourceElement(this, parentElement, (IdentifiableSource) entity, removeListener, style); - } else if (entity instanceof Scope) { - element = new ScopeElement(this, parentElement, (Scope) entity, removeListener, style); - } else if (entity instanceof Modifier) { - element = new ModifierElement(this, parentElement, (Modifier) entity, removeListener, style); + } else if (entity instanceof DefinedTerm) { + switch(((DefinedTerm)entity).getTermType()) { + case Scope: - element = new ScopeElement(this, - parentElement, ++ element = new ScopeElement(this, ++ parentElement, + (DefinedTerm) entity, - removeListener, ++ removeListener, + style); + break; + case Modifier: - element = new ModifierElement(this, ++ element = new ModifierElement(this, + parentElement, - (DefinedTerm) entity, - removeListener, ++ (DefinedTerm) entity, ++ removeListener, + style); + break; + default: + //FIXME : Actually we should through an exception here + element = null; + break; - ++ + } - } else if (entity instanceof Reference) { + } else if (entity instanceof Reference) { element = new DescriptionSourceElement(this, parentElement, (Reference) entity, removeListener, style); - } else if (entity instanceof NameTypeDesignation) { + } else if (entity instanceof NameTypeDesignation) { element = new NameTypeDesignationElement(this, parentElement, (NameTypeDesignation) entity, removeListener, style); - } else if (entity instanceof NameRelationship) { + } else if (entity instanceof NameRelationship) { element = new NameRelationshipDetailElement(this, parentElement, (NameRelationship) entity, removeListener, style); - } else if (entity instanceof SpecimenTypeDesignation) { + } else if (entity instanceof SpecimenTypeDesignation) { element = new SpecimenTypeDesignationElement(this, parentElement, (SpecimenTypeDesignation) entity, removeListener, style); - } else if (entity instanceof StateData) { + } else if (entity instanceof StateData) { element = new StateDataElement(this, parentElement, (StateData) entity, removeListener, style); - } else if (entity instanceof StatisticalMeasurementValue) { + } else if (entity instanceof StatisticalMeasurementValue) { element = new StatisticalMeasurementValueElement(this, parentElement, (StatisticalMeasurementValue) entity, - removeListener, style); - } else if (entity instanceof DerivedUnit) { - switch(((DerivedUnit)entity).getRecordBasis()) { + removeListener, style); + } else if (entity instanceof DerivedUnit) { - element = new DerivedUnitElement(this, parentElement, (DerivedUnit) entity, removeListener, style); ++ switch(((DerivedUnit)entity).getRecordBasis()) { + case LivingSpecimen: + case PreservedSpecimen: + case OtherSpecimen: - element = new SpecimenCollectionDetailElement(this, ++ element = new SpecimenCollectionDetailElement(this, + parentElement, - (DerivedUnit) entity, - removeListener, ++ (DerivedUnit) entity, ++ removeListener, + style); + break; + default: - element = new DerivedUnitElement(this, ++ element = new DerivedUnitElement(this, + parentElement, - (DerivedUnit) entity, - removeListener, ++ (DerivedUnit) entity, ++ removeListener, + style); - } ++ } + - } else if (entity instanceof NamedArea) { + } else if (entity instanceof NamedArea) { element = new NamedAreaDetailElement(this, parentElement, (NamedArea) entity, removeListener, style); - } else if (entity instanceof DeterminationEvent) { - element = new DeterminationEventDetailElement(this, parentElement, (DeterminationEvent) entity, - removeListener, style); - } else if (entity instanceof User) { + } else if (entity instanceof DeterminationEvent) { + element = new DeterminationEventDetailElement(this, parentElement, (DeterminationEvent) entity, removeListener, style); - } else if (entity instanceof Specimen) { - element = new SpecimenCollectionDetailElement(this, parentElement, (Specimen) entity, removeListener, style); ++ } else if (entity instanceof DerivedUnit && ((DerivedUnit)entity).getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen) { ++ element = new SpecimenCollectionDetailElement(this, parentElement, (DerivedUnit) entity, removeListener, style); + } else if (entity instanceof User) { element = new MemberDetailElement(this, parentElement, (User) entity, removeListener, style); - } else if (entity instanceof GrantedAuthority) { + } else if (entity instanceof GrantedAuthority) { element = new GrantedAuthorityCollectionElement(this, parentElement, (GrantedAuthorityImpl) entity, removeListener, style); - } else if (entity instanceof Group) { + } else if (entity instanceof Group) { element = new GroupsByUserDetailElement(this, parentElement, (Group) entity, removeListener, style); - } else if (entity instanceof Taxon) { + } else if (entity instanceof Taxon) { element = new TaxonDetailElement(this, parentElement, (Taxon) entity, removeListener, style); - } else if (entity instanceof DescriptionElementBase) { - // this is the special case for protologs, maybe we can do this - // differently when API improves - DescriptionElementBase descriptionElement = (DescriptionElementBase) entity; - if (descriptionElement.getFeature().equals(Feature.PROTOLOGUE())) { + } else if (entity instanceof DescriptionElementBase) { + // this is the special case for protologs, maybe we can do this + // differently when API improves + DescriptionElementBase descriptionElement = (DescriptionElementBase) entity; + if (descriptionElement.getFeature().equals(Feature.PROTOLOGUE())) { element = new ProtologueElement(this, parentElement, descriptionElement, removeListener, style); - } - } + } + } - if (element == null) { + if (element == null) { AbstractUtility.errorDialog("No element for entity", this, "Could not generate element for entity. Looks like the case is not handled already. Check implementation. Entity: " - + entity, null); - - } + + entity, null); + } else if (backgroundColor != null && !backgroundColor.isDisposed()) { - element.setPersistentBackground(backgroundColor); - } + element.setPersistentBackground(backgroundColor); + adapt(element); + parentElement.addElement(element); + } - adapt(element); - parentElement.addElement(element); - return element; - } + return element; + } - /** - *

- * Creates a selection element for the given type T. - *

- *

- * Selection elements not handled by this method: - *

    + public void createNamedAreaFieldController(AbstractFormSection parentElement, NamedArea namedArea, SelectionListener removeListener){ +// Object entity = HibernateProxyHelper.deproxy(versionableEntity); TODO deproxy necessary?? + NamedAreaFieldController element = new NamedAreaFieldController(this, parentElement, namedArea, removeListener, SWT.NONE); + adapt(element); + parentElement.addElement(element); + } + + /** + *

    + * Creates a selection element for the given type T. + *

    + *

    + * Selection elements not handled by this method: + *

      *
    • {@link TaxonNodeSelectionElement} see * {@link #createTaxonNodeSelectionElement(ConversationHolder, ICdmFormElement, String, TaxonNode, int, int)} *
    • diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/DateDetailSection.java index 13cb8740e,b44f464e6..01dba2a9c --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/DateDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/DateDetailSection.java @@@ -16,7 -16,7 +16,8 @@@ import org.joda.time.Partial import eu.etaxonomy.cdm.common.CdmUtils; import eu.etaxonomy.cdm.model.common.TimePeriod; + import eu.etaxonomy.cdm.strategy.parser.TimePeriodParser; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; /** *

      @@@ -146,8 -146,8 +147,8 @@@ public class DateDetailSection extends getEntity().setEnd(end); } else if (eventSource == text_parseText) { cursorPosition = ((Text) text_parseText.getMainControl()) - .getCaretPosition(); + .getCaretPosition(); - setEntityInternally(TimePeriod.parseString(text_parseText.getText())); + setEntityInternally(TimePeriodParser.parseString(text_parseText.getText())); } else if (eventSource == text_freeText) { getEntity().setFreeText(text_freeText.getText()); } diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/GatheringEventUnitElement.java index 000000000,b144231fe..7e8e97bad mode 000000,100644..100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/GatheringEventUnitElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/GatheringEventUnitElement.java @@@ -1,0 -1,112 +1,111 @@@ + // $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. + */ + + package eu.etaxonomy.taxeditor.ui.element; + + import org.eclipse.jface.util.PropertyChangeEvent; + import org.eclipse.swt.graphics.Color; + import org.eclipse.swt.widgets.Label; + import org.eclipse.ui.forms.widgets.Section; + + import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; -import eu.etaxonomy.cdm.model.common.TimePeriod; -import eu.etaxonomy.cdm.model.occurrence.GatheringEvent; ++import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; + + /** + *

      + * GatheringEventUnitElement class. + *

      - * ++ * + * @author c.mathew + * @created 23 Jul. 2013 + * @version 1.0 + */ + public class GatheringEventUnitElement extends AbstractCdmFormElement implements ISelectable { - ++ + private final Label label; + private final MinMaxTextSection section_minMaxText; + + /** + *

      + * Constructor for TimePeriodElement. + *

      - * ++ * + * @param style + * a int. + * @param formFactory + * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} + * object. + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param labelString + * a {@link java.lang.String} object. + * @param timePeriod + * a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object. + */ + public GatheringEventUnitElement(CdmFormFactory formFactory, - ICdmFormElement parentElement, ++ ICdmFormElement parentElement, + String labelString, - DerivedUnitFacade gatheringEvent, ++ DerivedUnitFacade gatheringEvent, + MinMaxTextSection.UnitType unitType, + final int style) { + super(formFactory, parentElement); + + label = formFactory.createLabel(getLayoutComposite(), labelString); + addControl(label); + + section_minMaxText = formFactory.createMinMaxTextSection(this, + unitType, + Section.TWISTIE); - - addControl(section_minMaxText); ++ ++ addControl(section_minMaxText); + + section_minMaxText.setEntity(gatheringEvent); - ++ + formFactory.addPropertyChangeListener(this); + } + + + /** {@inheritDoc} */ + @Override + public void propertyChange(PropertyChangeEvent event) { + if (event == null) { + return; + } + Object eventSource = event.getSource(); + + if (getElements().contains(eventSource)) { + handleEvent(eventSource); + } + } + + private void handleEvent(Object eventSource) { - if (eventSource == section_minMaxText) { ++ if (eventSource == section_minMaxText) { + firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null)); + } + } + + /** {@inheritDoc} */ + @Override + public void setBackground(Color color) { + label.setBackground(color); + section_minMaxText.setBackground(color); + } - ++ + @Override + public void setSelected(boolean selected) { + setBackground(selected ? SELECTED : getPersistentBackground()); + } + + public void setLabel(String string) { + label.setText(string); + } + } + diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MinMaxTextSection.java index 000000000,6fb22d599..6b9c75458 mode 000000,100644..100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MinMaxTextSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MinMaxTextSection.java @@@ -1,0 -1,274 +1,271 @@@ + // $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. + */ + + package eu.etaxonomy.taxeditor.ui.element; + + import org.eclipse.jface.util.PropertyChangeEvent; -import org.eclipse.swt.layout.RowLayout; + + import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; -import eu.etaxonomy.cdm.common.CdmUtils; -import eu.etaxonomy.cdm.model.common.TimePeriod; -import eu.etaxonomy.cdm.model.occurrence.GatheringEvent; ++import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; + + /** + *

      + * MinMaxTextSection class. + *

      - * ++ * + * @author c.mathew + * @created 23 Jul 2013 + * @version 1.0 + */ + public class MinMaxTextSection extends AbstractFormSection { + + private final TextWithLabelElement text_freeText; + private final NumberWithLabelElement text_minVal; + private final NumberWithLabelElement text_maxVal; + private int cursorPosition; - ++ + // unit types handled by this section + public enum UnitType { + ELEVATION, + DIST_TO_GROUND, + DIST_TO_WATER + } + + private UnitType unitType = UnitType.ELEVATION; + + /** + *

      + * Constructor for DateDetailSection. + *

      - * ++ * + * @param formFactory + * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} + * object. + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param style + * a int. + */ + protected MinMaxTextSection(CdmFormFactory formFactory, + ICdmFormElement parentElement, UnitType unitType, int style) { + super(formFactory, parentElement, style); + this.unitType = unitType; + getLayoutComposite().setLayout(LayoutConstants.LAYOUT(2, false)); + + text_minVal = formFactory.createNumberTextWithLabelElement(this, + "Min : ", getMinimum(), style); - ++ + text_maxVal = formFactory.createNumberTextWithLabelElement(this, + "Max : ", getMaximum(), style); - ++ + text_freeText = formFactory.createTextWithLabelElement(this, + "Freetext : ", getFreetext(), style); + + formFactory.addPropertyChangeListener(this); + } + + /** + *

      + * Setter for the field timePeriod. + *

      - * ++ * + * @param timePeriod + * a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object. + */ + @Override + public void setEntity(DerivedUnitFacade gatheringEvent) { + super.setEntity(gatheringEvent); + updateValues(); + } + + private void updateValues() { + if(getEntity() != null) { + switch(unitType) { + case ELEVATION: + if(getEntity().getAbsoluteElevation() != null) { + text_minVal.setNumber(getEntity().getAbsoluteElevation()); + } + if(getEntity().getAbsoluteElevationMaximum() != null) { + text_maxVal.setNumber(getEntity().getAbsoluteElevation()); + } + if(getEntity().getAbsoluteElevationText() != null) { + text_freeText.setText(getEntity().getAbsoluteElevationText()); + } + break; + case DIST_TO_GROUND: + if(getEntity().getDistanceToGround() != null) { + text_minVal.setNumber(getEntity().getDistanceToGround()); + } + if(getEntity().getDistanceToGroundMax() != null) { + text_maxVal.setNumber(getEntity().getDistanceToGroundMax()); + } + if(getEntity().getDistanceToGroundText() != null) { + text_freeText.setText(getEntity().getDistanceToGroundText()); + } - break; ++ break; + case DIST_TO_WATER: + if(getEntity().getDistanceToWaterSurface() != null) { + text_minVal.setNumber(getEntity().getDistanceToWaterSurface()); + } + if(getEntity().getDistanceToWaterSurfaceMax() != null) { + text_maxVal.setNumber(getEntity().getDistanceToWaterSurfaceMax()); + } + if(getEntity().getDistanceToWaterSurfaceText() != null) { + text_freeText.setText(getEntity().getDistanceToWaterSurfaceText()); + } - break; ++ break; + default: + break; + } + + } + } + /** {@inheritDoc} */ + @Override + public void propertyChange(PropertyChangeEvent event) { + if (event == null) { + return; + } + Object eventSource = event.getSource(); + + if (getElements().contains(eventSource)) { + if (event instanceof CdmPropertyChangeEvent) { + if (((CdmPropertyChangeEvent) event).hasException()) { + handleException((CdmPropertyChangeEvent) event); + return; + } + } + handleEvent(eventSource); + } + } + + /** + * @param event + */ + private void handleException(CdmPropertyChangeEvent event) { + firePropertyChangeEvent(new CdmPropertyChangeEvent(this, + event.getException())); + } + + private void handleEvent(Object eventSource) { - if (eventSource == text_minVal) { ++ if (eventSource == text_minVal) { + updateMinimum(); + } else if (eventSource == text_maxVal) { + updateMaximum(); + } else if (eventSource == text_freeText) { - updateFreetext(); - } ++ updateFreetext(); ++ } + firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null)); + } + + - ++ + /* + * (non-Javadoc) - * ++ * + * @see eu.etaxonomy.taxeditor.forms.AbstractFormSection#dispose() + */ + /** {@inheritDoc} */ + @Override + public void dispose() { + formFactory.removePropertyChangeListener(this); + super.dispose(); + } - ++ + private void updateMinimum() { + switch(unitType) { + case ELEVATION: + getEntity().setAbsoluteElevation(text_minVal.getInteger()); + break; + case DIST_TO_GROUND: + getEntity().setDistanceToGround(text_minVal.getDouble()); - break; ++ break; + case DIST_TO_WATER: + getEntity().setDistanceToWaterSurface(text_minVal.getDouble()); - break; ++ break; + } + } - ++ + private Number getMinimum() { + if(getEntity() == null) { + return null; + } + switch(unitType) { + case ELEVATION: - return getEntity().getAbsoluteElevation(); ++ return getEntity().getAbsoluteElevation(); + case DIST_TO_GROUND: - return getEntity().getDistanceToGround(); ++ return getEntity().getDistanceToGround(); + case DIST_TO_WATER: - return getEntity().getDistanceToWaterSurface(); ++ return getEntity().getDistanceToWaterSurface(); + } + return null; + } - ++ + private void updateMaximum() { + switch(unitType) { + case ELEVATION: + getEntity().setAbsoluteElevationMax(text_maxVal.getInteger()); + break; + case DIST_TO_GROUND: + getEntity().setDistanceToGroundMax(text_maxVal.getDouble()); - break; ++ break; + case DIST_TO_WATER: + getEntity().setDistanceToWaterSurfaceMax(text_maxVal.getDouble()); - break; ++ break; + } + } - ++ + private Number getMaximum() { + if(getEntity() == null) { + return null; + } + switch(unitType) { + case ELEVATION: - return getEntity().getAbsoluteElevationMaximum(); ++ return getEntity().getAbsoluteElevationMaximum(); + case DIST_TO_GROUND: - return getEntity().getDistanceToGroundMax(); ++ return getEntity().getDistanceToGroundMax(); + case DIST_TO_WATER: - return getEntity().getDistanceToWaterSurfaceMax(); ++ return getEntity().getDistanceToWaterSurfaceMax(); + } + return null; + } - ++ + private void updateFreetext() { + switch(unitType) { + case ELEVATION: + getEntity().setAbsoluteElevationText(text_freeText.getText()); + break; + case DIST_TO_GROUND: + getEntity().setDistanceToGroundText(text_freeText.getText()); - break; ++ break; + case DIST_TO_WATER: + getEntity().setDistanceToWaterSurfaceText(text_freeText.getText()); - break; ++ break; + } - } - ++ } ++ + private String getFreetext() { + if(getEntity() == null) { + return null; + } + switch(unitType) { + case ELEVATION: - return getEntity().getAbsoluteElevationText(); ++ return getEntity().getAbsoluteElevationText(); + case DIST_TO_GROUND: - return getEntity().getDistanceToGroundText(); ++ return getEntity().getDistanceToGroundText(); + case DIST_TO_WATER: - return getEntity().getDistanceToWaterSurfaceText(); ++ return getEntity().getDistanceToWaterSurfaceText(); + } + return null; + } + + } + diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/NumberWithLabelElement.java index 04defb9f2,755ecd3b1..d441b0b2f --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/NumberWithLabelElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/NumberWithLabelElement.java @@@ -43,45 -42,21 +43,21 @@@ public class NumberWithLabelElement ext */ public NumberWithLabelElement(CdmFormFactory toolkit, ICdmFormElement parentElement, String labelString, - Integer initialInteger, int style) { + Number initialNumber, int style) { super(toolkit, parentElement, labelString, null, null, style); - setInteger(initialInteger); + setNumber(initialNumber); } - - + - /** - *

      Constructor for NumberWithLabelElement.

      - * - * @param toolkit a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object. - * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object. - * @param labelString a {@link java.lang.String} object. - * @param initialFloat a {@link java.lang.Float} object. - * @param style a int. - */ - public NumberWithLabelElement(CdmFormFactory toolkit, - ICdmFormElement parentElement, String labelString, - Float initialFloat, int style) { - super(toolkit, parentElement, labelString, null, null, style); - setFloat(initialFloat); - } + /** - *

      setInteger

      + *

      setNumber

      * - * @param number a {@link java.lang.Integer} object. + * @param number a {@link java.lang.Number} object. */ - public void setInteger(Integer number) { - super.setText(getStringRepresentation(number)); - } - - /** - *

      setFloat

      - * - * @param number a {@link java.lang.Float} object. - */ - public void setFloat(Float number) { + public void setNumber(Number number) { super.setText(getStringRepresentation(number)); } - + /** *

      getInteger

      * @@@ -101,7 -76,17 +77,17 @@@ String text = super.getText(); return new Float(text); } - + + /** + *

      getDouble

      + * + * @return a {@link java.lang.Float} object. + */ + public Double getDouble(){ + String text = super.getText(); + return new Double(text); + } + private String getStringRepresentation(Object number){ if(number != null){ return number.toString(); diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java index 9efc3247a,510aef975..a7a8261a0 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java @@@ -1,9 -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. */ @@@ -15,7 -15,7 +15,7 @@@ import eu.etaxonomy.cdm.hibernate.Hiber import eu.etaxonomy.cdm.model.name.TaxonNameBase; import eu.etaxonomy.cdm.model.reference.Reference; import eu.etaxonomy.cdm.model.taxon.Classification; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.taxeditor.parser.ParseHandler; @@@ -31,12 -31,12 +31,12 @@@ import eu.etaxonomy.taxeditor.ui.select *

      * TaxonNodeDetailElement class. *

      -- * ++ * * @author n.hoffmann * @created Sep 27, 2010 * @version 1.0 */ --public class TaxonNodeDetailElement extends AbstractCdmDetailElement { ++public class TaxonNodeDetailElement extends AbstractCdmDetailElement { private EntitySelectionElement selection_classification; @@@ -44,7 -44,7 +44,7 @@@ private TaxonNodeSelectionElement selection_parentTaxonNode; -- private ITreeNode parentTreeNode; ++ private ITaxonTreeNode parentTreeNode; private EntitySelectionElement selection_reuseExistingTaxon; @@@ -64,7 -64,7 +64,7 @@@ *

      * Constructor for TaxonNodeDetailElement. *

      -- * ++ * * @param formFactory * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} * object. @@@ -79,7 -79,7 +79,7 @@@ /* * (non-Javadoc) -- * ++ * * @see * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, @@@ -88,7 -88,7 +88,7 @@@ /** {@inheritDoc} */ @Override protected void createControls(ICdmFormElement formElement, -- ITreeNode entity, int style) { ++ ITaxonTreeNode entity, int style) { selection_classification = formFactory .createSelectionElement(Classification.class, getConversationHolder(), formElement, "Classification", @@@ -119,7 -119,7 +119,7 @@@ /* * (non-Javadoc) -- * ++ * * @see * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java * .lang.Object) @@@ -158,7 -158,7 +158,7 @@@ *

      * Getter for the field classification. *

      -- * ++ * * @return the classification */ public Classification getClassification() { @@@ -169,7 -169,7 +169,7 @@@ *

      * isOpenInEditor *

      -- * ++ * * @return the openInEditor */ public boolean isOpenInEditor() { @@@ -180,10 -180,10 +180,10 @@@ *

      * Getter for the field parentTreeNode. *

      -- * -- * @return a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object. ++ * ++ * @return a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object. */ -- public ITreeNode getParentTreeNode() { ++ public ITaxonTreeNode getParentTreeNode() { return parentTreeNode; } @@@ -191,7 -191,7 +191,7 @@@ *

      * Getter for the field taxon. *

      -- * ++ * * @return the taxon */ public Taxon getTaxon() { @@@ -211,7 -211,7 +211,7 @@@ * @param parentTreeNode * the parentTreeNode to set */ -- private void setParentTreeNode(ITreeNode parentTreeNode) { ++ private void setParentTreeNode(ITaxonTreeNode parentTreeNode) { this.parentTreeNode = parentTreeNode; if (parentTreeNode instanceof Classification) { @@@ -226,7 -226,7 +226,7 @@@ selection_parentTaxonNode.setEntity((TaxonNode) parentTreeNode); selection_parentTaxonNode.setClassification(classification); } else if(parentTreeNode == null){ -- this.parentTreeNode = selection_classification.getEntity(); ++ this.parentTreeNode = selection_classification.getEntity(); } } @@@ -270,7 -270,7 +270,7 @@@ *

      * isComplete *

      -- * ++ * * @return the complete */ public boolean isComplete() { diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeWizardPage.java index 87c13cdc1,4f261d545..54e48f30a --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeWizardPage.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeWizardPage.java @@@ -13,11 -13,11 +13,11 @@@ package eu.etaxonomy.taxeditor.ui.secti import org.eclipse.jface.util.PropertyChangeEvent; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; --import eu.etaxonomy.cdm.model.taxon.ITreeNode; ++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.Taxon; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; /** *

      @@@ -28,7 -28,7 +28,7 @@@ * @created Sep 15, 2009 * @version 1.0 */ --public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage { ++public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage { /** *

      @@@ -42,10 -42,10 +42,10 @@@ * a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} * object. * @param entity -- * a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object. ++ * a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object. */ public TaxonNodeWizardPage(CdmFormFactory formFactory, -- ConversationHolder conversation, ITreeNode entity) { ++ ConversationHolder conversation, ITaxonTreeNode entity) { super(formFactory, conversation, entity); setTitle("Create a new Taxon"); } @@@ -116,9 -116,9 +116,9 @@@ * Getter for the field parentTreeNode. *

      * -- * @return a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object. ++ * @return a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object. */ -- public ITreeNode getParentTreeNode() { ++ public ITaxonTreeNode getParentTreeNode() { return ((TaxonNodeDetailElement) getDetailElement()) .getParentTreeNode(); } diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DerivedUnitElement.java index 0176c365f,d1ccc47b6..c038a1862 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DerivedUnitElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DerivedUnitElement.java @@@ -12,11 -12,11 +12,11 @@@ package eu.etaxonomy.taxeditor.ui.secti import org.eclipse.swt.events.SelectionListener; - import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase; + import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement; import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescribedSpecimenSection.java index bbbe00d07,112927630..408b0bbe2 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescribedSpecimenSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescribedSpecimenSection.java @@@ -14,11 -16,11 +16,11 @@@ import java.util.List import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.model.description.TaxonDescription; - import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase; + import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.dialog.selection.DerivedUnitSelectionDialog; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; /** diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceElement.java index c06d38ea0,aff1fbea8..878a82a91 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceElement.java @@@ -13,11 -13,11 +13,11 @@@ package eu.etaxonomy.taxeditor.ui.secti import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionListener; - import eu.etaxonomy.cdm.model.common.DescriptionElementSource; + import eu.etaxonomy.cdm.model.description.DescriptionElementSource; import eu.etaxonomy.cdm.model.name.TaxonNameBase; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.IEntityElement; import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractOriginalSourceElement; import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceSection.java index ebff521bd,13da78115..14436683a --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceSection.java @@@ -5,11 -5,15 +5,12 @@@ package eu.etaxonomy.taxeditor.ui.secti import java.util.Collection; - import eu.etaxonomy.cdm.api.conversation.ConversationHolder; - import eu.etaxonomy.cdm.model.common.DescriptionElementSource; -import eu.etaxonomy.cdm.model.common.IdentifiableSource; + import eu.etaxonomy.cdm.model.common.OriginalSourceType; -import eu.etaxonomy.cdm.model.description.DescriptionElementSource; import eu.etaxonomy.cdm.model.description.DescriptionElementBase; -import eu.etaxonomy.taxeditor.ui.dialog.selection.OriginalSourceTypeSelectionDialog; ++import eu.etaxonomy.cdm.model.description.DescriptionElementSource; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; /** diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionSourceSection.java index bdf401a20,7d3b5d613..1f3c1db1f --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionSourceSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionSourceSection.java @@@ -14,9 -14,11 +14,11 @@@ import java.util.Collection import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.model.common.IdentifiableSource; + import eu.etaxonomy.cdm.model.common.OriginalSourceType; import eu.etaxonomy.cdm.model.description.DescriptionBase; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; + import eu.etaxonomy.taxeditor.ui.dialog.selection.OriginalSourceTypeSelectionDialog; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; /** diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java index d98362646,efcef95e0..bd583af51 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java @@@ -12,8 -12,8 +12,8 @@@ package eu.etaxonomy.taxeditor.ui.secti import org.eclipse.swt.events.SelectionListener; - import eu.etaxonomy.cdm.model.description.Modifier; - + import eu.etaxonomy.cdm.model.common.DefinedTerm; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierSection.java index b31051de1,686da6260..8a33c59a2 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierSection.java @@@ -13,10 -13,11 +13,11 @@@ package eu.etaxonomy.taxeditor.ui.secti import java.util.Collection; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; + import eu.etaxonomy.cdm.model.common.DefinedTerm; + import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.cdm.model.description.IModifiable; - import eu.etaxonomy.cdm.model.description.Modifier; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; /** diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeElement.java index 14b30ef33,db8e4ea2b..08173c72a --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeElement.java @@@ -12,8 -12,7 +12,8 @@@ package eu.etaxonomy.taxeditor.ui.secti import org.eclipse.swt.events.SelectionListener; - import eu.etaxonomy.cdm.model.description.Scope; + import eu.etaxonomy.cdm.model.common.DefinedTerm; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeSection.java index c34cf71de,271687dea..81bb68a37 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeSection.java @@@ -13,10 -13,11 +13,11 @@@ package eu.etaxonomy.taxeditor.ui.secti import java.util.Collection; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; - import eu.etaxonomy.cdm.model.description.Scope; + import eu.etaxonomy.cdm.model.common.DefinedTerm; + import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.cdm.model.description.TaxonDescription; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; /** diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/IndividualsAssociationDetailElement.java index 7418a59de,0a3090c48..236e046e5 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/IndividualsAssociationDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/IndividualsAssociationDetailElement.java @@@ -16,10 -16,10 +16,10 @@@ import eu.etaxonomy.cdm.model.common.Cd import eu.etaxonomy.cdm.model.common.Language; import eu.etaxonomy.cdm.model.common.LanguageString; import eu.etaxonomy.cdm.model.description.IndividualsAssociation; - import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase; + import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; import eu.etaxonomy.taxeditor.store.CdmStore; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement; import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/ScopeRestrictionSection.java index d6a605e0c,a0c12f1ae..12131c8ec --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/ScopeRestrictionSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/ScopeRestrictionSection.java @@@ -6,10 -6,11 +6,11 @@@ package eu.etaxonomy.taxeditor.ui.secti import java.util.Collection; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; + import eu.etaxonomy.cdm.model.common.DefinedTerm; + import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.cdm.model.description.PolytomousKey; - import eu.etaxonomy.cdm.model.description.Scope; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; /** diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SpecimenTypeDesignationElement.java index 0344940c8,1376e0ba6..ed46ae652 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SpecimenTypeDesignationElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SpecimenTypeDesignationElement.java @@@ -15,9 -15,8 +15,9 @@@ import org.eclipse.swt.events.Selection import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation; import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus; - import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase; - import eu.etaxonomy.cdm.model.occurrence.Specimen; + import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; + import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailElement.java index 4e3e56fb7,501f929d2..03daf4a9d --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailElement.java @@@ -15,10 -15,10 +15,10 @@@ import org.eclipse.ui.forms.widgets.Exp import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException; - import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase; + import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; import eu.etaxonomy.taxeditor.model.AbstractUtility; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.LayoutConstants; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailSection.java index 17ab33bc4,57713fb84..ad497f841 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailSection.java @@@ -13,9 -13,9 +13,9 @@@ package eu.etaxonomy.taxeditor.ui.secti import org.eclipse.jface.viewers.ISelectionProvider; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; - import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase; + import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationDetailSection.java index 058d7bc7b,c2ae96f52..b235f3b71 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationDetailSection.java @@@ -14,10 -14,10 +14,10 @@@ import org.eclipse.jface.viewers.ISelec import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; + import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection; - import eu.etaxonomy.taxeditor.ui.section.ICdmDetailElement; /** * @author n.hoffmann diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationEventDetailElement.java index d4ce3362f,0b624b6c8..73be3ccee --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationEventDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationEventDetailElement.java @@@ -12,10 -12,10 +12,10 @@@ package eu.etaxonomy.taxeditor.ui.secti import org.eclipse.swt.events.SelectionListener; - + import eu.etaxonomy.cdm.model.common.DefinedTerm; import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent; - import eu.etaxonomy.cdm.model.occurrence.DeterminationModifier; import eu.etaxonomy.cdm.model.taxon.TaxonBase; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationDetailElement.java index 872b68e27,2ed246cd2..7794813da --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationDetailElement.java @@@ -11,12 -11,12 +11,11 @@@ package eu.etaxonomy.taxeditor.ui.section.occurrence; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; - import eu.etaxonomy.cdm.model.description.Sex; - import eu.etaxonomy.cdm.model.description.Stage; + import eu.etaxonomy.cdm.model.common.DefinedTerm; -import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.taxeditor.store.CdmStore; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement; import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailElement.java index 3564d02dd,ec26283ec..1b9cf9b88 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailElement.java @@@ -13,12 -13,14 +13,11 @@@ package eu.etaxonomy.taxeditor.ui.secti import org.eclipse.ui.forms.widgets.ExpandableComposite; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; --import eu.etaxonomy.taxeditor.model.AbstractUtility; --import eu.etaxonomy.taxeditor.preference.Resources; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; + import eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.LayoutConstants; - import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement; + import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection; -import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement; import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailSection.java index 49082d4cb,44c86337c..d82747e29 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailSection.java @@@ -14,10 -14,10 +14,10 @@@ import org.eclipse.jface.viewers.ISelec import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; + import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection; - import eu.etaxonomy.taxeditor.ui.section.ICdmDetailElement; /** *

      GatheringEventDetailSection class.

      diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralDetailElement.java index 6f4a0c207,a5e8583a8..bdfaf8d35 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralDetailElement.java @@@ -15,8 -15,11 +15,10 @@@ import eu.etaxonomy.cdm.model.agent.Age import eu.etaxonomy.cdm.model.common.LanguageString; import eu.etaxonomy.cdm.model.location.NamedArea; import eu.etaxonomy.cdm.model.occurrence.Collection; + import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; + import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement; import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement; import eu.etaxonomy.taxeditor.ui.element.PointElement; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralDetailSection.java index b6d3e6b9c,d2b3e7276..56b5bbf68 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralDetailSection.java @@@ -14,10 -14,10 +14,10 @@@ import org.eclipse.jface.viewers.ISelec import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; + import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection; - import eu.etaxonomy.taxeditor.ui.section.ICdmDetailElement; /** * @author n.hoffmann diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SourceCollectionDetailSection.java index fb680b721,501d000ba..c74cc9adc --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SourceCollectionDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SourceCollectionDetailSection.java @@@ -15,8 -15,9 +15,9 @@@ import java.util.Collection import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; import eu.etaxonomy.cdm.model.common.IdentifiableSource; + import eu.etaxonomy.cdm.model.common.OriginalSourceType; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; /** diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailElement.java index dd9cc896b,d98870644..d78132b9a --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailElement.java @@@ -12,11 -12,10 +12,10 @@@ package eu.etaxonomy.taxeditor.ui.secti import org.eclipse.swt.events.SelectionListener; - import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase; - import eu.etaxonomy.cdm.model.occurrence.Specimen; + import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement; import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailSection.java index f53ec6350,7caf8bd4c..aee551083 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailSection.java @@@ -14,9 -14,10 +14,10 @@@ import java.util.Collection import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; - import eu.etaxonomy.cdm.model.occurrence.Specimen; + import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; + import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; /** diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractOriginalSourceElement.java index ea5b47b1a,97d86685e..1d6c70e03 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractOriginalSourceElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractOriginalSourceElement.java @@@ -1,9 -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,9 -13,12 +13,11 @@@ package eu.etaxonomy.taxeditor.ui.secti import org.eclipse.swt.events.SelectionListener; import eu.etaxonomy.cdm.model.common.OriginalSourceBase; + import eu.etaxonomy.cdm.model.common.OriginalSourceType; -import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; + import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement; import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement; /** @@@ -45,17 -49,20 +48,20 @@@ public abstract class AbstractOriginalS int style) { super(formFactory, section, element, removeListener, style); } -- ++ /** {@inheritDoc} */ @Override public void init() { super.init(); setHasOriginalNameString(true); } -- ++ /** {@inheritDoc} */ @Override public void createControls(ICdmFormElement formElement, int style) { + combo_origsourcetype = formFactory + .createEnumComboElement(OriginalSourceType.class, - formElement, style); ++ formElement, style); text_idInSource = formFactory.createTextWithLabelElement(formElement, "Id In Source", null, style); text_idNamespace = formFactory.createTextWithLabelElement(formElement, "ID Namespace", null, style); super.createControls(formElement, style); diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/RightsElement.java index 0e113dab5,e748ba816..49617ee1b --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/RightsElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/RightsElement.java @@@ -7,8 -7,7 +7,8 @@@ import org.eclipse.swt.events.Selection import eu.etaxonomy.cdm.model.agent.AgentBase; import eu.etaxonomy.cdm.model.media.Rights; - import eu.etaxonomy.cdm.model.media.RightsTerm; + import eu.etaxonomy.cdm.model.media.RightsType; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/SourceSection.java index cc77ff3f3,346cee5d4..ca8426501 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/SourceSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/SourceSection.java @@@ -8,9 -8,14 +8,12 @@@ import java.util.Collection import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.model.common.IIdentifiableEntity; import eu.etaxonomy.cdm.model.common.IdentifiableSource; -import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; -import eu.etaxonomy.taxeditor.ui.dialog.selection.DerivedUnitSelectionDialog; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; + import eu.etaxonomy.cdm.model.common.OriginalSourceType; + + import eu.etaxonomy.taxeditor.ui.dialog.selection.OriginalSourceTypeSelectionDialog;; /** *

      SourceSection class.

      diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/userecords/UseRecordDetailElement.java index 6989a9419,015af402f..566d710cc --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/userecords/UseRecordDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/userecords/UseRecordDetailElement.java @@@ -1,8 -1,8 +1,8 @@@ /** * Copyright (C) 2011 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. */ @@@ -29,16 -28,16 +29,16 @@@ import eu.etaxonomy.cdm.model.descripti import eu.etaxonomy.taxeditor.editor.UsageTermCollection; import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.store.TermStore; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement; -- ++ /** * The context manager mediates context start/stop and workbench shutdowns to all registered listeners. * -- * @author a.theys ++ * @author a.theys * @created mar 13, 2012 * @version 1.0 */ @@@ -68,19 -67,19 +68,19 @@@ public class UseRecordDetailElement ext combo_UseCategory = formFactory.createTermComboElement(State.class, this, UsageTermCollection.useCategoryVocabularyLabel, null, style); combo_UseCategory.addSelectionListener(this); combo_UseSubCategory = formFactory.createTermComboElement(State.class, this, UsageTermCollection.useSubCategoryVocabularyLabel, null, style); - combo_PlantPart = formFactory.createTermComboElement(Modifier.class, this, UsageTermCollection.plantPartLabel, null, style); - combo_HumanGroup = formFactory.createTermComboElement(Modifier.class, this, UsageTermCollection.humanGroupLabel, null, style); + combo_PlantPart = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.plantPartLabel, null, style); + combo_HumanGroup = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.humanGroupLabel, null, style); combo_HumanGroup.addSelectionListener(this); - combo_EthnicGroup = formFactory.createTermComboElement(Modifier.class, this, UsageTermCollection.ethnicGroupLabel, null, style); - combo_Country = formFactory.createTermComboElement(Modifier.class, this, UsageTermCollection.countryLabel, null, style); - + combo_EthnicGroup = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.ethnicGroupLabel, null, style); + combo_Country = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.countryLabel, null, style); - ++ List termsUseCategory = setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false)); combo_UseCategory.setTerms(termsUseCategory); combo_UseCategory.setSelection(stateSelection(UsageTermCollection.useCategoryVocabularyLabel)); -- ++ List termsSubCategory = setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false), combo_UseCategory.getSelection()); -- ++ if (termsSubCategory != null) { combo_UseSubCategory.setTerms(termsSubCategory); combo_UseSubCategory.setSelection(stateSelection(UsageTermCollection.useSubCategoryVocabularyLabel)); @@@ -89,20 -88,20 +89,20 @@@ else { combo_UseSubCategory.setEnabled(false); } -- - List plantPartsToAdd = setModifierComboTerms(TermStore.getTerms(Modifier.class, null, false), UsageTermCollection.plantPartLabel); ++ + List plantPartsToAdd = setModifierComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), UsageTermCollection.plantPartLabel); combo_PlantPart.setTerms(plantPartsToAdd); combo_PlantPart.setSelection(modifierSelection(UsageTermCollection.plantPartLabel)); -- - List countriesToAdd = setModifierComboTerms(TermStore.getTerms(Modifier.class, null, false), UsageTermCollection.countryLabel); ++ + List countriesToAdd = setModifierComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), UsageTermCollection.countryLabel); combo_Country.setTerms(countriesToAdd); combo_Country.setSelection(modifierSelection(UsageTermCollection.countryLabel)); -- - List humanGroupToAdd = setModifierComboTerms(TermStore.getTerms(Modifier.class, null, false), UsageTermCollection.humanGroupLabel); ++ + List humanGroupToAdd = setModifierComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), UsageTermCollection.humanGroupLabel); combo_HumanGroup.setTerms(humanGroupToAdd); combo_HumanGroup.setSelection(modifierSelection(UsageTermCollection.humanGroupLabel)); -- - List ethnicGroupToAdd = setEthnicGroupComboTerms(TermStore.getTerms(Modifier.class, null, false), combo_HumanGroup.getSelection()); ++ + List ethnicGroupToAdd = setEthnicGroupComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), combo_HumanGroup.getSelection()); if (ethnicGroupToAdd != null) { combo_EthnicGroup.setTerms(ethnicGroupToAdd); combo_EthnicGroup.setSelection(modifierSelection(UsageTermCollection.ethnicGroupLabel)); @@@ -129,9 -128,9 +129,9 @@@ return null; } return null; -- ++ } -- ++ /** * Returns the selected state * @param comboCategory @@@ -147,16 -146,16 +147,16 @@@ return statedata.getState(); } } -- } ++ } } } else { return null; } return null; -- ++ } -- ++ /** * This function sets the combo terms (Besides EthnicGroup * @param listOfTerms @@@ -174,10 -173,10 +174,10 @@@ termsToAdd.add(term); } } -- ++ return termsToAdd; } -- ++ /** * This function sets the Use Category combo term @@@ -209,7 -208,7 +209,7 @@@ State selectedUseCategory) { List termsToAdd = new ArrayList(); if (combo_UseCategory.getSelection() != null) { -- ++ for (State term : listOfTerms) { if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals(selectedUseCategory.getTitleCache()))) { termsToAdd.add(term); @@@ -217,11 -216,11 +217,11 @@@ else if ((term.getVocabulary() !=null) && (term.getVocabulary().getTitleCache().equals(selectedUseCategory.getTitleCache()))) { termsToAdd.add(term); } -- ++ } } - else if (!getEntity().getStates().isEmpty()) { - for (StateData stateData : getEntity().getStates()) { + else if (!getEntity().getStateData().isEmpty()) { + for (StateData stateData : getEntity().getStateData()) { if (stateData.getModifyingText().get(CdmStore.getDefaultLanguage()) != null) { if ((stateData.getState() != null) && (stateData.getModifyingText().get(CdmStore.getDefaultLanguage()).getText() == UsageTermCollection.useCategoryVocabularyLabel)) { for (State term : listOfTerms) { @@@ -231,33 -230,33 +231,33 @@@ termsToAdd.add(term); } } -- ++ } } } -- ++ } -- ++ else { return null; } return termsToAdd; } -- -- ++ ++ /** * This function sets the EthnicGroup combo term * @param listOfTerms * @param selectedHumangroup * @return */ - private List setEthnicGroupComboTerms(List listOfTerms, - Modifier selectedHumangroup) { - List termsToAdd = new ArrayList(); + private List setEthnicGroupComboTerms(List listOfTerms, + DefinedTerm selectedHumangroup) { + List termsToAdd = new ArrayList(); if (combo_HumanGroup.getSelection() != null) { - for (Modifier term : listOfTerms) { - + for (DefinedTerm term : listOfTerms) { - ++ if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals(selectedHumangroup.getTitleCache()))) { termsToAdd.add(term); } @@@ -278,7 -277,7 +278,7 @@@ termsToAdd.add(modifier); } } -- ++ } } } @@@ -286,11 -285,11 +286,11 @@@ } else { return null; } -- ++ return termsToAdd; } -- ++ /** {@inheritDoc} */ @Override public void handleEvent(Object eventSource) { @@@ -305,10 -304,10 +305,10 @@@ if(!useCategoryStateDataCheck.getState().getTitleCache().equals(combo_UseCategory.getSelection().getTitleCache())) { isUseCategoryChanged = true; } -- ++ } } - ListIterator itrExistingStates = getEntity().getStates().listIterator(); + ListIterator itrExistingStates = getEntity().getStateData().listIterator(); while(itrExistingStates.hasNext()) { StateData existingStateData = itrExistingStates.next(); Map modifyingText = existingStateData @@@ -322,7 -321,7 +322,7 @@@ stateData.setState(combo_UseCategory.getSelection()); stateData.putModifyingText(CdmStore.getDefaultLanguage(),UsageTermCollection.useCategoryVocabularyLabel); itrExistingStates.add(stateData); -- ++ } } else if (modifyingText.get(CdmStore.getDefaultLanguage()).getText().equals(UsageTermCollection.useSubCategoryVocabularyLabel) && isUseCategoryChanged == true) { itrExistingStates.remove(); @@@ -330,22 -329,22 +330,22 @@@ } } } -- -- ++ ++ if (isChanged == false) { StateData stateData = StateData .NewInstance(combo_UseCategory.getSelection()); stateData.setState(combo_UseCategory.getSelection()); stateData.putModifyingText(CdmStore.getDefaultLanguage(), UsageTermCollection.useCategoryVocabularyLabel); - getEntity().addState(stateData); + getEntity().addStateData(stateData); } -- ++ combo_UseSubCategory.setEnabled(true); -- ++ } else { - if (!getEntity().getStates().isEmpty()) { - Iterator itr = getEntity().getStates().iterator(); + if (!getEntity().getStateData().isEmpty()) { + Iterator itr = getEntity().getStateData().iterator(); while(itr.hasNext()) { StateData stateToRemove = itr.next(); itr.remove(); @@@ -358,7 -357,7 +358,7 @@@ } } } -- ++ if (eventSource == combo_UseSubCategory) { if (combo_UseSubCategory.getSelection() != null) { boolean isChanged = false; @@@ -382,18 -381,18 +382,18 @@@ } } } -- ++ if (isChanged == false){ StateData stateData = StateData .NewInstance(combo_UseSubCategory.getSelection()); stateData.setState(combo_UseSubCategory.getSelection()); stateData.putModifyingText(CdmStore.getDefaultLanguage(), UsageTermCollection.useSubCategoryVocabularyLabel); - getEntity().addState(stateData); + getEntity().addStateData(stateData); } -- ++ } else { - if (!getEntity().getStates().isEmpty()) { - Iterator itrStateData = getEntity().getStates().iterator(); + if (!getEntity().getStateData().isEmpty()) { + Iterator itrStateData = getEntity().getStateData().iterator(); while(itrStateData.hasNext()) { StateData existingStateData = itrStateData.next(); Map modifyingText = existingStateData @@@ -416,22 -415,22 +416,22 @@@ if(GetVocabularyType(modifier, UsageTermCollection.plantPartLabel)) { itrExistingModifiers.remove(); } -- -- } - Modifier plantPart = combo_PlantPart.getSelection(); ++ ++ } + DefinedTerm plantPart = combo_PlantPart.getSelection(); getEntity().addModifier(plantPart); } else { - Set modifiers = getEntity().getModifiers(); + Set modifiers = getEntity().getModifiers(); if(!modifiers.isEmpty()) { - Iterator itr = modifiers.iterator(); + Iterator itr = modifiers.iterator(); while (itr.hasNext()) { - Modifier currentMod = itr.next(); + DefinedTerm currentMod = itr.next(); if(GetVocabularyType(currentMod, UsageTermCollection.plantPartLabel)) { itr.remove(); } } } -- ++ } } if (eventSource == combo_Country) { @@@ -442,16 -441,16 +442,16 @@@ if(GetVocabularyType(modifier, UsageTermCollection.countryLabel)) { itrExistingModifiers.remove(); } -- ++ } - Modifier country = combo_Country.getSelection(); + DefinedTerm country = combo_Country.getSelection(); getEntity().addModifier(country); } else { - Set modifiers = getEntity().getModifiers(); + Set modifiers = getEntity().getModifiers(); if(!modifiers.isEmpty()) { - Iterator itr = modifiers.iterator(); + Iterator itr = modifiers.iterator(); while (itr.hasNext()) { - Modifier currentMod = itr.next(); + DefinedTerm currentMod = itr.next(); if(GetVocabularyType(currentMod, UsageTermCollection.countryLabel)) { itr.remove(); } @@@ -466,19 -465,19 +466,19 @@@ if(modToCheck.equals(combo_HumanGroup.getSelection()) && (GetVocabularyType(modToCheck, UsageTermCollection.humanGroupLabel))) { isHumanGroupChanged = false; } -- -- ++ ++ } - Iterator itrExistingModifiers = getEntity().getModifiers().iterator(); + Iterator itrExistingModifiers = getEntity().getModifiers().iterator(); while (itrExistingModifiers.hasNext()) { - Modifier modifier = itrExistingModifiers.next(); + DefinedTerm modifier = itrExistingModifiers.next(); if((GetVocabularyType(modifier, UsageTermCollection.humanGroupLabel) || GetVocabularyType(modifier, UsageTermCollection.ethnicGroupLabel)) && isHumanGroupChanged) { itrExistingModifiers.remove(); } -- -- } ++ ++ } if(isHumanGroupChanged){ - Modifier humanGroup = combo_HumanGroup.getSelection(); + DefinedTerm humanGroup = combo_HumanGroup.getSelection(); getEntity().addModifier(humanGroup); } combo_EthnicGroup.setEnabled(true); @@@ -493,12 -492,17 +493,17 @@@ } } } - List emptyListToResetComboBox = new ArrayList(); - Modifier emptyMod = Modifier.NewInstance(); + List emptyListToResetComboBox = new ArrayList(); + //FIXME:3.3MC---- + //DefinedTerm emptyMod = DefinedTerm.NewInstance(); + DefinedTerm emptyMod = null; + //FIXME:3.3MC---- - - ++ ++ emptyListToResetComboBox.add(emptyMod); combo_EthnicGroup.setTerms(emptyListToResetComboBox); combo_EthnicGroup.setEnabled(false); -- ++ } } if (eventSource == combo_EthnicGroup) { @@@ -509,28 -513,28 +514,28 @@@ if(GetVocabularyType(modifier, combo_HumanGroup.getSelection().getTitleCache())) { itrExistingModifiers.remove(); } -- -- } - Modifier ethnicGroup = combo_EthnicGroup.getSelection(); ++ ++ } + DefinedTerm ethnicGroup = combo_EthnicGroup.getSelection(); getEntity().addModifier(ethnicGroup); } else { - Set modifiers = getEntity().getModifiers(); + Set modifiers = getEntity().getModifiers(); if(!modifiers.isEmpty()) { -- - Iterator itr = modifiers.iterator(); ++ + Iterator itr = modifiers.iterator(); while (itr.hasNext()) { - Modifier currentMod = itr.next(); + DefinedTerm currentMod = itr.next(); if(GetVocabularyType(currentMod, UsageTermCollection.ethnicGroupLabel)) { itr.remove(); } } -- ++ } } } } -- -- ++ ++ /** * This function Checks the vocabulary type @@@ -550,8 -554,8 +555,8 @@@ } return false; } -- -- ++ ++ /** {@inheritDoc} */ @Override @@@ -568,11 -572,11 +573,11 @@@ State selectedUseCategory = combo_UseCategory.getSelection(); if (selectedUseCategory != null) { combo_UseSubCategory.setTerms(setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false),selectedUseCategory)); -- - if (!getEntity().getStates().isEmpty()) { - Iterator itrExistingState = getEntity().getStates().iterator(); ++ + if (!getEntity().getStateData().isEmpty()) { + Iterator itrExistingState = getEntity().getStateData().iterator(); while(itrExistingState.hasNext()) { -- StateData existingStateData = (StateData) itrExistingState.next(); ++ StateData existingStateData = itrExistingState.next(); Map modifyingText = existingStateData.getModifyingText(); if (modifyingText.get(CdmStore.getDefaultLanguage()) != null) { if (modifyingText.get(CdmStore.getDefaultLanguage()) @@@ -599,7 -603,7 +604,7 @@@ } } } -- ++ } } } diff --cc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java index 90c3e3551,813e6b782..f3ec3fd81 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java @@@ -103,89 -106,89 +103,89 @@@ import eu.etaxonomy.taxeditor.view.Abst */ public class DetailsViewer extends AbstractCdmDataViewer { - private ISelection selection; - - /** - *

      - * Constructor for DetailsViewer. - *

      - * - * @param parent - * a {@link org.eclipse.swt.widgets.Composite} object. - * @param viewPart - * a {@link eu.etaxonomy.taxeditor.view.AbstractCdmViewPart} - * object. - */ - public DetailsViewer(Composite parent, AbstractCdmViewPart viewPart) { - super(parent, viewPart); - } - - // START HACK TO MAKE THE DERIVED UNIT FACADE WORK - // since we are getting implementations of DerivedUnitBase from the bulk - // editor - // and not derived unit facade objects, - - /* - * (non-Javadoc) - * - * @see - * eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer#setInput(java - * .lang.Object) - */ - @Override - public void setInput(Object input) { + private ISelection selection; + + /** + *

      + * Constructor for DetailsViewer. + *

      + * + * @param parent + * a {@link org.eclipse.swt.widgets.Composite} object. + * @param viewPart + * a {@link eu.etaxonomy.taxeditor.view.AbstractCdmViewPart} + * object. + */ + public DetailsViewer(Composite parent, AbstractCdmViewPart viewPart) { + super(parent, viewPart); + } + + // START HACK TO MAKE THE DERIVED UNIT FACADE WORK + // since we are getting implementations of DerivedUnitBase from the bulk + // editor + // and not derived unit facade objects, + + /* + * (non-Javadoc) + * + * @see + * eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer#setInput(java + * .lang.Object) + */ + @Override + public void setInput(Object input) { - if (input instanceof DerivedUnitBase) { + if (input instanceof DerivedUnit) { - try { + try { - input = DerivedUnitFacade.NewInstance((DerivedUnitBase) input, + input = DerivedUnitFacade.NewInstance((DerivedUnit) input, - PreferencesUtil.getDerivedUnitConfigurator()); - } catch (DerivedUnitFacadeNotSupportedException e) { + PreferencesUtil.getDerivedUnitConfigurator()); + } catch (DerivedUnitFacadeNotSupportedException e) { AbstractUtility.error(getClass(), e); - } - } - super.setInput(input); - } - - @Override - protected void markViewPartDirty() { - if (getInput() instanceof DerivedUnitFacade) { + } + } + super.setInput(input); + } + + @Override + protected void markViewPartDirty() { + if (getInput() instanceof DerivedUnitFacade) { getViewPart().changed(((DerivedUnitFacade) getInput()).innerDerivedUnit()); - } - - super.markViewPartDirty(); - } - - // END HACK TO MAKE THE DERIVED UNIT FACADE WORK - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.Viewer#refresh() - */ - /** {@inheritDoc} */ - @Override - protected void showParts() { - // FIXME (CM) : Need to clean out this code. - // Too much type checking to decide which detail view to display. - // Need to build in a mechanism where navigators / editors are 'aware' - // of the corresponding detail viewer. + } + + super.markViewPartDirty(); + } + + // END HACK TO MAKE THE DERIVED UNIT FACADE WORK + + /* + * (non-Javadoc) + * + * @see org.eclipse.jface.viewers.Viewer#refresh() + */ + /** {@inheritDoc} */ + @Override + protected void showParts() { + // FIXME (CM) : Need to clean out this code. + // Too much type checking to decide which detail view to display. + // Need to build in a mechanism where navigators / editors are 'aware' + // of the corresponding detail viewer. Object input = getInput(); if (input instanceof TaxonBase) { - createTaxonSections(rootElement); + createTaxonSections(rootElement); } else if (input instanceof NonViralName) { - createNameSections(rootElement); + createNameSections(rootElement); } else if (input instanceof Reference) { - createReferenceSections(rootElement); + createReferenceSections(rootElement); } else if (input instanceof Team) { - createTeamDetailSection(rootElement); + createTeamDetailSection(rootElement); } else if (input instanceof Person) { - createPersonDetailSection(rootElement); + createPersonDetailSection(rootElement); } else if (input instanceof TeamOrPersonBase) { - createTeamOrPersonBaseDetailSection(rootElement); + createTeamOrPersonBaseDetailSection(rootElement); } else if (input instanceof DescriptionBase) { Set descriptionMarkers = ((DescriptionBase) input).getMarkers(); @@@ -472,33 -476,35 +472,33 @@@ DescribedSpecimenSection describedSpecimenSection = formFactory.createDescribedSpecimenSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); - formFactory.createHorizontalSeparator(parent, SWT.BORDER); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); - DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); - - formFactory.createHorizontalSeparator(parent, SWT.BORDER); -// DescriptionSourceSection descriptionSourceSection = (DescriptionSourceSection) formFactory -// .createEntityDetailSection(EntityDetailType.DESCRIPTIONSOURCE, -// getConversationHolder(), parent, Section.TWISTIE); ++// DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); + // -// formFactory.createHorizontalSeparator(parent, SWT.BORDER); ++// formFactory.createHorizontalSeparator(parent, SWT.BORDER); ScopeSection scopeSection = formFactory.createScopeSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); - formFactory.createHorizontalSeparator(parent, SWT.BORDER); - - addPart(descriptionDetailSection); - addPart(naturalLanguageSection); - addPart(describedSpecimenSection); -// addPart(descriptionSourceSection); - addPart(scopeSection); - } - - /** - * Creates the use Description section + formFactory.createHorizontalSeparator(parent, SWT.BORDER); + + addPart(descriptionDetailSection); + addPart(naturalLanguageSection); + addPart(describedSpecimenSection); - addPart(descriptionSourceSection); ++// addPart(descriptionSourceSection); + addPart(scopeSection); + } + + /** + * Creates the use Description section * - * @param parent - */ - private void createUseDescriptionSection(RootElement parent) { - destroySections(); + * @param parent + */ + private void createUseDescriptionSection(RootElement parent) { + destroySections(); DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); - formFactory.createHorizontalSeparator(parent, SWT.BORDER); + formFactory.createHorizontalSeparator(parent, SWT.BORDER); DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);