]> source.dussan.org Git - vaadin-framework.git/commitdiff
New IPanel implementation with 3 different styles (default, light, strong). New compo...
authorJouni Koivuviita <jouni.koivuviita@itmill.com>
Sun, 17 Jun 2007 09:40:49 +0000 (09:40 +0000)
committerJouni Koivuviita <jouni.koivuviita@itmill.com>
Sun, 17 Jun 2007 09:40:49 +0000 (09:40 +0000)
svn changeset:1756/svn branch:trunk

21 files changed:
src/com/itmill/toolkit/terminal/gwt/client/DefaultWidgetFactory.java
src/com/itmill/toolkit/terminal/gwt/client/ui/IComponent.java [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java
src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java
src/com/itmill/toolkit/terminal/gwt/public/component-themes/collection.css
src/com/itmill/toolkit/terminal/gwt/public/component-themes/common/css/common.css
src/com/itmill/toolkit/terminal/gwt/public/component-themes/common/img/window-bg.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/css/panel.css [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-left-light.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-left.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-right-light.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-right.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg-light.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg-strong.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left-light.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left-strong.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right-light.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right-strong.png [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right.png [new file with mode: 0644]

index 6a3043c2cc0e6dc88b4160c5081d9acc4646ded5..8c7d224be04b35046fb2216d327d0daf0785715c 100644 (file)
@@ -4,6 +4,7 @@ import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.ui.Widget;
 import com.itmill.toolkit.terminal.gwt.client.ui.IButton;
 import com.itmill.toolkit.terminal.gwt.client.ui.ICheckBox;
+import com.itmill.toolkit.terminal.gwt.client.ui.IComponent;
 import com.itmill.toolkit.terminal.gwt.client.ui.ICustomLayout;
 import com.itmill.toolkit.terminal.gwt.client.ui.IEmbedded;
 import com.itmill.toolkit.terminal.gwt.client.ui.IGridLayout;
@@ -55,8 +56,10 @@ public class DefaultWidgetFactory implements WidgetFactory {
                                return new ITwinColSelect();
                        return new ISelect();
                }
-               if ("panel".equals(tag) || "component".equals(tag))
+               if ("panel".equals(tag))
                        return new IPanel();
+               if ("component".equals(tag))
+                       return new IComponent();
                if ("tabsheet".equals(tag))
                        return new ITabsheet();
                if ("embedded".equals(tag))
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IComponent.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IComponent.java
new file mode 100644 (file)
index 0000000..17a94f9
--- /dev/null
@@ -0,0 +1,18 @@
+package com.itmill.toolkit.terminal.gwt.client.ui;\r
+\r
+import com.itmill.toolkit.terminal.gwt.client.Client;\r
+import com.itmill.toolkit.terminal.gwt.client.UIDL;\r
+\r
+public class IComponent extends IPanel {\r
+       \r
+       public IComponent() {\r
+               super();\r
+               setStyleName("i-component");\r
+       }\r
+       \r
+       public void updateFromUIDL(UIDL uidl, Client client) {\r
+               super.updateFromUIDL(uidl, client);\r
+               setStyleName("i-component");\r
+       }\r
+\r
+}\r
index 082ac3c7386269ca52244c247f7145c84c938c5d..4f323efcc2b82fb811d3aa786b9590f1aa9880ab 100644 (file)
@@ -1,13 +1,55 @@
 package com.itmill.toolkit.terminal.gwt.client.ui;
 
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Widget;
 import com.itmill.toolkit.terminal.gwt.client.Client;
 import com.itmill.toolkit.terminal.gwt.client.Paintable;
 import com.itmill.toolkit.terminal.gwt.client.UIDL;
 
-public class IPanel extends IVerticalLayout implements Paintable {
+public class IPanel extends FlowPanel implements Paintable {
+       
+       private static final String CLASSNAME = "i-panel";
+       
+       Client client;
+       
+       String id;
+       
+       private Label caption;
+       
+       public IPanel() {
+               super();
+               setStyleName(CLASSNAME);
+               caption = new Label();
+               caption.setStyleName(CLASSNAME+"-caption");
+       }
 
        public void updateFromUIDL(UIDL uidl, Client client) {
-               super.updateFromUIDL(uidl, client);
+               // Ensure correct implementation
+               if (client.updateComponent(this, uidl, false))
+                       return;
+               
+               this.client = client;
+               this.id = uidl.getId();
+               
+               if(uidl.hasAttribute("caption"))
+                       caption.setText(uidl.getStringAttribute("caption"));
+               else
+                       caption.setText("");
+               
+               if(uidl.hasAttribute("style"))
+                       setStyleName(CLASSNAME + " " + CLASSNAME+"-"+uidl.getStringAttribute("style"));
+               else
+                       setStyleName(CLASSNAME);
+               
+               clear();
+               add(caption);
+               
+               UIDL layoutUidl = uidl.getChildUIDL(0);
+               Widget layout = client.getWidget(layoutUidl);
+               ((Paintable)layout).updateFromUIDL(layoutUidl, client);
+               add(layout);
+               
        }
        
 }
index 67582bd2875755e7bbf3532483263c8a898dcbc7..36878d9525a4551611ee79162f35576ba381631f 100644 (file)
@@ -4,53 +4,48 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
 
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.Tree;
 import com.google.gwt.user.client.ui.TreeItem;
 import com.google.gwt.user.client.ui.TreeListener;
-import com.google.gwt.user.client.ui.VerticalPanel;
 import com.itmill.toolkit.terminal.gwt.client.Client;
 import com.itmill.toolkit.terminal.gwt.client.Paintable;
 import com.itmill.toolkit.terminal.gwt.client.UIDL;
 
-public class ITree extends Composite implements Paintable {
+public class ITree extends Tree implements Paintable {
        
-       Label caption = new Label();
-       Tree tree = new Tree();
+       private static final String CLASSNAME = "i-tree";
+
        Set selectedIds = new HashSet();
        Client client;
        String id;
-       boolean selectable;
-       boolean multiselect;
+       private boolean selectable;
+       private boolean multiselect;
        
        public ITree() {
-               VerticalPanel panel = new VerticalPanel();
-               panel.add(caption);
-               panel.add(tree);
-               initWidget(panel);
+               super();
+               setStyleName(CLASSNAME);
        }
 
        public void updateFromUIDL(UIDL uidl, Client client) {
+               // Ensure correct implementation and let container manage caption
+               if (client.updateComponent(this, uidl, true))
+                       return;
+               
                this.client = client;
-               id = uidl.getId();
-               if (uidl.hasAttribute("caption")) caption.setText(uidl.getStringAttribute("caption")); 
-               tree.clear();
+               this.id = uidl.getId();
+               
+               clear();
                for (Iterator i = uidl.getChildIterator(); i.hasNext();) {
                        UIDL childUidl = (UIDL)i.next();
-                       if(childUidl.getTag().equals("leaf"))
-                               tree.addItem(childUidl.getStringAttribute("caption"));
-                       if(childUidl.getTag().equals("node")) {
-                               TreeNode childTree = new TreeNode();
-                               tree.addItem(childTree);
-                               childTree.updateFromUIDL(childUidl, client);
-                       }
+                       TreeNode childTree = new TreeNode();
+                       addItem(childTree);
+                       childTree.updateFromUIDL(childUidl, client);
                }
                String selectMode = uidl.getStringAttribute("selectmode");
                selectable = selectMode != null;
                multiselect = "multi".equals(selectMode);
                
-               tree.addTreeListener(new TreeListener() {
+               addTreeListener(new TreeListener() {
                
                        public void onTreeItemStateChanged(TreeItem item) {
                        }
@@ -72,6 +67,7 @@ public class ITree extends Composite implements Paintable {
                selectedIds = uidl.getStringArrayVariableAsSet("selected");
                
        }
+       
        private class TreeNode extends TreeItem {
                
                String key;
index 1b08bcd2dccb190ad2538f034290363dfaa50a66..1a9687e4810e039b7c0d6d918d720a1207d14081 100644 (file)
@@ -1,3 +1,4 @@
 @import "common/css/common.css";\r
 @import "textfield/css/textfield.css";\r
-@import "select/css/select.css";
\ No newline at end of file
+@import "select/css/select.css";\r
+@import "panel/css/panel.css";
\ No newline at end of file
index 8f82f870a4555cb1e72b872819625bfec04136bf..5d8424dca9e1e91203d1ce7f3ae1e11f60d16dfa 100644 (file)
@@ -1,5 +1,5 @@
 body {\r
-       background-color: #fff;\r
+       background: #fafafc url(../img/window-bg.png) repeat-x;\r
        font-family: helvetica, verdana, tahoma, arial, sans-serif;\r
        color: #222;\r
        font-size: 62.5%;\r
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/common/img/window-bg.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/common/img/window-bg.png
new file mode 100644 (file)
index 0000000..2bcda2d
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/common/img/window-bg.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/css/panel.css b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/css/panel.css
new file mode 100644 (file)
index 0000000..dce22c8
--- /dev/null
@@ -0,0 +1,97 @@
+.i-panel {\r
+       border: 1px solid #29528a;\r
+       padding: 5px;\r
+       margin: 5px;\r
+       background: #fff url(../img/top-bg.png) repeat-x top left;\r
+}\r
+\r
+.i-panel:before {\r
+       display: block;\r
+       height: 7px;\r
+       overflow: hidden;\r
+       background: transparent url(../img/top-right.png) no-repeat right top;\r
+       content: url(../img/top-left.png);\r
+       margin: -6px -6px 0 -6px;\r
+}\r
+\r
+.i-panel:after {\r
+       display: block;\r
+       height: 2px;\r
+       overflow: hidden;\r
+       background: transparent url(../img/bottom-right.png) no-repeat right top;\r
+       content: url(../img/bottom-left.png);\r
+       margin: 5px -6px -6px -6px;\r
+}\r
+\r
+.i-panel-caption {\r
+       font-size: 1.2em;\r
+       font-weight: bold;\r
+       color: #1c3e6e;\r
+       margin: 3px 0 5px 0;\r
+}\r
+\r
+\r
+\r
+/* Strong style */\r
+.i-panel-strong {\r
+       background-image: url(../img/top-bg-strong.png);\r
+}\r
+\r
+.i-panel-strong:before {\r
+       height: 28px;\r
+       background-image: url(../img/top-right-strong.png);\r
+       content: url(../img/top-left-strong.png);\r
+}\r
+\r
+.i-panel-strong .i-panel-caption {\r
+       color: #fff;\r
+       margin: -22px 0 12px 0;\r
+}\r
+\r
+\r
+\r
+/* Light style */\r
+.i-panel-light {\r
+       background-image: url(../img/top-bg-light.png);\r
+       border-color: #b3c2d6;\r
+       border-top-color: #2667a2;\r
+       margin-top: 23px;\r
+}\r
+\r
+.i-panel-light:before {\r
+       height: 6px;\r
+       background-image: url(../img/top-right-light.png);\r
+       content: url(../img/top-left-light.png);\r
+}\r
+\r
+.i-panel-light:after {\r
+       background-image: url(../img/bottom-right-light.png);\r
+       content: url(../img/bottom-left-light.png);\r
+}\r
+\r
+.i-panel-light .i-panel-caption {\r
+       margin: -23px -5px 18px -5px;\r
+       font-size: 1.1em;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+/* IE specific rules (different selectors for IE6 and IE7 */\r
+* html .i-panel,\r
+*+html .i-panel {\r
+       background-position: 0 1px;\r
+}\r
+\r
+* html .i-panel-strong .i-panel-caption,\r
+*+html .i-panel-strong .i-panel-caption {\r
+       margin: 1px 0 10px 0;\r
+       white-space: nowrap;\r
+}\r
+\r
+* html .i-panel-light .i-panel-caption,\r
+*+html .i-panel-light .i-panel-caption {\r
+       margin-bottom: 0;\r
+       padding-bottom: 23px; /* Must specify enough space because of wierd clipping bug */\r
+}
\ No newline at end of file
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-left-light.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-left-light.png
new file mode 100644 (file)
index 0000000..9312e5b
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-left-light.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-left.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-left.png
new file mode 100644 (file)
index 0000000..3fda5f3
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-left.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-right-light.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-right-light.png
new file mode 100644 (file)
index 0000000..c542a42
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-right-light.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-right.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-right.png
new file mode 100644 (file)
index 0000000..5f8ff7a
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-right.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg-light.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg-light.png
new file mode 100644 (file)
index 0000000..0f46520
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg-light.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg-strong.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg-strong.png
new file mode 100644 (file)
index 0000000..5b89dd6
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg-strong.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg.png
new file mode 100644 (file)
index 0000000..bdfca27
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left-light.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left-light.png
new file mode 100644 (file)
index 0000000..c46f8ad
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left-light.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left-strong.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left-strong.png
new file mode 100644 (file)
index 0000000..4eddbe5
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left-strong.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left.png
new file mode 100644 (file)
index 0000000..d16ced1
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right-light.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right-light.png
new file mode 100644 (file)
index 0000000..d2bcd46
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right-light.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right-strong.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right-strong.png
new file mode 100644 (file)
index 0000000..b1d3858
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right-strong.png differ
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right.png b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right.png
new file mode 100644 (file)
index 0000000..dcf9c5c
Binary files /dev/null and b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right.png differ