commit 179110e9db24a5be9a1f19ded8e1c42e76335939
Author: Katja Luther <k.luther@bgbm.org>
Date:   Wed Feb 14 13:29:08 2018 +0100

    add symbol to unplaced and excluded taxa in taxonnavigator

diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ContainerFactoryE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ContainerFactoryE4.java
index 492260574..61f1883b0 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ContainerFactoryE4.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ContainerFactoryE4.java
@@ -45,6 +45,7 @@ public class ContainerFactoryE4 {
 		}
 
 		for(HomotypicalGroup homotypicalGroup : taxonNameEditor.getTaxon().getHeterotypicSynonymyGroups()){
+		    homotypicalGroup = HibernateProxyHelper.deproxy(homotypicalGroup, HomotypicalGroup.class);
 		    HomotypicalSynonymGroupE4 group = createOrUpdateHeterotypicSynonymyGroup(taxonNameEditor, homotypicalGroup);
 
 			retainedGroups.remove(group);
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewLabelProvider.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewLabelProvider.java
index 12eb1c0d9..d210f137a 100755
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewLabelProvider.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewLabelProvider.java
@@ -83,42 +83,47 @@ public class MediaViewLabelProvider extends LabelProvider implements IStyledLabe
                     }
 
                 }
-                URI uri = smallestPart.getUri();
-                if (uri == null){
-                    return null;
-                }
-                InputStream imageStream;
-                try {
-                    imageStream = UriUtils.getInputStream(uri);
-                    image = new Image(Display.getCurrent(), imageStream);
-                    int height = image.getBounds().height;
-                    int width = image.getBounds().width;
-
-                    if (height>width){
-                        width = width/(height/scale);
-                        height = scale;
-                    }else{
-                        height = height/(width/scale);
-                        width = scale;
+                if (smallestPart != null){
+                    URI uri = smallestPart.getUri();
+                    if (uri == null){
+                        return null;
                     }
-                    Image scaled = new Image(Display.getDefault(), scale, scale);
+                    InputStream imageStream;
+                    try {
+                        imageStream = UriUtils.getInputStream(uri);
+                        image = new Image(Display.getCurrent(), imageStream);
+                        int height = image.getBounds().height;
+                        int width = image.getBounds().width;
+
+                        if (height>width){
+                            width = width/(height/scale);
+                            height = scale;
+                        }else{
+                            height = height/(width/scale);
+                            width = scale;
+                        }
+                        Image scaled = new Image(Display.getDefault(), scale, scale);
 
-                    GC gc = new GC(scaled);
-                    gc.setAntialias(SWT.ON);
-                    gc.setInterpolation(SWT.HIGH);
+                        GC gc = new GC(scaled);
+                        gc.setAntialias(SWT.ON);
+                        gc.setInterpolation(SWT.HIGH);
 
 
-                    gc.drawImage(image, 0, 0,
-                    image.getBounds().width, image.getBounds().height,
-                    0, 0, width, height);
+                        gc.drawImage(image, 0, 0,
+                        image.getBounds().width, image.getBounds().height,
+                        0, 0, width, height);
 
-                    gc.dispose();
-                    image.dispose(); // don't forget about me!
-                    return scaled;
+                        gc.dispose();
+                        image.dispose(); // don't forget about me!
+                        return scaled;
 
-                } catch (Exception e) {
-                    // TODO Auto-generated catch block
-                   return null;
+                    } catch (Exception e) {
+                        // TODO Auto-generated catch block
+                       return null;
+                    }
+
+                }else{
+                    return null;
                 }
 
             }
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorLabelProviderE4.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorLabelProviderE4.java
index abb80d2ad..a42b7a6fc 100644
--- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorLabelProviderE4.java
+++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorLabelProviderE4.java
@@ -10,12 +10,16 @@
 package eu.etaxonomy.taxeditor.navigation.navigator.e4;
 
 import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.jface.viewers.StyledString.Styler;
+import org.eclipse.swt.graphics.TextStyle;
 import org.eclipse.ui.navigator.IDescriptionProvider;
 
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.util.TaxonTreeNodeLabelProvider;
 
 /**
@@ -38,6 +42,12 @@ implements IDescriptionProvider {
 //            return "= " + ((Synonym) element).getName().getTitleCache(); //$NON-NLS-1$
 //        }
     }
+//    @Override
+//    public Font getFont(Object element) {
+//
+//        return new Font(null, "Arial Unicode MS", 10, SWT.NORMAL);
+//
+//    }
 
     /**
      * {@inheritDoc}
@@ -76,4 +86,19 @@ implements IDescriptionProvider {
 //        }
     }
 
+
+    private Styler getNotGrantedStyler() {
+        if (notGrantedStyler  == null) {
+            notGrantedStyler = new Styler() {
+                @Override
+                public void applyStyles(TextStyle textStyle) {
+                    textStyle.underline = false;
+                    textStyle.foreground = StoreUtil.getColor(Resources.COLOR_TEXT_DISABLED);
+                }
+            };
+        }
+        return notGrantedStyler;
+    }
+
+
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/util/TaxonTreeNodeLabelProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/util/TaxonTreeNodeLabelProvider.java
index 8088c5727..77e707cb0 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/util/TaxonTreeNodeLabelProvider.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/util/TaxonTreeNodeLabelProvider.java
@@ -36,7 +36,7 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
 public class TaxonTreeNodeLabelProvider extends ColumnLabelProvider
 implements IStyledLabelProvider {
 
-    private Styler notGrantedStyler = null;
+    protected Styler notGrantedStyler = null;
 
     /**
      * {@inheritDoc}
@@ -51,8 +51,7 @@ implements IStyledLabelProvider {
         //taxon node
         else if (element instanceof TaxonNode){
             TaxonNode taxonNode = (TaxonNode) HibernateProxyHelper.deproxy(element);
-
-            try{
+          try{
                 Taxon taxon = HibernateProxyHelper.deproxy(taxonNode.getTaxon());
                 if(taxon == null){
                     String text = taxonNode.getClassification().getName() == null ? null : taxonNode.getClassification().getName().getText();
@@ -62,7 +61,15 @@ implements IStyledLabelProvider {
                     return text;
                 }else{
                     try{
-                        return taxon.getName() != null ? ((IIdentifiableEntity) HibernateProxyHelper.deproxy(taxon.getName())).getTitleCache() : new String();
+                        String text= "";
+                            if (taxonNode.isUnplaced()){
+                                text += Character.toString((char)248) + " ";
+                            }
+                            if (taxonNode.isExcluded()){
+                                text +=Character.toString((char)191) + " ";
+                            }
+                        text += taxon.getName() != null ? ((IIdentifiableEntity) HibernateProxyHelper.deproxy(taxon.getName())).getTitleCache() : new String();
+                        return text;
                     }catch(Exception e){
                         MessagingUtils.error(getClass(), e);
                     }
