commit 58dba687a51cb1c277ec73c9c7324fcc775a1b94
Author: Patrick Plitzner
Date: Fri Oct 21 07:48:02 2016 +0200
ref #6131 Refactor settings dialog
- extracted abstract class
- set style for OK/Cancel button
diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/AbstractSettingsDialogWindow.java b/src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/AbstractSettingsDialogWindow.java
new file mode 100644
index 00000000..3d3ae8d9
--- /dev/null
+++ b/src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/AbstractSettingsDialogWindow.java
@@ -0,0 +1,59 @@
+package eu.etaxonomy.cdm.vaadin.view.dbstatus;
+
+import com.vaadin.ui.AbstractLayout;
+import com.vaadin.ui.AbstractOrderedLayout;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.CustomComponent;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Window;
+
+import eu.etaxonomy.cdm.vaadin.presenter.dbstatus.settings.SettingsPresenter;
+
+@SuppressWarnings("serial")
+public abstract class AbstractSettingsDialogWindow extends CustomComponent {
+
+ protected Button okButton;
+ protected Button cancelButton;
+ protected final SettingsPresenter presenter;
+ protected Window window;
+ protected AbstractOrderedLayout mainLayout;
+
+ public AbstractSettingsDialogWindow() {
+ buildMainLayout();
+ presenter = new SettingsPresenter();
+ init();
+ }
+
+ protected abstract AbstractLayout buildMainLayout();
+
+ protected abstract void init();
+
+ protected HorizontalLayout createOkCancelButtons() {
+ HorizontalLayout buttonToolBar = new HorizontalLayout();
+ // cancelButton
+ cancelButton = new Button();
+ cancelButton.setCaption("Cancel");
+ cancelButton.setImmediate(true);
+ cancelButton.addStyleName("dialogButton");
+ buttonToolBar.addComponent(cancelButton);
+
+ // okButton
+ okButton = new Button();
+ okButton.setCaption("OK");
+ okButton.setImmediate(true);
+ okButton.addStyleName("dialogButton");
+ buttonToolBar.addComponent(okButton);
+ return buttonToolBar;
+ }
+
+ public Window createWindow() {
+ window = new Window();
+ window.setModal(true);
+ window.setWidth("60%");
+ window.setHeight("80%");
+ window.setCaption("Settings");
+ window.setContent(mainLayout);
+ return window;
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/DistributionSettingsConfigWindow.java b/src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/DistributionSettingsConfigWindow.java
index d90dbdd6..ee11b799 100644
--- a/src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/DistributionSettingsConfigWindow.java
+++ b/src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/DistributionSettingsConfigWindow.java
@@ -12,27 +12,22 @@ package eu.etaxonomy.cdm.vaadin.view.dbstatus;
import java.sql.SQLException;
import java.util.Set;
-import com.vaadin.data.Container;
import com.vaadin.data.Property;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.data.util.sqlcontainer.RowId;
import com.vaadin.server.VaadinSession;
import com.vaadin.ui.AbstractLayout;
-import com.vaadin.ui.AbstractOrderedLayout;
import com.vaadin.ui.Alignment;
-import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.ComboBox;
-import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.ListSelect;
import com.vaadin.ui.Notification;
import com.vaadin.ui.Table.ColumnHeaderMode;
import com.vaadin.ui.TreeTable;
import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window;
import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.cdm.model.location.NamedArea;
@@ -40,7 +35,6 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.vaadin.container.NamedAreaContainer;
import eu.etaxonomy.cdm.vaadin.container.TaxonNodeContainer;
import eu.etaxonomy.cdm.vaadin.container.TaxonTreeContainer;
-import eu.etaxonomy.cdm.vaadin.presenter.dbstatus.settings.SettingsPresenter;
import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper;
import eu.etaxonomy.cdm.vaadin.util.DistributionEditorUtil;
@@ -49,19 +43,13 @@ import eu.etaxonomy.cdm.vaadin.util.DistributionEditorUtil;
* @author pplitzner
*
*/
-public class DistributionSettingsConfigWindow extends CustomComponent implements ValueChangeListener, ClickListener{
+public class DistributionSettingsConfigWindow extends AbstractSettingsDialogWindow implements ValueChangeListener, ClickListener{
private static final long serialVersionUID = 1439411115014088780L;
private ComboBox classificationBox;
private ComboBox distAreaBox;
private ListSelect namedAreaList;
private TreeTable taxonTree;
- private Button okButton;
- private Button cancelButton;
- private final SettingsPresenter presenter;
- private Window window;
- private AbstractOrderedLayout mainLayout;
-
/**
* The constructor should first build the main layout, set the
* composition root and then do any custom initialization.
@@ -71,33 +59,40 @@ public class DistributionSettingsConfigWindow extends CustomComponent implements
* @param distributionTableView
*/
public DistributionSettingsConfigWindow(DistributionTableView distributionTableView) {
- buildMainLayout();
- presenter = new SettingsPresenter();
- init();
+ super();
}
- private void init() {
- Container distributionContainer = presenter.getDistributionContainer();
- TermVocabulary chosenArea = presenter.getChosenArea();
+ protected void init() {
+ //init classification and taxon selection
+ TaxonNode chosenTaxonNode = presenter.getChosenTaxonNode();
classificationBox.setContainerDataSource(new TaxonNodeContainer(null));
+ Object classificationSelection = null;
if(classificationBox.getItemIds().size()==1){
- classificationBox.setValue(classificationBox.getItemIds().iterator().next());
+ //only one classification exists
+ classificationSelection = classificationBox.getItemIds().iterator().next();
}
- TaxonNode chosenTaxonNode = presenter.getChosenTaxonNode();
- if(chosenTaxonNode!=null){
- classificationBox.setValue(chosenTaxonNode.getClassification().getRootNode());
+ else if(chosenTaxonNode!=null){
+ //get the classification from the selected taxon node
+ classificationSelection = chosenTaxonNode.getClassification().getRootNode();
+ }
+ if(classificationSelection!=null){
+ classificationBox.setValue(classificationSelection);
try {
- taxonTree.setContainerDataSource(new TaxonTreeContainer((TaxonNode) classificationBox.getValue()));
+ taxonTree.setContainerDataSource(new TaxonTreeContainer((TaxonNode) classificationSelection));
+ taxonTree.setVisibleColumns("Name");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- taxonTree.select(new RowId(chosenTaxonNode.getId()));
- taxonTree.setVisibleColumns("Name");
+ if(chosenTaxonNode!=null){
+ taxonTree.select(new RowId(chosenTaxonNode.getId()));
+ }
}
classificationBox.addValueChangeListener(this);
- distAreaBox.setContainerDataSource(distributionContainer);
+
+ TermVocabulary chosenArea = presenter.getChosenArea();
+ distAreaBox.setContainerDataSource(presenter.getDistributionContainer());
distAreaBox.setValue(chosenArea);
distAreaBox.addValueChangeListener(this);
@@ -112,17 +107,7 @@ public class DistributionSettingsConfigWindow extends CustomComponent implements
cancelButton.addClickListener(this);
}
- public Window createWindow(){
- window = new Window();
- window.setModal(true);
- window.setWidth("60%");
- window.setHeight("80%");
- window.setCaption("Settings");
- window.setContent(mainLayout);
- return window;
- }
-
- private AbstractLayout buildMainLayout() {
+ protected AbstractLayout buildMainLayout() {
mainLayout = new VerticalLayout();
mainLayout.setSizeFull();
@@ -191,18 +176,7 @@ public class DistributionSettingsConfigWindow extends CustomComponent implements
leftAndRightContainer.addComponent(rightContainer);
//button toolbar
- HorizontalLayout buttonToolBar = new HorizontalLayout();
- // cancelButton
- cancelButton = new Button();
- cancelButton.setCaption("Cancel");
- cancelButton.setImmediate(true);
- buttonToolBar.addComponent(cancelButton);
-
- // okButton
- okButton = new Button();
- okButton.setCaption("OK");
- okButton.setImmediate(true);
- buttonToolBar.addComponent(okButton);
+ HorizontalLayout buttonToolBar = createOkCancelButtons();
mainLayout.addComponent(leftAndRightContainer);
mainLayout.addComponent(buttonToolBar);
diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/SettingsConfigWindow.java b/src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/SettingsConfigWindow.java
index 75183839..b9290237 100644
--- a/src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/SettingsConfigWindow.java
+++ b/src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/SettingsConfigWindow.java
@@ -15,17 +15,13 @@ import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.server.VaadinSession;
import com.vaadin.ui.AbstractLayout;
import com.vaadin.ui.Alignment;
-import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.CheckBox;
-import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.TwinColSelect;
import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window;
-import eu.etaxonomy.cdm.vaadin.presenter.dbstatus.settings.SettingsPresenter;
import eu.etaxonomy.cdm.vaadin.util.DistributionEditorUtil;
/**
@@ -33,17 +29,12 @@ import eu.etaxonomy.cdm.vaadin.util.DistributionEditorUtil;
* @date 22.04.2015
*
*/
-public class SettingsConfigWindow extends CustomComponent implements ValueChangeListener, ClickListener{
+public class SettingsConfigWindow extends AbstractSettingsDialogWindow implements ValueChangeListener, ClickListener{
private static final long serialVersionUID = -8220442386869594032L;
- private VerticalLayout mainLayout;
private TwinColSelect distStatusSelect;
private CheckBox boxToggleAbbreviatedLabels;
- private Button okButton;
- private Button cancelButton;
- private final SettingsPresenter presenter;
- private Window window;
- private DistributionTableView distributionTableView;
+ private DistributionTableView distributionTableView;
/**
* The constructor should first build the main layout, set the
@@ -54,13 +45,11 @@ public class SettingsConfigWindow extends CustomComponent implements ValueChange
* @param distributionTableView
*/
public SettingsConfigWindow(DistributionTableView distributionTableView) {
+ super();
this.distributionTableView = distributionTableView;
- buildMainLayout();
- presenter = new SettingsPresenter();
- init();
}
- private void init() {
+ protected void init() {
boxToggleAbbreviatedLabels.addValueChangeListener(this);
distStatusSelect.setContainerDataSource(presenter.getDistributionStatusContainer());
@@ -68,17 +57,7 @@ public class SettingsConfigWindow extends CustomComponent implements ValueChange
cancelButton.addClickListener(this);
}
- public Window createWindow(){
- window = new Window();
- window.setModal(true);
- window.setWidth("60%");
- window.setHeight("80%");
- window.setCaption("Settings");
- window.setContent(mainLayout);
- return window;
- }
-
- private AbstractLayout buildMainLayout() {
+ protected AbstractLayout buildMainLayout() {
mainLayout = new VerticalLayout();
mainLayout.setImmediate(false);
@@ -102,18 +81,7 @@ public class SettingsConfigWindow extends CustomComponent implements ValueChange
mainLayout.setSizeFull();
//button toolbar
- HorizontalLayout buttonContainer = new HorizontalLayout();
- // cancelButton
- cancelButton = new Button();
- cancelButton.setCaption("Cancel");
- cancelButton.setImmediate(true);
- buttonContainer.addComponent(cancelButton);
-
- // okButton
- okButton = new Button();
- okButton.setCaption("OK");
- okButton.setImmediate(true);
- buttonContainer.addComponent(okButton);
+ HorizontalLayout buttonContainer = createOkCancelButtons();
mainLayout.addComponent(buttonContainer);
mainLayout.setComponentAlignment(buttonContainer, Alignment.BOTTOM_RIGHT);
diff --git a/src/main/webapp/VAADIN/themes/edit/styles.scss b/src/main/webapp/VAADIN/themes/edit/styles.scss
index 2de1c1dd..50dde276 100644
--- a/src/main/webapp/VAADIN/themes/edit/styles.scss
+++ b/src/main/webapp/VAADIN/themes/edit/styles.scss
@@ -8,4 +8,9 @@
// Include mytheme theme styles in your theme
@include edit;
+}
+
+
+.dialogButton {
+ min-width: 80px;
}
\ No newline at end of file
diff --git a/src/main/webapp/VAADIN/themes/macosx/styles.scss b/src/main/webapp/VAADIN/themes/macosx/styles.scss
index ff0a8712..d439891f 100755
--- a/src/main/webapp/VAADIN/themes/macosx/styles.scss
+++ b/src/main/webapp/VAADIN/themes/macosx/styles.scss
@@ -175,4 +175,8 @@
font-weight: bold;
text-shadow: #fff 0 1px 0;
padding: 0;
+}
+
+.dialogButton {
+ min-width: 80px;
}
\ No newline at end of file