aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/itmill/toolkit/ui/CheckBox.java
blob: 6252a121d64fa9421046d680216ad1ec2cae24b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package com.itmill.toolkit.ui;

import com.itmill.toolkit.data.Property;

public class CheckBox extends Button {
    /**
     * Creates a new switch button.
     */
    public CheckBox() {
        setSwitchMode(true);
    }

    /**
     * Creates a new switch button with a caption and a set initial state.
     * 
     * @param caption
     *                the caption of the switch button
     * @param initialState
     *                the initial state of the switch button
     */
    public CheckBox(String caption, boolean initialState) {
        setCaption(caption);
        setValue(new Boolean(initialState));
        setSwitchMode(true);
    }

    /**
     * Creates a new switch button with a caption and a click listener.
     * 
     * @param caption
     *                the caption of the switch button
     * @param listener
     *                the click listener
     */
    public CheckBox(String caption, ClickListener listener) {
        setCaption(caption);
        addListener(listener);
        setSwitchMode(true);
    }

    /**
     * Creates a new switch button with a method listening button clicks. The
     * method must have either no parameters, or only one parameter of
     * Button.ClickEvent type.
     * 
     * @param caption
     *                the Button caption.
     * @param target
     *                the Object having the method for listening button clicks.
     * @param methodName
     *                the name of the method in target object, that receives
     *                button click events.
     */
    public CheckBox(String caption, Object target, String methodName) {
        setCaption(caption);
        addListener(ClickEvent.class, target, methodName);
        setSwitchMode(true);
    }

    /**
     * Creates a new switch button that is connected to a boolean property.
     * 
     * @param state
     *                the Initial state of the switch-button.
     * @param dataSource
     */
    public CheckBox(String caption, Property dataSource) {
        setCaption(caption);
        setPropertyDataSource(dataSource);
        setSwitchMode(true);
    }

    /**
     * Creates a new push button with a set caption.
     * 
     * The value of the push button is always false and they are immediate by
     * default.
     * 
     * @param caption
     *                the Button caption.
     */

    public CheckBox(String caption) {
        setCaption(caption);
        setSwitchMode(true);
    }

    public void setSwitchMode(boolean switchMode)
            throws UnsupportedOperationException {
        if (this.switchMode && !switchMode) {
            throw new UnsupportedOperationException(
                    "CheckBox is always in switch mode (consider using a Button)");
        }
        this.switchMode = true;
    }

}