Revision 58dba687
Added by Patrick Plitzner over 7 years ago
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
ref #6131 Refactor settings dialog