eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmPropertyChangeEvent.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CheckboxElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/DateDetailSection.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ICdmFormElement.java -text
+ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/GatheringEventUnitElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IEnableableFormElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IEntityElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IErrorIntolerableElement.java -text
<classpathentry exported="true" kind="lib" path="lib/google-api-translate-java-0.92.jar"/>
<classpathentry exported="true" kind="lib" path="lib/odfdom-0.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/h2mig_pagestore_addon.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.3.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.3.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.3.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.3.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.3.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.3.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.3.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.3.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.3.0-SNAPSHOT.jar" sourcepath="lib/cdmlib-model-3.3.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.3.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.3.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.3.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.3.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.3.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.3.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.3.0-SNAPSHOT-sources.jar"/>
++ <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.3.0-SNAPSHOT.jar" sourcepath="lib/cdmlib-services-3.3.0-SNAPSHOT-sources.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
--import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput;
import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditor;
++import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput;
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
--import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
++import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour;
import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
/**
* Copyright (C) 2007 EDIT
--* European Distributed Institute of Taxonomy
++* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
--*
++*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
--import eu.etaxonomy.cdm.model.taxon.ITreeNode;
++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
++
/**
* <p>TaxonEditorInput class.</p>
*
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;
}
--
--
++
++
/**
* <p>NewInstance</p>
*
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);
}
--
++
/**
* <p>NewInstanceFromTaxonBase</p>
*
*/
public static TaxonEditorInput NewInstanceFromTaxonBase(UUID taxonBaseUuid){
ConversationHolder conversation = CdmStore.createConversation();
--
++
TaxonEditorInput input = null;
--
++
TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).find(taxonBaseUuid);
if(taxonBase.isOrphaned()) {
EditorUtil.warningDialog("Orphaned Taxon", TaxonEditorInput.class, "This is an orphaned taxon i.e. a taxon that is not connected to a classification and not having any taxonomic relationships. Editing of orphaned taxon is currently not supported.");
}
else if(taxonBase.isInstanceOf(Taxon.class)){
Taxon taxon = CdmBase.deproxy(taxonBase, Taxon.class);
--
++
if (taxon.isMisapplication()){
// TODO get accepted taxon
EditorUtil.info("trying to open Mispplied Name ");
--
++
Set<Taxon> acceptedTaxa = new HashSet<Taxon>();
Set<TaxonRelationship> relations = taxon.getRelationsFromThisTaxon();
for(TaxonRelationship relation : relations){
}
}
input = getInputForMultipleTaxa(conversation, acceptedTaxa);
--
++
}else{
input = getInputForMultipleNodes(conversation, taxon.getTaxonNodes());
}
}else if(taxonBase instanceof Synonym){
Synonym synonym = (Synonym) taxonBase;
--
++
Set<Taxon> taxa = synonym.getAcceptedTaxa();
input = getInputForMultipleTaxa(conversation, taxa);
}
--
++
input.setInitiallySelectedTaxonBase(taxonBase);
--
++
return input;
}
--
++
private static TaxonEditorInput getInputForMultipleNodes(ConversationHolder conversation, Set<TaxonNode> taxonNodes){
if(taxonNodes.size() == 1){
TaxonNode taxonNode = taxonNodes.iterator().next();
}else if(taxonNodes.size() > 1){
TaxonNode taxonNode = ChooseFromMultipleTaxonNodesDialog.choose(taxonNodes);
if(taxonNode != null){
-- return NewInstance(taxonNode.getUuid(), conversation);
++ return NewInstance(taxonNode.getUuid(), conversation);
}
}else if(taxonNodes.size() == 0){
// this is an undesired state
}
return null;
}
--
++
private static TaxonEditorInput getInputForMultipleTaxa(ConversationHolder conversation, Set<Taxon> taxa){
if(taxa.size() == 1){
Taxon taxon = taxa.iterator().next();
}
return null;
}
--
++
/**
* <p>NewEmptyInstance</p>
*
*/
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()
*/
*
* @return a boolean.
*/
-- public boolean exists() {
++ @Override
++ public boolean exists() {
return taxonNode != null;
}
*
* @return a {@link org.eclipse.jface.resource.ImageDescriptor} object.
*/
-- public ImageDescriptor getImageDescriptor() {
++ @Override
++ public ImageDescriptor getImageDescriptor() {
return null;
}
*
* @return a {@link java.lang.String} object.
*/
-- public String getName() {
++ @Override
++ public String getName() {
if(getTaxon() == null){
return null;
}
return "New taxon";
} else {
return name.getTitleCache();
-- }
++ }
}
/* (non-Javadoc)
*
* @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;
*
* @return a {@link java.lang.String} object.
*/
-- public String getToolTipText() {
++ @Override
++ public String getToolTipText() {
return getName();
}
* @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){
public Taxon getTaxon(){
return taxonNode.getTaxon();
}
--
++
/**
* <p>Getter for the field <code>taxonNode</code>.</p>
*
public TaxonNode getTaxonNode() {
return taxonNode;
}
--
++
/*
* (non-Javadoc)
* @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
*
* @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
*/
-- public ConversationHolder getConversationHolder() {
++ @Override
++ public ConversationHolder getConversationHolder() {
return conversation;
}
* @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostCrudObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
*/
/** {@inheritDoc} */
-- public void update(CdmDataChangeMap events) {
++ @Override
++ public void update(CdmDataChangeMap events) {
if(dataChangeBehavior == null){
dataChangeBehavior = new TaxonEditorInputDataChangeBehaviour(this);
}
--
++
DataChangeBridge.handleDataChange(events, dataChangeBehavior);
}
*
* @return a {@link java.lang.String} object.
*/
-- public String getFactoryId() {
++ @Override
++ public String getFactoryId() {
return TaxonEditorInputFactory.getFactoryId();
}
* @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
*/
/** {@inheritDoc} */
-- public void saveState(IMemento memento) {
++ @Override
++ public void saveState(IMemento memento) {
TaxonEditorInputFactory.saveState(memento, this);
}
--
++
/**
* <p>Setter for the field <code>initiallySelectedTaxonBase</code>.</p>
*
public TaxonBase getInitiallySelectedTaxonBase() {
return initiallySelectedTaxonBase;
}
--
++
@Override
public String toString() {
return String.format("%s[%s]", this.getClass().getSimpleName(), getTaxon());
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.description.FeatureNode;\r
import eu.etaxonomy.cdm.model.description.FeatureTree;\r
- import eu.etaxonomy.cdm.model.description.Modifier;\r
import eu.etaxonomy.cdm.model.description.State;\r
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;\r
import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;\r
import eu.etaxonomy.taxeditor.store.CdmStore;\r
import eu.etaxonomy.taxeditor.store.StoreUtil;\r
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.StructuredSelection;
--import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Composite;
--import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
--import org.eclipse.ui.PartInitException;
--import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
--import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
import eu.etaxonomy.taxeditor.editor.name.operation.SwapSynonymAndAcceptedOperation;
/**
* Copyright (C) 2007 EDIT
--* European Distributed Institute of Taxonomy
++* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
--*
++*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
--import eu.etaxonomy.cdm.model.taxon.ITreeNode;
++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
* @version 1.0
*/
public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPostOperation {
--
++
private Taxon newTaxon;
private Synonym synonym;
-- private ITreeNode parentNode;
++ private ITaxonTreeNode parentNode;
private TaxonNode newNode;
private Synonym[] synonymsInHomotypicalGroup;
--
++
/**
* <p>Constructor for ChangeSynonymToAcceptedTaxonOperation.</p>
*
* @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)
*/
@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) {
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);
@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);
}
// $Id$
/**
* Copyright (C) 2007 EDIT
-- * European Distributed Institute of Taxonomy
++ * European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-- *
++ *
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import 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;
* <p>
* DynamicFeatureMenu class.
* </p>
-- *
++ *
* @author n.hoffmann
* @created 17.04.2009
* @version 1.0
/*
* (non-Javadoc)
-- *
++ *
* @see
* org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
*/
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);
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) {
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 {
/**
* 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
*/
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;
/**
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;
/**
* Copyright (C) 2007 EDIT
--* European Distributed Institute of Taxonomy
++* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
--*
++*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import 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;
* @created 01.04.2009
* @version 1.0
*/
--public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements
++public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements
IDataChangeBehavior {
private TaxonNavigator source;
private Set<CdmBase> staleObjects;
--
++
/**
* <p>Constructor for TaxonNavigatorDataChangeBehavior.</p>
*
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)
*/
* @return a boolean.
*/
public boolean isRelevant(CdmDataChangeMap events) {
--
++
// TODO react only on insert/update/delete of taxon and synonym objects
// and on update of name objects
boolean relevant = false;
staleObjects = new HashSet<CdmBase>();
--
++
for(CdmDataChangeEvent event : events.getAllEvents()){
EventType eventType = event.getEventType();
CdmBase eventEntity = event.getEntity();
--
++
// all tree node changes are relevant
-- if((eventType == EventType.INSERT || eventType == EventType.DELETE || eventType == EventType.UPDATE)
-- && event.getEntity() instanceof ITreeNode){
++ if((eventType == EventType.INSERT || eventType == EventType.DELETE || eventType == EventType.UPDATE)
++ && event.getEntity() instanceof ITaxonTreeNode){
return true;
}
--
++
// name updates of the accepted taxon of open editors are relevant
if(eventType == EventType.UPDATE){
TaxonNameBase name = null;
}else{
continue;
}
--
++
Set<IEditorPart> openEditors = NavigationUtil.getOpenEditors();
for(IEditorPart editor : openEditors){
--
++
if(name.equals(((TaxonEditorInput) editor.getEditorInput()).getTaxon().getName())){
return true;
}
}
}
--
--
++
++
// if(eventType == EventType.UPDATE){
// relevant = true;
// CdmBase entity = event.getEntity();
// }
// }
}
--
++
return false;
--
++
// @deprecated
// react on everything except load
// if(events.sizeByEventType(EventType.INSERT) > 0){
* @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
*/
/** {@inheritDoc} */
-- public void reactOnDataChange(CdmDataChangeMap events) {
++ @Override
++ public void reactOnDataChange(CdmDataChangeMap events) {
if(isRelevant(events)){
final Display display = Display.getCurrent();
Job job = new Job("Updating Taxon Navigator") {
--
++
@Override
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask("Updating Taxon Navigator", 3);
monitor.worked(1);
--
++
// clear the session completely
monitor.subTask("Clearing Taxon Navigators session");
display.asyncExec(new Runnable() {
-- public void run() {
++ @Override
++ public void run() {
source.getConversationHolder().clear();
}
-- });
-- // FIXME completely clearing the session is a brute force approach.
++ });
++ // FIXME completely clearing the session is a brute force approach.
// It would be much more elegant to clear only those elements that have been changed.
// I could not get that to work but we should consider workin on this because we might
// run into serious performance issues, especially when it comes to large trees
// at least, we moved this to a job so it can run in a background thred
// seems to improve the situation but not sure if final solution
monitor.worked(1);
--
++
monitor.subTask("Refreshing viewer");
--
++
display.asyncExec(new Runnable() {
-- public void run() {
++ @Override
++ public void run() {
source.refresh();
}
});
--
--
--
++
++
++
monitor.worked(1);
monitor.done();
return Status.OK_STATUS;
}
};
--
++
job.setPriority(Job.SHORT);
job.schedule();
--
++
}
}
}
// $Id$
/**
* Copyright (C) 2007 EDIT
--* European Distributed Institute of Taxonomy
++* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
--*
++*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import org.eclipse.jface.viewers.Viewer;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
--import eu.etaxonomy.cdm.model.taxon.ITreeNode;
++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
/**
.getLogger(TaxonNodeContentProvider.class);
private static final Object[] NO_CHILDREN = new Object[0];
--
++
/** {@inheritDoc} */
-- public Object[] getChildren(Object parentElement) {
-- Object[] children = null;
--
-- if(parentElement instanceof ITreeNode){
-- ITreeNode treeNode = (ITreeNode) HibernateProxyHelper.deproxy(parentElement);
++ @Override
++ public Object[] getChildren(Object parentElement) {
++ Object[] children = null;
++
++ if(parentElement instanceof ITaxonTreeNode){
++ ITaxonTreeNode treeNode = (ITaxonTreeNode) HibernateProxyHelper.deproxy(parentElement);
children = treeNode.getChildNodes().toArray();
}
--
++
return children != null ? children : NO_CHILDREN;
}
/** {@inheritDoc} */
-- public Object getParent(Object element) {
++ @Override
++ public Object getParent(Object element) {
if(element instanceof TaxonNode){
return ((TaxonNode) element).getParent();
-- }
++ }
return null;
}
/** {@inheritDoc} */
-- public boolean hasChildren(Object element) {
++ @Override
++ public boolean hasChildren(Object element) {
if(element instanceof TaxonNode){
return ((TaxonNode) element).getCountChildren() > 0;
}
}
/** {@inheritDoc} */
-- public Object[] getElements(Object inputElement) {
++ @Override
++ public Object[] getElements(Object inputElement) {
return this.getChildren(inputElement);
}
/**
* <p>dispose</p>
*/
-- 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) {
}
}
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;
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;
// $Id$
/**
* Copyright (C) 2007 EDIT
--* European Distributed Institute of Taxonomy
++* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
--*
++*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import org.eclipse.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;
/** Constant <code>ID="eu.etaxonomy.taxeditor.navigation.navig"{trunked}</code> */
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)
*/
@Override
public IStatus handleDrop(CommonDropAdapter dropAdapter,
DropTargetEvent dropTargetEvent, Object target) {
--
-- if (target instanceof ITreeNode) {
++
++ if (target instanceof ITaxonTreeNode) {
Set<TaxonNode> taxonNodes = getSelectedTaxa();
-- ITreeNode targetTreeNode = (ITreeNode) target;
-- if(taxonNodes != null)
-- return moveTaxon(taxonNodes, targetTreeNode);
++ ITaxonTreeNode targetTreeNode = (ITaxonTreeNode) target;
++ if(taxonNodes != null) {
++ return moveTaxon(taxonNodes, targetTreeNode);
++ }
}
--
++
return Status.CANCEL_STATUS;
}
--
++
private Set<TaxonNode> getSelectedTaxa(){
-- HashSet<TaxonNode> taxonNodes = new HashSet<TaxonNode>();
--
++ HashSet<TaxonNode> taxonNodes = new HashSet<TaxonNode>();
++
ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
if (selection instanceof TreeSelection) {
--
++
Iterator selectionIterator = ((TreeSelection) selection).iterator();
--
++
while (selectionIterator.hasNext()){
Object object = selectionIterator.next();
if(object instanceof TaxonNode){
/** {@inheritDoc} */
@Override
public IStatus validateDrop(Object target, int operation,
-- TransferData transferType) {
-- if (target instanceof ITreeNode) {
++ TransferData transferType) {
++ if (target instanceof ITaxonTreeNode) {
// do not allow to drop onto itself
for(TaxonNode taxonNode : getSelectedTaxa()){
if (taxonNode.equals(target)) {
}
}
return Status.OK_STATUS;
-- }
++ }
return Status.CANCEL_STATUS;
}
--
++
/**
* @param childTaxonNode
* @param parentTaxon
* @return
*/
-- private IStatus moveTaxon(Set<TaxonNode> taxonNodes, ITreeNode targetITreeNode) {
--
++ private IStatus moveTaxon(Set<TaxonNode> taxonNodes, ITaxonTreeNode targetITaxonTreeNode) {
++
TaxonNavigator taxonNavigator;
taxonNavigator = (TaxonNavigator) NavigationUtil.showView(TaxonNavigator.ID);
--
-- if(targetITreeNode instanceof TaxonNode){
--
-- TaxonNode targetTaxonNode = (TaxonNode) targetITreeNode;
--
++
++ if(targetITaxonTreeNode instanceof TaxonNode){
++
++ TaxonNode targetTaxonNode = (TaxonNode) targetITaxonTreeNode;
++
// for(TaxonNode taxonNode : taxonNodes){
// if (taxonNode.equals(targetTaxonNode)) {
// return Status.CANCEL_STATUS;
// }
// }
--
++
// Make sure parent taxon does not have unsaved changes
if (NavigationUtil.isDirty(targetTaxonNode)){
MessageDialog.openWarning(NavigationUtil.getShell(), "Unsaved Parent Taxon", "There are unsaved " +
"changes in the parent taxon. Pleas save first.");
return Status.CANCEL_STATUS;
}
--
--
++
++
// Make sure parentTaxon is not the drop target
// if (!childTaxonNode.isTopmostNode() && childTaxonNode.getParent().equals(targetTaxonNode)){
// return Status.CANCEL_STATUS;
// }
--
++
// Make sure taxon is not being dropped onto itself
// if (childTaxonNode.equals(targetTaxonNode)) {
// return Status.CANCEL_STATUS;
// }
--
--
-- }
--
++
++
++ }
++
IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
if (workspaceUndoContext == null) {
logger.error("Workspace undo context is null. DND operation cancelled");
}
AbstractPostOperation operation = new MoveTaxonOperation
-- ("Move Taxon", workspaceUndoContext, taxonNodes, targetITreeNode, this, taxonNavigator);
-- NavigationUtil.executeOperation(operation);
--
-- logger.info("Moved taxa to new parent " + targetITreeNode);
++ ("Move Taxon", workspaceUndoContext, taxonNodes, targetITaxonTreeNode, this, taxonNavigator);
++ NavigationUtil.executeOperation(operation);
++
++ logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
return Status.OK_STATUS;
}
* @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
*/
/** {@inheritDoc} */
-- public boolean postOperation(CdmBase objectAffectedByOperation) {
++ @Override
++ public boolean postOperation(CdmBase objectAffectedByOperation) {
return true;
}
*
* @return a boolean.
*/
-- public boolean onComplete() {
++ @Override
++ public boolean onComplete() {
// TODO Auto-generated method stub
return false;
}
*/\r
package eu.etaxonomy.taxeditor.navigation.navigator.handler;\r
\r
--import java.util.Iterator;\r
--\r
import org.eclipse.core.commands.AbstractHandler;\r
import org.eclipse.core.commands.ExecutionEvent;\r
import org.eclipse.core.commands.ExecutionException;\r
import org.eclipse.jface.viewers.IStructuredSelection;\r
import org.eclipse.ui.handlers.HandlerUtil;\r
\r
--import eu.etaxonomy.cdm.model.common.TermBase;\r
--import eu.etaxonomy.cdm.model.taxon.Taxon;\r
--import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
--import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;\r
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;\r
import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;\r
import eu.etaxonomy.taxeditor.navigation.navigator.operation.CopyOperation;\r
// $Id$
/**
* Copyright (C) 2007 EDIT
--* European Distributed Institute of Taxonomy
++* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
--*
++*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
--import eu.etaxonomy.cdm.model.taxon.ITreeNode;
++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
private TaxonNavigator taxonNavigator;
/** {@inheritDoc} */
-- public Object execute(ExecutionEvent event) throws ExecutionException {
--
++ @Override
++ public Object execute(ExecutionEvent event) throws ExecutionException {
++
activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
--
++
taxonNavigator = NavigationUtil.showNavigator();
--
++
TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
--
++
String plural = selection.size() > 1 ? "s" : "";
// Prompt user for confirmation
if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Are you sure you want to delete the selected node" + plural +"?")){
return null;
}
--
++
Iterator selectionIterator = selection.iterator();
-- Set<ITreeNode> treeNodes = new HashSet<ITreeNode>();
--
++ Set<ITaxonTreeNode> treeNodes = new HashSet<ITaxonTreeNode>();
++
while (selectionIterator.hasNext()){
Object object = selectionIterator.next();
-- if(object instanceof ITreeNode)
-- treeNodes.add((ITreeNode) object);
++ if(object instanceof ITaxonTreeNode) {
++ treeNodes.add((ITaxonTreeNode) object);
++ }
}
--
++
AbstractPostOperation operation = null;
try {
operation = new DeleteOperation(
-- event.getCommand().getName(), NavigationUtil.getUndoContext(),
++ event.getCommand().getName(), NavigationUtil.getUndoContext(),
treeNodes, taxonNavigator, taxonNavigator);
--
++
IStatus status = NavigationUtil.executeOperation(operation);
--
--
++
++
// FIXME is there a better place for this code?
if (status == Status.OK_STATUS){
-- for (ITreeNode treeNode : treeNodes){
++ for (ITaxonTreeNode treeNode : treeNodes){
if(treeNode instanceof TaxonNode) {
closeObsoleteEditor((TaxonNode) treeNode);
}
}
}
--
++
} catch (NotDefinedException e) {
NavigationUtil.warn(getClass(), "Command name not set");
}
return null;
}
--
++
private void closeObsoleteEditor(TaxonNode taxonNode){
for (IEditorReference ref : activePage.getEditorReferences()) {
try {
-- IEditorInput input = ref.getEditorInput();
++ IEditorInput input = ref.getEditorInput();
if (input instanceof TaxonEditorInput) {
TaxonNode node = ((TaxonEditorInput) input).getTaxonNode();
if (taxonNode.equals(node)) {
\r
import org.eclipse.core.commands.ExecutionException;\r
import org.eclipse.core.commands.operations.IUndoContext;\r
--\r
--import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
--import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
--import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
--\r
import org.eclipse.core.runtime.IAdaptable;\r
import org.eclipse.core.runtime.IProgressMonitor;\r
import org.eclipse.core.runtime.IStatus;\r
import org.eclipse.swt.dnd.TextTransfer;\r
import org.eclipse.swt.dnd.Transfer;\r
\r
++import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
++import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
++import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
++\r
\r
/**\r
* @author l.morris\r
// $Id$
/**
* Copyright (C) 2007 EDIT
--* European Distributed Institute of Taxonomy
++* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
--*
++*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.IClassificationService;
import eu.etaxonomy.cdm.model.taxon.Classification;
--import eu.etaxonomy.cdm.model.taxon.ITreeNode;
++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
* @version 1.0
*/
public class DeleteOperation extends AbstractPersistentPostOperation{
--
-- private Set<ITreeNode> treeNodes;
--
++ private Set<ITaxonTreeNode> treeNodes;
++
++
/**
* <p>Constructor for DeleteTreeNodeOperation.</p>
*
* @param treeNodes a {@link java.util.Set} object.
*/
public DeleteOperation(String label, IUndoContext undoContext,
-- Set<ITreeNode> treeNodes,
++ Set<ITaxonTreeNode> treeNodes,
IPostOperationEnabled postOperationEnabled,
IConversationEnabled conversationEnabled) {
super(label, undoContext, postOperationEnabled, conversationEnabled);
this.treeNodes = treeNodes;
}
--
++
/* (non-Javadoc)
* @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
*/
bind();
monitor.worked(20);
-- for (ITreeNode treeNode : treeNodes){
++ for (ITaxonTreeNode treeNode : treeNodes){
if(treeNode instanceof TaxonNode){
((TaxonNode) treeNode).delete();
}else if(treeNode instanceof Classification){
/**
* Copyright (C) 2007 EDIT
--* European Distributed Institute of Taxonomy
++* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
--*
++*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import org.eclipse.core.runtime.Status;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
--import eu.etaxonomy.cdm.model.taxon.ITreeNode;
++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
* @version 1.0
*/
public class MoveTaxonOperation extends AbstractPersistentPostOperation {
--
++
/**
* A reference to the new taxonomical parent.
*/
-- private ITreeNode newParentTreeNode;
++ private ITaxonTreeNode newParentTreeNode;
/**
* A reference to the former taxonomical parents
*/
-- private Map<TaxonNode, ITreeNode> oldParentTreeNodes;
--
++ private Map<TaxonNode, ITaxonTreeNode> oldParentTreeNodes;
++
private Set<TaxonNode> taxonNodes;
/**
* @param label a {@link java.lang.String} object.
* @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
* @param taxonNodes a {@link java.util.Set} object.
-- * @param newParentTreeNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
++ * @param newParentTreeNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
* @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
* @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
*/
public MoveTaxonOperation(String label, IUndoContext undoContext,
-- Set<TaxonNode> taxonNodes, ITreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
++ Set<TaxonNode> taxonNodes, ITaxonTreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
super(label, undoContext, postOperationEnabled, conversationEnabled);
this.taxonNodes = taxonNodes;
--
++
this.newParentTreeNode = newParentTreeNode;
--
-- // Save old parent ITreeNodes for undo
-- oldParentTreeNodes = new HashMap<TaxonNode, ITreeNode>();
++
++ // Save old parent ITaxonTreeNodes for undo
++ oldParentTreeNodes = new HashMap<TaxonNode, ITaxonTreeNode>();
for(TaxonNode taxonNode : taxonNodes){
this.oldParentTreeNodes.put(taxonNode, taxonNode.getParent());
}
}
--
++
/* (non-Javadoc)
* @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
*/
throws ExecutionException {
bind();
monitor.worked(20);
--
++
try {
for (TaxonNode taxonNode : taxonNodes){
-- TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode,
- newParentTreeNode.getReference(), newParentTreeNode.getMicroReference(),
- taxonNode.getSynonymToBeUsed());
++ TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode,
+ newParentTreeNode.getReference(), newParentTreeNode.getMicroReference());
taxonNodes.add(newTaxonNode);
monitor.worked(2);
}
StoreUtil.warningDialog("Illegal ancestry", this, e.getMessage());
}
monitor.worked(40);
--
++
return postExecute(null);
}
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
StoreUtil.warn(this.getClass(), "Not implemented yet.");
--
-- // iterate over oldParentTreeNodes, delete each TaxonNode from its actual parent and add to its former parent
--
++
++ // iterate over oldParentTreeNodes, delete each TaxonNode from its actual parent and add to its former parent
++
return Status.OK_STATUS;
}
}
// $Id$
/**
* Copyright (C) 2007 EDIT
--* European Distributed Institute of Taxonomy
++* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
--*
++*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
--import eu.etaxonomy.cdm.model.taxon.ITreeNode;
++import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
*/
@Deprecated // we do not undo creation of elements
public class CreateTaxonNode extends AbstractPersistentPostOperation {
--
++
private Taxon newTaxon;
--
++
private TaxonNode childTaxonNode;
--
++
/**
* Add a name to a taxonomic tree
*
* @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
* @param name a {@link eu.etaxonomy.cdm.model.name.TaxonNameBase} object.
* @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-- * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
++ * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
* @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
*/
public CreateTaxonNode(String label, IUndoContext undoContext,
-- ITreeNode parentNode, TaxonNameBase<?, ?> name, IPostOperationEnabled postOperationEnabled,
++ ITaxonTreeNode parentNode, TaxonNameBase<?, ?> name, IPostOperationEnabled postOperationEnabled,
IConversationEnabled conversationEnabled) {
super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled);
--
++
newTaxon = Taxon.NewInstance(name, null);
}
--
++
/**
* Add a taxon to a taxonomic tree
*
* @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
* @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
* @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-- * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
++ * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
* @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
*/
public CreateTaxonNode(String label, IUndoContext undoContext,
-- ITreeNode parentNode, Taxon taxon, IPostOperationEnabled postOperationEnabled,
++ ITaxonTreeNode parentNode, Taxon taxon, IPostOperationEnabled postOperationEnabled,
IConversationEnabled conversationEnabled) {
super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled);
--
++
this.newTaxon = taxon;
}
// add the taxon
bind();
monitor.worked(20);
- childTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference(), null);
-
+ childTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference());
-
++
monitor.worked(40);
CdmStore.getService(ITaxonNodeService.class).saveOrUpdate(childTaxonNode);
--
++
return postExecute(childTaxonNode);
}catch(Exception e){
NavigationUtil.errorDialog("Could not create taxon node", getClass(), e.getLocalizedMessage(), e);
return Status.CANCEL_STATUS;
-- }
++ }
}
/* (non-Javadoc)
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
--
++
StoreUtil.warn(this.getClass(), "Not yet implemented.");
return null;
}
// $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.
*/
List<FeatureNode> children = ((FeatureTree) parentElement).getRootChildren();
return children.toArray();
}else if(parentElement instanceof FeatureNode){
-- List<FeatureNode> children = ((FeatureNode) parentElement).getChildren();
++ List<FeatureNode> children = ((FeatureNode) parentElement).getChildNodes();
return children.toArray();
}else if(parentElement instanceof List){
return ((List) parentElement).toArray();
import org.eclipse.ui.themes.ITheme;
import org.eclipse.ui.themes.IThemeManager;
--import eu.etaxonomy.cdm.model.common.TermBase;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
import eu.etaxonomy.cdm.api.service.DefaultQuantitativeDescriptionBuilder;
import eu.etaxonomy.cdm.api.service.DescriptionBuilder;
import eu.etaxonomy.cdm.common.CdmUtils;
- import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
-import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
import eu.etaxonomy.cdm.model.common.ISourceable;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.description.CommonTaxonName;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
++import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
import eu.etaxonomy.cdm.model.description.Distribution;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
// $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.
*/
* @version 1.0
*/
public class FeatureNodeContainer{
--
--
--
++
++
++
private FeatureNodeContainer parent;
--
++
private FeatureNode featureNode;
private FeatureNodeContainerTree containerTree;
--
++
/**
* @param description
*/
protected FeatureNodeContainer(FeatureNodeContainerTree containerTree) {
-- this.containerTree = containerTree;
++ this.containerTree = containerTree;
this.containerTree.addContainer(this);
}
--
--
++
++
/**
-- * Recursively traverse a branch of a feature tree and check if there are
-- *
++ * Recursively traverse a branch of a feature tree and check if there are
++ *
* @param featureNode
-- * @param description
++ * @param description
* @return
*/
protected void findLeaves(FeatureNode featureNode) {
if(featureNode.isLeaf()){
buildLeaf(featureNode);
}else{
-- for(FeatureNode childNode : featureNode.getChildren()){
++ for(FeatureNode childNode : featureNode.getChildNodes()){
findLeaves(childNode);
}
}
}
--
++
/**
-- *
++ *
* @param featureNode
* @param description
* @return
if(featureNode.getFeature() == null){
throw new IllegalArgumentException("The given feature node does not have a feature.");
}
--
++
Feature feature = (Feature) HibernateProxyHelper.deproxy(featureNode.getFeature());
--
++
// get feature node container for the given feature
FeatureNodeContainer container = containerTree.getFeatureNodeContainer(feature);
--
++
// get description elements for the given feature
List<DescriptionElementBase> elements = containerTree.getDescriptionsElementsForFeature(feature);
// no description elements, so we should also remove the feature node container
container.buildBranch();
}
// add description elements to the feature node container
-- container.setDescriptionElements(elements);
++ container.setDescriptionElements(elements);
}
}
--
++
/**
-- *
++ *
*/
private void remove() {
if(getParent() != null){
/**
-- * Recursively
-- *
++ * Recursively
++ *
* @param featureNodeMap
* @return
*/
-- private void buildBranch(){
++ private void buildBranch(){
if(getParent() == null){
FeatureNode parentFeatureNode = getFeatureNode().getParent();
--
++
if(parentFeatureNode.isRoot()){
containerTree.getRoot().addChild(this);
}else{
parentContainer = new FeatureNodeContainer(containerTree);
parentContainer.setFeatureNode(parentFeatureNode);
}
--
++
parentContainer.addChild(this);
--
++
parentContainer.buildBranch();
--
++
}
}
}
--
++
/**
* <p>Getter for the field <code>children</code>.</p>
*
throw new IllegalStateException("Container may not have a description element set when setting children.");
}
}
--
++
/**
* Adds a child container to the list of this containers children
*
public void addDescriptionElement(DescriptionElementBase descriptionElement){
descriptionElements.add(descriptionElement);
}
--
++
public void removeDescriptionElement(DescriptionElementBase descriptionElement){
descriptionElements.remove(descriptionElement);
}
--
++
/**
* If {@link #isLeaf()} is true, i.e. this container should have elements, returns the list of description elements.
*
public List<DescriptionElementBase> getDescriptionElementsForEntireBranch(){
return getDescriptionElementsRecursively(new ArrayList<DescriptionElementBase>());
}
--
++
private List<DescriptionElementBase> getDescriptionElementsRecursively(List<DescriptionElementBase> descriptionElements){
if(isLeaf()){
descriptionElements.addAll(getDescriptionElements());
}
return descriptionElements;
}
--
++
protected List<FeatureNodeContainer> getLeafs(){
List<FeatureNodeContainer> leafs = new ArrayList<FeatureNodeContainer>();
--
++
if(isLeaf()){
leafs.add(this);
}else{
for(FeatureNodeContainer container : getChildren()){
leafs.addAll(container.getLeafs());
-- }
++ }
}
return leafs;
}
--
++
/**
* Set the description element
*
throw new IllegalStateException("Container may not contain child container when adding description elements.");
}
}
--
++
/**
* If the container is a leaf, it will hold a description element and no child containers
*
public boolean isLeaf(){
return ! descriptionElements.isEmpty() && children.isEmpty();
}
--
++
/**
* <p>Setter for the field <code>featureNode</code>.</p>
*
public FeatureNode getFeatureNode() {
return featureNode;
}
--
++
/**
* <p>getFeature</p>
*
public DescriptionBase getDescription(){
return containerTree.getDescription();
}
--
++
public FeatureNodeContainerTree getContainerTree(){
return containerTree;
}
/**
-- *
++ *
*/
public void clear() {
children.clear();
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;
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;
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
/**
-- *
++ *
*/
package eu.etaxonomy.taxeditor.newWizard;
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;
* @created Sep 15, 2009
* @version 1.0
*/
--public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITreeNode>{
++public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITaxonTreeNode>{
private TaxonNodeWizardPage taxonNodePage;
private boolean openEmptyEditor;
taxonNodePage = new TaxonNodeWizardPage(formFactory, getConversationHolder(), getEntity());
addPage(taxonNodePage);
}
--
++
@Override
protected void saveEntity() {
if(taxonNodePage.getTaxon() == null || StringUtils.isEmpty(taxonNodePage.getTaxon().getName().getFullTitleCache())){
openEmptyEditor = true;
}else{
getConversationHolder().bind();
-- ITreeNode parent = getParentTreeNode();
++ ITaxonTreeNode parent = getParentTreeNode();
Taxon taxon = taxonNodePage.getTaxon();
try{
- TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference(), null);
+ TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference());
generatedTaxonNodeUuid = CdmStore.getService(ITaxonNodeService.class).saveOrUpdate(taxonNode);
}catch(IllegalArgumentException e){
StoreUtil.warningDialog("Taxon already exists in classfication", getClass(), e.getMessage());
}
@Override
-- protected ITreeNode createNewEntity() {
++ protected ITaxonTreeNode createNewEntity() {
if(getSelection() != null){
Object selectedObject = getSelection().getFirstElement();
-- if(selectedObject instanceof ITreeNode){
-- ITreeNode treeNode = (ITreeNode) selectedObject;
--
++ if(selectedObject instanceof ITaxonTreeNode){
++ ITaxonTreeNode treeNode = (ITaxonTreeNode) selectedObject;
++
if(treeNode instanceof Classification){
return CdmStore.getService(IClassificationService.class).load(treeNode.getUuid());
}
}
}
}
--
++
return null;
}
--
++
/**
* <p>openInEditor</p>
*
public boolean openInEditor(){
return taxonNodePage.openInEditor();
}
--
++
/**
* <p>openEmpty</p>
*
public boolean openEmpty(){
return openInEditor() && openEmptyEditor;
}
--
++
/**
* <p>getTaxonNode</p>
*
*/
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();
}
protected String getEntityName() {
return "Taxon";
}
--
++
}
// $Id$
/**
* Copyright (C) 2007 EDIT
--* European Distributed Institute of Taxonomy
++* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
--*
++*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import 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;
/**
*/
public abstract class AbstractPersistentPostOperation extends AbstractPostOperation {
private IConversationEnabled conversationEnabled;
--
-- protected ITreeNode parentNode;
--
++
++ protected ITaxonTreeNode parentNode;
++
/**
* <p>Constructor for AbstractPersistentPostOperation.</p>
*
super(label, undoContext, postOperationEnabled);
this.conversationEnabled = conversationEnabled;
}
--
++
/**
* <p>Constructor for AbstractPersistentPostOperation.</p>
*
super(label, undoContext, taxonNode, postOperationEnabled);
this.conversationEnabled = conversationEnabled;
}
--
++
/**
* <p>Constructor for AbstractPersistentPostOperation.</p>
*
* @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);
* @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();
}
}
--- /dev/null
- * @param initialInteger a {@link java.lang.Integer} object.
+// $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;
+
+ /**
+ * <p>Constructor for NumberWithLabelElement.</p>
+ *
+ * @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.
- public NumberFieldController(Text controlledText, CdmFormFactory formFactory, ICdmFormElement parentElement, Integer initialInteger){
++ * @param initialNumber a {@link java.lang.Integer} object.
+ * @param style a int.
+ */
- if(initialInteger==null){
- initialInteger = 0;
++ public NumberFieldController(Text controlledText, CdmFormFactory formFactory, ICdmFormElement parentElement, Number initialNumber){
+ super(controlledText, formFactory, parentElement, null, null);
+ //WindowBuilder exception handling
- setInteger(initialInteger);
- }
-
- /**
- * <p>Constructor for NumberWithLabelElement.</p>
- *
- * @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);
++ if(initialNumber==null){
++ initialNumber = 0;
+ }
- * <p>setFloat</p>
++ setNumber(initialNumber);
+ }
+
+ /**
+ * <p>setInteger</p>
+ *
+ * @param number a {@link java.lang.Integer} object.
+ */
+ public void setInteger(Integer number) {
+ super.setText(getStringRepresentation(number));
+ }
+
+ /**
- * @param number a {@link java.lang.Float} object.
++ * <p>setNumber</p>
+ *
- public void setFloat(Float number) {
++ * @param number a {@link java.lang.Number} object.
+ */
++ public void setNumber(Number number) {
+ super.setText(getStringRepresentation(number));
+ }
+
+ /**
+ * <p>getInteger</p>
+ *
+ * @return a {@link java.lang.Integer} object.
+ */
+ public Integer getInteger() {
+ String text = super.getText().trim();
+ return text.equals("") ? 0 : new Integer(text);
+ }
+
+ /**
+ * <p>getFloat</p>
+ *
+ * @return a {@link java.lang.Float} object.
+ */
+ public Float getFloat(){
+ String text = super.getText();
+ return new Float(text);
+ }
+
++ /**
++ * <p>getDouble</p>
++ *
++ * @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);
+ }
+
+ /**
+ * <p>setLimits</p>
+ *
+ * @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());
+ }
+
+ /**
+ * <p>setLimits</p>
+ *
+ * @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;
+ }
+
+ /**
+ * <p>Getter for the field <code>exception</code>.</p>
+ *
+ * @return the exception
+ */
+ public NumberFormatException getException() {
+ return exception;
+ }
+}
--- /dev/null
- import eu.etaxonomy.taxeditor.model.AbstractUtility;
- import eu.etaxonomy.taxeditor.preference.Resources;
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation;
+
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
- private NumberFieldController number_absoluteElevationError;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.NumberFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.TextFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.CollectingAreasDetailSection;
+
+/**
+ * @author pplitzner
+ * @date 14.08.2013
+ *
+ */
+public class GatheringEventDetailsElementController extends AbstractCdmDetailElement<DerivedUnitFacade> {
+
+ private GatheringEventDetailsElement gatheringEventDetailsElement;
+
- private NumberFieldController number_absoluteElevationMinimum;
++// private NumberFieldController number_absoluteElevationError;
+
- number_absoluteElevationError = new NumberFieldController(gatheringEventDetailsElement.getTextElevationError(), formFactory, this, entity.getAbsoluteElevation());
- number_absoluteElevationMinimum = new NumberFieldController(gatheringEventDetailsElement.getText_ElevationMinimum(), formFactory, this, entity.getAbsoluteElevationMinimum());
++// private NumberFieldController number_absoluteElevationMinimum;
+
+ private NumberFieldController number_absoluteElevationMaximum;
+
+ private TextFieldController text_collectingMethod;
+
+ private NumberFieldController number_distanceToGround;
+
+ private NumberFieldController number_distanceToWaterSurface;
+
+ private TextFieldController text_gatheringEventDescription;
+
+ private CollectingAreasDetailSection section_collectingAreas;
+
+ /**
+ * <p>
+ * Constructor for GatheringEventDetailElement.
+ * </p>
+ *
+ * @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) {
+
- 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) {
++// 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) {
- getEntity().setDistanceToGround(number_distanceToGround.getInteger());
++// 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().setDistanceToWaterSurface(number_distanceToWaterSurface.getInteger());
++ getEntity().setDistanceToGround(number_distanceToGround.getDouble());
+ } else if (eventSource == number_distanceToWaterSurface) {
++ getEntity().setDistanceToWaterSurface(number_distanceToWaterSurface.getDouble());
+ } else if (eventSource == text_gatheringEventDescription) {
+ getEntity().setGatheringEventDescription(text_gatheringEventDescription.getText());
+ }
+ }
+}
--- /dev/null
-import java.util.HashSet;
+ //$Id$
+
+ package eu.etaxonomy.taxeditor.ui.dialog.selection;
+
+ import java.lang.reflect.Field;
+ import java.text.Collator;
+ import java.util.Comparator;
-import java.util.Set;
-import java.util.UUID;
+ import java.util.List;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.ICdmBase;
+
+ 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.IIdentifiableEntity;
+ import eu.etaxonomy.cdm.model.common.IEnumTerm;
+ 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;
+
+ /**
+ * <p>Abstract AbstractFilteredCdmEnumSelectionDialog class.</p>
+ *
+ * @author c.mathew
+ * @created 18.07.2013
+ * @version 1.0
+ */
+ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm> extends
+ FilteredItemsSelectionDialog implements IConversationEnabled {
+
+ private ConversationHolder conversation;
+
+ protected List<T> model;
+ private String settings;
+
+
+
+ /**
+ * <p>Constructor for AbstractFilteredCdmResourceSelectionDialog.</p>
+ *
+ * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
+ * @param conversation
+ * @param title a {@link java.lang.String} object.
+ * @param multi a boolean.
+ * @param settings a {@link java.lang.String} object.
+ * @param cdmEnum a T object.
+ * @param <T> a T object.
+ */
+ protected AbstractFilteredCdmEnumSelectionDialog(Shell shell,
+ ConversationHolder conversation,
+ String title,
+ boolean multi,
+ String settings,
+ T cdmEnum) {
+ super(shell, multi);
+ setTitle(title);
+ setMessage("Use * for wildcard, or ? to see all entries");
+ this.settings = settings;
+
+ this.conversation = conversation;
+
+ init();
+
+ initModel();
+
+ String objectTitle = getTitle(cdmEnum);
+ if (objectTitle != null) {
+ setInitialPattern(objectTitle);
+ }
+
+ setListLabelProvider(createListLabelProvider());
+ setDetailsLabelProvider(createDetailsLabelProvider());
+
+ setSelectionHistory(new ResourceSelectionHistory());
+ }
+
+ /**
+ * By default, we are returning the standard list label provider
+ *
+ * Override in subclasses if you want different behavior
+ *
+ * @return
+ */
+ protected ILabelProvider createDetailsLabelProvider() {
+ return createListLabelProvider();
+ }
+
+ /**
+ *
+ * @return
+ */
+ protected ILabelProvider createListLabelProvider() {
+ return new FilteredCdmResourceLabelProvider();
+ }
+
+ /**
+ * Override in subclasses.
+ * Will run before initModel()
+ */
+ protected void init() {
+
+ }
+
+ /**
+ * <p>getSelectionFromDialog</p>
+ *
+ * @param dialog a {@link eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog} object.
+ * @param <TYPE> a TYPE object.
+ * @return a TYPE object.
+ */
+ protected static <TYPE extends IEnumTerm> TYPE getSelectionFromDialog(AbstractFilteredCdmEnumSelectionDialog<TYPE> dialog) {
+
+ int result = dialog.open();
+
+ if (result == Window.CANCEL) {
+ return null;
+ }
+
+ return dialog.getSelectedEnumTerm();
+ }
+
+
+ /**
+ * <p>getTitle</p>
+ *
+ * @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();
+ }
+
+ /**
+ * <p>initModel</p>
+ */
+ abstract protected void initModel();
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createFilter()
+ */
+ /** {@inheritDoc} */
+ @Override
+ protected ItemsFilter createFilter() {
+ return new ItemsFilter() {
+
+ /**
+ * Always returns false to enforce refiltering even if the pattern is equal
+ */
+ @Override
+ public boolean equalsFilter(ItemsFilter filter) {
+ return false;
+ }
+
+ @Override
+ public boolean isConsistentItem(Object item) {
+ return false;
+ }
+
+ @Override
+ public boolean matchItem(Object item) {
+ String text = null;
+ if(item instanceof IEnumTerm){
+ text = ((IEnumTerm) item).getMessage();
+ }else if(item instanceof String){
+ text = (String) item;
+ }
+ return text != null ? matches(text) : false;
+ }
+
+ };
+ }
+
+
+ /**
+ * Set the filter input to the Agent's title cache
+ *
+ * @param cdmObject a T object.
+ */
+ protected void setPattern(T cdmObject) {
+ // FilteredSelection does some very tricky caching to make sure it
+ // runs with high performance.
+ // This works for most use cases, but we want to change the model while the dialog is open
+ // and all the clever caching prevents the content provider from knowing that the model has changed
+ // I am aware, that this is a hack, but the FilteredSelectionDialog API does not offer a convenient
+ // way to solve the problem.
+ try {
+ Field lastCompletedFilter = this.getClass().getSuperclass().getSuperclass().getDeclaredField("lastCompletedFilter");
+ lastCompletedFilter.setAccessible(true);
+ lastCompletedFilter.set(this, null);
+ } catch (SecurityException e) {
+ StoreUtil.error(getClass(), e);
+ } catch (NoSuchFieldException e) {
+ StoreUtil.error(getClass(), e);
+ } catch (IllegalArgumentException e) {
+ StoreUtil.error(getClass(), e);
+ } catch (IllegalAccessException e) {
+ StoreUtil.error(getClass(), e);
+ }
+
+ // this also is not the nicest way to do it.
+ // I am still amazed, that FilteredSelectionDialog does not offer any methods to change its data
+ // once it was opened. Am I doing it wrong?
+ String pattern = getTitle(cdmObject);
+ ((Text) getPatternControl()).setText(pattern);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#fillContentProvider(org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.AbstractContentProvider, org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ItemsFilter, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ /** {@inheritDoc} */
+ @Override
+ protected void fillContentProvider(AbstractContentProvider contentProvider,
+ ItemsFilter itemsFilter, IProgressMonitor progressMonitor)
+ throws CoreException {
+ try {
+ if(model != null){
+ progressMonitor.beginTask("Looking for entities", model.size());
+ for(T element : model){
+ contentProvider.add(element, itemsFilter);
+ if (progressMonitor.isCanceled()) {
+ throw new OperationCanceledException();
+ }
+ progressMonitor.worked(1);
+ }
+ }else{
+ StoreUtil.warn(getClass(), "Model for Filtered Selection is null:" + this.getClass().getSimpleName());
+ }
+ }
+ finally {
+ progressMonitor.done();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getDialogSettings()
+ */
+ /** {@inheritDoc} */
+ @Override
+ protected IDialogSettings getDialogSettings() {
+ IDialogSettings settings = TaxeditorStorePlugin.getDefault().getDialogSettings().getSection(getSettings());
+
+ if (settings == null) {
+ settings = TaxeditorStorePlugin.getDefault().getDialogSettings().addNewSection(getSettings());
+ }
+ return settings;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getElementName(java.lang.Object)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public String getElementName(Object item) {
+ return ((IEnumTerm) item).getMessage();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getItemsComparator()
+ */
+ /** {@inheritDoc} */
+ @Override
+ protected Comparator getItemsComparator() {
+ return new Comparator<IEnumTerm>() {
+ public int compare(IEnumTerm entity1,
+ IEnumTerm entity2) {
+ Collator collator = Collator.getInstance();
+ return collator.compare(entity1.getMessage(), entity2.getMessage());
+ }
+ };
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#validateItem(java.lang.Object)
+ */
+ /** {@inheritDoc} */
+ @Override
+ protected IStatus validateItem(Object item) {
+ return Status.OK_STATUS;
+ }
+
+ /**
+ * <p>getSelectedUuidAndTitleCache</p>
+ *
+ * @return a {@link eu.etaxonomy.cdm.model.common.UuidAndTitleCache} object.
+ */
+ protected T getSelectedEnumTerm() {
+ Object[] result = getResult();
+ return result[0] == null ? null : (T) result[0];
+ }
+
+ /**
+ * <p>Getter for the field <code>settings</code>.</p>
+ *
+ * @return a {@link java.lang.String} object.
+ */
+ public String getSettings() {
+ if(settings == null){
+ throw new IllegalStateException("No SETTINGS set.");
+ }
+ return settings;
+ }
+
+ /**
+ *
+ * @author n.hoffmann
+ * @created Oct 19, 2009
+ * @version 1.0
+ */
+ private class ResourceSelectionHistory extends SelectionHistory {
+ /*
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.SelectionHistory#restoreItemFromMemento(org.eclipse.ui.IMemento)
+ */
+ protected Object restoreItemFromMemento(IMemento element) {
+ return element.getString("resource"); //$NON-NLS-1$
+ }
+ /*
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.SelectionHistory#storeItemToMemento(java.lang.Object,
+ * org.eclipse.ui.IMemento)
+ */
+ protected void storeItemToMemento(Object item, IMemento element) {
+ element.putString("resource", item.toString()); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * <p>getNewWizardLinkText</p>
+ *
+ * @return a {@link java.lang.String} object.
+ */
+ protected abstract String getNewWizardLinkText();
+
+ /**
+ * <p>getNewEntityWizard</p>
+ * @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();
+ }
+ }
+ };
+ }
+
+ /**
+ * <p>getConversationHolder</p>
+ *
+ * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+ */
+ public ConversationHolder getConversationHolder() {
+ return conversation;
+ }
+
+ /** {@inheritDoc} */
+ public void update(CdmDataChangeMap changeEvents) {}
+
+ }
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;
/**
// $Id$
/**
* Copyright (C) 2007 EDIT
--* European Distributed Institute of Taxonomy
++* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
--*
++*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import 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;
* @version 1.0
*/
public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelectionDialog<Reference> {
--
++
/**
* <p>select</p>
*
*/
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);
}
--
++
/**
* <p>Constructor for FilteredReferenceSelectionDialog.</p>
*
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)
*/
/** {@inheritDoc} */
@Override
-- protected void initModel() {
++ protected void initModel() {
model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache();
}
--
++
/** {@inheritDoc} */
@Override
}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) {
protected String getNewWizardLinkText() {
return "Click <A>here</A> to create a new reference.";
}
--
++
}
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;
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;
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;
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;
+ }
- /**
- * <p>
- * createIntegerTextWithLabelElement
- * </p>
- *
- * @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.
+ /**
+ * <p>
+ * createIntegerTextWithLabelElement
+ * </p>
+ *
+ * @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;
- }
-
- /**
- * <p>
- * createFloatTextWithLabelElement
- * </p>
- *
- * @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;
+ }
-
- /**
- * <p>
- * createLanguageStringWithLabelElement
- * </p>
- *
- * @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.
- */
+ /**
+ * <p>
+ * createLanguageStringWithLabelElement
+ * </p>
+ *
+ * @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,
ICdmFormElement parentElement, String labelString, T selection, int style) {
TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termComboType, labelString,
selection, style);
- adapt(element);
- parentElement.addElement(element);
- return element;
- }
-
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
+ /**
+ * <p>
+ * createTermComboElement
+ * </p>
- *
++ *
+ * @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 <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
- TermType termType,
++ TermType termType,
+ ICdmFormElement parentElement,
- String labelString,
- T selection,
++ String labelString,
++ T selection,
+ int style) {
+ TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termType, labelString, selection, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
- /**
- * <p>
- * createEnumComboElement
- * </p>
- *
- * @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.
- */
+ /**
+ * <p>
+ * createEnumComboElement
+ * </p>
+ *
+ * @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 <T extends IDefinedTerm> EnumComboElement<T> createEnumComboElement(Class<T> enumComboType,
- ICdmFormElement parentElement, int style) {
+ public <T extends IEnumTerm> EnumComboElement<T> createEnumComboElement(
+ Class<T> enumComboType, ICdmFormElement parentElement,
+ int style) {
- EnumComboElement<T> element = new EnumComboElement<T>(this, parentElement, enumComboType, style);
- adapt(element);
- parentElement.addElement(element);
- return element;
- }
+ EnumComboElement<T> element = new EnumComboElement<T>(this, parentElement, enumComboType, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
- /**
- * <p>
- * createBrowserElement
- * </p>
- *
- * @param imageUri
- * a {@link java.net.URI} object.
- * @param style
- * a int.
- * @param parentElement
- * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
- * object.
+ /**
+ * <p>
+ * createBrowserElement
+ * </p>
+ *
+ * @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;
+ }
- /**
- * <p>
- * createImageElement
- * </p>
- *
- * @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.
- */
+ /**
+ * <p>
+ * createImageElement
+ * </p>
+ *
+ * @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;
+ }
- /**
- * <p>
- * createTextActionElement
- * </p>
- *
- * @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.
- */
+ /**
+ * <p>
+ * createTextActionElement
+ * </p>
+ *
+ * @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;
+ }
- /**
- * <p>
- * createCheckbox
- * </p>
- *
- * @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.
+ /**
+ * <p>
+ * createCheckbox
+ * </p>
+ *
+ * @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;
+ }
+ }
+ }
- /**
- * <p>
- * createToggleableTextField
- * </p>
- *
- * @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.
- */
+ /**
+ * <p>
+ * createToggleableTextField
+ * </p>
+ *
+ * @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;
+ }
- /**
- * <p>
- * createTimePeriodElement
- * </p>
- *
- * @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.
- */
+ /**
+ * <p>
+ * createTimePeriodElement
+ * </p>
+ *
+ * @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;
+ }
+
+ /**
+ * <p>
+ * createGatheringEventUnitElement
+ * </p>
- *
++ *
+ * @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;
+ }
+
- /**
- * <p>
- * createPointElement
- * </p>
- *
- * @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.
- */
+ /**
+ * <p>
+ * createPointElement
+ * </p>
+ *
+ * @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;
+ }
- /**
- * <p>
- * createDateDetailSection
- * </p>
- *
- * @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.
- */
+ /**
+ * <p>
+ * createDateDetailSection
+ * </p>
+ *
+ * @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;
- }
-
- /**
- * <p>
- * createDateDetailSection
- * </p>
- *
- * @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;
- }
-
- /**
- * <p>
- * createPartialElement
- * </p>
- *
- * @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;
- }
-
- /**
- * <p>
- * addSelectionListener
- * </p>
- *
- * @param listener
- * a {@link org.eclipse.swt.events.SelectionListener} object.
- */
- public void addSelectionListener(SelectionListener listener) {
- selectionListenerList.add(listener);
- }
-
- /**
- * <p>
- * removeSelectionListener
- * </p>
- *
- * @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);
- }
- }
-
- /**
- * <p>
- * addPropertyChangeListener
- * </p>
- *
- * @param listener
- * a {@link org.eclipse.jface.util.IPropertyChangeListener}
- * object.
- */
- public void addPropertyChangeListener(IPropertyChangeListener listener) {
- if(propertyChangeListeners.contains(listener)){
- return;
- }
- propertyChangeListeners.add(0, listener);
- }
-
- /**
- * <p>
- * removePropertyChangeListener
- * </p>
- *
- * @param listener
- * a {@link org.eclipse.jface.util.IPropertyChangeListener}
- * object.
- */
- public void removePropertyChangeListener(IPropertyChangeListener listener) {
- propertyChangeListeners.remove(listener);
- }
-
- /**
- * <p>
- * createHorizontalSeparator
- * </p>
- *
- * @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;
- }
-
- /**
- * <p>
- * createVersionElement
- * </p>
- *
- * @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;
- }
-
-
- /**
- * <p>
- * createVersionSection
- * </p>
- *
- * @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;
- }
-
- /**
- * <p>
- * createEmptyElement
- * </p>
- *
- * @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;
- }
-
- /**
- * <p>
- * createHeadlineSection
- * </p>
- *
- * @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
+ /**
+ * <p>
- *
++ * createDateDetailSection
+ * </p>
- * @param parserProblem
- * a {@link eu.etaxonomy.cdm.strategy.parser.ParserProblem}
- * object.
++ *
+ * @param parentElement
+ * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+ * object.
- * @return a
- * {@link eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessageElement}
+ * @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;
++ }
++
+ /**
+ * <p>
+ * createPartialElement
+ * </p>
+ *
+ * @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;
+ }
+
+ /**
+ * <p>
+ * addSelectionListener
+ * </p>
+ *
+ * @param listener
+ * a {@link org.eclipse.swt.events.SelectionListener} object.
+ */
+ public void addSelectionListener(SelectionListener listener) {
+ selectionListenerList.add(listener);
+ }
+
+ /**
+ * <p>
+ * removeSelectionListener
+ * </p>
+ *
+ * @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);
+ }
+ }
+
+ /**
+ * <p>
+ * addPropertyChangeListener
+ * </p>
+ *
+ * @param listener
+ * a {@link org.eclipse.jface.util.IPropertyChangeListener}
+ * object.
+ */
+ public void addPropertyChangeListener(IPropertyChangeListener listener) {
+ if (propertyChangeListeners.contains(listener)) {
+ return;
+ }
+ propertyChangeListeners.add(0, listener);
+ }
+
+ /**
+ * <p>
+ * removePropertyChangeListener
+ * </p>
+ *
+ * @param listener
+ * a {@link org.eclipse.jface.util.IPropertyChangeListener}
+ * object.
+ */
+ public void removePropertyChangeListener(IPropertyChangeListener listener) {
+ propertyChangeListeners.remove(listener);
+ }
+
+ /**
+ * @return the propertyChangeListeners
+ */
+ public List<IPropertyChangeListener> getPropertyChangeListeners() {
+ return propertyChangeListeners;
+ }
+
+ /**
+ * <p>
+ * createHorizontalSeparator
+ * </p>
+ *
+ * @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;
+ }
+
+ /**
+ * <p>
+ * createVersionElement
+ * </p>
+ *
+ * @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;
+ }
+
+ /**
+ * <p>
+ * createVersionSection
+ * </p>
+ *
+ * @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;
+ }
+
+ /**
+ * <p>
+ * createEmptyElement
+ * </p>
+ *
+ * @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;
+ }
+
+ /**
+ * <p>
+ * createHeadlineSection
+ * </p>
+ *
+ * @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;
+ }
+
+ /**
+ * <p>
+ * createParsingMessageElement
+ * </p>
+ *
+ * @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);
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);
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;
+ }
- /**
- * <p>
- * Creates a selection element for the given type T.
- * </p>
- * <p>
- * <strong>Selection elements not handled by this method:</strong>
- * <ul>
+ public void createNamedAreaFieldController(AbstractFormSection parentElement, NamedArea namedArea, SelectionListener removeListener){
+// Object entity = HibernateProxyHelper.deproxy(versionableEntity); TODO deproxy necessary??
+ NamedAreaFieldController element = new NamedAreaFieldController(this, parentElement, namedArea, removeListener, SWT.NONE);
+ adapt(element);
+ parentElement.addElement(element);
+ }
+
+ /**
+ * <p>
+ * Creates a selection element for the given type T.
+ * </p>
+ * <p>
+ * <strong>Selection elements not handled by this method:</strong>
+ * <ul>
* <li>{@link TaxonNodeSelectionElement} see
* {@link #createTaxonNodeSelectionElement(ConversationHolder, ICdmFormElement, String, TaxonNode, int, int)}
* </li>
import eu.etaxonomy.cdm.common.CdmUtils;
import eu.etaxonomy.cdm.model.common.TimePeriod;
+ import eu.etaxonomy.cdm.strategy.parser.TimePeriodParser;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
/**
* <p>
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());
}
--- /dev/null
- * European Distributed Institute of Taxonomy
+ // $Id$
+ /**
+ * Copyright (C) 2007 EDIT
- *
++ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
-import eu.etaxonomy.cdm.model.common.TimePeriod;
-import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
++ *
+ * 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.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+
+ /**
+ * <p>
+ * GatheringEventUnitElement class.
+ * </p>
-
++ *
+ * @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;
+
+ /**
+ * <p>
+ * Constructor for TimePeriodElement.
+ * </p>
- ICdmFormElement parentElement,
++ *
+ * @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,
- DerivedUnitFacade gatheringEvent,
++ ICdmFormElement parentElement,
+ String labelString,
-
- addControl(section_minMaxText);
++ 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);
+
+ section_minMaxText.setEntity(gatheringEvent);
- if (eventSource == section_minMaxText) {
++
+ 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) {
+ 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);
+ }
+ }
+
--- /dev/null
- * European Distributed Institute of Taxonomy
+ // $Id$
+ /**
+ * Copyright (C) 2007 EDIT
- *
++ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
-import org.eclipse.swt.layout.RowLayout;
++ *
+ * 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 eu.etaxonomy.cdm.common.CdmUtils;
-import eu.etaxonomy.cdm.model.common.TimePeriod;
-import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
+
+ import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
- *
++import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+
+ /**
+ * <p>
+ * MinMaxTextSection class.
+ * </p>
-
++ *
+ * @author c.mathew
+ * @created 23 Jul 2013
+ * @version 1.0
+ */
+ public class MinMaxTextSection extends AbstractFormSection<DerivedUnitFacade> {
+
+ private final TextWithLabelElement text_freeText;
+ private final NumberWithLabelElement text_minVal;
+ private final NumberWithLabelElement text_maxVal;
+ private int cursorPosition;
- *
++
+ // unit types handled by this section
+ public enum UnitType {
+ ELEVATION,
+ DIST_TO_GROUND,
+ DIST_TO_WATER
+ }
+
+ private UnitType unitType = UnitType.ELEVATION;
+
+ /**
+ * <p>
+ * Constructor for DateDetailSection.
+ * </p>
-
++ *
+ * @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);
+ }
+
+ /**
+ * <p>
+ * Setter for the field <code>timePeriod</code>.
+ * </p>
- break;
++ *
+ * @param timePeriod
+ * a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object.
+ */
+ @Override
+ public void setEntity(DerivedUnitFacade gatheringEvent) {
+ super.setEntity(gatheringEvent);
+ updateValues();
+ }
+
+ private void updateValues() {
+ if(getEntity() != null) {
+ switch(unitType) {
+ case ELEVATION:
+ if(getEntity().getAbsoluteElevation() != null) {
+ text_minVal.setNumber(getEntity().getAbsoluteElevation());
+ }
+ if(getEntity().getAbsoluteElevationMaximum() != null) {
+ text_maxVal.setNumber(getEntity().getAbsoluteElevation());
+ }
+ if(getEntity().getAbsoluteElevationText() != null) {
+ text_freeText.setText(getEntity().getAbsoluteElevationText());
+ }
+ break;
+ case DIST_TO_GROUND:
+ if(getEntity().getDistanceToGround() != null) {
+ text_minVal.setNumber(getEntity().getDistanceToGround());
+ }
+ if(getEntity().getDistanceToGroundMax() != null) {
+ text_maxVal.setNumber(getEntity().getDistanceToGroundMax());
+ }
+ if(getEntity().getDistanceToGroundText() != null) {
+ text_freeText.setText(getEntity().getDistanceToGroundText());
+ }
- break;
++ break;
+ case DIST_TO_WATER:
+ if(getEntity().getDistanceToWaterSurface() != null) {
+ text_minVal.setNumber(getEntity().getDistanceToWaterSurface());
+ }
+ if(getEntity().getDistanceToWaterSurfaceMax() != null) {
+ text_maxVal.setNumber(getEntity().getDistanceToWaterSurfaceMax());
+ }
+ if(getEntity().getDistanceToWaterSurfaceText() != null) {
+ text_freeText.setText(getEntity().getDistanceToWaterSurfaceText());
+ }
- if (eventSource == text_minVal) {
++ break;
+ default:
+ break;
+ }
+
+ }
+ }
+ /** {@inheritDoc} */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ if (event == null) {
+ return;
+ }
+ Object eventSource = event.getSource();
+
+ if (getElements().contains(eventSource)) {
+ if (event instanceof CdmPropertyChangeEvent) {
+ if (((CdmPropertyChangeEvent) event).hasException()) {
+ handleException((CdmPropertyChangeEvent) event);
+ return;
+ }
+ }
+ handleEvent(eventSource);
+ }
+ }
+
+ /**
+ * @param event
+ */
+ private void handleException(CdmPropertyChangeEvent event) {
+ firePropertyChangeEvent(new CdmPropertyChangeEvent(this,
+ event.getException()));
+ }
+
+ private void handleEvent(Object eventSource) {
- updateFreetext();
- }
++ if (eventSource == text_minVal) {
+ updateMinimum();
+ } else if (eventSource == text_maxVal) {
+ updateMaximum();
+ } else if (eventSource == text_freeText) {
-
++ updateFreetext();
++ }
+ firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+ }
+
+
- *
++
+ /*
+ * (non-Javadoc)
-
++ *
+ * @see eu.etaxonomy.taxeditor.forms.AbstractFormSection#dispose()
+ */
+ /** {@inheritDoc} */
+ @Override
+ public void dispose() {
+ formFactory.removePropertyChangeListener(this);
+ super.dispose();
+ }
- break;
++
+ private void updateMinimum() {
+ switch(unitType) {
+ case ELEVATION:
+ getEntity().setAbsoluteElevation(text_minVal.getInteger());
+ break;
+ case DIST_TO_GROUND:
+ getEntity().setDistanceToGround(text_minVal.getDouble());
- break;
++ break;
+ case DIST_TO_WATER:
+ getEntity().setDistanceToWaterSurface(text_minVal.getDouble());
-
++ break;
+ }
+ }
- return getEntity().getAbsoluteElevation();
++
+ private Number getMinimum() {
+ if(getEntity() == null) {
+ return null;
+ }
+ switch(unitType) {
+ case ELEVATION:
- return getEntity().getDistanceToGround();
++ return getEntity().getAbsoluteElevation();
+ case DIST_TO_GROUND:
- return getEntity().getDistanceToWaterSurface();
++ return getEntity().getDistanceToGround();
+ case DIST_TO_WATER:
-
++ return getEntity().getDistanceToWaterSurface();
+ }
+ return null;
+ }
- break;
++
+ private void updateMaximum() {
+ switch(unitType) {
+ case ELEVATION:
+ getEntity().setAbsoluteElevationMax(text_maxVal.getInteger());
+ break;
+ case DIST_TO_GROUND:
+ getEntity().setDistanceToGroundMax(text_maxVal.getDouble());
- break;
++ break;
+ case DIST_TO_WATER:
+ getEntity().setDistanceToWaterSurfaceMax(text_maxVal.getDouble());
-
++ break;
+ }
+ }
- return getEntity().getAbsoluteElevationMaximum();
++
+ private Number getMaximum() {
+ if(getEntity() == null) {
+ return null;
+ }
+ switch(unitType) {
+ case ELEVATION:
- return getEntity().getDistanceToGroundMax();
++ return getEntity().getAbsoluteElevationMaximum();
+ case DIST_TO_GROUND:
- return getEntity().getDistanceToWaterSurfaceMax();
++ return getEntity().getDistanceToGroundMax();
+ case DIST_TO_WATER:
-
++ return getEntity().getDistanceToWaterSurfaceMax();
+ }
+ return null;
+ }
- break;
++
+ private void updateFreetext() {
+ switch(unitType) {
+ case ELEVATION:
+ getEntity().setAbsoluteElevationText(text_freeText.getText());
+ break;
+ case DIST_TO_GROUND:
+ getEntity().setDistanceToGroundText(text_freeText.getText());
- break;
++ break;
+ case DIST_TO_WATER:
+ getEntity().setDistanceToWaterSurfaceText(text_freeText.getText());
- }
-
++ break;
+ }
- return getEntity().getAbsoluteElevationText();
++ }
++
+ private String getFreetext() {
+ if(getEntity() == null) {
+ return null;
+ }
+ switch(unitType) {
+ case ELEVATION:
- return getEntity().getDistanceToGroundText();
++ return getEntity().getAbsoluteElevationText();
+ case DIST_TO_GROUND:
- return getEntity().getDistanceToWaterSurfaceText();
++ return getEntity().getDistanceToGroundText();
+ case DIST_TO_WATER:
++ return getEntity().getDistanceToWaterSurfaceText();
+ }
+ return null;
+ }
+
+ }
+
*/
public NumberWithLabelElement(CdmFormFactory toolkit,
ICdmFormElement parentElement, String labelString,
- Integer initialInteger, int style) {
+ Number initialNumber, int style) {
super(toolkit, parentElement, labelString, null, null, style);
- setInteger(initialInteger);
+ setNumber(initialNumber);
}
-
-
+
- /**
- * <p>Constructor for NumberWithLabelElement.</p>
- *
- * @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);
- }
+
/**
- * <p>setInteger</p>
+ * <p>setNumber</p>
*
- * @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));
- }
-
- /**
- * <p>setFloat</p>
- *
- * @param number a {@link java.lang.Float} object.
- */
- public void setFloat(Float number) {
+ public void setNumber(Number number) {
super.setText(getStringRepresentation(number));
}
-
+
/**
* <p>getInteger</p>
*
String text = super.getText();
return new Float(text);
}
-
+
+ /**
+ * <p>getDouble</p>
+ *
+ * @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();
// $Id$
/**
* Copyright (C) 2007 EDIT
-- * European Distributed Institute of Taxonomy
++ * European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-- *
++ *
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import 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;
* <p>
* TaxonNodeDetailElement class.
* </p>
-- *
++ *
* @author n.hoffmann
* @created Sep 27, 2010
* @version 1.0
*/
--public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode> {
++public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeNode> {
private EntitySelectionElement<Classification> selection_classification;
private TaxonNodeSelectionElement selection_parentTaxonNode;
-- private ITreeNode parentTreeNode;
++ private ITaxonTreeNode parentTreeNode;
private EntitySelectionElement<Taxon> selection_reuseExistingTaxon;
* <p>
* Constructor for TaxonNodeDetailElement.
* </p>
-- *
++ *
* @param formFactory
* a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
* object.
/*
* (non-Javadoc)
-- *
++ *
* @see
* eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
* (eu.etaxonomy.taxeditor.forms.ICdmFormElement,
/** {@inheritDoc} */
@Override
protected void createControls(ICdmFormElement formElement,
-- ITreeNode entity, int style) {
++ ITaxonTreeNode entity, int style) {
selection_classification = formFactory
.createSelectionElement(Classification.class,
getConversationHolder(), formElement, "Classification",
/*
* (non-Javadoc)
-- *
++ *
* @see
* eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
* .lang.Object)
* <p>
* Getter for the field <code>classification</code>.
* </p>
-- *
++ *
* @return the classification
*/
public Classification getClassification() {
* <p>
* isOpenInEditor
* </p>
-- *
++ *
* @return the openInEditor
*/
public boolean isOpenInEditor() {
* <p>
* Getter for the field <code>parentTreeNode</code>.
* </p>
-- *
-- * @return a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
++ *
++ * @return a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
*/
-- public ITreeNode getParentTreeNode() {
++ public ITaxonTreeNode getParentTreeNode() {
return parentTreeNode;
}
* <p>
* Getter for the field <code>taxon</code>.
* </p>
-- *
++ *
* @return the taxon
*/
public Taxon getTaxon() {
* @param parentTreeNode
* the parentTreeNode to set
*/
-- private void setParentTreeNode(ITreeNode parentTreeNode) {
++ private void setParentTreeNode(ITaxonTreeNode parentTreeNode) {
this.parentTreeNode = parentTreeNode;
if (parentTreeNode instanceof Classification) {
selection_parentTaxonNode.setEntity((TaxonNode) parentTreeNode);
selection_parentTaxonNode.setClassification(classification);
} else if(parentTreeNode == null){
-- this.parentTreeNode = selection_classification.getEntity();
++ this.parentTreeNode = selection_classification.getEntity();
}
}
* <p>
* isComplete
* </p>
-- *
++ *
* @return the complete
*/
public boolean isComplete() {
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;
/**
* <p>
* @created Sep 15, 2009
* @version 1.0
*/
--public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITreeNode> {
++public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeNode> {
/**
* <p>
* 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");
}
* Getter for the field <code>parentTreeNode</code>.
* </p>
*
-- * @return a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
++ * @return a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
*/
-- public ITreeNode getParentTreeNode() {
++ public ITaxonTreeNode getParentTreeNode() {
return ((TaxonNodeDetailElement) getDetailElement())
.getParentTreeNode();
}
import org.eclipse.swt.events.SelectionListener;
- import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
- import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.dialog.selection.DerivedUnitSelectionDialog;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
/**
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionListener;
- import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
+ import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractOriginalSourceElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
import java.util.Collection;
-
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
- import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+ import eu.etaxonomy.cdm.model.common.OriginalSourceType;
-import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.OriginalSourceTypeSelectionDialog;
++import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
/**
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+ import eu.etaxonomy.cdm.model.common.OriginalSourceType;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+ import eu.etaxonomy.taxeditor.ui.dialog.selection.OriginalSourceTypeSelectionDialog;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
/**
import org.eclipse.swt.events.SelectionListener;
- import eu.etaxonomy.cdm.model.description.Modifier;
-
+ import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import java.util.Collection;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+ import eu.etaxonomy.cdm.model.common.DefinedTerm;
+ import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.description.IModifiable;
- import eu.etaxonomy.cdm.model.description.Modifier;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
/**
import org.eclipse.swt.events.SelectionListener;
- import eu.etaxonomy.cdm.model.description.Scope;
+ import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import java.util.Collection;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
- import eu.etaxonomy.cdm.model.description.Scope;
+ import eu.etaxonomy.cdm.model.common.DefinedTerm;
+ import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
/**
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
- import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
import java.util.Collection;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+ import eu.etaxonomy.cdm.model.common.DefinedTerm;
+ import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.description.PolytomousKey;
- import eu.etaxonomy.cdm.model.description.Scope;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
/**
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
- import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
- import eu.etaxonomy.cdm.model.occurrence.Specimen;
+ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
- import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
import org.eclipse.jface.viewers.ISelectionProvider;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
- import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
- import eu.etaxonomy.taxeditor.ui.section.ICdmDetailElement;
/**
* @author n.hoffmann
import org.eclipse.swt.events.SelectionListener;
-
+ import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
- import eu.etaxonomy.cdm.model.occurrence.DeterminationModifier;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
package eu.etaxonomy.taxeditor.ui.section.occurrence;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
- import eu.etaxonomy.cdm.model.description.Sex;
- import eu.etaxonomy.cdm.model.description.Stage;
+ import eu.etaxonomy.cdm.model.common.DefinedTerm;
-import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import org.eclipse.ui.forms.widgets.ExpandableComposite;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
--import eu.etaxonomy.taxeditor.model.AbstractUtility;
--import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+ import eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement;
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
- import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
+ import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection;
-import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
- import eu.etaxonomy.taxeditor.ui.section.ICdmDetailElement;
/**
* <p>GatheringEventDetailSection class.</p>
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.cdm.model.occurrence.Collection;
+ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+ import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.PointElement;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
- import eu.etaxonomy.taxeditor.ui.section.ICdmDetailElement;
/**
* @author n.hoffmann
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+ import eu.etaxonomy.cdm.model.common.OriginalSourceType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
/**
import org.eclipse.swt.events.SelectionListener;
- import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
- import eu.etaxonomy.cdm.model.occurrence.Specimen;
+ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
- import eu.etaxonomy.cdm.model.occurrence.Specimen;
+ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
/**
// $Id$
/**
* Copyright (C) 2007 EDIT
--* European Distributed Institute of Taxonomy
++* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
--*
++*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import org.eclipse.swt.events.SelectionListener;
import eu.etaxonomy.cdm.model.common.OriginalSourceBase;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+ import eu.etaxonomy.cdm.model.common.OriginalSourceType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+ import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
/**
int style) {
super(formFactory, section, element, removeListener, style);
}
--
++
/** {@inheritDoc} */
@Override
public void init() {
super.init();
setHasOriginalNameString(true);
}
--
++
/** {@inheritDoc} */
@Override
public void createControls(ICdmFormElement formElement, int style) {
- formElement, style);
+ combo_origsourcetype = formFactory
+ .createEnumComboElement(OriginalSourceType.class,
++ formElement, style);
text_idInSource = formFactory.createTextWithLabelElement(formElement, "Id In Source", null, style);
text_idNamespace = formFactory.createTextWithLabelElement(formElement, "ID Namespace", null, style);
super.createControls(formElement, style);
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.media.Rights;
- import eu.etaxonomy.cdm.model.media.RightsTerm;
+ import eu.etaxonomy.cdm.model.media.RightsType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.DerivedUnitSelectionDialog;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+ import eu.etaxonomy.cdm.model.common.OriginalSourceType;
+
+ import eu.etaxonomy.taxeditor.ui.dialog.selection.OriginalSourceTypeSelectionDialog;;
/**
* <p>SourceSection class.</p>
/**\r
* Copyright (C) 2011 EDIT\r
--* European Distributed Institute of Taxonomy \r
++* European Distributed Institute of Taxonomy\r
* http://www.e-taxonomy.eu\r
--* \r
++*\r
* The contents of this file are subject to the Mozilla Public License Version 1.1\r
* See LICENSE.TXT at the top of this package for the full license terms.\r
*/\r
import eu.etaxonomy.taxeditor.editor.UsageTermCollection;\r
import eu.etaxonomy.taxeditor.store.CdmStore;\r
import eu.etaxonomy.taxeditor.store.TermStore;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;\r
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
\r
-- \r
++\r
/**\r
* The context manager mediates context start/stop and workbench shutdowns to all registered listeners.\r
*\r
-- * @author a.theys \r
++ * @author a.theys\r
* @created mar 13, 2012\r
* @version 1.0\r
*/\r
combo_UseCategory = formFactory.createTermComboElement(State.class, this, UsageTermCollection.useCategoryVocabularyLabel, null, style);\r
combo_UseCategory.addSelectionListener(this);\r
combo_UseSubCategory = formFactory.createTermComboElement(State.class, this, UsageTermCollection.useSubCategoryVocabularyLabel, null, style);\r
- combo_PlantPart = formFactory.createTermComboElement(Modifier.class, this, UsageTermCollection.plantPartLabel, null, style);\r
- combo_HumanGroup = formFactory.createTermComboElement(Modifier.class, this, UsageTermCollection.humanGroupLabel, null, style);\r
+ combo_PlantPart = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.plantPartLabel, null, style);\r
+ combo_HumanGroup = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.humanGroupLabel, null, style);\r
combo_HumanGroup.addSelectionListener(this);\r
- combo_EthnicGroup = formFactory.createTermComboElement(Modifier.class, this, UsageTermCollection.ethnicGroupLabel, null, style);\r
- combo_Country = formFactory.createTermComboElement(Modifier.class, this, UsageTermCollection.countryLabel, null, style);\r
- \r
+ combo_EthnicGroup = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.ethnicGroupLabel, null, style);\r
+ combo_Country = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.countryLabel, null, style);\r
- \r
++\r
\r
List<State> termsUseCategory = setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false));\r
combo_UseCategory.setTerms(termsUseCategory);\r
combo_UseCategory.setSelection(stateSelection(UsageTermCollection.useCategoryVocabularyLabel));\r
-- \r
++\r
List<State> termsSubCategory = setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false), combo_UseCategory.getSelection());\r
-- \r
++\r
if (termsSubCategory != null) {\r
combo_UseSubCategory.setTerms(termsSubCategory);\r
combo_UseSubCategory.setSelection(stateSelection(UsageTermCollection.useSubCategoryVocabularyLabel));\r
else {\r
combo_UseSubCategory.setEnabled(false);\r
}\r
-- \r
- List<Modifier> plantPartsToAdd = setModifierComboTerms(TermStore.getTerms(Modifier.class, null, false), UsageTermCollection.plantPartLabel);\r
++\r
+ List<DefinedTerm> plantPartsToAdd = setModifierComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), UsageTermCollection.plantPartLabel);\r
combo_PlantPart.setTerms(plantPartsToAdd);\r
combo_PlantPart.setSelection(modifierSelection(UsageTermCollection.plantPartLabel));\r
-- \r
- List<Modifier> countriesToAdd = setModifierComboTerms(TermStore.getTerms(Modifier.class, null, false), UsageTermCollection.countryLabel);\r
++\r
+ List<DefinedTerm> countriesToAdd = setModifierComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), UsageTermCollection.countryLabel);\r
combo_Country.setTerms(countriesToAdd);\r
combo_Country.setSelection(modifierSelection(UsageTermCollection.countryLabel));\r
-- \r
- List<Modifier> humanGroupToAdd = setModifierComboTerms(TermStore.getTerms(Modifier.class, null, false), UsageTermCollection.humanGroupLabel);\r
++\r
+ List<DefinedTerm> humanGroupToAdd = setModifierComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), UsageTermCollection.humanGroupLabel);\r
combo_HumanGroup.setTerms(humanGroupToAdd);\r
combo_HumanGroup.setSelection(modifierSelection(UsageTermCollection.humanGroupLabel));\r
-- \r
- List<Modifier> ethnicGroupToAdd = setEthnicGroupComboTerms(TermStore.getTerms(Modifier.class, null, false), combo_HumanGroup.getSelection());\r
++\r
+ List<DefinedTerm> ethnicGroupToAdd = setEthnicGroupComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), combo_HumanGroup.getSelection());\r
if (ethnicGroupToAdd != null) {\r
combo_EthnicGroup.setTerms(ethnicGroupToAdd);\r
combo_EthnicGroup.setSelection(modifierSelection(UsageTermCollection.ethnicGroupLabel));\r
return null;\r
}\r
return null;\r
-- \r
++\r
}\r
-- \r
++\r
/**\r
* Returns the selected state\r
* @param comboCategory\r
return statedata.getState();\r
}\r
}\r
-- } \r
++ }\r
}\r
}\r
else {\r
return null;\r
}\r
return null;\r
-- \r
++\r
}\r
-- \r
++\r
/**\r
* This function sets the combo terms (Besides EthnicGroup\r
* @param listOfTerms\r
termsToAdd.add(term);\r
}\r
}\r
-- \r
++\r
return termsToAdd;\r
}\r
-- \r
++\r
\r
/**\r
* This function sets the Use Category combo term\r
State selectedUseCategory) {\r
List<State> termsToAdd = new ArrayList<State>();\r
if (combo_UseCategory.getSelection() != null) {\r
-- \r
++\r
for (State term : listOfTerms) {\r
if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals(selectedUseCategory.getTitleCache()))) {\r
termsToAdd.add(term);\r
else if ((term.getVocabulary() !=null) && (term.getVocabulary().getTitleCache().equals(selectedUseCategory.getTitleCache()))) {\r
termsToAdd.add(term);\r
}\r
-- \r
++\r
}\r
}\r
- else if (!getEntity().getStates().isEmpty()) {\r
- for (StateData stateData : getEntity().getStates()) {\r
+ else if (!getEntity().getStateData().isEmpty()) {\r
+ for (StateData stateData : getEntity().getStateData()) {\r
if (stateData.getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {\r
if ((stateData.getState() != null) && (stateData.getModifyingText().get(CdmStore.getDefaultLanguage()).getText() == UsageTermCollection.useCategoryVocabularyLabel)) {\r
for (State term : listOfTerms) {\r
termsToAdd.add(term);\r
}\r
}\r
-- \r
++\r
}\r
}\r
}\r
-- \r
++\r
}\r
-- \r
++\r
else {\r
return null;\r
}\r
\r
return termsToAdd;\r
}\r
-- \r
-- \r
++\r
++\r
/**\r
* This function sets the EthnicGroup combo term\r
* @param listOfTerms\r
* @param selectedHumangroup\r
* @return\r
*/\r
- private List<Modifier> setEthnicGroupComboTerms(List<Modifier> listOfTerms,\r
- Modifier selectedHumangroup) {\r
- List<Modifier> termsToAdd = new ArrayList<Modifier>();\r
+ private List<DefinedTerm> setEthnicGroupComboTerms(List<DefinedTerm> listOfTerms,\r
+ DefinedTerm selectedHumangroup) {\r
+ List<DefinedTerm> termsToAdd = new ArrayList<DefinedTerm>();\r
if (combo_HumanGroup.getSelection() != null) {\r
- for (Modifier term : listOfTerms) {\r
- \r
+ for (DefinedTerm term : listOfTerms) {\r
- \r
++\r
if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals(selectedHumangroup.getTitleCache()))) {\r
termsToAdd.add(term);\r
}\r
termsToAdd.add(modifier);\r
}\r
}\r
-- \r
++\r
}\r
}\r
}\r
} else {\r
return null;\r
}\r
-- \r
++\r
return termsToAdd;\r
}\r
\r
-- \r
++\r
/** {@inheritDoc} */\r
@Override\r
public void handleEvent(Object eventSource) {\r
if(!useCategoryStateDataCheck.getState().getTitleCache().equals(combo_UseCategory.getSelection().getTitleCache())) {\r
isUseCategoryChanged = true;\r
}\r
-- \r
++\r
}\r
}\r
- ListIterator<StateData> itrExistingStates = getEntity().getStates().listIterator();\r
+ ListIterator<StateData> itrExistingStates = getEntity().getStateData().listIterator();\r
while(itrExistingStates.hasNext()) {\r
StateData existingStateData = itrExistingStates.next();\r
Map<Language, LanguageString> modifyingText = existingStateData\r
stateData.setState(combo_UseCategory.getSelection());\r
stateData.putModifyingText(CdmStore.getDefaultLanguage(),UsageTermCollection.useCategoryVocabularyLabel);\r
itrExistingStates.add(stateData);\r
-- \r
++\r
}\r
} else if (modifyingText.get(CdmStore.getDefaultLanguage()).getText().equals(UsageTermCollection.useSubCategoryVocabularyLabel) && isUseCategoryChanged == true) {\r
itrExistingStates.remove();\r
}\r
}\r
}\r
-- \r
-- \r
++\r
++\r
if (isChanged == false) {\r
StateData stateData = StateData\r
.NewInstance(combo_UseCategory.getSelection());\r
stateData.setState(combo_UseCategory.getSelection());\r
stateData.putModifyingText(CdmStore.getDefaultLanguage(), UsageTermCollection.useCategoryVocabularyLabel);\r
- getEntity().addState(stateData);\r
+ getEntity().addStateData(stateData);\r
}\r
-- \r
++\r
combo_UseSubCategory.setEnabled(true);\r
-- \r
++\r
}\r
else {\r
- if (!getEntity().getStates().isEmpty()) {\r
- Iterator<StateData> itr = getEntity().getStates().iterator();\r
+ if (!getEntity().getStateData().isEmpty()) {\r
+ Iterator<StateData> itr = getEntity().getStateData().iterator();\r
while(itr.hasNext()) {\r
StateData stateToRemove = itr.next();\r
itr.remove();\r
}\r
}\r
}\r
-- \r
++\r
if (eventSource == combo_UseSubCategory) {\r
if (combo_UseSubCategory.getSelection() != null) {\r
boolean isChanged = false;\r
}\r
}\r
}\r
-- \r
++\r
if (isChanged == false){\r
StateData stateData = StateData\r
.NewInstance(combo_UseSubCategory.getSelection());\r
stateData.setState(combo_UseSubCategory.getSelection());\r
stateData.putModifyingText(CdmStore.getDefaultLanguage(), UsageTermCollection.useSubCategoryVocabularyLabel);\r
- getEntity().addState(stateData);\r
+ getEntity().addStateData(stateData);\r
}\r
-- \r
++\r
} else {\r
- if (!getEntity().getStates().isEmpty()) {\r
- Iterator<StateData> itrStateData = getEntity().getStates().iterator();\r
+ if (!getEntity().getStateData().isEmpty()) {\r
+ Iterator<StateData> itrStateData = getEntity().getStateData().iterator();\r
while(itrStateData.hasNext()) {\r
StateData existingStateData = itrStateData.next();\r
Map<Language, LanguageString> modifyingText = existingStateData\r
if(GetVocabularyType(modifier, UsageTermCollection.plantPartLabel)) {\r
itrExistingModifiers.remove();\r
}\r
-- \r
-- } \r
- Modifier plantPart = combo_PlantPart.getSelection();\r
++\r
++ }\r
+ DefinedTerm plantPart = combo_PlantPart.getSelection();\r
getEntity().addModifier(plantPart);\r
} else {\r
- Set<Modifier> modifiers = getEntity().getModifiers();\r
+ Set<DefinedTerm> modifiers = getEntity().getModifiers();\r
if(!modifiers.isEmpty()) {\r
- Iterator<Modifier> itr = modifiers.iterator();\r
+ Iterator<DefinedTerm> itr = modifiers.iterator();\r
while (itr.hasNext()) {\r
- Modifier currentMod = itr.next();\r
+ DefinedTerm currentMod = itr.next();\r
if(GetVocabularyType(currentMod, UsageTermCollection.plantPartLabel)) {\r
itr.remove();\r
}\r
}\r
}\r
-- \r
++\r
}\r
}\r
if (eventSource == combo_Country) {\r
if(GetVocabularyType(modifier, UsageTermCollection.countryLabel)) {\r
itrExistingModifiers.remove();\r
}\r
-- \r
++\r
}\r
- Modifier country = combo_Country.getSelection();\r
+ DefinedTerm country = combo_Country.getSelection();\r
getEntity().addModifier(country);\r
} else {\r
- Set<Modifier> modifiers = getEntity().getModifiers();\r
+ Set<DefinedTerm> modifiers = getEntity().getModifiers();\r
if(!modifiers.isEmpty()) {\r
- Iterator<Modifier> itr = modifiers.iterator();\r
+ Iterator<DefinedTerm> itr = modifiers.iterator();\r
while (itr.hasNext()) {\r
- Modifier currentMod = itr.next();\r
+ DefinedTerm currentMod = itr.next();\r
if(GetVocabularyType(currentMod, UsageTermCollection.countryLabel)) {\r
itr.remove();\r
}\r
if(modToCheck.equals(combo_HumanGroup.getSelection()) && (GetVocabularyType(modToCheck, UsageTermCollection.humanGroupLabel))) {\r
isHumanGroupChanged = false;\r
}\r
-- \r
-- \r
++\r
++\r
}\r
- Iterator<Modifier> itrExistingModifiers = getEntity().getModifiers().iterator();\r
+ Iterator<DefinedTerm> itrExistingModifiers = getEntity().getModifiers().iterator();\r
while (itrExistingModifiers.hasNext()) {\r
- Modifier modifier = itrExistingModifiers.next();\r
+ DefinedTerm modifier = itrExistingModifiers.next();\r
if((GetVocabularyType(modifier, UsageTermCollection.humanGroupLabel) || GetVocabularyType(modifier, UsageTermCollection.ethnicGroupLabel)) && isHumanGroupChanged) {\r
itrExistingModifiers.remove();\r
}\r
-- \r
-- } \r
++\r
++ }\r
if(isHumanGroupChanged){\r
- Modifier humanGroup = combo_HumanGroup.getSelection();\r
+ DefinedTerm humanGroup = combo_HumanGroup.getSelection();\r
getEntity().addModifier(humanGroup);\r
}\r
combo_EthnicGroup.setEnabled(true);\r
}\r
}\r
}\r
- List<Modifier> emptyListToResetComboBox = new ArrayList<Modifier>();\r
- Modifier emptyMod = Modifier.NewInstance();\r
+ List<DefinedTerm> emptyListToResetComboBox = new ArrayList<DefinedTerm>();\r
+ //FIXME:3.3MC----\r
+ //DefinedTerm emptyMod = DefinedTerm.NewInstance();\r
+ DefinedTerm emptyMod = null;\r
+ //FIXME:3.3MC----\r
- \r
- \r
++\r
++\r
emptyListToResetComboBox.add(emptyMod);\r
combo_EthnicGroup.setTerms(emptyListToResetComboBox);\r
combo_EthnicGroup.setEnabled(false);\r
-- \r
++\r
}\r
}\r
if (eventSource == combo_EthnicGroup) {\r
if(GetVocabularyType(modifier, combo_HumanGroup.getSelection().getTitleCache())) {\r
itrExistingModifiers.remove();\r
}\r
-- \r
-- } \r
- Modifier ethnicGroup = combo_EthnicGroup.getSelection();\r
++\r
++ }\r
+ DefinedTerm ethnicGroup = combo_EthnicGroup.getSelection();\r
getEntity().addModifier(ethnicGroup);\r
} else {\r
- Set<Modifier> modifiers = getEntity().getModifiers();\r
+ Set<DefinedTerm> modifiers = getEntity().getModifiers();\r
if(!modifiers.isEmpty()) {\r
-- \r
- Iterator<Modifier> itr = modifiers.iterator();\r
++\r
+ Iterator<DefinedTerm> itr = modifiers.iterator();\r
while (itr.hasNext()) {\r
- Modifier currentMod = itr.next();\r
+ DefinedTerm currentMod = itr.next();\r
if(GetVocabularyType(currentMod, UsageTermCollection.ethnicGroupLabel)) {\r
itr.remove();\r
}\r
}\r
-- \r
++\r
}\r
}\r
}\r
}\r
-- \r
-- \r
++\r
++\r
\r
/**\r
* This function Checks the vocabulary type\r
}\r
return false;\r
}\r
-- \r
-- \r
++\r
++\r
\r
/** {@inheritDoc} */\r
@Override\r
State selectedUseCategory = combo_UseCategory.getSelection();\r
if (selectedUseCategory != null) {\r
combo_UseSubCategory.setTerms(setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false),selectedUseCategory));\r
-- \r
- if (!getEntity().getStates().isEmpty()) {\r
- Iterator<StateData> itrExistingState = getEntity().getStates().iterator();\r
++\r
+ if (!getEntity().getStateData().isEmpty()) {\r
+ Iterator<StateData> itrExistingState = getEntity().getStateData().iterator();\r
while(itrExistingState.hasNext()) {\r
-- StateData existingStateData = (StateData) itrExistingState.next();\r
++ StateData existingStateData = itrExistingState.next();\r
Map<Language, LanguageString> modifyingText = existingStateData.getModifyingText();\r
if (modifyingText.get(CdmStore.getDefaultLanguage()) != null) {\r
if (modifyingText.get(CdmStore.getDefaultLanguage())\r
}\r
}\r
}\r
-- \r
++\r
}\r
}\r
}\r
*/
public class DetailsViewer extends AbstractCdmDataViewer {
- private ISelection selection;
-
- /**
- * <p>
- * Constructor for DetailsViewer.
- * </p>
- *
- * @param parent
- * a {@link org.eclipse.swt.widgets.Composite} object.
- * @param viewPart
- * a {@link eu.etaxonomy.taxeditor.view.AbstractCdmViewPart}
- * object.
- */
- public DetailsViewer(Composite parent, AbstractCdmViewPart viewPart) {
- super(parent, viewPart);
- }
-
- // START HACK TO MAKE THE DERIVED UNIT FACADE WORK
- // since we are getting implementations of DerivedUnitBase from the bulk
- // editor
- // and not derived unit facade objects,
-
- /*
- * (non-Javadoc)
- *
- * @see
- * eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer#setInput(java
- * .lang.Object)
- */
- @Override
- public void setInput(Object input) {
+ private ISelection selection;
+
+ /**
+ * <p>
+ * Constructor for DetailsViewer.
+ * </p>
+ *
+ * @param parent
+ * a {@link org.eclipse.swt.widgets.Composite} object.
+ * @param viewPart
+ * a {@link eu.etaxonomy.taxeditor.view.AbstractCdmViewPart}
+ * object.
+ */
+ public DetailsViewer(Composite parent, AbstractCdmViewPart viewPart) {
+ super(parent, viewPart);
+ }
+
+ // START HACK TO MAKE THE DERIVED UNIT FACADE WORK
+ // since we are getting implementations of DerivedUnitBase from the bulk
+ // editor
+ // and not derived unit facade objects,
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer#setInput(java
+ * .lang.Object)
+ */
+ @Override
+ public void setInput(Object input) {
- if (input instanceof DerivedUnitBase) {
+ if (input instanceof DerivedUnit) {
- try {
+ try {
- input = DerivedUnitFacade.NewInstance((DerivedUnitBase) input,
+ input = DerivedUnitFacade.NewInstance((DerivedUnit) input,
- PreferencesUtil.getDerivedUnitConfigurator());
- } catch (DerivedUnitFacadeNotSupportedException e) {
+ PreferencesUtil.getDerivedUnitConfigurator());
+ } catch (DerivedUnitFacadeNotSupportedException e) {
AbstractUtility.error(getClass(), e);
- }
- }
- super.setInput(input);
- }
-
- @Override
- protected void markViewPartDirty() {
- if (getInput() instanceof DerivedUnitFacade) {
+ }
+ }
+ super.setInput(input);
+ }
+
+ @Override
+ protected void markViewPartDirty() {
+ if (getInput() instanceof DerivedUnitFacade) {
getViewPart().changed(((DerivedUnitFacade) getInput()).innerDerivedUnit());
- }
-
- super.markViewPartDirty();
- }
-
- // END HACK TO MAKE THE DERIVED UNIT FACADE WORK
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.viewers.Viewer#refresh()
- */
- /** {@inheritDoc} */
- @Override
- protected void showParts() {
- // FIXME (CM) : Need to clean out this code.
- // Too much type checking to decide which detail view to display.
- // Need to build in a mechanism where navigators / editors are 'aware'
- // of the corresponding detail viewer.
+ }
+
+ super.markViewPartDirty();
+ }
+
+ // END HACK TO MAKE THE DERIVED UNIT FACADE WORK
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.Viewer#refresh()
+ */
+ /** {@inheritDoc} */
+ @Override
+ protected void showParts() {
+ // FIXME (CM) : Need to clean out this code.
+ // Too much type checking to decide which detail view to display.
+ // Need to build in a mechanism where navigators / editors are 'aware'
+ // of the corresponding detail viewer.
Object input = getInput();
if (input instanceof TaxonBase) {
- createTaxonSections(rootElement);
+ createTaxonSections(rootElement);
} else if (input instanceof NonViralName) {
- createNameSections(rootElement);
+ createNameSections(rootElement);
} else if (input instanceof Reference) {
- createReferenceSections(rootElement);
+ createReferenceSections(rootElement);
} else if (input instanceof Team) {
- createTeamDetailSection(rootElement);
+ createTeamDetailSection(rootElement);
} else if (input instanceof Person) {
- createPersonDetailSection(rootElement);
+ createPersonDetailSection(rootElement);
} else if (input instanceof TeamOrPersonBase) {
- createTeamOrPersonBaseDetailSection(rootElement);
+ createTeamOrPersonBaseDetailSection(rootElement);
} else if (input instanceof DescriptionBase) {
Set<Marker> descriptionMarkers = ((DescriptionBase) input).getMarkers();
DescribedSpecimenSection describedSpecimenSection = formFactory.createDescribedSpecimenSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
- formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+ formFactory.createHorizontalSeparator(parent, SWT.BORDER);
- DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
-
- formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-// DescriptionSourceSection descriptionSourceSection = (DescriptionSourceSection) formFactory
-// .createEntityDetailSection(EntityDetailType.DESCRIPTIONSOURCE,
-// getConversationHolder(), parent, Section.TWISTIE);
++// DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
+ //
-// formFactory.createHorizontalSeparator(parent, SWT.BORDER);
++// formFactory.createHorizontalSeparator(parent, SWT.BORDER);
ScopeSection scopeSection = formFactory.createScopeSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
- formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
- addPart(descriptionDetailSection);
- addPart(naturalLanguageSection);
- addPart(describedSpecimenSection);
-// addPart(descriptionSourceSection);
- addPart(scopeSection);
- }
-
- /**
- * Creates the use Description section
+ formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+
+ addPart(descriptionDetailSection);
+ addPart(naturalLanguageSection);
+ addPart(describedSpecimenSection);
- addPart(descriptionSourceSection);
++// addPart(descriptionSourceSection);
+ addPart(scopeSection);
+ }
+
+ /**
+ * Creates the use Description section
*
- * @param parent
- */
- private void createUseDescriptionSection(RootElement parent) {
- destroySections();
+ * @param parent
+ */
+ private void createUseDescriptionSection(RootElement parent) {
+ destroySections();
DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
- formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+ formFactory.createHorizontalSeparator(parent, SWT.BORDER);
DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);