cleanup
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / common / ExternalLinksSection.java
index f7b67c5c0b7e54ece5ad2010de8c0bba2bea6b54..e2746bf3f27eae5eb3219754ef9918ce7e5ca486 100755 (executable)
@@ -11,10 +11,12 @@ package eu.etaxonomy.taxeditor.ui.section.common;
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.common.OriginalSourceBase;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.model.media.ExternalLink;
 import eu.etaxonomy.cdm.model.media.ExternalLinkType;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
@@ -22,57 +24,43 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 /**
  * @author k.luther
  * @since 23.08.2018
- *
  */
 public class ExternalLinksSection extends AbstractEntityCollectionSection<OriginalSourceBase, ExternalLink> {
 
+    private String emptySectionString = "No external link yet.";
 
+    private boolean isShowDescription = true;
 
-    /**
-     * @param formFactory
-     * @param formElement
-     */
-    public ExternalLinksSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-        super(cdmFormFactory, conversation, parentElement, "External Links", style);
-
+    public ExternalLinksSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+        super(cdmFormFactory, parentElement, "External Links", style);
     }
 
+    public ExternalLinksSection(CdmFormFactory cdmFormFactory,
+            ICdmFormElement parentElement, boolean isAdvanced, String string, int style) {
+        super(cdmFormFactory, parentElement, string, style);
+        this.isShowDescription = isAdvanced;
+    }
 
     @Override
+    //TODO think about moving to cdmlib
     public Comparator<ExternalLink> getComparator() {
-        return new Comparator<ExternalLink>(){
+        return (o1, o2)-> {
+            URI uri1 = o1 == null? null: o1.getUri();
+            URI uri2 = o2 == null? null: o2.getUri();
 
-            @Override
-            public int compare(ExternalLink o1, ExternalLink o2) {
-                if (o1 == o2){
+                if (uri1 == uri2){
                     return 0;
                 }
-                if (o1 == null){
+                if (uri1 == null){
                     return -1;
-
                 }
-                if (o2== null){
+                if (uri2 == null){
                     return 1;
                 }
-                if (o1.getUri() == o1.getUri()){
-                    return 0;
-                }
-                if (o1.getUri() == null){
-                    return -1;
-                }
-                if (o2.getUri() == null){
-                    return 1;
-                }
-               return o1.getUri().toString().compareTo(o2.getUri().toString());
-
-            }
-
-      };
-
+                return uri1.toString().compareTo(uri2.toString());
+        };
     }
 
-
-
     @Override
     public Collection<ExternalLink> getCollection(OriginalSourceBase entity) {
         if (entity != null){
@@ -80,7 +68,6 @@ public class ExternalLinksSection extends AbstractEntityCollectionSection<Origin
         } else {
             return null;
         }
-
     }
 
     @Override
@@ -92,7 +79,6 @@ public class ExternalLinksSection extends AbstractEntityCollectionSection<Origin
     @Override
     public void addElement(ExternalLink element) {
         getEntity().addLink(element);
-
     }
 
     @Override
@@ -108,18 +94,37 @@ public class ExternalLinksSection extends AbstractEntityCollectionSection<Origin
     @Override
     public void removeElement(ExternalLink element) {
         getEntity().removeLink(element);
-
     }
 
     @Override
     public String getEmptyString() {
-        return "No external link yet.";
+        return emptySectionString;
     }
 
-
     @Override
     protected String getTooltipString() {
         return null;
     }
 
-}
+    public void setEmptySectionString(String emptySectionString) {
+        this.emptySectionString = emptySectionString;
+    }
+
+    public void setIndent(int indent) {
+       TableWrapData tableWrapData = (TableWrapData)this.getLayoutData();
+       if (tableWrapData == null){
+           tableWrapData = new TableWrapData();
+       }
+       tableWrapData.indent = indent;
+       this.setLayoutData(tableWrapData);
+       getLayoutComposite().layout();
+    }
+
+    public boolean isAdvanced() {
+        return isShowDescription;
+    }
+
+    public void setAdvanced(boolean isAdvanced) {
+        this.isShowDescription = isAdvanced;
+    }
+}
\ No newline at end of file