eu.etaxonomy.taxeditor.navigation/p2.inf -text
eu.etaxonomy.taxeditor.navigation/plugin.xml -text
eu.etaxonomy.taxeditor.navigation/pom.xml -text
+eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationCdmViewer.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigatorStateManager.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/RecentNamesContributionItem.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizardPage.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenDistributionEditorWizardHandler.java -text
+<<<<<<< HEAD
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenInspectSessionsHandler.java -text
+=======
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenHandler.java -text
+>>>>>>> 02176688eaa23a31ff5b71c317cb5ee685483aa4
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenPasswordWizzardHandler.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowLoginWindowHandler.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowRemotingLoginWindowHandler.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AbstractNewEntityWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGeneralWizardPage.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/ExternalReferenceServiceWizardPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/IWizardPageListener.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewAmplificationWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewClassificationWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewCollectionWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StateDataElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StateDataSection.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StateModifierElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StatisticalMeasurementValueElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StatisticalMeasurementValueSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/AbstractDetailedDescriptionDetailElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaDetailElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaLevelDetailSection.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateModifierCollectionSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierVocabulariesCollectionSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierVocabulariesElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateVocabularyCollectionElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateVocabularyCollectionSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionElement.java -text
Bundle-ManifestVersion: 2
Bundle-Name: Application
Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 3.5.2.qualifier
+Bundle-Version: 3.6.1.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
Bundle-Vendor: EDIT
Bundle-Localization: OSGI-INF/l10n/plugin
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.5.2-SNAPSHOT</version>
+ <version>3.6.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: Bulkeditor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.bulkeditor;singleton:=true
-Bundle-Version: 3.5.2.qualifier
+Bundle-Version: 3.6.1.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
-BulkEditorInputType_0=Person and Team\r
-BulkEditorInputType_1=Reference\r
-BulkEditorInputType_2=Name\r
-BulkEditorInputType_3=Name Relationship\r
-BulkEditorInputType_4=Specimen and Observation\r
-BulkEditorInputType_5=User\r
-BulkEditorInputType_6=Group\r
-BulkEditorInputType_7=Taxon\r
+BulkEditorInputType_0=Persons and Teams\r
+BulkEditorInputType_1=References\r
+BulkEditorInputType_2=Names\r
+BulkEditorInputType_3=Name Relationships\r
+BulkEditorInputType_4=Specimen and Observations\r
+BulkEditorInputType_5=Users\r
+BulkEditorInputType_6=Groups\r
+BulkEditorInputType_7=Taxa\r
-BulkEditorInputType_0=Person und Team \r
-BulkEditorInputType_1=Referenz\r
-BulkEditorInputType_2=Name\r
-BulkEditorInputType_3=Namensbeziehung\r
-BulkEditorInputType_4=Beleg und Beobachtung\r
+BulkEditorInputType_0=Personen und Teams \r
+BulkEditorInputType_1=Referenzen\r
+BulkEditorInputType_2=Namen\r
+BulkEditorInputType_3=Namensbeziehungen\r
+BulkEditorInputType_4=Belege und Beobachtungen\r
BulkEditorInputType_5=Nutzer\r
-BulkEditorInputType_6=Nutzergruppe\r
-BulkEditorInputType_7=Taxon\r
+BulkEditorInputType_6=Nutzergruppen\r
+BulkEditorInputType_7=Taxa\r
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.5.2-SNAPSHOT</version>
+ <version>3.6.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
isDirty = false;
super.doSave(progressMonitor);
-
+
selectFirstItem();
getSourceViewer().getTextWidget().setFocus();
return;
}
}
-
+ conversation.commit();
+ conversation.clear();
+
getEditorInput().performSearch(query);
refresh();
import org.apache.log4j.Logger;
-import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.Team;
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
public class AgentCreator implements IEntityCreator<TeamOrPersonBase> {
private static final Logger logger = Logger.getLogger(AgentCreator.class);
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#createEntity(java.lang.String)
- */
+
/** {@inheritDoc} */
public TeamOrPersonBase createEntity(String text) {
// FIXME
return createEntity(Person.class, text);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#createEntity(java.lang.Class, java.lang.String)
- */
/** {@inheritDoc} */
public TeamOrPersonBase createEntity(Object key, String text) {
TeamOrPersonBase teamOrPerson = null;
return teamOrPerson;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#getClassLabelPairs()
- */
/**
* <p>getKeyLabelPairs</p>
*
*/
public Map<Object, String> getKeyLabelPairs() {
Map<Object, String> result = new HashMap<Object, String>();
- result.put(Team.class, "Author Team");
- result.put(Person.class, "Author");
+ result.put(Team.class, "Team");
+ result.put(Person.class, "Person");
return result;
}
<classpathentry exported="true" kind="lib" path="lib/hibernate-c3p0-4.1.10.Final.jar"/>
<classpathentry exported="true" kind="lib" path="lib/hibernate-cglib-repack-2.1_3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/hibernate-commons-annotations-4.0.1.Final.jar"/>
+<<<<<<< HEAD
<classpathentry exported="true" kind="lib" path="lib/hibernate-core-4.1.10.Final.jar" sourcepath="/home/cmathew/.m2/repository/org/hibernate/hibernate-core/4.1.10.Final/hibernate-core-4.1.10.Final-sources.jar"/>
+=======
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-core-4.1.10.Final.jar"/>
+>>>>>>> 02176688eaa23a31ff5b71c317cb5ee685483aa4
<classpathentry exported="true" kind="lib" path="lib/hibernate-ehcache-4.1.10.Final.jar"/>
<classpathentry exported="true" kind="lib" path="lib/hibernate-entitymanager-4.1.10.Final.jar"/>
<classpathentry exported="true" kind="lib" path="lib/hibernate-envers-4.1.10.Final.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.osgi.core-1.0.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.springframework.aop-3.2.2.RELEASE.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.springframework.aspects-3.2.2.RELEASE.jar"/>
+<<<<<<< HEAD
<classpathentry exported="true" kind="lib" path="lib/org.springframework.beans-3.2.2.RELEASE.jar" sourcepath="/home/cmathew/.m2/repository/org/springframework/org.springframework.beans/3.2.2.RELEASE/org.springframework.beans-3.2.2.RELEASE-sources.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.springframework.context-3.2.2.RELEASE.jar" sourcepath="/home/cmathew/.m2/repository/org/springframework/org.springframework.context/3.2.2.RELEASE/org.springframework.context-3.2.2.RELEASE-sources.jar"/>
+=======
+ <classpathentry exported="true" kind="lib" path="lib/org.springframework.beans-3.2.2.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/org.springframework.context-3.2.2.RELEASE.jar"/>
+>>>>>>> 02176688eaa23a31ff5b71c317cb5ee685483aa4
<classpathentry exported="true" kind="lib" path="lib/org.springframework.core-3.2.2.RELEASE.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.springframework.expression-3.2.2.RELEASE.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.springframework.jdbc-3.2.2.RELEASE.jar" sourcepath="lib/org.springframework.jdbc-3.2.2.RELEASE-sources.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.springframework.oxm-3.2.2.RELEASE.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.springframework.test-3.2.2.RELEASE.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.springframework.transaction-3.2.2.RELEASE.jar" sourcepath="lib/org.springframework.transaction-3.2.2.RELEASE-sources.jar"/>
+<<<<<<< HEAD
<classpathentry exported="true" kind="lib" path="lib/org.springframework.web-3.2.2.RELEASE.jar" sourcepath="/home/cmathew/.m2/repository/org/springframework/org.springframework.web/3.2.2.RELEASE/org.springframework.web-3.2.2.RELEASE-sources.jar"/>
+=======
+ <classpathentry exported="true" kind="lib" path="lib/org.springframework.web-3.2.2.RELEASE.jar"/>
+>>>>>>> 02176688eaa23a31ff5b71c317cb5ee685483aa4
<classpathentry exported="true" kind="lib" path="lib/org.springframework.web.servlet-3.2.2.RELEASE.jar"/>
<classpathentry exported="true" kind="lib" path="lib/osgi-3.6.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/p6spy-1.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/spring-expression-3.2.2.RELEASE.jar"/>
<classpathentry exported="true" kind="lib" path="lib/spring-modules-cache-0.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/spring-security-config-3.1.3.RELEASE.jar"/>
+<<<<<<< HEAD
<classpathentry exported="true" kind="lib" path="lib/spring-security-core-3.1.3.RELEASE.jar" sourcepath="/home/cmathew/.m2/repository/org/springframework/security/spring-security-core/3.1.3.RELEASE/spring-security-core-3.1.3.RELEASE-sources.jar"/>
<classpathentry exported="true" kind="lib" path="lib/stax-1.2.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/stax-api-1.0.1.jar"/>
+=======
+ <classpathentry exported="true" kind="lib" path="lib/spring-security-core-3.1.3.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/stax-1.2.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/stax-api-1.0.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-core-3.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-database-3.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-dbmaintainer-3.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-dbunit-3.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-easymock-3.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-inject-3.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-mock-3.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-orm-3.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-spring-3.3.jar"/>
+>>>>>>> 02176688eaa23a31ff5b71c317cb5ee685483aa4
<classpathentry exported="true" kind="lib" path="lib/usertype.jodatime-2.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/usertype.spi-2.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/validation-api-1.0.0.GA.jar"/>
<classpathentry exported="true" kind="lib" path="lib/spring-security-remoting-3.1.3.RELEASE.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jena-core-2.11.2.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jena-iri-1.0.2.jar"/>
+<<<<<<< HEAD
<classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.5.2-SNAPSHOT-sources.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.5.2-SNAPSHOT.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.5.2-SNAPSHOT-sources.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.5.2-SNAPSHOT.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.5.2-SNAPSHOT-sources.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.5.2-SNAPSHOT.jar" sourcepath="lib/cdmlib-services-3.5.2-SNAPSHOT-sources.jar"/>
+=======
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.6.1-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.6.1-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.6.1-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.6.1-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.6.1-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.6.1-SNAPSHOT.jar" sourcepath="lib/cdmlib-io-3.6.1-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.6.1-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.6.1-SNAPSHOT.jar" sourcepath="lib/cdmlib-model-3.6.1-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.6.1-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.6.1-SNAPSHOT.jar" sourcepath="lib/cdmlib-persistence-3.6.1-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.6.1-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.6.1-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.6.1-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.6.1-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.6.1-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.6.1-SNAPSHOT.jar" sourcepath="lib/cdmlib-services-3.6.1-SNAPSHOT-sources.jar"/>
+>>>>>>> 02176688eaa23a31ff5b71c317cb5ee685483aa4
<classpathentry exported="true" kind="lib" path="lib/poi-3.10-FINAL.jar"/>
<classpathentry exported="true" kind="lib" path="lib/poi-ooxml-3.10-FINAL.jar"/>
<classpathentry exported="true" kind="lib" path="lib/xmlbeans-2.3.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/poi-ooxml-schemas-3.10-FINAL.jar"/>
<classpathentry exported="true" kind="lib" path="lib/swagger-annotations-1.3.5.jar"/>
+<<<<<<< HEAD
<classpathentry exported="true" kind="lib" path="lib/cdm-server-3.5.2-SNAPSHOT.jar"/>
+=======
+>>>>>>> 02176688eaa23a31ff5b71c317cb5ee685483aa4
<classpathentry kind="output" path="target/classes"/>
</classpath>
Bundle-ManifestVersion: 2
Bundle-Name: CDM Library Dependencies Plugin
Bundle-SymbolicName: eu.etaxonomy.taxeditor.cdmlib;singleton:=true
-Bundle-Version: 3.5.2.qualifier
+Bundle-Version: 3.6.1.qualifier
Eclipse-BundleShape: dir
Export-Package: com.google.api,
com.google.api.detect,
lib/spring-security-remoting-3.1.3.RELEASE.jar,
lib/jena-core-2.11.2.jar,
lib/jena-iri-1.0.2.jar,
- lib/cdmlib-commons-3.5.2-SNAPSHOT-sources.jar,
- lib/cdmlib-commons-3.5.2-SNAPSHOT.jar,
- lib/cdmlib-ext-3.5.2-SNAPSHOT-sources.jar,
- lib/cdmlib-ext-3.5.2-SNAPSHOT.jar,
- lib/cdmlib-io-3.5.2-SNAPSHOT-sources.jar,
- lib/cdmlib-io-3.5.2-SNAPSHOT.jar,
- lib/cdmlib-model-3.5.2-SNAPSHOT-sources.jar,
- lib/cdmlib-model-3.5.2-SNAPSHOT.jar,
- lib/cdmlib-persistence-3.5.2-SNAPSHOT-sources.jar,
- lib/cdmlib-persistence-3.5.2-SNAPSHOT.jar,
- lib/cdmlib-print-3.5.2-SNAPSHOT-sources.jar,
- lib/cdmlib-print-3.5.2-SNAPSHOT.jar,
- lib/cdmlib-remote-3.5.2-SNAPSHOT-sources.jar,
- lib/cdmlib-remote-3.5.2-SNAPSHOT.jar,
- lib/cdmlib-services-3.5.2-SNAPSHOT-sources.jar,
- lib/cdmlib-services-3.5.2-SNAPSHOT.jar,
+ lib/cdmlib-commons-3.6.1-SNAPSHOT-sources.jar,
+ lib/cdmlib-commons-3.6.1-SNAPSHOT.jar,
+ lib/cdmlib-ext-3.6.1-SNAPSHOT-sources.jar,
+ lib/cdmlib-ext-3.6.1-SNAPSHOT.jar,
+ lib/cdmlib-io-3.6.1-SNAPSHOT-sources.jar,
+ lib/cdmlib-io-3.6.1-SNAPSHOT.jar,
+ lib/cdmlib-model-3.6.1-SNAPSHOT-sources.jar,
+ lib/cdmlib-model-3.6.1-SNAPSHOT.jar,
+ lib/cdmlib-persistence-3.6.1-SNAPSHOT-sources.jar,
+ lib/cdmlib-persistence-3.6.1-SNAPSHOT.jar,
+ lib/cdmlib-print-3.6.1-SNAPSHOT-sources.jar,
+ lib/cdmlib-print-3.6.1-SNAPSHOT.jar,
+ lib/cdmlib-remote-3.6.1-SNAPSHOT-sources.jar,
+ lib/cdmlib-remote-3.6.1-SNAPSHOT.jar,
+ lib/cdmlib-services-3.6.1-SNAPSHOT-sources.jar,
+ lib/cdmlib-services-3.6.1-SNAPSHOT.jar,
lib/poi-3.10-FINAL.jar,
lib/poi-ooxml-3.10-FINAL.jar,
lib/xmlbeans-2.3.0.jar,
lib/poi-ooxml-3.10-FINAL.jar,\\r
lib/poi-ooxml-schemas-3.10-FINAL.jar,\\r
lib/xmlbeans-2.3.0.jar,\\r
- lib/cdmlib-commons-3.5.2-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-commons-3.5.2-SNAPSHOT.jar,\\r
- lib/cdmlib-ext-3.5.2-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-ext-3.5.2-SNAPSHOT.jar,\\r
- lib/cdmlib-io-3.5.2-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-io-3.5.2-SNAPSHOT.jar,\\r
- lib/cdmlib-model-3.5.2-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-model-3.5.2-SNAPSHOT.jar,\\r
- lib/cdmlib-persistence-3.5.2-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-persistence-3.5.2-SNAPSHOT.jar,\\r
- lib/cdmlib-print-3.5.2-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-print-3.5.2-SNAPSHOT.jar,\\r
- lib/cdmlib-remote-3.5.2-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-remote-3.5.2-SNAPSHOT.jar,\\r
- lib/cdmlib-services-3.5.2-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-services-3.5.2-SNAPSHOT.jar,\\r
+ lib/cdmlib-commons-3.6.1-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-commons-3.6.1-SNAPSHOT.jar,\\r
+ lib/cdmlib-ext-3.6.1-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-ext-3.6.1-SNAPSHOT.jar,\\r
+ lib/cdmlib-io-3.6.1-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-io-3.6.1-SNAPSHOT.jar,\\r
+ lib/cdmlib-model-3.6.1-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-model-3.6.1-SNAPSHOT.jar,\\r
+ lib/cdmlib-persistence-3.6.1-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-persistence-3.6.1-SNAPSHOT.jar,\\r
+ lib/cdmlib-print-3.6.1-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-print-3.6.1-SNAPSHOT.jar,\\r
+ lib/cdmlib-remote-3.6.1-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-remote-3.6.1-SNAPSHOT.jar,\\r
+ lib/cdmlib-services-3.6.1-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-services-3.6.1-SNAPSHOT.jar,\\r
lib/swagger-annotations-1.3.5.jar\r
\r
jars.compile.order = .\r
<parent>\r
<groupId>eu.etaxonomy</groupId>\r
<artifactId>taxeditor-parent</artifactId>\r
- <version>3.5.2-SNAPSHOT</version>\r
+ <version>3.6.1-SNAPSHOT</version>\r
</parent>\r
<modelVersion>4.0.0</modelVersion>\r
<artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
Bundle-ManifestVersion: 2
Bundle-Name: Editor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 3.5.2.qualifier
+Bundle-Version: 3.6.1.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
Bundle-Vendor: %Bundle-Vendor.0
Bundle-Localization: OSGI-INF/l10n/plugin
command.label.53 = Neue Field Unit
command.label.54 = L\u00f6schen (mit Kindern)
command.tooltip = Nur Individuals Associations anzeigen
-command.label.55 = \u00d6ffne zugeh�rige Specimens
+command.label.55 = \u00d6ffne zugeh\u00f6rige Specimens
command.name.41 = Nur Individuals Associations anzeigen
command.name.42 = \u00d6ffne Taxon Editor
command.name.43 = Neue Field Unit
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.5.2-SNAPSHOT</version>
+ <version>3.6.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import java.util.Map;
import org.apache.log4j.Logger;
+import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.ui.PartInitException;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
* @see eu.etaxonomy.taxeditor.view.ICdmViewer#show(java.lang.Object)
*/
@Override
- public void show(Object input, Class<?> viewerClass) {
+ public void show(Object input, Class<?> viewerClass, ExecutionEvent event) {
try {
if(viewerClass.equals(MultiPageTaxonEditor.class)){
if(input instanceof TaxonBase){
}
init(taxonNode);
+
+ if(taxonNode == null){
+ MessagingUtils.warningDialog("Not yet implemented", TaxonEditorInput.class, "Selected element is not of type TaxonNode but [null].");
+ return null;
+ }
}
private void initForTaxonBase(UUID taxonBaseUuid) {
initForTaxonNode(newTaxonNodeUuid);
}
+ public static TaxonEditorInput NewInstanceFromTaxonBase(UUID taxonBaseUuid){
+ ConversationHolder conversation = CdmStore.createConversation();
+
+ TaxonEditorInput input = null;
+
+ TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).find(taxonBaseUuid);
+ if (taxonBase != null){
+ if(taxonBase.isInstanceOf(Taxon.class)){
+ Taxon taxon = CdmBase.deproxy(taxonBase, Taxon.class);
+
+ if (taxon.getTaxonNodes().size() == 0 && taxon.isMisapplication()){
+ // TODO get accepted taxon
+ MessagingUtils.info("trying to open misapplied Name ");
+
+ Set<Taxon> acceptedTaxa = new HashSet<Taxon>();
+ Set<TaxonRelationship> relations = taxon.getRelationsFromThisTaxon();
+ for(TaxonRelationship relation : relations){
+ if(relation.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())){
+ acceptedTaxa.add(relation.getToTaxon());
+ }
+ }
+ 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);
+ }
+ if (input != null){
+ input.setInitiallySelectedTaxonBase(taxonBase);
+ }
+ }
+
+
+ return input;
+ }
+
private void setInputForMultipleNodes(ConversationHolder conversation, Set<TaxonNode> taxonNodes){
if(taxonNodes.size() == 1){
// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
package eu.etaxonomy.taxeditor.editor.handler.create;
+import java.util.Collections;
+
import org.apache.log4j.Logger;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.PartInitException;
-import eu.etaxonomy.taxeditor.newWizard.NewDerivedUnitBaseWizard;
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeFieldUnitCacheStrategy;
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* <p>NewSpecimenHandler class.</p>
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
/** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
- NewDerivedUnitBaseWizard wizard = new NewDerivedUnitBaseWizard();
- wizard.init(null, null);
- WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);
- dialog.open();
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ ConversationHolder conversation = CdmStore.createConversation();
+ conversation.bind();
+ FieldUnit fieldUnit = FieldUnit.NewInstance();
+ DerivedUnit derivedUnit = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
+ DerivationEvent.NewSimpleInstance(fieldUnit, derivedUnit, DerivationEventType.GATHERING_IN_SITU());
+ fieldUnit.setCacheStrategy(new DerivedUnitFacadeFieldUnitCacheStrategy());
+ derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
+ CdmStore.getService(IOccurrenceService.class).save(fieldUnit);
+ CdmStore.getService(IOccurrenceService.class).save(derivedUnit);
+ conversation.commit();
+ DerivateViewEditorInput input = new DerivateViewEditorInput(Collections.singleton(fieldUnit.getUuid()));
+ try {
+ EditorUtil.open(input);
+ } catch (PartInitException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+// NewDerivedUnitBaseWizard wizard = new NewDerivedUnitBaseWizard();
+// wizard.init(null, null);
+// WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);
+// dialog.open();
return null;
}
}
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.DeleteNodeOperation;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author n.hoffmann
public Object execute(ExecutionEvent event) throws ExecutionException {
IEditorPart editor = HandlerUtil.getActiveEditor(event);
+ if (editor.isDirty()){
+ boolean proceed = MessageDialog.openQuestion(null,
+ "Save changes", "You have made changes that must be saved before you can delete the node. Would you like to proceed?");
+ if (!proceed) {
+ return null;
+ }else{
+ editor.doSave(EditorUtil.getMonitor());
+ }
+ }
if (editor instanceof KeyEditor) {
IPolytomousKeyEditorPage editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
.getActiveEditor();
IUndoContext undoContext = EditorUtil.getUndoContext();
for (Object element : selection.toArray()) {
- PolytomousKeyNode keyNode = (PolytomousKeyNode) element;
-
+ PolytomousKeyNode keyNode = HibernateProxyHelper.deproxy(element, PolytomousKeyNode.class);
+
AbstractPostOperation operation = new DeleteNodeOperation(
label, undoContext, keyNode, editorPage);
EditorUtil.executeOperation(operation);
controller = CdmStore.getCurrentApplicationConfiguration();
IPolytomousKeyNodeService service = controller.getPolytomousKeyNodeService();
+
if (node.getChildren().size()>0){
if(! MessageDialog.openQuestion(null, "Confirm deletion of children", "The selected node has children, do you want to delete them, too?")) {
service.delete(node.getUuid(), false);
getService().schedule(new ChecklistJob("loading Taxa", selectedTaxonNodes), Job.LONG);
}
if (taxonNode != null) {
- selectedTaxonNodes = taxonNodeService.loadChildNodesOfTaxonNode(taxonNode, NODE_INIT_STRATEGY, true, false);
+ selectedTaxonNodes = taxonNodeService.loadChildNodesOfTaxonNode(taxonNode, NODE_INIT_STRATEGY, true, null);
getService().schedule(new ChecklistJob("loading Taxa", selectedTaxonNodes), Job.LONG);
}
}
import eu.etaxonomy.cdm.model.common.LSID;
import eu.etaxonomy.cdm.model.common.Marker;
import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.media.Rights;
import eu.etaxonomy.cdm.model.view.AuditEvent;
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.query.Grouping;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.cdm.persistence.query.OrderHint;
import eu.etaxonomy.cdm.model.common.LSID;
import eu.etaxonomy.cdm.model.common.Marker;
import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.media.MediaRepresentation;
import eu.etaxonomy.cdm.model.media.Rights;
import eu.etaxonomy.cdm.model.name.Rank;
import eu.etaxonomy.cdm.model.view.AuditEvent;
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.query.Grouping;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.cdm.persistence.query.OrderHint;
import eu.etaxonomy.cdm.model.common.LSID;
import eu.etaxonomy.cdm.model.common.Marker;
import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.media.Rights;
import eu.etaxonomy.cdm.model.occurrence.Collection;
import eu.etaxonomy.cdm.model.view.AuditEvent;
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.query.Grouping;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.cdm.persistence.query.OrderHint;
import eu.etaxonomy.cdm.model.common.Marker;
import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.cdm.model.common.TermVocabulary;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.query.Grouping;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.cdm.persistence.query.OrderHint;
import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
import eu.etaxonomy.cdm.model.common.RelationshipBase;
import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.media.Rights;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
import eu.etaxonomy.cdm.model.name.HybridRelationship;
import eu.etaxonomy.cdm.model.view.AuditEvent;
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.query.Grouping;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.cdm.persistence.query.OrderHint;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.Marker;
import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
import eu.etaxonomy.cdm.model.view.AuditEvent;
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.query.Grouping;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.cdm.persistence.query.OrderHint;
import eu.etaxonomy.cdm.model.common.LSID;
import eu.etaxonomy.cdm.model.common.Marker;
import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.media.Rights;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.view.AuditEvent;
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.query.Grouping;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.cdm.persistence.query.OrderHint;
import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
import eu.etaxonomy.cdm.model.common.RelationshipBase;
import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
import eu.etaxonomy.cdm.model.view.AuditEvent;
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.fetch.CdmFetch;
import eu.etaxonomy.cdm.persistence.query.Grouping;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.cdm.model.common.Representation;
import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
import eu.etaxonomy.cdm.model.location.NamedAreaType;
import eu.etaxonomy.cdm.model.view.AuditEvent;
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.query.Grouping;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.cdm.persistence.query.OrderHint;
<feature
id="eu.etaxonomy.taxeditor.feature.platform"
label="Taxeditor Dependencies"
- version="3.5.2.qualifier"
+ version="3.6.1.qualifier"
os="linux,macosx,win32"
ws="cocoa,gtk,win32"
arch="x86,x86_64">
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.5.2-SNAPSHOT</version>
+ <version>3.6.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature.platform</artifactId>
<feature
id="eu.etaxonomy.taxeditor.feature"
label="Taxonomic Editor"
- version="3.5.2.qualifier"
+ version="3.6.1.qualifier"
provider-name="EDIT"
plugin="eu.etaxonomy.taxeditor.application"
os="linux,macosx,win32"
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.5.2-SNAPSHOT</version>
+ <version>3.6.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature</artifactId>
Bundle-ManifestVersion: 2
Bundle-Name: Help
Bundle-SymbolicName: eu.etaxonomy.taxeditor.help; singleton:=true
-Bundle-Version: 3.5.2.qualifier
+Bundle-Version: 3.6.1.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.help.Activator
Bundle-Vendor: EDIT
Require-Bundle: org.eclipse.ui,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.5.2-SNAPSHOT</version>
+ <version>3.6.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: Navigation Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.navigation;singleton:=true
-Bundle-Version: 3.5.2.qualifier
+Bundle-Version: 3.6.1.qualifier
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.cdm,
eu.etaxonomy.taxeditor.navigation,
</or>
</visibleWhen>
</command>
+ <command
+ commandId="eu.etaxonomy.taxeditor.store.open"
+ label="Edit"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ <with
+ variable="selection">
+ <reference
+ definitionId="isClassification">
+ </reference>
+ </with>
+ </visibleWhen>
+ </command>
<command
commandId="eu.etaxonomy.taxeditor.navigator.command.update.changeAcceptedToSynonym"
label="%command.label.6"
</with>
</definition>
</extension>
+ <extension
+ point="eu.etaxonomy.taxeditor.store.cdmViewer">
+ <cdmViewer
+ class="eu.etaxonomy.taxeditor.navigation.NavigationCdmViewer">
+ </cdmViewer>
+ </extension>
</plugin>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.5.2-SNAPSHOT</version>
+ <version>3.6.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
--- /dev/null
+package eu.etaxonomy.taxeditor.navigation;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.taxeditor.newWizard.NewClassificationWizard;
+import eu.etaxonomy.taxeditor.view.ICdmViewer;
+
+public class NavigationCdmViewer implements ICdmViewer {
+
+
+ @SuppressWarnings("unused")
+ private final Logger logger = Logger.getLogger(NavigationCdmViewer.class);
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.view.ICdmViewer#show(java.lang.Object)
+ */
+ @Override
+ public void show(Object input, Class<?> viewerClass, ExecutionEvent event) {
+ if(viewerClass.equals(NewClassificationWizard.class)){
+ if(input instanceof Classification){
+ Classification classification = (Classification)input;
+ NewClassificationWizard classificationWizard = new NewClassificationWizard();
+ classificationWizard.init(null, null);
+ classificationWizard.setEntity(classification);
+ WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), classificationWizard);
+ dialog.open();
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.view.ICdmViewer#getViewerClasses(java.lang.Object)
+ */
+ @Override
+ public Map<Class<?>, String> getViewerClasses(Object input) {
+ Map<Class<?>, String> viewerNameMap = new HashMap<Class<?>, String>();
+ if(input instanceof Classification){
+ viewerNameMap.put(NewClassificationWizard.class, "Classification Wizard");
+ }
+ return viewerNameMap;
+ }
+
+}
import org.eclipse.ui.navigator.CommonViewer;
import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
private final PolytomousKey key;
private final ICdmEntitySessionEnabled cdmEntitySessionEnabled;
+
/**
* @param label
* @param undoContext
this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
}
- /* (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 {
DeleteResult result = CdmStore.getService(IPolytomousKeyService.class).delete(key);
- if (result.isError()){
- MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());
+ if (result.isError() && !result.getExceptions().isEmpty()){
+ MessageDialog.openError(null, "Delete failed", result.getExceptions().iterator().next().getMessage());
- } else if(result.isAbort()){
+ }else if(result.isAbort()){
MessageDialog.openWarning(null, "Delete abort", "The object could not be deleted, maybe there was no object selected.");
}
return postExecute(null);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
@Override
public IStatus redo(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
*
* @author p.ciardelli
* @created 04.06.2009
- * @version 1.0
*/
public class TaxonNodeLabelProvider extends ColumnLabelProvider
implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {
return new String();
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.navigator.IDescriptionProvider#getDescription(java.lang.Object)
- */
/** {@inheritDoc} */
@Override
public String getDescription(Object anElement) {
if (anElement instanceof TaxonNode) {
Taxon data = ((TaxonNode) anElement).getTaxon();
- return "Taxon: " + data != null ? data.getTitleCache() : ">NO TAXON<";
+ return "Taxon: " + (data != null ? data.getTitleCache() : ">NO TAXON<");
}
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)
- */
/** {@inheritDoc} */
@Override
public StyledString getStyledText(Object element) {
// $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.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.newWizard.IWizardPageListener;
import eu.etaxonomy.taxeditor.newWizard.NewTaxonNodeWizard;
/**
* @created Sep 15, 2009
* @version 1.0
*/
-public class NewTaxonNodeHandler extends AbstractHandler implements IHandler {
+public class NewTaxonNodeHandler extends AbstractHandler {
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
/** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
- NewTaxonNodeWizard wizard = new NewTaxonNodeWizard();
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ final NewTaxonNodeWizard wizard = new NewTaxonNodeWizard();
wizard.init(null, null);
- WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);
+ final WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);
+ wizard.addWizardPageListener(new IWizardPageListener() {
+
+ @Override
+ public void close() {
+ wizard.performFinish();
+ dialog.close();
+ }
+ });
int status = dialog.open();
-
+
if(status == IStatus.OK && wizard.openInEditor()){
if(wizard.openEmpty()){
NavigationUtil.openEmpty(wizard.getParentTreeNode().getUuid());
}else if(wizard.getTaxonNode() != null){
NavigationUtil.openEditor(wizard.getTaxonNode());
}
- }
+ }
return null;
}
}
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.MessageDialog;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.DeleteResult;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
Taxon oldTaxon = (Taxon) HibernateProxyHelper.deproxy(((TaxonNode) taxonNode).getTaxon());
try {
+
UpdateResult result = CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode(taxonNode.getUuid(), newAcceptedTaxonNode.getUuid(), null, null, null);
- } catch (IllegalArgumentException e) {
+
+ if (!result.getExceptions().isEmpty() && result.isOk()){
+ String separator = ", ";
+ String exceptionString = "";
+ for (Exception exception : result.getExceptions()) {
+ exceptionString += exception.getLocalizedMessage()+separator;
+ }
+
+ MessagingUtils.informationDialog("Synonym created but taxon is not deleted.", exceptionString);
+ } else if (result.isAbort() || result.isError()){
+ MessagingUtils.errorDialog("Synonym could not created", null, result.toString(), null, null, true);
+ }
+ } catch (IllegalArgumentException e) {
MessagingUtils.errorDialog("Operation failed", this, e.getMessage(), TaxeditorNavigationPlugin.PLUGIN_ID, e, false);
return Status.CANCEL_STATUS;
}
-
+
monitor.worked(40);
return postExecute(oldTaxon);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
- /** {@inheritDoc} */
- @Override
- public IStatus execute(IProgressMonitor monitor, IAdaptable info)
- throws ExecutionException {
-
- bind();
- monitor.worked(20);
- ICdmApplicationConfiguration controller = CdmStore.getCurrentApplicationConfiguration();
- ITaxonNodeService service = controller.getTaxonNodeService();
- DeleteResult result;
-
- if(taxonNode != null && taxonNode instanceof TaxonNode) {
- element = ((TaxonNode)taxonNode).getTaxon();
- result = service.deleteTaxonNode(taxonNode.getUuid(), config);
- if (result.isError() || result.isAbort()){
- MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());
- }
-
- } else if(taxonNode != null && taxonNode instanceof Classification) {
- Classification taxonomicTree = (Classification) taxonNode;
- /*if(taxonomicTree.hasChildNodes()){
- if(! MessageDialog.openConfirm(null, "Confirm Deletion", "The selected tree has children, do yu realy want to delete the whole tree with its children?")){
- return null;
- }
- }*/
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+
+ bind();
+ monitor.worked(20);
+ ICdmApplicationConfiguration controller = CdmStore.getCurrentApplicationConfiguration();
+ ITaxonNodeService service = controller.getTaxonNodeService();
+ if(taxonNode != null && taxonNode instanceof TaxonNode){
+ //((TaxonNode) treeNode).delete();
+
+ element = ((TaxonNode)taxonNode).getTaxon();
+
+ DeleteResult result = service.deleteTaxonNode((TaxonNode)taxonNode, config);
+ if (result.isError() && !result.getExceptions().isEmpty()){
+ //TODO:Error message!
+ MessageDialog.openError(null, "Delete failed", result.getExceptions().iterator().next().getMessage());
+ } else if (!result.getExceptions().isEmpty()){
+ String separator = ", ";
+ String exceptionString = "";
+ for (Exception exception : result.getExceptions()) {
+ exceptionString += exception.getLocalizedMessage()+separator;
+ }
+ MessageDialog.openInformation(null, "Delete of the node was successful but the taxon could not be deleted.", exceptionString);
+ }
+
+
+ }else if(taxonNode != null && taxonNode instanceof Classification){
+ Classification taxonomicTree = (Classification) taxonNode;
result = CdmStore.getService(IClassificationService.class).delete(taxonomicTree.getUuid());
if (result.isError() || result.isAbort()){
treeNodeUuids.add(treeNode.getUuid());
}
- result = service.deleteTaxonNodes(treeNodeUuids, config);
- if (result.isError() || result.isAbort()){
- MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());
- }
+ Delete result = service.deleteTaxonNodes(treeNodeUuids, config);
+ if (result.isError() && !result.getExceptions().isEmpty()){
+ //TODO:Error message!
+ MessageDialog.openError(null, "Delete failed", result.getExceptions().iterator().next().getMessage());
+ }
}
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.model.ImageResources;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.preference.Resources;
-import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* <p>SearchResultLabelProvider class.</p>
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
Bundle-ManifestVersion: 2
Bundle-Name: Printpublisher Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.printpublisher;singleton:=true
-Bundle-Version: 3.5.2.qualifier
+Bundle-Version: 3.6.1.qualifier
Require-Bundle: org.eclipse.osgi,
org.eclipse.ui,
eu.etaxonomy.taxeditor.cdmlib,
<parent>
<artifactId>taxeditor-parent</artifactId>
<groupId>eu.etaxonomy</groupId>
- <version>3.5.2-SNAPSHOT</version>
+ <version>3.6.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: DataStore Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.store;singleton:=true
-Bundle-Version: 3.5.2.qualifier
+Bundle-Version: 3.6.1.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.cdm,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.5.2-SNAPSHOT</version>
+ <version>3.6.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<meta.element />
</appInfo>
<documentation>
- Extensions must provide and ICdmViewer which maps input elements to viewers which are able to display information for them.
+ Extensions must provide an ICdmViewer which maps input elements to viewers which are able to display information for them.
</documentation>
</annotation>
<complexType>
// $Id$\r
/**\r
* Copyright (C) 2009 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 java.util.ArrayList;\r
import java.util.Collection;\r
\r
+import org.eclipse.jface.viewers.StructuredSelection;\r
import org.eclipse.jface.viewers.ViewerDropAdapter;\r
+import org.eclipse.swt.dnd.DND;\r
+import org.eclipse.swt.dnd.DropTargetEvent;\r
import org.eclipse.swt.dnd.TransferData;\r
\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.common.OrderedTermBase;\r
import eu.etaxonomy.cdm.model.common.TermBase;\r
import eu.etaxonomy.taxeditor.editor.definedterm.operation.MoveDefinedTermOperation;\r
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
*/\r
public class DefinedTermDropAdapter extends ViewerDropAdapter {\r
\r
- private DefinedTermEditor editor;\r
+ private final DefinedTermEditor editor;\r
/**\r
* @param viewer\r
*/\r
*/\r
@Override\r
public boolean performDrop(Object data) {\r
- \r
+\r
TermBase target = (TermBase) getCurrentTarget();//can be vocab\r
+ int currentLocation = getCurrentLocation();\r
+ System.out.println("current location : " + currentLocation + " , target : " + target.getTitleCache());\r
//DefinedTermBase[] droppedElements = (DefinedTermBase[]) data;\r
Object[] droppedTerms = (Object[]) data;\r
Collection<DefinedTermBase> sourceTerms = new ArrayList<DefinedTermBase>(); //Arrays.asList(droppedElements)\r
- \r
+\r
for (Object droppedTerm : droppedTerms) {\r
- \r
+\r
DefinedTermBase term = (DefinedTermBase) droppedTerm;\r
sourceTerms.add(term);\r
- \r
+\r
}\r
- \r
- AbstractPostOperation operation = new MoveDefinedTermOperation("Move Descriptions", StoreUtil.getUndoContext(), target, sourceTerms, editor);\r
+\r
+ AbstractPostOperation operation = new MoveDefinedTermOperation("Move Descriptions",\r
+ StoreUtil.getUndoContext(),\r
+ target,\r
+ sourceTerms,\r
+ editor,\r
+ currentLocation);\r
//TODO: implement execute\r
StoreUtil.executeOperation(operation);\r
- \r
+ // select the newly moved objects\r
+ editor.getViewer().setSelection(new StructuredSelection(sourceTerms.toArray(new TermBase[sourceTerms.size()])));\r
+\r
return true;\r
}\r
\r
public boolean validateDrop(Object target, int operation,\r
TransferData transferType) {\r
boolean transferDataIsSupported = TermTransfer.getInstance().isSupportedType(transferType);\r
- System.out.println(target);\r
// maybe don't need this - they will be all TermBase anyway\r
- return target instanceof TermBase && transferDataIsSupported; \r
+ return target instanceof TermBase && transferDataIsSupported;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.jface.viewers.ViewerDropAdapter#dragOver(org.eclipse.swt.dnd.DropTargetEvent)\r
+ */\r
+ @Override\r
+ public void dragOver(DropTargetEvent event) {\r
+ super.dragOver(event);\r
+ TermBase target = (TermBase) getCurrentTarget();\r
+ if(!(target instanceof OrderedTermBase)) {\r
+ // this is to only disable insert between items\r
+ event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;\r
+ }\r
+\r
+\r
}\r
\r
}\r
import org.eclipse.jface.viewers.ISelection;\r
import org.eclipse.jface.viewers.StructuredSelection;\r
import org.eclipse.jface.viewers.TreeViewer;\r
+import org.eclipse.jface.viewers.Viewer;\r
import org.eclipse.jface.viewers.ViewerSorter;\r
import org.eclipse.swt.SWT;\r
import org.eclipse.swt.dnd.DND;\r
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.common.OrderedTermBase;\r
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;\r
import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;\r
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;\r
viewer.getControl().setLayoutData(LayoutConstants.FILL());\r
viewer.setContentProvider(new TermContentProvider());\r
viewer.setLabelProvider(new TermLabelProvider());\r
- viewer.setSorter(new ViewerSorter());\r
+ viewer.setSorter(new DefinedTermSorter());\r
\r
Transfer[] transfers = new Transfer[] { TermTransfer.getInstance() };\r
viewer.addDragSupport(dndOperations, transfers, new DefinedTermDragListener(viewer));\r
return viewer;\r
}\r
\r
+ private class DefinedTermSorter extends ViewerSorter {\r
+\r
+ @Override\r
+ public int compare(Viewer viewer, Object e1, Object e2) {\r
+ // the comparison value in this method determines the\r
+ // location <-> add term method used in the MoveDefinedTermOperation\r
+ // execute call\r
+ if(e1 instanceof OrderedTermBase && e2 instanceof OrderedTermBase) {\r
+ OrderedTermBase otbe1 = (OrderedTermBase)e1;\r
+ OrderedTermBase otbe2 = (OrderedTermBase)e2;\r
+ if(otbe1.getOrderIndex() == otbe2.getOrderIndex()) {\r
+ return 0;\r
+ } else if(otbe1.isHigher(otbe2)) {\r
+ return 1;\r
+ } else {\r
+ return -1;\r
+ }\r
+ } else {\r
+ return super.compare(viewer, e1, e2);\r
+ }\r
+ }\r
+ }\r
\r
\r
}
\ No newline at end of file
// $Id$\r
/**\r
* Copyright (C) 2009 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 org.eclipse.core.runtime.IProgressMonitor;\r
import org.eclipse.core.runtime.IStatus;\r
import org.eclipse.core.runtime.Status;\r
+import org.eclipse.jface.viewers.ViewerDropAdapter;\r
\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.common.OrderedTermBase;\r
+import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
import eu.etaxonomy.cdm.model.common.TermBase;\r
import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
import eu.etaxonomy.taxeditor.model.MessagingUtils;\r
*\r
*/\r
public class MoveDefinedTermOperation extends AbstractPostTaxonOperation {\r
- \r
- private Collection<DefinedTermBase> sourceTerms;// the actual DefinedTermBase(s) we are moving\r
- private TermBase targetTermOrVocabulary;// the target VOCABULARY or DefinedTerm we are moving these to\r
+\r
+ private final Collection<DefinedTermBase> sourceTerms;// the actual DefinedTermBase(s) we are moving\r
+ private final TermBase targetTermOrVocabulary;// the target VOCABULARY or DefinedTerm we are moving these to\r
+ private final int currentLocation;\r
\r
/**\r
* @param label\r
* @param undoContext\r
* @param postOperationEnabled\r
*/\r
- public MoveDefinedTermOperation(String label, IUndoContext undoContext, TermBase target, Collection<DefinedTermBase> sourceTerms,\r
- IPostOperationEnabled postOperationEnabled) {\r
+ public MoveDefinedTermOperation(String label,\r
+ IUndoContext undoContext,\r
+ TermBase target,\r
+ Collection<DefinedTermBase> sourceTerms,\r
+ IPostOperationEnabled postOperationEnabled,\r
+ int currentLocation) {\r
super(label, undoContext, postOperationEnabled);\r
- \r
+\r
this.targetTermOrVocabulary = target;\r
this.sourceTerms = sourceTerms;\r
+ this.currentLocation = currentLocation;\r
}\r
\r
/* (non-Javadoc)\r
@Override\r
public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
throws ExecutionException {\r
- \r
+\r
// need to make the moved DefinedTerm part of another DefinedTerm or Vocabulary (target)\r
// and remove it from old associations\r
- \r
+\r
//TODO move to ITermService\r
- \r
- for (DefinedTermBase term : sourceTerms){\r
+\r
+ for (DefinedTermBase term : sourceTerms) {\r
// do nothing when moving it on itself\r
if(targetTermOrVocabulary.equals(term)){\r
Status status = new Status(IStatus.CANCEL, StoreUtil.getPluginId(), "Term can not be added to itself");\r
MessagingUtils.informationDialog("", status);\r
return status;\r
}\r
- \r
+\r
if (targetTermOrVocabulary instanceof TermVocabulary) {\r
TermVocabulary termVocabulary = (TermVocabulary)targetTermOrVocabulary;\r
- \r
+\r
// do nothing when term is top level and gets added to the same vocabulary\r
if(term.getPartOf() == null && termVocabulary.equals(term.getVocabulary())){\r
Status status = new Status(IStatus.CANCEL, StoreUtil.getPluginId(), "Term is already in this vocabulary");\r
MessagingUtils.informationDialog("", status);\r
return status;\r
}\r
- \r
+\r
cleanTerm(term);\r
termVocabulary.addTerm(term);\r
- \r
+\r
} else if (targetTermOrVocabulary instanceof DefinedTermBase) {\r
cleanTerm(term);\r
DefinedTermBase targetDefinedTerm = (DefinedTermBase) targetTermOrVocabulary;\r
- targetDefinedTerm.addIncludes(term);\r
- targetDefinedTerm.getVocabulary().addTerm(term); \r
+\r
+ if(targetTermOrVocabulary instanceof OrderedTermBase && term instanceof OrderedTermBase) {\r
+ TermVocabulary tVoc = ((DefinedTermBase) targetTermOrVocabulary).getVocabulary();\r
+ if(tVoc instanceof OrderedTermVocabulary) {\r
+ OrderedTermVocabulary otVoc = (OrderedTermVocabulary)tVoc;\r
+ // the link between the location and the add term (below / above)\r
+ // method is determined by the compare method in the\r
+ // DefinedTermEditor's ViewerSorter (DefinedTermSorter) class\r
+ if(currentLocation == ViewerDropAdapter.LOCATION_BEFORE) {\r
+ otVoc.addTermBelow((OrderedTermBase)term, (OrderedTermBase)targetTermOrVocabulary);\r
+ }\r
+\r
+ if(currentLocation == ViewerDropAdapter.LOCATION_AFTER) {\r
+ otVoc.addTermAbove((OrderedTermBase)term, (OrderedTermBase)targetTermOrVocabulary);\r
+ }\r
+ }\r
+ }\r
+ if(currentLocation == ViewerDropAdapter.LOCATION_ON) {\r
+ targetDefinedTerm.addIncludes(term);\r
+ targetDefinedTerm.getVocabulary().addTerm(term);\r
+ }\r
}\r
\r
}\r
//return null;\r
- return postExecute(targetTermOrVocabulary); \r
+ return postExecute(targetTermOrVocabulary);\r
}\r
- \r
+\r
private DefinedTermBase cleanTerm(DefinedTermBase term){\r
\r
DefinedTermBase partOf = term.getPartOf();\r
if(partOf != null){\r
partOf.removeIncludes(term);\r
}\r
- \r
- \r
+\r
+\r
TermVocabulary vocabulary = term.getVocabulary();\r
if(vocabulary != null){\r
vocabulary.removeTerm(term);\r
}\r
- \r
+\r
return term;\r
}\r
- \r
+\r
\r
/* (non-Javadoc)\r
* @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
--- /dev/null
+package eu.etaxonomy.taxeditor.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.taxeditor.view.CdmViewerChooser;
+
+public class OpenHandler extends AbstractHandler {
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
+ if(currentSelection instanceof IStructuredSelection){
+ Object firstElement = ((IStructuredSelection) currentSelection).getFirstElement();
+ CdmViewerChooser viewerChooser = new CdmViewerChooser(HandlerUtil.getActiveShell(event));
+ viewerChooser.chooseViewer(firstElement, event);
+ }
+ return null;
+ }
+
+}
*/
public class ContextListenerAdapter implements IContextListener {
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.model.IContextListener#contextAboutToStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
- */
/** {@inheritDoc} */
@Override
public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.model.IContextListener#contextStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
- */
/** {@inheritDoc} */
@Override
public void contextStop(IMemento memento, IProgressMonitor monitor) {
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.model.IContextListener#contextStart(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
- */
/** {@inheritDoc} */
@Override
public void contextStart(IMemento memento, IProgressMonitor monitor) {
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.model.IContextListener#contextRefresh(org.eclipse.core.runtime.IProgressMonitor)
- */
@Override
public void contextRefresh(IProgressMonitor monitor) {
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.model.IContextListener#workbenchShutdown(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
- */
/** {@inheritDoc} */
@Override
public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
}
else if(element instanceof CategoricalData){
String categoricalDataText = getCategoricalDataText((CategoricalData) element);
- if(categoricalDataText.isEmpty()){
+ if(categoricalDataText==null || categoricalDataText.isEmpty()){
categoricalDataText = noLabelString;
}
return categoricalDataText;
}
else if (element instanceof QuantitativeData) {
String quantitativeDataText = getQuantitativeDataText((QuantitativeData) element);
- if(quantitativeDataText.isEmpty()){
+ if(quantitativeDataText==null || quantitativeDataText.isEmpty()){
quantitativeDataText = noLabelString;
}
return quantitativeDataText;
import java.util.ArrayList;
import java.util.List;
+import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.log4j.Logger;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus;
throwable = getDefaultThrowable();
}
- // add main execption
- for (StackTraceElement ste : throwable.getStackTrace()) {
- childStatuses.add(new Status(IStatus.ERROR, pluginId, "at " + ste.toString()));
- }
+ int thCount = 0;
+ int maxTraces = 4;
- // add cause
- if(throwable.getCause() != null) {
- childStatuses.add(new Status(IStatus.ERROR, pluginId, ""));
- childStatuses.add(new Status(IStatus.ERROR, pluginId, "Caused by : " + throwable.getCause().toString()));
- for (StackTraceElement ste : throwable.getCause().getStackTrace()) {
- // build & add status
- childStatuses.add(new Status(IStatus.ERROR, pluginId, "at " + ste.toString()));
+ for(Throwable th : ExceptionUtils.getThrowables(throwable)) {
+ // add main exception
+ if(thCount == 0) {
+ for (StackTraceElement ste : th.getStackTrace()) {
+ childStatuses.add(new Status(IStatus.ERROR, pluginId, " at " + ste.toString()));
+ }
+ } else {
+ // add recursive causes
+ if(th != null) {
+ childStatuses.add(new Status(IStatus.ERROR, pluginId, ""));
+ String msg = th.toString();
+ childStatuses.add(new Status(IStatus.ERROR, pluginId, "Caused by : " + msg));
+ int traceCount = 0;
+ for (StackTraceElement ste : th.getStackTrace()) {
+ // add only pre-defined number of trace elements
+ if(traceCount > maxTraces) {
+ childStatuses.add(new Status(IStatus.ERROR, pluginId, " ...."));
+ break;
+ }
+ // build & add status
+ childStatuses.add(new Status(IStatus.ERROR, pluginId, " at " + ste.toString()));
+ traceCount++;
+ }
+ }
}
+ thCount++;
}
-
String finalMessage = message;
if(finalMessage == null || finalMessage.isEmpty()) {
// $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.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
INewWizard, IConversationEnabled {
private ConversationHolder conversation;
-
+
protected CdmFormFactory formFactory;
private T entity;
private IWorkbench workbench;
private IStructuredSelection selection;
-
+
/**
* <p>Constructor for AbstractNewEntityWizard.</p>
*
public AbstractNewEntityWizard(){
setWindowTitle(String.format("New %s", getEntityName()));
}
-
+
/**
* FIXME there might be a smarter way to do this,
- *
+ *
* @return
*/
protected abstract String getEntityName();
@Override
public boolean performFinish() {
saveEntity();
-
+
conversation.commit();
conversation.close();
return true;
}
-
+
/**
* <p>Getter for the field <code>entity</code>.</p>
*
public T getEntity() {
return entity;
}
-
+
/**
* <p>Setter for the field <code>entity</code>.</p>
*
public void setEntity(T entity){
this.entity = entity;
}
-
+
/**
* Adds the entity to the current persistence context
*/
/** {@inheritDoc} */
@Override
public void init(IWorkbench workbench, IStructuredSelection selection) {
- this.workbench = workbench != null ? workbench : StoreUtil.getWorkbench();
-
+ this.workbench = workbench != null ? workbench : AbstractUtility.getWorkbench();
+
if(selection == null){
- ISelectionService service = (ISelectionService) this.workbench.getActiveWorkbenchWindow().getSelectionService();
+ ISelectionService service = this.workbench.getActiveWorkbenchWindow().getSelectionService();
if(service.getSelection() instanceof IStructuredSelection){
selection = (IStructuredSelection) service.getSelection();
}
}
this.selection = selection;
-
+
formFactory = new CdmFormFactory(Display.getCurrent(), null);
conversation = CdmStore.createConversation();
entity = createNewEntity();
-
+
}
-
+
/**
* <p>createNewEntity</p>
*
* @return a T object.
*/
protected abstract T createNewEntity();
-
+
/**
* <p>getConversationHolder</p>
*
* @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
*/
- public ConversationHolder getConversationHolder() {
+ @Override
+ public ConversationHolder getConversationHolder() {
return conversation;
}
-
+
/** {@inheritDoc} */
- public void update(CdmDataChangeMap changeEvents) {}
+ @Override
+ public void update(CdmDataChangeMap changeEvents) {}
/**
* @return the workbench
--- /dev/null
+package eu.etaxonomy.taxeditor.newWizard;
+
+public interface IWizardPageListener {
+
+ public void close();
+
+}
private TaxonNodeWizardPage taxonNodePage;
private boolean openEmptyEditor;
private UUID generatedTaxonNodeUuid;
+ private IWizardPageListener wizardPageListener;
@Override
public void addPages() {
- taxonNodePage = new TaxonNodeWizardPage(formFactory, getConversationHolder(), getEntity());
+ taxonNodePage = new TaxonNodeWizardPage(formFactory, getConversationHolder(), getEntity(), wizardPageListener);
addPage(taxonNodePage);
}
return "Taxon";
}
+ public void addWizardPageListener(IWizardPageListener wizardPageListener){
+ this.wizardPageListener = wizardPageListener;
+ }
+
}
\ No newline at end of file
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
package eu.etaxonomy.taxeditor.preference;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
* @created 20.05.2008
* @version 1.0
*/
-public class DescriptionPreferences extends PreferencePage implements
+public class DescriptionPreferences extends FieldEditorPreferencePage implements
IWorkbenchPreferencePage {
/** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.desc"{trunked}</code> */
public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.description";
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
- */
+
/** {@inheritDoc} */
@Override
- protected Control createContents(Composite parent) {
-
- Composite container = new Composite(parent, SWT.NULL);
- container.setLayout(new GridLayout());
+ public void init(IWorkbench workbench) {
+ setPreferenceStore(PreferencesUtil.getPreferenceStore());
- //
- return container;
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- /** {@inheritDoc} */
- public void init(IWorkbench workbench) {
-
+ @Override
+ protected void createFieldEditors() {
+ addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS,
+ "Show vocabulary id for term labels.",
+ getFieldEditorParent()));
}
}
*/
public static final String SHOW_DEBUG_INFORMATION = "eu.etaxonomy.taxeditor.showDebugInformation";
+ /**
+ * Whether to show database id in the entity selection dialogs.
+ */
+ public static final String SHOW_ID_IN_ENTITY_SELECTION_DIAOLOG = "eu.etaxonomy.taxeditor.showIdInEntitySelectionDiaolog";
+
+ /**
+ * Whether to show vocabulary of the term when displaying it's label.
+ */
+ public static final String SHOW_VOCABULARY_ID_FOR_TERM_LABELS = "eu.etaxonomy.taxeditor.showVocabularyIdForTermLabels";
+
/**
*
*/
public static final String SORT_RANKS_HIERARCHICHALLY = "eu.etaxonomy.taxeditor.menus.sortRanksHierarchichally";
/** Constant <code>SORT_NODES_NATURALL="eu.etaxonomy.taxeditor.menus.sortNodesN"{trunked}</code> */
public static final String SORT_NODES_NATURALLY = "eu.etaxonomy.taxeditor.menus.sortNodesNaturally";
-
+
/**
* Whether multilanguage text fields should be editable in multiple languages.
*/
addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_DEBUG_INFORMATION,
"Show UUID and object ID in supplemental data view.",
getFieldEditorParent()));
+ addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_ID_IN_ENTITY_SELECTION_DIAOLOG,
+ "Show object id in entity selection dialogs.",
+ getFieldEditorParent()));
addField(new BooleanFieldEditor(
IPreferenceKeys.SHOULD_EXPAND_SECTION_WHEN_DATA_AVAILABLE,
"Should expand sections when data is available (Details View). This might make the Editor slow.",
private void checkDbSchemaVersionCompatibility(IProgressMonitor monitor) {
monitor.subTask("Checking if datasource is compatible with this editor.");
String dbSchemaVersion;
- boolean result = false;
+
+ String message = null;
try {
dbSchemaVersion = cdmSource.getDbSchemaVersion();
// we assume that empty dbSchemaVersion means an empty database and
// skip version checking
- result = dbSchemaVersion == null ? true : CdmMetaData
- .isDbSchemaVersionCompatible(dbSchemaVersion);
+
+ if(dbSchemaVersion != null) {
+ int compareVersion = CdmMetaData.compareVersion(dbSchemaVersion, CdmMetaData.getDbSchemaVersion(), 3, null);
+ // if the datasource version is greater than the taxeditor compatible version then the taxeditor needs to
+ // be updated else the datasource needs to be updated
+ if(compareVersion > 0) {
+ message = "Please update the Taxonomic Editor (Help->Check for Updates) or choose a compatible datasource";
+ } else if (compareVersion < 0) {
+ message = "Please update the chosen datasource or choose a new data source to connect to in the Datasource View.";
+ }
+ }
monitor.worked(1);
} catch (CdmSourceException e) {
//
}
- if (!result) {
+ if (message != null) {
// Show an error message
MessagingUtils
.messageDialog(
- "DatabaseCompatibilityCheck failed",
+ "Datasource Compatibility Check failed",
this,
"The database schema for the chosen "
+ "datasource '"
+ cdmSource
- + "' \n is not valid for this version of the taxonomic editor. \n"
- + "Please update the chosen datasource or choose a new data source to connect to in the Datasource View.",
+ + "' \n is not compatible for this version of the taxonomic editor. \n\n"
+ + message,
null);
monitor.setCanceled(true);
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.RelationshipBase;
import eu.etaxonomy.cdm.model.common.User;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.name.NameRelationship;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
package eu.etaxonomy.taxeditor.ui.combo;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.preference.Resources;
import eu.etaxonomy.taxeditor.store.CdmStore;
private List<T> customPreferredTerms;
+ private boolean addEmptyElement;
+
public TermComboElement(CdmFormFactory formFactory,
- ICdmFormElement parentElement, TermType termType, String labelString, T selection,
+ ICdmFormElement parentElement, TermType termType, String labelString, T selection, boolean addEmptyElement,
int style) {
- this(formFactory, parentElement, null, termType, null, labelString, selection, style);
+ this(formFactory, parentElement, null, termType, null, labelString, selection, addEmptyElement, style);
}
public TermComboElement(CdmFormFactory formFactory,
- ICdmFormElement parentElement, TermVocabulary<?> termVocabulary, String labelString, T selection,
+ ICdmFormElement parentElement, TermVocabulary<?> termVocabulary, String labelString, T selection, boolean addEmptyElement,
int style) {
- this(formFactory, parentElement, null, null, termVocabulary, labelString, selection, style);
+ this(formFactory, parentElement, null, null, termVocabulary, labelString, selection, addEmptyElement, style);
}
public TermComboElement(CdmFormFactory formFactory,
- ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection,
+ ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection, boolean addEmptyElement,
int style) {
- this(formFactory, parentElement, termClass, null, null, labelString, selection, style);
+ this(formFactory, parentElement, termClass, null, null, labelString, selection, addEmptyElement, style);
}
private TermComboElement(CdmFormFactory formFactory,
- ICdmFormElement parentElement, Class<T> termClass, TermType termType, TermVocabulary<?> termVocabulary, String labelString, T selection,
+ ICdmFormElement parentElement, Class<T> termClass, TermType termType, TermVocabulary<?> termVocabulary, String labelString, T selection, boolean addEmptyElement,
int style) {
super(formFactory, parentElement);
else{
this.termClass = (Class<T>) DefinedTerm.class;
}
+ this.addEmptyElement = addEmptyElement;
if (labelString != null) {
label = formFactory.createLabel(getLayoutComposite(), labelString);
public void setSelection(T selection) {
this.selection = selection;
- this.selection = selection;
-
Listener[] listeners = combo.getListeners(SWT.Selection);
for (Listener listener : listeners) {
int i = 1;
int index = 0;
- // Add an empty element for when nothing was selected yet
- combo.add(EMPTY_ELEMENT_LABEL);
- terms.add(emptyElement);
+ if(addEmptyElement){
+ // Add an empty element for when nothing was selected yet
+ combo.add(EMPTY_ELEMENT_LABEL);
+ terms.add(emptyElement);
+ }
if (termComparator != null) {
Collections.sort(preferredTerms, termComparator);
if (term == null){
return "";
}else{
- return term.getLabel(CdmStore.getDefaultLanguage());
+ String termLabel = term.getLabel(CdmStore.getDefaultLanguage());
+ if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS)
+ && term.getVocabulary()!=null){
+ termLabel += " ["+term.getVocabulary().getLabel(CdmStore.getDefaultLanguage())+"]";
+ }
+ return termLabel;
}
}
populateTerms(customPreferredTerms);
}
+ public void removeEmptyElement(){
+ if(addEmptyElement){
+ if(terms.contains(emptyElement)){
+ terms.remove(emptyElement);
+ }
+ if(Arrays.asList(combo.getItems()).contains(EMPTY_ELEMENT_LABEL)){
+ combo.remove(EMPTY_ELEMENT_LABEL);
+ }
+ }
+ }
}
combo.setVisibleItemCount(count);
}
+ public void removeEmptyElement(){
+ terms.remove(emptyElement);
+ combo.remove(EMPTY_ELEMENT_LABEL);
+ }
+
}
// $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.common.CdmBase;
import eu.etaxonomy.cdm.model.common.ICdmBase;
import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
/**
protected List<UuidAndTitleCache<T>> model;
private final Set<T> transientCdmObjects = new HashSet<T>();
private final String settings;
-
+
protected T cdmBaseToBeFiltered;
-
+
/**
* <p>Constructor for AbstractFilteredCdmResourceSelectionDialog.</p>
*
* @param shell a {@link org.eclipse.swt.widgets.Shell} object.
- * @param conversation
+ * @param conversation
* @param title a {@link java.lang.String} object.
* @param multi a boolean.
* @param settings a {@link java.lang.String} object.
setTitle(title);
setMessage("Use * for wildcard, or ? to see all entries");
this.settings = settings;
-
+
this.conversation = conversation;
-
+
init();
-
+
initModel();
-
+
String objectTitle = getTitle(cdmObject);
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
- *
+ *
+ * Override in subclasses if you want different behavior
+ *
* @return
*/
protected ILabelProvider createDetailsLabelProvider() {
}
/**
- *
+ *
* @return
*/
protected ILabelProvider createListLabelProvider() {
* Will run before initModel()
*/
protected void init() {
-
+
}
-
+
/**
* <p>getSelectionFromDialog</p>
*
protected static <TYPE extends CdmBase> TYPE getSelectionFromDialog(AbstractFilteredCdmResourceSelectionDialog<TYPE> dialog) {
//dialog.setInitialPattern("");
int result = dialog.open();
-
+
if (result == Window.CANCEL) {
return null;
}
-
+
UUID uuid = dialog.getSelectedUuidAndTitleCache().getUuid();
if(uuid == null){
return null;
- }
+ }
return dialog.getCdmObjectByUuid(uuid);
}
-
+
/**
* Check if object was created during the life of this dialog. If not,
* retrieve it from the CdmStore.
}
return getPersistentObject(cdmUuid);
}
-
+
/**
* <p>getPersistentObject</p>
*
if(cdmObject == null){
return "";
}
-
+
if (cdmObject instanceof IIdentifiableEntity) {
- return ((IIdentifiableEntity) cdmObject).getTitleCache();
+ return ((IIdentifiableEntity) cdmObject).getTitleCache();
}
-
+
throw new IllegalArgumentException("Generic method only" +
" supports cdmObject of type IIdentifiableEntity." +
" Please implement specific method in subclass.");
}
-
+
/** {@inheritDoc} */
@Override
filterExcludedObjects();
super.refresh();
}
-
+
/**
* <p>initModel</p>
*/
public boolean equalsFilter(ItemsFilter filter) {
return false;
}
-
+
@Override
public boolean isConsistentItem(Object item) {
return false;
}
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.
+ // 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
+ // 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");
} catch (IllegalAccessException e) {
MessagingUtils.error(getClass(), e);
}
-
- // this also is not the nicest way to do it.
+
+ // 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)
*/
ItemsFilter itemsFilter, IProgressMonitor progressMonitor)
throws CoreException {
try {
- if(model != null){
+ if(model != null){
progressMonitor.beginTask("Looking for entities", model.size());
for(UuidAndTitleCache<T> element : model){
contentProvider.add(element, itemsFilter);
protected IStatus validateItem(Object item) {
return Status.OK_STATUS;
}
-
+
/**
* <p>getSelectedUuidAndTitleCache</p>
*
Object[] result = getResult();
return result[0] == null ? null : (UuidAndTitleCache) result[0];
}
-
+
/**
* <p>Getter for the field <code>settings</code>.</p>
*
}
return settings;
}
-
+
/**
- *
+ *
* @author n.hoffmann
* @created Oct 19, 2009
* @version 1.0
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
+ * @param parameter
* @return a {@link eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard} object.
*/
protected abstract AbstractNewEntityWizard getNewEntityWizard(String parameter);
-
+
public class FilteredCdmResourceLabelProvider extends LabelProvider {
@Override
public String getText(Object element) {
if (element == null) {
return null;
}
- return ((UuidAndTitleCache) element).getTitleCache();
- }
+ UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache) element;
+ String titleCache = uuidAndTitleCache.getTitleCache();
+ if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_ID_IN_ENTITY_SELECTION_DIAOLOG)){
+ titleCache += " ["+uuidAndTitleCache.getId()+"]";
+ }
+ return titleCache;
+ }
};
/* (non-Javadoc)
}
return null;
}
-
+
protected SelectionListener getNewWizardLinkSelectionListener(){
return new SelectionAdapter() {
-
+
/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
}
};
}
-
+
/**
* <p>getConversationHolder</p>
*
public ConversationHolder getConversationHolder() {
return conversation;
}
-
+
/** {@inheritDoc} */
@Override
public void update(CdmDataChangeMap changeEvents) {}
/**
- * Don't want to add for example a taxon or synonym to itself
- * so filter the list to remove the taxon in question
+ * Don't want to add for example a taxon or synonym to itself
+ * so filter the list to remove the taxon in question
* (<code>cdmBaseToBeFiltered</code>)
* so it is not available in the filtered list.
*/
private void filterExcludedObjects() {
if (model != null && cdmBaseToBeFiltered != null) {
-
+
UuidAndTitleCache uuidAndTitleCacheToRemove = null;
-
+
for (UuidAndTitleCache uuidAndTitleCache : model){
if ((cdmBaseToBeFiltered.getUuid()).equals(uuidAndTitleCache.getUuid())) {
uuidAndTitleCacheToRemove = uuidAndTitleCache;
- }
+ }
}
model.remove(uuidAndTitleCacheToRemove);
}
import eu.etaxonomy.cdm.api.service.IAgentService;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.agent.INomenclaturalAuthor;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
import eu.etaxonomy.taxeditor.newWizard.NewPersonWizard;
import eu.etaxonomy.taxeditor.newWizard.NewTeamWizard;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.featuretree.FeatureTreeEditorWizard;
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
import eu.etaxonomy.taxeditor.store.CdmStore;
return link;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getNewWizardLinkText()
- */
/** {@inheritDoc} */
@Override
protected String getNewWizardLinkText() {
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService;
import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
import eu.etaxonomy.taxeditor.newWizard.NewGrantedAuthorityWizard;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.IGroupService;
import eu.etaxonomy.cdm.model.common.Group;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
import eu.etaxonomy.taxeditor.newWizard.NewGroupWizard;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.TermVocabulary;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.location.Country;
import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.IUserService;
import eu.etaxonomy.cdm.model.common.User;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
import eu.etaxonomy.taxeditor.newWizard.NewUserWizard;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.section.description.ScopeSection;
import eu.etaxonomy.taxeditor.ui.section.description.StateDataElement;
import eu.etaxonomy.taxeditor.ui.section.description.StateDataSection;
-import eu.etaxonomy.taxeditor.ui.section.description.StateModifierElement;
import eu.etaxonomy.taxeditor.ui.section.description.StatisticalMeasurementValueElement;
import eu.etaxonomy.taxeditor.ui.section.description.StatisticalMeasurementValueSection;
import eu.etaxonomy.taxeditor.ui.section.description.detail.AbstractDetailedDescriptionDetailElement;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitCollectionElement;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitCollectionSection;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.NamedAreaDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.vocabulary.StateModifierCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierVocabulariesCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierVocabulariesElement;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionElement;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionSection;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureCollectionElement;
parentElement.addElement(element);
return element;
}
-
/**
- * <p>
- * createTermComboElement
- * </p>
- *
* @deprecated Use {@link #createDefinedTermComboElement(TermType, ICdmFormElement, String, DefinedTermBase, int)} instead
- * @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.
*/
@Deprecated
public <T extends DefinedTermBase> TermComboElement<T> createTermComboElement(Class<T> termComboType,
ICdmFormElement parentElement, String labelString, T selection, int style) {
TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termComboType, labelString,
- selection, style);
+ selection, true, style);
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,
+ ICdmFormElement parentElement,
+ String labelString,
+ T selection,
+ int style) {
+ TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termType, labelString, selection, true, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
- public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+ public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
TermType termType,
ICdmFormElement parentElement,
String labelString,
T selection,
+ boolean addEmptyElement,
int style) {
- TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termType, labelString, selection, style);
+ TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termType, labelString, selection, addEmptyElement, style);
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(
+ TermVocabulary<?> termVocabulary,
+ ICdmFormElement parentElement,
+ String labelString,
+ T selection,
+ int style) {
+ TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termVocabulary, labelString, selection, true, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
TermVocabulary<?> termVocabulary,
ICdmFormElement parentElement,
String labelString,
T selection,
+ boolean addEmptyElement,
int style) {
- TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termVocabulary, labelString, selection, style);
+ TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termVocabulary, labelString, selection, addEmptyElement, style);
adapt(element);
parentElement.addElement(element);
return element;
return section;
}
- public StateModifierCollectionSection createStateModifierCollectionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
- StateModifierCollectionSection section = new StateModifierCollectionSection(this, conversation, parentElement, style);
+ public RecommendedModifierVocabulariesCollectionSection createRecommendedModifierVocabulariesCollectionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+ RecommendedModifierVocabulariesCollectionSection section = new RecommendedModifierVocabulariesCollectionSection(this, conversation, parentElement, style);
addAndAdaptSection(parentElement, section);
return section;
}
element = new StateVocabularyCollectionElement(this, parentElement, (TermVocabulary<State>) entity, removeListener, backgroundColor, style);
break;
case Modifier:
- element = new StateModifierElement(this, parentElement, (TermVocabulary<DefinedTerm>) entity, removeListener, backgroundColor, style);
+ element = new RecommendedModifierVocabulariesElement(this, parentElement, (TermVocabulary<DefinedTerm>) entity, removeListener, backgroundColor, style);
break;
default:
break;
@Override
public void setEnabled(boolean enabled) {
text_cache.setEnabled(enabled);
- button_toggle.setEnabled(enabled);
- button_toggle.setGrayed(enabled);
+ button_toggle.setGrayed(enabled);
button_toggle.setSelection(enabled);
String symbolicName = enabled ? Resources.COLOR_FONT_DEFAULT : Resources.COLOR_TEXT_DISABLED;
text_cache.setForeground(StoreUtil.getColor(symbolicName));
package eu.etaxonomy.taxeditor.ui.section.agent;
+import java.awt.Checkbox;
import java.util.Arrays;
import org.eclipse.ui.forms.widgets.ExpandableComposite;
import eu.etaxonomy.cdm.model.agent.Team;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<Team> {
private ToggleableTextElement toggleable_nomenclaturalTitleCache;
+ private CheckboxElement hasAdditionalMembers;
private TeamMemberSection section_teamMembers;
toggleable_cache = formFactory.createToggleableTextField(formElement, "Title Cache", entity.getTitleCache(), entity.isProtectedTitleCache(), style);
toggleable_nomenclaturalTitleCache = formFactory.createToggleableTextField(formElement, "Abbrev. Title", entity.getNomenclaturalTitle(), entity.isProtectedNomenclaturalTitleCache(), style);
+ hasAdditionalMembers = formFactory.createCheckbox(formElement, "Additional Members", false, style);
section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, ExpandableComposite.EXPANDED);
section_teamMembers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
}
@Override
protected void updateContent() {
super.updateContent();
-
+
toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
toggleable_nomenclaturalTitleCache.setEnabled(getEntity()
.isProtectedNomenclaturalTitleCache());
setIrrelevant(
toggleable_cache.getState(),
Arrays.asList(new Object[] { toggleable_cache,
- toggleable_nomenclaturalTitleCache }));
-
+ toggleable_nomenclaturalTitleCache , hasAdditionalMembers}));
+
section_teamMembers.setEntity(getEntity());
}
public void handleEvent(Object eventSource) {
if (eventSource == toggleable_cache) {
handleToggleableCacheField();
+
} else if (eventSource == toggleable_nomenclaturalTitleCache) {
getEntity().setNomenclaturalTitle(
toggleable_nomenclaturalTitleCache.getText(),
toggleable_nomenclaturalTitleCache.getState());
setIrrelevant(
toggleable_nomenclaturalTitleCache.getState(),
- Arrays.asList(new Object[] { toggleable_nomenclaturalTitleCache }));
+ Arrays.asList(new Object[] { toggleable_nomenclaturalTitleCache, hasAdditionalMembers }));
} else if (eventSource == section_teamMembers) {
toggleable_cache.setText(getEntity().getTitleCache());
toggleable_nomenclaturalTitleCache.setText(getEntity()
.getNomenclaturalTitle());
+ } else if (eventSource == hasAdditionalMembers){
+ getEntity().setHasMoreMembers(hasAdditionalMembers.getSelection());
+ updateToggleableCacheField();
+ toggleable_nomenclaturalTitleCache.setText(getEntity()
+ .getNomenclaturalTitle());
}
firePropertyChangeEvent(new CdmPropertyChangeEvent(this, 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.
*/
import org.eclipse.swt.events.SelectionListener;
import eu.etaxonomy.cdm.model.agent.Person;
-import eu.etaxonomy.cdm.model.agent.Team;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
* <p>
* TeamMemberElement class.
* </p>
- *
+ *
* @author n.hoffmann
* @created Apr 30, 2010
* @version 1.0
* <p>
* Constructor for TeamMemberElement.
* </p>
- *
+ *
* @param cdmFormFactory
* a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
* object.
/*
* (non-Javadoc)
- *
+ *
* @see
* eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#createControls
* (eu.etaxonomy.taxeditor.forms.ICdmFormElement, int)
selection_person = formFactory
.createSelectionElement(Person.class,
getConversationHolder(), this, "Person", null,
- EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE,
+ EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE,
style);
}
/*
* (non-Javadoc)
- *
+ *
* @see
* eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#setEntity
* (eu.etaxonomy.cdm.model.common.VersionableEntity)
}
/** {@inheritDoc} */
- @Override
- public void handleEvent(Object eventSource) {
- if (eventSource == selection_person) {
- if (getParentElement() instanceof TeamMemberSection) {
- TeamMemberSection teamMemberSection = (TeamMemberSection) getParentElement();
- Team team = teamMemberSection.getEntity();
-
- int index = team.getTeamMembers().indexOf(getEntity());
-
- team.removeTeamMember(getEntity());
- team.addTeamMember(selection_person.getEntity(), index);
- firePropertyChangeEvent(new CdmPropertyChangeEvent(
- teamMemberSection, eventSource));
- }
- entity = selection_person.getEntity();
-
- }
- }
+ @Override
+ public void handleEvent(Object eventSource) {
+ if (eventSource == selection_person) {
+ if (getParentElement() instanceof TeamMemberSection) {
+ TeamMemberSection teamMemberSection = (TeamMemberSection) getParentElement();
+ teamMemberSection.getEntity().addTeamMember(selection_person.getEntity());
+ firePropertyChangeEvent(new CdmPropertyChangeEvent(teamMemberSection, eventSource));
+ }
+ entity = selection_person.getEntity();
+ }
+ }
}
// $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.agent.Team;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
/**
* <p>TeamMemberSection class.</p>
* @created Apr 30, 2010
* @version 1.0
*/
-public class TeamMemberSection extends AbstractEntityCollectionSection<Team, Person> {
+public class TeamMemberSection extends AbstractUnboundEntityCollectionSection<Team, Person> {
/**
* <p>Constructor for TeamMemberSection.</p>
public TeamMemberSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
super(cdmFormFactory, conversation, parentElement, null, style);
}
-
+
/** {@inheritDoc} */
@Override
public String getTitleString() {
return Person.NewTitledInstance("");
}
- /** {@inheritDoc} */
- @Override
- public Collection<Person> getCollection(Team entity) {
- return getEntity().getTeamMembers();
- }
-
/** {@inheritDoc} */
@Override
public String getEmptyString() {
public void removeElement(Person element) {
getEntity().removeTeamMember(element);
}
-
-
+
+ @Override
+ protected Collection<Person> getEntityCollection(Team entity) {
+ return getEntity().getTeamMembers();
+ }
+
+
}
@Override
public String getHeading() {
if (getEntity() != null){
- if(getEntity() instanceof Team){
+ if(getEntity().getClass().isAssignableFrom(Team.class)){
return "Team";
}else if (getEntity().getClass().isAssignableFrom(Person.class)){
return "Person";
return "Team or Person";
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
- */
@Override
protected AbstractCdmDetailElement<TeamOrPersonBase> createCdmDetailElement(AbstractCdmDetailSection<TeamOrPersonBase> parentElement, int style) {
MessagingUtils.error(this.getClass(), "Detail element was not created. Seems like the case was not implemented for TeamOrPersonBaseDetailSection", null);
import eu.etaxonomy.cdm.common.CdmUtils;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.name.NonViralName;
-import eu.etaxonomy.cdm.model.name.Rank;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.Classification;
private Taxon taxon;
- private TextWithLabelElement text_newTaxonName;
+ private TextWithLabelElement textNewTaxonName;
private CheckboxElement checkbox_openInEditor;
super(formFactory, formElement);
}
- /*
- * (non-Javadoc)
- *
- * @see
- * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
- * (eu.etaxonomy.taxeditor.forms.ICdmFormElement,
- * eu.etaxonomy.cdm.model.common.IAnnotatableEntity, int)
- */
/** {@inheritDoc} */
@Override
protected void createControls(ICdmFormElement formElement,
"Reuse existing name", null,
EntitySelectionElement.DELETABLE, style);
- text_newTaxonName = formFactory.createTextWithLabelElement(formElement,
+ textNewTaxonName = formFactory.createTextWithLabelElement(formElement,
"New Taxon", "", style);
- text_newTaxonName.setFocus();
+ textNewTaxonName.setFocus();
preFillParentTaxonName();
checkbox_openInEditor = formFactory.createCheckbox(formElement,
taxonName = CdmUtils.concat(" ", name.getGenusOrUninomial(),name.getSpecificEpithet());
}
if (StringUtils.isNotBlank(taxonName)){
- text_newTaxonName.setText(taxonName + " ");
- if(text_newTaxonName.getMainControl() instanceof Text){
- Text text = (Text)text_newTaxonName.getMainControl();
- text.setSelection(text_newTaxonName.getText().length());
+ textNewTaxonName.setText(taxonName + " ");
+ if(textNewTaxonName.getMainControl() instanceof Text){
+ Text text = (Text)textNewTaxonName.getMainControl();
+ text.setSelection(textNewTaxonName.getText().length());
}
}
}
}
}
- /*
- * (non-Javadoc)
- *
- * @see
- * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
- * .lang.Object)
- */
/** {@inheritDoc} */
@Override
public void handleEvent(Object eventSource) {
} else if (eventSource == selection_reuseExistingTaxon) {
boolean enabled = selection_reuseExistingTaxon.getEntity() == null;
selection_reuseExistingName.setEnabled(enabled);
- text_newTaxonName.setEnabled(enabled);
+ textNewTaxonName.setEnabled(enabled);
setTaxon(selection_reuseExistingTaxon.getEntity());
} else if (eventSource == selection_reuseExistingName) {
boolean enabled = selection_reuseExistingName.getEntity() == null;
selection_reuseExistingTaxon.setEnabled(enabled);
- text_newTaxonName.setEnabled(enabled);
+ textNewTaxonName.setEnabled(enabled);
setTaxon(selection_reuseExistingName.getEntity());
- } else if (eventSource == text_newTaxonName) {
- boolean enabled = CdmUtils.isEmpty(text_newTaxonName.getText());
+ } else if (eventSource == textNewTaxonName) {
+ boolean enabled = CdmUtils.isEmpty(textNewTaxonName.getText());
selection_reuseExistingTaxon.setEnabled(enabled);
selection_reuseExistingName.setEnabled(enabled);
- setTaxon(text_newTaxonName.getText());
+ setTaxon(textNewTaxonName.getText());
+ complete = !textNewTaxonName.getText().isEmpty();
} else if (eventSource == checkbox_openInEditor) {
setOpenInEditor(checkbox_openInEditor.getSelection());
}
return classification;
}
- /**
- * <p>
- * isOpenInEditor
- * </p>
- *
- * @return the openInEditor
- */
public boolean isOpenInEditor() {
return openInEditor;
}
return taxon;
}
- /**
- * @param classification
- * the classification to set
- */
private void setClassification(Classification classification) {
this.classification = classification;
setParentTreeNode(classification);
}
- /**
- * @param parentTreeNode
- * the parentTreeNode to set
- */
private void setParentTreeNode(ITaxonTreeNode parentTreeNode) {
this.parentTreeNode = parentTreeNode;
}
}
- /**
- * @param reuseExistingTaxon
- * the reuseExistingTaxon to set
- */
private void setTaxon(Taxon taxon) {
this.taxon = taxon;
}
taxon = Taxon.NewInstance(taxonName, secundum);
}
- /**
- * @param openInEditor
- * the openInEditor to set
- */
private void setOpenInEditor(boolean openInEditor) {
this.openInEditor = openInEditor;
}
- /**
- * <p>
- * isComplete
- * </p>
- *
- * @return the complete
- */
+ public TextWithLabelElement getTextNewTaxonName() {
+ return textNewTaxonName;
+ }
+
public boolean isComplete() {
return complete;
}
package eu.etaxonomy.taxeditor.ui.section.classification;
import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.newWizard.IWizardPageListener;
import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
* @created Sep 15, 2009
* @version 1.0
*/
-public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeNode> {
+public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeNode> implements Listener{
- /**
+ private final IWizardPageListener wizardPageListener;
+
+ /**
* <p>
* Constructor for TaxonNodeWizardPage.
* </p>
* object.
* @param entity
* a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
+ * @param closeOnEnterListener
*/
public TaxonNodeWizardPage(CdmFormFactory formFactory,
- ConversationHolder conversation, ITaxonTreeNode entity) {
+ ConversationHolder conversation, ITaxonTreeNode entity, IWizardPageListener closeOnEnterListener) {
super(formFactory, conversation, entity);
+ this.wizardPageListener = closeOnEnterListener;
setTitle("Create a new Taxon");
}
/** {@inheritDoc} */
@Override
public TaxonNodeDetailElement createElement(ICdmFormElement rootElement) {
-
- TaxonNodeDetailElement detailElement = formFactory.createTaxonNodeDetailElement(rootElement);
+ TaxonNodeDetailElement detailElement = formFactory.createTaxonNodeDetailElement(rootElement);
detailElement.setEntity(entity);
formFactory.addPropertyChangeListener(this);
+ detailElement.getTextNewTaxonName().getMainControl().addListener(SWT.KeyDown, this);
return detailElement;
}
}
}
- /**
- *
- */
@Override
protected void checkComplete() {
TaxonNodeDetailElement detailElement = (TaxonNodeDetailElement) getDetailElement();
if (detailElement.getClassification() == null) {
- setMessage("No classification", WARNING);
- } else {
+ setMessage("No classification set.", WARNING);
+ }
+ else if(detailElement.getTextNewTaxonName().getText().isEmpty()){
+ setMessage("No taxon name set.", ERROR);
+ }
+ else if(!detailElement.isComplete()){
+ setMessage("Not all required fields are filled.", ERROR);
+ }
+ else {
setMessage(null);
setPageComplete(true);
return;
formFactory.removePropertyChangeListener(this);
super.dispose();
}
+
+ @Override
+ public void handleEvent(Event event) {
+ TaxonNodeDetailElement detailElement = (TaxonNodeDetailElement) getDetailElement();
+ if(event.widget == detailElement.getTextNewTaxonName().getMainControl()
+ && event.keyCode == SWT.CR && isPageComplete()){
+ wizardPageListener.close();
+ }
+ }
+
}
}
if(entity.getId()>0){
combo_modifier.setSelection(entity);
+ combo_modifier.removeEmptyElement();
}
}
/** {@inheritDoc} */
@Override
public void handleEvent(Object eventSource) {
- if(eventSource==combo_modifier){
- if(getParentElement() instanceof ModifierSection){
- ModifierSection parentSection = (ModifierSection) getParentElement();
- if((parentSection).getEntity() instanceof StateData){
+ if(eventSource==combo_modifier && combo_modifier.getSelection()!=null){
+ combo_modifier.removeEmptyElement();
+ if(getParentElement() instanceof AbstractFormSection){
+ AbstractFormSection<?> parentSection = (AbstractFormSection<?>) getParentElement();
+ if(parentSection.getEntity() instanceof StateData){
StateData stateData = (StateData) parentSection.getEntity();
stateData.removeModifier(entity);
DefinedTerm term = combo_modifier.getSelection();
stateData.addModifier(term);
entity = term;
}
+ else if(parentSection.getEntity() instanceof StatisticalMeasurementValue){
+ StatisticalMeasurementValue parentEntity = (StatisticalMeasurementValue) parentSection.getEntity();
+ parentEntity.removeModifier(entity);
+ DefinedTerm term = combo_modifier.getSelection();
+ parentEntity.addModifier(term);
+ entity = term;
+ }
}
}
}
combo_state.setTerms(stateTerms);
combo_state.setSelection(entity.getState());
section_modifiers.setEntity(entity);
+ section_modifiers.setExpanded(!entity.getModifiers().isEmpty());
if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
}
+ if(getEntity().getId()>0){
+ combo_state.removeEmptyElement();
+ }
}
/** {@inheritDoc} */
@Override
public void createControls(ICdmFormElement element, int style) {
combo_state = formFactory.createDefinedTermComboElement(TermType.State, element, "State", null, style);
- section_modifiers = formFactory.createModifierSection(getConversationHolder(), element, ExpandableComposite.TWISTIE);
+ section_modifiers = formFactory.createModifierSection(getConversationHolder(), element, ExpandableComposite.TWISTIE|ExpandableComposite.EXPANDED);
section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
text_modifyingText = formFactory.createTextWithLabelElement(element, "Modifying Text", null, style);
}
public void handleEvent(Object eventSource) {
if(eventSource == combo_state){
getEntity().setState(combo_state.getSelection());
+ combo_state.removeEmptyElement();
}
if(eventSource == text_modifyingText){
getEntity().putModifyingText(LanguageString.NewInstance(text_modifyingText.getText(), CdmStore.getDefaultLanguage()));
}
else if(eventSource == combo_type){
getEntity().setType(combo_type.getSelection());
+ combo_type.removeEmptyElement();
}
}
}
public void handleEvent(Object eventSource) {
if(eventSource == comboMeasurementUnit){
getEntity().setUnit(comboMeasurementUnit.getSelection());
+ comboMeasurementUnit.removeEmptyElement();
}else if (eventSource == section_statisticalMeasurementValues){
// FIXME
}
/** {@inheritDoc} */
@Override
public Collection<TypeDesignationBase> getCollection(TaxonNameBase entity) {
+ if (entity == null){
+ return null;
+ }
return entity.getTypeDesignations();
}
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.element.OriginalLabelDataElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
private SourceCollectionDetailSection section_source;
+ private OriginalLabelDataElement textOriginalLabel;
+
/**
* <p>
* Constructor for DerivedUnitBaseDetailElement.
// .setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
// section_duplicates.setEntity(entity);
+ textOriginalLabel = formFactory.createOriginalLabelDataElement(formElement);
+ textOriginalLabel.setEntity(getEntity());
+
section_source = formFactory.createSourceCollectionDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
section_source.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
section_source.setEntity(entity);
+
}
/** {@inheritDoc} */
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
/**
- * This class extends the functionality of {@link AbstractEntityCollectionSection}
- * by creating an {@link AbstractEntityCollectionElement} for an
- * ELEMENT which is not directly added the the model ENTITY.<br>
+ * This class extends the functionality of
+ * {@link AbstractEntityCollectionSection} by creating an
+ * {@link AbstractEntityCollectionElement} for an ELEMENT which is not directly
+ * added the the model ENTITY.<br>
* <br>
- * This is useful if the ELEMENT is created after the creation of the AbstractEntityCollectionElement itself
- * and not in this class.
+ * This is useful if the ELEMENT is created after the creation of the
+ * AbstractEntityCollectionElement itself and not in this class and also if you
+ * do not want to create empty elements. <br>
+ * <br>
+ * <b>Note:</b> In sub classes: do <b>not</b> override {@link #getCollection(Object)}. Use
+ * {@link #getEntityCollection(Object)} instead
*
* @author pplitzner
* @date 21.01.2014
\r
private StatisticalMeasureCollectionSection sectionStatisticalMeasures;\r
\r
- private StateModifierCollectionSection sectionStateModifiers;;\r
+ private RecommendedModifierVocabulariesCollectionSection sectionModifierVocabularies;\r
\r
/**\r
* @param formFactory\r
supportsCategoricalData = formFactory.createCheckbox(formElement, "Supports Categorical Data", entity.isSupportsCategoricalData(), style);\r
supportsCommonTaxonName = formFactory.createCheckbox(formElement, "Supports Common Taxon Name", entity.isSupportsCommonTaxonName(), style);\r
\r
- if(supportsCategoricalData.getSelection()){\r
- sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE);\r
+ if (supportsCategoricalData.getSelection()) {\r
+ sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(),\r
+ parentFormElement, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);\r
sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
sectionStateVocabularies.setEntity(getEntity());\r
\r
}\r
- if(supportsQuantitativeData.getSelection()){\r
- sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE);\r
+ if (supportsQuantitativeData.getSelection()) {\r
+ sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(),\r
+ parentFormElement, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);\r
sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
sectionMeasurementUnits.setEntity(getEntity());\r
\r
- sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE);\r
+ sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(getConversationHolder(),\r
+ parentFormElement, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);\r
sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
sectionStatisticalMeasures.setEntity(getEntity());\r
}\r
- if(supportsCategoricalData.getSelection() || supportsQuantitativeData.getSelection()){\r
- sectionStateModifiers = formFactory.createStateModifierCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE);\r
- sectionStateModifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
- sectionStateModifiers.setEntity(getEntity());\r
+ if (supportsCategoricalData.getSelection() || supportsQuantitativeData.getSelection()) {\r
+ sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(\r
+ getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE\r
+ | ExpandableComposite.EXPANDED);\r
+ sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
+ sectionModifierVocabularies.setEntity(getEntity());\r
}\r
- }\r
+ }\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.taxeditor.ui.section.vocabulary.DefinedTermDetailElement#handleEvent(java.lang.Object)\r
else if(eventSource == supportsQuantitativeData){\r
getEntity().setSupportsQuantitativeData(supportsQuantitativeData.getSelection());\r
if(supportsQuantitativeData.getSelection()){\r
- sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE);\r
- sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
- sectionMeasurementUnits.setEntity(getEntity());\r
-\r
- sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE);\r
- sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
- sectionStatisticalMeasures.setEntity(getEntity());\r
-\r
- if(!supportsCategoricalData.getSelection()){\r
- sectionStateModifiers = formFactory.createStateModifierCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE);\r
- sectionStateModifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
- sectionStateModifiers.setEntity(getEntity());\r
- }\r
+ removeElementsAndControls(supportsDistribution);\r
+ sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(),\r
+ parentFormElement, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);\r
+ sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
+ sectionMeasurementUnits.setEntity(getEntity());\r
+\r
+ sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(\r
+ getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);\r
+ sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
+ sectionStatisticalMeasures.setEntity(getEntity());\r
+\r
+ if (!supportsCategoricalData.getSelection()) {\r
+ sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(\r
+ getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);\r
+ sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
+ sectionModifierVocabularies.setEntity(getEntity());\r
+ }\r
}\r
else{\r
if(sectionMeasurementUnits!=null){\r
removeElementsAndControls(sectionMeasurementUnits);\r
removeElementsAndControls(sectionStatisticalMeasures);\r
if(!supportsCategoricalData.getSelection()){\r
- removeElementsAndControls(sectionStateModifiers);\r
+ removeElementsAndControls(sectionModifierVocabularies);\r
}\r
}\r
}\r
}\r
else if(eventSource == supportsCategoricalData){\r
getEntity().setSupportsCategoricalData(supportsCategoricalData.getSelection());\r
- if(supportsCategoricalData.getSelection()){\r
- sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE);\r
- sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
- sectionStateVocabularies.setEntity(getEntity());\r
-\r
- if(!supportsQuantitativeData.getSelection()){\r
- sectionStateModifiers = formFactory.createStateModifierCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE);\r
- sectionStateModifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
- sectionStateModifiers.setEntity(getEntity());\r
- }\r
- }\r
+ if (supportsCategoricalData.getSelection()) {\r
+ sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(),\r
+ parentFormElement, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);\r
+ sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
+ sectionStateVocabularies.setEntity(getEntity());\r
+\r
+ if (!supportsQuantitativeData.getSelection()) {\r
+ sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(\r
+ getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE| ExpandableComposite.EXPANDED);\r
+ sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
+ sectionModifierVocabularies.setEntity(getEntity());\r
+ }\r
+ }\r
else{\r
if(sectionStateVocabularies!=null){\r
removeElementsAndControls(sectionStateVocabularies);\r
if(!supportsQuantitativeData.getSelection()){\r
- removeElementsAndControls(sectionStateModifiers);\r
+ removeElementsAndControls(sectionModifierVocabularies);\r
}\r
}\r
}\r
this.entity = entity;
if(entity.getId()!=0){
comboMeasurementUnit.setSelection(entity);
+ comboMeasurementUnit.removeEmptyElement();
}
}
public void handleEvent(Object eventSource) {
if(eventSource==comboMeasurementUnit && comboMeasurementUnit.getSelection()!=null){
if(getParentElement() instanceof MeasurementUnitCollectionSection){
- Feature feature = ((MeasurementUnitCollectionSection) getParentElement()).getEntity();
+ MeasurementUnitCollectionSection parentElement = (MeasurementUnitCollectionSection) getParentElement();
+ Feature feature = parentElement.getEntity();
feature.removeRecommendedMeasurementUnit(entity);
MeasurementUnit measurementUnit = comboMeasurementUnit.getSelection();
feature.addRecommendedMeasurementUnit(measurementUnit);
entity = measurementUnit;
+ //update the parent section to re-set the listeners to the persisted measurement unit
+ parentElement.removeElementAndUpdate(null);
}
}
}
* @date Apr 27, 2015
*
*/
-public class StateModifierCollectionSection extends AbstractUnboundEntityCollectionSection<Feature, TermVocabulary<DefinedTerm>> {
+public class RecommendedModifierVocabulariesCollectionSection extends AbstractUnboundEntityCollectionSection<Feature, TermVocabulary<DefinedTerm>> {
- public StateModifierCollectionSection(CdmFormFactory formFactory,
+ public RecommendedModifierVocabulariesCollectionSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement, int style) {
- super(formFactory, conversation, parentElement, "Recommended state modifier", style);
+ super(formFactory, conversation, parentElement, "Recommended modifier vocabularies", style);
}
/* (non-Javadoc)
/** {@inheritDoc} */
@Override
public String getEmptyString() {
- return "No state modifiers yet.";
+ return "No modifiers vocabularies yet.";
}
/* (non-Javadoc)
/** {@inheritDoc} */
@Override
protected String getTooltipString() {
- return "Add a state modifier";
+ return "Add a modifier vocabulary";
}
* 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.section.description;
+package eu.etaxonomy.taxeditor.ui.section.vocabulary;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Color;
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.section.vocabulary.StateModifierCollectionSection;
/**
* @author pplitzner
* @date Apr 27, 2015
*
*/
-public class StateModifierElement extends AbstractEntityCollectionElement<TermVocabulary<DefinedTerm>> {
+public class RecommendedModifierVocabulariesElement extends AbstractEntityCollectionElement<TermVocabulary<DefinedTerm>> {
private VocabularyComboElement<DefinedTerm, TermVocabulary<DefinedTerm>> comboStateVocabulary;
* @param backgroundColor
* @param style
*/
- public StateModifierElement(CdmFormFactory formFactory, AbstractFormSection section, TermVocabulary<DefinedTerm> entity,
+ public RecommendedModifierVocabulariesElement(CdmFormFactory formFactory, AbstractFormSection section, TermVocabulary<DefinedTerm> entity,
SelectionListener removeListener, Color backgroundColor, int style) {
super(formFactory, section, entity, removeListener, false, backgroundColor, style);
@Override
public void createControls(ICdmFormElement element, int style) {
- comboStateVocabulary = formFactory.createVocabularyComboElement(TermType.Modifier, "State modifiers", null, element, style);
+ comboStateVocabulary = formFactory.createVocabularyComboElement(TermType.Modifier, "Modifier Vocabulary", null, element, style);
}
@Override
this.entity = entity;
if(entity.getId()!=0){
comboStateVocabulary.setSelection(entity);
+ comboStateVocabulary.removeEmptyElement();
}
}
@Override
public void handleEvent(Object eventSource) {
if(eventSource==comboStateVocabulary && comboStateVocabulary.getSelection()!=null){
- if(getParentElement() instanceof StateModifierCollectionSection){
- Feature feature = ((StateModifierCollectionSection) getParentElement()).getEntity();
+ if(getParentElement() instanceof RecommendedModifierVocabulariesCollectionSection){
+ RecommendedModifierVocabulariesCollectionSection parentElement = (RecommendedModifierVocabulariesCollectionSection) getParentElement();
+ Feature feature = parentElement.getEntity();
feature.removeRecommendedModifierEnumeration(entity);
TermVocabulary<DefinedTerm> vocabulary = comboStateVocabulary.getSelection();
feature.addRecommendedModifierEnumeration(vocabulary);
entity = vocabulary;
+ //update the parent section to re-set the listeners to the persisted measurement unit
+ parentElement.removeElementAndUpdate(null);
}
}
}
@Override
public void createControls(ICdmFormElement element, int style) {
- comboStateVocabulary = formFactory.createVocabularyComboElement(TermType.State, "State vocabularies", null, element, style);
+ comboStateVocabulary = formFactory.createVocabularyComboElement(TermType.State, "State vocabulary", null, element, style);
}
@Override
this.entity = entity;
if(entity.getId()!=0){
comboStateVocabulary.setSelection(entity);
+ comboStateVocabulary.removeEmptyElement();
}
}
public void handleEvent(Object eventSource) {
if(eventSource==comboStateVocabulary && comboStateVocabulary.getSelection()!=null){
if(getParentElement() instanceof StateVocabularyCollectionSection){
- Feature feature = ((StateVocabularyCollectionSection) getParentElement()).getEntity();
+ StateVocabularyCollectionSection parentElement = (StateVocabularyCollectionSection) getParentElement();
+ Feature feature = parentElement.getEntity();
feature.removeSupportedCategoricalEnumeration(entity);
TermVocabulary<State> vocabulary = comboStateVocabulary.getSelection();
feature.addSupportedCategoricalEnumeration(vocabulary);
entity = vocabulary;
+ //update the parent section to re-set the listeners to the persisted measurement unit
+ parentElement.removeElementAndUpdate(null);
}
}
}
this.entity = entity;
if(entity.getId()!=0){
comboStatisticalMeasure.setSelection(entity);
+ comboStatisticalMeasure.removeEmptyElement();
}
}
public void handleEvent(Object eventSource) {
if(eventSource==comboStatisticalMeasure && comboStatisticalMeasure.getSelection()!=null){
if(getParentElement() instanceof StatisticalMeasureCollectionSection){
- Feature feature = ((StatisticalMeasureCollectionSection) getParentElement()).getEntity();
+ StatisticalMeasureCollectionSection parentElement = (StatisticalMeasureCollectionSection) getParentElement();
+ Feature feature = parentElement.getEntity();
feature.removeRecommendedStatisticalMeasure(entity);
StatisticalMeasure statisticalMeasure = comboStatisticalMeasure.getSelection();
feature.addRecommendedStatisticalMeasure(statisticalMeasure);
entity = statisticalMeasure;
+ //update the parent section to re-set the listeners to the persisted measurement unit
+ parentElement.removeElementAndUpdate(null);
}
}
}
import java.util.Map;
import java.util.Map.Entry;
+import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionRegistry;
private Object input;
private Map<Entry<Class<?>, String>, ICdmViewer> nameViewerMap;
+ private ExecutionEvent executionEvent;
public CdmViewerChooser(Shell parentShell) {
this(parentShell, SWT.RESIZE | SWT.ON_TOP, true, false, false, false, false, "Open in ...",
/**
* Opens a popup dialog with all possible viewers for the given input.
* @param input the input for which the viewers are listed
+ * @param event the {@link ExecutionEvent} if invoked via command/handler
*/
- public void chooseViewer(Object input){
+ public void chooseViewer(Object input, ExecutionEvent event){
this.input = input;
+ this.executionEvent = event;
this.nameViewerMap = new HashMap<Entry<Class<?>, String>, ICdmViewer>();
IExtensionRegistry reg = Platform.getExtensionRegistry();
if(nameViewerMap.size()==1){
Entry<Class<?>, String> next = nameViewerMap.keySet().iterator().next();
ICdmViewer cdmViewer = nameViewerMap.get(next);
- cdmViewer.show(input, next.getKey());
+ cdmViewer.show(input, next.getKey(), event);
}
else{
if(nameViewerMap.isEmpty()){
if(nameViewerMap.containsKey(firstElement)){
Entry<Class<?>, String> entry = (Entry<Class<?>, String>)firstElement;
ICdmViewer cdmViewer = nameViewerMap.get(entry);
- cdmViewer.show(input, entry.getKey());
+ cdmViewer.show(input, entry.getKey(), this.executionEvent);
this.close();
}
}
import java.util.Map;
+import org.eclipse.core.commands.ExecutionEvent;
+
/**
* Implementors of this interface provide a mapping of input elements to views
* Opens the viewer defined by the given viewerClass for the given input.
* @param input the input for which a viewer should be opened
* @param viewerClass the qualified class name of the viewer
+ * @param event the {@link ExecutionEvent} if invoked via command/handler
*/
- public void show(Object input, Class<?> viewerClass);
+ public void show(Object input, Class<?> viewerClass, ExecutionEvent event);
}
derivateSearchComposite.getResultViewer().setInput(occurrences);
}
- /* (non-Javadoc)
- * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
- */
@Override
public void handleEvent(Event event) {
Widget eventSource = event.widget;
import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityDetailSection;
import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailSection;
import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.identifier.IdentifierDetailSection;
import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailSection;
import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyNodeDetailSection;
import eu.etaxonomy.taxeditor.ui.section.key.TaxonomicScopeSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.OriginalLabelDataSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection;
}
else{
Set<Marker> descriptionMarkers = ((DescriptionBase<?>) input).getMarkers();
-
+
Boolean isUseDescription = false;
for (Marker marker : descriptionMarkers) {
if (marker.getMarkerType()!= null && marker.getMarkerType().getUuid().equals(UsageTermCollection.uuidUseMarkerType)) {
}
} else if (input instanceof DescriptionElementBase) {
Set<Marker> descriptionMarkers = ((DescriptionElementBase) input).getInDescription().getMarkers();
-
+
Boolean isUseDescription = false;
for (Marker marker : descriptionMarkers) {
if (marker.getMarkerType()!= null && marker.getMarkerType().getUuid().equals(UsageTermCollection.uuidUseMarkerType)) {
DerivedUnitBaseDetailSection derivedUnitBaseDetailSection = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
addPart(derivedUnitBaseDetailSection);
- formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
- OriginalLabelDataSection originalLabelDataSection = formFactory.createOriginalLabelDataSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
- addPart(originalLabelDataSection);
-
//for editors working with facades
if(AbstractUtility.getActivePart() instanceof IDerivedUnitFacadePart){
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
TaxonAssociationDetailSection taxonAssociationDetailSection = formFactory.createTaxonAssociationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
addPart(taxonAssociationDetailSection);
}
-
+
+ formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+ IdentifierDetailSection identifierDetailSection = formFactory.createIdentifierDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
+ addPart(identifierDetailSection);
+
}
private void createFieldUnitSection(RootElement parent) {
<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="3.5.2.qualifier">
+<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="3.6.1.qualifier">
<aboutInfo>
<image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
<text>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.5.2-SNAPSHOT</version>
+ <version>3.6.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
</prerequisites>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.5.2-SNAPSHOT</version>
+ <version>3.6.1-SNAPSHOT</version>
<name>EDIT Taxonomic Editor</name>
<description>The Taxonomic Editor for EDIT's platform for
cybertaxonomy
<properties>
<java.codelevel>1.6</java.codelevel>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <cdmlib.version>3.5.2-SNAPSHOT</cdmlib.version>
+ <cdmlib.version>3.6.1-SNAPSHOT</cdmlib.version>
<!-- TODO can we use project.version ????? -->
<tycho.version>0.22.0</tycho.version>
- <taxeditor.version>3.5.2-SNAPSHOT</taxeditor.version>
+ <taxeditor.version>3.6.1-SNAPSHOT</taxeditor.version>
<update.dir>snapshot</update.dir>
<unitils.version>3.4.2</unitils.version>
</properties>