X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/62de7ebf22f901f64707fabb1886714976eefe2a..5155769b1aa22d23854c95db9a24cfb930e44a4c:/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/FeatureMenuPreferences.java
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/FeatureMenuPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/FeatureMenuPreferences.java
index 0cbfebed4..eb5377d2b 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/FeatureMenuPreferences.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/FeatureMenuPreferences.java
@@ -9,15 +9,36 @@
package eu.etaxonomy.taxeditor.preference.menu;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.model.common.CdmClass;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.VocabularyEnum;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
+import eu.etaxonomy.taxeditor.editor.definedterm.FeatureDtoContentProvider;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
-import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
+import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
+import eu.etaxonomy.taxeditor.preference.wizard.CheckBoxTreeComposite;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
@@ -28,27 +49,83 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
* @created 17.09.2008
* @version 1.0
*/
-public class FeatureMenuPreferences extends GeneralTermPreference{
+public class FeatureMenuPreferences extends GeneralTermPreferencePage{
/** Constant PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.feat"{trunked}
*/
- public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.nameFeature"; //$NON-NLS-1$
+ public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.taxonFeature"; //$NON-NLS-1$
/**
*
Constructor for FeatureMenuPreference.
*/
public FeatureMenuPreferences() {
super();
- setLocalPref(true);
+ isAdminPreference = false;
setPredicate(PreferencePredicate.TaxonFeatures);
type = TermType.Feature;
}
@Override
- protected List getVocabulariesFromPreference() {
- // TODO Auto-generated method stub
- return null;
+ protected Control createContents(Composite parent) {
+ Composite container = new Composite(parent, SWT.NULL);
+ getPreferenceValues();
+ if (isLocalPref() && !allowOverride){
+ final CLabel description = new CLabel(parent, SWT.NULL);
+ description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
+ this.setDefaultButtonActivated(false);
+ return parent;
+
+ }
+ final GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 2;
+ container.setLayout(gridLayout);
+ parent.setLayout(new GridLayout());
+ useLocalOrAdmin = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
+ if (!isAdminPreference){
+ useLocalOrAdmin.add(LocalOrDefaultEnum.Default.getLabel(), 0);
+ useLocalOrAdmin.add(LocalOrDefaultEnum.Local.getLabel(), 1);
+
+ }else{
+ useLocalOrAdmin.add(LocalOrDefaultEnum.AllowOverride.getLabel(), 0);
+ useLocalOrAdmin.add(LocalOrDefaultEnum.Database.getLabel(), 1);
+ }
+
+
+ treeComposite = new CheckBoxTreeComposite(container, new FeatureDtoContentProvider(true, false, false), new TermDtoLabelProvider(), SWT.SCROLL_PAGE);
+ treeComposite.getViewer().setComparator(new DefinedTermSorter());
+ rememberCheckedValues(getCheckedValuesFromPreferences());
+
+ if (isLocalPref()){
+ if (isOverride){
+ useLocalOrAdmin.select(1);
+ }else{
+ useLocalOrAdmin.select(0);
+ if (treeComposite.getViewer().getTree() != null && treeComposite.getViewer().getTree().getTopItem() != null) {
+ treeComposite.getViewer().getTree().setSelection(treeComposite.getViewer().getTree().getTopItem());
+ }
+ treeComposite.setEnabled(false);
+
+ //treeComposite.getViewer().getTree().getVerticalBar().setEnabled(true);
+ }
+ }else{
+ if (allowOverride){
+ useLocalOrAdmin.select(0);
+ }else{
+ useLocalOrAdmin.select(1);
+ }
+ }
+ useLocalOrAdmin.addSelectionListener(this);
+
+ GridData data = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
+ data.heightHint = 300;
+ treeComposite.setLayoutData(data);
+ treeComposite.getViewer().addSelectionChangedListener(this);
+
+ return container;
+
}
+
+
@Override
public boolean performOk(){
if (isApply()){
@@ -63,12 +140,46 @@ public class FeatureMenuPreferences extends GeneralTermPreference{
@Override
protected void initialiseVocabularies() {
+ if (getVocabularies() != null) {
+ getVocabularies().clear();
+ }
+ List vocs = new ArrayList<>();
+ Set availableFor = new HashSet<>();
+ availableFor.add(CdmClass.TAXON);
+ vocs = CdmStore.getService(IVocabularyService.class).findFeatureVocabularyDtoByTermTypes(availableFor);
+
+ setVocabularies(vocs);
+// super.initialiseVocabularies();
+
+
+
+// List vocs = new ArrayList<>();
+// vocs.add(CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuid(VocabularyEnum.NameFeature.getUuid()));
+// this.getVocabularies().removeAll(vocs);
+
+ }
- super.initialiseVocabularies();
- List vocs = new ArrayList<>();
- vocs.add(CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuid(VocabularyEnum.NameFeature.getUuid()));
- this.getVocabularies().removeAll(vocs);
+ @Override
+ protected List getTermsFromStringValues(List listValue) {
+ Collection termlist = new ArrayList<>();
+ ITermService termService = CdmStore.getService(ITermService.class);
+ List uuidList = new ArrayList();
+ for (String s : listValue) {
+ if (!StringUtils.isBlank(s)){
+ UUID uuid = UUID.fromString(s);
+ uuidList.add(uuid);
+ }
+ }
+ if (!uuidList.isEmpty()){
+ termlist = termService.findFeatureByUUIDsAsDto(uuidList);
+ }
+
+ if (listValue == null || listValue.isEmpty() ){
+ termlist = termService.findFeatureByTitleAsDto("");
+
+ }
+ return new ArrayList(termlist);
}