\r
import com.itmill.toolkit.Application;\r
import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.DateField;\r
+import com.itmill.toolkit.ui.Form;\r
import com.itmill.toolkit.ui.GridLayout;\r
import com.itmill.toolkit.ui.Label;\r
import com.itmill.toolkit.ui.OrderedLayout;\r
\r
public class Ticket677 extends Application {\r
\r
+ private static final Object P1 = new Object();\r
+ private static final Object P2 = new Object();\r
+ private static final Object P3 = new Object();\r
+\r
private Panel panel;\r
+ private Form form;\r
\r
public void init() {\r
Window w = new Window(getClass().getSimpleName());\r
}\r
\r
private void createUI(GridLayout layout) {\r
- panel = new Panel("panel caption");\r
- layout.addComponent(panel);\r
+ createPanel(layout);\r
+ createForm(layout);\r
+\r
layout.addComponent(new Button("Enable", new ClickListener() {\r
\r
public void buttonClick(ClickEvent event) {\r
panel.setEnabled(true);\r
+ form.setEnabled(true);\r
}\r
\r
}));\r
\r
public void buttonClick(ClickEvent event) {\r
panel.setEnabled(false);\r
+ form.setEnabled(false);\r
}\r
\r
}));\r
\r
+ }\r
+\r
+ private void createForm(GridLayout layout) {\r
+ form = new Form();\r
+ form.addField(P1, new TextField());\r
+ form.addField(P2, new DateField());\r
+ form.addField(P3, new DateField());\r
+\r
+ layout.addComponent(form);\r
+ }\r
+\r
+ private void createPanel(GridLayout layout) {\r
+ panel = new Panel("panel caption");\r
+ layout.addComponent(panel);\r
+\r
panel.addComponent(new Label("Label 1"));\r
\r
OrderedLayout innerLayout1 = new OrderedLayout(\r
* the implicit setting by setting this property as false.
*
* @param makeVisible
- * If true (default), validation is made visible when commit() is
- * called. If false, the visibility is left as it is.
+ * If true (default), validation is made visible when
+ * commit() is called. If false, the visibility is left as it
+ * is.
*/
public void setValidationVisibleOnCommit(boolean makeVisible) {
validationVisibleOnCommit = makeVisible;
/**
* Is validation made automatically visible on commit?
*
- * See setValidationVisibleOnCommit().
+ * See setValidationVisibleOnCommit().
*
* @return true if validation is made automatically visible on commit.
*/
public boolean isValidationVisibleOnCommit() {
return validationVisibleOnCommit;
}
-
+
/*
* Commit changes to the data source Don't add a JavaDoc comment here, we
* use the default one from the interface.
formFooter.setParent(this);
}
+ public void setEnabled(boolean enabled) {
+ super.setEnabled(enabled);
+
+ updateComponentDisabledState(!enabled);
+ }
+
+ public void setDisabledByContainer(boolean disabledByContainer) {
+ super.setDisabledByContainer(disabledByContainer);
+
+ updateComponentDisabledState(disabledByContainer);
+ }
+
+ private void updateComponentDisabledState(boolean disabled) {
+ // Update the disabledByContainer state for all subcomponents
+ for (Iterator i = fields.values().iterator(); i.hasNext();) {
+ Component c = (Component) i.next();
+ if (c instanceof AbstractComponent) {
+ ((AbstractComponent) c).setDisabledByContainer(disabled);
+ }
+ }
+
+ }
+
}