Checking in a bunch of new description stuff.
authorp.ciardelli <p.ciardelli@localhost>
Thu, 27 Aug 2009 12:04:25 +0000 (12:04 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Thu, 27 Aug 2009 12:04:25 +0000 (12:04 +0000)
12 files changed:
.gitattributes
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ImageResources.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ImagesHelper.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateDescriptionElementOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateImageOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonDescriptionOperation.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonDescriptionOperation.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractMenuPreferences.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageMenuPreferences.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/VocabularyStore.java

index 4b92fb7de4e48008894061ddfa3cf5fc9ffbdfb3..47f2bb6c4d01e39c95de882ea88d4388e242edfd 100644 (file)
@@ -1102,12 +1102,14 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateImageOpera
 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
@@ -1123,6 +1125,7 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionStat
 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
index a7f3d446cf39a0065a303e9173f9d96e5264f439..deb8b43d9ce4c6a0d72e93b22ecef1bb155944ae 100644 (file)
@@ -16,7 +16,9 @@ import eu.etaxonomy.cdm.model.common.Language;
 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
@@ -44,6 +46,16 @@ public class DescriptionHelper {
                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
index b66d35fedc500391ff0f7070e81ee6b785e43313..29a1c058ebc7c4611d7d6672d58dd0a47b05afc3 100644 (file)
@@ -16,6 +16,7 @@ import java.net.URL;
 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;
@@ -67,6 +68,7 @@ public class ImageResources {
        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";
 
        
        /***************************************************************************
@@ -101,9 +103,11 @@ public class ImageResources {
                                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();
                        }
@@ -120,7 +124,14 @@ public class ImageResources {
                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);
@@ -177,7 +188,9 @@ public class ImageResources {
                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,
index 34f5942d1f17daa230de19ca94ef0206b40be0ad..211fbbfc862f4abaf95a6690f5334a291f495799 100644 (file)
@@ -32,6 +32,31 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
  */\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
@@ -66,6 +91,12 @@ public class ImagesHelper {
         * @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
@@ -78,7 +109,7 @@ public class ImagesHelper {
                \r
                descriptionElement.addMedia(media);\r
                \r
-               imageGallery.addElement(descriptionElement);\r
+               return descriptionElement;\r
                \r
        }\r
 \r
index d65fff699205bc1e36795545a5716f288c598dd4..f3c3799c3086a42ad1a0078e1f88b1ed983fcf0c 100644 (file)
@@ -15,11 +15,15 @@ import org.eclipse.core.runtime.IAdaptable;
 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
@@ -67,7 +71,15 @@ public class CreateDescriptionElementOperation extends AbstractPostOperation {
                        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
index 9731ce5524765282286f882d6fea232f2003065c..31e0b12dec20426f3401be0cd5923c11ca39265b 100644 (file)
@@ -45,6 +45,12 @@ public class CreateImageOperation extends AbstractPostOperation {
                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
@@ -52,9 +58,12 @@ public class CreateImageOperation extends AbstractPostOperation {
        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
@@ -66,7 +75,7 @@ public class CreateImageOperation extends AbstractPostOperation {
                \r
                ImagesHelper.addTaxonImage(taxon, description, imageFile);\r
                \r
-               return postExecute(null);\r
+               return postExecute(imageFile);\r
        }\r
 \r
        /* (non-Javadoc)\r
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonDescriptionOperation.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonDescriptionOperation.java
new file mode 100644 (file)
index 0000000..01e0b4c
--- /dev/null
@@ -0,0 +1,71 @@
+/**\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
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonDescriptionOperation.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonDescriptionOperation.java
new file mode 100644 (file)
index 0000000..fa8a203
--- /dev/null
@@ -0,0 +1,70 @@
+/**\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
index 5979372c3d7f4adaec5333709c2c45dd84781771..58c7f9689df8e1cfd4a274029efcf84c86d0b2ce 100644 (file)
@@ -167,7 +167,7 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
         * @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)
@@ -204,6 +204,8 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
                
                PreferencesUtil.setPreferredTerms(preferredTerms, this.vocabulary);
                
+               PreferencesUtil.firePreferencesChanged(this.getClass());
+               
                return true;
        }       
        
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageMenuPreferences.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageMenuPreferences.java
new file mode 100644 (file)
index 0000000..2095ffb
--- /dev/null
@@ -0,0 +1,75 @@
+// $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
index 37a8ab5a32860cd04091a9731a37592b2f469c75..6356ab6a2eda42b6f29ecababa240b09d58f9463 100644 (file)
@@ -19,6 +19,7 @@ import org.eclipse.jface.preference.IPreferenceStore;
 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
@@ -52,6 +53,8 @@ public class PreferencesUtil {
        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
@@ -201,15 +204,18 @@ public class PreferencesUtil {
        /** @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
@@ -283,4 +289,11 @@ public class PreferencesUtil {
                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
index 8baa4657f79d211e5d2b7e7066146ac53a814537..ab4ee7a4ed53037f47700337f77d5aa4e6782e72 100644 (file)
@@ -12,6 +12,7 @@ package eu.etaxonomy.taxeditor.store;
 
 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;
@@ -95,8 +96,11 @@ public class VocabularyStore {
         * 
         * @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;
        }