]> source.dussan.org Git - vaadin-framework.git/commitdiff
Refixed #641, #642 properly. Major issues with Windowing on FeatureBrowser.
authorJani Laakso <jani.laakso@itmill.com>
Tue, 24 Apr 2007 12:42:35 +0000 (12:42 +0000)
committerJani Laakso <jani.laakso@itmill.com>
Tue, 24 Apr 2007 12:42:35 +0000 (12:42 +0000)
svn changeset:1316/svn branch:trunk

src/com/itmill/toolkit/demo/features/FeatureWindow.java
src/com/itmill/toolkit/demo/features/PropertyPanel.java

index 2e2192e718bada3965d6704a1ce58a6193045e7b..a5ee871f41d6fca2da45f81f19e7c4f1781e85b5 100644 (file)
@@ -50,10 +50,15 @@ public class FeatureWindow extends Feature implements Window.CloseListener {
                OrderedLayout layoutUpper = new OrderedLayout();
                OrderedLayout layoutLower = new OrderedLayout();
 
+               demoWindow = new Window("Feature Test Window");
+               demoWindow.addListener(this);
+               demoWindow.setWidth(400);
+               demoWindow.setHeight(200);
+               demoWindow.setTheme("default");
+
                layoutUpper.addComponent(addButton);
                layoutUpper.addComponent(removeButton);
 
-               createDemoWindow();
                updateWinStatus();
 
                // Properties
@@ -61,14 +66,20 @@ public class FeatureWindow extends Feature implements Window.CloseListener {
                propertyPanel.dependsOn(addButton);
                propertyPanel.dependsOn(removeButton);
                windowProperties = propertyPanel.createBeanPropertySet(new String[] {
-                               "width", "height", "name", "border", "theme", "scrollable",
-                               "scrollOffsetX", "scrollOffsetY" });
+                               "width", "height", "name", "theme", "border", "scrollable", });
                windowProperties.replaceWithSelect("border", new Object[] {
                                new Integer(Window.BORDER_DEFAULT),
                                new Integer(Window.BORDER_NONE),
                                new Integer(Window.BORDER_MINIMAL) }, new Object[] { "Default",
                                "None", "Minimal" });
+               // Disabled, not applicable for default theme
+               windowProperties.getField("border").setEnabled(false);
+
                propertyPanel.addProperties("Window Properties", windowProperties);
+               windowProperties.getField("width").setDescription(
+                               "Minimum width is 100");
+               windowProperties.getField("height").setDescription(
+                               "Minimum height is 100");
 
                setJavadocURL("ui/Window.html");
 
@@ -99,25 +110,14 @@ public class FeatureWindow extends Feature implements Window.CloseListener {
                return "Window";
        }
 
-       private void createDemoWindow() {
-               demoWindow = new Window("Feature Test Window");
-               demoWindow.addListener(this);
-               // Set window default properties
-               demoWindow.setWidth(500);
-               demoWindow.setHeight(200);
-               demoWindow.setVisible(true);
-               demoWindow.setEnabled(true);
-               demoWindow.setBorder(Window.BORDER_DEFAULT);
-               demoWindow.setReadOnly(false);
-               demoWindow.setImmediate(false);
-               demoWindow.setIcon(null);
-               demoWindow.setComponentError(null);
-               demoWindow.setDescription("This is an example description.");
-       }
-
        public void addWin() {
+
+               propertyPanel.commit();
+
                getApplication().addWindow(demoWindow);
+
                demoWindow.removeAllComponents();
+
                demoWindow
                                .addComponent(new Label(
                                                "<br /><br />This is a new window created by <em>Add to "
@@ -125,13 +125,18 @@ public class FeatureWindow extends Feature implements Window.CloseListener {
                                                                + " close this window or select <em>Remove from"
                                                                + " application</em> from the Feature Browser window.",
                                                Label.CONTENT_XHTML));
+               // prevent user to change window name tag (after window is created)
+               windowProperties.getField("name").setEnabled(false);
+               windowProperties.getField("name").setReadOnly(true);
                demoWindow.setVisible(true);
                updateWinStatus();
        }
 
        public void delWin() {
                getApplication().removeWindow(demoWindow);
-               createDemoWindow();
+               // allow user to change window name tag (before window is created)
+               windowProperties.getField("name").setEnabled(true);
+               windowProperties.getField("name").setReadOnly(false);
                updateWinStatus();
        }
 
index 7bd4fff4ffe4522cfb588ba440ff099a896d27d0..9484a0c46d469b0eb7495e141a02ea8772f5463a 100644 (file)
@@ -104,6 +104,7 @@ public class PropertyPanel extends Panel implements Button.ClickListener,
                allProperties.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_ID);
                allProperties.setPageLength(0);
                updatePropertyList();
+
        }
 
        /** Add a formful of properties to property panel */
@@ -120,6 +121,8 @@ public class PropertyPanel extends Panel implements Button.ClickListener,
                setButton.dependsOn(properties);
                discardButton.dependsOn(properties);
                properties.setWriteThrough(false);
+               // TODO change this to false, and test it is suitable for FeatureBrowser
+               // demo
                properties.setReadThrough(true);
 
                // Maintain property lists
@@ -265,6 +268,15 @@ public class PropertyPanel extends Panel implements Button.ClickListener,
 
                // Add created fields to property panel
                addProperties("Component Basics", set);
+
+               // Customization for Window component
+               if (objectToConfigure instanceof Window) {
+                       disableField(set.getField("enabled"), new Boolean(true));
+                       disableField(set.getField("visible"), new Boolean(true));
+                       disableField(set.getField("componentError"));
+                       disableField(set.getField("icon"));
+
+               }
        }
 
        /** Add properties for selecting */
@@ -299,7 +311,8 @@ public class PropertyPanel extends Panel implements Button.ClickListener,
 
        /** Field special properties */
        private void addFieldProperties() {
-               // TODO verify that bug #211 is fixed
+               // TODO bug #211 states that setFocus works only for Button and
+               // Textfield UI components
                Form set = new Form(new GridLayout(COLUMNS, 1));
                set.addField("focus", new Button("Focus", objectToConfigure, "focus"));
                set.getField("focus").setDescription(
@@ -423,8 +436,7 @@ public class PropertyPanel extends Panel implements Button.ClickListener,
                }
                // Commit all changed on all forms
                if (event.getButton() == setButton) {
-                       for (Iterator i = forms.iterator(); i.hasNext();)
-                               ((Form) i.next()).commit();
+                       commit();
                }
 
                // Discard all changed on all forms
@@ -476,4 +488,20 @@ public class PropertyPanel extends Panel implements Button.ClickListener,
        public Table getAllProperties() {
                return allProperties;
        }
+
+       protected void commit() {
+               for (Iterator i = forms.iterator(); i.hasNext();)
+                       ((Form) i.next()).commit();
+       }
+
+       private void disableField(Field field) {
+               field.setEnabled(false);
+               field.setReadOnly(true);
+       }
+
+       private void disableField(Field field, Object value) {
+               field.setValue(value);
+               disableField(field);
+       }
+
 }