From: Patric Plitzner
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 "); -- ++ SetNewEmptyInstance
* @@@ -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
.
Setter for the field initiallySelectedTaxonBase
.
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 SetConstructor 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 HashSetdispose
*/ -- 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 /** ConstantID="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) {
SetConstructor for DeleteTreeNodeOperation.
* @@@ -50,14 -50,14 +50,14 @@@ * @param treeNodes a {@link java.util.Set} object. */ public DeleteOperation(String label, IUndoContext undoContext, -- SetGetter for the field children
.
Setter for the field 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 AbstractNewEntityWizardopenInEditor
* @@@ -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
.
+ * 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 AbstractFilteredCdmEnumSelectionDialogConstructor 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. + * @paramgetSelectionFromDialog
+ * + * @param dialog a {@link eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog} object. + * @paramgetTitle
+ * + * @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 ComparatorgetSelectedUuidAndTitleCache
+ * + * @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
.
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 AbstractFilteredCdmResourceSelectionDialogselect
* @@@ -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+ * 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- * 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- * 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+ * 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: - *
+ * Creates a selection element for the given type T. + *
+ *+ * Selection elements not handled by this method: + *
@@@ -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+ * 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
.
+ *
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* 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
.
*
* isOpenInEditor *
-- * ++ * * @return the openInEditor */ public boolean isOpenInEditor() { @@@ -180,10 -180,10 +180,10 @@@ *
* Getter for the field parentTreeNode
.
*
* Getter for the field taxon
.
*
* 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
@@@ -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 GatheringEventDetailSection class. SourceSection class.
- * Constructor for DetailsViewer.
- *
+ * Constructor for DetailsViewer.
+ * parentTreeNode
.
*