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