aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/vaadin/shared/communication/SharedState.java
blob: 2882b1ed0797d8e1a3a84b1e581d1806803325d7 (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
/*
@VaadinApache2LicenseForJavaFiles@
 */

package com.vaadin.shared.communication;

import java.io.Serializable;

import com.vaadin.shared.Connector;
import com.vaadin.terminal.gwt.client.ServerConnector;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;

/**
 * Interface to be implemented by all shared state classes used to communicate
 * basic information about a {@link Connector} from server to client.
 * 
 * Shared state classes have to be declared in client side packages to be
 * accessible both for server and client code. They can be static nested classes
 * of a {@link ServerConnector}.
 * 
 * Shared state objects are only sent from the server to the client, and any
 * modifications from the client should be performed via an RPC call that
 * modifies the authoritative state on the server.
 * 
 * A shared state class should be a bean with getters and setters for each
 * field. Supported data types are simple Java types, other beans and maps and
 * arrays of these.
 * 
 * On the client side the connector should override
 * {@link AbstractComponentConnector#createState()} to create the correct state
 * class and {@link AbstractComponentConnector#getState()} override the return
 * type.
 * 
 * Subclasses of a {@link Connector} using shared state should also provide a
 * subclass of the shared state class of the parent class to extend the state. A
 * single {@link Connector} can only have one shared state object.
 * 
 * @since 7.0
 */
public class SharedState implements Serializable {

    private boolean enabled = true;

    /**
     * Returns true if the component is enabled.
     * 
     * @see com.vaadin.ui.Component#isEnabled()
     * 
     * @return true if the component is enabled
     */
    public boolean isEnabled() {
        return enabled;
    }

    /**
     * Enables or disables the component.
     * 
     * @see com.vaadin.ui.Component#setEnabled(boolean)
     * 
     * @param enabled
     *            new mode for the component
     */
    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }

}