package com.itmill.toolkit.demo.sampler; import java.util.Collections; import java.util.LinkedList; import com.itmill.toolkit.data.Item; import com.itmill.toolkit.data.Property; import com.itmill.toolkit.data.util.HierarchicalContainer; import com.itmill.toolkit.demo.sampler.features.accordions.AccordionDisabled; import com.itmill.toolkit.demo.sampler.features.accordions.AccordionIcons; import com.itmill.toolkit.demo.sampler.features.blueprints.ProminentPrimaryAction; import com.itmill.toolkit.demo.sampler.features.buttons.ButtonLink; import com.itmill.toolkit.demo.sampler.features.buttons.ButtonPush; import com.itmill.toolkit.demo.sampler.features.buttons.ButtonSwitch; import com.itmill.toolkit.demo.sampler.features.commons.Errors; import com.itmill.toolkit.demo.sampler.features.commons.Icons; import com.itmill.toolkit.demo.sampler.features.commons.Tooltips; import com.itmill.toolkit.demo.sampler.features.commons.Validation; import com.itmill.toolkit.demo.sampler.features.dates.DateInline; import com.itmill.toolkit.demo.sampler.features.dates.DateLocale; import com.itmill.toolkit.demo.sampler.features.dates.DatePopup; import com.itmill.toolkit.demo.sampler.features.dates.DateResolution; import com.itmill.toolkit.demo.sampler.features.form.FormBasic; import com.itmill.toolkit.demo.sampler.features.layouts.ApplicationLayout; import com.itmill.toolkit.demo.sampler.features.layouts.CustomLayouts; import com.itmill.toolkit.demo.sampler.features.layouts.ExpandingComponent; import com.itmill.toolkit.demo.sampler.features.layouts.GridLayoutBasic; import com.itmill.toolkit.demo.sampler.features.layouts.HorizontalLayoutBasic; import com.itmill.toolkit.demo.sampler.features.layouts.LayoutAlignment; import com.itmill.toolkit.demo.sampler.features.layouts.LayoutMargin; import com.itmill.toolkit.demo.sampler.features.layouts.LayoutSpacing; import com.itmill.toolkit.demo.sampler.features.layouts.SplitPanelBasic; import com.itmill.toolkit.demo.sampler.features.layouts.VerticalLayoutBasic; import com.itmill.toolkit.demo.sampler.features.layouts.WebLayout; import com.itmill.toolkit.demo.sampler.features.link.LinkCurrentWindow; import com.itmill.toolkit.demo.sampler.features.link.LinkNoDecorations; import com.itmill.toolkit.demo.sampler.features.link.LinkSizedWindow; import com.itmill.toolkit.demo.sampler.features.notifications.NotificationCustom; import com.itmill.toolkit.demo.sampler.features.notifications.NotificationError; import com.itmill.toolkit.demo.sampler.features.notifications.NotificationHumanized; import com.itmill.toolkit.demo.sampler.features.notifications.NotificationTray; import com.itmill.toolkit.demo.sampler.features.notifications.NotificationWarning; import com.itmill.toolkit.demo.sampler.features.panels.PanelBasic; import com.itmill.toolkit.demo.sampler.features.panels.PanelLight; import com.itmill.toolkit.demo.sampler.features.selects.ComboBoxContains; import com.itmill.toolkit.demo.sampler.features.selects.ComboBoxNewItems; import com.itmill.toolkit.demo.sampler.features.selects.ComboBoxPlain; import com.itmill.toolkit.demo.sampler.features.selects.ComboBoxStartsWith; import com.itmill.toolkit.demo.sampler.features.selects.ListSelectMultiple; import com.itmill.toolkit.demo.sampler.features.selects.ListSelectSingle; import com.itmill.toolkit.demo.sampler.features.selects.NativeSelection; import com.itmill.toolkit.demo.sampler.features.selects.TwinColumnSelect; import com.itmill.toolkit.demo.sampler.features.table.TableActions; import com.itmill.toolkit.demo.sampler.features.table.TableCellStyling; import com.itmill.toolkit.demo.sampler.features.table.TableColumnAlignment; import com.itmill.toolkit.demo.sampler.features.table.TableColumnCollapsing; import com.itmill.toolkit.demo.sampler.features.table.TableColumnHeaders; import com.itmill.toolkit.demo.sampler.features.table.TableColumnReordering; import com.itmill.toolkit.demo.sampler.features.table.TableHeaderIcons; import com.itmill.toolkit.demo.sampler.features.table.TableLazyLoading; import com.itmill.toolkit.demo.sampler.features.table.TableMouseEvents; import com.itmill.toolkit.demo.sampler.features.table.TableRowHeaders; import com.itmill.toolkit.demo.sampler.features.table.TableRowStyling; import com.itmill.toolkit.demo.sampler.features.table.TableSorting; import com.itmill.toolkit.demo.sampler.features.tabsheets.TabSheetDisabled; import com.itmill.toolkit.demo.sampler.features.tabsheets.TabSheetIcons; import com.itmill.toolkit.demo.sampler.features.tabsheets.TabSheetScrolling; import com.itmill.toolkit.demo.sampler.features.text.LabelPlain; import com.itmill.toolkit.demo.sampler.features.text.LabelPreformatted; import com.itmill.toolkit.demo.sampler.features.text.LabelRich; import com.itmill.toolkit.demo.sampler.features.text.RichTextEditor; import com.itmill.toolkit.demo.sampler.features.text.TextArea; import com.itmill.toolkit.demo.sampler.features.text.TextFieldSecret; import com.itmill.toolkit.demo.sampler.features.text.TextFieldSingle; import com.itmill.toolkit.demo.sampler.features.trees.TreeActions; import com.itmill.toolkit.demo.sampler.features.trees.TreeMouseEvents; import com.itmill.toolkit.demo.sampler.features.trees.TreeMultiSelect; import com.itmill.toolkit.demo.sampler.features.trees.TreeSingleSelect; import com.itmill.toolkit.demo.sampler.features.windows.NativeWindow; import com.itmill.toolkit.demo.sampler.features.windows.Subwindow; import com.itmill.toolkit.demo.sampler.features.windows.SubwindowAutoSized; import com.itmill.toolkit.demo.sampler.features.windows.SubwindowClose; import com.itmill.toolkit.demo.sampler.features.windows.SubwindowModal; import com.itmill.toolkit.demo.sampler.features.windows.SubwindowPositioned; import com.itmill.toolkit.demo.sampler.features.windows.SubwindowSized; /** * Contains the FeatureSet implementation and the structure for the feature * 'tree'. *
* Each set is implemented as it's own class to facilitate linking to sets in * the same way as linking to individual features. *
* */ public class FeatureSet extends Feature { /* * MAIN structure; root is always a FeatureSet that is not shown */ static final FeatureSet FEATURES = new FeatureSet("All", new Feature[] { // Main sets // new Blueprints(), disabled for now, until more samples are ready new Components(), // }); /* * TOP LEVEL */ public static class Blueprints extends FeatureSet { public Blueprints() { super("Blueprints", new Feature[] { // Blueprints new ProminentPrimaryAction(), // }); } } public static class Components extends FeatureSet { public Components() { super("Components", new Feature[] { // new Common(), // new Accordions(), // new Buttons(), // new Dates(), // new Forms(), // new Layouts(), // new Links(), // new Notifications(), // new Panels(), // new Selects(), // new Tables(),// new Tabsheets(), // new Texts(), // new TextFields(), // new Trees(), // new Windows(), // }); } } /* * LEVEL 2 */ public static class Buttons extends FeatureSet { public Buttons() { super( "Buttons", "Buttons", "A button is one of the fundamental building blocks of any application.", new Feature[] { // new ButtonPush(), // basic new ButtonLink(), // link new ButtonSwitch(), // switch/checkbox }); } } public static class Links extends FeatureSet { public Links() { 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).", new Feature[] { // new LinkCurrentWindow(), // basic new LinkNoDecorations(), // new win new LinkSizedWindow(), // new win }); } } public static class Notifications extends FeatureSet { public Notifications() { 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 Common extends FeatureSet { public Common() { super("Common", new Feature[] { // new Tooltips(), // new Icons(), // new Errors(), // new Validation(), // TODO this should point to Form instead }); } } public static class Selects extends FeatureSet { public Selects() { super("Selects", new Feature[] { // new ListSelectSingle(), // new ListSelectMultiple(), // new TwinColumnSelect(), // new NativeSelection(), // new ComboBoxPlain(), // new ComboBoxStartsWith(), // new ComboBoxContains(), // new ComboBoxNewItems(), // }); } } public static class Layouts extends FeatureSet { public Layouts() { super( "Layouts", "Layouts", "Making a usable, good looking, dynamic layout can be tricky, but with the right tools almost anything is possible.