From d91dcd614c506c29c249a7cf2bc8da2a5f8c642f Mon Sep 17 00:00:00 2001 From: Jouni Koivuviita Date: Sun, 17 Jun 2007 09:40:49 +0000 Subject: [PATCH] New IPanel implementation with 3 different styles (default, light, strong). New component IComponent for default component implementation. Implemented ITree without a caption (container now takes care of it) and fixed a bug in ITree. svn changeset:1756/svn branch:trunk --- .../gwt/client/DefaultWidgetFactory.java | 5 +- .../terminal/gwt/client/ui/IComponent.java | 18 ++++ .../terminal/gwt/client/ui/IPanel.java | 46 ++++++++- .../toolkit/terminal/gwt/client/ui/ITree.java | 42 ++++---- .../public/component-themes/collection.css | 3 +- .../component-themes/common/css/common.css | 2 +- .../component-themes/common/img/window-bg.png | Bin 0 -> 470 bytes .../component-themes/panel/css/panel.css | 97 ++++++++++++++++++ .../panel/img/bottom-left-light.png | Bin 0 -> 147 bytes .../panel/img/bottom-left.png | Bin 0 -> 147 bytes .../panel/img/bottom-right-light.png | Bin 0 -> 147 bytes .../panel/img/bottom-right.png | Bin 0 -> 147 bytes .../panel/img/top-bg-light.png | Bin 0 -> 157 bytes .../panel/img/top-bg-strong.png | Bin 0 -> 250 bytes .../component-themes/panel/img/top-bg.png | Bin 0 -> 162 bytes .../panel/img/top-left-light.png | Bin 0 -> 170 bytes .../panel/img/top-left-strong.png | Bin 0 -> 257 bytes .../component-themes/panel/img/top-left.png | Bin 0 -> 175 bytes .../panel/img/top-right-light.png | Bin 0 -> 170 bytes .../panel/img/top-right-strong.png | Bin 0 -> 257 bytes .../component-themes/panel/img/top-right.png | Bin 0 -> 919 bytes 21 files changed, 185 insertions(+), 28 deletions(-) create mode 100644 src/com/itmill/toolkit/terminal/gwt/client/ui/IComponent.java create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/common/img/window-bg.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/css/panel.css create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-left-light.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-left.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-right-light.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/bottom-right.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg-light.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg-strong.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-bg.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left-light.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left-strong.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-left.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right-light.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right-strong.png create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/img/top-right.png diff --git a/src/com/itmill/toolkit/terminal/gwt/client/DefaultWidgetFactory.java b/src/com/itmill/toolkit/terminal/gwt/client/DefaultWidgetFactory.java index 6a3043c2cc..8c7d224be0 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/DefaultWidgetFactory.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/DefaultWidgetFactory.java @@ -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 index 0000000000..17a94f91c0 --- /dev/null +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IComponent.java @@ -0,0 +1,18 @@ +package com.itmill.toolkit.terminal.gwt.client.ui; + +import com.itmill.toolkit.terminal.gwt.client.Client; +import com.itmill.toolkit.terminal.gwt.client.UIDL; + +public class IComponent extends IPanel { + + public IComponent() { + super(); + setStyleName("i-component"); + } + + public void updateFromUIDL(UIDL uidl, Client client) { + super.updateFromUIDL(uidl, client); + setStyleName("i-component"); + } + +} 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 082ac3c738..4f323efcc2 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java @@ -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); + } } diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java index 67582bd287..36878d9525 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java @@ -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; diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/collection.css b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/collection.css index 1b08bcd2dc..1a9687e481 100644 --- a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/collection.css +++ b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/collection.css @@ -1,3 +1,4 @@ @import "common/css/common.css"; @import "textfield/css/textfield.css"; -@import "select/css/select.css"; \ No newline at end of file +@import "select/css/select.css"; +@import "panel/css/panel.css"; \ No newline at end of file diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/common/css/common.css b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/common/css/common.css index 8f82f870a4..5d8424dca9 100644 --- a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/common/css/common.css +++ b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/common/css/common.css @@ -1,5 +1,5 @@ body { - background-color: #fff; + background: #fafafc url(../img/window-bg.png) repeat-x; font-family: helvetica, verdana, tahoma, arial, sans-serif; color: #222; font-size: 62.5%; 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 index 0000000000000000000000000000000000000000..2bcda2dc630ff611b3996ab158d393109d9a93da GIT binary patch literal 470 zcmV;{0V)28P)u z_xSqYSA_4)ey_V@Yp_4xGm_~`5K>h1F1@$>fP>F(m@?C$XN-Qwxt zhIv=>-YEh^7HoN=I!h5 z^6l{R-s9@!=hJ38@!sO;`1$(W;OO%6_uS#> z^!4}k_W1bv``+W}_xSnt_xR`P@bK~V?C+kUO>Fn_2=k5uwh8_R_0Fy~X zK~#9!?7>A20#OVA(Bkgy?moE7{SQUcG(XcaEZOlMSYSa^-QbkCqzByNVYR{C4)2f_ zZ;%kHW}D~57nE)Ld_v>uh|g)=JVQ`@Ld9IrArGlj+TlgpD`dqkubD~l0U7ZE9)|-S zQ(JtEXS5)0v0n|SI~-9@*!Qu?kJ$C)n6GF~++(l9lI`E$&%Fg00DvnTYl<~UfdBvi M07*qoM6N<$f(0BVoB#j- literal 0 HcmV?d00001 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 index 0000000000..dce22c82c0 --- /dev/null +++ b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/panel/css/panel.css @@ -0,0 +1,97 @@ +.i-panel { + border: 1px solid #29528a; + padding: 5px; + margin: 5px; + background: #fff url(../img/top-bg.png) repeat-x top left; +} + +.i-panel:before { + display: block; + height: 7px; + overflow: hidden; + background: transparent url(../img/top-right.png) no-repeat right top; + content: url(../img/top-left.png); + margin: -6px -6px 0 -6px; +} + +.i-panel:after { + display: block; + height: 2px; + overflow: hidden; + background: transparent url(../img/bottom-right.png) no-repeat right top; + content: url(../img/bottom-left.png); + margin: 5px -6px -6px -6px; +} + +.i-panel-caption { + font-size: 1.2em; + font-weight: bold; + color: #1c3e6e; + margin: 3px 0 5px 0; +} + + + +/* Strong style */ +.i-panel-strong { + background-image: url(../img/top-bg-strong.png); +} + +.i-panel-strong:before { + height: 28px; + background-image: url(../img/top-right-strong.png); + content: url(../img/top-left-strong.png); +} + +.i-panel-strong .i-panel-caption { + color: #fff; + margin: -22px 0 12px 0; +} + + + +/* Light style */ +.i-panel-light { + background-image: url(../img/top-bg-light.png); + border-color: #b3c2d6; + border-top-color: #2667a2; + margin-top: 23px; +} + +.i-panel-light:before { + height: 6px; + background-image: url(../img/top-right-light.png); + content: url(../img/top-left-light.png); +} + +.i-panel-light:after { + background-image: url(../img/bottom-right-light.png); + content: url(../img/bottom-left-light.png); +} + +.i-panel-light .i-panel-caption { + margin: -23px -5px 18px -5px; + font-size: 1.1em; +} + + + + + +/* IE specific rules (different selectors for IE6 and IE7 */ +* html .i-panel, +*+html .i-panel { + background-position: 0 1px; +} + +* html .i-panel-strong .i-panel-caption, +*+html .i-panel-strong .i-panel-caption { + margin: 1px 0 10px 0; + white-space: nowrap; +} + +* html .i-panel-light .i-panel-caption, +*+html .i-panel-light .i-panel-caption { + margin-bottom: 0; + padding-bottom: 23px; /* Must specify enough space because of wierd clipping bug */ +} \ 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 index 0000000000000000000000000000000000000000..9312e5bc03ed89e3d3d3ee0c3c3ec2c95684debd GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`3?yAM{)z!9mUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeh61AIbUHy^t8^6lr#x1TRrUAzn^ oDB$Vh7*cU7DIp;#A%%g%04T!1vd`1~H&Bkj)78&qol`;+0OQ&#MgRZ+ literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..3fda5f3c516e98116c368c2332dbfef210dc3dbe GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`3?yAM{)z!9mUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeh61AIbUHG{g2oV(LFbC<7IR{>B^ nz|+Msq~camLPAnP3Im4$P=tYHpQrn8pd5pztDnm{r-UW|NckuY literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..c542a426290140e66cff699f349e3409661552f0 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`3?yAM{)z!9mUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeh61AIbUHy^t8^6lr#x1TRrUAzn^ pDB$Vh7*cU7DIqB#A%TU%fPq1ff#p(FXbMn{!PC{xWt~$(69C~OD+2%k literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..5f8ff7a3b12e4ae0027ee7f2d6ed48bb1508bf3c GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`3?yAM{)z!9mUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeh61AIbUHG{g2oV(LFbC<7IR{>B^ oz|+Msq~camLQ+CP0t<%$1A`y~%cZK&6rdb~r>mdKI;Vst07gP5$^ZZW literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..0f4652021402fbd0f12aa821147775983e6c55e0 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrF!3-ofN0qGwQY`6?zK#qG>ra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%@dx;XxX#`FaN^pV6*Es9yZ!P1 z|NmKwcSixGL_A#_Ln>}1C8Q-JB%~xHB`|UrFff=faG%qXod=X>@O1TaS?83{1OQ1_ BFrxqf literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..5b89dd68c26377950f91978078a3fbb6a1ee53c0 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{S!3-q3+C<%e6id3JuOkD)`V;1?T`z%r$r9Iy zlHmNblJdl&R0hYC{G?O`&)mfH)S%SFl*+=BsWw1GegQrqu2#vj|NsAQmp(sp(kZ9x z#g<94{L0rmWG-~eUmn%G+cj^QeZ~T>;?==5TU>IN+NRC(DP3!wGRLEEW$U_UF|B(8 zt2TuF!A_v=f8x$BAHYmMomQ#4loj)IaSW-rm6VX0kdly)keHB`z{Fv|z>v)#uw#k+YoH1SPgg&ebxsLQ E08XbcPXGV_ literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..c46f8add3b9874f1412b94009dc89e6d9443ae37 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-W!3-qt{oD^E8CcRCeH|GX)}JtE?Rp91OP07s zlmzFem6RtIr7}3CEaktaf{_(BO}lX<^>Y}>?1j6J=J)|D#5^Tm_h8{vT$~w OG6qjqKbLh*2~7YU2R01= literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..4eddbe5b5d562191752fa6603f4135a2e6bfab70 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^Oh7Ed!3-p8w#@qrq*&4&eH|GX)}JtE?Rp91OP07s zlmzFem6RtIr7}3C*v?sdss>Q}zrA#z+y2{Mnb_Sj zv3FYA)YiGP=XK4T)!jF_v1wAX$2WePCw7;$4=~u9GbYa0+4cZv0)wZkpUXO@geCwi Clwkh= literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..d16ced131e9ee24f8dd50c41bece51a815a76d7b GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-e!3-otm*y-5QY`6?zK#qG>ra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%Nd)+WxM~J<1ypWy%3hq;v+c;a zI}wdLJ&RV^XUz9KaN!N}3=A9$3UB`Rv-T!)Oj{Diz{tkH7|I~) TbNEaktaf{_(BO}lX<^>Y}>>~xw7KuD&m0)1F#2_Z^n0y_m OjKR~@&t;ucLK6TDm^EPl literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..b1d3858f1b55a0d76beaaae6f79768fae3149bad GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^Oh7Ed!3-p8w#@qrq*&4&eH|GX)}JtE?Rp91OP07s zlmzFem6RtIr7}3C*v?sdss>Q}zrA#z+y2{MnaF+e zgq!!_Q-{v^`XBW<>w5g8gX2j@mEY`gMe|Q;A7F4OW=! literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..dcf9c5c0dc7e4b003c43dedefa7dafdf6dfff074 GIT binary patch literal 919 zcmV;I18Dq-P) zP{0D=aK5EiElBE-o)GFEB7LF)=YRGBPtWGc+_b zH8nLhHa0gmH#j&rIXO8xIyyT$J3Kr*Jv}`>K0ZG`KR`f0K|w)6LPA4BLqtSGMMXtM zMn*?RM@UFWNl8gcN=i#hOH52mO-)TsPEJoxPf$=$QBhG+Qc_b>Q&dz`RaI41R#sP6 zS6EnBSy@?HT3TCMTU=aRU0q#XUS3~cUtnNhVPRonVq#-sV`OAxWo2b%W@cw+XJ}|> zX=!O{YHDk1Yiw+6ZEbCCZf7mzbECnVFfInwp!No1C1S zot>SYo}QndpP-Ll?si~=|s;aB2tE{Z7t*x!D zuCA}IuduMNv9YnTva++Yv$V9dwY9ajwzjvox45{txw*Nzy1Ki&yS%)-y}iA@zP`V| zzreu2!NI}8!otJD!^FhI#l^+O#>U6T$H>UY$;rve%F4^j%goHo&CSiu&d$%z&(P4& z(b3V;($dq@)6~?|)z#J3*4Ee8*Vx$D+1c6J+S=RO+uYpT-QC^Z-rnEe-{9cj;o;%p z;^O1ulq(=H}<;=jiC@>FMd}>gwz3>+J08?d|RE?(XmJ@9^;O@$vEU^78ZZ z^Yrxe_4W1k_V)Mp_xSku`T6