taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateMisapplicationOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInExisitingHomotypicalGroupOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInNewGroupOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonDescriptionOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonomicTreeOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteConceptRelationOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteDescriptionElementOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteImageOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteMisapplicationOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteSynonymOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonDescriptionOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonNodeOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonomicTreeOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteUserOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/FeatureMenuPreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/InitNomenclaturalCodePrefDialog.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/InitializeDbPreferences.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageMenuPreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/NameRelationshipTypeMenuPreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalStatusTypeMenuPreferences.java -text
import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.description.Distribution;\r
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
import eu.etaxonomy.cdm.model.description.TextData;\r
+import eu.etaxonomy.cdm.model.location.NamedArea;\r
\r
/**\r
* @author p.ciardelli\r
if (element instanceof CommonTaxonName) {\r
cache = ((CommonTaxonName) element).getName();\r
}\r
+ if (element instanceof Distribution) {\r
+ Distribution distribution = (Distribution) element;\r
+ \r
+ NamedArea area = distribution.getArea();\r
+ PresenceAbsenceTermBase<?> status = distribution.getStatus();\r
+ \r
+ if (status != null) {\r
+ cache = area.getLabel() + ", " + status.getLabel();\r
+ }\r
+ }\r
return cache == null ? "" : cache;\r
}\r
\r
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.resource.DeviceResourceException;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
public static final String EDIT_BITMAP_ICON = "edit_bitmap_icon";
public static final String IMG_DATASOURCE_CONNECTED = "IMG_DATASOURCE_CONNECTED";
public static final String IMG_DATASOURCE_DISCONNECTED = "IMG_DATASOURCE_DISCONNECTED";
+ public static final String IMG_NOT_FOUND = "IMG_NOT_FOUND";
/***************************************************************************
desc = ImageDescriptor.createFromURL(new URL(key));
registry.put(key, desc);
image = registry.get(key);
+ } catch (DeviceResourceException e) {
+ return getImageNotFound();
} catch (MalformedURLException e) {
// should never happen
- }catch (Exception e) {
+ } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return image;
}
- public ImageRegistry getImageRegistry() {
+ /**
+ * @return
+ */
+ public static Image getImageNotFound() {
+ return getImage(ImageResources.IMG_NOT_FOUND);
+ }
+
+ public ImageRegistry getImageRegistry() {
if (imageRegistry == null) {
imageRegistry = TaxeditorStorePlugin.getDefault().createImageRegistry();
initializeImageRegistry(imageRegistry);
registerImage(registry, IMG_DATASOURCE_CONNECTED,
"prj_obj.gif");
registerImage(registry, IMG_DATASOURCE_DISCONNECTED,
- "cprj_obj.gif");
+ "cprj_obj.gif");
+ registerImage(registry, IMG_NOT_FOUND,
+ "pic_not_found.PNG");
}
private void registerImage(ImageRegistry registry, String key,
*/\r
public class ImagesHelper {\r
\r
+ /**\r
+ * Quick and dirty method to get an element's first image file.\r
+ * \r
+ * @param element\r
+ * @return\r
+ */\r
+ public static ImageFile getImage(DescriptionElementBase element) {\r
+ List<Media> medias = element.getMedia();\r
+ \r
+ for(Media media : medias){\r
+ Set<MediaRepresentation> representations = media.getRepresentations();\r
+ \r
+ for(MediaRepresentation representation : representations){\r
+ List<MediaRepresentationPart> parts = representation.getParts();\r
+ \r
+ for (MediaRepresentationPart part : parts){\r
+ if(part instanceof ImageFile){\r
+ return (ImageFile) part;\r
+ }\r
+ }\r
+ } \r
+ }\r
+ return null;\r
+ }\r
+ \r
public static Set<ImageFile> getImages(TaxonDescription description){\r
Set<ImageFile> images = new HashSet<ImageFile>();\r
\r
* @param imageFile\r
*/\r
public static void addTaxonImage(Taxon taxon, DescriptionBase<?> imageGallery, ImageFile imageFile) {\r
+ \r
+ imageGallery.addElement(createImageElement(imageFile));\r
+ \r
+ }\r
+ \r
+ public static DescriptionElementBase createImageElement(ImageFile imageFile) {\r
\r
DescriptionElementBase descriptionElement = TextData.NewInstance(Feature.IMAGE());\r
\r
\r
descriptionElement.addMedia(media);\r
\r
- imageGallery.addElement(descriptionElement);\r
+ return descriptionElement;\r
\r
}\r
\r
import org.eclipse.core.runtime.IProgressMonitor;\r
import org.eclipse.core.runtime.IStatus;\r
\r
+import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
+import eu.etaxonomy.cdm.model.description.Distribution;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
import eu.etaxonomy.cdm.model.description.TextData;\r
+import eu.etaxonomy.cdm.model.media.ImageFile;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.model.ImagesHelper;\r
\r
/**\r
* @author p.ciardelli\r
throws ExecutionException {\r
\r
if (element == null) {\r
- element = TextData.NewInstance(feature);\r
+ if (feature.supportsCommonTaxonName()) {\r
+ element = CommonTaxonName.NewInstance("", null);\r
+ } else if (feature.supportsDistribution()) {\r
+ element = Distribution.NewInstance();\r
+ } else if (feature.equals(Feature.IMAGE())){\r
+ element = ImagesHelper.createImageElement(ImageFile.NewInstance(null, null));\r
+ } else {\r
+ element = TextData.NewInstance(feature);\r
+ }\r
}\r
description.addElement(element);\r
\r
this.description = description;\r
}\r
\r
+ public CreateImageOperation(String label, IUndoContext undoContext,\r
+ Taxon taxon, DescriptionBase<?> description, IPostOperationEnabled postOperationEnabled) {\r
+ super(label, undoContext, taxon, postOperationEnabled);\r
+ this.description = description;\r
+ }\r
+ \r
/* (non-Javadoc)\r
* @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
*/\r
public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
throws ExecutionException {\r
\r
+ if (imageFile == null) {\r
+ imageFile = ImageFile.NewInstance(null, null);\r
+ }\r
ImagesHelper.addTaxonImage(taxon, description, imageFile);\r
\r
- return postExecute(null);\r
+ return postExecute(imageFile);\r
}\r
\r
/* (non-Javadoc)\r
\r
ImagesHelper.addTaxonImage(taxon, description, imageFile);\r
\r
- return postExecute(null);\r
+ return postExecute(imageFile);\r
}\r
\r
/* (non-Javadoc)\r
--- /dev/null
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\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
+\r
+package eu.etaxonomy.taxeditor.operations;\r
+\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+\r
+import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 05.02.2009\r
+ * @version 1.0\r
+ * @author n.hoffmann\r
+ */\r
+public class CreateTaxonDescriptionOperation extends AbstractPostOperation {\r
+ \r
+ private TaxonDescription description;\r
+\r
+ public CreateTaxonDescriptionOperation(String label, IUndoContext undoContext,\r
+ Taxon taxon, IPostOperationEnabled postOperationEnabled) {\r
+ super(label, undoContext, taxon, postOperationEnabled);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ \r
+ description = TaxonDescription.NewInstance(taxon);\r
+ \r
+ return postExecute(description);\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
+ */\r
+ @Override\r
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ \r
+ taxon.addDescription(description);\r
+ \r
+ return postExecute(description);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+\r
+ taxon.removeDescription(description);\r
+ \r
+ return postExecute(null);\r
+ }\r
+}\r
--- /dev/null
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\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
+\r
+package eu.etaxonomy.taxeditor.operations;\r
+\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+\r
+import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 05.02.2009\r
+ * @version 1.0\r
+ * @author n.hoffmann\r
+ */\r
+public class DeleteTaxonDescriptionOperation extends AbstractPostOperation {\r
+ \r
+ private TaxonDescription description;\r
+\r
+ public DeleteTaxonDescriptionOperation(String label, IUndoContext undoContext,\r
+ Taxon taxon, TaxonDescription description, IPostOperationEnabled postOperationEnabled) {\r
+ super(label, undoContext, taxon, postOperationEnabled);\r
+ \r
+ this.description = description;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+\r
+ taxon.removeDescription(description);\r
+ \r
+ return postExecute(description);\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
+ */\r
+ @Override\r
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ return execute(monitor, info);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+\r
+ taxon.addDescription(description);\r
+ \r
+ return postExecute(null);\r
+ }\r
+}\r
* @created 12.06.2009
* @version 1.0
*/
- private class MenuPreferenceLabelProvider extends LabelProvider implements ITableLabelProvider{
+ class MenuPreferenceLabelProvider extends LabelProvider implements ITableLabelProvider{
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
PreferencesUtil.setPreferredTerms(preferredTerms, this.vocabulary);
+ PreferencesUtil.firePreferencesChanged(this.getClass());
+
return true;
}
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\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
+\r
+package eu.etaxonomy.taxeditor.preference;\r
+\r
+import org.eclipse.jface.viewers.ITableLabelProvider;\r
+import org.eclipse.jface.viewers.LabelProvider;\r
+import org.eclipse.jface.viewers.ViewerComparator;\r
+import org.eclipse.swt.graphics.Image;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Control;\r
+\r
+import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.taxeditor.store.VocabularyStore;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 24.08.2009\r
+ * @version 1.0\r
+ */\r
+public class LanguageMenuPreferences extends AbstractMenuPreferences<Language> {\r
+ \r
+ public final static String ID = "eu.etaxonomy.taxeditor.preferences.languages";\r
+ \r
+ /**\r
+ * @param initialVocabulary\r
+ * @param title\r
+ * @param description\r
+ */\r
+ public LanguageMenuPreferences() {\r
+ super(VocabularyStore.getLanguages(), "Language Preferences", "Configure language preferences.");\r
+ }\r
+ \r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.preference.AbstractMenuPreferences#createContents(org.eclipse.swt.widgets.Composite)\r
+ */\r
+ @Override\r
+ public Control createContents(Composite parent) {\r
+ Control control = super.createContents(parent);\r
+ \r
+ tableViewer.setLabelProvider(new LanguagePreferenceLabelProvider());\r
+ tableViewer.setComparator(new ViewerComparator());\r
+ \r
+ return control;\r
+ }\r
+ \r
+ class LanguagePreferenceLabelProvider extends LabelProvider implements ITableLabelProvider{\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)\r
+ */\r
+ public Image getColumnImage(Object element, int columnIndex) {\r
+ return null;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)\r
+ */\r
+ public String getColumnText(Object element, int columnIndex) {\r
+ String description = ((Language)element).getDescription();\r
+ if (description == null) {\r
+ description = ((Language)element).getLabel() + " - Warning: no description - not shown in menus";\r
+ }\r
+ return description;\r
+ }\r
+ \r
+ }\r
+}\r
import eu.etaxonomy.cdm.api.service.config.ITaxonServiceConfigurator;\r
import eu.etaxonomy.cdm.api.service.config.impl.TaxonServiceConfiguratorImpl;\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.TermBase;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
public static final String TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES = "taxonServiceConfigurator.doTaxaByCommonNames";\r
\r
public static final String HIDE_DATASOURCE_CHOOSER = "dataSourceChooser.hide";\r
+\r
+ public static final String PREFERRED_TERMS_CHANGE = "preferred_terms";\r
\r
/**\r
* \r
/** @return a <code>List</code> containing user preferred <code>NameRelationshipType</code> terms */\r
public static List<NameRelationshipType> getPreferredNameRelationshipTypes(){ return getPreferredTerms(VocabularyStore.getNameRelationshipTypes());}\r
\r
+ /** @return a <code>List</code> containing user preferred <code>Language</code> terms */\r
+ public static List<Language> getPreferredLanguages() { return getPreferredTerms(VocabularyStore.getLanguages()); }\r
+ \r
\r
/**\r
* Generic method to set term preferences\r
* \r
* @param preferredTerms\r
- * @param initalTerms\r
+ * @param initialTerms\r
*/\r
- public static <T extends DefinedTermBase> void setPreferredTerms(List<T> preferredTerms, Set<T> initalTerms){\r
- for(TermBase term : initalTerms){\r
+ public static <T extends DefinedTermBase> void setPreferredTerms(List<T> preferredTerms, Set<T> initialTerms){\r
+ for(TermBase term : initialTerms){\r
getPreferenceStore().setValue(getPreferenceKey(term), preferredTerms.contains(term));\r
}\r
}\r
getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_NAMES, configurator.isDoNamesWithoutTaxa());\r
getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES, configurator.isDoTaxaByCommonNames());\r
}\r
+\r
+ /**\r
+ * @param class1\r
+ */\r
+ public static void firePreferencesChanged(Class clazz) {\r
+ getPreferenceStore().firePropertyChangeEvent(PREFERRED_TERMS_CHANGE, null, clazz);\r
+ }\r
}\r
import java.util.Set;
import java.util.SortedSet;
+import java.util.TreeSet;
import eu.etaxonomy.cdm.api.application.CdmApplicationController;
import eu.etaxonomy.cdm.api.service.ITermService;
*
* @return
*/
- public static SortedSet<Language> getLanguages(){
- SortedSet languages = getDefault().getTermVocabulary(VocabularyEnum.Language).getTermsOrderedByLabels(getDefaultLanguage());
+ public static Set<Language> getLanguages(){
+
+ Set languages = getDefault().getTermVocabulary(VocabularyEnum.Language).getTerms();
+
+// SortedSet languages = getDefault().getTermVocabulary(VocabularyEnum.Language).getTermsOrderedByLabels(getDefaultLanguage());
return languages;
}