Many sample descriptions split into two pieces: featureset description and feature description.
svn changeset:6794/svn branch:trunk
}
.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 {
new Tables(),//
new Tabsheets(), //
new Texts(), //
+ new TextFields(), //
new Trees(), //
new Windows(), //
});
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
+ });
}
}
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(), //
+ });
}
}
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(), //
+ });
}
}
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;
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");
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);
}
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);
}
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) {
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()) {
}
}
+ public static HierarchicalContainer getAllFeatures() {
+ return allFeatures;
+ }
+
}
\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
\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
\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
\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
@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;
}
@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;
}
@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
@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
@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
@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.";
}
@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
@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
@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' – 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
@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
\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
\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
@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
@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.";
}
@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.";
@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.";
}
@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"
@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.";
}
@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.";
}
@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.";
}
@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!";
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.";
@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.";
}
@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.";
@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.";
\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
\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
\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
\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
\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
\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
\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
\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