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.lang.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.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;
/**
public class FeatureMenuPreferences extends GeneralTermPreferencePage{
/** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.feat"{trunked}</code> */
- 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$
/**
* <p>Constructor for FeatureMenuPreference.</p>
type = TermType.Feature;
}
+ @Override
+ 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
@Override
protected void initialiseVocabularies() {
+ if (getVocabularies() != null) {
+ getVocabularies().clear();
+ }
+ List<TermVocabularyDto> vocs = new ArrayList<>();
+ Set<CdmClass> availableFor = new HashSet<>();
+ availableFor.add(CdmClass.TAXON);
+ vocs = CdmStore.getService(IVocabularyService.class).findFeatureVocabularyDtoByTermTypes(availableFor);
+
+ setVocabularies(vocs);
+// super.initialiseVocabularies();
+
+
+
+// List<TermVocabularyDto> vocs = new ArrayList<>();
+// vocs.add(CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuid(VocabularyEnum.NameFeature.getUuid()));
+// this.getVocabularies().removeAll(vocs);
+
+ }
+
+ @Override
+ protected List<TermDto> getTermsFromStringValues(List<String> listValue) {
+ Collection<TermDto> termlist = new ArrayList<>();
+ ITermService termService = CdmStore.getService(ITermService.class);
+ List<UUID> 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);
+ }
- super.initialiseVocabularies();
- List<TermVocabularyDto> vocs = new ArrayList<>();
- vocs.add(CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuid(VocabularyEnum.NameFeature.getUuid()));
- this.getVocabularies().removeAll(vocs);
+ if (listValue == null || listValue.isEmpty() ){
+ termlist = termService.findFeatureByTitleAsDto("");
+
+ }
+ return new ArrayList(termlist);
}
package eu.etaxonomy.taxeditor.preference.menu;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
+
+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.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.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.l10n.Messages;
import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
+import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.wizard.CheckBoxTreeComposite;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
type = TermType.Feature;
}
+ @Override
+ 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(false, true, 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
getVocabularies().clear();
}
List<TermVocabularyDto> vocs = new ArrayList<>();
- vocs.add(CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuid(VocabularyEnum.NameFeature.getUuid()));
+ Set<CdmClass> availableFor = new HashSet<>();
+ availableFor.add(CdmClass.TAXON_NAME);
+ vocs = CdmStore.getService(IVocabularyService.class).findFeatureVocabularyDtoByTermTypes(availableFor);
setVocabularies(vocs);
}
sectionModifierVocabularies.setEntity(getEntity());\r
}\r
\r
- availableForTaxon = formFactory.createCheckbox(formElement, "Available for Taxon", entity.isAvailableForTaxon(), style);;\r
- availableForTaxonName = formFactory.createCheckbox(formElement, "Available for Taxon Name", entity.isAvailableForTaxonName(), style);;;\r
+ availableForTaxon = formFactory.createCheckbox(formElement, "Available for Taxon", entity.isAvailableForTaxon(), style);\r
+ availableForTaxonName = formFactory.createCheckbox(formElement, "Available for Taxon Name", entity.isAvailableForTaxonName(), style);\r
availableForSpecimenOrObservation = formFactory.createCheckbox(formElement, "Available for Occurrence", entity.isAvailableForOccurrence(), style);\r
}\r
\r
}\r
else if(eventSource == availableForSpecimenOrObservation){\r
getEntity().setAvailableForOccurrence(availableForSpecimenOrObservation.getSelection());\r
+ System.err.println(getEntity().isAvailableForOccurrence());\r
}\r
else if(eventSource == availableForTaxon){\r
getEntity().setAvailableForTaxon(availableForTaxon.getSelection());\r
+ System.err.println(getEntity().isAvailableForTaxon());\r
}\r
else if(eventSource == availableForTaxonName){\r
getEntity().setAvailableForTaxonName(availableForTaxonName.getSelection());\r
+ System.err.println(getEntity().isAvailableForTaxonName());\r
}\r
\r
StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);\r