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); }