]> source.dussan.org Git - vaadin-framework.git/commitdiff
added form layout component (can be used without form component)
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 11 Sep 2007 13:04:57 +0000 (13:04 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 11 Sep 2007 13:04:57 +0000 (13:04 +0000)
svn changeset:2278/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/DefaultWidgetFactory.java
src/com/itmill/toolkit/terminal/gwt/client/ui/IForm.java
src/com/itmill/toolkit/terminal/gwt/client/ui/IFormLayout.java [new file with mode: 0644]
src/com/itmill/toolkit/ui/Form.java
src/com/itmill/toolkit/ui/FormLayout.java [new file with mode: 0644]

index 30a6a129da9544f1419033e70156139933b06f02..fdaaf8a4f83c53e0143622accb28eae5899f093f 100644 (file)
@@ -11,6 +11,7 @@ import com.itmill.toolkit.terminal.gwt.client.ui.IDateFieldCalendar;
 import com.itmill.toolkit.terminal.gwt.client.ui.IEmbedded;
 import com.itmill.toolkit.terminal.gwt.client.ui.IFilterSelect;
 import com.itmill.toolkit.terminal.gwt.client.ui.IForm;
+import com.itmill.toolkit.terminal.gwt.client.ui.IFormLayout;
 import com.itmill.toolkit.terminal.gwt.client.ui.IGridLayout;
 import com.itmill.toolkit.terminal.gwt.client.ui.ILabel;
 import com.itmill.toolkit.terminal.gwt.client.ui.ILink;
@@ -131,6 +132,9 @@ public class DefaultWidgetFactory implements WidgetFactory {
                } else if ("com.itmill.toolkit.terminal.gwt.client.ui.IForm"
                                .equals(className)) {
                        return new IForm();
+               } else if ("com.itmill.toolkit.terminal.gwt.client.ui.IFormLayout"
+                               .equals(className)) {
+                       return new IFormLayout();
                } else if ("com.itmill.toolkit.terminal.gwt.client.ui.IUpload"
                                .equals(className)) {
                        return new IUpload();
@@ -227,6 +231,8 @@ public class DefaultWidgetFactory implements WidgetFactory {
                        return "com.itmill.toolkit.terminal.gwt.client.ui.ISlider";
                } else if ("form".equals(tag)) {
                        return "com.itmill.toolkit.terminal.gwt.client.ui.IForm";
+               } else if ("formlayout".equals(tag)) {
+                       return "com.itmill.toolkit.terminal.gwt.client.ui.IFormLayout";
                } else if ("upload".equals(tag)) {
                        return "com.itmill.toolkit.terminal.gwt.client.ui.IUpload";
                } else if ("hsplitpanel".equals(tag)) {
index dfa04f19d62fb06d32d685b0b3bbc086021970b2..4fc58c6212f596319220aabc19faebb3c4f5e3ee 100644 (file)
@@ -1,14 +1,8 @@
 package com.itmill.toolkit.terminal.gwt.client.ui;\r
 \r
-import java.util.HashMap;\r
-import java.util.Iterator;\r
-\r
-import com.google.gwt.user.client.ui.FlexTable;\r
-import com.google.gwt.user.client.ui.Grid;\r
 import com.google.gwt.user.client.ui.SimplePanel;\r
 import com.google.gwt.user.client.ui.Widget;\r
 import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;\r
-import com.itmill.toolkit.terminal.gwt.client.Caption;\r
 import com.itmill.toolkit.terminal.gwt.client.Layout;\r
 import com.itmill.toolkit.terminal.gwt.client.Paintable;\r
 import com.itmill.toolkit.terminal.gwt.client.UIDL;\r
@@ -30,77 +24,10 @@ public class IForm extends SimplePanel implements Paintable {
                this.client = client;\r
                UIDL layoutUidl = uidl.getChildUIDL(0);\r
                if(lo == null) {\r
-                       if(uidl.hasAttribute("layoutStyle")) {\r
-                               lo = (Layout) client.getWidget(layoutUidl);\r
-                       } else {\r
-                               lo = (Layout) new DefaultLayout();\r
-                               // manually register paintable due omitting factory\r
-                               client.registerPaintable(layoutUidl.getId(), lo);\r
-                       }\r
+                       lo = (Layout) client.getWidget(layoutUidl);\r
                        setWidget((Widget) lo);\r
                }\r
                lo.updateFromUIDL(layoutUidl, client);\r
        }\r
-\r
-       /**\r
-        * Two col Layout that places caption on left col and field on right col\r
-        */\r
-       public class DefaultLayout extends FlexTable implements Layout {\r
-               \r
-               HashMap componentToCaption = new HashMap();\r
-               \r
-               public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {\r
-                       int i = 0;\r
-                       for(Iterator it = uidl.getChildIterator();it.hasNext();i++) {\r
-                               prepareCell(i, 1);\r
-                               UIDL childUidl = (UIDL) it.next();\r
-                               Paintable p = (Paintable) client.getWidget(childUidl);\r
-                               Caption c = (Caption) componentToCaption.get(p);\r
-                               if(c == null) {\r
-                                       c = new Caption(p);\r
-                                       componentToCaption.put(p, c);\r
-                               }\r
-                               Paintable oldComponent = (Paintable) getWidget(i, 1);\r
-                               if(oldComponent == null) {\r
-                                       setWidget(i,1,(Widget) p);\r
-                               } else if (oldComponent != p) {\r
-                                       client.unregisterPaintable(oldComponent);\r
-                                       setWidget(i,1,(Widget) p);\r
-                               }\r
-                               setWidget(i,0,c);\r
-                               p.updateFromUIDL(childUidl, client);\r
-                       }\r
-                       i++;\r
-                       while(getRowCount() > i) {\r
-                               Paintable p = (Paintable) getWidget(i,1);\r
-                               client.unregisterPaintable(p);\r
-                               componentToCaption.remove(p);\r
-                               removeRow(i);\r
-                       }\r
-               }\r
-\r
-               public boolean hasChildComponent(Widget component) {\r
-                       return componentToCaption.containsKey(component);\r
-               }\r
-\r
-               public void replaceChildComponent(Widget oldComponent, Widget newComponent) {\r
-                       int i;\r
-                       for(i = 0; i < getRowCount(); i++) {\r
-                               if(oldComponent == getWidget(i, 1)) {\r
-                                       Caption newCap = new Caption((Paintable) newComponent);\r
-                                       setWidget(i,0,newCap);\r
-                                       setWidget(i,1,newComponent);\r
-                                       client.unregisterPaintable((Paintable) oldComponent);\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-\r
-               public void updateCaption(Paintable component, UIDL uidl) {\r
-                       Caption c = (Caption) componentToCaption.get(component);\r
-                       if(c != null)\r
-                               c.updateCaption(uidl);\r
-               }\r
-               \r
-       }\r
 }\r
+\r
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IFormLayout.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IFormLayout.java
new file mode 100644 (file)
index 0000000..063aa0c
--- /dev/null
@@ -0,0 +1,75 @@
+package com.itmill.toolkit.terminal.gwt.client.ui;
+
+import java.util.HashMap;
+import java.util.Iterator;
+
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.Widget;
+import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
+import com.itmill.toolkit.terminal.gwt.client.Caption;
+import com.itmill.toolkit.terminal.gwt.client.Layout;
+import com.itmill.toolkit.terminal.gwt.client.Paintable;
+import com.itmill.toolkit.terminal.gwt.client.UIDL;
+
+/**
+ * Two col Layout that places caption on left col and field on right col
+ */
+public class IFormLayout extends FlexTable implements Layout {
+       
+       HashMap componentToCaption = new HashMap();
+       private ApplicationConnection client;
+       
+       public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
+               this.client = client;
+               int i = 0;
+               for(Iterator it = uidl.getChildIterator();it.hasNext();i++) {
+                       prepareCell(i, 1);
+                       UIDL childUidl = (UIDL) it.next();
+                       Paintable p = (Paintable) client.getWidget(childUidl);
+                       Caption c = (Caption) componentToCaption.get(p);
+                       if(c == null) {
+                               c = new Caption(p);
+                               componentToCaption.put(p, c);
+                       }
+                       Paintable oldComponent = (Paintable) getWidget(i, 1);
+                       if(oldComponent == null) {
+                               setWidget(i,1,(Widget) p);
+                       } else if (oldComponent != p) {
+                               client.unregisterPaintable(oldComponent);
+                               setWidget(i,1,(Widget) p);
+                       }
+                       setWidget(i,0,c);
+                       p.updateFromUIDL(childUidl, client);
+               }
+               i++;
+               while(getRowCount() > i) {
+                       Paintable p = (Paintable) getWidget(i,1);
+                       client.unregisterPaintable(p);
+                       componentToCaption.remove(p);
+                       removeRow(i);
+               }
+       }
+
+       public boolean hasChildComponent(Widget component) {
+               return componentToCaption.containsKey(component);
+       }
+
+       public void replaceChildComponent(Widget oldComponent, Widget newComponent) {
+               int i;
+               for(i = 0; i < getRowCount(); i++) {
+                       if(oldComponent == getWidget(i, 1)) {
+                               Caption newCap = new Caption((Paintable) newComponent);
+                               setWidget(i,0,newCap);
+                               setWidget(i,1,newComponent);
+                               client.unregisterPaintable((Paintable) oldComponent);
+                               break;
+                       }
+               }
+       }
+
+       public void updateCaption(Paintable component, UIDL uidl) {
+               Caption c = (Caption) componentToCaption.get(component);
+               if(c != null)
+                       c.updateCaption(uidl);
+       }
+}
index 9dc0c63ee2bcb36872c40a91052d498b2b6d817a..784b97e0401e7bbf9932ac7f1eb3d3d27e46d776 100644 (file)
@@ -74,10 +74,6 @@ import com.itmill.toolkit.terminal.PaintTarget;
 public class Form extends AbstractField implements Item.Editor, Buffered, Item,
                Validatable {
 
-       private static final int FORM_LAYOUT_DEFAULT = 0;
-
-       private static final int FORM_LAYOUT_USER_DEFINED = 10;
-
        private Object propertyValue;
 
        /**
@@ -130,8 +126,6 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
         */
        private Collection visibleItemProperties;
 
-       private int layoutStyle = FORM_LAYOUT_DEFAULT;
-
        /**
         * Contructs a new form with default layout.
         * 
@@ -179,9 +173,6 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
        /* Documented in interface */
        public void paintContent(PaintTarget target) throws PaintException {
                super.paintContent(target);
-               if(layoutStyle == FORM_LAYOUT_USER_DEFINED) {
-                       target.addAttribute("layoutStyle", "userdefined");
-               }
                layout.paint(target);
        }
 
@@ -560,10 +551,7 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
 
                // Use orderedlayout by default
                if (newLayout == null) {
-                       newLayout = new OrderedLayout();
-                       layoutStyle = FORM_LAYOUT_DEFAULT;
-               } else {
-                       layoutStyle = FORM_LAYOUT_USER_DEFINED;
+                       newLayout = new FormLayout();
                }
 
                // Move components from previous layout
diff --git a/src/com/itmill/toolkit/ui/FormLayout.java b/src/com/itmill/toolkit/ui/FormLayout.java
new file mode 100644 (file)
index 0000000..f7ec090
--- /dev/null
@@ -0,0 +1,9 @@
+package com.itmill.toolkit.ui;
+
+public class FormLayout extends OrderedLayout {
+
+       public String getTag() {
+               return "formlayout";
+       }
+
+}