From: Patric Plitzner
Date: Tue, 17 Feb 2015 08:51:28 +0000 (+0000)
Subject: - added option to toggle the delete configurator parameters in taxon deletion dialog...
X-Git-Tag: 3.6.0~225
X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/148679e686a54b8e3461d4c94591be5b0d58af4c
- added option to toggle the delete configurator parameters in taxon deletion dialog (#4656)
---
diff --git a/.gitattributes b/.gitattributes
index dc32f59a7..4e918641b 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1410,6 +1410,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/bar/Authent
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/EnumComboElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DefaultLanguageDialog.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteConfiguratorComposite.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteConfiguratorDialog.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteTaxonConfiguratorDialog.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/LoginDialog.java -text
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteConfiguratorComposite.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteConfiguratorComposite.java
new file mode 100644
index 000000000..5f78392b9
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteConfiguratorComposite.java
@@ -0,0 +1,93 @@
+// $Id$
+/**
+* Copyright (C) 2015 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.ui.dialog;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.beans.PojoProperties;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.events.IExpansionListener;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Section;
+
+import eu.etaxonomy.cdm.api.service.config.TaxonBaseDeletionConfigurator;
+
+/**
+ * @author pplitzner
+ * @date Feb 16, 2015
+ *
+ */
+public class DeleteConfiguratorComposite extends Composite implements IExpansionListener{
+ private final DataBindingContext m_bindingContext;
+
+ private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
+ private TaxonBaseDeletionConfigurator configurator = null;
+ private final Button btnDeleteTaxonName;
+
+ /**
+ * Create the composite.
+ * @param parent
+ * @param style
+ */
+ public DeleteConfiguratorComposite(TaxonBaseDeletionConfigurator configurator, final Composite parent, int style) {
+ super(parent, SWT.NONE);
+ this.configurator = configurator;
+
+ addDisposeListener(new DisposeListener() {
+ @Override
+ public void widgetDisposed(DisposeEvent e) {
+ toolkit.dispose();
+ }
+ });
+ toolkit.paintBordersFor(this);
+ setLayout(new FillLayout(SWT.HORIZONTAL));
+
+ Section sctnConfigure = toolkit.createSection(this, Section.CLIENT_INDENT | Section.TWISTIE);
+ sctnConfigure.addExpansionListener(this);
+ sctnConfigure.setBackground(getBackground());
+ toolkit.paintBordersFor(sctnConfigure);
+ sctnConfigure.setText("Configure");
+
+ btnDeleteTaxonName = new Button(sctnConfigure, SWT.CHECK);
+ sctnConfigure.setClient(btnDeleteTaxonName);
+ btnDeleteTaxonName.setText("Delete Taxon Name");
+ m_bindingContext = initDataBindings();
+
+ }
+ protected DataBindingContext initDataBindings() {
+ DataBindingContext bindingContext = new DataBindingContext();
+ //
+ IObservableValue observeSelectionBtnDeleteTaxonNameObserveWidget = WidgetProperties.selection().observe(btnDeleteTaxonName);
+ IObservableValue deleteNameIfPossibleConfiguratorObserveValue = PojoProperties.value("deleteNameIfPossible").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnDeleteTaxonNameObserveWidget, deleteNameIfPossibleConfiguratorObserveValue, null, null);
+ //
+ return bindingContext;
+ }
+
+ public Button getBtnDeleteTaxonName() {
+ return btnDeleteTaxonName;
+ }
+
+ @Override
+ public void expansionStateChanged(ExpansionEvent e) {
+ getShell().setSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ }
+ @Override
+ public void expansionStateChanging(ExpansionEvent e) {
+ }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteConfiguratorDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteConfiguratorDialog.java
index 843ff14fb..3a8cbf46e 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteConfiguratorDialog.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteConfiguratorDialog.java
@@ -14,7 +14,6 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
@@ -26,7 +25,7 @@ import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
* @date Jan 28, 2015
*
*/
-public abstract class DeleteConfiguratorDialog extends MessageDialog implements Listener{
+public abstract class DeleteConfiguratorDialog extends MessageDialog{
public DeleteConfiguratorDialog(Shell parentShell, String dialogTitle,
Image dialogTitleImage, String dialogMessage, int dialogImageType, String[] dialogButtonLabels, int defaultIndex) {
@@ -40,13 +39,9 @@ public abstract class DeleteConfiguratorDialog extends MessageDialog implements
protected Control createDialogArea(Composite parent) {
Composite composite = (Composite) super.createDialogArea(parent);
- createCheckBoxes(composite);
-
return composite;
}
- protected abstract void createCheckBoxes(Composite parent);
-
/**
* @param kind
* @return
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteTaxonConfiguratorDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteTaxonConfiguratorDialog.java
index e7a822cf5..9ad0e951c 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteTaxonConfiguratorDialog.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DeleteTaxonConfiguratorDialog.java
@@ -10,11 +10,9 @@
package eu.etaxonomy.taxeditor.ui.dialog;
import org.apache.log4j.Logger;
-import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
@@ -30,7 +28,6 @@ public class DeleteTaxonConfiguratorDialog extends DeleteConfiguratorDialog {
private final Logger logger = Logger.getLogger(DeleteTaxonConfiguratorDialog.class);
private final TaxonDeletionConfigurator configurator;
- private Button btnDeleteName;
/**
* @param configurator
@@ -49,24 +46,12 @@ public class DeleteTaxonConfiguratorDialog extends DeleteConfiguratorDialog {
}
/* (non-Javadoc)
- * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
+ * @see org.eclipse.jface.dialogs.MessageDialog#createCustomArea(org.eclipse.swt.widgets.Composite)
*/
@Override
- public void handleEvent(Event event) {
- if(event.widget==btnDeleteName){
- configurator.setDeleteNameIfPossible(btnDeleteName.getSelection());
- }
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.dialog.DeleteConfiguratorDialog#createCheckBoxes()
- */
- @Override
- protected void createCheckBoxes(Composite parent) {
- btnDeleteName = new Button(parent, SWT.CHECK);
- btnDeleteName.setText("Delete taxon name if possible");
- btnDeleteName.addListener(SWT.Selection, this);
- btnDeleteName.setSelection(configurator.isDeleteNameIfPossible());
+ protected Control createCustomArea(Composite parent) {
+ DeleteConfiguratorComposite composite = new DeleteConfiguratorComposite(configurator, parent, NONE);
+ return composite;
}
public static boolean openConfirmWithConfigurator(TaxonDeletionConfigurator configurator, Shell parent, String title, String message) {
@@ -74,4 +59,12 @@ public class DeleteTaxonConfiguratorDialog extends DeleteConfiguratorDialog {
return dialog.open() == 0;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.Dialog#isResizable()
+ */
+ @Override
+ protected boolean isResizable() {
+ return true;
+ }
+
}