diff options
-rw-r--r-- | src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java | 23 | ||||
-rw-r--r-- | src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/css/panel.css | 49 |
2 files changed, 52 insertions, 20 deletions
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java index 02e495a322..9de0d5112b 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java @@ -2,6 +2,7 @@ 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.SimplePanel; import com.google.gwt.user.client.ui.Widget; import com.itmill.toolkit.terminal.gwt.client.Client; import com.itmill.toolkit.terminal.gwt.client.Paintable; @@ -17,11 +18,15 @@ public class IPanel extends FlowPanel implements Paintable { private Label caption; + private SimplePanel content; + public IPanel() { super(); setStyleName(CLASSNAME); caption = new Label(); caption.setStyleName(CLASSNAME+"-caption"); + content = new SimplePanel(); + content.setStyleName(CLASSNAME+"-content"); } public void updateFromUIDL(UIDL uidl, Client client) { @@ -32,6 +37,7 @@ public class IPanel extends FlowPanel implements Paintable { this.client = client; this.id = uidl.getId(); + // TODO optimize: if only the caption has changed, don't re-render whole content clear(); if(uidl.hasAttribute("style")) @@ -48,10 +54,25 @@ public class IPanel extends FlowPanel implements Paintable { addStyleName(CLASSNAME+"-nocaption"); } + // Size panel + // TODO support for different units + String widthUnit = "px"; + String heightUnit = "px"; + int captionHeight = caption.getOffsetHeight(); + int height = uidl.hasVariable("height")? uidl.getIntVariable("height") : -1; + int w = uidl.hasVariable("width")? uidl.getIntVariable("width") : -1; + int h = -1; + if(height != -1) + h = height < captionHeight? 0 : height - captionHeight; + setWidth(w>=0?w+widthUnit:"auto"); + content.setHeight(h>=0?h+heightUnit:"auto"); + UIDL layoutUidl = uidl.getChildUIDL(0); Widget layout = client.getWidget(layoutUidl); ((Paintable)layout).updateFromUIDL(layoutUidl, client); - add(layout); + content.setWidget(layout); + + add(content); } 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 index 33d59b70c8..41d230bdf1 100644 --- 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 @@ -1,6 +1,6 @@ .i-panel {
border: 1px solid #29528a;
- padding: 5px;
+ padding: 5px 3px 2px 2px;
margin: 5px;
background: #fff url(../img/top-bg.png) repeat-x top left;
}
@@ -11,7 +11,7 @@ overflow: hidden;
background: transparent url(../img/top-right.png) no-repeat right top;
content: url(../img/top-left.png);
- margin: -6px -6px 3px -6px;
+ margin: -6px -4px 3px -3px;
}
.i-panel:after {
@@ -20,14 +20,20 @@ overflow: hidden;
background: transparent url(../img/bottom-right.png) no-repeat right top;
content: url(../img/bottom-left.png);
- margin: 5px -6px -6px -6px;
+ margin: 2px -4px -3px -3px;
}
.i-panel-caption {
font-size: 1.1em;
font-weight: bold;
color: #1c3e6e;
- margin: 0 0 7px 0;
+ margin: 0 0 7px 4px;
+ overflow: hidden;
+}
+
+.i-panel-content {
+ overflow: auto;
+ padding: 3px;
}
@@ -45,7 +51,7 @@ .i-panel-strong .i-panel-caption {
color: #fff;
- margin: -25px 0 12px 0;
+ margin: -25px 0 12px 4px;
white-space: nowrap;
}
@@ -80,14 +86,14 @@ }
.i-panel-light .i-panel-caption {
- margin: -26px -5px 18px -5px;
+ margin: -26px -2px 10px -2px;
font-size: 1em;
white-space: nowrap;
}
/* Light style without caption */
.i-panel-light.i-panel-nocaption {
- margin-top: 5px;
+ margin-top: 7px;
}
@@ -97,15 +103,13 @@ /* IE specific rules (different selectors for IE6 and IE7.
* These selectors must be separate because IE6 won't
* apply them if they are grouped together.
- */
-
+*/
* html .i-panel {
- background-position: 0 1px;
+ zoom: 1;
}
*+html .i-panel {
- background-position: 0 1px;
+ zoom: 1;
}
-
* html .i-panel .i-panel-caption {
margin-top: 3px;
}
@@ -115,19 +119,26 @@ * html .i-panel-strong .i-panel-caption {
- margin: 1px 0 10px 0;
+ margin: 0 0 10px 4px;
}
*+html .i-panel-strong .i-panel-caption {
- margin: 1px 0 10px 0;
+ margin: 1px 0 10px 4px;
}
+* html .i-panel-light {
+ margin-top: 5px;
+}
+*+html .i-panel-light {
+ margin-top: 23px;
+}
* html .i-panel-light .i-panel-caption {
- margin-top: -23px;
- margin-bottom: 0;
- padding-bottom: 23px; /* Must specify enough space because of wierd clipping bug */
+ margin-left: 4px;
+ margin-bottom: 5px;
+ padding-bottom: 0;
}
*+html .i-panel-light .i-panel-caption {
+ /*margin-left: 4px;
+ margin-bottom: 5px;
+ padding-bottom: 0;*/
margin-top: -23px;
- margin-bottom: 0;
- padding-bottom: 23px;
}
\ No newline at end of file |