summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Englund <marc.englund@itmill.com>2008-09-25 07:58:59 +0000
committerMarc Englund <marc.englund@itmill.com>2008-09-25 07:58:59 +0000
commit331b89732bc4fa1a4b9a26a425c00b03a7b16927 (patch)
tree569ff8ce546f2d06ed16716deddc9a6e842780f1
parent58a7fd830a71987c9dfe4e3ceb37ae73ab31ceb1 (diff)
downloadvaadin-framework-331b89732bc4fa1a4b9a26a425c00b03a7b16927.tar.gz
vaadin-framework-331b89732bc4fa1a4b9a26a425c00b03a7b16927.zip
Improved testcase; instructions, includes special cases Panel, Form and Table
svn changeset:5511/svn branch:trunk
-rw-r--r--src/com/itmill/toolkit/tests/tickets/Ticket677.java274
1 files changed, 140 insertions, 134 deletions
diff --git a/src/com/itmill/toolkit/tests/tickets/Ticket677.java b/src/com/itmill/toolkit/tests/tickets/Ticket677.java
index e38a6e7100..f687899e74 100644
--- a/src/com/itmill/toolkit/tests/tickets/Ticket677.java
+++ b/src/com/itmill/toolkit/tests/tickets/Ticket677.java
@@ -1,182 +1,188 @@
package com.itmill.toolkit.tests.tickets;
-import java.util.Date;
-import java.util.Set;
-
import com.itmill.toolkit.Application;
-import com.itmill.toolkit.data.Property.ValueChangeEvent;
+import com.itmill.toolkit.data.Container;
+import com.itmill.toolkit.data.Item;
+import com.itmill.toolkit.data.Property;
+import com.itmill.toolkit.data.util.BeanItem;
+import com.itmill.toolkit.ui.BaseFieldFactory;
import com.itmill.toolkit.ui.Button;
-import com.itmill.toolkit.ui.DateField;
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.ComponentContainer;
+import com.itmill.toolkit.ui.Field;
import com.itmill.toolkit.ui.Form;
import com.itmill.toolkit.ui.GridLayout;
import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.Layout;
-import com.itmill.toolkit.ui.OptionGroup;
import com.itmill.toolkit.ui.OrderedLayout;
import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Table;
import com.itmill.toolkit.ui.TextField;
import com.itmill.toolkit.ui.Window;
import com.itmill.toolkit.ui.Button.ClickEvent;
-import com.itmill.toolkit.ui.Button.ClickListener;
public class Ticket677 extends Application {
- private static final Object P1 = new Object();
- private static final Object P2 = new Object();
- private static final Object P3 = new Object();
+ private static final Label info = new Label(
+ "<li> keep debug window open to see variable changes"
+ + "<li> disable root panel w/ toggle button"
+ + "<li> toggle one of the subpanels"
+ + "<li> we attempt to focus the subpanels first textfield"
+ + "<li> focusing should fail (try tabbing as well) [worked previousy]"
+ + "<li> no variable changes should be sent from disabled fields [changed sent previously]"
+ + "<li> try further toggling and tabbing around",
+ Label.CONTENT_RAW);
- private Panel panel;
- private Form form;
+ Panel root = new Panel("Enabled");
+ Panel one = new Panel("Enabled");
+ Panel two = new Panel("Enabled");
public void init() {
- Window w = new Window(getClass().getName());
- setMainWindow(w);
- // setTheme("tests-ticket");
- GridLayout layout = new GridLayout(10, 10);
- w.setLayout(layout);
- createUI(layout);
-
- createMultiLevelHierarchy();
- }
-
- private void createMultiLevelHierarchy() {
+ Window main = new Window();
+ setMainWindow(main);
- Layout lo = new OrderedLayout();
+ main.addComponent(info);
- final OptionGroup disabled = new OptionGroup("Levels to disable");
- disabled.addItem("L1");
- disabled.addItem("L2");
- disabled.addItem("L3");
- disabled.setMultiSelect(true);
- disabled.setImmediate(true);
- lo.addComponent(disabled);
-
- final Label lastClick = new Label("-");
- lastClick.setCaption("Last Click:");
- lo.addComponent(lastClick);
+ OrderedLayout l = new OrderedLayout(
+ OrderedLayout.ORIENTATION_HORIZONTAL);
+ main.addComponent(l);
- ClickListener clickListener = new Button.ClickListener() {
+ l.addComponent(new Button("Toggle root", new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
- lastClick.setValue(event.getButton().getCaption() + " : "
- + new Date());
+ toggle(root);
}
- };
-
- final Panel[] p = new Panel[4];
-
- p[1] = new Panel("Level1");
- lo.addComponent(p[1]);
- Button b1 = new Button("Inside level1");
- b1.addListener(clickListener);
- p[1].addComponent(b1);
- Button b1d = new Button("Disabked Inside level1");
- b1d.setEnabled(false);
- b1d.addListener(clickListener);
- p[1].addComponent(b1d);
-
- p[2] = new Panel("Level2");
- p[1].addComponent(p[2]);
- Button b2 = new Button("Inside level2");
- b2.addListener(clickListener);
- p[2].addComponent(b2);
- Button b2d = new Button("Disabled Inside level2");
- b2d.setEnabled(false);
- b2d.addListener(clickListener);
- p[2].addComponent(b2d);
-
- p[3] = new Panel("Level3");
- p[2].addComponent(p[3]);
- Button b3 = new Button("Inside level3");
- b3.addListener(clickListener);
- p[3].addComponent(b3);
- Button b3d = new Button("Disabled Inside level3");
- b3d.setEnabled(false);
- b3d.addListener(clickListener);
- p[3].addComponent(b3d);
-
- disabled.addListener(new OptionGroup.ValueChangeListener() {
- public void valueChange(ValueChangeEvent event) {
- Set disabledIds = (Set) disabled.getValue();
- for (int i = 1; i < 4; i++) {
- boolean ena = !disabledIds.contains("L" + i);
- if (p[i].isEnabled() != ena) {
- p[i].setEnabled(ena);
- }
- }
+ }));
+ l.addComponent(new Button("Toggle one", new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ toggle(one);
}
- });
+ }));
+ l.addComponent(new Button("Toggle two", new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ toggle(two);
+ }
+ }));
- getMainWindow().addComponent(lo);
- }
+ root.setLayout(new GridLayout(2, 3));
+ main.addComponent(root);
- private void createUI(GridLayout layout) {
- createPanel(layout);
- createForm(layout);
+ TextField tf = new TextField("Enabled");
+ tf.setImmediate(true);
+ root.addComponent(tf);
+ tf = new TextField("Disabled");
+ tf.setImmediate(true);
+ tf.setEnabled(false);
+ root.addComponent(tf);
- layout.addComponent(new Button("Enable", new ClickListener() {
+ root.addComponent(one);
+ tf = new TextField("Enabled");
+ tf.setImmediate(true);
+ one.addComponent(tf);
+ tf = new TextField("Disabled");
+ tf.setImmediate(true);
+ tf.setEnabled(false);
+ one.addComponent(tf);
- public void buttonClick(ClickEvent event) {
- panel.setEnabled(true);
- form.setEnabled(true);
- }
+ root.addComponent(two);
+ tf = new TextField("Enabled");
+ tf.setImmediate(true);
+ two.addComponent(tf);
+ tf = new TextField("Disabled");
+ tf.setImmediate(true);
+ tf.setEnabled(false);
+ two.addComponent(tf);
- }));
+ Form f = new Form();
+ f.setFieldFactory(new BaseFieldFactory() {
- layout.addComponent(new Button("Disable", new ClickListener() {
+ public Field createField(Item item, Object propertyId,
+ Component uiContext) {
+ Field f = super.createField(item, propertyId, uiContext);
+ f.setEnabled(!"disabled".equals(propertyId));
+ return f;
+ }
- public void buttonClick(ClickEvent event) {
- panel.setEnabled(false);
- form.setEnabled(false);
+ });
+ f.setItemDataSource(new BeanItem(new MyBean()));
+ root.addComponent(f);
+
+ Table t = new Table();
+ t.addContainerProperty("Text", String.class, null);
+ for (int i = 0; i < 5; i++) {
+ Item item = t.addItem("Item" + i);
+ Property p = item.getItemProperty("Text");
+ p.setValue(i > 1 ? "enabled" : "disabled");
+ }
+
+ t.setFieldFactory(new BaseFieldFactory() {
+
+ public Field createField(Container container, Object itemId,
+ Object propertyId, Component uiContext) {
+ Field f = super.createField(container, itemId, propertyId,
+ uiContext);
+ Item item = container.getItem(itemId);
+ Property p = item.getItemProperty(propertyId);
+ if ("disabled".equals(p.getValue())) {
+ f.setEnabled(false);
+ }
+ return f;
}
- }));
+ });
+ t.setEditable(true);
+ root.addComponent(t);
}
- private void createForm(GridLayout layout) {
- form = new Form();
- form.addField(P1, new TextField());
- form.addField(P2, new DateField());
- form.addField(P3, new DateField());
-
- layout.addComponent(form);
+ private void toggle(ComponentContainer c) {
+ boolean enable = "Disabled".equals(c.getCaption());
+ c.setEnabled(enable);
+ c.setCaption((enable ? "Enabled" : "Disabled"));
+ TextField tf = (TextField) c.getComponentIterator().next();
+ tf.focus();
}
- private void createPanel(GridLayout layout) {
- panel = new Panel("panel caption");
- layout.addComponent(panel);
+ class MyBean {
+ boolean on = false;
+ int number = 1;
+ String rw = "read/write";
+ String r = "read";
+ String disabled = "disabled";
- panel.addComponent(new Label("Label 1"));
+ public boolean isOn() {
+ return on;
+ }
- OrderedLayout innerLayout1 = new OrderedLayout(
- OrderedLayout.ORIENTATION_HORIZONTAL);
- innerLayout1.setSpacing(true);
- panel.addComponent(innerLayout1);
+ public void setOn(boolean on) {
+ this.on = on;
+ }
- TextField tf = new TextField("TextField inside orderedLayout");
- tf.setImmediate(true);
- innerLayout1.addComponent(tf);
- innerLayout1.addComponent(new Button("Button inside orderedLayout",
- new ClickListener() {
+ public int getNumber() {
+ return number;
+ }
- public void buttonClick(ClickEvent event) {
- System.out.println("Clicked "
- + event.getButton().getCaption());
- }
+ public void setNumber(int number) {
+ this.number = number;
+ }
- }));
- innerLayout1.addComponent(new Label("Label inside orderedLayout"));
+ public String getRw() {
+ return rw;
+ }
- panel.addComponent(new Label("Label 2"));
+ public void setRw(String rw) {
+ this.rw = rw;
+ }
- GridLayout innerLayout2 = new GridLayout(3, 3);
- innerLayout2.setSpacing(true);
- tf = new TextField("TextField inside gridLayout");
- tf.setImmediate(true);
- innerLayout2.addComponent(tf);
- innerLayout2.addComponent(new Button("Button inside gridLayout"));
- innerLayout2.addComponent(new Label("Label inside gridLayout"));
- panel.addComponent(innerLayout2);
+ public String getDisabled() {
+ return disabled;
+ }
+
+ public void setDisabled(String disabled) {
+ this.disabled = disabled;
+ }
+
+ public String getR() {
+ return r;
+ }
}
}