Project

General

Profile

Download (2.03 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.vaadin.view.distributionStatus;
2

    
3
import com.vaadin.ui.AbstractLayout;
4
import com.vaadin.ui.AbstractOrderedLayout;
5
import com.vaadin.ui.Button;
6
import com.vaadin.ui.CustomComponent;
7
import com.vaadin.ui.HorizontalLayout;
8
import com.vaadin.ui.Window;
9

    
10
import eu.etaxonomy.cdm.vaadin.view.distributionStatus.settings.SettingsPresenterBase;
11

    
12
@SuppressWarnings("serial")
13
public abstract class SettingsDialogWindowBase<P extends SettingsPresenterBase> extends CustomComponent {
14

    
15
	protected Button okButton;
16
	protected Button cancelButton;
17
	protected final P presenter;
18
	protected Window window;
19
	protected AbstractOrderedLayout mainLayout;
20

    
21
	public SettingsDialogWindowBase() {
22
        buildMainLayout();
23
        presenter = getPresenter();
24
        init();
25
	}
26

    
27
    protected abstract P getPresenter();
28

    
29
    protected abstract AbstractLayout buildMainLayout();
30

    
31
	protected abstract void init();
32

    
33
	protected HorizontalLayout createOkCancelButtons() {
34
		HorizontalLayout buttonToolBar = new HorizontalLayout();
35
	    // cancelButton
36
	    cancelButton = new Button();
37
	    cancelButton.setCaption("Cancel");
38
	    cancelButton.setImmediate(true);
39
	    cancelButton.addStyleName("dialogButton");
40
	    buttonToolBar.addComponent(cancelButton);
41

    
42
	    // okButton
43
	    okButton = new Button();
44
	    okButton.setCaption("OK");
45
	    okButton.setImmediate(true);
46
	    okButton.addStyleName("dialogButton");
47
	    buttonToolBar.addComponent(okButton);
48
		return buttonToolBar;
49
	}
50

    
51
	public Window createWindow(String caption) {
52
	    window = new Window();
53
	    window.setModal(true);
54
	    window.setWidth("60%");
55
	    window.setHeight("80%");
56
	    window.setCaption(caption);
57
	    window.setContent(mainLayout);
58
	    return window;
59
	}
60

    
61
	/**
62
	 * Update OK/Cancel button depending on {@link #isValid()}
63
	 */
64
	protected void updateButtons(){
65
		okButton.setEnabled(isValid());
66
	}
67

    
68
	/**
69
	 * Evaluates if this dialog has all necessary values set in
70
	 * a correct state
71
	 * @return <code>true</code> if the status of this dialog is valid
72
	 */
73
	protected abstract boolean isValid();
74

    
75
}
(7-7/7)