X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/f5b666998c2465a92011423a807502a8ed61da74..fe9e440df61646b8813e71e046c7a2a07fdbfa0d:/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java index 81ece03c2..9dc51edac 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java @@ -3,8 +3,12 @@ */ package eu.etaxonomy.taxeditor.ui.section; +import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; import java.util.EnumSet; +import java.util.List; import java.util.Observable; import java.util.Observer; @@ -29,7 +33,7 @@ import org.eclipse.ui.forms.widgets.ExpandableComposite; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.common.CdmUtils; -import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD; +import eu.etaxonomy.cdm.model.permission.CRUD; import eu.etaxonomy.taxeditor.model.AbstractUtility; import eu.etaxonomy.taxeditor.model.ImageResources; import eu.etaxonomy.taxeditor.preference.IPreferenceKeys; @@ -63,7 +67,7 @@ public abstract class AbstractEntityCollectionSection extends A private String title; - private AbstractEntityCollectionElement entityCollectionElement; + private AbstractEntityCollectionElement entityCollectionElement; public AbstractEntityCollectionSection(CdmFormFactory formFactory, ConversationHolder conversation, ICdmFormElement parentElement, String title, int style) { super(formFactory, parentElement, ExpandableComposite.CLIENT_INDENT | style); @@ -137,10 +141,16 @@ public abstract class AbstractEntityCollectionSection extends A toolBarManager.add(browseAction); } + addAction(toolBarManager); + return toolBarManager.createControl(this); } - /** + protected void addAction(ToolBarManager toolBarManager) { + // default implementation empty + } + + /** * using this method is discouraged, use updateToolBar() instead */ public void showToolbar(){ @@ -212,11 +222,13 @@ public abstract class AbstractEntityCollectionSection extends A */ private void renderContent(boolean forceExpansion) { - Collection elements = getCollection(getEntity()); + Collection collection = getCollection(getEntity()); - if(elements == null || elements.isEmpty()){ + if(collection == null || collection.isEmpty()){ createEmptyContent(); }else{ + List elements = new ArrayList<>(collection); + Collections.sort(elements, getComparator()); createDynamicContents(elements); forceExpansion = true; } @@ -309,7 +321,7 @@ public abstract class AbstractEntityCollectionSection extends A } private boolean expandSectionWhenContentAvailable(){ - return PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOULD_EXPAND_SECTION_WHEN_DATA_AVAILABLE); + return PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOULD_EXPAND_SECTION_WHEN_DATA_AVAILABLE); } /** @@ -329,7 +341,7 @@ public abstract class AbstractEntityCollectionSection extends A } } - private void updateToolbar() { + protected void updateToolbar() { if(getEntity() != null && CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), UPDATE)){ showToolbar(); } else { @@ -337,10 +349,16 @@ public abstract class AbstractEntityCollectionSection extends A } } - public AbstractEntityCollectionElement getEntityCollectionElement() { + public AbstractEntityCollectionElement getEntityCollectionElement() { return entityCollectionElement; } + /** + * Returns the {@link Comparator} specific for the ELEMENTs + * which is used to sort the elements + * @return the comparator for ELEMENT + */ + public abstract Comparator getComparator(); /** * Get the specific collection of this entity @@ -350,6 +368,7 @@ public abstract class AbstractEntityCollectionSection extends A */ public abstract Collection getCollection(ENTITY entity); + /** * Create a new Element for this collection *