From 42bbeff56e6aebba793ae9c00e67b9782f2cba70 Mon Sep 17 00:00:00 2001 From: Teppo Kurki Date: Fri, 9 Jan 2009 13:17:36 +0000 Subject: [PATCH] Added tabsheets, accordions and panels to the Sampler. svn changeset:6479/svn branch:trunk --- .../toolkit/demo/sampler/FeatureSet.java | 48 ++++++++++- .../accordions/AccordionDisabled.java | 32 +++++++ .../features/accordions/AccordionDisabled.png | Bin 0 -> 2546 bytes .../accordions/AccordionDisabledExample.java | 80 ++++++++++++++++++ .../features/accordions/AccordionIcons.java | 34 ++++++++ .../features/accordions/AccordionIcons.png | Bin 0 -> 2132 bytes .../accordions/AccordionIconsExample.java | 40 +++++++++ .../sampler/features/panels/PanelBasic.java | 35 ++++++++ .../sampler/features/panels/PanelBasic.png | Bin 0 -> 2322 bytes .../features/panels/PanelBasicExample.java | 44 ++++++++++ .../sampler/features/panels/PanelLight.java | 33 ++++++++ .../sampler/features/panels/PanelLight.png | Bin 0 -> 2076 bytes .../features/panels/PanelLightExample.java | 41 +++++++++ .../features/tabsheets/TabSheetDisabled.java | 33 ++++++++ .../features/tabsheets/TabSheetDisabled.png | Bin 0 -> 1679 bytes .../tabsheets/TabSheetDisabledExample.java | 80 ++++++++++++++++++ .../features/tabsheets/TabSheetIcons.java | 35 ++++++++ .../features/tabsheets/TabSheetIcons.png | Bin 0 -> 1596 bytes .../tabsheets/TabSheetIconsExample.java | 38 +++++++++ .../features/tabsheets/TabSheetScrolling.java | 33 ++++++++ .../features/tabsheets/TabSheetScrolling.png | Bin 0 -> 1469 bytes .../tabsheets/TabSheetScrollingExample.java | 42 +++++++++ 22 files changed, 645 insertions(+), 3 deletions(-) create mode 100644 src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionDisabled.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionDisabled.png create mode 100644 src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionDisabledExample.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionIcons.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionIcons.png create mode 100644 src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionIconsExample.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasic.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasic.png create mode 100644 src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasicExample.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/panels/PanelLight.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/panels/PanelLight.png create mode 100644 src/com/itmill/toolkit/demo/sampler/features/panels/PanelLightExample.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetDisabled.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetDisabled.png create mode 100644 src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetDisabledExample.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetIcons.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetIcons.png create mode 100644 src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetIconsExample.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetScrolling.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetScrolling.png create mode 100644 src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetScrollingExample.java diff --git a/src/com/itmill/toolkit/demo/sampler/FeatureSet.java b/src/com/itmill/toolkit/demo/sampler/FeatureSet.java index 8f666e987a..610558996d 100644 --- a/src/com/itmill/toolkit/demo/sampler/FeatureSet.java +++ b/src/com/itmill/toolkit/demo/sampler/FeatureSet.java @@ -6,6 +6,8 @@ import java.util.LinkedList; import com.itmill.toolkit.data.Item; import com.itmill.toolkit.data.Property; import com.itmill.toolkit.data.util.HierarchicalContainer; +import com.itmill.toolkit.demo.sampler.features.accordions.AccordionDisabled; +import com.itmill.toolkit.demo.sampler.features.accordions.AccordionIcons; import com.itmill.toolkit.demo.sampler.features.blueprints.ProminentPrimaryAction; import com.itmill.toolkit.demo.sampler.features.buttons.ButtonLink; import com.itmill.toolkit.demo.sampler.features.buttons.ButtonPush; @@ -24,6 +26,8 @@ import com.itmill.toolkit.demo.sampler.features.notifications.NotificationError; import com.itmill.toolkit.demo.sampler.features.notifications.NotificationHumanized; import com.itmill.toolkit.demo.sampler.features.notifications.NotificationTray; import com.itmill.toolkit.demo.sampler.features.notifications.NotificationWarning; +import com.itmill.toolkit.demo.sampler.features.panels.PanelBasic; +import com.itmill.toolkit.demo.sampler.features.panels.PanelLight; import com.itmill.toolkit.demo.sampler.features.selects.ComboBoxContains; import com.itmill.toolkit.demo.sampler.features.selects.ComboBoxNewItems; import com.itmill.toolkit.demo.sampler.features.selects.ComboBoxPlain; @@ -32,6 +36,9 @@ import com.itmill.toolkit.demo.sampler.features.selects.ListSelectMultiple; import com.itmill.toolkit.demo.sampler.features.selects.ListSelectSingle; import com.itmill.toolkit.demo.sampler.features.selects.NativeSelection; import com.itmill.toolkit.demo.sampler.features.selects.TwinColumnSelect; +import com.itmill.toolkit.demo.sampler.features.tabsheets.TabSheetDisabled; +import com.itmill.toolkit.demo.sampler.features.tabsheets.TabSheetIcons; +import com.itmill.toolkit.demo.sampler.features.tabsheets.TabSheetScrolling; /** * Contains the FeatureSet implementation and the structure for the feature @@ -75,6 +82,9 @@ public class FeatureSet extends Feature { new Notifications(), // new Selects(), // new Layouts(), // + new Tabsheets(), // + new Accordions(), // + new Panels(), // }); } } @@ -132,7 +142,7 @@ public class FeatureSet extends Feature { public static class Selects extends FeatureSet { public Selects() { super("Selects", new Feature[] { - // + // new ListSelectSingle(), // new ListSelectMultiple(), // new TwinColumnSelect(), // @@ -142,13 +152,14 @@ public class FeatureSet extends Feature { new ComboBoxContains(), // new ComboBoxNewItems(), // - }); - } + }); + } } public static class Layouts extends FeatureSet { public Layouts() { super("Layouts", new Feature[] { + // new VerticalLayoutBasic(), // new HorizontalLayoutBasic(), // new LayoutSpacing(), // @@ -157,6 +168,37 @@ public class FeatureSet extends Feature { } } + public static class Tabsheets extends FeatureSet { + public Tabsheets() { + super("Tabsheets", new Feature[] { + // + new TabSheetIcons(), // + new TabSheetScrolling(), // + new TabSheetDisabled(), // + }); + } + } + + public static class Accordions extends FeatureSet { + public Accordions() { + super("Accordions", new Feature[] { + // + new AccordionIcons(), // + new AccordionDisabled(), // + }); + } + } + + public static class Panels extends FeatureSet { + public Panels() { + super("Panels", new Feature[] { + // + new PanelBasic(), // + new PanelLight(), // + }); + } + } + // ---------------------------------------------------------- /* * FeatureSet implementation follows. diff --git a/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionDisabled.java b/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionDisabled.java new file mode 100644 index 0000000000..5e7d22c719 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionDisabled.java @@ -0,0 +1,32 @@ +package com.itmill.toolkit.demo.sampler.features.accordions; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Accordion; + +public class AccordionDisabled extends Feature { + + @Override + public String getDescription() { + return "With an accordion component you can disable, enable," + + " hide and show tabs, similary to a tabsheet."; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(Accordion.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { AccordionIcons.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionDisabled.png b/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionDisabled.png new file mode 100644 index 0000000000000000000000000000000000000000..de768e613bb86fc570d003dc2afd94d6005bc774 GIT binary patch literal 2546 zcmVPx#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBU*a7jc#RCr$Po!xI#MHt5M-|!zWUU=cPBqmC@&={g5B_<>Yi5e0s z7b+%lB{6ydUKm3BxKOz;5ELNa2 znKOINoR4mIhdgP{&UxpZGrxW3Idis~@=U#6-(deGKmefazXS+uNMH;*glij?LNWvx z=-wNBR`C&FpsOn@R`C(Apc5)D270knvWky@t?0xnIzD@{nL)r>M?!{atz(^7N6_7V z$J$6(>j3D1%!6+)4N`si+uzWhpZh;Nc$})M`)eE{IKJC@i)RjN9botS?U{Qy7q?v9 zXNKLjpZXp`Z|>ZOV_VUN2*B>tz!WHhX{u14D>sB==)i^C%ES7;6RE>j$|!0J+O0dY zrH78kuBW^}e|2sapg%r3Np-;vH1EsAnu%!uao0D!5CN@R<6c`4x;BMHO5z2_ zPzK9k`mvNQq#TaV?B_}%sAxR$Vaq}9egb6zdei=kFK_Ph+DA8CgS6HJPvEW7Pm-qA zkwirYx`)zWumfn^2?e_#wam&n9?;5b_Gul;up~em?AXx-pz+AZZ#h7mHx1M>(ep39 z>h)OUWf8Jtcr8-FB9vAmOi+l?+mzCRnwk|qL^Rd`) zSka_izBMV!O__xB^*Y6G8u7^oOJ)idbmG6t>cHiksYb1IMz~VXebjM+Ywa@Kd(dVXebjhjJY`m5N5;m)?5M5RG-z9y}-)ddh{~C&F=$ zlfP1)zwD}T5dj_haT1w$1fX4r#R2?$O0{ZjrC6(GYt=ktS%>}f4t7z>^}D7~o^{HT zPIh_f{0lxG}gv6wxNFzNtTulLDrpln?4ra`VhY(=wjuBL0%=~`u~ zR+*?(#%qHLJWiRmta^vPLNbnQ6MK&BiF)e6Q5rBprgQG;5ARcU} znw3EVhd|8_L_aYt4ccsl!VMN?|AaGerUAPcbe0C3rGK5pzJ^L8g-L~V2wuUz#4#0b zIC3M-l15<)%1E&6H_zI=Rno8Fg zjxtq?RCffR%lRI6YtaA=YhE=Co-%MR4;9A#hy%3OTheL{6L!~uHPvtrch`a4MQ(Nb zG2`w)7XNXDjYoMhJ93uaa*)L???7my-ctC5>_0O6@(+_CY(b?*l83;P6?(#;=MKr%CkzJQ9k=9(}r2{QT2_iqLpRkT8h7lR_;KkA;`})!t;(C z>D70wHX-qXrk1i+(`%h^W3-N_7F~PfiM^s*r>55SN-XHaf0fl9E3{>2VJkZEie6g_ zYx~jduETymx?R6+aD8~(Dn0_tIx3Z_ReS^(=+bhrd;v>L;E-YoNVk5wTo?ps@lkzX5gv{AC-5Kcg{9+h^^5$Ki9X#|M zQTP5s5L(b4CT-jFWuRyB3&sM??RyW5%s;-Cu0y{L)ehtDl&lm=!u1Oo3}zQ$7X~_&$s34*CUy*gFQqJi z=JSIBeaRn_#-=UG?)sbtvx~3`4?3611Qr2}{T#7l{6qccl*VxU zF==etLIZ?IuXcl}Mcaje9?#4fh=9g^8B7UfTG42Mw*D|kLG$@RMDr4-^a1p&CQLYG zFuMr5Fwp;{=gb7w8@IfJT?fG`2$Y}O`YB?BzC=3Y1{KfUwH>CXSjaCFscT5yUFh=C6D9|YOppad-Fpu`O0 zEoehXmpT8c=^oLnQ(o=QB<_t(`POV zT0_7uXj<%iF1eAsC8V9M2L7ddDRCs>D}%oh{@VOpD!;_(l?#nDk3dG4sbA3iFtVQr zSmj_p{$rd(#_9!HXjg{um)bOd1`CT`_JHU?d%dwu{YNN0|L>OG>-?k@>Ok40DRi%a z$V5VcmRFYi#wu5z(tk8W^hu%ut)I?Xf>s)?-l~Ky8Z%W^wDN8f6=?l*S^~76<*Bp| zr7vszPM<{Sn0~G;66+9l0g>GdXlPF!iF~gkZXn;il{aT<9e!>PUYWga zMZTU4l?&E3`t&i+o1rCWOhB`h($ literal 0 HcmV?d00001 diff --git a/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionDisabledExample.java b/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionDisabledExample.java new file mode 100644 index 0000000000..cafb2ffcc5 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionDisabledExample.java @@ -0,0 +1,80 @@ +package com.itmill.toolkit.demo.sampler.features.accordions; + +import com.itmill.toolkit.terminal.ThemeResource; +import com.itmill.toolkit.ui.Accordion; +import com.itmill.toolkit.ui.Button; +import com.itmill.toolkit.ui.HorizontalLayout; +import com.itmill.toolkit.ui.Label; +import com.itmill.toolkit.ui.VerticalLayout; +import com.itmill.toolkit.ui.Button.ClickEvent; +import com.itmill.toolkit.ui.TabSheet.SelectedTabChangeEvent; + +public class AccordionDisabledExample extends VerticalLayout implements + Accordion.SelectedTabChangeListener, Button.ClickListener { + + private Accordion a; + private Button b1; + private Button b2; + private Label l1; + private Label l2; + private Label l3; + + public AccordionDisabledExample() { + setSpacing(true); + + l1 = new Label("There are no previously saved actions."); + l2 = new Label("There are no saved notes."); + l3 = new Label("There are currently no issues."); + + ThemeResource i1 = new ThemeResource("icons/action_save.gif"); + ThemeResource i2 = new ThemeResource("icons/comment_yellow.gif"); + ThemeResource i3 = new ThemeResource("icons/icon_info.gif"); + + a = new Accordion(); + a.setHeight(400, UNITS_PIXELS); + a.setWidth(400, UNITS_PIXELS); + a.addTab(l1, "Saved actions", i1); + a.addTab(l2, "Notes", i2); + a.addTab(l3, "Issues", i3); + a.addListener(this); + + b1 = new Button("Disable 'Notes' tab"); + b2 = new Button("Hide 'Issues' tab"); + b1.addListener(this); + b2.addListener(this); + + HorizontalLayout hl = new HorizontalLayout(); + hl.setSpacing(true); + hl.addComponent(b1); + hl.addComponent(b2); + + addComponent(a); + addComponent(hl); + } + + public void selectedTabChange(SelectedTabChangeEvent event) { + String c = a.getTabCaption(event.getTabSheet().getSelectedTab()); + getWindow().showNotification("Selected tab: " + c); + } + + public void buttonClick(ClickEvent event) { + if (b1.equals(event.getButton())) { // b1 clicked + if (l2.isEnabled()) { + l2.setEnabled(false); + b1.setCaption("Enable 'Notes' tab"); + } else { + l2.setEnabled(true); + b1.setCaption("Disable 'Notes' tab"); + } + } else { // b2 clicked + if (l3.isVisible()) { + l3.setVisible(false); + b2.setCaption("Show 'Issues' tab"); + } else { + l3.setVisible(true); + b2.setCaption("Hide 'Issues' tab"); + } + } + a.requestRepaint(); + } +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionIcons.java b/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionIcons.java new file mode 100644 index 0000000000..9503378875 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionIcons.java @@ -0,0 +1,34 @@ +package com.itmill.toolkit.demo.sampler.features.accordions; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Accordion; + +public class AccordionIcons extends Feature { + + @Override + public String getDescription() { + return "An accordion component is a specialized case of a" + + " tabsheet. Within an accordion, the tabs are organized" + + " vertically, and the content will be shown directly" + + " below the tab."; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(Accordion.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { AccordionDisabled.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionIcons.png b/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionIcons.png new file mode 100644 index 0000000000000000000000000000000000000000..60f5cc94d4005320f97cbe5561c107c0ea1faac5 GIT binary patch literal 2132 zcmchY`8U-47r;Mb8B8-CG_sRKq#=|%WBb@1OHIaFk|m;1vSdOElSxmONFm!~MrATe z)C}3iBSbvLPndREe?weI@K!@9$pS#4Tg|PyFs?1$K&xs21y@3v{7yyXV0sz7- z0N50i2r~e1^)LX;`2zqt4*=vMit1d<06?tI(bmd6)|Xe*bIHdJ*}m#GQ_T5GL@xEX zTvBe5Y!$5fxQo=7yHy*;^9cDiwLRoq>B-d)rBR&sR^QJ!jPH_f z;gb*|YLMS;7F=o+HBCCU_Adi-(&W}PqYJG3jRvC$Q+)@3OGjx=R$U*2O)U7vEk%uiS~oo6`P`^E3vt0vW3f=a9nRc=h|q~KGuUuJg^ zKl{!0+^>X&`K`&1n4#DD8Dx|!=?*Z@{L@^t(|=@c&$4d3jZ*a*l{L~GFd4yZd915_ z5#lr8Gt%4As_#svflX^IL4<_mv?xV7X=-Xb9Cy6yWPUOdStC+R*=OV+_Hm;oL9fgm&a-cPaQzYijBdy6f| zKf@Iof|ojBN0{LgjL|*MXi?ML6n@B>cH$1l4PVyTE=T9keg>JOxk%C;P)cNR)Lh<` zgxSX~m7ZkYLHSsD29c)_YD%H~)EJ(v#oyx~(?_=Jx`h=_NqQR;U4i0;2B?0E;VO~& zY2i#*m`L1YWw}?@s%>Y|D;el4$Pl8x=yEE^!2#b{@$Khe_{H>7K6Wd^c*(M*7^KF` ze0^J#sE2kQE8~QhgpJ)-4Ydm8&Dm+JC%J~Xyc{?h?K%Ef?2(nvr3|g1K1T^dEV|&? z4CN7JL}4CKbhftFb4L|kVF{z(1ef4N#tQ&aL|{9T@Xp?1s}u628b{8}F<)HV?V*-N z+yC}dI?ZOz!4`Y52!XbU%!fI#!KznoiwsWftP&qL<|q!_OG~U;Bo7q%JNIinr)7y7y9<5W5}6Y#NqOV7aEudTLAeoGF&s3%4D1wlh?0M zL3ujAMRMuuN`bi$^Zr?_JPMqwYoD6KPn~LM>zi)t&pclLs%eI&8~GANrhk6!X14iJ z&(f#T=$uCk2PqtPg<0qirQ3L^FYr)x*PZGaBfnPFO}I#ZSd`(W`LFxh77|MD&D#jf zBZHX3Pg$H;Z`8x=L23Pr72b%8=ou=YPw$VR8ZqG)oZc4fJk)`%w2lQN-BeMH!$O5e zO2@7>Vxxn0#xkGcXONua>dgf_?ICS4XIL_U8XY~LwsK-fqYEiq*YE34X@N6aqaU#` za7PjOKXv21m1`G=w<890Kr6=8matKhheaz^qOjAT4LTme_}jRWn{MIdi$dajSjIt| zg@r$_bC_4z+eof@gT`TKzaG)V{2Pd#aJuj7ojATX}w7 zb=5TnYM;|&dA|JG`GBQ`(}K0g1%I2%+mUWKf0w)5jFMl{Al?}-^POXHo-JjHh-U%Bo7Fy2+N#;s4@2Y)(PD-^h+3+St7Yof$n*-a0xkx?Jsk z86I7<`TIwky5hbTW<5nnkv&}+9F=!JTRDqgkq2Fwc<}nSY>7SvvR(H75LAovqy>bU zn_H;orU~qV>-uuHUUBBnO>IvTS0X;)1k6(UKvqOnJ6KgjrvTXyN4XOl- z*0f^ZCSB0&D1l)oIq2~F`h~)4suHX}&~MJBvc+mXp9oc@`+`sC8sRCWF1zT7uF6uZ z4-DEpl7?C6J$h>NewH-aG8lVIIqP5FUJr>RQIpEac=q=TE`~U&%-5r)*?TsWUV8Le z-Bs8|49IG83>4blx{$ykGK+6L?5IOv^hDWL-ElxBO-2z+u&ij8!FTL=|E z_G#WClwt!GrP**P9d(f-$uh)DLNLKWLY=IWEq_Dgh_J1bI0Qp!A panel typically contains a layout component" + + " where the other components can be added."; + + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(Panel.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { PanelLight.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasic.png b/src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasic.png new file mode 100644 index 0000000000000000000000000000000000000000..c1e3df6d7b8afd9f1f49ab94aca875b1f9082447 GIT binary patch literal 2322 zcmb7`Svb@U8^-^J(J;wQ#xj(pv2P*kj3#4{eaSRgv%F-Pyh%iqZOB&Hml>om_DESG z3R!2AQDccw41GdGP08y!cn`mW@8G%b>;7HO*>mvRM0;BdA1{m-002I$CED@Oqy9S( z(4ju%E>Ai%jtEDLInXdJwR#x10#N5s0MMKT{p}4t%(A|gj^_a&S`h%^69IsIh~ilQ za7_~c*1Q0~umAwW!%I3Gi~#_WjYXrJqdeA2C&DDpi42aIy-YA-k`_jZyhJFb!P&ed z+n~){REjsK%BudIRXzG#KR>ZG!&1&_^1*v#nx(K2Hdo4C!AfX`z$7)7dfNVARE}o` z_y=4c`104}3l@S=8r!q16E^>K*!3HOMx!CvTS$PsI>?#eB;#YBYC8j|q=vRnZ~q)D zyb`@k+utI3Dk@^xa^xf3c_ZhmCL=y1;mhr7=+*MSlw|Li8XMzr9%Y^vW|ecqK8)qsr7kDvZdGaQgTwHNPkX~It|pIan(mRr=s zi1bEWFLfv$!bOHZoE&ovMtTp00I)EHMBi{O$j-w1-6%yW7ekoC&bzvTr&S45)@OfC zIM9yEIH^3%RE|v9cp->Lu4#SI4G_<`seCRl?XLNLk(TqIJe-N#(3lwT{8L~(r4gug z^iHS@v5=nb;-oZr%ajY(zxnXC>4p6xMuH#o$8SB`n>HXxgc+@0C0xIfT59g}&LLMz z2m=oqqmZ;nrO)2(IalD!9Cbdq;==6bCw?FEc56!zfaTwGZhc@l>GNTmV0uIk#8MV% zP!-Z;o#lfnCcC-^FC{0?qu|{`DNC;oSxA{vBx{(_60i9CnuzRuCMN7(U|>J zp{qC|%%A!n2VN6cT^2Yn^8P0wcN$@5QNHC`;!nYl4=O$d`Z|G;GncR8k=sgY&Zzfl zITO6`OqPye)R1>phe2MEMFHGdU1{Xw>$dq(veDkXl??&xZ9TJ+Zl)Vg>tm4Y|2(iF zwG0x)dsg&3*+g(tBw4u#8FOL*anwaOVHe%&R6wp6g#WS7HUOEBP1L@sNF*a;aFL*Y zm)Tsm<5s%&>RX;p1&q(t)d@)^w%}<6+~PA)1c6jT!p@XbU7ft2%1qPhjG;FhMm3Hv z#%zBRV4XCkSWDhN%TsxBD(+Kgwn*R3*hQ=0sxeLN64+2A@7?3VAxT@5W@W=GuzOz& zrh+c$w1I=4WZ4X4TO82(gJ|K~O@Y!m5$SJE+2-X?L<>iW9QAYdi~+TfLQ4xRRPo-% z2q)uarCYlW9Lw9ztkgni3Vig%J4z8eSeY^23FfG zkzjBkpnFm%{Kj@9o7&RL?YMz7dw-DT6gWhGU$5w~)WK!|IIp5t z!${O@YGv?V%M7CHxda1;O%Nh>c3b3_m8^E98P1bxXLHGST|2QJbAnuTB7!5<*Jo+@a2(zOk!z8i=Z)?f7EEQY$?7|p zbSC9pU9gouU_4t!A>bvhl;Y{mSvI)7Ba;VbJ!X8I+tNA>k&Zthp#Z|w8jDliEVkX^ z#@#3vs*nqAFjU7R#P&w%H)}_@*AfGzr;ezW>k}!ks~0})(xAGQ@>yeCL6v0Xx4jl9 zD3lDsr=2PJ*PV&4~p%mXhMk zlzQ!}LGiS(Z@uZCU2tZ81q%nVz>94HING=eS-*MI7dRw&kIOUu&jVm#&Y~mAC zk|y?W5iJXJca)8&s-HO{R~ZQ6U`2MCoGE1}=T>A`_Lm_6*wf(Wv%mY8i;Lym@Rn3r zDkrSNdSt}T)iw1RGwI|VZl5NLOHTaQytbo7H!%E#R#hu4(C6mmj;Htg=Pp0FLF`^d z`Sv~2Z&=yR()qA6TKQ{9SUy$=0^S!ApN1B~5_S_yk^g?zT`u;mP_mjvpRl0LVQB%d M=WNjp=3ck|0k^qFoB#j- literal 0 HcmV?d00001 diff --git a/src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasicExample.java b/src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasicExample.java new file mode 100644 index 0000000000..35d6faf17f --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasicExample.java @@ -0,0 +1,44 @@ +package com.itmill.toolkit.demo.sampler.features.panels; + +import com.itmill.toolkit.ui.Button; +import com.itmill.toolkit.ui.Label; +import com.itmill.toolkit.ui.Panel; +import com.itmill.toolkit.ui.VerticalLayout; +import com.itmill.toolkit.ui.Button.ClickEvent; +import com.itmill.toolkit.ui.Button.ClickListener; + +public class PanelBasicExample extends VerticalLayout implements ClickListener { + + private Panel p1; + private Panel p2; + + public PanelBasicExample() { + setSpacing(true); + + // First panel uses layout in which the components are added + VerticalLayout vl = new VerticalLayout(); + Label l = new Label("Push the button to toggle caption."); + Button b = new Button("Toggle caption"); + b.addListener(this); + vl.setSpacing(true); + vl.addComponent(l); + vl.addComponent(b); + p1 = new Panel("This is a standard Panel"); + p1.setLayout(vl); + + // We add the Label component directly to the second panel + p2 = new Panel(); + p2.addComponent(new Label("This is a standard panel without caption.")); + + addComponent(p1); + addComponent(p2); + } + + public void buttonClick(ClickEvent event) { + if (p1.getCaption().equals("")) { + p1.setCaption("This is a standard Panel"); + } else { + p1.setCaption(""); + } + } +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/panels/PanelLight.java b/src/com/itmill/toolkit/demo/sampler/features/panels/PanelLight.java new file mode 100644 index 0000000000..6cc3db4ec1 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/panels/PanelLight.java @@ -0,0 +1,33 @@ +package com.itmill.toolkit.demo.sampler.features.panels; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Panel; + +public class PanelLight extends Feature { + + @Override + public String getDescription() { + return "A lighter style for the Panel component is" + + " also available."; + + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(Panel.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { PanelBasic.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/panels/PanelLight.png b/src/com/itmill/toolkit/demo/sampler/features/panels/PanelLight.png new file mode 100644 index 0000000000000000000000000000000000000000..df98cde8e3c6989f20b9a2d320d113d95db633f1 GIT binary patch literal 2076 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 You can also attach a listener to the tab" + + " change event."; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(TabSheet.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { TabSheetScrolling.class, TabSheetDisabled.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetIcons.png b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetIcons.png new file mode 100644 index 0000000000000000000000000000000000000000..86dd17e437548040480e277c0c9d35d280a74b76 GIT binary patch literal 1596 zcmd5+{Xf$Q9RFI|JU{I=LTVoJbZC|8EM%ggBffd&%EPHC55?9N$wMd{C1%>VJs`!6 zd44Lc>7qo8?VcNPB$fk`zw%o%h8fOsPSNKOL)vD8Wy z0RRaD01LqYfGq+5%`3%io;CmgYjbhLc~Q0excw|POK^mUrlCKX=pkbf@y8qSj zGItpm4CYETQ)WB3<{k1bGtrk<4>ClUUgf#{4zmbiWYVK_TrChiso#oE< ziAj2>KeHrmmXRcRpuW~>-dp&27aGm_vJ1_F_B=zjM%{yC0JyLp&JLpc#{>sDw>w1F zc4|6lzCO&D$k!JR54T`xvLU+1+iPAh7<}=Y!R@)}oc@E!$TWZ}TX&>H(%iNwdMO?p zRR5W%>k5HcOlv&fsi{$1R5_SjkP7GeWmn&x)w4*}7?ogR`w393Fys3T@PJdDqHM529HX@^?CMIfN`?0k zds*bIO}HQcZmTwVF9c!5osMi(K-nre4V9`lo3?r=&GhJXm63wEVd6g$^DjmSd-t93v3n&PmqpwgSmKyu_~}t4sn|n<^|iTvn_2&q zS?7D=LVNRCQ=EZNV%eSe87zyc>xf;_p=ED{d*4`HZ6dX(p^h9NZ`dKKbbL03uR_K- zzp2F}G2CkAqOM^&zOp0Gd@p*q%1511+t5&b+X@IFzhE}-JK__4L$I~}icR_Z;7NQ`EC=ekx{H12{)=vN+tC?H159w885T>f;}5G_hPnY@1k6?&wby% z;=NntbPO5tByV<)6@Yyp?ar{mCx=GNbJ-2%H_qQU5)t0G>_^_B3Nh>c1 zNh>!|)0nH7siFi?^#~INr=uENimeDfq!C$ z#Z-yY=%>vo!OXMrw|RH(#^*EUQ14e{PIA|wix_T@EhCc;7t||e3$l;XtS?*JP1-C! zt)!&;pC6?5&pw4N<$8QpSacp3d8s#1njO@G#mE0u8a|L$v0cP_3+AG9uP^i5HODoA zgtbBZ9CPu=hsyub9!$7t-m@v*VVL&oYOt*k*G=J%-HFg5?)O~B7O`q~sHmh~0_M;X zUvSo#&AH7MofAfvzYFvso=HTrKNRA85l%I?NbFeu&lg@$L!Dl^Wl>?-AdrncZkl_V>ct5jMqhoh_d`^xWJRnyVdzv z#H-58#?_bAC(^75^#mewGaJiv94r@reUY8`no2DNF6;FKE8h0fDV_`Yd#pC+D8D%zDvz6Cy<2o1%xC)AShDrwaCt5blQ(PeLN!6rJn z%5ZsD!z}|9q|!zxC2S@><}lnw^Cr|ZHBRGnwX9o|Ohh4<{QFFhR(_5puJ{4gJerUS zR|m@39C>X=pdcg5h@d9pp>0NI;h^>rkNz(qoeZ<0-N6(?7p3nVaB*^Xtab=a{TJel B;F|yd literal 0 HcmV?d00001 diff --git a/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetIconsExample.java b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetIconsExample.java new file mode 100644 index 0000000000..922974bab9 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetIconsExample.java @@ -0,0 +1,38 @@ +package com.itmill.toolkit.demo.sampler.features.tabsheets; + +import com.itmill.toolkit.terminal.ThemeResource; +import com.itmill.toolkit.ui.Label; +import com.itmill.toolkit.ui.TabSheet; +import com.itmill.toolkit.ui.VerticalLayout; +import com.itmill.toolkit.ui.TabSheet.SelectedTabChangeEvent; + +public class TabSheetIconsExample extends VerticalLayout implements + TabSheet.SelectedTabChangeListener { + + private TabSheet t; + + public TabSheetIconsExample() { + Label l1 = new Label("There are no previously saved actions."); + Label l2 = new Label("There are no saved notes."); + Label l3 = new Label("There are currently no issues."); + + ThemeResource i1 = new ThemeResource("icons/action_save.gif"); + ThemeResource i2 = new ThemeResource("icons/comment_yellow.gif"); + ThemeResource i3 = new ThemeResource("icons/icon_info.gif"); + + t = new TabSheet(); + t.setHeight(400, UNITS_PIXELS); + t.setWidth(400, UNITS_PIXELS); + t.addTab(l1, "Saved actions", i1); + t.addTab(l2, "Notes", i2); + t.addTab(l3, "Issues", i3); + t.addListener(this); + + addComponent(t); + } + + public void selectedTabChange(SelectedTabChangeEvent event) { + String c = t.getTabCaption(event.getTabSheet().getSelectedTab()); + getWindow().showNotification("Selected tab: " + c); + } +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetScrolling.java b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetScrolling.java new file mode 100644 index 0000000000..1d3bf93a2c --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetScrolling.java @@ -0,0 +1,33 @@ +package com.itmill.toolkit.demo.sampler.features.tabsheets; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.TabSheet; + +public class TabSheetScrolling extends Feature { + + @Override + public String getDescription() { + return "A tabsheet component with too many tabs to display" + + " within the width of the tabsheet. A scrolling" + + "feature will be added to the tab bar automatically."; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(TabSheet.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { TabSheetIcons.class, TabSheetDisabled.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetScrolling.png b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetScrolling.png new file mode 100644 index 0000000000000000000000000000000000000000..18b3011b87e888800e7e6ae895d64ec2fb6285e9 GIT binary patch literal 1469 zcmds1`CHNl9R7Mh-d8^ARJ>Btl$AYd4NbuikD>z4G%!K~qg>>`3lD5=8i`t#r7j6t zHN|7(^2j4+o;@m-n3zXpUL=a?@OGnrV?TV}>v`Va-sh8Z=9HhdhN%Vs0NMfmNUVYr zznz-00-u8)W+_N19_!}=RP~$BD~u`$fkptppLv?w1dzg85&f}f07$k6fQ+93U{eug z%mD!H5CBNd0|4wE02p5_ZNzv20LUW%i3m=_OG`XX8)D2mmYrn!moGb?+y>Jl#On|~ zw6>ZQzC^sN6Tg&Bo#lVBt}`L! ztvP%5KWIouki&1;9^16m1IRmiYO8vl(FMbu(v&r~@_qSP{Mjx!J@G>T(rqjJP+k2x zBk^QRe=?HrI!S-t-2#Pe7r4t*K$}3DUIbr>GpZt*ImG?n)tb0p9u`GVz?H z&#&RG$`B=-S(3|(`fzYE`GP^mmBFVlo2;A)%j5>F)sa;#QxO-#ouWYVuC>6-$v2;( zIP)By<}d%oiwFS~zC7gHy^!%CX%fjKjkQnm9>=t+G(t~T=$J6lXj~UsueLdn&xTM= zTA;gz2x{C)kuMX(^$og0J1>{cKTG4L$Ju#L*iM$&NAgVAv;?Br)jD`B`GD#;SBq1k z(lb*TJ$3P`6eUQ5LMS^ul4-*=ISJ`8usN2+nwaY@Q;Kg)5~#ecHOe+ZXNd-tr5Jj4 z*g?CftvAc@lq8vd3mo9ysOo-vg|dsY*2z8nNu8*7~o9h06j^*;Ihv`S06Aw6&&#ehAp@{X)*O#8W z?OUGS-u~x!r^F#;!*5`!?tRGZYW-^LnD+|j*+7&t$C|z*b1CP!&^>VxM}=ogR|=V1 zl*!dQ*O@HB+20FsV{%5zy|~hiJ@Bcs?#H!m-E~>>z+x=Yt(@&ot4|HujY}IlS3JI4HW`xTR<83l%qd^Iu;p04>f73m9jb+s zEVJi18p=>%N8K##agZw5;+WCgsWz>?eL}5XnI4&GuWu!G7*s~vzy%mCs2G_M%|mLs z<^VmY93!%U(yd$rsL)o~*32$~6QJtv9#{*%t(Jee@PAeu2MJpN%sqK(RQG*j#eW3? Md`}^(e9mY72T&ZH>;M1& literal 0 HcmV?d00001 diff --git a/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetScrollingExample.java b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetScrollingExample.java new file mode 100644 index 0000000000..102a0879e2 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetScrollingExample.java @@ -0,0 +1,42 @@ +package com.itmill.toolkit.demo.sampler.features.tabsheets; + +import com.itmill.toolkit.terminal.ThemeResource; +import com.itmill.toolkit.ui.Label; +import com.itmill.toolkit.ui.TabSheet; +import com.itmill.toolkit.ui.VerticalLayout; +import com.itmill.toolkit.ui.TabSheet.SelectedTabChangeEvent; + +public class TabSheetScrollingExample extends VerticalLayout implements + TabSheet.SelectedTabChangeListener { + + private TabSheet t; + + public TabSheetScrollingExample() { + Label l1 = new Label("There are no previously saved actions."); + Label l2 = new Label("There are no saved notes."); + Label l3 = new Label("There are currently no issues."); + Label l4 = new Label("There are no comments."); + Label l5 = new Label("There is no new feedback."); + + ThemeResource i1 = new ThemeResource("icons/action_save.gif"); + ThemeResource i2 = new ThemeResource("icons/comment_yellow.gif"); + ThemeResource i3 = new ThemeResource("icons/icon_info.gif"); + + t = new TabSheet(); + t.setHeight(400, UNITS_PIXELS); + t.setWidth(400, UNITS_PIXELS); + t.addTab(l1, "Saved actions", i1); + t.addTab(l2, "Notes", i2); + t.addTab(l3, "Issues", i3); + t.addTab(l4, "Comments", i2); + t.addTab(l5, "Feedback", i2); + t.addListener(this); + + addComponent(t); + } + + public void selectedTabChange(SelectedTabChangeEvent event) { + String c = t.getTabCaption(event.getTabSheet().getSelectedTab()); + getWindow().showNotification("Selected tab: " + c); + } +} -- 2.39.5