command.commandname.22 = Create Structure Tree
command.commandname.23 = Create Property Tree
handledmenuitem.label.22 = OWL Term Export
-handledmenuitem.label.23 = Owl Import
+handledmenuitem.label.23 = Owl Import\r
+\r
+page.name.104 = Distribution Data\r
+page.name.105 = Vocabularies and Status
command.commandname.22 = Strukturbaum erstellen
command.commandname.23 = Propertybaum erstellen
handledmenuitem.label.22 = OWL Term Export
-handledmenuitem.label.23 = Owl Import
\ No newline at end of file
+handledmenuitem.label.23 = Owl Import
+
+page.name.104 = Verbreitungsdaten
+page.name.105 = Vokabulare und Status
\ No newline at end of file
id="eu.etaxonomy.taxeditor.preference.MediaPreferences"
name="%page.name.27">
</page>
- <page
+ <page
category="eu.etaxonomy.taxeditor.preference.UIPreferences"
+ class="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
+ id="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
+ name="%page.name.104">
+ </page>
+ <page
+ category="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
class="eu.etaxonomy.taxeditor.preference.ChecklistEditorGeneralPreference"
id="eu.etaxonomy.taxeditor.preference.ChecklistEditorGeneralPreferencePage"
name="%page.name.28">
+ </page>
+ <page
+ category="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
+ class="eu.etaxonomy.taxeditor.preference.DistributionStatusAndNamedAreaVocabularies"
+ id="eu.etaxonomy.taxeditor.preference.DistributionStatusAndNamedAreaVocabulariesPage"
+ name="%page.name.105">
</page>
<page
category="eu.etaxonomy.taxeditor.preferences.general"
</page>-->
<page
category="eu.etaxonomy.taxeditor.preferences.general"
+ class="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
+ id="eu.etaxonomy.taxeditor.store.Distribution"
+ name="%page.name.104">
+ </page>
+ <page
+ category="eu.etaxonomy.taxeditor.store.Distribution"
class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.ChecklistEditorGeneralAdminPreference"
id="eu.etaxonomy.taxeditor.store.checklist"
name="%page.name.21">
</page>
+ <page
+ category="eu.etaxonomy.taxeditor.store.Distribution"
+ class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.DistributionStatusAndNamedAreaVocabulariesAdminPreference"
+ id="eu.etaxonomy.taxeditor.store.distributionVocabulariesAndStatus"
+ name="%page.name.105">
+ </page>
<page
category="eu.etaxonomy.taxeditor.store.abcdImportPreference"
class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.AbcdImportProvider"
pref.setAllowOverride(prefStatusDisplayInCombo.isAllowOverride());
service.set(pref);
}
-// if (statusPref != null){
-// service.set(statusPref);
-// }
-// if (areaVocPref != null){
-// service.set(areaVocPref);
-// }
+
PreferencesUtil.updateDBPreferences();
return true;
this.ownDescriptionForDistributionEditor = Boolean.valueOf(PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue().toString());
}
- commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler";
- commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionPerAreaStatusWizardHandler";
+
setValid(false);
}
--- /dev/null
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
+
+import eu.etaxonomy.taxeditor.preference.DistributionStatusAndNamedAreaVocabularies;
+
+/**
+ * @author k.luther
+ * @since 02.07.2019
+ *
+ */
+public class DistributionStatusAndNamedAreaVocabulariesAdminPreference
+ extends DistributionStatusAndNamedAreaVocabularies {
+
+
+ @Override
+ public void getValues() {
+ super.getValues();
+ isAdminPreference = true;
+ commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler";
+ commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionPerAreaStatusWizardHandler";
+ }
+
+}
pref.setAllowOverride(isAllowOverrideShowIDNamspace);
PreferencesUtil.setPreferencesToDB(pref, setToDefault);
- if (isShowNamespace == null){
+ if (isShowIDSource == null){
setToDefault = true;
- isShowNamespace = true;
+ isShowIDSource = true;
}
- pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowNamespaceInSource, Boolean.toString(this.isShowNamespace));
- pref.setAllowOverride(isAllowOverrideShowNamspace);
+ pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowNamespaceInSource, Boolean.toString(this.isShowIDSource));
+ pref.setAllowOverride(isAllowOverrideShowIDSource);
PreferencesUtil.setPreferencesToDB(pref, setToDefault);
PreferencesUtil.updateDBPreferences();
prefShowNamespace = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowNamespaceInSource, null);
prefShowNamespace.setAllowOverride(true);
}
- isShowNamespace = prefShowNamespace.getValue()!= null? Boolean.parseBoolean(prefShowNamespace.getValue()): null;
- isAllowOverrideShowNamspace = prefShowNamespace.isAllowOverride();
+ isShowIDSource = prefShowNamespace.getValue()!= null? Boolean.parseBoolean(prefShowNamespace.getValue()): null;
+ isAllowOverrideShowIDSource = prefShowNamespace.isAllowOverride();
}
}
public static final String REMOVE_USER = "UPDATE/GROUP/REMOVEUSER";
+ public static final String REFRESH_DISTRIBUTION_PREFERENCES = "REFRESH/DISTRIBUTION/PREFERENCE";
+
}
public static String Distribution_status_selection;
public static String DistributionAdminPreferences_SELECT_STATUS;
+ public static String DistributionAdminPreferences_PER_AREA_STATUS;
public static String DatabasePreferncesPage_Show_MediaView;
public static String DatabasePreferncesPage_Show_ChecklistPerspective;
Distribution_status_selection=Status Selection
DistributionAdminPreferences_SELECT_STATUS=List of available distribution status
+DistributionAdminPreferences_PER_AREA_STATUS=List of preferences defining available status per area.\nIn this list you can define whether the preference can be overwritten or delete it.
MarkerTypeMenuPreferences_display=Choose available markers
MeasurementUnitMenuPreferences_edit=Edit displayed measurement units
Distribution_status_selection=Status Auswahl
DistributionAdminPreferences_SELECT_STATUS=Liste der verfügbaren Verbreitungs-Status
+DistributionAdminPreferences_PER_AREA_STATUS=Liste der pro Area definierten Status Preferenzen\nSie können in der Liste definieren, ob das lokale Überschreiben erlaubt sein soll und die Preferenz löschen
MarkerTypeMenuPreferences_display=Auswahl der zur Verf\u00FCgung stehenden Marker
MeasurementUnitMenuPreferences_edit=Angezeigte Maßeinheiten
}
+ public boolean remove(CdmPreference pref){
+ if (preferenceCache.containsKey(pref.getPredicate())){
+ List<CdmPreference> cachedPreferences = preferenceCache.get(pref.getPredicate());
+ CdmPreference prefToRemove = null;
+ for (CdmPreference cachedPref:cachedPreferences){
+ if (pref.getKey().equals(cachedPref.getKey())){
+ prefToRemove = cachedPref;
+ }
+ }
+ cachedPreferences.remove(prefToRemove);
+ }
+ return true;
+
+ }
+
public void getAllTaxEditorDBPreferences(){
ICdmRepository controller;
controller = CdmStore.getCurrentApplicationConfiguration();
package eu.etaxonomy.taxeditor.preference;\r
\r
import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.custom.CLabel;\r
import org.eclipse.swt.events.SelectionAdapter;\r
import org.eclipse.swt.events.SelectionEvent;\r
import org.eclipse.swt.events.SelectionListener;\r
import org.eclipse.swt.widgets.Combo;\r
import org.eclipse.swt.widgets.Composite;\r
import org.eclipse.swt.widgets.Control;\r
-import org.eclipse.swt.widgets.Event;\r
import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.Listener;\r
\r
import eu.etaxonomy.cdm.model.metadata.CdmPreference;\r
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
import eu.etaxonomy.cdm.model.metadata.TermOrder;\r
import eu.etaxonomy.taxeditor.l10n.Messages;\r
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;\r
-import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;\r
\r
/**\r
* @author a.oppermann\r
protected Button allowOverrideStatusDisplayInComboButton;\r
protected Combo areaDisplaySelectionCombo;\r
protected Button allowOverrideAreaDisplayButton;\r
- protected String commandHandlerString;\r
- protected String commandHandlerStringStatus;\r
+\r
\r
protected CdmPreference distributionEditorPref;\r
- protected CdmPreference prefStatus;\r
- protected CdmPreference prefAreaVoc;\r
- protected CdmPreference prefAreaDisplay;\r
+\r
protected CdmPreference prefStatusDisplay;\r
+ protected CdmPreference prefAreaDisplay;\r
+\r
protected CdmPreference prefStatusDisplayInCombo;\r
protected CdmPreference prefAreaSort;\r
protected CdmPreference prefRank;\r
final String SHOW_RANK = "Show Rank";\r
final String NO_RANK = "No Rank";\r
\r
- protected CdmPreference areaVocPref = null;\r
- protected CdmPreference statusPref = null;\r
- private CommandHandlerButton button_openSelectAreaVocabularies;\r
\r
- private CommandHandlerButton button_openStatusWizard;\r
+\r
\r
@Override\r
protected Control createContents(Composite parent) {\r
}\r
});\r
}\r
-\r
- GridData gridData = new GridData();\r
- gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);\r
-\r
areaOrderSelectionCombo = createCombo(child, TermOrder.values(), PreferencePredicate.AreasSortedInDistributionEditor, Messages.ChecklistEditorGeneralPreference_Configure_area_order, isAdminPreference);\r
\r
index = 0;\r
}\r
\r
\r
- final CLabel labelStatus = new CLabel(child, SWT.NULL);\r
- labelStatus.setText(Messages.DistributionAdminPreferences_SELECT_STATUS);\r
- labelStatus.setLayoutData(textGrid);\r
-\r
- button_openStatusWizard = new CommandHandlerButton(child, SWT.PUSH, commandHandlerStringStatus);\r
-\r
- button_openStatusWizard.setText(Messages.Distribution_status_selection);\r
- button_openStatusWizard.addListener(SWT.Selection, new Listener() {\r
- @Override\r
- public void handleEvent(Event e) {\r
- switch (e.type) {\r
- case SWT.Selection:\r
- setApply(true);\r
- break;\r
- }\r
- }\r
- });\r
\r
- final CLabel label = new CLabel(child, SWT.NULL);\r
- label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard);\r
- label.setLayoutData(textGrid);\r
-\r
- button_openSelectAreaVocabularies = new CommandHandlerButton(child, SWT.PUSH, commandHandlerString);\r
- button_openSelectAreaVocabularies\r
- .setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);\r
\r
if (!isAdminPreference) {\r
\r
activateComp.setEnabled(false);\r
}\r
\r
- if (prefAreaVoc != null && !prefAreaVoc.isAllowOverride()) {\r
- button_openSelectAreaVocabularies.setButtonEnabled(false);\r
- }\r
- if (prefStatus != null && !prefStatus.isAllowOverride()) {\r
- button_openStatusWizard.setButtonEnabled(false);\r
- }\r
+\r
if (prefRank != null && !prefRank.isAllowOverride()) {\r
activateRankCombo.setEnabled(false);\r
}\r
distributionEditorPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DistributionEditorActivated, PreferencePredicate.DistributionEditorActivated.getDefaultValue() != null ? PreferencePredicate.DistributionEditorActivated.getDefaultValue().toString(): null);\r
}\r
\r
- prefAreaVoc = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);\r
- if (prefAreaVoc == null){\r
- prefAreaVoc = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies, PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue() != null ? PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue().toString(): null);\r
- }\r
-\r
\r
- prefStatus = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);\r
- if (prefStatus == null){\r
- prefStatus = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencePredicate.AvailableDistributionStatus.getDefaultValue() != null ? PreferencePredicate.AvailableDistributionStatus.getDefaultValue().toString(): null);\r
- }\r
\r
\r
prefAreaDisplay = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DisplayOfAreasInDistributionEditor);\r
//prefOwnDescription = CdmPreference.NewTaxEditorInstance(PreferencePredicate.OwnDescriptionForDistributionEditor, PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue() != null ? PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue().toString(): null);\r
}\r
\r
- commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler";\r
- commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardHandler";\r
+\r
}\r
\r
@Override\r
\r
overrideOwnDescriptionForDistributionEditor = true;\r
\r
- this.statusPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null);\r
- this.areaVocPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies,\r
- null);\r
+\r
if (!isAdminPreference) {\r
PreferencesUtil.recursiveSetEnabled(child, isEditorActivated);\r
\r
- if (!prefAreaVoc.isAllowOverride()) {\r
- button_openSelectAreaVocabularies.setButtonEnabled(false);\r
- }\r
- if (!prefStatus.isAllowOverride()) {\r
- button_openStatusWizard.setButtonEnabled(false);\r
- }\r
+\r
if (!prefRank.isAllowOverride()) {\r
activateRankCombo.setEnabled(false);\r
\r
--- /dev/null
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.preference;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+
+/**
+ * @author k.luther
+ * @since 02.07.2019
+ *
+ */
+public class DistributionGeneralPreference extends CdmPreferencePage {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Control createContents(Composite parent) {
+ noDefaultAndApplyButton();
+ return null;
+ }
+
+}
--- /dev/null
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.preference;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.inject.Inject;
+
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.di.UIEventTopic;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.custom.TableEditor;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+
+import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceResolver;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
+
+/**
+ * @author k.luther
+ * @since 02.07.2019
+ *
+ */
+public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePage {
+
+ protected String commandHandlerString;
+ protected String commandHandlerStringStatus;
+
+ protected List<CdmPreference> prefStatus;
+ protected List<CdmPreference> prefStatusToDelete = new ArrayList<>();
+
+ protected CdmPreference prefAreaVoc;
+
+ private CommandHandlerButton button_openSelectAreaVocabularies;
+
+ private CommandHandlerButton button_openStatusWizard;
+
+ private Map<UUID, NamedArea> namedAreaUUIDMap = new HashMap();
+
+ private Table table;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Control createContents(Composite parent) {
+ getValues();
+ Composite composite = new Composite(parent, SWT.NULL);
+ composite.setLayout(new GridLayout());
+ GridData textGrid = createTextGridData();
+ textGrid.verticalSpan = 2;
+
+
+ if (isAdminPreference){
+ final CLabel labelPerAreaStatus = new CLabel(composite, SWT.NULL);
+ labelPerAreaStatus.setText(Messages.DistributionAdminPreferences_PER_AREA_STATUS);
+ labelPerAreaStatus.setLayoutData(textGrid);
+ createTable(composite);
+ }
+
+ final CLabel labelStatus = new CLabel(composite, SWT.NULL);
+ labelStatus.setText(Messages.DistributionAdminPreferences_SELECT_STATUS);
+ labelStatus.setLayoutData(textGrid);
+ composite.pack ();
+ button_openStatusWizard = new CommandHandlerButton(composite, SWT.PUSH, commandHandlerStringStatus);
+
+ button_openStatusWizard.setText(Messages.Distribution_status_selection);
+ button_openStatusWizard.addListener(SWT.Selection, new Listener() {
+ @Override
+ public void handleEvent(Event e) {
+ switch (e.type) {
+ case SWT.Selection:
+ setApply(true);
+ break;
+ }
+ }
+ });
+
+ final CLabel label = new CLabel(composite, SWT.NULL);
+ label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard);
+ label.setLayoutData(textGrid);
+
+ button_openSelectAreaVocabularies = new CommandHandlerButton(composite, SWT.PUSH, commandHandlerString);
+ button_openSelectAreaVocabularies
+ .setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
+
+ if (!isAdminPreference){
+ if (prefAreaVoc != null && !prefAreaVoc.isAllowOverride()) {
+ button_openSelectAreaVocabularies.setButtonEnabled(false);
+ }
+// if (prefStatus != null && !prefStatus.isAllowOverride()) {
+// button_openStatusWizard.setButtonEnabled(false);
+// }
+ }
+ return composite;
+ }
+
+ public void createTable(Composite composite) {
+ table = new Table(
+ composite, SWT.BORDER /*| SWT.CHECK */| SWT.FULL_SELECTION | SWT.SINGLE
+ );
+
+ table.setLinesVisible(true);
+ table.setHeaderVisible(true);
+ GridData tableGrid = createTextGridData();
+ table.setLayoutData(tableGrid);
+ Iterator<CdmPreference> prefIterator = prefStatus.iterator();
+ CdmPreference pref;
+ TableColumn column = new TableColumn(table, SWT.NONE);
+ column.setText("Predicate/Subject");
+ column.setWidth(500);
+ column = new TableColumn(table, SWT.NONE);
+ if (isAdminPreference){
+ column.setText("Allow Override");
+ }else{
+ column.setText("Use Default");
+ }
+ column.setWidth(100);
+ column = new TableColumn(table, SWT.NONE);
+ column.setText("Delete");
+ column.setWidth(100);
+
+
+
+ while (prefIterator.hasNext()){
+ pref = prefIterator.next();
+ createTableRow(pref);
+
+ }
+ }
+
+ public void createTableRow(CdmPreference pref) {
+ TableItem item = new TableItem(table, SWT.NONE);
+ for (int col = 0; col < 3; col ++) {
+ String namedAreaString = null;
+ if (col == 0){
+ String uuidString = getUUIDFromSubject(pref);
+ if (uuidString != null){
+ try{
+ UUID uuid = UUID.fromString(uuidString);
+ namedAreaString = namedAreaUUIDMap.get(UUID.fromString(uuidString)).getLabel();
+ }catch(IllegalArgumentException e){
+ // no UUID
+ }
+ }
+ if (namedAreaString != null){
+ String subjectString = pref.getSubjectString().replace(pref.getSubject().getLastPart(), namedAreaString);
+ item.setText(col, pref.getPredicate() +subjectString);
+ }else{
+ item.setText(col, pref.getPredicate() +pref.getSubjectString());
+ }
+
+ }else if (col == 1) {
+ Button allowOverrideButton = new Button(table, SWT.CHECK);
+ allowOverrideButton.setData(pref);
+ TableEditor editor = new TableEditor(table);
+ editor.horizontalAlignment = SWT.LEFT;
+ editor.grabHorizontal = true;
+ editor.setEditor(allowOverrideButton, item, col);
+ allowOverrideButton.setSelection(pref.isAllowOverride());
+ allowOverrideButton.addSelectionListener(new SelectionAdapter(){
+ @Override
+ public void widgetSelected(SelectionEvent e){
+ setApply(true);
+ Button thisButton= (Button) e.widget;
+ CdmPreference preference=(CdmPreference)thisButton.getData();
+ preference = PreferenceResolver.resolve(prefStatus, preference.getKey());
+ if (isAdminPreference){
+ preference.setAllowOverride(!preference.isAllowOverride());
+ }else{
+
+ }
+ }
+ });
+ } else if (col == 2){
+ Button delButton = new Button(table, SWT.PUSH);
+ delButton.setImage(ImageResources
+ .getImage(ImageResources.TRASH_ICON));
+ delButton.setData(pref);
+ delButton.pack();
+ delButton.addSelectionListener(new SelectionAdapter(){
+ @Override
+ public void widgetSelected(SelectionEvent e){
+ Button thisButton= (Button) e.widget;
+ CdmPreference preference=(CdmPreference)thisButton.getData();
+ int index = prefStatus.indexOf(preference);
+ table.getItem(index).setText("Deleted");
+ //prefStatus.remove(preference);
+ prefStatusToDelete.add(preference);
+ setApply(true);
+
+ }
+ });
+ TableEditor editor = new TableEditor(table);
+ editor.horizontalAlignment = SWT.LEFT;
+ editor.grabHorizontal = true;
+ editor.setEditor(delButton, item, col);
+
+ }
+ }
+ }
+
+ @Override
+ public void getValues() {
+ isAdminPreference = false;
+ CdmPreferenceCache cache = CdmPreferenceCache.instance();
+ cache.getAllTaxEditorDBPreferences();
+ prefAreaVoc = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
+ if (prefAreaVoc == null){
+ prefAreaVoc = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies, PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue() != null ? PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue().toString(): null);
+ }
+
+
+ prefStatus = cache.getAllForPredicate(PreferencePredicate.AvailableDistributionStatus.getKey());
+ if (prefStatus == null){
+ prefStatus = new ArrayList();
+ CdmPreference statusPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencePredicate.AvailableDistributionStatus.getDefaultValue() != null ? PreferencePredicate.AvailableDistributionStatus.getDefaultValue().toString(): null);
+ prefStatus.add(statusPref);
+ }
+ createNamedAreaUUIDMap();
+
+ commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler";
+ commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardHandler";
+ setApply(true);
+ }
+
+ /**
+ *
+ */
+ private void createNamedAreaUUIDMap() {
+ List<UUID> uuids = new ArrayList();
+ for (CdmPreference pref: prefStatus){
+ try{
+ String lastPart = getUUIDFromSubject(pref);
+ UUID uuid = UUID.fromString(lastPart);
+ uuids.add(uuid);
+ }catch (IllegalArgumentException e){
+ // no uuid in subject
+ }
+
+ }
+ if (!uuids.isEmpty()){
+ List<NamedArea> areas =CdmStore.getTermManager().getTerms(uuids, NamedArea.class);
+ for (NamedArea area: areas){
+ namedAreaUUIDMap.put(area.getUuid(), area);
+ }
+ }
+
+ }
+
+ public String getUUIDFromSubject(CdmPreference pref) {
+ String lastPart = pref.getSubject().getLastPart();
+ lastPart = lastPart.replace("NamedArea[", "");
+ lastPart = lastPart.replace("]", "");
+ return lastPart;
+ }
+
+ @Override
+ protected void performDefaults() {
+ if (!isAdminPreference){
+ if (!prefAreaVoc.isAllowOverride()) {
+ button_openSelectAreaVocabularies.setButtonEnabled(false);
+ }
+
+ }
+ prefStatus = new ArrayList();
+ CdmPreference statusPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencePredicate.AvailableDistributionStatus.getDefaultValue() != null ? PreferencePredicate.AvailableDistributionStatus.getDefaultValue().toString(): null);
+ prefStatus.add(statusPref);
+ prefAreaVoc = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies,
+ null);
+ refresh();
+ }
+
+ @Override
+ public boolean performOk(){
+ if (!isApply()){
+ return true;
+ }
+ List<CdmPreference> toDelete = new ArrayList<>();
+ for (CdmPreference pref:prefStatusToDelete){
+ CdmPreference prefToDelete = CdmPreference.NewInstance(pref.getKey(), null);
+ toDelete.add(prefToDelete);
+ }
+ prefStatus.addAll(toDelete);
+ PreferencesUtil.setPreferencesToDB(prefStatus);
+ return true;
+ }
+
+
+ @Inject
+ @Optional
+ public void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_DATASOURCE)boolean refresh){
+ if(refresh){
+ refresh();
+ }
+ }
+
+ /**
+ *
+ */
+ private void refresh() {
+ getValues();
+ table.removeAll();
+ Iterator<CdmPreference> prefIterator = prefStatus.iterator();
+ CdmPreference pref;
+ while (prefIterator.hasNext()){
+ pref = prefIterator.next();
+ createTableRow(pref);
+
+ }
+ table.redraw();
+ table.pack();
+
+ }
+}
public static void setPreferencesToDB(List<CdmPreference> preferences) {
ICdmRepository controller;
- try{
+ //try{
if(CdmStore.isActive()){
controller = CdmStore.getCurrentApplicationConfiguration();
for (CdmPreference preference: preferences){
if (preference.getValue() == null && preference.isAllowOverride()){
controller.getPreferenceService().remove(preference.getKey());
+
}else{
controller.getPreferenceService().set(preference);
+
}
- CdmPreferenceCache.instance().put(preference);
+
}
+ CdmPreferenceCache.instance().getAllTaxEditorDBPreferences();
+
}
- }catch(Exception e){
+ /*}catch(Exception e){
e.printStackTrace();
- }
+ }*/
}
/**
protected Boolean isShowIDNamspace;
- protected Boolean isShowNamespace;
+ protected Boolean isShowIDSource;
protected boolean isAllowOverrideShowIDNamspace;
- protected boolean isAllowOverrideShowNamspace;
+ protected boolean isAllowOverrideShowIDSource;
protected boolean isOverrideShowIDNamspace;
- protected boolean isOverrideShowNamspace;
+ protected boolean isOverrideShowIDSource;
protected Combo showIDNamspaceButton;
protected Button allowOverrideShowIDNamspaceButton;
- protected Combo showNamspaceButton;
- protected Button allowOverrideNamspaceButton;
+ protected Combo showIDSourceButton;
+ protected Button allowOverrideIDSourceButton;
final String SHOW = Messages.GeneralPreference_yes;
final String DO_NOT_SHOW = Messages.GeneralPreference_no;
}
- showNamspaceButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowNamespaceInSource, "Show Namespace in Source",
+ showIDSourceButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowNamespaceInSource, "Show ID in Source",
isAdminPreference);
- showNamspaceButton.addSelectionListener(this);
- if (isShowNamespace == null || (!isOverrideShowNamspace && !isAdminPreference)){
- showNamspaceButton.select(0);
- }else if (isShowNamespace){
- showNamspaceButton.select(1);
+ showIDSourceButton.addSelectionListener(this);
+ if (isShowIDSource == null || (!isOverrideShowIDSource && !isAdminPreference)){
+ showIDSourceButton.select(0);
+ }else if (isShowIDSource){
+ showIDSourceButton.select(1);
}else{
- showNamspaceButton.select(2);
+ showIDSourceButton.select(2);
}
if (isAdminPreference){
- allowOverrideNamspaceButton = createAllowOverrideButton(composite);
- allowOverrideNamspaceButton.setSelection(isAllowOverrideShowNamspace);
- allowOverrideNamspaceButton.addSelectionListener(new SelectionAdapter(){
+ allowOverrideIDSourceButton = createAllowOverrideButton(composite);
+ allowOverrideIDSourceButton.setSelection(isAllowOverrideShowIDSource);
+ allowOverrideIDSourceButton.addSelectionListener(new SelectionAdapter(){
@Override
public void widgetSelected(SelectionEvent e) {
- isAllowOverrideShowNamspace = allowOverrideNamspaceButton.getSelection();
+ isAllowOverrideShowIDSource = allowOverrideIDSourceButton.getSelection();
setApply(true);
}
});
if (!isAllowOverrideShowIDNamspace && !isAdminPreference){
showIDNamspaceButton.setEnabled(false);
}
- if (!isAllowOverrideShowNamspace && !isAdminPreference){
- showNamspaceButton.setEnabled(false);
+ if (!isAllowOverrideShowIDSource && !isAdminPreference){
+ showIDSourceButton.setEnabled(false);
}
PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowIdInSource.getKey()), isOverrideShowIDNamspace);
PreferencesUtil.setBooleanValue(PreferencePredicate.ShowIdInSource.getKey(), isShowIDNamspace);
}
- if (isAllowOverrideShowNamspace){
- PreferencesUtil.setBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), isShowNamespace);
- PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), isOverrideShowNamspace);
+ if (isAllowOverrideShowIDSource){
+ PreferencesUtil.setBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), isShowIDSource);
+ PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), isOverrideShowIDSource);
}
isAllowOverrideShowIDNamspace = true;
}
- isShowNamespace = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), true);
- isOverrideShowNamspace = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true):false;
+ isShowIDSource = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), true);
+ isOverrideShowIDSource = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true):false;
key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowNamespaceInSource);
pref = cache.findBestMatching(key);
if (pref != null){
- isAllowOverrideShowNamspace = pref.isAllowOverride();
+ isAllowOverrideShowIDSource = pref.isAllowOverride();
}else{
- isAllowOverrideShowNamspace = true;
+ isAllowOverrideShowIDSource = true;
}
isShowIDNamspace = false;
}
}
- if (e.getSource().equals(this.showNamspaceButton)) {
- String text = showNamspaceButton.getText();
+ if (e.getSource().equals(this.showIDSourceButton)) {
+ String text = showIDSourceButton.getText();
if (text.equals(Messages.Preference_Use_Default)){
- isOverrideShowNamspace = false;
+ isOverrideShowIDSource = false;
}else{
- isOverrideShowNamspace = true;
+ isOverrideShowIDSource = true;
}
if (text.equals(SHOW)){
- isShowNamespace = true;
+ isShowIDSource = true;
}else{
- isShowNamespace = false;
+ isShowIDSource = false;
}
}
}
});
- btnRemove = new Button(toolbar, SWT.NONE);
- btnRemove.addSelectionListener(new SelectionListener(){
-
- @Override
- public void widgetSelected(SelectionEvent e) {
-
- PrefKey key = newAreaSpecificStatusPreference();
- actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
- actualPref = CdmPreference.NewInstance(key, null);
-
- perAreaPreferences.add(actualPref);
- status.setText("Preference for area " + actualArea.getLabel() + " removed.");
- status.setVisible(true);
-
- actualArea = null;
-
- areaText.setText("");
- rememberCheckedValues(getCheckedValuesFromPreferences());
-
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- });
- btnRemove.setImage(ImageResources.getImage(ImageResources.ACTIVE_DELETE_ICON));
- btnRemove.setToolTipText("");
+// btnRemove = new Button(toolbar, SWT.NONE);
+// btnRemove.addSelectionListener(new SelectionListener(){
+//
+// @Override
+// public void widgetSelected(SelectionEvent e) {
+//
+// PrefKey key = newAreaSpecificStatusPreference();
+// actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
+// actualPref = CdmPreference.NewInstance(key, null);
+// if (actualPref.getKey().equals(pref.getKey())){
+// pref = actualPref;
+// }
+//
+// perAreaPreferences.add(actualPref);
+// if (actualArea != null){
+// status.setText("Preference for area " + actualArea.getLabel() + " removed. Now the status defined for all areas are displayed");
+// }else{
+// status.setText("Preference for all areas is removed. Now all status will be displayed");
+// }
+// status.setVisible(true);
+//
+// actualArea = null;
+//
+// areaText.setText("");
+// rememberCheckedValues(getCheckedValuesFromPreferences());
+//
+// }
+//
+// @Override
+// public void widgetDefaultSelected(SelectionEvent e) {
+// // TODO Auto-generated method stub
+//
+// }
+//
+// });
+// btnRemove.setImage(ImageResources.getImage(ImageResources.ACTIVE_DELETE_ICON));
+// btnRemove.setToolTipText("");
status = new Label(toolbar, SWT.NONE);
status.setVisible(false);
}
}
private PrefKey newAreaSpecificStatusPreference(){
- PrefKey prefKey = CdmPreference.NewKey(PreferenceSubject.NewInstance(PreferenceSubject.ROOT+"NamedArea["+actualArea.getUuid().toString()+"]"+PreferenceSubject.SEP), PreferencePredicate.AvailableDistributionStatus);
+ PrefKey prefKey;
+ if (actualArea != null){
+ prefKey = CdmPreference.NewKey(PreferenceSubject.NewInstance(PreferenceSubject.ROOT+"NamedArea["+actualArea.getUuid().toString()+"]"+PreferenceSubject.SEP), PreferencePredicate.AvailableDistributionStatus);
+ }else{
+ prefKey = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableDistributionStatus);
+ }
return prefKey;
}
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
// PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()), aPage.override);
PreferencesUtil.firePreferencesChanged(this.getClass());
+ EventUtility.postEvent(WorkbenchEventConstants.REFRESH_DISTRIBUTION_PREFERENCES, true);
return true;
}
}
CdmPreference pref = CdmPreferenceCache.instance().get(key);
// if there is no preference for the area, look for the general
- if (pref == null){
+ if (pref == null || pref.isAllowOverride()){
pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey()));
}