Merge branch 'release/5.32.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / common / ExternalLinksSection.java
index c90f2333c25afeb548da9ee074cbbc6f2ba725b1..e012e48c55187f26fa3eb4313ee18805718ee9d7 100755 (executable)
@@ -11,7 +11,10 @@ package eu.etaxonomy.taxeditor.ui.section.common;
 import java.util.Collection;
 import java.util.Comparator;
 
+import org.eclipse.ui.forms.widgets.TableWrapData;
+
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+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;
@@ -22,59 +25,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, ConversationHolder conversation,
+            ICdmFormElement parentElement, boolean isAdvanced, String string, int style) {
+        super(cdmFormFactory, conversation, parentElement, string, style);
+        this.isShowDescription = isAdvanced;
+    }
 
     @Override
+    //TODO think about moving to cdmlib
     public Comparator<ExternalLink> getComparator() {
-        return new Comparator<ExternalLink>(){
-
-            @Override
-            public int compare(ExternalLink o1, ExternalLink o2) {
-                if (o1 == o2){
-                    return 0;
-                }
-                if (o1 == null){
-                    return -1;
+        return (o1, o2)-> {
+            URI uri1 = o1 == null? null: o1.getUri();
+            URI uri2 = o2 == null? null: o2.getUri();
 
-                }
-                if (o2== null){
-                    return 1;
-                }
-                if (o1.getUri() == o1.getUri()){
+                if (uri1 == uri2){
                     return 0;
                 }
-                if (o1.getUri() == null){
+                if (uri1 == null){
                     return -1;
                 }
-                if (o2.getUri() == null){
+                if (uri2 == 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){
@@ -82,7 +69,6 @@ public class ExternalLinksSection extends AbstractEntityCollectionSection<Origin
         } else {
             return null;
         }
-
     }
 
     @Override
@@ -94,7 +80,6 @@ public class ExternalLinksSection extends AbstractEntityCollectionSection<Origin
     @Override
     public void addElement(ExternalLink element) {
         getEntity().addLink(element);
-
     }
 
     @Override
@@ -110,7 +95,6 @@ public class ExternalLinksSection extends AbstractEntityCollectionSection<Origin
     @Override
     public void removeElement(ExternalLink element) {
         getEntity().removeLink(element);
-
     }
 
     @Override
@@ -118,20 +102,30 @@ public class ExternalLinksSection extends AbstractEntityCollectionSection<Origin
         return emptySectionString;
     }
 
-
     @Override
     protected String getTooltipString() {
         return null;
     }
 
-
-    public String getEmptySectionString() {
-        return emptySectionString;
+    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 void setEmptySectionString(String emptySectionString) {
-        this.emptySectionString = emptySectionString;
+    public boolean isAdvanced() {
+        return isShowDescription;
     }
 
-}
+    public void setAdvanced(boolean isAdvanced) {
+        this.isShowDescription = isAdvanced;
+    }
+}
\ No newline at end of file