From: Marc Englund Date: Tue, 4 Dec 2007 07:23:37 +0000 (+0000) Subject: Status labels -> Notifications. X-Git-Tag: 6.7.0.beta1~5311 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=69b68fc5c336f6457390b6bff8eb303c27c7919f;p=vaadin-framework.git Status labels -> Notifications. Etc, etc. svn changeset:3132/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/demo/featurebrowser/ButtonExample.java b/src/com/itmill/toolkit/demo/featurebrowser/ButtonExample.java index 2fdcb135ca..b4406da7b4 100644 --- a/src/com/itmill/toolkit/demo/featurebrowser/ButtonExample.java +++ b/src/com/itmill/toolkit/demo/featurebrowser/ButtonExample.java @@ -19,8 +19,6 @@ import com.itmill.toolkit.ui.Button.ClickEvent; public class ButtonExample extends CustomComponent implements Button.ClickListener { - Panel status; - public ButtonExample() { OrderedLayout main = new OrderedLayout(); @@ -33,12 +31,10 @@ public class ButtonExample extends CustomComponent implements Panel basic = new Panel("Basic buttons"); basic.setStyleName(Panel.STYLE_LIGHT); horiz.addComponent(basic); - Panel bells = new Panel("+ bells & whistles"); + + Panel bells = new Panel("w/ bells & whistles"); bells.setStyleName(Panel.STYLE_LIGHT); horiz.addComponent(bells); - status = new Panel("Clicked"); - status.setStyleName(Panel.STYLE_LIGHT); - horiz.addComponent(status); Button b = new Button("Basic button"); b.addListener(this); @@ -127,16 +123,11 @@ public class ButtonExample extends CustomComponent implements } public void buttonClick(ClickEvent event) { - Button clicked = event.getButton(); - String caption = clicked.getCaption(); - if (caption == null) { - caption = "<icon>"; - } - status.removeAllComponents(); - Label l = new Label("Clicked: " + caption + "
" + "Value: " - + clicked.getValue()); - l.setContentMode(Label.CONTENT_XHTML); - status.addComponent(l); + Button b = event.getButton(); + getWindow().showNotification( + "Clicked" + + (b instanceof CheckBox ? ", value: " + + event.getButton().getValue() : "")); } diff --git a/src/com/itmill/toolkit/demo/featurebrowser/EmbeddedBrowserExample.java b/src/com/itmill/toolkit/demo/featurebrowser/EmbeddedBrowserExample.java index 7bebaf38c3..5ff1a9d79e 100644 --- a/src/com/itmill/toolkit/demo/featurebrowser/EmbeddedBrowserExample.java +++ b/src/com/itmill/toolkit/demo/featurebrowser/EmbeddedBrowserExample.java @@ -24,7 +24,7 @@ public class EmbeddedBrowserExample extends ExpandLayout implements public EmbeddedBrowserExample() { this(new String[] { DEFAULT_URL, - "http:// www.itmill.com/index_developers.htm", + "http://www.itmill.com/index_developers.htm", "http://toolkit.itmill.com/demo/doc/api/", "http://www.itmill.com/manual/index.html" }); } diff --git a/src/com/itmill/toolkit/demo/featurebrowser/FeatureBrowser.java b/src/com/itmill/toolkit/demo/featurebrowser/FeatureBrowser.java index 3b27ebc70b..5999f94459 100644 --- a/src/com/itmill/toolkit/demo/featurebrowser/FeatureBrowser.java +++ b/src/com/itmill/toolkit/demo/featurebrowser/FeatureBrowser.java @@ -33,18 +33,22 @@ import com.itmill.toolkit.ui.Button.ClickEvent; public class FeatureBrowser extends com.itmill.toolkit.Application implements Select.ValueChangeListener { + // Property IDs private static final Object PROPERTY_ID_CATEGORY = "Category"; private static final Object PROPERTY_ID_NAME = "Name"; private static final Object PROPERTY_ID_DESC = "Description"; private static final Object PROPERTY_ID_CLASS = "Class"; private static final Object PROPERTY_ID_VIEWED = "Viewed"; + // Global components private Tree tree; private Table table; private TabSheet ts; - private HashMap components = new HashMap(); + // Example "cache" + private HashMap exampleInstances = new HashMap(); + // List of examples private static final Object[][] demos = new Object[][] { // Category, Name, Desc, Class, Viewed // Getting started: Labels @@ -52,7 +56,7 @@ public class FeatureBrowser extends com.itmill.toolkit.Application implements LabelExample.class }, // Getting started: Buttons { "Getting started", "Buttons and links", - "Some variations of Buttons and Links", ButtonExample.class }, + "Various Buttons and Links", ButtonExample.class }, // Getting started: Fields { "Getting started", "Basic value input", "TextFields, DateFields, and such", ValueInputExample.class }, @@ -67,19 +71,20 @@ public class FeatureBrowser extends com.itmill.toolkit.Application implements ComboBoxExample.class }, // Wrangling data: Table { "Wrangling data", "Table", - "A dynamic Table with bells and whistles", Button.class }, + "A dynamic Table with bells, whistles and actions", + Button.class }, // Wrangling data: Tree - { "Wrangling data", "Tree", "Some variations of Buttons and Links", + { "Wrangling data", "Tree", "A hierarchy of things", TreeExample.class }, // Misc: Notifications { "Misc", "Notifications", "Notifications can improve usability", NotificationExample.class }, // Misc: Caching - { "Misc", "Client caching", "A simple demo of client-side caching", + { "Misc", "Client caching", "Demonstrating of client-side caching", ClientCachingExample.class }, // Misc: Embedded { "Misc", "Embedding", - "You can embed resources - another site in this case", + "Embedding resources - another site in this case", EmbeddedBrowserExample.class }, // Windowing { "Misc", "Windowing", "About windowing", WindowingExample.class }, @@ -164,62 +169,62 @@ public class FeatureBrowser extends com.itmill.toolkit.Application implements ExpandLayout exp = new ExpandLayout(); exp.setMargin(true); split2.addComponent(exp); + OrderedLayout wbLayout = new OrderedLayout( OrderedLayout.ORIENTATION_HORIZONTAL); - - wbLayout.addComponent(new Button("Open in popup window", - new Button.ClickListener() { - public void buttonClick(ClickEvent event) { - Component component = (Component) ts - .getComponentIterator().next(); - String caption = ts.getTabCaption(component); - try { - component = (Component) component.getClass() - .newInstance(); - } catch (Exception e) { - // Could not create - return; - } - Window w = new Window(caption); - if (Layout.class.isAssignableFrom(component.getClass())) { - w.setLayout((Layout) component); - } else { - w.getLayout().setSizeFull(); - w.addComponent(component); - } - getMainWindow().addWindow(w); + Button b = new Button("Open in sub-window", new Button.ClickListener() { + public void buttonClick(ClickEvent event) { + Component component = (Component) ts.getComponentIterator() + .next(); + String caption = ts.getTabCaption(component); + try { + component = (Component) component.getClass().newInstance(); + } catch (Exception e) { + // Could not create + return; + } + Window w = new Window(caption); + w.setWidth(640); + if (Layout.class.isAssignableFrom(component.getClass())) { + w.setLayout((Layout) component); + } else { + w.getLayout().setSizeFull(); + w.addComponent(component); + } + getMainWindow().addWindow(w); + } + }); + b.setStyleName(Button.STYLE_LINK); + wbLayout.addComponent(b); + b = new Button("Open in native window", new Button.ClickListener() { + public void buttonClick(ClickEvent event) { + Component component = (Component) ts.getComponentIterator() + .next(); + String caption = ts.getTabCaption(component); + Window w = getWindow(caption); + if (w == null) { + try { + component = (Component) component.getClass() + .newInstance(); + } catch (Exception e) { + // Could not create + return; } - })); - wbLayout.addComponent(new Button("Open in native window", - new Button.ClickListener() { - public void buttonClick(ClickEvent event) { - Component component = (Component) ts - .getComponentIterator().next(); - String caption = ts.getTabCaption(component); - Window w = getWindow(caption); - if (w == null) { - try { - component = (Component) component.getClass() - .newInstance(); - } catch (Exception e) { - // Could not create - return; - } - w = new Window(caption); - w.setName(caption); - if (Layout.class.isAssignableFrom(component - .getClass())) { - w.setLayout((Layout) component); - } else { - w.getLayout().setSizeFull(); - w.addComponent(component); - } - addWindow(w); - } - getMainWindow().open(new ExternalResource(w.getURL()), - caption); + w = new Window(caption); + w.setName(caption); + if (Layout.class.isAssignableFrom(component.getClass())) { + w.setLayout((Layout) component); + } else { + w.getLayout().setSizeFull(); + w.addComponent(component); } - })); + addWindow(w); + } + getMainWindow().open(new ExternalResource(w.getURL()), caption); + } + }); + b.setStyleName(Button.STYLE_LINK); + wbLayout.addComponent(b); exp.addComponent(wbLayout); exp.setComponentAlignment(wbLayout, ExpandLayout.ALIGNMENT_RIGHT, @@ -227,9 +232,7 @@ public class FeatureBrowser extends com.itmill.toolkit.Application implements ts = new TabSheet(); ts.setSizeFull(); - ts.addTab(new Label( - "Choose demo (Only Notification and CliensSideCaching yet"), - "Demo", null); + ts.addTab(new Label(""), "Choose example", null); exp.addComponent(ts); exp.expand(ts); @@ -323,15 +326,15 @@ public class FeatureBrowser extends com.itmill.toolkit.Application implements } private Component getComponent(Class componentClass) { - if (!components.containsKey(componentClass)) { + if (!exampleInstances.containsKey(componentClass)) { try { Component c = (Component) componentClass.newInstance(); - components.put(componentClass, c); + exampleInstances.put(componentClass, c); } catch (Exception e) { return null; } } - return (Component) components.get(componentClass); + return (Component) exampleInstances.get(componentClass); } } diff --git a/src/com/itmill/toolkit/demo/featurebrowser/SelectExample.java b/src/com/itmill/toolkit/demo/featurebrowser/SelectExample.java index 4ad91a9a28..46baf23fd7 100644 --- a/src/com/itmill/toolkit/demo/featurebrowser/SelectExample.java +++ b/src/com/itmill/toolkit/demo/featurebrowser/SelectExample.java @@ -1,9 +1,10 @@ package com.itmill.toolkit.demo.featurebrowser; +import com.itmill.toolkit.data.Property.ValueChangeEvent; import com.itmill.toolkit.ui.AbstractSelect; import com.itmill.toolkit.ui.ComboBox; import com.itmill.toolkit.ui.CustomComponent; -import com.itmill.toolkit.ui.Label; +import com.itmill.toolkit.ui.Field; import com.itmill.toolkit.ui.ListSelect; import com.itmill.toolkit.ui.NativeSelect; import com.itmill.toolkit.ui.OptionGroup; @@ -18,8 +19,12 @@ import com.itmill.toolkit.ui.TwinColSelect; */ public class SelectExample extends CustomComponent { - // used to show the last entered value in the textfields - Label selectedValue; + // listener that shows a value change notification + private Field.ValueChangeListener listener = new Field.ValueChangeListener() { + public void valueChange(ValueChangeEvent event) { + getWindow().showNotification("" + event.getProperty().getValue()); + } + }; public SelectExample() { OrderedLayout main = new OrderedLayout(); @@ -35,45 +40,57 @@ public class SelectExample extends CustomComponent { Panel multi = new Panel("Multi selects"); multi.setStyleName(Panel.STYLE_LIGHT); horiz.addComponent(multi); - // "last selected" -label - selectedValue = new Label(); + // radio button group AbstractSelect sel = new OptionGroup("OptionGroup"); initSelect(sel); single.addComponent(sel); - + // checkbox group sel = new OptionGroup("OptionGroup"); - sel.setMultiSelect(true); + sel.setMultiSelect(true); // TODO: throws if set after listener - why? initSelect(sel); multi.addComponent(sel); - + // single-select list sel = new ListSelect("ListSelect"); + ((ListSelect) sel).setColumns(15); initSelect(sel); single.addComponent(sel); - + // multi-select list sel = new ListSelect("ListSelect"); + ((ListSelect) sel).setColumns(15); sel.setMultiSelect(true); initSelect(sel); multi.addComponent(sel); - + // native-style dropdows sel = new NativeSelect("NativeSelect"); + ((NativeSelect) sel).setColumns(15); initSelect(sel); single.addComponent(sel); - + // combobox sel = new ComboBox("ComboBox"); + ((ComboBox) sel).setColumns(15); initSelect(sel); single.addComponent(sel); - + // "twin column" select sel = new TwinColSelect("TwinColSelect"); + ((TwinColSelect) sel).setColumns(15); initSelect(sel); multi.addComponent(sel); } - private static void initSelect(AbstractSelect sel) { + /* + * Initialize select with some values, make immediate and add listener. + */ + private void initSelect(AbstractSelect sel) { for (int i = 1; i <= 5; i++) { sel.addItem("Item " + i); } - sel.setValue(null); + // select one item + sel.select("Item 1"); + + // make immediate, add listener + sel.setImmediate(true); + sel.addListener(listener); } } diff --git a/src/com/itmill/toolkit/demo/featurebrowser/ValueInputExample.java b/src/com/itmill/toolkit/demo/featurebrowser/ValueInputExample.java index e0c21dd778..cc07d4c0d5 100644 --- a/src/com/itmill/toolkit/demo/featurebrowser/ValueInputExample.java +++ b/src/com/itmill/toolkit/demo/featurebrowser/ValueInputExample.java @@ -5,11 +5,11 @@ import com.itmill.toolkit.ui.CustomComponent; import com.itmill.toolkit.ui.DateField; import com.itmill.toolkit.ui.Field; import com.itmill.toolkit.ui.InlineDateField; -import com.itmill.toolkit.ui.Label; import com.itmill.toolkit.ui.OrderedLayout; import com.itmill.toolkit.ui.Panel; import com.itmill.toolkit.ui.Slider; import com.itmill.toolkit.ui.TextField; +import com.itmill.toolkit.ui.Window.Notification; /** * Shows some basic fields for value input; TextField, DateField, Slider... @@ -18,14 +18,20 @@ import com.itmill.toolkit.ui.TextField; */ public class ValueInputExample extends CustomComponent { - // used to show the last entered value in the textfields - Label textfieldValue; - public ValueInputExample() { OrderedLayout main = new OrderedLayout(); main.setMargin(true); setCompositionRoot(main); + // listener that shows a value change notification + Field.ValueChangeListener listener = new Field.ValueChangeListener() { + public void valueChange(ValueChangeEvent event) { + getWindow().showNotification("Received", + "
" + event.getProperty().getValue() + "
", + Notification.TYPE_WARNING_MESSAGE); + } + }; + // TextField OrderedLayout horiz = new OrderedLayout( OrderedLayout.ORIENTATION_HORIZONTAL); @@ -33,19 +39,9 @@ public class ValueInputExample extends CustomComponent { Panel left = new Panel("TextField"); left.setStyleName(Panel.STYLE_LIGHT); horiz.addComponent(left); - Panel right = new Panel("Last input"); + Panel right = new Panel("multiline"); right.setStyleName(Panel.STYLE_LIGHT); horiz.addComponent(right); - // "last entered" -label - textfieldValue = new Label(); - textfieldValue.setContentMode(Label.CONTENT_PREFORMATTED); - right.addComponent(textfieldValue); - // listener that will update the last entered value for the TextFields - Field.ValueChangeListener listener = new Field.ValueChangeListener() { - public void valueChange(ValueChangeEvent event) { - textfieldValue.setValue(event.getProperty().getValue()); - } - }; // basic TextField TextField tf = new TextField("Basic"); tf.setColumns(15); @@ -58,7 +54,7 @@ public class ValueInputExample extends CustomComponent { tf.setRows(5); tf.setImmediate(true); tf.addListener(listener); - left.addComponent(tf); + right.addComponent(tf); // DateFields horiz = new OrderedLayout(OrderedLayout.ORIENTATION_HORIZONTAL); @@ -66,26 +62,37 @@ public class ValueInputExample extends CustomComponent { left = new Panel("DateField"); left.setStyleName(Panel.STYLE_LIGHT); horiz.addComponent(left); - right = new Panel("Inline "); + right = new Panel("inline"); right.setStyleName(Panel.STYLE_LIGHT); horiz.addComponent(right); // default - DateField df = new DateField("Default (day) resolution"); + DateField df = new DateField("Day resolution"); + df.addListener(listener); + df.setImmediate(true); + df.setResolution(DateField.RESOLUTION_DAY); left.addComponent(df); // minute df = new DateField("Minute resolution"); + df.addListener(listener); + df.setImmediate(true); df.setResolution(DateField.RESOLUTION_MIN); left.addComponent(df); // year df = new DateField("Year resolution"); + df.addListener(listener); + df.setImmediate(true); df.setResolution(DateField.RESOLUTION_YEAR); left.addComponent(df); // msec df = new DateField("Millisecond resolution"); + df.addListener(listener); + df.setImmediate(true); df.setResolution(DateField.RESOLUTION_MSEC); left.addComponent(df); // Inline df = new InlineDateField(); + df.addListener(listener); + df.setImmediate(true); right.addComponent(df); // Slider diff --git a/src/com/itmill/toolkit/demo/featurebrowser/WindowingExample.java b/src/com/itmill/toolkit/demo/featurebrowser/WindowingExample.java index c7ab103ad4..8ae6021db1 100644 --- a/src/com/itmill/toolkit/demo/featurebrowser/WindowingExample.java +++ b/src/com/itmill/toolkit/demo/featurebrowser/WindowingExample.java @@ -88,9 +88,9 @@ public class WindowingExample extends CustomComponent { public void buttonClick(ClickEvent event) { Window w = new Window("Subwindow"); getApplication().addWindow(w); - Label l = new Label(w.getName()); - l - .setCaption("Each opened window has a separate value:"); + Label l = new Label("Each opened window has its own" + + " name, and is accessed trough its own uri."); + l.setCaption("Window " + w.getName()); w.addComponent(l); getApplication().getMainWindow().open( new ExternalResource(w.getURL()), "_new");