diff options
author | Teppo Kurki <teppo.kurki@itmill.com> | 2009-01-09 13:17:36 +0000 |
---|---|---|
committer | Teppo Kurki <teppo.kurki@itmill.com> | 2009-01-09 13:17:36 +0000 |
commit | 42bbeff56e6aebba793ae9c00e67b9782f2cba70 (patch) | |
tree | b83235f73f82f3e815b9991762a153dcddbe40af | |
parent | cf8bfcdd64a7e7a07c39c25e1abc89270a7e69e5 (diff) | |
download | vaadin-framework-42bbeff56e6aebba793ae9c00e67b9782f2cba70.tar.gz vaadin-framework-42bbeff56e6aebba793ae9c00e67b9782f2cba70.zip |
Added tabsheets, accordions and panels to the Sampler.
svn changeset:6479/svn branch:trunk
22 files changed, 645 insertions, 3 deletions
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 Binary files differnew file mode 100644 index 0000000000..de768e613b --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionDisabled.png 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 Binary files differnew file mode 100644 index 0000000000..60f5cc94d4 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionIcons.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionIconsExample.java b/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionIconsExample.java new file mode 100644 index 0000000000..d76892ea86 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/accordions/AccordionIconsExample.java @@ -0,0 +1,40 @@ +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.HorizontalLayout;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.TabSheet.SelectedTabChangeEvent;
+
+public class AccordionIconsExample extends HorizontalLayout implements
+ Accordion.SelectedTabChangeListener {
+
+ private Accordion a;
+
+ public AccordionIconsExample() {
+ setSpacing(true);
+
+ 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");
+
+ 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);
+
+ addComponent(a);
+ }
+
+ public void selectedTabChange(SelectedTabChangeEvent event) {
+ String c = a.getTabCaption(event.getTabSheet().getSelectedTab());
+ getWindow().showNotification("Selected tab: " + c);
+ }
+}
diff --git a/src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasic.java b/src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasic.java new file mode 100644 index 0000000000..605cdadfc9 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasic.java @@ -0,0 +1,35 @@ +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 PanelBasic extends Feature {
+
+ @Override
+ public String getDescription() {
+ return "Panel is a simple container for one component."
+ + " A caption can optionally be added."
+ + "<br>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 Binary files differnew file mode 100644 index 0000000000..c1e3df6d7b --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasic.png 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 Binary files differnew file mode 100644 index 0000000000..df98cde8e3 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/panels/PanelLight.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/panels/PanelLightExample.java b/src/com/itmill/toolkit/demo/sampler/features/panels/PanelLightExample.java new file mode 100644 index 0000000000..508c8397b2 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/panels/PanelLightExample.java @@ -0,0 +1,41 @@ +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 PanelLightExample extends VerticalLayout implements ClickListener {
+
+ private Panel p;
+
+ public PanelLightExample() {
+ 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 style.");
+ Button b = new Button("Toggle style");
+ b.addListener(this);
+ vl.setSpacing(true);
+ vl.addComponent(l);
+ vl.addComponent(b);
+ p = new Panel("This is a light Panel");
+ p.setStyleName("light");
+ p.setLayout(vl);
+
+ addComponent(p);
+ }
+
+ public void buttonClick(ClickEvent event) {
+ if (p.getStyleName().contains("light")) {
+ p.removeStyleName("light");
+ p.setCaption("This is a standard Panel");
+ } else {
+ p.setStyleName("light");
+ p.setCaption("This is a light Panel");
+ }
+ }
+}
diff --git a/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetDisabled.java b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetDisabled.java new file mode 100644 index 0000000000..bf1026193c --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetDisabled.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 TabSheetDisabled extends Feature {
+
+ @Override
+ public String getDescription() {
+ return "With a tabsheet component you also have the"
+ + " ability to enable and disable as well as"
+ + " show and hide specific tabs.";
+ }
+
+ @Override
+ public APIResource[] getRelatedAPI() {
+ return new APIResource[] { new APIResource(TabSheet.class) };
+ }
+
+ @Override
+ public Class[] getRelatedFeatures() {
+ return new Class[] { TabSheetIcons.class, TabSheetScrolling.class };
+ }
+
+ @Override
+ public NamedExternalResource[] getRelatedResources() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetDisabled.png b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetDisabled.png Binary files differnew file mode 100644 index 0000000000..e65d53fc2e --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetDisabled.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetDisabledExample.java b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetDisabledExample.java new file mode 100644 index 0000000000..cd66f33942 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetDisabledExample.java @@ -0,0 +1,80 @@ +package com.itmill.toolkit.demo.sampler.features.tabsheets;
+
+import com.itmill.toolkit.terminal.ThemeResource;
+import com.itmill.toolkit.ui.Button;
+import com.itmill.toolkit.ui.HorizontalLayout;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.TabSheet;
+import com.itmill.toolkit.ui.VerticalLayout;
+import com.itmill.toolkit.ui.Button.ClickEvent;
+import com.itmill.toolkit.ui.TabSheet.SelectedTabChangeEvent;
+
+public class TabSheetDisabledExample extends VerticalLayout implements
+ TabSheet.SelectedTabChangeListener, Button.ClickListener {
+
+ private TabSheet t;
+ private Button b1;
+ private Button b2;
+ private Label l1;
+ private Label l2;
+ private Label l3;
+
+ public TabSheetDisabledExample() {
+ 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");
+
+ 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);
+
+ 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(t);
+ addComponent(hl);
+ }
+
+ public void selectedTabChange(SelectedTabChangeEvent event) {
+ String c = t.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");
+ }
+ }
+ t.requestRepaint();
+ }
+}
diff --git a/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetIcons.java b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetIcons.java new file mode 100644 index 0000000000..03c7f60db7 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetIcons.java @@ -0,0 +1,35 @@ +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 TabSheetIcons extends Feature {
+
+ @Override
+ public String getDescription() {
+ return "A tabsheet component with icons. Each tab can"
+ + " contain any component. In this simple example"
+ + " each tab contains a label."
+ + "<br> 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 Binary files differnew file mode 100644 index 0000000000..86dd17e437 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetIcons.png 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 Binary files differnew file mode 100644 index 0000000000..18b3011b87 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/tabsheets/TabSheetScrolling.png 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);
+ }
+}
|