Project

General

Profile

« Previous | Next » 

Revision 58dba687

Added by Patrick Plitzner over 7 years ago

ref #6131 Refactor settings dialog

  • extracted abstract class
  • set style for OK/Cancel button

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/DistributionSettingsConfigWindow.java
12 12
import java.sql.SQLException;
13 13
import java.util.Set;
14 14

  
15
import com.vaadin.data.Container;
16 15
import com.vaadin.data.Property;
17 16
import com.vaadin.data.Property.ValueChangeEvent;
18 17
import com.vaadin.data.Property.ValueChangeListener;
19 18
import com.vaadin.data.util.sqlcontainer.RowId;
20 19
import com.vaadin.server.VaadinSession;
21 20
import com.vaadin.ui.AbstractLayout;
22
import com.vaadin.ui.AbstractOrderedLayout;
23 21
import com.vaadin.ui.Alignment;
24
import com.vaadin.ui.Button;
25 22
import com.vaadin.ui.Button.ClickEvent;
26 23
import com.vaadin.ui.Button.ClickListener;
27 24
import com.vaadin.ui.ComboBox;
28
import com.vaadin.ui.CustomComponent;
29 25
import com.vaadin.ui.HorizontalLayout;
30 26
import com.vaadin.ui.ListSelect;
31 27
import com.vaadin.ui.Notification;
32 28
import com.vaadin.ui.Table.ColumnHeaderMode;
33 29
import com.vaadin.ui.TreeTable;
34 30
import com.vaadin.ui.VerticalLayout;
35
import com.vaadin.ui.Window;
36 31

  
37 32
import eu.etaxonomy.cdm.model.common.TermVocabulary;
38 33
import eu.etaxonomy.cdm.model.location.NamedArea;
......
40 35
import eu.etaxonomy.cdm.vaadin.container.NamedAreaContainer;
41 36
import eu.etaxonomy.cdm.vaadin.container.TaxonNodeContainer;
42 37
import eu.etaxonomy.cdm.vaadin.container.TaxonTreeContainer;
43
import eu.etaxonomy.cdm.vaadin.presenter.dbstatus.settings.SettingsPresenter;
44 38
import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper;
45 39
import eu.etaxonomy.cdm.vaadin.util.DistributionEditorUtil;
46 40

  
......
49 43
 * @author pplitzner
50 44
 *
51 45
 */
52
public class DistributionSettingsConfigWindow extends CustomComponent implements ValueChangeListener, ClickListener{
46
public class DistributionSettingsConfigWindow extends AbstractSettingsDialogWindow implements ValueChangeListener, ClickListener{
53 47

  
54 48
	private static final long serialVersionUID = 1439411115014088780L;
55 49
	private ComboBox classificationBox;
56 50
    private ComboBox distAreaBox;
57 51
    private ListSelect namedAreaList;
58 52
    private TreeTable taxonTree;
59
    private Button okButton;
60
    private Button cancelButton;
61
    private final SettingsPresenter presenter;
62
	private Window window;
63
	private AbstractOrderedLayout mainLayout;
64

  
65 53
    /**
66 54
     * The constructor should first build the main layout, set the
67 55
     * composition root and then do any custom initialization.
......
71 59
     * @param distributionTableView
72 60
     */
73 61
    public DistributionSettingsConfigWindow(DistributionTableView distributionTableView) {
74
        buildMainLayout();
75
        presenter = new SettingsPresenter();
76
        init();
62
    	super();
77 63
    }
78 64

  
79
    private void init() {
80
        Container distributionContainer = presenter.getDistributionContainer();
81
        TermVocabulary<NamedArea> chosenArea = presenter.getChosenArea();
65
    protected void init() {
66
    	//init classification and taxon selection
67
        TaxonNode chosenTaxonNode = presenter.getChosenTaxonNode();
82 68

  
83 69
        classificationBox.setContainerDataSource(new TaxonNodeContainer(null));
70
        Object classificationSelection = null;
84 71
		if(classificationBox.getItemIds().size()==1){
85
		    classificationBox.setValue(classificationBox.getItemIds().iterator().next());
72
			//only one classification exists
73
		    classificationSelection = classificationBox.getItemIds().iterator().next();
86 74
		}
87
        TaxonNode chosenTaxonNode = presenter.getChosenTaxonNode();
88
        if(chosenTaxonNode!=null){
89
        	classificationBox.setValue(chosenTaxonNode.getClassification().getRootNode());
75
		else if(chosenTaxonNode!=null){
76
			//get the classification from the selected taxon node
77
			classificationSelection = chosenTaxonNode.getClassification().getRootNode();
78
		}
79
        if(classificationSelection!=null){
80
        	classificationBox.setValue(classificationSelection);
90 81
        	try {
91
                taxonTree.setContainerDataSource(new TaxonTreeContainer((TaxonNode) classificationBox.getValue()));
82
                taxonTree.setContainerDataSource(new TaxonTreeContainer((TaxonNode) classificationSelection));
83
                taxonTree.setVisibleColumns("Name");
92 84
            } catch (SQLException e) {
93 85
                // TODO Auto-generated catch block
94 86
                e.printStackTrace();
95 87
            }
96
        	taxonTree.select(new RowId(chosenTaxonNode.getId()));
97
            taxonTree.setVisibleColumns("Name");
88
        	if(chosenTaxonNode!=null){
89
    			taxonTree.select(new RowId(chosenTaxonNode.getId()));
90
        	}
98 91
        }
99 92
        classificationBox.addValueChangeListener(this);
100
        distAreaBox.setContainerDataSource(distributionContainer);
93
        
94
        TermVocabulary<NamedArea> chosenArea = presenter.getChosenArea();
95
        distAreaBox.setContainerDataSource(presenter.getDistributionContainer());
101 96
        distAreaBox.setValue(chosenArea);
102 97
        distAreaBox.addValueChangeListener(this);
103 98

  
......
112 107
        cancelButton.addClickListener(this);
113 108
    }
114 109

  
115
    public Window createWindow(){
116
        window = new Window();
117
        window.setModal(true);
118
        window.setWidth("60%");
119
        window.setHeight("80%");
120
        window.setCaption("Settings");
121
        window.setContent(mainLayout);
122
        return window;
123
    }
124

  
125
    private AbstractLayout buildMainLayout() {
110
    protected AbstractLayout buildMainLayout() {
126 111

  
127 112
        mainLayout = new VerticalLayout();
128 113
        mainLayout.setSizeFull();
......
191 176
        leftAndRightContainer.addComponent(rightContainer);
192 177

  
193 178
        //button toolbar
194
        HorizontalLayout buttonToolBar = new HorizontalLayout();
195
        // cancelButton
196
        cancelButton = new Button();
197
        cancelButton.setCaption("Cancel");
198
        cancelButton.setImmediate(true);
199
        buttonToolBar.addComponent(cancelButton);
200

  
201
        // okButton
202
        okButton = new Button();
203
        okButton.setCaption("OK");
204
        okButton.setImmediate(true);
205
        buttonToolBar.addComponent(okButton);
179
        HorizontalLayout buttonToolBar = createOkCancelButtons();
206 180

  
207 181
        mainLayout.addComponent(leftAndRightContainer);
208 182
        mainLayout.addComponent(buttonToolBar);

Also available in: Unified diff