]> source.dussan.org Git - vaadin-framework.git/commitdiff
Sampler theme update.
authorJouni Koivuviita <jouni.koivuviita@itmill.com>
Wed, 11 Feb 2009 11:35:56 +0000 (11:35 +0000)
committerJouni Koivuviita <jouni.koivuviita@itmill.com>
Wed, 11 Feb 2009 11:35:56 +0000 (11:35 +0000)
Many sample descriptions split into two pieces: featureset description and feature description.

svn changeset:6794/svn branch:trunk

46 files changed:
WebContent/ITMILL/themes/sampler/icons/sample.png [new file with mode: 0644]
WebContent/ITMILL/themes/sampler/sampler/bullet.png [deleted file]
WebContent/ITMILL/themes/sampler/sampler/sample-desc-arrow.png [new file with mode: 0644]
WebContent/ITMILL/themes/sampler/sampler/sample-desc-bg.png [new file with mode: 0644]
WebContent/ITMILL/themes/sampler/sampler/sampler.png
WebContent/ITMILL/themes/sampler/sampler/styles.css
src/com/itmill/toolkit/demo/sampler/FeatureSet.java
src/com/itmill/toolkit/demo/sampler/FeatureView.java
src/com/itmill/toolkit/demo/sampler/SamplerApplication.java
src/com/itmill/toolkit/demo/sampler/features/dates/DateInline.java
src/com/itmill/toolkit/demo/sampler/features/dates/DateLocale.java
src/com/itmill/toolkit/demo/sampler/features/dates/DatePopup.java
src/com/itmill/toolkit/demo/sampler/features/dates/DateResolution.java
src/com/itmill/toolkit/demo/sampler/features/form/FormBasic.java
src/com/itmill/toolkit/demo/sampler/features/form/FormPojo.java
src/com/itmill/toolkit/demo/sampler/features/link/LinkCurrentWindow.java
src/com/itmill/toolkit/demo/sampler/features/link/LinkNoDecorations.java
src/com/itmill/toolkit/demo/sampler/features/link/LinkSizedWindow.java
src/com/itmill/toolkit/demo/sampler/features/notifications/NotificationCustom.java
src/com/itmill/toolkit/demo/sampler/features/notifications/NotificationError.java
src/com/itmill/toolkit/demo/sampler/features/notifications/NotificationHumanized.java
src/com/itmill/toolkit/demo/sampler/features/notifications/NotificationTray.java
src/com/itmill/toolkit/demo/sampler/features/notifications/NotificationWarning.java
src/com/itmill/toolkit/demo/sampler/features/panels/PanelBasic.java
src/com/itmill/toolkit/demo/sampler/features/panels/PanelLight.java
src/com/itmill/toolkit/demo/sampler/features/selects/ListSelectSingle.java
src/com/itmill/toolkit/demo/sampler/features/table/TableActions.java
src/com/itmill/toolkit/demo/sampler/features/table/TableCellStyling.java
src/com/itmill/toolkit/demo/sampler/features/table/TableColumnAlignment.java
src/com/itmill/toolkit/demo/sampler/features/table/TableColumnCollapsing.java
src/com/itmill/toolkit/demo/sampler/features/table/TableColumnHeaders.java
src/com/itmill/toolkit/demo/sampler/features/table/TableColumnReordering.java
src/com/itmill/toolkit/demo/sampler/features/table/TableHeaderIcons.java
src/com/itmill/toolkit/demo/sampler/features/table/TableLazyLoading.java
src/com/itmill/toolkit/demo/sampler/features/table/TableMouseEvents.java
src/com/itmill/toolkit/demo/sampler/features/table/TableRowHeaders.java
src/com/itmill/toolkit/demo/sampler/features/table/TableRowStyling.java
src/com/itmill/toolkit/demo/sampler/features/table/TableSorting.java
src/com/itmill/toolkit/demo/sampler/features/text/LabelPlain.java
src/com/itmill/toolkit/demo/sampler/features/text/LabelPreformatted.java
src/com/itmill/toolkit/demo/sampler/features/text/LabelRich.java
src/com/itmill/toolkit/demo/sampler/features/text/TextFieldSingle.java
src/com/itmill/toolkit/demo/sampler/features/trees/TreeActions.java
src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEvents.java
src/com/itmill/toolkit/demo/sampler/features/trees/TreeMultiSelect.java
src/com/itmill/toolkit/demo/sampler/features/trees/TreeSingleSelect.java

diff --git a/WebContent/ITMILL/themes/sampler/icons/sample.png b/WebContent/ITMILL/themes/sampler/icons/sample.png
new file mode 100644 (file)
index 0000000..c1ff888
Binary files /dev/null and b/WebContent/ITMILL/themes/sampler/icons/sample.png differ
diff --git a/WebContent/ITMILL/themes/sampler/sampler/bullet.png b/WebContent/ITMILL/themes/sampler/sampler/bullet.png
deleted file mode 100644 (file)
index cda2f7a..0000000
Binary files a/WebContent/ITMILL/themes/sampler/sampler/bullet.png and /dev/null differ
diff --git a/WebContent/ITMILL/themes/sampler/sampler/sample-desc-arrow.png b/WebContent/ITMILL/themes/sampler/sampler/sample-desc-arrow.png
new file mode 100644 (file)
index 0000000..ae79de3
Binary files /dev/null and b/WebContent/ITMILL/themes/sampler/sampler/sample-desc-arrow.png differ
diff --git a/WebContent/ITMILL/themes/sampler/sampler/sample-desc-bg.png b/WebContent/ITMILL/themes/sampler/sampler/sample-desc-bg.png
new file mode 100644 (file)
index 0000000..e9019d3
Binary files /dev/null and b/WebContent/ITMILL/themes/sampler/sampler/sample-desc-bg.png differ
index e97eeac3460ab63a35f3f0eba83404e11ed99d75..d18883211da6a0d80af1ab5f3a3aa5822432c8d3 100644 (file)
Binary files a/WebContent/ITMILL/themes/sampler/sampler/sampler.png and b/WebContent/ITMILL/themes/sampler/sampler/sampler.png differ
index 2008704faa93a0137699a6ee1c29cdc3b4764765..a48069e714c69ab6f0560da2ba2e2a099b671c6d 100644 (file)
@@ -15,7 +15,7 @@
 }
 
 .i-app-SamplerApplication .topbar .logo {
-       width: 147px;
+       width: 167px;
        height: 44px;
        margin: 0;
        padding: 0;
        color: #b7c0c7;
        font-size: 11px;
        line-height: 18px;
-       background: transparent url(bullet.png) no-repeat 2px 60%;
-       padding-left: 8px;
+       margin-left: 28px;
 }
 .i-app-SamplerApplication .feature-info div.i-link a:hover {
        color: #dcebf6;
        padding-right: 20px;
 }
 
-.i-app-SamplerApplication .feature-info .i-caption {
+.i-app-SamplerApplication .feature-info .i-label {
+       padding: 0 20px 9px 28px;
+}
+
+.i-app-SamplerApplication .feature-info .i-label-section {
        font-weight: bold;
        font-size: 12px;
        line-height: 30px;
        color: #fff;
-       background: transparent url(info-bubble-separator.png) repeat-x 0 10px;
+       border: none;
+       text-indent: 0;
+       text-shadow: none;
+       padding: 0;
+}
+
+.i-app-SamplerApplication .feature-info .i-label-section span {
+       display: block;
+       background: transparent url(info-bubble-separator.png) repeat-x;
+       padding: 5px 0 0 19px;
+       margin: 0 5px 0 9px;
 }
-.i-app-SamplerApplication .feature-info .i-captiontext {
-       padding-top: 15px;
+
+.i-app-SamplerApplication .feature-info .i-label-sample-description {
+       margin: 0 5px 0 9px;
+       color: #e0ecff;
+       text-shadow: 0 1px 0 #19406b;
+       border: 1px solid #225792;
+       border-top: none;
+       border-bottom: 1px solid #2763ad;
+       padding: 5px 0 0 0;
+       width: 353px;
 }
-.i-app-SamplerApplication .feature-info .i-label {
-       padding-bottom: 9px;
+
+.i-app-SamplerApplication .feature-info .i-label-sample-description div.deco {
+       padding: 1px 19px 13px 19px;
+       background: #2a6bba url(sample-desc-bg.png) repeat-x;
+       border: 1px solid #478cca;
+       border-top: none;
+       border-bottom: none;
+}
+
+.i-app-SamplerApplication .feature-info .i-label-sample-description span.deco {
+       display: block;
+       height: 6px;
+       background: transparent url(sample-desc-arrow.png) no-repeat 50% 0;
+       margin: -6px 0 13px 0;
 }
 
 .i-app-SamplerApplication .i-button-showcode {
index 1ab90fde413ff1fceb4fc61be4923e7b1c7e5ee7..01f1b434d720b6b712f910cd6c5f59f0d12b0247 100644 (file)
@@ -132,6 +132,7 @@ public class FeatureSet extends Feature {
                     new Tables(),//
                     new Tabsheets(), //
                     new Texts(), //
+                    new TextFields(), //
                     new Trees(), //
                     new Windows(), //
             });
@@ -155,26 +156,34 @@ public class FeatureSet extends Feature {
 
     public static class Links extends FeatureSet {
         public Links() {
-            super("Links", new Feature[] {
-            //
-                    new LinkCurrentWindow(), // basic
-                    new LinkNoDecorations(), // new win
-                    new LinkSizedWindow(), // new win
+            super(
+                    "Links",
+                    "Links",
+                    "An external link - this is the basic HTML-style link, changing the url of the browser w/o triggering a server-side event (like the link-styled Button).<br/>By default, links open in the current browser window. Links can open new browser windows, and configure the amount of browser features shown, such as toolbar and addressbar.",
+                    new Feature[] {
+                    //
+                            new LinkCurrentWindow(), // basic
+                            new LinkNoDecorations(), // new win
+                            new LinkSizedWindow(), // new win
 
-            });
+                    });
         }
     }
 
     public static class Notifications extends FeatureSet {
         public Notifications() {
-            super("Notifications", new Feature[] {
-            //
-                    new NotificationHumanized(), // humanized
-                    new NotificationWarning(), // warning
-                    new NotificationTray(), // tray
-                    new NotificationError(), // error
-                    new NotificationCustom(), // error
-            });
+            super(
+                    "Notifications",
+                    "Notifications",
+                    "Notifications are lightweight informational messages, used to inform the user of various events.",
+                    new Feature[] {
+                    //
+                            new NotificationHumanized(), // humanized
+                            new NotificationWarning(), // warning
+                            new NotificationTray(), // tray
+                            new NotificationError(), // error
+                            new NotificationCustom(), // error
+                    });
         }
     }
 
@@ -248,21 +257,32 @@ public class FeatureSet extends Feature {
 
     public static class Panels extends FeatureSet {
         public Panels() {
-            super("Panels", new Feature[] {
-            //        
-                    new PanelBasic(), //
-                    new PanelLight(), //
-            });
+            super(
+                    "Panels",
+                    "Panels",
+                    "Panel is a simple container that supports scrolling.<br/>It's internal layout (by default VerticalLayout) can be configured or exchanged to get desired results. Components that are added to the Panel will in effect be added to the layout.",
+                    new Feature[] {
+                    //        
+                            new PanelBasic(), //
+                            new PanelLight(), //
+                    });
         }
     }
 
     public static class Forms extends FeatureSet {
         public Forms() {
-            super("Forms", new Feature[] {
-            //        
-                    new FormBasic(), //
-                    new FormPojo(), //
-            });
+            super(
+                    "Forms",
+                    "Forms",
+                    "The Form -component provides a convenient way to organize"
+                            + " related fields visually.<br/><br/>It is most useful when connected"
+                            + " to a data source, and provides buffering and customization"
+                            + " features to support that scenario.",
+                    new Feature[] {
+                    //        
+                            new FormBasic(), //
+                            new FormPojo(), //
+                    });
         }
     }
 
@@ -283,59 +303,87 @@ public class FeatureSet extends Feature {
 
     public static class Tables extends FeatureSet {
         public Tables() {
-            super("Table (Grid)", new Feature[] {
-            //        
-                    new TableHeaderIcons(), //
-                    new TableColumnHeaders(), //
-                    new TableColumnReordering(), //
-                    new TableColumnCollapsing(), //
-                    new TableColumnAlignment(), //
-                    new TableCellStyling(), //
-                    new TableSorting(), //
-                    new TableRowHeaders(), //
-                    new TableRowStyling(), //
-                    new TableActions(), //
-                    new TableMouseEvents(), //
-                    new TableLazyLoading(), //
-            });
+            super(
+                    "Table (Grid)",
+                    "Table (Grid)",
+                    "Also known as a (Data)Grid, Table can be used to show data in a tabular fashion. It's well suited for showing large datasets.",
+                    new Feature[] {
+                    //        
+                            new TableHeaderIcons(), //
+                            new TableColumnHeaders(), //
+                            new TableColumnReordering(), //
+                            new TableColumnCollapsing(), //
+                            new TableColumnAlignment(), //
+                            new TableCellStyling(), //
+                            new TableSorting(), //
+                            new TableRowHeaders(), //
+                            new TableRowStyling(), //
+                            new TableActions(), //
+                            new TableMouseEvents(), //
+                            new TableLazyLoading(), //
+                    });
         }
     }
 
     public static class Texts extends FeatureSet {
         public Texts() {
-            super("Texts", new Feature[] {
-            //        
-                    new LabelPlain(), //
-                    new LabelPreformatted(), //
-                    new LabelRich(), //
-                    new TextFieldSingle(), //
-                    new TextArea(), //
-                    new RichTextEditor(), //
-            });
+            super(
+                    "Texts",
+                    "Texts",
+                    "A label is a simple component that allows you to add optionally formatted text components to your application.",
+                    new Feature[] {
+                    //      
+                            new LabelPlain(), //
+                            new LabelPreformatted(), //
+                            new LabelRich(), //
+                    });
+        }
+    }
+
+    public static class TextFields extends FeatureSet {
+        public TextFields() {
+            super(
+                    "TextFields",
+                    "Text inputs",
+                    "Text inputs are probably the most needed components in any application that require user input or editing.",
+                    new Feature[] {
+                    //      
+                            new TextFieldSingle(), //
+                            new TextArea(), //
+                            new RichTextEditor(), //
+                    });
         }
     }
 
     public static class Trees extends FeatureSet {
         public Trees() {
-            super("Trees", new Feature[] {
-            //        
-                    new TreeSingleSelect(), //
-                    new TreeMultiSelect(), //
-                    new TreeActions(), //
-                    new TreeMouseEvents(), //
-            });
+            super(
+                    "Trees",
+                    "Trees",
+                    "The Tree component allows a natural way to represent data that has hierarchical relationships, such as filesystems or message threads.",
+                    new Feature[] {
+                    //        
+                            new TreeSingleSelect(), //
+                            new TreeMultiSelect(), //
+                            new TreeActions(), //
+                            new TreeMouseEvents(), //
+                    });
         }
     }
 
     public static class Dates extends FeatureSet {
         public Dates() {
-            super("Dates", new Feature[] {
-            //        
-                    new DatePopup(), //
-                    new DateInline(), //
-                    new DateLocale(), //
-                    new DateResolution(), //
-            });
+            super(
+                    "Dates",
+                    "Dates",
+                    "The DateField component can be used to produce various date and time input fields with different resolutions. The date and time format used with this component is reported to the Toolkit by the browser.",
+                    new Feature[] {
+                    //        
+                            new DatePopup(), //
+                            new DateInline(), //
+                            new DateLocale(), //
+                            new DateResolution(), //
+                    });
         }
     }
 
index 699f1b1c4bcb40fcfdf536ba4eae21fa2e7864b3..8a9fd29ad75b813936b216549fbf2a05cf5baf53 100644 (file)
@@ -6,6 +6,7 @@ import com.itmill.toolkit.demo.sampler.ActiveLink.LinkActivatedEvent;
 import com.itmill.toolkit.demo.sampler.ActiveLink.LinkActivatedListener;
 import com.itmill.toolkit.demo.sampler.SamplerApplication.SamplerWindow;
 import com.itmill.toolkit.terminal.ExternalResource;
+import com.itmill.toolkit.terminal.ThemeResource;
 import com.itmill.toolkit.ui.Button;
 import com.itmill.toolkit.ui.Component;
 import com.itmill.toolkit.ui.HorizontalLayout;
@@ -48,6 +49,7 @@ public class FeatureView extends HorizontalLayout {
         setExpandRatio(left, 1);
 
         right = new Panel();
+        right.getLayout().setMargin(true, false, false, false);
         right.setStyleName(Panel.STYLE_LIGHT);
         right.addStyleName("feature-info");
         right.setWidth("369px");
@@ -127,18 +129,48 @@ public class FeatureView extends HorizontalLayout {
 
             right.setCaption("Description and Resources");
 
-            Label l = new Label(feature.getDescription());
-            l.setContentMode(Label.CONTENT_XHTML);
-            right.addComponent(l);
+            final Feature parent = (Feature) SamplerApplication
+                    .getAllFeatures().getParent(feature);
+            String desc = parent.getDescription();
+            boolean hasParentDesc = false;
+
+            if (desc != null && desc != "") {
+                Label l = new Label(parent.getDescription());
+                l.setContentMode(Label.CONTENT_XHTML);
+                right.addComponent(l);
+                hasParentDesc = true;
+            }
+
+            desc = feature.getDescription();
+            if (desc != null && desc != "") {
+                // Sample description uses additional decorations if a parent
+                // description is found
+                final Label l = new Label(
+                        "<div class=\"deco\"><span class=\"deco\"></span>"
+                                + desc + "</div>", Label.CONTENT_XHTML);
+                right.addComponent(l);
+                if (hasParentDesc) {
+                    l.setStyleName("sample-description");
+                }
+            }
 
             sourceCode.setValue(feature.getSource());
 
             NamedExternalResource[] resources = feature.getRelatedResources();
             if (resources != null) {
                 VerticalLayout res = new VerticalLayout();
-                res.setCaption("Additional resources");
+                Label caption = new Label("<span>Additional Resources</span>",
+                        Label.CONTENT_XHTML);
+                caption.setStyleName("section");
+                caption.setWidth("100%");
+                res.addComponent(caption);
+                res.setMargin(false, false, true, false);
                 for (NamedExternalResource r : resources) {
-                    res.addComponent(new Link(r.getName(), r));
+                    final Link l = new Link(r.getName(), r);
+                    l
+                            .setIcon(new ThemeResource(
+                                    "../default/icons/16/note.png"));
+                    res.addComponent(l);
                 }
                 right.addComponent(res);
             }
@@ -146,9 +178,17 @@ public class FeatureView extends HorizontalLayout {
             APIResource[] apis = feature.getRelatedAPI();
             if (apis != null) {
                 VerticalLayout api = new VerticalLayout();
-                api.setCaption("API documentation");
+                Label caption = new Label("<span>API Documentation</span>",
+                        Label.CONTENT_XHTML);
+                caption.setStyleName("section");
+                caption.setWidth("100%");
+                api.addComponent(caption);
+                api.setMargin(false, false, true, false);
                 for (APIResource r : apis) {
-                    api.addComponent(new Link(r.getName(), r));
+                    final Link l = new Link(r.getName(), r);
+                    l.setIcon(new ThemeResource(
+                            "../default/icons/16/document-txt.png"));
+                    api.addComponent(l);
                 }
                 right.addComponent(api);
             }
@@ -156,7 +196,12 @@ public class FeatureView extends HorizontalLayout {
             Class[] features = feature.getRelatedFeatures();
             if (features != null) {
                 VerticalLayout rel = new VerticalLayout();
-                rel.setCaption("Related Samples");
+                Label caption = new Label("<span>Related Samples</span>",
+                        Label.CONTENT_XHTML);
+                caption.setStyleName("section");
+                caption.setWidth("100%");
+                rel.addComponent(caption);
+                rel.setMargin(false, false, true, false);
                 for (Class c : features) {
                     final Feature f = SamplerApplication.getFeatureFor(c);
                     if (f != null) {
@@ -164,6 +209,7 @@ public class FeatureView extends HorizontalLayout {
                         ActiveLink al = new ActiveLink(f.getName(),
                                 new ExternalResource(getApplication().getURL()
                                         + "#" + path));
+                        al.setIcon(new ThemeResource("icons/sample.png"));
                         al.addListener(new LinkActivatedListener() {
                             public void linkActivated(LinkActivatedEvent event) {
                                 if (event.isLinkOpened()) {
index 4131b58207d705480ba47e7911afc11f884e052d..f9802d98d28fd31edd39bfaf307ffa1f734305ef 100644 (file)
@@ -708,4 +708,8 @@ public class SamplerApplication extends Application {
         }
     }
 
+    public static HierarchicalContainer getAllFeatures() {
+        return allFeatures;
+    }
+
 }
index 2af5a13ae08e4eb9adf50e0efce78b9bfe5112ff..e4b6d31aee48cee20a6a679115ec9bd0dd7cbe7a 100644 (file)
@@ -14,11 +14,7 @@ public class DateInline extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "The DateField component can be used to produce various"\r
-                + " date and time input fields with different resolutions."\r
-                + " The date and time format used with this component is"\r
-                + " reported to the Toolkit by the browser."\r
-                + "<br>In this example, the resolution is set to be one day"\r
+        return "In this example, the resolution is set to be one day"\r
                 + " and the DateField component is shown as an inline calendar"\r
                 + " component.";\r
     }\r
index 931d3190c14be50040c529c0b8b3adf2093f7909..dd28ccf311138b575b485b0d36ce62a75bb5d9bc 100644 (file)
@@ -16,11 +16,7 @@ public class DateLocale extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "The DateField component can be used to produce various"\r
-                + " date and time input fields with different resolutions."\r
-                + " The date and time format used with this component is"\r
-                + " reported to the Toolkit by the browser."\r
-                + "<br>In this example, you can select a different locale"\r
+        return "In this example, you can select a different locale"\r
                 + " from the combo box and see how the calendar component"\r
                 + " will be localized.";\r
     }\r
index babca8cec561592172775dae9f65a13a38620ad9..83bdd9fc9a3be0762244f0e7c2588f0d8c048361 100644 (file)
@@ -14,11 +14,7 @@ public class DatePopup extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "The DateField component can be used to produce various"\r
-                + " date and time input fields with different resolutions."\r
-                + " The date and time format used with this component is"\r
-                + " reported to the Toolkit by the browser."\r
-                + "<br>In this example, the resolution is set to be one day"\r
+        return "In this example, the resolution is set to be one day"\r
                 + " and the DateField component is shown as a calendar pop-up.";\r
     }\r
 \r
index dde24187acb71ac3301f54e75cb62a13ec64960f..4f170cf38d952d9f31941e25154be64a4d8fd658 100644 (file)
@@ -14,11 +14,7 @@ public class DateResolution extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "The DateField component can be used to produce various"\r
-                + " date and time input fields with different resolutions."\r
-                + " The date and time format used with this component is"\r
-                + " reported to the Toolkit by the browser."\r
-                + "<br>In this example, you can select a different resolution"\r
+        return "In this example, you can select a different resolution"\r
                 + " from the combo box and see how the calendar component"\r
                 + " will change.";\r
     }\r
index 36e90cd711df02439dd1d4e4afc889363b4dfa48..f34f7a733991958d11327b767b96a673c60faeba 100644 (file)
@@ -25,22 +25,22 @@ public class FormBasic extends Feature {
 
     @Override
     public String getDescription() {
-        return "The Form -component provides a convenient way to organize"
-                + " related fields visually.<br/> It is most useful when connected"
-                + " to a data source, and provides buffering and customization"
-                + " features to support that scenario.";
+        return "";
     }
 
+    @Override
     public APIResource[] getRelatedAPI() {
         return new APIResource[] { new APIResource(Validatable.class),
                 new APIResource(Validator.class), new APIResource(Form.class) };
     }
 
+    @Override
     public Class[] getRelatedFeatures() {
         return new Class[] { Validation.class, Errors.class,
                 FeatureSet.Forms.class };
     }
 
+    @Override
     public NamedExternalResource[] getRelatedResources() {
         return null;
     }
index 28d46b2a4cb87aef95b94bddb5cee9e3c86ad8cc..020ae63615f647ed376f24d639689fe58d41b568 100644 (file)
@@ -25,26 +25,25 @@ public class FormPojo extends Feature {
 
     @Override
     public String getDescription() {
-        return "The Form -component provides a convenient way to organize"
-                + " related fields visually.<br/> It is most useful when connected"
-                + " to a data source, and provides buffering and customization"
-                + " features to support that scenario.<br> It easily be used as"
-                + " a POJO or Bean editor by wrapping the bean using BeanItem."
-                + " The basic functionality only requires a couple of lines of"
-                + " code, then Validators and other customizations can be"
-                + " applied to taste.";
+        return "It can easily be used as a POJO or Bean editor by wrapping the"
+                + " bean using BeanItem. The basic functionality only requires"
+                + " a couple of lines of code, then Validators and other"
+                + " customizations can be applied to taste.";
     }
 
+    @Override
     public APIResource[] getRelatedAPI() {
         return new APIResource[] { new APIResource(Validatable.class),
                 new APIResource(Validator.class), new APIResource(Form.class) };
     }
 
+    @Override
     public Class[] getRelatedFeatures() {
         return new Class[] { Validation.class, Errors.class,
                 FeatureSet.Forms.class };
     }
 
+    @Override
     public NamedExternalResource[] getRelatedResources() {
         return null;
     }
index 7db6f43898bdb71838c1db85af3d9c7b895e070f..56092e421400f12d49b9cbb77b4ebaf4ec6da037 100644 (file)
@@ -15,10 +15,7 @@ public class LinkCurrentWindow extends Feature {
 
     @Override
     public String getDescription() {
-        return "An external link - this is the basic HTML-style link, changing"
-                + " the url of the browser w/o triggering a server-side event"
-                + " (like the link-styled Button).<br/> By default, links open"
-                + " in the current browser window.";
+        return "";
     }
 
     @Override
index 2759c08146e20bd5d289b9015ef90bba0c3396a0..65e19ecf09d12091348def7dbc5a90cfc557eac2 100644 (file)
@@ -15,12 +15,7 @@ public class LinkNoDecorations extends Feature {
 
     @Override
     public String getDescription() {
-        return "An basic HTML-style (external) link, opening a browser window"
-                + "w/o decorations. A Link changes"
-                + " the url of the browser w/o triggering a server-side event"
-                + " (like the link-styled Button).<br/> Links can open new"
-                + " browser windows, and configure the amount of browser"
-                + " features shown, such as toolbar and addressbar.";
+        return "These links open a browser window without decorations.";
     }
 
     @Override
index bd6a02706ebf01efd5f84e1e80d9e9ccb78a001c..18f118e0f7326b77f571c595fb46165ec18a25cb 100644 (file)
@@ -15,13 +15,7 @@ public class LinkSizedWindow extends Feature {
 
     @Override
     public String getDescription() {
-        return "An basic HTML-style (external) link, opening a small window w/o"
-                + " decorations.<br/> A link changes"
-                + " the url of the browser w/o triggering a server-side event"
-                + " (like the link-styled Button).<br/> Links can open new"
-                + " browser windows, and configure the amount of browser"
-                + " features shown, such as toolbar and addressbar, and can also"
-                + " set the size of the window.";
+        return "These links open a small, prefixed size window without decorations.";
     }
 
     @Override
index 77fb90f4256c912ca3ae3d767177383ec885df97..5449fdc60a712b29e09d1a1326ee31ceb5659753 100644 (file)
@@ -14,11 +14,9 @@ public class NotificationCustom extends Feature {
 
     @Override
     public String getDescription() {
-        return "Notifications are lightweight informational messages,"
-                + " used to inform the user of various events.<br/>"
-                + "The notification can have a caption, a richtext"
+        return "A notification can have a caption, a richtext"
                 + " description, and an icon. Position and delay can"
-                + " also be customized.<br/> Not that more often than"
+                + " also be customized.<br/>Note that more often than"
                 + " not, less is more: try to make the messages short"
                 + " and to the point.";
     }
index b89dd925d5a378a544cffcab4e25a4509373f538..b653f706654ed953a583cea04a1ee6e5b2604146 100644 (file)
@@ -14,17 +14,15 @@ public class NotificationError extends Feature {
 
     @Override
     public String getDescription() {
-        return "Notifications are lightweight informational messages,"
-                + " used to inform the user of various events. The"
-                + " <i>Error</i> variant is modal, and is to be used for"
+        return "<p>The <i>Error</i> variant is modal, and is to be used for"
                 + " messages that must be seen by the user.<br/>"
                 + " The <i>Error</i> message must be closed by clicking"
-                + " the notification.<br/> Candidates for an"
+                + " the notification.</p><p>Candidates for an"
                 + " <i>Error</i> notification include 'Save failed',"
                 + " 'Permission denied', and other situations that the"
                 + " user must be made aware of.<br/>It's a good idea to"
                 + " provide hints about what went wrong, and how the user'"
-                + " can proceed to correct the situation.";
+                + " can proceed to correct the situation.</p>";
     }
 
     @Override
index fa2c41b74fa9b4d6c0a7eaf144396a059065cce8..137e5808dbd8cbc0bfc42f8418561d56fc8cddba 100644 (file)
@@ -14,18 +14,16 @@ public class NotificationHumanized extends Feature {
 
     @Override
     public String getDescription() {
-        return "Notifications are lightweight informational messages,"
-                + " used to inform the user of various events. The"
-                + " <i>Humanized</i> variant is an implementation of"
+        return "<p>The <i>Humanized</i> variant is an implementation of"
                 + " the <i>transparent message</i> -pattern, and is meant"
                 + " to indicate non-critical events while interrupting"
                 + " the user as little as possible.<br/>"
                 + "The <i>Humanized</i> message quickly fades away once"
                 + " the user interacts with the application (e.g. moves"
-                + " mouse, types)<br/> Candidates for a"
+                + " mouse, types)</p><p>Candidates for a"
                 + " <i>Humanized</i> notification include 'XYZ saved',"
                 + " 'Added XYZ', and other messages that the user can"
-                + " safely ignore, once the application is familliar.";
+                + " safely ignore, once the application is familliar.</p>";
     }
 
     @Override
index c1551fc72cb62c47a281e463569e80f889727a31..f5a41312fddefcdf56b59f2eefcb8c0d2d3e4edf 100644 (file)
@@ -14,18 +14,16 @@ public class NotificationTray extends Feature {
 
     @Override
     public String getDescription() {
-        return "Notifications are lightweight informational messages,"
-                + " used to inform the user of various events. The"
-                + " <i>Tray</i> variant shows up in the lower left corner,"
+        return "<p>The <i>Tray</i> variant shows up in the lower left corner,"
                 + " and is meant to interrupt the user as little as possible"
                 + " even if it's shown for a while. "
                 + "The <i>Tray</i> message fades away after a few moments"
                 + " once the user interacts with the application (e.g. moves"
-                + " mouse, types)<br/> Candidates for a"
+                + " mouse, types)</p><p>Candidates for a"
                 + " <i>Tray</i> notification include 'New message received',"
-                + " 'Job XYZ completed' - generally notifications about events"
+                + " 'Job XYZ completed' &ndash; generally notifications about events"
                 + " that have been delayed, or occur in the background"
-                + " (as opposed to being a direct result of the users last action.)";
+                + " (as opposed to being a direct result of the users last action.)</p>";
     }
 
     @Override
index 421088906e3b11a7895eb7cec6024716c3cca481..316bbbd7c55971ca1b6422df557122c9208e5c95 100644 (file)
@@ -14,18 +14,16 @@ public class NotificationWarning extends Feature {
 
     @Override
     public String getDescription() {
-        return "Notifications are lightweight informational messages,"
-                + " used to inform the user of various events. The"
-                + " <i>Warning</i> variant is an implementation of"
+        return "<p>The <i>Warning</i> variant is an implementation of"
                 + " the <i>transparent message</i> -pattern, and is meant"
                 + " to interrupt the user as little as possible, while"
                 + " still drawing the needed attention."
                 + "The <i>Warning</i> message fades away after a few moments"
                 + " once the user interacts with the application (e.g. moves"
-                + " mouse, types)<br/> Candidates for a"
+                + " mouse, types)</p><p>Candidates for a"
                 + " <i>Warning</i> notification include 'You canceled XYZ',"
                 + " 'XYZ deleted', and other situations that the user should"
-                + " be made aware of, but are probably intentional.";
+                + " be made aware of, but are probably intentional.</p>";
     }
 
     @Override
index 3186994559bd5815e5e52a94e662e122c3d4db52..ad42a5c4c71a32252f6c62ea25386ec7e15b4819 100644 (file)
@@ -15,11 +15,7 @@ public class PanelBasic extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "Panel is a simple container that supports scrolling.<br/>"\r
-                + " It's internal layout (by default VerticalLayout) can be"\r
-                + " configured or exchanged to get desired results. Components"\r
-                + " that are added to the Panel will in effect be added to the"\r
-                + " layout.";\r
+        return "";\r
 \r
     }\r
 \r
index e3b268cc408305679c57fef5b844c43e19b34eb0..d7d4717058505faed51f375d6d8d54947830ca34 100644 (file)
@@ -15,12 +15,7 @@ public class PanelLight extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "Panel is a simple container that supports scrolling.<br/>"\r
-                + " It's internal layout (by default VerticalLayout) can be"\r
-                + " configured or exchanged to get desired results. Components"\r
-                + " that are added to the Panel will in effect be added to the"\r
-                + " layout.<br/>"\r
-                + "The 'light' version has less decorations than the regular one.";\r
+        return "The 'light' style version has less decorations than the regular Panel style.";\r
 \r
     }\r
 \r
index dc1ee06185977d4644fdc40089657b84057b4ab9..bcfc1c4c39828fa745771fdecb571e549881d6bf 100644 (file)
@@ -14,7 +14,7 @@ public class ListSelectSingle extends Feature {
     @Override\r
     public String getDescription() {\r
         return "A simple list select component with single item selection.<br/>"\r
-                + " You can allow or disallow <i>null selection</i> - i.e the"\r
+                + "You can allow or disallow <i>null selection</i> - i.e the"\r
                 + " possibility to make an empty selection. Null selection is"\r
                 + " not allowed in this example.";\r
     }\r
index 08b1367a0b954ae36f3de8f16d08c58de04b2dda..979deb3d7e3b59c26ec6020614bca6e3b431f1ca 100644 (file)
@@ -21,9 +21,7 @@ public class TableActions extends Feature {
 
     @Override
     public String getDescription() {
-        return "Also known as a (Data)Grid, Table can be used to show data in"
-                + " a tabular fashion. It's well suited for showing large datasets.<br>"
-                + "Actions can be added to each row, and are show in the a"
+        return "Actions can be added to each row, and are show in the a"
                 + " context menu when right-clicking.";
 
     }
index bb39a844cca553909609619daaba16ac51d342cd..f511755d43cfd380f98d04b4368ae9302be00fae 100644 (file)
@@ -21,9 +21,7 @@ public class TableCellStyling extends Feature {
 
     @Override
     public String getDescription() {
-        return "Also known as a (Data)Grid, Table can be used to show data in"
-                + " a tabular fashion. It's well suited for showing large datasets.<br>"
-                + "Individual cells can be styled in a Table by using a"
+        return "Individual cells can be styled in a Table by using a"
                 + " CellStyleGenerator. Regular CSS is used to create the"
                 + " actual style.<br/>Double click a first or last name to"
                 + " mark/unmark that cell.";
index 516166d6a5a2dd56fc74e6a98e1de8d9263f3923..cf6ad57fca21eabfe50fa3419c46bca95f555b5a 100644 (file)
@@ -21,9 +21,7 @@ public class TableColumnAlignment extends Feature {
 
     @Override
     public String getDescription() {
-        return "Also known as a (Data)Grid, Table can be used to show data in"
-                + " a tabular fashion. It's well suited for showing large datasets.<br>"
-                + "Columns can be aligned left (default), center or right.";
+        return "Columns can be aligned left (default), center or right.";
 
     }
 
index d9fc25fde6a2db6e1a7acf6d6ba1a881a1e15f16..ad3d8fbf4cc0f3018004d7b66b74e7ee730aeee0 100644 (file)
@@ -21,9 +21,7 @@ public class TableColumnCollapsing extends Feature {
 
     @Override
     public String getDescription() {
-        return "Also known as a (Data)Grid, Table can be used to show data in"
-                + " a tabular fashion. It's well suited for showing large datasets.<br>"
-                + "Columns can be 'collapsed', which means that it's not shown,"
+        return "Columns can be 'collapsed', which means that it's not shown,"
                 + " but the user can make the column re-appear by using the"
                 + " menu in the upper right of the table.<br/>"
                 + " Columns can also be made invisible, in which case they can"
index 9d6a1e68e61d843d17b43cc12488a1c1c28ad3a4..583f86c79c10b5872e289b91fd9273de22f53529 100644 (file)
@@ -21,9 +21,7 @@ public class TableColumnHeaders extends Feature {
 
     @Override
     public String getDescription() {
-        return "Also known as a (Data)Grid, Table can be used to show data in"
-                + " a tabular fashion. It's well suited for showing large datasets.<br>"
-                + " A Table can have column headers, which support different modes"
+        return "A Table can have column headers, which support different modes"
                 + " with automatic or explicitly set caption and/or icon.";
     }
 
index 67654b98345b91d2702709fc3356c0f4402d5d68..9db6e7f6698938c2087f35cd717af736b52ec24a 100644 (file)
@@ -21,9 +21,7 @@ public class TableColumnReordering extends Feature {
 
     @Override
     public String getDescription() {
-        return "Also known as a (Data)Grid, Table can be used to show data in"
-                + " a tabular fashion. It's well suited for showing large datasets.<br>"
-                + " The columns can be rearranged with drag&drop - a feature"
+        return "The columns can be rearranged with drag&drop - a feature"
                 + " which can be enabled or disabled.";
     }
 
index da50cf4b3a84242c0aa1f137c344963e44d5cb8f..c891eed6437a1808edd82a907a01f8be67731007 100644 (file)
@@ -21,9 +21,7 @@ public class TableHeaderIcons extends Feature {
 
     @Override
     public String getDescription() {
-        return "Also known as a (Data)Grid, Table can be used to show data in"
-                + " a tabular fashion. It's well suited for showing large datasets.<br>"
-                + " A Table can have icons in the column- and rowheaders. "
+        return "A Table can have icons in the column- and rowheaders. "
                 + " The rowheader icon can come from a item property, or be"
                 + " explicitly set.";
     }
index 0883ee1659fdf1dffa8b87a8bb959c932b4a0825..d4fcebd297517e211aec67d64394a2f95ea2f489 100644 (file)
@@ -21,9 +21,7 @@ public class TableLazyLoading extends Feature {
 
     @Override
     public String getDescription() {
-        return "Also known as a (Data)Grid, Table can be used to show data in"
-                + " a tabular fashion. It's well suited for showing large datasets.<br>"
-                + "Table supports lazy-loading, which means that the content is"
+        return "Table supports lazy-loading, which means that the content is"
                 + " loaded from the server only when needed. This allows the "
                 + " table to stay efficient even when scrolling hundreds of"
                 + " thousands of rows.<br/>Try scrolling a fair amount quickly!";
index a4875279dce46b0acca9ad9127d12fbfbf40c385..57e1d9307299770bebe326999e3ba8363ce36c26 100644 (file)
@@ -19,10 +19,9 @@ public class TableMouseEvents extends Feature {
         return new TableStylingExample();
     }
 
+    @Override
     public String getDescription() {
-        return "Also known as a (Data)Grid, Table can be used to show data in"
-                + " a tabular fashion. It's well suited for showing large datasets.<br>"
-                + "An ItemClickListener can be used to react to mouse click"
+        return "An ItemClickListener can be used to react to mouse click"
                 + " events. Different buttons, double click, and modifier keys"
                 + " can be detected.<br/>Double-click a first or last name to"
                 + " toggle it's marked state.";
index 4d0ffe316f78bc9917308f2b7f94cb4d596c48b9..467510aa41d1fe6f710864f56c8ac60c38c5d5ef 100644 (file)
@@ -21,9 +21,7 @@ public class TableRowHeaders extends Feature {
 
     @Override
     public String getDescription() {
-        return "Also known as a (Data)Grid, Table can be used to show data in"
-                + " a tabular fashion. It's well suited for showing large datasets.<br>"
-                + " A Table can have row headers, which support different modes"
+        return "A Table can have row headers, which support different modes"
                 + " with automatic or explicitly set caption and/or icon.";
     }
 
index a165e3e527b94d14681ae61632c23cfe56c78968..aa461e7e05c7f3191d1d8d4e97bc9e198fb1549f 100644 (file)
@@ -21,9 +21,7 @@ public class TableRowStyling extends Feature {
 
     @Override
     public String getDescription() {
-        return "Also known as a (Data)Grid, Table can be used to show data in"
-                + " a tabular fashion. It's well suited for showing large datasets.<br>"
-                + "Rows can be styled in a Table by using a CellStyleGenerator."
+        return "Rows can be styled in a Table by using a CellStyleGenerator."
                 + " Regular CSS is used to create the actual style.<br/>Use the"
                 + " context menu (right-/ctrl-click) to apply a row style in"
                 + " the example.";
index f8ec3588fa7ac6a631e49bc71c4e8d02de91f514..cd9d83726bc9162ae8e748f216a6972057a24c61 100644 (file)
@@ -21,9 +21,7 @@ public class TableSorting extends Feature {
 
     @Override
     public String getDescription() {
-        return "Also known as a (Data)Grid, Table can be used to show data in"
-                + " a tabular fashion. It's well suited for showing large datasets.<br>"
-                + "The Table columns can (optionally) be sorted by clicking the"
+        return "The Table columns can (optionally) be sorted by clicking the"
                 + " column header - a sort direction indicator will appear."
                 + " Clicking again will change the sorting direction.";
 
index 241cad83d2be0a76d91d171433da6a4f0f738c5b..cd0181636e3e78c072394924816e5b263b01db88 100644 (file)
@@ -13,10 +13,7 @@ public class LabelPlain extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "A label is a simple component that allows you to add"\r
-                + " optionally formatted text components to your"\r
-                + " application."\r
-                + "<br>In this example the content mode is set to"\r
+        return "In this example the content mode is set to"\r
                 + " CONTENT_TEXT, meaning that the label will contain"\r
                 + " only plain text.";\r
 \r
index 0a73ef1ad850f813a7aec2ed0f7e85433f6406ff..e3aed6b1d80803f9286064aeaef3c55375579c9d 100644 (file)
@@ -13,10 +13,7 @@ public class LabelPreformatted extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "A label is a simple component that allows you to add"\r
-                + " optionally formatted text components to your"\r
-                + " application."\r
-                + "<br>In this example the content mode is set to"\r
+        return "In this example the content mode is set to"\r
                 + " CONTENT_PREFORMATTED. The text for this content type"\r
                 + " is by default rendered with fixed-width font. Line breaks"\r
                 + " can be inserted with \\n and tabulator characters with \\t.";\r
index 2efe72525e005941d8a88f3f7a1ca1a2d80289c9..80353d63ecf2e2711d37805ce8ee1f5abbbb1d08 100644 (file)
@@ -13,10 +13,7 @@ public class LabelRich extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "A label is a simple component that allows you to add"\r
-                + " optionally formatted text components to your"\r
-                + " application."\r
-                + "<br>In this example the content mode is set to"\r
+        return "In this example the content mode is set to"\r
                 + " CONTENT_XHTML. This content mode assumes that the"\r
                 + " content set to the label will be valid XHTML.";\r
     }\r
index 50b910a456e0051c4f2c09543033d91e9f10ba64..23a114bfa3c96c34727c76028e20ee63f32eb89c 100644 (file)
@@ -14,9 +14,7 @@ public class TextFieldSingle extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "A single line Textfield component allows you to input"\r
-                + " one line of text.<br/>"\r
-                + "<br/>For sensitive data input, the textfield can"\r
+        return "For sensitive data input, the textfield can"\r
                 + " also be set into secret mode where the input will not be"\r
                 + " echoed to display.";\r
     }\r
index 942b15db4ac266db024965ef2cb8975a45e52d4d..6cf69fe5a0e74e8cc69145b01802d6530897356a 100644 (file)
@@ -14,10 +14,7 @@ public class TreeActions extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "The Tree component allows a natural way to represent"\r
-                + " data that has hierarchical relationships, such as"\r
-                + " filesystems or message threads."\r
-                + "<br>In this example, actions have been attached to"\r
+        return "In this example, actions have been attached to"\r
                 + " the tree component. Try clicking the secondary mouse"\r
                 + " button on an item in the tree.";\r
     }\r
index 6dfa186aedeb437f001031d81ade44307ba3a7a0..2a7d4e4728ba158a1dc73cceb646cc5d01e5a64d 100644 (file)
@@ -13,10 +13,7 @@ public class TreeMouseEvents extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "The Tree component allows a natural way to represent"\r
-                + " data that has hierarchical relationships, such as"\r
-                + " filesystems or message threads."\r
-                + "<br>In this example, selecting items from the tree"\r
+        return "In this example, selecting items from the tree"\r
                 + " is disabled. Instead, another method of selection"\r
                 + " is used. Through ItemClickEvent we can update the"\r
                 + " label showing the selection."\r
index 3dce33f3fac5030512b7596b0475b9a47ed57f59..cab5cce026707b589abe46f4663400b0f54d9bf0 100644 (file)
@@ -13,10 +13,7 @@ public class TreeMultiSelect extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "The Tree component allows a natural way to represent"\r
-                + " data that has hierarchical relationships, such as"\r
-                + " filesystems or message threads."\r
-                + "<br>In this example, you can select multiple tree nodes"\r
+        return "In this example, you can select multiple tree nodes"\r
                 + " and delete your selection. Click a selected item again to de-select it.";\r
     }\r
 \r
index 08b113970f83a02216d55d5afd3987b97746fd67..2197835b435aa028fdf3d2835c4cb44866614393 100644 (file)
@@ -13,10 +13,7 @@ public class TreeSingleSelect extends Feature {
 \r
     @Override\r
     public String getDescription() {\r
-        return "The Tree component allows a natural way to represent"\r
-                + " data that has hierarchical relationships, such as"\r
-                + " filesystems or message threads."\r
-                + "<br>In this example, you can select any single tree node"\r
+        return "In this example, you can select any single tree node"\r
                 + " and modify its 'name' property. Click again to de-select.";\r
     }\r
 \r