--- /dev/null
+// $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) {
+ }
+}
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;
* @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) {
protected Control createDialogArea(Composite parent) {
Composite composite = (Composite) super.createDialogArea(parent);
- createCheckBoxes(composite);
-
return composite;
}
- protected abstract void createCheckBoxes(Composite parent);
-
/**
* @param kind
* @return
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;
private final Logger logger = Logger.getLogger(DeleteTaxonConfiguratorDialog.class);
private final TaxonDeletionConfigurator configurator;
- private Button btnDeleteName;
/**
* @param configurator
}
/* (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) {
return dialog.open() == 0;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.Dialog#isResizable()
+ */
+ @Override
+ protected boolean isResizable() {
+ return true;
+ }
+
}