From e426fde1d12a0baaa9786048d85591dfcd701ee3 Mon Sep 17 00:00:00 2001
From: Jani Laakso
Date: Thu, 18 Oct 2007 11:48:52 +0000
Subject: Removed old Feature Browser from demo package, simpler but better
functioning demo will be added soon.
svn changeset:2549/svn branch:trunk
---
src/com/itmill/toolkit/demo/features/Feature.java | 206 --------
.../toolkit/demo/features/FeatureBrowser.java | 282 -----------
.../toolkit/demo/features/FeatureBuffering.java | 110 -----
.../toolkit/demo/features/FeatureButton.java | 87 ----
.../toolkit/demo/features/FeatureContainers.java | 113 -----
.../toolkit/demo/features/FeatureCustomLayout.java | 96 ----
.../toolkit/demo/features/FeatureDateField.java | 126 -----
.../toolkit/demo/features/FeatureEmbedded.java | 112 -----
.../itmill/toolkit/demo/features/FeatureForm.java | 191 --------
.../toolkit/demo/features/FeatureFrameWindow.java | 166 -------
.../toolkit/demo/features/FeatureGridLayout.java | 93 ----
.../itmill/toolkit/demo/features/FeatureItems.java | 106 -----
.../itmill/toolkit/demo/features/FeatureLabel.java | 95 ----
.../itmill/toolkit/demo/features/FeatureLink.java | 84 ----
.../demo/features/FeatureOrderedLayout.java | 95 ----
.../itmill/toolkit/demo/features/FeaturePanel.java | 87 ----
.../toolkit/demo/features/FeatureParameters.java | 177 -------
.../toolkit/demo/features/FeatureProperties.java | 111 -----
.../toolkit/demo/features/FeatureSelect.java | 106 -----
.../toolkit/demo/features/FeatureTabSheet.java | 91 ----
.../itmill/toolkit/demo/features/FeatureTable.java | 218 ---------
.../toolkit/demo/features/FeatureTextField.java | 89 ----
.../itmill/toolkit/demo/features/FeatureTree.java | 184 --------
.../toolkit/demo/features/FeatureUpload.java | 168 -------
.../itmill/toolkit/demo/features/FeatureUtil.java | 31 --
.../toolkit/demo/features/FeatureValidators.java | 106 -----
.../toolkit/demo/features/FeatureWindow.java | 159 -------
.../toolkit/demo/features/FeaturesApplication.java | 56 ---
.../itmill/toolkit/demo/features/IntroBasic.java | 98 ----
.../toolkit/demo/features/IntroComponents.java | 102 ----
.../toolkit/demo/features/IntroDataHandling.java | 97 ----
.../toolkit/demo/features/IntroDataModel.java | 99 ----
.../toolkit/demo/features/IntroItemContainers.java | 98 ----
.../itmill/toolkit/demo/features/IntroLayouts.java | 100 ----
.../toolkit/demo/features/IntroTerminal.java | 74 ---
.../itmill/toolkit/demo/features/IntroWelcome.java | 217 ---------
.../toolkit/demo/features/PropertyPanel.java | 516 ---------------------
.../itmill/toolkit/demo/features/components.png | Bin 184749 -> 0 bytes
src/com/itmill/toolkit/demo/features/icon_demo.png | Bin 2428 -> 0 bytes
.../itmill/toolkit/demo/features/icon_intro.png | Bin 2465 -> 0 bytes
src/com/itmill/toolkit/demo/features/itmill.gif | Bin 6110 -> 0 bytes
.../itmill/toolkit/demo/features/itmill_spin.swf | Bin 2991 -> 0 bytes
.../itmill/toolkit/demo/features/m-bullet-blue.gif | Bin 8417 -> 0 bytes
src/com/itmill/toolkit/demo/features/m.gif | Bin 1036 -> 0 bytes
.../toolkit/tests/featurebrowser/Feature.java | 206 ++++++++
.../tests/featurebrowser/FeatureBrowser.java | 282 +++++++++++
.../tests/featurebrowser/FeatureBuffering.java | 110 +++++
.../tests/featurebrowser/FeatureButton.java | 87 ++++
.../tests/featurebrowser/FeatureContainers.java | 113 +++++
.../tests/featurebrowser/FeatureCustomLayout.java | 96 ++++
.../tests/featurebrowser/FeatureDateField.java | 126 +++++
.../tests/featurebrowser/FeatureEmbedded.java | 112 +++++
.../toolkit/tests/featurebrowser/FeatureForm.java | 191 ++++++++
.../tests/featurebrowser/FeatureFrameWindow.java | 166 +++++++
.../tests/featurebrowser/FeatureGridLayout.java | 93 ++++
.../toolkit/tests/featurebrowser/FeatureItems.java | 106 +++++
.../toolkit/tests/featurebrowser/FeatureLabel.java | 95 ++++
.../toolkit/tests/featurebrowser/FeatureLink.java | 84 ++++
.../tests/featurebrowser/FeatureOrderedLayout.java | 95 ++++
.../toolkit/tests/featurebrowser/FeaturePanel.java | 87 ++++
.../tests/featurebrowser/FeatureParameters.java | 177 +++++++
.../tests/featurebrowser/FeatureProperties.java | 111 +++++
.../tests/featurebrowser/FeatureSelect.java | 106 +++++
.../tests/featurebrowser/FeatureTabSheet.java | 91 ++++
.../toolkit/tests/featurebrowser/FeatureTable.java | 218 +++++++++
.../tests/featurebrowser/FeatureTextField.java | 89 ++++
.../toolkit/tests/featurebrowser/FeatureTree.java | 184 ++++++++
.../tests/featurebrowser/FeatureUpload.java | 168 +++++++
.../toolkit/tests/featurebrowser/FeatureUtil.java | 31 ++
.../tests/featurebrowser/FeatureValidators.java | 106 +++++
.../tests/featurebrowser/FeatureWindow.java | 159 +++++++
.../tests/featurebrowser/FeaturesApplication.java | 56 +++
.../toolkit/tests/featurebrowser/IntroBasic.java | 98 ++++
.../tests/featurebrowser/IntroComponents.java | 102 ++++
.../tests/featurebrowser/IntroDataHandling.java | 97 ++++
.../tests/featurebrowser/IntroDataModel.java | 99 ++++
.../tests/featurebrowser/IntroItemContainers.java | 98 ++++
.../toolkit/tests/featurebrowser/IntroLayouts.java | 100 ++++
.../tests/featurebrowser/IntroTerminal.java | 74 +++
.../toolkit/tests/featurebrowser/IntroWelcome.java | 217 +++++++++
.../tests/featurebrowser/PropertyPanel.java | 516 +++++++++++++++++++++
.../toolkit/tests/featurebrowser/components.png | Bin 0 -> 184749 bytes
.../toolkit/tests/featurebrowser/icon_demo.png | Bin 0 -> 2428 bytes
.../toolkit/tests/featurebrowser/icon_intro.png | Bin 0 -> 2465 bytes
.../itmill/toolkit/tests/featurebrowser/itmill.gif | Bin 0 -> 6110 bytes
.../toolkit/tests/featurebrowser/itmill_spin.swf | Bin 0 -> 2991 bytes
.../toolkit/tests/featurebrowser/m-bullet-blue.gif | Bin 0 -> 8417 bytes
src/com/itmill/toolkit/tests/featurebrowser/m.gif | Bin 0 -> 1036 bytes
88 files changed, 4946 insertions(+), 4946 deletions(-)
delete mode 100644 src/com/itmill/toolkit/demo/features/Feature.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureBrowser.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureBuffering.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureButton.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureContainers.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureCustomLayout.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureDateField.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureEmbedded.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureForm.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureFrameWindow.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureGridLayout.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureItems.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureLabel.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureLink.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureOrderedLayout.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeaturePanel.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureParameters.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureProperties.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureSelect.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureTabSheet.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureTable.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureTextField.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureTree.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureUpload.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureUtil.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureValidators.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeatureWindow.java
delete mode 100644 src/com/itmill/toolkit/demo/features/FeaturesApplication.java
delete mode 100644 src/com/itmill/toolkit/demo/features/IntroBasic.java
delete mode 100644 src/com/itmill/toolkit/demo/features/IntroComponents.java
delete mode 100644 src/com/itmill/toolkit/demo/features/IntroDataHandling.java
delete mode 100644 src/com/itmill/toolkit/demo/features/IntroDataModel.java
delete mode 100644 src/com/itmill/toolkit/demo/features/IntroItemContainers.java
delete mode 100644 src/com/itmill/toolkit/demo/features/IntroLayouts.java
delete mode 100644 src/com/itmill/toolkit/demo/features/IntroTerminal.java
delete mode 100644 src/com/itmill/toolkit/demo/features/IntroWelcome.java
delete mode 100644 src/com/itmill/toolkit/demo/features/PropertyPanel.java
delete mode 100644 src/com/itmill/toolkit/demo/features/components.png
delete mode 100644 src/com/itmill/toolkit/demo/features/icon_demo.png
delete mode 100644 src/com/itmill/toolkit/demo/features/icon_intro.png
delete mode 100644 src/com/itmill/toolkit/demo/features/itmill.gif
delete mode 100644 src/com/itmill/toolkit/demo/features/itmill_spin.swf
delete mode 100644 src/com/itmill/toolkit/demo/features/m-bullet-blue.gif
delete mode 100644 src/com/itmill/toolkit/demo/features/m.gif
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/Feature.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureBrowser.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureBuffering.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureButton.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureContainers.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureCustomLayout.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureDateField.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureEmbedded.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureForm.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureFrameWindow.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureGridLayout.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureItems.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureLabel.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureLink.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureOrderedLayout.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeaturePanel.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureParameters.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureProperties.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureSelect.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureTabSheet.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureTable.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureTextField.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureTree.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureUpload.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureUtil.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureValidators.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeatureWindow.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/FeaturesApplication.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/IntroBasic.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/IntroComponents.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/IntroDataHandling.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/IntroDataModel.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/IntroItemContainers.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/IntroLayouts.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/IntroTerminal.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/IntroWelcome.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/components.png
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/icon_demo.png
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/icon_intro.png
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/itmill.gif
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/itmill_spin.swf
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/m-bullet-blue.gif
create mode 100644 src/com/itmill/toolkit/tests/featurebrowser/m.gif
(limited to 'src')
diff --git a/src/com/itmill/toolkit/demo/features/Feature.java b/src/com/itmill/toolkit/demo/features/Feature.java
deleted file mode 100644
index 8a38e6854f..0000000000
--- a/src/com/itmill/toolkit/demo/features/Feature.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.terminal.ClassResource;
-import com.itmill.toolkit.terminal.Resource;
-import com.itmill.toolkit.ui.*;
-
-public abstract class Feature extends CustomComponent {
-
- private static final String PROP_REMINDER_TEXT = ""
- + "
Note: Use Properties panel located at the top"
- + " right corner to try out how different properties affect"
- + " the presentation or functionality of currently selected component.";
-
- private boolean propsReminder = true;
-
- private OrderedLayout layout;
-
- private TabSheet ts;
-
- private boolean initialized = false;
-
- private static Resource sampleIcon;
-
- protected PropertyPanel propertyPanel;
-
- private Label javadoc;
-
- private Label description;
-
- /** Constuctor for the feature component */
- public Feature() {
- layout = new OrderedLayout(OrderedLayout.ORIENTATION_VERTICAL);
- setCompositionRoot(layout);
- }
-
- /**
- * Actual URL consists of "/doc/api/com/itmill/toolkit/"+url
- *
- * @param url
- */
- public void setJavadocURL(String url) {
- javadoc
- .setValue("");
- }
-
- /**
- * Feature component initialization is lazily done when the feature is
- * attached to application
- */
- public void attach() {
- super.attach();
-
- // Check if the feature is already initialized
- if (initialized)
- return;
- initialized = true;
-
- // Javadoc
- javadoc = new Label();
- javadoc.setContentMode(Label.CONTENT_XHTML);
-
- // Demo
- Component demo = getDemoComponent();
- if (demo != null)
- layout.addComponent(demo);
-
- ts = new TabSheet();
-
- ts.setWidth(100);
- ts.setWidthUnits(TabSheet.UNITS_PERCENTAGE);
- ts.setHeight(100);
- ts.setHeightUnits(TabSheet.UNITS_PERCENTAGE);
-
- // Description tab
- String title = getTitle();
- if (getDescriptionXHTML() != null) {
- OrderedLayout mainLayout = new OrderedLayout(
- OrderedLayout.ORIENTATION_VERTICAL);
- OrderedLayout layout = new OrderedLayout(
- OrderedLayout.ORIENTATION_HORIZONTAL);
- mainLayout.addComponent(layout);
- if (getImage() != null)
- layout.addComponent(new Embedded("", new ClassResource(
- getImage(), this.getApplication())));
- String label = "";
- label += getDescriptionXHTML();
- if (propsReminder)
- label += PROP_REMINDER_TEXT;
- if (title != null) {
- layout.addComponent(new Label("" + title + "
",
- Label.CONTENT_XHTML));
- }
- description = new Label(label, Label.CONTENT_XHTML);
- mainLayout.addComponent(description);
-
- ts.addTab(mainLayout, "Description", null);
- }
-
- // Properties table tab
- ts.addTab(getPropertyPanel().getAllProperties(), "Properties", null);
-
- // Javadoc tab
- if (!javadoc.getValue().equals(""))
- ts.addTab(javadoc, "Javadoc", null);
-
- // Code Sample tab
- String example = getExampleSrc();
- if (example != null) {
- OrderedLayout l = new OrderedLayout();
- if (getTitle() != null)
- l.addComponent(new Label(
- "// " + getTitle() + " example",
- Label.CONTENT_XHTML));
- l.addComponent(new Label(example, Label.CONTENT_PREFORMATTED));
- ts.addTab(l, "Code Sample", null);
- }
-
- }
-
- /** Get the desctiption of the feature as XHTML fragment */
- protected String getDescriptionXHTML() {
- return "Feature description is under construction
";
- }
-
- /** Get the title of the feature */
- protected String getTitle() {
- return this.getClass().getName();
- }
-
- public TabSheet getTabSheet() {
- return ts;
- }
-
- /** Get the name of the image file that will be put on description page */
- protected String getImage() {
- return null;
- }
-
- /** Get the example application source code */
- protected String getExampleSrc() {
- return null;
- }
-
- /** Get the feature demo component */
- protected Component getDemoComponent() {
- return null;
- }
-
- /** Get sample icon resource */
- protected Resource getSampleIcon() {
- if (sampleIcon == null)
- sampleIcon = new ClassResource("m.gif", this.getApplication());
- return sampleIcon;
- }
-
- public PropertyPanel getPropertyPanel() {
- return propertyPanel;
- }
-
- public void setPropsReminder(boolean propsReminder) {
- this.propsReminder = propsReminder;
- }
-
- public void updateDescription() {
- String label = "";
- label += getDescriptionXHTML();
- if (propsReminder)
- label += PROP_REMINDER_TEXT;
- description.setValue(label);
- }
-
- // Fix for #512
- public Label getDescription() {
- return description;
- }
-
-}
\ No newline at end of file
diff --git a/src/com/itmill/toolkit/demo/features/FeatureBrowser.java b/src/com/itmill/toolkit/demo/features/FeatureBrowser.java
deleted file mode 100644
index 9b8efc08dc..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureBrowser.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import java.util.Iterator;
-import java.util.StringTokenizer;
-
-import com.itmill.toolkit.data.*;
-import com.itmill.toolkit.ui.*;
-import com.itmill.toolkit.ui.Button.ClickEvent;
-import com.itmill.toolkit.ui.Button.ClickListener;
-
-public class FeatureBrowser extends CustomComponent implements
- Property.ValueChangeListener, ClickListener, Layout {
-
- private Tree features;
-
- private Feature currentFeature = null;
-
- private CustomLayout mainlayout;
-
- private PropertyPanel properties;
-
- private boolean initialized = false;
-
- private Select themeSelector = new Select();
-
- public void attach() {
-
- if (initialized)
- return;
- initialized = true;
-
- // Configure tree
- features = new Tree();
- features.addContainerProperty("name", String.class, "");
- features.addContainerProperty("feature", Feature.class, null);
- features.setItemCaptionPropertyId("name");
- features.addListener(this);
- features.setImmediate(true);
- features.setStyle("menu");
-
- // Configure component layout
- mainlayout = new CustomLayout("featurebrowser-mainlayout");
- setCompositionRoot(mainlayout);
- mainlayout.addComponent(features, "tree");
-
- // Theme selector
- mainlayout.addComponent(themeSelector, "themes");
- themeSelector.addItem("demo");
-
- themeSelector.addListener(this);
- themeSelector.select("demo");
- themeSelector.setImmediate(true);
-
- // Restart button
- Button close = new Button("restart", getApplication(), "close");
- close.setStyle("link");
- mainlayout.addComponent(close, "restart");
-
- // Test component
- registerFeature("/Welcome", new IntroWelcome());
- registerFeature("/UI Components", new IntroComponents());
- registerFeature("/UI Components/Basic", new IntroBasic());
- registerFeature("/UI Components/Basic/Text Field",
- new FeatureTextField());
- registerFeature("/UI Components/Basic/Date Field",
- new FeatureDateField());
- registerFeature("/UI Components/Basic/Button", new FeatureButton());
- registerFeature("/UI Components/Basic/Form", new FeatureForm());
- registerFeature("/UI Components/Basic/Label", new FeatureLabel());
- registerFeature("/UI Components/Basic/Link", new FeatureLink());
- registerFeature("/UI Components/Item Containers",
- new IntroItemContainers());
- registerFeature("/UI Components/Item Containers/Select",
- new FeatureSelect());
- registerFeature("/UI Components/Item Containers/Table",
- new FeatureTable());
- registerFeature("/UI Components/Item Containers/Tree",
- new FeatureTree());
- registerFeature("/UI Components/Layouts", new IntroLayouts());
- registerFeature("/UI Components/Layouts/Ordered Layout",
- new FeatureOrderedLayout());
- registerFeature("/UI Components/Layouts/Grid Layout",
- new FeatureGridLayout());
- registerFeature("/UI Components/Layouts/Custom Layout",
- new FeatureCustomLayout());
- registerFeature("/UI Components/Layouts/Panel", new FeaturePanel());
- registerFeature("/UI Components/Layouts/Tab Sheet",
- new FeatureTabSheet());
- registerFeature("/UI Components/Layouts/Window", new FeatureWindow());
- // Disabled for now
- // registerFeature("/UI Components/Layouts/Frame Window",
- // new FeatureFrameWindow());
- registerFeature("/UI Components/Data handling", new IntroDataHandling());
- registerFeature("/UI Components/Data handling/Embedded Objects",
- new FeatureEmbedded());
- registerFeature("/UI Components/Data handling/Upload",
- new FeatureUpload());
- registerFeature("/Data Model", new IntroDataModel());
- registerFeature("/Data Model/Properties", new FeatureProperties());
- registerFeature("/Data Model/Items", new FeatureItems());
- registerFeature("/Data Model/Containers", new FeatureContainers());
- registerFeature("/Data Model/Validators", new FeatureValidators());
- registerFeature("/Data Model/Buffering", new FeatureBuffering());
- // registerFeature("/Terminal", new IntroTerminal());
- // registerFeature("/Terminal/Parameters and URI Handling",
- // new FeatureParameters());
-
- // Pre-open all menus
- for (Iterator i = features.getItemIds().iterator(); i.hasNext();)
- features.expandItem(i.next());
-
- // Add demo component and tabs
- currentFeature = new IntroWelcome();
- mainlayout.addComponent(currentFeature, "demo");
- mainlayout.addComponent(currentFeature.getTabSheet(), "tabsheet");
-
- // Add properties
- properties = currentFeature.getPropertyPanel();
- mainlayout.addComponent(properties, "properties");
- }
-
- public void registerFeature(String path, Feature feature) {
- StringTokenizer st = new StringTokenizer(path, "/");
- String id = "";
- String parentId = null;
- while (st.hasMoreTokens()) {
- String token = st.nextToken();
- id += "/" + token;
- if (!features.containsId(id)) {
- features.addItem(id);
- features.setChildrenAllowed(id, false);
- }
- features.getContainerProperty(id, "name").setValue(token);
- if (parentId != null) {
- features.setChildrenAllowed(parentId, true);
- features.setParent(id, parentId);
- }
- if (!st.hasMoreTokens())
- features.getContainerProperty(id, "feature").setValue(feature);
- parentId = id;
- }
- }
-
- public void valueChange(Property.ValueChangeEvent event) {
-
- // FIXME: navigation statistics
- try {
- if ((event.getProperty().toString() == null)
- && ((AbstractComponent) event.getProperty()).getTag()
- .equals("tree")) {
- // ignore tree initialization
- } else {
- FeatureUtil.debug(getApplication().getUser().toString(),
- "valueChange "
- + ((AbstractComponent) event.getProperty())
- .getTag() + ", " + event.getProperty());
- }
- } catch (Exception e) {
- // ignored, should never happen
- }
-
- // Change feature
- if (event.getProperty() == features) {
- Object id = features.getValue();
- if (id != null) {
- if (features.areChildrenAllowed(id))
- features.expandItem(id);
- Property p = features.getContainerProperty(id, "feature");
- Feature feature = p != null ? ((Feature) p.getValue()) : null;
- if (feature != null) {
- mainlayout.removeComponent(currentFeature);
- mainlayout.removeComponent(currentFeature.getTabSheet());
- mainlayout.addComponent(feature, "demo");
- mainlayout.addComponent(feature.getTabSheet(), "tabsheet");
- currentFeature = feature;
- properties = feature.getPropertyPanel();
- if (properties != null) {
- mainlayout.addComponent(properties, "properties");
- }
- getWindow()
- .setCaption(
- "IT Mill Toolkit Features / "
- + features.getContainerProperty(id,
- "name"));
- }
- }
- } else if (event.getProperty() == themeSelector) {
- getApplication().setTheme(themeSelector.toString());
- }
- }
-
- public void buttonClick(ClickEvent event) {
- // FIXME: navigation statistics
- try {
- FeatureUtil.debug(getApplication().getUser().toString(),
- "buttonClick " + event.getButton().getTag() + ", "
- + event.getButton().getCaption() + ", "
- + event.getButton().getValue());
- } catch (Exception e) {
- // ignored, should never happen
- }
-
- }
-
- public void addComponent(Component c) {
- // TODO Auto-generated method stub
-
- }
-
- public void addListener(ComponentAttachListener listener) {
- // TODO Auto-generated method stub
-
- }
-
- public void addListener(ComponentDetachListener listener) {
- // TODO Auto-generated method stub
-
- }
-
- public Iterator getComponentIterator() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void moveComponentsFrom(ComponentContainer source) {
- // TODO Auto-generated method stub
-
- }
-
- public void removeAllComponents() {
- // TODO Auto-generated method stub
-
- }
-
- public void removeComponent(Component c) {
- // TODO Auto-generated method stub
-
- }
-
- public void removeListener(ComponentAttachListener listener) {
- // TODO Auto-generated method stub
-
- }
-
- public void removeListener(ComponentDetachListener listener) {
- // TODO Auto-generated method stub
-
- }
-
- public void replaceComponent(Component oldComponent, Component newComponent) {
- // TODO Auto-generated method stub
-
- }
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureBuffering.java b/src/com/itmill/toolkit/demo/features/FeatureBuffering.java
deleted file mode 100644
index da345e5a5a..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureBuffering.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Select;
-
-public class FeatureBuffering extends Feature {
-
- private static final String INTRO_TEXT = ""
- + "IT Mill Toolkit data model provides interface for implementing "
- + "buffering in data components. The basic idea is that a component "
- + "reading their state from data source can implement "
- + "Buffered-interface, for storing the value internally. "
- + "Buffering provides transactional access "
- + "for setting data: data can be put to a component's buffer and "
- + "afterwards committed to or discarded by re-reding it from the data source. "
- + "The buffering can be used for creating interactive interfaces "
- + "as well as caching the data for performance reasons."
- + "
Buffered interface contains methods for committing and discarding "
- + "changes to an object and support for controlling buffering mode "
- + "with read-through and write-through modes. "
- + "Read-through mode means that the value read from the buffered "
- + "object is constantly up to date with the data source. "
- + "Respectively the write-through mode means that all changes to the object are "
- + "immediately updated to the data source.";
-
- public FeatureBuffering() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
- Panel panel = new Panel();
- panel.setCaption("Buffering");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(INTRO_TEXT);
-
- // Properties
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("data/Buffered.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return null;
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return null;
- }
-
- protected String getImage() {
- return null;
- }
-
- protected String getTitle() {
- return null;
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureButton.java b/src/com/itmill/toolkit/demo/features/FeatureButton.java
deleted file mode 100644
index 15e2865d04..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureButton.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.*;
-
-public class FeatureButton extends Feature {
-
- public FeatureButton() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Button b = new Button("Caption");
- l.addComponent(b);
-
- // Properties
- propertyPanel = new PropertyPanel(b);
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("link").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("link");
- Form ap = propertyPanel
- .createBeanPropertySet(new String[] { "switchMode" });
- propertyPanel.addProperties("Button Properties", ap);
-
- setJavadocURL("ui/Button.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "Button b = new Button(\"Caption\");\n";
-
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return "In IT Mill Toolkit, boolean input values are represented by buttons. "
- + "Buttons may function either as a push buttons or switches. (checkboxes)
"
- + "Button can be directly connected to any method of an object, which "
- + "is an easy way to trigger events: new Button(\"Play\", myPiano \"playIt\")
. "
- + "Or in checkbox-mode they can be bound to a boolean proterties and create "
- + " simple selectors.
"
- + "See the demo and try out how the different properties affect "
- + "the presentation of the component.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "Button";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureContainers.java b/src/com/itmill/toolkit/demo/features/FeatureContainers.java
deleted file mode 100644
index 5b3f5fe134..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureContainers.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Select;
-
-public class FeatureContainers extends Feature {
-
- private static final String INTRO_TEXT = ""
- + "Container is the most advanced of the data "
- + "model supported by IT Mill Toolkit. It provides a very flexible "
- + "way of managing set of items that share common properties. Each "
- + "item is identified by an item id. "
- + "Properties can be requested from container with item "
- + "and property ids. Other way of accessing properties is to first "
- + "request an item from container and then request its properties "
- + "from it."
- + "
Container interface was designed with flexibility and "
- + "efficiency in mind. It contains inner interfaces for ordering "
- + "the items sequentially, indexing the items and accessing them "
- + "hierarchically. Those ordering models provide basis for "
- + "Table, Tree and Select UI components. As with other data "
- + "models, the containers support events for notifying about the "
- + "changes."
- + "
Set of utilities for converting between container models by "
- + "adding external indexing or hierarchy into existing containers. "
- + "In memory containers implementing indexed and hierarchical "
- + "models provide easy to use tools for setting up in memory data "
- + "storages. There is even a hierarchical container for direct "
- + "file system access.";
-
- public FeatureContainers() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Panel panel = new Panel();
- panel.setCaption("Containers");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(INTRO_TEXT);
-
- // Properties
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("data/Container.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return null;
- }
-
- protected String getDescriptionXHTML() {
- return null;
- }
-
- protected String getImage() {
- return null;
- }
-
- protected String getTitle() {
- return null;
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureCustomLayout.java b/src/com/itmill/toolkit/demo/features/FeatureCustomLayout.java
deleted file mode 100644
index b491f406d7..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureCustomLayout.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.*;
-
-public class FeatureCustomLayout extends Feature {
-
- private static final String INTRO_TEXT = ""
- + "A container component with freely designed layout and style. The "
- + "container consists of items with textually represented locations. Each "
- + "item contains one sub-component. The adapter and theme are resposible "
- + "for rendering the layout with given style by placing the items on the "
- + "screen in defined locations."
- + "
The definition of locations is not fixed - the each style can define its "
- + "locations in a way that is suitable for it. One typical example would be "
- + "to create visual design for a website as a custom layout: the visual design "
- + "could define locations for \"menu\", \"body\" and \"title\" for example. "
- + "The layout would then be implemented e.g. as plain HTML file."
- + "
The default theme handles the styles that are not defined by just drawing "
- + "the subcomponents with flowlayout.";
-
- protected Component getDemoComponent() {
- OrderedLayout l = new OrderedLayout();
-
- Panel panel = new Panel();
- panel.setCaption("Custom Layout");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(INTRO_TEXT);
-
- // Properties
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("ui/CustomLayout.html");
-
- return l;
- }
-
- protected String getDescriptionXHTML() {
- return null;
- }
-
- protected String getExampleSrc() {
- return "CustomLayout c = new CustomLayout(\"mystyle\");\n"
- + "c.addComponent(new Label(\"Example description\"),\"label1-location\");\n"
- + "c.addComponent(new Button(\"Example action\"),\"example-action-location\");\n";
- }
-
- protected String getImage() {
- return null;
- }
-
- protected String getTitle() {
- return "Custom Layout";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureDateField.java b/src/com/itmill/toolkit/demo/features/FeatureDateField.java
deleted file mode 100644
index 915b3088a7..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureDateField.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import java.util.Locale;
-
-import com.itmill.toolkit.data.util.IndexedContainer;
-import com.itmill.toolkit.data.util.MethodProperty;
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.DateField;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Select;
-
-public class FeatureDateField extends Feature {
-
- static private String[] localeNames;
- static {
- Locale[] locales = Locale.getAvailableLocales();
- localeNames = new String[locales.length];
- for (int i = 0; i < locales.length; i++)
- localeNames[i] = locales[i].getDisplayName();
- }
-
- public FeatureDateField() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- l.addComponent(new Label("Your default locale is: "
- + this.getApplication().getLocale().toString()
- .replace('_', '-')));
-
- DateField df = new DateField();
- df.setValue(new java.util.Date());
- l.addComponent(df);
-
- // Properties
- propertyPanel = new PropertyPanel(df);
- Form ap = propertyPanel.createBeanPropertySet(new String[] {
- "resolution", "locale" });
- ap.replaceWithSelect("resolution", new Object[] {
- new Integer(DateField.RESOLUTION_YEAR),
- new Integer(DateField.RESOLUTION_MONTH),
- new Integer(DateField.RESOLUTION_DAY),
- new Integer(DateField.RESOLUTION_HOUR),
- new Integer(DateField.RESOLUTION_MIN),
- new Integer(DateField.RESOLUTION_SEC),
- new Integer(DateField.RESOLUTION_MSEC) }, new Object[] {
- "Year", "Month", "Day", "Hour", "Minute", "Second",
- "Millisecond" });
- ap.replaceWithSelect("locale", Locale.getAvailableLocales(),
- localeNames);
- ap.getField("resolution").setValue(
- new Integer(DateField.RESOLUTION_DAY));
- ap.getField("locale").setValue(Locale.getDefault());
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("text").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("text");
- themes.addItem("calendar").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("calendar");
- propertyPanel.addProperties("DateField Properties", ap);
-
- setJavadocURL("ui/DateField.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "DateField df = new DateField(\"Caption\");\n"
- + "df.setValue(new java.util.Date());\n";
- }
-
- protected String getDescriptionXHTML() {
- return "Representing Dates and times and providing a way to select "
- + "or enter some specific date and/or time is an typical need in "
- + "data-entry user interfaces (UI). IT Mill Toolkit provides a DateField "
- + "component that is intuitive to use and yet controllable through "
- + "its properties."
- + "
The calendar-style allows point-and-click selection "
- + "of dates while text-style shows only minimalistic user interface."
- + " Validators may be bound to the component to check and "
- + "validate the given input."
- + "
On the demo tab you can try out how the different properties affect the "
- + "presentation of the component.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "DateField";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureEmbedded.java b/src/com/itmill/toolkit/demo/features/FeatureEmbedded.java
deleted file mode 100644
index eff7f51953..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureEmbedded.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.terminal.ClassResource;
-import com.itmill.toolkit.terminal.Sizeable;
-import com.itmill.toolkit.ui.*;
-
-public class FeatureEmbedded extends Feature {
-
- public FeatureEmbedded() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- ClassResource flashResource = new ClassResource("itmill_spin.swf",
- getApplication());
- Embedded emb = new Embedded("Embedded Caption", flashResource);
- emb.setType(Embedded.TYPE_OBJECT);
- emb.setMimeType("application/x-shockwave-flash");
- emb.setWidth(250);
- emb.setHeight(100);
- l.addComponent(emb);
-
- // Properties
- propertyPanel = new PropertyPanel(emb);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "type",
- "source", "width", "height", "widthUnits", "heightUnits",
- "codebase", "codetype", "archive", "mimeType", "standby",
- "classId" });
- ap.replaceWithSelect("type", new Object[] {
- new Integer(Embedded.TYPE_IMAGE),
- new Integer(Embedded.TYPE_OBJECT) }, new Object[] { "Image",
- "Object" });
- Object[] units = new Object[Sizeable.UNIT_SYMBOLS.length];
- Object[] symbols = new Object[Sizeable.UNIT_SYMBOLS.length];
- for (int i = 0; i < units.length; i++) {
- units[i] = new Integer(i);
- symbols[i] = Sizeable.UNIT_SYMBOLS[i];
- }
- ap.replaceWithSelect("heightUnits", units, symbols);
- ap.replaceWithSelect("widthUnits", units, symbols);
- ap.replaceWithSelect("source", new Object[] { flashResource },
- new Object[] { "itmill_spin.swf" });
- propertyPanel.addProperties("Embedded Properties", ap);
- propertyPanel.getField("standby").setDescription(
- "The text to display while loading the object.");
- propertyPanel.getField("codebase").setDescription(
- "root-path used to access resources with relative paths.");
- propertyPanel.getField("codetype").setDescription(
- "MIME-type of the code.");
- propertyPanel
- .getField("classId")
- .setDescription(
- "Unique object id. This can be used for example to identify windows components.");
-
- setJavadocURL("ui/Embedded.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "// Load image from jpg-file, that is in the same package with the application\n"
- + "Embedded e = new Embedded(\"Image title\",\n"
- + " new ClassResource(\"image.jpg\", getApplication()));";
- }
-
- protected String getDescriptionXHTML() {
- return "The embedding feature allows for adding images, multimedia and other non-specified "
- + "content to your application. "
- + "The feature has provisions for embedding both applets and Active X controls. "
- + "Actual support for embedded media types is left to the terminal.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "Embedded";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureForm.java b/src/com/itmill/toolkit/demo/features/FeatureForm.java
deleted file mode 100644
index 52bdc589da..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureForm.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import java.util.Date;
-
-import com.itmill.toolkit.data.Property;
-import com.itmill.toolkit.ui.*;
-
-public class FeatureForm extends Feature implements
- Property.ValueChangeListener {
-
- OrderedLayout demo = null;
-
- Form test;
-
- Layout formLayout = null;
-
- Select addField = new Select("Add field");
-
- Select resetLayout = new Select("Restart");
-
- protected Component getDemoComponent() {
-
- if (demo == null) {
- demo = new OrderedLayout();
- createDemo();
- }
-
- setJavadocURL("ui/Form.html");
-
- return demo;
- }
-
- private void createDemo() {
-
- demo.removeAllComponents();
-
- // Test form
- if (formLayout == null)
- test = new Form();
- else
- test = new Form(formLayout);
-
- demo.addComponent(test);
- OrderedLayout actions = new OrderedLayout(
- OrderedLayout.ORIENTATION_HORIZONTAL);
- demo.addComponent(actions);
-
- // form adder
- addField.setImmediate(true);
- addField.addItem("Add field");
- addField.setNullSelectionItemId("Add field");
- addField.addItem("Text field");
- addField.addItem("Time");
- addField.addItem("Option group");
- addField.addItem("Calendar");
- addField.addListener(this);
- actions.addComponent(addField);
-
- // Layout reset
- resetLayout.setImmediate(true);
- resetLayout.addItem("Select layout example");
- resetLayout.setNullSelectionItemId("Select layout example");
- resetLayout.addItem("Vertical form (OrderedLayout form-style)");
- resetLayout.addItem("Two columns (2x1 GridLayout)");
- resetLayout.addItem("Flow (OrderedLayout flow-orientation)");
- resetLayout.addListener(this);
- actions.addComponent(resetLayout);
-
- // Properties
- propertyPanel = new PropertyPanel(test);
- propertyPanel.addProperties("Form special properties", new Form());
- }
-
- public void valueChange(Property.ValueChangeEvent event) {
-
- if (event.getProperty() == resetLayout) {
-
- String value = (String) resetLayout.getValue();
-
- if (value != null) {
- formLayout = null;
-
- if (value.equals("Two columns (2x1 GridLayout)"))
- formLayout = new GridLayout(2, 1);
- if (value.equals("Horizontal (OrderedLayout)"))
- formLayout = new OrderedLayout(
- OrderedLayout.ORIENTATION_HORIZONTAL);
-
- createDemo();
- resetLayout.setValue(null);
- }
- }
-
- if (event.getProperty() == addField) {
-
- String value = (String) addField.getValue();
-
- if (value != null) {
- if (value.equals("Text field"))
- test.addField(new Object(), new TextField("Test field"));
- if (value.equals("Time")) {
- DateField d = new DateField("Time", new Date());
- d
- .setDescription("This is a DateField-component with text-style");
- d.setResolution(DateField.RESOLUTION_MIN);
- d.setStyle("text");
- test.addField(new Object(), d);
- }
- if (value.equals("Calendar")) {
- DateField c = new DateField("Calendar", new Date());
- c
- .setDescription("DateField-component with calendar-style and day-resolution");
- c.setStyle("calendar");
- c.setResolution(DateField.RESOLUTION_DAY);
- test.addField(new Object(), c);
- }
- if (value.equals("Option group")) {
- Select s = new Select("Options");
- s.setDescription("Select-component with optiongroup-style");
- s.addItem("Linux");
- s.addItem("Windows");
- s.addItem("Solaris");
- s.addItem("Symbian");
- s.setStyle("optiongroup");
-
- test.addField(new Object(), s);
- }
-
- addField.setValue(null);
- }
- }
- }
-
- protected String getDescriptionXHTML() {
- return "Form is a flexible, yet simple container for fields. "
- + " It provides support for any layouts and provides buffering interface for"
- + " easy connection of commit- and discard buttons. All the form"
- + " fields can be customized by adding validators, setting captions and icons, "
- + " setting immediateness, etc. Also direct mechanism for replacing existing"
- + " fields with selections is given."
- + "
Form provides customizable editor for classes implementing"
- + " Item-interface. Also the form itself"
- + " implements this interface for easier connectivity to other items."
- + " To use the form as editor for an item, just connect the item to"
- + " form.After the item has been connected to the form,"
- + " the automatically created fields can be customized and new fields can"
- + " be added. If you need to connect a class that does not implement"
- + " Item-interface, most properties of any"
- + " class following bean pattern, can be accessed trough"
- + " BeanItem."
- + "
The best example of Form usage is the this feature browser itself; "
- + " all the Property-panels in demos are composed of Form-components.";
- }
-
- protected String getTitle() {
- return "Form";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureFrameWindow.java b/src/com/itmill/toolkit/demo/features/FeatureFrameWindow.java
deleted file mode 100644
index c68235c36e..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureFrameWindow.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import java.util.HashMap;
-import java.util.List;
-
-import com.itmill.toolkit.ui.*;
-import com.itmill.toolkit.ui.Button.ClickEvent;
-
-public class FeatureFrameWindow extends Feature implements Button.ClickListener {
-
- private Button addButton = new Button("Add to application", this, "addWin");
-
- private Button removeButton = new Button("Remove from application", this,
- "delWin");
-
- private FrameWindow demoWindow;
-
- private HashMap windowToFramesetMap = new HashMap();
-
- private int count = 0;
-
- protected Component getDemoComponent() {
- OrderedLayout l = new OrderedLayout();
- demoWindow = new FrameWindow("Feature Test Window");
- demoWindow.getFrameset()
- .newFrame(createFrame(demoWindow.getFrameset()));
-
- l.addComponent(addButton);
- l.addComponent(removeButton);
- updateWinStatus();
-
- // Properties
- propertyPanel = new PropertyPanel(demoWindow);
- propertyPanel.dependsOn(addButton);
- propertyPanel.dependsOn(removeButton);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height", "name", "border", "theme" });
- ap.replaceWithSelect("border", new Object[] {
- new Integer(Window.BORDER_DEFAULT),
- new Integer(Window.BORDER_NONE),
- new Integer(Window.BORDER_MINIMAL) }, new Object[] { "Default",
- "None", "Minimal" });
-
- propertyPanel.addProperties("FrameWindow Properties", ap);
-
- setJavadocURL("ui/FrameWindow.html");
-
- return l;
- }
-
- protected String getDescriptionXHTML() {
- return "This component implements a window that contains a hierarchical set of frames. "
- + "Each frame can contain a web-page, window or a set of frames that divides the space "
- + "horizontally or vertically.
";
- }
-
- protected String getExampleSrc() {
- return "FrameWindow f = new FrameWindow(\"Frame example\");\n"
- + "f.getFrameset().newFrame(window);\n"
- + "f.getFrameset().newFrame(resource,\"targetName\");\n";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "FrameWindow";
- }
-
- public void addWin() {
- getApplication().addWindow(demoWindow);
- updateWinStatus();
- }
-
- public void delWin() {
- getApplication().removeWindow(demoWindow);
- updateWinStatus();
- }
-
- private void updateWinStatus() {
- if (demoWindow.getApplication() == null) {
- addButton.setEnabled(true);
- removeButton.setEnabled(false);
- } else {
- addButton.setEnabled(false);
- removeButton.setEnabled(true);
- }
- }
-
- public void buttonClick(ClickEvent event) {
-
- if (event.getButton().getCaption().equals("Remove")) {
- Window w = event.getButton().getWindow();
- FrameWindow.Frameset fs = (FrameWindow.Frameset) windowToFramesetMap
- .get(w);
- if (fs == demoWindow.getFrameset() && fs.size() <= 1) {
- // Do not remove the last frame
- } else if (fs.size() > 1) {
- fs.removeFrame(fs.getFrame(w.getName()));
- windowToFramesetMap.remove(w);
- } else {
- FrameWindow.Frameset p = fs.getParentFrameset();
- if (p != demoWindow.getFrameset() || p.size() > 1)
- p.removeFrame(fs);
- if (p.size() == 0)
- p.newFrame(createFrame(p));
- }
- }
-
- if (event.getButton().getCaption().equals("Split")) {
- Window w = event.getButton().getWindow();
- FrameWindow.Frameset fs = (FrameWindow.Frameset) windowToFramesetMap
- .get(w);
- int index = 0;
- List l = fs.getFrames();
- while (index < l.size() && fs.getFrame(index).getWindow() != w)
- index++;
- fs.removeFrame(fs.getFrame(w.getName()));
- windowToFramesetMap.remove(w);
- if (index > fs.size())
- index = fs.size();
- fs = fs.newFrameset((Math.random() > 0.5), index);
- for (int i = 2 + (int) (Math.random() * 2.0); i > 0; i--)
- fs.newFrame(createFrame(fs));
- }
- }
-
- private Window createFrame(FrameWindow.Frameset fs) {
- Window w = new Window();
- w.addComponent(new Label("Frame: " + (++count) + "",
- Label.CONTENT_UIDL));
- w.addComponent(new Button("Split", this));
- w.addComponent(new Button("Remove", this));
- windowToFramesetMap.put(w, fs);
- return w;
- }
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureGridLayout.java b/src/com/itmill/toolkit/demo/features/FeatureGridLayout.java
deleted file mode 100644
index 3ef95bd711..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureGridLayout.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import java.util.Date;
-
-import com.itmill.toolkit.ui.*;
-
-public class FeatureGridLayout extends Feature {
-
- public FeatureGridLayout() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- GridLayout gl = new GridLayout(3, 3);
- DateField cal = new DateField("Test component 1", new Date());
- cal.setStyle("calendar");
- gl.addComponent(cal, 1, 0, 2, 1);
- for (int i = 2; i < 7; i++)
- gl.addComponent(new TextField("Test component " + i));
- l.addComponent(gl);
-
- // Properties
- propertyPanel = new PropertyPanel(gl);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- ap.addField("new line", new Button("New Line", gl, "newLine"));
- ap.addField("space", new Button("Space", gl, "space"));
- propertyPanel.addProperties("GridLayout Features", ap);
- propertyPanel.getField("height").dependsOn(
- propertyPanel.getField("add component"));
-
- setJavadocURL("ui/GridLayout.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "GridLayout gl = new GridLayout(2,2);\n"
- + "gl.addComponent(new Label(\"Label 1 in GridLayout\"));\n"
- + "gl.addComponent(new Label(\"Label 2 in GridLayout\"));\n"
- + "gl.addComponent(new Label(\"Label 3 in GridLayout\"));\n"
- + "gl.addComponent(new Label(\"Label 4 in GridLayout\"));\n";
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return "This feature provides a container that lays out components "
- + "into a grid of given width and height."
- + "
On the demo tab you can try out how the different "
- + "properties affect the presentation of the component.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "GridLayout";
- }
-}
\ No newline at end of file
diff --git a/src/com/itmill/toolkit/demo/features/FeatureItems.java b/src/com/itmill/toolkit/demo/features/FeatureItems.java
deleted file mode 100644
index c3d604f48d..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureItems.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Select;
-
-public class FeatureItems extends Feature {
-
- private static final String INTRO_TEXT = ""
- + "Item is an object, which contains a set of named "
- + "properties. Each property is identified by an "
- + "id and a reference to the property can be queried from the Item. "
- + "Item defines inner-interfaces for maintaining the item property "
- + "set and listening the item property set changes."
- + "
Items generally represent objects in the object-oriented "
- + "model, but with the exception that they are configurable "
- + "and provide an event mechanism. The simplest way of utilizing "
- + "Item interface is to use existing Item implementations. "
- + "Provided utility classes include configurable property set,"
- + " bean to item adapter and Form UI component.";
-
- public FeatureItems() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Panel panel = new Panel();
- panel.setCaption("Items");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(INTRO_TEXT);
-
- // Properties
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("data/Item.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return null;
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return null;
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "Introduction of Data Model Item";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureLabel.java b/src/com/itmill/toolkit/demo/features/FeatureLabel.java
deleted file mode 100644
index 742e90e45c..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureLabel.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.*;
-
-public class FeatureLabel extends Feature {
-
- public FeatureLabel() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Label lab = new Label("Label text");
- l.addComponent(lab);
-
- // Properties
- propertyPanel = new PropertyPanel(lab);
- Form ap = propertyPanel.createBeanPropertySet(new String[] {
- "contentMode", "value" });
- ap.replaceWithSelect("contentMode", new Object[] {
- new Integer(Label.CONTENT_PREFORMATTED),
- new Integer(Label.CONTENT_TEXT),
- new Integer(Label.CONTENT_UIDL),
- new Integer(Label.CONTENT_XHTML),
- new Integer(Label.CONTENT_XML) },
- new Object[] { "Preformatted", "Text", "UIDL (Must be valid)",
- "XHTML Fragment(Must be valid)",
- "XML (Subtree with namespace)" });
- propertyPanel.addProperties("Label Properties", ap);
-
- setJavadocURL("ui/Label.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "Label l = new Label(\"Caption\");\n";
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return "Labels components are for captions and plain text. "
- + "By default, it is a light-weight component for presenting "
- + "text content in application, but it can be also used to present "
- + "formatted information and even XML."
- + "
"
- + "Label can also be directly associated with data property to display "
- + "information from different data sources automatically. This makes it "
- + "trivial to present the current user in the corner of applications main window. "
- + "
"
- + "On the demo tab you can try out how the different properties affect "
- + "the presentation of the component.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "Label";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureLink.java b/src/com/itmill/toolkit/demo/features/FeatureLink.java
deleted file mode 100644
index 350ec604a6..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureLink.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.terminal.ExternalResource;
-import com.itmill.toolkit.ui.*;
-
-public class FeatureLink extends Feature {
-
- public FeatureLink() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Link lnk = new Link("Link caption", new ExternalResource(
- "http://www.itmill.com"));
- l.addComponent(lnk);
-
- // Properties
- propertyPanel = new PropertyPanel(lnk);
- Form ap = propertyPanel.createBeanPropertySet(new String[] {
- "targetName", "targetWidth", "targetHeight", "targetBorder" });
- ap.replaceWithSelect("targetBorder", new Object[] {
- new Integer(Link.TARGET_BORDER_DEFAULT),
- new Integer(Link.TARGET_BORDER_MINIMAL),
- new Integer(Link.TARGET_BORDER_NONE) }, new Object[] {
- "Default", "Minimal", "None" });
- propertyPanel.addProperties("Link Properties", ap);
-
- setJavadocURL("ui/Link.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "Link link = new Link(\"Link caption\",new ExternalResource(\"http://www.itmill.com\"));\n";
- }
-
- protected String getDescriptionXHTML() {
- return "The link feature allows for making refences to both internal and external resources. "
- + "The link can open the new resource in a new window, allowing for control of the newly "
- + "opened windows attributes, such as size and border. "
- + "
"
- + " For example you can create an application pop-up or create link to external resources.";
-
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "Link";
- }
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureOrderedLayout.java b/src/com/itmill/toolkit/demo/features/FeatureOrderedLayout.java
deleted file mode 100644
index c36e459261..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureOrderedLayout.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.*;
-
-public class FeatureOrderedLayout extends Feature {
-
- public FeatureOrderedLayout() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- OrderedLayout ol = new OrderedLayout();
- for (int i = 1; i < 5; i++)
- ol.addComponent(new TextField("Test component " + i));
- l.addComponent(ol);
-
- // Properties
- propertyPanel = new PropertyPanel(ol);
- Form ap = propertyPanel
- .createBeanPropertySet(new String[] { "orientation" });
- ap.replaceWithSelect("orientation", new Object[] {
- new Integer(OrderedLayout.ORIENTATION_HORIZONTAL),
- new Integer(OrderedLayout.ORIENTATION_VERTICAL) },
- new Object[] { "Horizontal", "Vertical" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("form").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("form");
- propertyPanel.addProperties("OrderedLayout Properties", ap);
-
- setJavadocURL("ui/OrderedLayout.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "OrderedLayout ol = new OrderedLayout(OrderedLayout.ORIENTATION_FLOW);\n"
- + "ol.addComponent(new TextField(\"Textfield caption\"));\n"
- + "ol.addComponent(new Label(\"Label\"));\n";
-
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return "This feature provides a container for laying out components either "
- + "vertically, horizontally or flowingly. The orientation may be changed "
- + "during runtime. It also defines a special style for themes to implement called \"form\""
- + "that is used for input forms where the components are laid-out side-by-side "
- + "with their captions."
- + "
"
- + "On the demo tab you can try out how the different properties "
- + "affect the presentation of the component.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "OrderedLayout";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeaturePanel.java b/src/com/itmill/toolkit/demo/features/FeaturePanel.java
deleted file mode 100644
index 1213a04e41..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeaturePanel.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.*;
-
-public class FeaturePanel extends Feature {
-
- public FeaturePanel() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- // Example panel
- Panel show = new Panel("Panel caption");
- show
- .addComponent(new Label(
- "This is an example Label component that is added into Panel."));
- l.addComponent(show);
-
- // Properties
- propertyPanel = new PropertyPanel(show);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("ui/Panel.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "Panel show = new Panel(\"Panel caption\");\n"
- + "show.addComponent(new Label(\"This is an example Label component that is added into Panel.\"));";
-
- }
-
- protected String getDescriptionXHTML() {
- return "Panel is a container for other components, by default it draws a frame around it's "
- + "extremities and may have a caption to clarify the nature of the contained components' purpose."
- + " Panel contains an layout where the actual contained components are added, "
- + "this layout may be switched on the fly.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "Panel";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureParameters.java b/src/com/itmill/toolkit/demo/features/FeatureParameters.java
deleted file mode 100644
index b00621f5c4..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureParameters.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import java.net.URL;
-import java.util.Iterator;
-import java.util.Map;
-
-import com.itmill.toolkit.terminal.DownloadStream;
-import com.itmill.toolkit.terminal.ExternalResource;
-import com.itmill.toolkit.terminal.ParameterHandler;
-import com.itmill.toolkit.terminal.URIHandler;
-import com.itmill.toolkit.ui.*;
-
-public class FeatureParameters extends Feature implements URIHandler,
- ParameterHandler {
-
- private Label context = new Label();
-
- private Label relative = new Label();
-
- private Table params = new Table();
-
- public FeatureParameters() {
- super();
- params.addContainerProperty("Values", String.class, "");
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Label info = new Label("To test this feature, try to "
- + "add some get parameters to URL. For example if you have "
- + "the feature browser installed in your local host, try url: ");
- info.setCaption("Usage info");
- l.addComponent(info);
- try {
- URL u1 = new URL(getApplication().getURL(),
- "test/uri?test=1&test=2");
- URL u2 = new URL(getApplication().getURL(),
- "foo/bar?mary=john&count=3");
-
- l.addComponent(new Link(u1.toString(), new ExternalResource(u1)));
- l.addComponent(new Label("Or this: "));
- l.addComponent(new Link(u2.toString(), new ExternalResource(u2)));
- } catch (Exception e) {
- System.out.println("Couldn't get hostname for this machine: "
- + e.toString());
- e.printStackTrace();
- }
-
- // URI
- Panel p1 = new Panel("URI Handler");
- context.setCaption("Last URI handler context");
- p1.addComponent(context);
- relative.setCaption("Last relative URI");
- p1.addComponent(relative);
- l.addComponent(p1);
-
- // Parameters
- Panel p2 = new Panel("Parameter Handler");
- params.setCaption("Last parameters");
- params.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_ID);
- params.setRowHeaderMode(Table.ROW_HEADER_MODE_ID);
- p2.addComponent(params);
- l.addComponent(p2);
-
- // Properties
- propertyPanel = new PropertyPanel(p1);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("ui/Panel.html");
-
- return l;
- }
-
- protected String getDescriptionXHTML() {
- return "This is a demonstration of how URL parameters can be recieved and handled."
- + "Parameters and URL:s can be received trough the windows by registering "
- + "URIHandler and ParameterHandler classes window.";
- }
-
- protected String getImage() {
- return "parameters.jpg";
- }
-
- protected String getTitle() {
- return "Parameters";
- }
-
- /**
- * Add URI and parametes handlers to window.
- *
- * @see com.itmill.toolkit.ui.Component#attach()
- */
- public void attach() {
- super.attach();
- getWindow().addURIHandler(this);
- getWindow().addParameterHandler(this);
- }
-
- /**
- * Remove all handlers from window
- *
- * @see com.itmill.toolkit.ui.Component#detach()
- */
- public void detach() {
- super.detach();
- getWindow().removeURIHandler(this);
- getWindow().removeParameterHandler(this);
- }
-
- /**
- * Update URI
- *
- * @see com.itmill.toolkit.terminal.URIHandler#handleURI(URL, String)
- */
- public DownloadStream handleURI(URL context, String relativeUri) {
- this.context.setValue(context.toString());
- this.relative.setValue(relativeUri);
- return null;
- }
-
- /**
- * Update parameters table
- *
- * @see com.itmill.toolkit.terminal.ParameterHandler#handleParameters(Map)
- */
- public void handleParameters(Map parameters) {
- params.removeAllItems();
- for (Iterator i = parameters.keySet().iterator(); i.hasNext();) {
- String name = (String) i.next();
- String[] values = (String[]) parameters.get(name);
- String v = "";
- for (int j = 0; j < values.length; j++) {
- if (v.length() > 0)
- v += ", ";
- v += "'" + values[j] + "'";
- }
- params.addItem(new Object[] { v }, name);
- }
- }
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureProperties.java b/src/com/itmill/toolkit/demo/features/FeatureProperties.java
deleted file mode 100644
index 4d6b013378..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureProperties.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Select;
-
-public class FeatureProperties extends Feature {
-
- private static final String INTRO_TEXT = ""
- + "IT Mill Toolkit data model is one of the core concepts "
- + "in the library and Property-interface is the base of that "
- + "model. Property provides standardized API for a single data object "
- + "that can be read (get) and written (set). A property is always typed, but can optionally "
- + "support data type conversions. Optionally properties can provide "
- + "value change events for following the state changes."
- + "
The most important function of the Property as well as other "
- + "data models is to connect classes implementing the interface directly to "
- + "editor and viewer classes. Typically this is used to connect different "
- + "data sources to UI components for editing and viewing their contents."
- + "
Properties can be utilized either by implementing the interface "
- + "or by using some of the existing property implementations. IT Mill Toolkit "
- + "includes Property interface implementations for "
- + "arbitrary function pairs or Bean-properties as well as simple object "
- + "properties."
- + "
Many of the UI components also implement Property interface and allow "
- + "setting of other components as their data-source. These UI-components "
- + "include TextField, DateField, Select, Table, Button, "
- + "Label and Tree.";
-
- public FeatureProperties() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Panel panel = new Panel();
- panel.setCaption("Data Model");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(INTRO_TEXT);
-
- // Properties
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("data/Property.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return null;
- }
-
- protected String getDescriptionXHTML() {
- return null;
- }
-
- protected String getImage() {
- return null;
- }
-
- protected String getTitle() {
- return null;
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureSelect.java b/src/com/itmill/toolkit/demo/features/FeatureSelect.java
deleted file mode 100644
index c27265f4c7..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureSelect.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.*;
-
-public class FeatureSelect extends Feature {
-
- private static final String[] firstnames = new String[] { "John", "Mary",
- "Joe", "Sarah", "Jeff", "Jane", "Peter", "Marc", "Robert", "Paula",
- "Lenny", "Kenny", "Nathan", "Nicole", "Laura", "Jos", "Josie",
- "Linus" };
-
- private static final String[] lastnames = new String[] { "Torvalds",
- "Smith", "Adams", "Black", "Wilson", "Richards", "Thompson",
- "McGoff", "Halas", "Jones", "Beck", "Sheridan", "Picard", "Hill",
- "Fielding", "Einstein" };
-
- public FeatureSelect() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Select s = new Select("Select employee");
- for (int i = 0; i < 50; i++)
- s
- .addItem(firstnames[(int) (Math.random() * (firstnames.length - 1))]
- + " "
- + lastnames[(int) (Math.random() * (lastnames.length - 1))]);
- l.addComponent(s);
-
- // Properties
- propertyPanel = new PropertyPanel(s);
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("optiongroup").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("optiongroup");
- themes.addItem("twincol").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("twincol");
-
- setJavadocURL("ui/Select.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "Select s = new Select(\"Select Car\");\n"
- + "s.addItem(\"Audi\");\n" + "s.addItem(\"BMW\");\n"
- + "s.addItem(\"Chrysler\");\n" + "s.addItem(\"Volvo\");\n";
-
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return "The select component combines two different modes of item selection. "
- + "Firstly it presents the single selection mode, which is usually represented as "
- + "either a drop-down menu or a radio-group of switches, secondly it "
- + "allows for multiple item selection, this is usually represented as either a "
- + "listbox of selectable items or as a group of checkboxes."
- + "
"
- + "Data source can be associated both with selected item and the list of selections. "
- + "This way you can easily present a selection based on items specified elsewhere in application. "
- + "
"
- + "On the demo tab you can try out how the different properties affect the"
- + " presentation of the component.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "Select";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureTabSheet.java b/src/com/itmill/toolkit/demo/features/FeatureTabSheet.java
deleted file mode 100644
index 0e23d820bc..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureTabSheet.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.*;
-
-public class FeatureTabSheet extends Feature {
-
- public FeatureTabSheet() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- TabSheet ts = new TabSheet();
- ts
- .addTab(
- new Label(
- "This is an example Label component that is added into Tab 1."),
- "Tab 1 caption", null);
- ts
- .addTab(
- new Label(
- "This is an example Label component that is added into Tab 2."),
- "Tab 2 caption", null);
- ts
- .addTab(
- new Label(
- "This is an example Label component that is added into Tab 3."),
- "Tab 3 caption", null);
- l.addComponent(ts);
-
- // Properties
- propertyPanel = new PropertyPanel(ts);
-
- setJavadocURL("ui/TabSheet.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "TabSheet ts = new TabSheet();\n"
- + "ts.addTab(new Label(\"This is an example Label component that is added into Tab 1.\"),\"Tab 1 caption\",null);\n"
- + "ts.addTab(new Label(\"This is an example Label component that is added into Tab 2.\"),\"Tab 2 caption\",null);\n"
- + "ts.addTab(new Label(\"This is an example Label component that is added into Tab 3.\"),\"Tab 3 caption\",null);";
- }
-
- protected String getDescriptionXHTML() {
- return "A multicomponent container with tabs for switching between them.
"
- + "In the normal case, one would place a layout component on each tab.
"
- + "On the demo tab you can try out how the different properties affect "
- + "the presentation of the component.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "TabSheet";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureTable.java b/src/com/itmill/toolkit/demo/features/FeatureTable.java
deleted file mode 100644
index b24419c003..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureTable.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.event.Action;
-import com.itmill.toolkit.ui.Button;
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Select;
-import com.itmill.toolkit.ui.Table;
-
-public class FeatureTable extends Feature implements Action.Handler {
-
- private static final String[] firstnames = new String[] { "John", "Mary",
- "Joe", "Sarah", "Jeff", "Jane", "Peter", "Marc", "Josie", "Linus" };
-
- private static final String[] lastnames = new String[] { "Torvalds",
- "Smith", "Jones", "Beck", "Sheridan", "Picard", "Hill", "Fielding",
- "Einstein" };
-
- private static final String[] title = new String[] { "Project Manager",
- "Marketing Manager", "Sales Manager", "Trainer", "IT Support",
- "Account Manager", "Customer Support", "Testing Engineer",
- "Software Designer", "Programmer", "Consultant" };
-
- private static final String[] unit = new String[] { "Tokyo", "Mexico City",
- "Seoul", "New York", "Sao Paulo", "Bombay", "Delhi", "Shanghai",
- "Los Angeles", "London", "Bangalore", "Hong Kong", "Madrid",
- "Milano", "Beijing", "Paris", "Moscow", "Helsinki" };
-
- private Table t;
-
- private boolean actionsActive = false;
-
- private Button actionHandlerSwitch = new Button("Activate actions", this,
- "toggleActions");
-
- public void toggleActions() {
- if (actionsActive) {
- t.removeActionHandler(this);
- actionsActive = false;
- actionHandlerSwitch.setCaption("Activate Actions");
- } else {
- t.addActionHandler(this);
- actionsActive = true;
- actionHandlerSwitch.setCaption("Deactivate Actions");
- }
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- // Sample table
- t = new Table("Corporate Employees");
- t.setPageLength(10);
- l.addComponent(t);
-
- // Add columns to table
- t.addContainerProperty("Firstname", String.class, "");
- t.addContainerProperty("Lastname", String.class, "");
- t.addContainerProperty("Title", String.class, "");
- t.addContainerProperty("Unit", String.class, "");
-
- // set alignments to demonstrate features
- t.setColumnAlignment("Title", Table.ALIGN_CENTER);
- t.setColumnAlignment("Unit", Table.ALIGN_RIGHT);
-
- // Add random rows to table
- for (int j = 0; j < 300; j++) {
- t
- .addItem(
- new Object[] {
- firstnames[(int) (Math.random() * (firstnames.length - 1))],
- lastnames[(int) (Math.random() * (lastnames.length - 1))],
- title[(int) (Math.random() * title.length)],
- unit[(int) (Math.random() * unit.length)] },
- new Integer(j));
- }
-
- // Actions
- l.addComponent(this.actionHandlerSwitch);
-
- // Properties
- propertyPanel = new PropertyPanel(t);
- Form ap = propertyPanel.createBeanPropertySet(new String[] {
- "pageLength", "rowHeaderMode", "selectable",
- "columnHeaderMode", "columnCollapsingAllowed",
- "columnReorderingAllowed", "width", "height" });
- ap.replaceWithSelect("columnHeaderMode", new Object[] {
- new Integer(Table.COLUMN_HEADER_MODE_EXPLICIT),
- new Integer(Table.COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID),
- new Integer(Table.COLUMN_HEADER_MODE_HIDDEN),
- new Integer(Table.COLUMN_HEADER_MODE_ID) }, new Object[] {
- "Explicit", "Explicit defaults ID", "Hidden", "ID" });
- ap.replaceWithSelect("rowHeaderMode", new Object[] {
- new Integer(Table.ROW_HEADER_MODE_EXPLICIT),
- new Integer(Table.ROW_HEADER_MODE_EXPLICIT_DEFAULTS_ID),
- new Integer(Table.ROW_HEADER_MODE_HIDDEN),
- new Integer(Table.ROW_HEADER_MODE_ICON_ONLY),
- new Integer(Table.ROW_HEADER_MODE_ID),
- new Integer(Table.ROW_HEADER_MODE_INDEX),
- new Integer(Table.ROW_HEADER_MODE_ITEM),
- new Integer(Table.ROW_HEADER_MODE_PROPERTY) }, new Object[] {
- "Explicit", "Explicit defaults ID", "Hidden", "Icon only",
- "ID", "Index", "Item", "Property" });
-
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("list").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("list");
- themes.addItem("paging").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("paging");
-
- propertyPanel.addProperties("Table Properties", ap);
-
- // Set first name as item caption propertyId in cas somebody selecs it
- t.setItemCaptionPropertyId("Firstname");
-
- // this overrides previous
- t.setRowHeaderMode(Table.ROW_HEADER_MODE_INDEX);
- t.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID);
-
- t.setColumnCollapsingAllowed(true);
- t.setColumnReorderingAllowed(true);
- t.setSelectable(true);
-
- setJavadocURL("ui/Table.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "// Sample table\n"
- + "t = new Table(\"Corporate Employees\");\n"
- + "t.setPageLength(10);\n\n"
- + "// Add columns to table\n"
- + "t.addContainerProperty(\"Firstname\", String.class, \"\");\n"
- + "t.addContainerProperty(\"Lastname\", String.class, \"\");\n"
- + "t.addContainerProperty(\"Age\", String.class, \"\");\n"
- + "t.addContainerProperty(\"Title\", String.class, \"\");\n"
- + "t.addContainerProperty(\"Unit\", String.class, \"\");\n\n"
- + "// Add random rows to table\n"
- + "for (int j = 0; j < 50; j++) {\n" + " t.addItem(\n"
- + " new Object[] {\n"
- + " firstnames[(int) (Math.random() * 9)],\n"
- + " lastnames[(int) (Math.random() * 9)],\n"
- + " title[(int) (Math.random() * title.length)],\n"
- + " unit[(int) (Math.random() * unit.length)] },\n"
- + " new Integer(j));\n" + "}\n";
- }
-
- protected String getDescriptionXHTML() {
-
- return "The Table component is designed for displaying large volumes of tabular data, "
- + "in multiple pages whenever needed."
- + "
Selection of the displayed data is supported both in selecting exclusively one row "
- + "or multiple rows at the same time. For each row, there may be a set of actions associated, "
- + "depending on the theme these actions may be displayed either as a drop-down "
- + "menu for each row or a set of command buttons."
- + "
Table may be connected to any datasource implementing the Container
interface."
- + "This way data found in external datasources can be directly presented in the table component."
- + "
"
- + "Table implements a number of features and you can test most of them in the table demo tab.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "Table";
- }
-
- private Action ACTION1 = new Action("Action 1");
-
- private Action ACTION2 = new Action("Action 2");
-
- private Action ACTION3 = new Action("Action 3");
-
- private Action[] actions = new Action[] { ACTION1, ACTION2, ACTION3 };
-
- public Action[] getActions(Object target, Object sender) {
- return actions;
- }
-
- public void handleAction(Action action, Object sender, Object target) {
- t.setDescription("Last action clicked was '" + action.getCaption()
- + "' on item '" + t.getItem(target).toString() + "'");
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureTextField.java b/src/com/itmill/toolkit/demo/features/FeatureTextField.java
deleted file mode 100644
index 512a4e87d9..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureTextField.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.*;
-
-public class FeatureTextField extends Feature {
-
- public FeatureTextField() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout(
- OrderedLayout.ORIENTATION_HORIZONTAL);
-
- // Test component
- TextField tf = new TextField("Caption");
- l.addComponent(tf);
-
- // Properties
- propertyPanel = new PropertyPanel(tf);
- Form f = propertyPanel.createBeanPropertySet(new String[] { "columns",
- "rows", "wordwrap", "writeThrough", "readThrough",
- "nullRepresentation", "nullSettingAllowed", "secret" });
- propertyPanel.addProperties("Text field properties", f);
-
- setJavadocURL("ui/TextField.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "TextField tf = new TextField(\"Caption\");\n"
- + "tf.setValue(\"Contents\");";
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return "TextField combines the logic of both the single line text-entry field and the multi-line "
- + "text-area into one component. "
- + "As with all Data-components of IT Mill Toolkit, the TextField can also be bound to an "
- + "underlying data source, both directly or in a buffered (asynchronous) "
- + "mode. In buffered mode its background color will change to indicate "
- + "that the value has changed but is not committed."
- + "
Furthermore a validators may be bound to the component to "
- + "check and validate the given input before it is actually committed."
- + "
On the demo tab you can try out how the different properties affect the "
- + "presentation of the component.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "TextField";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureTree.java b/src/com/itmill/toolkit/demo/features/FeatureTree.java
deleted file mode 100644
index b1efe61234..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureTree.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import java.util.Iterator;
-
-import com.itmill.toolkit.event.Action;
-import com.itmill.toolkit.ui.*;
-
-public class FeatureTree extends Feature implements Action.Handler {
-
- private static final String[] firstnames = new String[] { "John", "Mary",
- "Joe", "Sarah", "Jeff", "Jane", "Peter", "Marc", "Josie", "Linus" };
-
- private static final String[] lastnames = new String[] { "Torvalds",
- "Smith", "Jones", "Beck", "Sheridan", "Picard", "Hill", "Fielding",
- "Einstein" };
-
- private Tree t;
-
- private boolean actionsActive = false;
-
- private Button actionHandlerSwitch = new Button("Activate actions", this,
- "toggleActions");
-
- public FeatureTree() {
- super();
- }
-
- public void toggleActions() {
- if (actionsActive) {
- t.removeActionHandler(this);
- actionsActive = false;
- actionHandlerSwitch.setCaption("Activate Actions");
- } else {
- t.addActionHandler(this);
- actionsActive = true;
- actionHandlerSwitch.setCaption("Deactivate Actions");
- }
- }
-
- public void expandAll() {
- for (Iterator i = t.rootItemIds().iterator(); i.hasNext();) {
- t.expandItemsRecursively(i.next());
- }
- }
-
- public void collapseAll() {
- for (Iterator i = t.rootItemIds().iterator(); i.hasNext();) {
- t.collapseItemsRecursively(i.next());
- }
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- String[] names = new String[100];
- for (int i = 0; i < names.length; i++)
- names[i] = firstnames[(int) (Math.random() * (firstnames.length - 1))]
- + " "
- + lastnames[(int) (Math.random() * (lastnames.length - 1))];
-
- // Create tree
- t = new Tree("Organization Structure");
- for (int i = 0; i < 100; i++) {
- t.addItem(names[i]);
- String parent = names[(int) (Math.random() * (names.length - 1))];
- if (t.containsId(parent))
- t.setParent(names[i], parent);
- }
-
- // Forbid childless people to have children (makes them leaves)
- for (int i = 0; i < 100; i++)
- if (!t.hasChildren(names[i]))
- t.setChildrenAllowed(names[i], false);
-
- l.addComponent(t);
-
- // Actions
- l.addComponent(this.actionHandlerSwitch);
-
- // Expand and Collapse buttons
- l.addComponent(new Button("Expand All", this, "expandAll"));
- l.addComponent(new Button("Collapse All", this, "collapseAll"));
-
- // Properties
- propertyPanel = new PropertyPanel(t);
- Form ap = propertyPanel
- .createBeanPropertySet(new String[] { "selectable" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("menu").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("menu");
- propertyPanel.addProperties("Tree Properties", ap);
-
- setJavadocURL("ui/Tree.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "// Create tree\n"
- + "t = new Tree(\"Organization Structure\");\n"
- + "for (int i = 0; i < 100; i++) {\n"
- + " t.addItem(names[i]);\n"
- + " String parent = names[(int) (Math.random() * (names.length - 1))];\n"
- + " if (t.containsId(parent)) \n"
- + " t.setParent(names[i],parent);\n"
- + "}\n\n"
- + "// Forbid childless people to have children (makes them leaves)\n"
- + "for (int i = 0; i < 100; i++)\n"
- + " if (!t.hasChildren(names[i]))\n"
- + " t.setChildrenAllowed(names[i], false);\n";
- }
-
- protected String getDescriptionXHTML() {
- return "A tree is a natural way to represent datasets that have"
- + " hierarchical relationships, such as filesystems, message "
- + "threads or, as in this example, organization structure. IT Mill Toolkit features a versatile "
- + "and powerful Tree component that works much like the tree components "
- + "of most modern operating systems."
- + "
The most prominent use of the Tree component is to "
- + "use it for displaying a hierachical menu, like the "
- + "menu on the left side of the screen for instance "
- + "or to display filesystems or other hierarchical datasets."
- + "
The tree component uses Container
"
- + "datasources much like the Table component, "
- + "with the addition that it also utilizes the hierarchy "
- + "information maintained by the container."
- + "
On the demo tab you can try out how the different properties "
- + "affect the presentation of the tree component.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "Tree";
- }
-
- private Action ACTION1 = new Action("Action 1");
-
- private Action ACTION2 = new Action("Action 2");
-
- private Action ACTION3 = new Action("Action 3");
-
- private Action[] actions = new Action[] { ACTION1, ACTION2, ACTION3 };
-
- public Action[] getActions(Object target, Object sender) {
- return actions;
- }
-
- public void handleAction(Action action, Object sender, Object target) {
- t.setDescription("Last action clicked was '" + action.getCaption()
- + "' on item '" + target + "'");
- }
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureUpload.java b/src/com/itmill/toolkit/demo/features/FeatureUpload.java
deleted file mode 100644
index a01296a4fd..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureUpload.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import com.itmill.toolkit.terminal.StreamResource;
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.Link;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Upload;
-import com.itmill.toolkit.ui.Upload.FinishedEvent;
-
-public class FeatureUpload extends Feature implements Upload.FinishedListener {
- Buffer buffer = new Buffer();
-
- Panel status = new Panel("Uploaded file:");
-
- public FeatureUpload() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Upload up = new Upload("Upload", buffer);
- up.setImmediate(true);
- up.addListener(this);
-
- status.setVisible(false);
-
- l.addComponent(up);
- l.addComponent(status);
-
- // Properties
- propertyPanel = new PropertyPanel(up);
-
- setJavadocURL("ui/Upload.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return "Upload u = new Upload(\"Upload a file:\", uploadReceiver);\n\n"
- + "public class uploadReceiver \n"
- + "implements Upload.receiver, Upload.FinishedListener { \n"
- + "\n" + " java.io.File file;\n"
- + " java.io.FileOutputStream fos;\n"
- + " public uploadReceiver() {\n" + " }";
-
- }
-
- protected String getDescriptionXHTML() {
- return "This demonstrates the use of the Upload component together with the Link component. "
- + "This implementation does not actually store the file to disk, it only keeps it in a buffer. "
- + "The example given on the Code Sample-tab on the other hand stores the file to disk and binds the link to that file.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "Upload";
- }
-
- public void uploadFinished(FinishedEvent event) {
- status.removeAllComponents();
- if (buffer.getStream() == null)
- status.addComponent(new Label(
- "Upload finished, but output buffer is null!!"));
- else {
- status
- .addComponent(new Label("Name: "
- + event.getFilename(), Label.CONTENT_XHTML));
- status.addComponent(new Label("Mimetype: "
- + event.getMIMEType(), Label.CONTENT_XHTML));
- status.addComponent(new Label("Size: " + event.getLength()
- + " bytes.", Label.CONTENT_XHTML));
-
- status.addComponent(new Link("Download " + buffer.getFileName(),
- new StreamResource(buffer, buffer.getFileName(),
- getApplication())));
-
- status.setVisible(true);
- }
- }
-
- public class Buffer implements StreamResource.StreamSource, Upload.Receiver {
- ByteArrayOutputStream outputBuffer = null;
-
- String mimeType;
-
- String fileName;
-
- public Buffer() {
-
- }
-
- public InputStream getStream() {
- if (outputBuffer == null)
- return null;
- return new ByteArrayInputStream(outputBuffer.toByteArray());
- }
-
- /**
- * @see com.itmill.toolkit.ui.Upload.Receiver#receiveUpload(String,
- * String)
- */
- public OutputStream receiveUpload(String filename, String MIMEType) {
- fileName = filename;
- mimeType = MIMEType;
- outputBuffer = new ByteArrayOutputStream();
- return outputBuffer;
- }
-
- /**
- * Returns the fileName.
- *
- * @return String
- */
- public String getFileName() {
- return fileName;
- }
-
- /**
- * Returns the mimeType.
- *
- * @return String
- */
- public String getMimeType() {
- return mimeType;
- }
-
- }
-}
\ No newline at end of file
diff --git a/src/com/itmill/toolkit/demo/features/FeatureUtil.java b/src/com/itmill/toolkit/demo/features/FeatureUtil.java
deleted file mode 100644
index 91dbfbd1cf..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureUtil.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.itmill.toolkit.demo.features;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-public class FeatureUtil {
-
- private static boolean statistics = false;
-
- public static final SimpleDateFormat format = new SimpleDateFormat(
- "yyyyMMdd HHmmss");
-
- public static void debug(String userIdentity, String msg) {
- if (statistics)
- System.out.println("[" + userIdentity + "] " + msg);
- }
-
- public static String getTimestamp() {
- if (statistics)
- try {
- return format.format(new Date());
- } catch (Exception e) {
- // ignored, should never happen
- }
- return "";
- }
-
- public static void setStatistics(boolean statistics) {
- FeatureUtil.statistics = statistics;
- }
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureValidators.java b/src/com/itmill/toolkit/demo/features/FeatureValidators.java
deleted file mode 100644
index f04bd4b998..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureValidators.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Select;
-
-public class FeatureValidators extends Feature {
-
- private static final String INTRO_TEXT = ""
- + "IT Mill Toolkit contains simple, yet powerful validation interface, "
- + "that consists of two parts: Validator and Validatable. Validator is "
- + "any class that can check validity of an Object. Validatable is "
- + "a class with configurable validation. "
- + "Validation errors are passed as special exceptions that implement "
- + "ErrorMessage interface. This way the validation errors can be "
- + "automatically added to components."
- + "
Utilities for simple string and null validation are provided, as "
- + "well as combinative validators. The validation interface can also "
- + "be easily implemented by the applications for more complex "
- + "validation needs.";
-
- public FeatureValidators() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Panel panel = new Panel();
- panel.setCaption("Validators");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(INTRO_TEXT);
-
- // Properties
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("data/Validator.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return null;
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return null;
- }
-
- protected String getImage() {
- return null;
- }
-
- protected String getTitle() {
- return null;
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeatureWindow.java b/src/com/itmill/toolkit/demo/features/FeatureWindow.java
deleted file mode 100644
index 811d5d6d80..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeatureWindow.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.*;
-import com.itmill.toolkit.ui.Window.CloseEvent;
-
-public class FeatureWindow extends Feature implements Window.CloseListener {
-
- private Button addButton = new Button("Add window", this, "addWin");
-
- private Button removeButton = new Button("Remove window", this, "delWin");
-
- private Window demoWindow;
-
- private Form windowProperties;
-
- public FeatureWindow() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout layoutRoot = new OrderedLayout();
- OrderedLayout layoutUpper = new OrderedLayout();
- OrderedLayout layoutLower = new OrderedLayout();
-
- demoWindow = new Window("Feature Test Window");
- demoWindow.addListener(this);
- demoWindow.setWidth(400);
- demoWindow.setHeight(200);
- demoWindow.setTheme("default");
-
- layoutUpper.addComponent(addButton);
- layoutUpper.addComponent(removeButton);
-
- updateWinStatus();
-
- // Properties
- propertyPanel = new PropertyPanel(demoWindow);
- propertyPanel.dependsOn(addButton);
- propertyPanel.dependsOn(removeButton);
- windowProperties = propertyPanel.createBeanPropertySet(new String[] {
- "width", "height", "name", "theme", "border", "scrollable", });
- windowProperties.replaceWithSelect("border", new Object[] {
- new Integer(Window.BORDER_DEFAULT),
- new Integer(Window.BORDER_NONE),
- new Integer(Window.BORDER_MINIMAL) }, new Object[] { "Default",
- "None", "Minimal" });
- // Disabled, not applicable for default theme
- windowProperties.getField("border").setEnabled(false);
- windowProperties.getField("scrollable").setEnabled(false);
-
- propertyPanel.addProperties("Window Properties", windowProperties);
- windowProperties.getField("width").setDescription(
- "Minimum width is 100");
- windowProperties.getField("height").setDescription(
- "Minimum height is 100");
-
- setJavadocURL("ui/Window.html");
-
- layoutRoot.addComponent(layoutUpper);
- layoutRoot.addComponent(layoutLower);
- return layoutRoot;
- }
-
- protected String getExampleSrc() {
- return "Window win = new Window();\n"
- + "getApplication().addWindow(win);\n";
-
- }
-
- protected String getDescriptionXHTML() {
- return "The window support in IT Mill Toolkit allows for opening and closing windows, "
- + "refreshing one window from another (for asynchronous terminals), "
- + "resizing windows and scrolling window content. "
- + "There are also a number of preset window border styles defined by "
- + "this feature.";
- }
-
- protected String getImage() {
- return "icon_demo.png";
- }
-
- protected String getTitle() {
- return "Window";
- }
-
- public void addWin() {
-
- propertyPanel.commit();
-
- getApplication().getMainWindow().addWindow(demoWindow);
-
- demoWindow.removeAllComponents();
-
- demoWindow
- .addComponent(new Label(
- "
This is a new window created by "
- + "Add window"
- + " button's event.
You may simply"
- + " close this window or select "
- + "Remove window from the Feature Browser window.",
- Label.CONTENT_XHTML));
- // prevent user to change window name tag (after window is created)
- windowProperties.getField("name").setEnabled(false);
- windowProperties.getField("name").setReadOnly(true);
- demoWindow.setVisible(true);
- updateWinStatus();
- }
-
- public void delWin() {
- getApplication().getMainWindow().removeWindow(demoWindow);
- // allow user to change window name tag (before window is created)
- windowProperties.getField("name").setEnabled(true);
- windowProperties.getField("name").setReadOnly(false);
- updateWinStatus();
- }
-
- private void updateWinStatus() {
- if (demoWindow.getApplication() == null) {
- addButton.setEnabled(true);
- removeButton.setEnabled(false);
- } else {
- addButton.setEnabled(false);
- removeButton.setEnabled(true);
- }
- }
-
- public void windowClose(CloseEvent e) {
- delWin();
- }
-}
diff --git a/src/com/itmill/toolkit/demo/features/FeaturesApplication.java b/src/com/itmill/toolkit/demo/features/FeaturesApplication.java
deleted file mode 100644
index 17461faa43..0000000000
--- a/src/com/itmill/toolkit/demo/features/FeaturesApplication.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.*;
-
-public class FeaturesApplication extends com.itmill.toolkit.Application {
-
- public void init() {
- if (getProperty("statistics") != null)
- FeatureUtil.setStatistics(true);
- setUser(new Long(System.currentTimeMillis()).toString());
- Window main = new Window("IT Mill Toolkit Features Tour");
- setMainWindow(main);
-
- main.setLayout(new FeatureBrowser());
- }
-
- /**
- * ErrorEvents are printed to default error stream and not in GUI.
- */
- public void terminalError(
- com.itmill.toolkit.terminal.Terminal.ErrorEvent event) {
- Throwable e = event.getThrowable();
- FeatureUtil.debug(getUser().toString(), "terminalError: "
- + e.toString());
- e.printStackTrace();
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/IntroBasic.java b/src/com/itmill/toolkit/demo/features/IntroBasic.java
deleted file mode 100644
index 4ce8b8d457..0000000000
--- a/src/com/itmill/toolkit/demo/features/IntroBasic.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Select;
-
-public class IntroBasic extends Feature {
-
- private static final String INTRO_TEXT = ""
- + "Text Field, Date Field, Button, Form, Label and Link components are provided as samples"
- + " for basic UI components."
- + "
See the API documentation of respective components for more information.";
-
- public IntroBasic() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Panel panel = new Panel();
- panel.setCaption("Basic UI components");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(INTRO_TEXT);
-
- // Properties
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("ui/package-summary.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return null;
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return null;
- }
-
- protected String getImage() {
- return null;
- }
-
- protected String getTitle() {
- return "Introduction of basic UI components";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/IntroComponents.java b/src/com/itmill/toolkit/demo/features/IntroComponents.java
deleted file mode 100644
index 2907f46b70..0000000000
--- a/src/com/itmill/toolkit/demo/features/IntroComponents.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.terminal.ClassResource;
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Embedded;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Select;
-
-public class IntroComponents extends Feature {
-
- private static final String INTRO_TEXT = ""
- + "This picture summarizes the relations between different user interface (UI) components."
- + "
See API documentation below for more information.";
-
- public IntroComponents() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Panel panel = new Panel();
- panel.setCaption("UI component diagram");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(INTRO_TEXT);
-
- panel.addComponent(new Embedded("", new ClassResource("components.png",
- this.getApplication())));
-
- // Properties
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("ui/package-summary.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return null;
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return null;
- }
-
- protected String getImage() {
- return null;
- }
-
- protected String getTitle() {
- return null;
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/IntroDataHandling.java b/src/com/itmill/toolkit/demo/features/IntroDataHandling.java
deleted file mode 100644
index c2c954381f..0000000000
--- a/src/com/itmill/toolkit/demo/features/IntroDataHandling.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Select;
-
-public class IntroDataHandling extends Feature {
-
- private static final String INTRO_TEXT = ""
- + "Embedded Objects and Upload components are provided as samples"
- + " for data handling section."
- + "
See the API documentation of respective components for more information.";
-
- public IntroDataHandling() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Panel panel = new Panel();
- panel.setCaption("Data Handling");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(INTRO_TEXT);
-
- // Properties
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- return l;
- }
-
- protected String getExampleSrc() {
- return null;
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return "Please select Embedded Objects or Upload"
- + " from the menu for more information.";
- }
-
- protected String getImage() {
- return null;
- }
-
- protected String getTitle() {
- return null;
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/IntroDataModel.java b/src/com/itmill/toolkit/demo/features/IntroDataModel.java
deleted file mode 100644
index 5a0a677d73..0000000000
--- a/src/com/itmill/toolkit/demo/features/IntroDataModel.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Select;
-
-public class IntroDataModel extends Feature {
-
- private static final String INTRO_TEXT = ""
- + "This section introduces main concepts of data model in IT Mill Toolkit."
- + " It contains brief introduction to Properties, Items, Containers, Validators and"
- + " Buffering classes."
- + "
See the API documentation of respective area for more information.";
-
- public IntroDataModel() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Panel panel = new Panel();
- panel.setCaption("Data Model");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(INTRO_TEXT);
-
- // Properties
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("data/package-summary.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return null;
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return null;
- }
-
- protected String getImage() {
- return null;
- }
-
- protected String getTitle() {
- return null;
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/IntroItemContainers.java b/src/com/itmill/toolkit/demo/features/IntroItemContainers.java
deleted file mode 100644
index 1ee36bde35..0000000000
--- a/src/com/itmill/toolkit/demo/features/IntroItemContainers.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Select;
-
-public class IntroItemContainers extends Feature {
-
- private static final String INTRO_TEXT = ""
- + "Select, Table and Tree components are provided as samples"
- + " for item containers section."
- + "
See the API documentation of respective components for more information.";
-
- public IntroItemContainers() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Panel panel = new Panel();
- panel.setCaption("Item Containers");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(INTRO_TEXT);
-
- // Properties
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("data/Container.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return null;
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return null;
- }
-
- protected String getImage() {
- return null;
- }
-
- protected String getTitle() {
- return null;
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/IntroLayouts.java b/src/com/itmill/toolkit/demo/features/IntroLayouts.java
deleted file mode 100644
index d68aa720b4..0000000000
--- a/src/com/itmill/toolkit/demo/features/IntroLayouts.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Select;
-
-public class IntroLayouts extends Feature {
-
- private static final String INTRO_TEXT = ""
- + "Layouts are required to place components to specific place in the UI."
- + " You can use plain Java to accomplish sophisticated component layouting."
- + " Other option is to use Custom Layout and let the web page designers"
- + " to take responsibility of component layouting using their own set of tools."
- + "
See API documentation below for more information.";
-
- public IntroLayouts() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Panel panel = new Panel();
- panel.setCaption("Layouts");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(INTRO_TEXT);
-
- // Properties
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("ui/Layout.html");
-
- return l;
- }
-
- protected String getExampleSrc() {
- return null;
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return null;
- }
-
- protected String getImage() {
- return null;
- }
-
- protected String getTitle() {
- return null;
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/IntroTerminal.java b/src/com/itmill/toolkit/demo/features/IntroTerminal.java
deleted file mode 100644
index eb7d1f1808..0000000000
--- a/src/com/itmill/toolkit/demo/features/IntroTerminal.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-
-public class IntroTerminal extends Feature {
-
- public IntroTerminal() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- Label lab = new Label();
- lab.setStyle("featurebrowser-none");
- l.addComponent(lab);
-
- // Properties
- propertyPanel = null;
-
- return l;
- }
-
- protected String getExampleSrc() {
- return null;
- }
-
- /**
- * @see com.itmill.toolkit.demo.features.Feature#getDescriptionXHTML()
- */
- protected String getDescriptionXHTML() {
- return "";
- }
-
- protected String getImage() {
- return null;
- }
-
- protected String getTitle() {
- return "Introduction for terminals (TODO)";
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/IntroWelcome.java b/src/com/itmill/toolkit/demo/features/IntroWelcome.java
deleted file mode 100644
index 89c0efb0cd..0000000000
--- a/src/com/itmill/toolkit/demo/features/IntroWelcome.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import java.net.URL;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.Map;
-
-import com.itmill.toolkit.terminal.DownloadStream;
-import com.itmill.toolkit.terminal.PaintException;
-import com.itmill.toolkit.terminal.PaintTarget;
-import com.itmill.toolkit.terminal.ParameterHandler;
-import com.itmill.toolkit.terminal.URIHandler;
-import com.itmill.toolkit.terminal.gwt.server.ApplicationServlet;
-import com.itmill.toolkit.terminal.gwt.server.WebBrowser;
-import com.itmill.toolkit.ui.Component;
-import com.itmill.toolkit.ui.Form;
-import com.itmill.toolkit.ui.Label;
-import com.itmill.toolkit.ui.OrderedLayout;
-import com.itmill.toolkit.ui.Panel;
-import com.itmill.toolkit.ui.Select;
-
-public class IntroWelcome extends Feature implements URIHandler,
- ParameterHandler {
-
- private WebBrowser webBrowser = null;
-
- Panel panel = new Panel();
-
- private static final String WELCOME_TEXT_UPPER = ""
- + "This application lets you view and play with some features of "
- + "IT Mill Toolkit. Use menu on the left to select component."
- + "
Note the Properties selection on the top "
- + "right corner. Click it open to access component properties and"
- + " feel free to edit properties at any time."
- + "
The area that you are now reading is the component"
- + " demo area. Lower area from here contains component description, API"
- + " documentation and optional code sample. Note that not all selections"
- + " contain demo, only description and API documentation is shown."
- + "
You may also change application's theme from below the menu."
- + " This example application is designed to work best with"
- + " Demo theme, other themes are for demonstration purposes only."
- + "
IT Mill Toolkit enables you to construct complex Web"
- + " applications using plain Java, no knowledge of other Web technologies"
- + " such as XML, HTML, DOM, JavaScript or browser differences is required."
- + "
For more information, point your browser to"
- + " www.itmill.com.";
-
- private static final String WELCOME_TEXT_LOWER = ""
- + "This area contains the selected component's description, list of properties, javadoc"
- + " and optional code sample. "
- + "Start your tour now by selecting features from the list"
- + " on the left and remember to experiment with the Properties panel"
- + " located at the top right corner area.";
-
- private String description = WELCOME_TEXT_LOWER
- + "
IT Mill Toolkit version: "
- + ApplicationServlet.VERSION;
-
- public IntroWelcome() {
- super();
- }
-
- protected Component getDemoComponent() {
-
- OrderedLayout l = new OrderedLayout();
-
- panel.setCaption("Welcome to the IT Mill Toolkit feature tour!");
- l.addComponent(panel);
-
- Label label = new Label();
- panel.addComponent(label);
-
- label.setContentMode(Label.CONTENT_XHTML);
- label.setValue(WELCOME_TEXT_UPPER);
-
- propertyPanel = new PropertyPanel(panel);
- Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
- "height" });
- Select themes = (Select) propertyPanel.getField("style");
- themes.addItem("light").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("light");
- themes.addItem("strong").getItemProperty(
- themes.getItemCaptionPropertyId()).setValue("strong");
- propertyPanel.addProperties("Panel Properties", ap);
-
- setJavadocURL("package-summary.html");
-
- setPropsReminder(false);
-
- return l;
- }
-
- protected String getExampleSrc() {
- return ""
- + "package com.itmill.toolkit.demo;\n"
- + "import com.itmill.toolkit.ui.*;\n\n"
- + "public class HelloWorld extends com.itmill.toolkit.Application {\n"
- + " public void init() {\n"
- + " Window main = new Window(\"Hello window\");\n"
- + " setMainWindow(main);\n"
- + " main.addComponent(new Label(\"Hello World!\"));\n"
- + " }\n" + "}\n";
- }
-
- // not ready yet to give description, see paint instead
- protected String getDescriptionXHTML() {
- return description;
- }
-
- // Hack for #512: set description right (WebBrowser now exists)
- public void paint(PaintTarget target) throws PaintException {
- if (webBrowser == null) {
- webBrowser = (WebBrowser) getWindow().getTerminal();
- if (webBrowser != null) {
- super.getDescription().setValue(
- description + "
Browser: "
- + webBrowser.getBrowserApplication());
- try {
- FeatureUtil.debug(getApplication().getUser().toString(),
- "timestamp=[" + FeatureUtil.getTimestamp()
- + "] userAgent=["
- + webBrowser.getBrowserApplication() + "]");
- } catch (Exception e) {
- // ignored, should never happen
- }
- }
- }
- super.paint(target);
- }
-
- protected String getImage() {
- return "icon_intro.png";
- }
-
- protected String getTitle() {
- return "Welcome";
- }
-
- /**
- * Add URI and parametes handlers to window.
- *
- * @see com.itmill.toolkit.ui.Component#attach()
- */
- public void attach() {
- super.attach();
- getWindow().addURIHandler(this);
- getWindow().addParameterHandler(this);
- }
-
- /**
- * Remove all handlers from window
- *
- * @see com.itmill.toolkit.ui.Component#detach()
- */
- public void detach() {
- super.detach();
- getWindow().removeURIHandler(this);
- getWindow().removeParameterHandler(this);
- }
-
- /**
- * Update URI
- *
- * @see com.itmill.toolkit.terminal.URIHandler#handleURI(URL, String)
- */
- public DownloadStream handleURI(URL context, String relativeUri) {
- return null;
- }
-
- /**
- * Show system status if systemStatus is given on URL
- *
- * @see com.itmill.toolkit.terminal.ParameterHandler#handleParameters(Map)
- */
- public void handleParameters(Map parameters) {
- for (Iterator i = parameters.keySet().iterator(); i.hasNext();) {
- String name = (String) i.next();
- if (name.equals("systemStatus")) {
- String status = "";
- status += "timestamp=" + new Date() + " ";
- status += "free=" + Runtime.getRuntime().freeMemory() + ", ";
- status += "total=" + Runtime.getRuntime().totalMemory() + ", ";
- status += "max=" + Runtime.getRuntime().maxMemory() + "\n";
- System.out.println(status);
- }
- }
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/PropertyPanel.java b/src/com/itmill/toolkit/demo/features/PropertyPanel.java
deleted file mode 100644
index 899c3608bf..0000000000
--- a/src/com/itmill/toolkit/demo/features/PropertyPanel.java
+++ /dev/null
@@ -1,516 +0,0 @@
-/* *************************************************************************
-
- IT Mill Toolkit
-
- Development of Browser User Interfaces Made Easy
-
- Copyright (C) 2000-2006 IT Mill Ltd
-
- *************************************************************************
-
- This product is distributed under commercial license that can be found
- from the product package on license.pdf. Use of this product might
- require purchasing a commercial license from IT Mill Ltd. For guidelines
- on usage, see licensing-guidelines.html
-
- *************************************************************************
-
- For more information, contact:
-
- IT Mill Ltd phone: +358 2 4802 7180
- Ruukinkatu 2-4 fax: +358 2 4802 7181
- 20540, Turku email: info@itmill.com
- Finland company www: www.itmill.com
-
- Primary source for information and releases: www.itmill.com
-
- ********************************************************************** */
-
-package com.itmill.toolkit.demo.features;
-
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-
-import com.itmill.toolkit.data.*;
-import com.itmill.toolkit.data.Property.ValueChangeListener;
-import com.itmill.toolkit.data.util.*;
-import com.itmill.toolkit.terminal.*;
-import com.itmill.toolkit.ui.*;
-
-public class PropertyPanel extends Panel implements Button.ClickListener,
- Property.ValueChangeListener {
-
- private Select addComponent;
-
- private OrderedLayout formsLayout = new OrderedLayout();
-
- private LinkedList forms = new LinkedList();
-
- private Button setButton = new Button("Set", this);
-
- private Button discardButton = new Button("Discard changes", this);
-
- private Table allProperties = new Table();
-
- private Object objectToConfigure;
-
- private BeanItem config;
-
- protected static final int COLUMNS = 3;
-
- /** Contruct new property panel for configuring given object. */
- public PropertyPanel(Object objectToConfigure) {
- super();
-
- // Layout
- setCaption("Properties");
- addComponent(formsLayout);
- addStyleName(Panel.STYLE_NO_PADDING);
-
- setWidth(100);
- setWidthUnits(Table.UNITS_PERCENTAGE);
- setHeight(100);
- setHeightUnits(Table.UNITS_PERCENTAGE);
-
- // Target object
- this.objectToConfigure = objectToConfigure;
- config = new BeanItem(objectToConfigure);
-
- // Control buttons
- OrderedLayout buttons = new OrderedLayout(
- OrderedLayout.ORIENTATION_HORIZONTAL);
- buttons.addComponent(setButton);
- buttons.addComponent(discardButton);
- addComponent(buttons);
-
- // Add default properties
- addBasicComponentProperties();
- if (objectToConfigure instanceof Select)
- addSelectProperties();
- if (objectToConfigure instanceof AbstractField
- && !(objectToConfigure instanceof Table || objectToConfigure instanceof Tree))
- addFieldProperties();
- if ((objectToConfigure instanceof AbstractComponentContainer)
- && !(objectToConfigure instanceof FrameWindow))
- addComponentContainerProperties();
-
- // The list of all properties
- allProperties.addContainerProperty("Name", String.class, "");
- allProperties.addContainerProperty("Type", String.class, "");
- allProperties.addContainerProperty("R/W", String.class, "");
- allProperties.addContainerProperty("Demo", String.class, "");
- allProperties.setColumnAlignments(new String[] { Table.ALIGN_LEFT,
- Table.ALIGN_LEFT, Table.ALIGN_CENTER, Table.ALIGN_CENTER });
- allProperties.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_ID);
- allProperties.setPageLength(0);
- allProperties.setWidth(100);
- allProperties.setWidthUnits(Table.UNITS_PERCENTAGE);
- allProperties.setHeight(100);
- allProperties.setHeightUnits(Table.UNITS_PERCENTAGE);
- updatePropertyList();
-
- }
-
- /** Add a formful of properties to property panel */
- public void addProperties(String propertySetCaption, Form properties) {
-
- // Create new panel containing the form
- Panel p = new Panel();
- p.setCaption(propertySetCaption);
- p.setStyle("light");
- p.addComponent(properties);
- formsLayout.addComponent(p);
-
- // Setup buffering
- setButton.dependsOn(properties);
- discardButton.dependsOn(properties);
- properties.setWriteThrough(false);
- // TODO change this to false, and test it is suitable for FeatureBrowser
- // demo
- properties.setReadThrough(true);
-
- // Maintain property lists
- forms.add(properties);
- updatePropertyList();
- }
-
- /** Recreate property list contents */
- public void updatePropertyList() {
-
- allProperties.removeAllItems();
-
- // Collect demoed properties
- HashSet listed = new HashSet();
- for (Iterator i = forms.iterator(); i.hasNext();)
- listed.addAll(((Form) i.next()).getItemPropertyIds());
-
- // Resolve all properties
- BeanInfo info;
- try {
- info = Introspector.getBeanInfo(objectToConfigure.getClass());
- } catch (IntrospectionException e) {
- throw new RuntimeException(e.toString());
- }
- PropertyDescriptor[] pd = info.getPropertyDescriptors();
-
- // Fill the table
- for (int i = 0; i < pd.length; i++) {
- allProperties.addItem(new Object[] { pd[i].getName(),
- pd[i].getPropertyType().getName(),
- (pd[i].getWriteMethod() == null ? "R" : "R/W"),
- (listed.contains(pd[i].getName()) ? "x" : "") }, pd[i]);
- }
- }
-
- /** Add basic properties implemented most often by abstract component */
- private void addBasicComponentProperties() {
-
- // Set of properties
- Form set = createBeanPropertySet(new String[] { "caption", "icon",
- "componentError", "description", "enabled", "visible", "style",
- "readOnly", "immediate" });
-
- // Icon
- set.replaceWithSelect("icon", new Object[] { null,
- new ThemeResource("icon/files/file.gif") }, new Object[] {
- "No icon", "Sample icon" });
-
- // Component error
- Throwable sampleException;
- try {
- throw new NullPointerException("sample exception");
- } catch (NullPointerException e) {
- sampleException = e;
- }
- set
- .replaceWithSelect(
- "componentError",
- new Object[] {
- null,
- new UserError("Sample text error message."),
- new UserError(
- "Error message formatting
Error messages can "
- + "contain any UIDL formatting, like:
",
- UserError.CONTENT_UIDL,
- ErrorMessage.INFORMATION),
- new SystemError(
- "This is an example of exception error reposting",
- sampleException) },
- new Object[] { "No error", "Sample text error",
- "Sample Formatted error", "Sample System Error" });
-
- // Style
- String currentStyle = ((Component) objectToConfigure).getStyle();
- if (currentStyle == null)
- set.replaceWithSelect("style", new Object[] { null },
- new Object[] { "Default" }).setNewItemsAllowed(true);
- else
- set.replaceWithSelect("style", new Object[] { null, currentStyle },
- new Object[] { "Default", currentStyle })
- .setNewItemsAllowed(true);
-
- // Set up descriptions
- set
- .getField("caption")
- .setDescription(
- "Component caption is the title of the component. Usage of the caption is optional and the "
- + "exact behavior of the propery is defined by the component. Setting caption null "
- + "or empty disables the caption.");
- set
- .getField("enabled")
- .setDescription(
- "Enabled property controls the usage of the component. If the component is disabled (enabled=false),"
- + " it can not receive any events from the terminal. In most cases it makes the usage"
- + " of the component easier, if the component visually looks disbled (for example is grayed), "
- + "when it can not be used.");
- set
- .getField("icon")
- .setDescription(
- "Icon of the component selects the main icon of the component. The usage of the icon is identical "
- + "to caption and in most components caption and icon are kept together. Icons can be "
- + "loaded from any resources (see Terminal/Resources for more information). Some components "
- + "contain more than just the captions icon. Those icons are controlled through their "
- + "own properties.");
- set
- .getField("visible")
- .setDescription(
- "Visibility property says if the component is renreded or not. Invisible components are implicitly "
- + "disabled, as there is no visible user interface to send event.");
- set
- .getField("description")
- .setDescription(
- "Description is designed to allow easy addition of short tooltips, like this. Like the caption,"
- + " setting description null or empty disables the description.");
- set
- .getField("readOnly")
- .setDescription(
- "Those components that have internal state that can be written are settable to readOnly-mode,"
- + " where the object can only be read, not written.");
- set
- .getField("componentError")
- .setDescription(
- "IT Mill Toolkit supports extensive error reporting. One part of the error reporting are component"
- + " errors that can be controlled by the programmer. This example only contains couple of "
- + "sample errors; to get the full picture, read browse ErrorMessage-interface implementors "
- + "API documentation.");
- set
- .getField("immediate")
- .setDescription(
- "Not all terminals can send the events immediately to server from all action. Web is the most "
- + "typical environment where many events (like textfield changed) are not sent to server, "
- + "before they are explicitly submitted. Setting immediate property true (by default this "
- + "is false for most components), the programmer can assure that the application is"
- + " notified as soon as possible about the value change in this component.");
- set
- .getField("style")
- .setDescription(
- "Themes specify the overall looks of the user interface. In addition component can have a set of "
- + "styles, that can be visually very different (like datefield calendar- and text-styles), "
- + "but contain the same logical functionality. As a rule of thumb, theme specifies if a "
- + "component is blue or yellow and style determines how the component is used.");
-
- // Add created fields to property panel
- addProperties("Component Basics", set);
-
- // Customization for Window component
- if (objectToConfigure instanceof Window) {
- disableField(set.getField("enabled"), new Boolean(true));
- disableField(set.getField("visible"), new Boolean(true));
- disableField(set.getField("componentError"));
- disableField(set.getField("icon"));
- }
- }
-
- /** Add properties for selecting */
- private void addSelectProperties() {
- Form set = createBeanPropertySet(new String[] { "newItemsAllowed",
- "lazyLoading", "multiSelect" });
- addProperties("Select Properties", set);
-
- set.getField("multiSelect").setDescription(
- "Specified if multiple items can be selected at once.");
- set
- .getField("newItemsAllowed")
- .setDescription(
- "Select component (but not Tree or Table) can allow the user to directly "
- + "add new items to set of options. The new items are constrained to be "
- + "strings and thus feature only applies to simple lists.");
- Button ll = (Button) set.getField("lazyLoading");
- ll
- .setDescription("In Ajax rendering mode select supports lazy loading and filtering of options.");
- ll.addListener((ValueChangeListener) this);
- ll.setImmediate(true);
- if (((Boolean) ll.getValue()).booleanValue()) {
- set.getField("multiSelect").setVisible(false);
- set.getField("newItemsAllowed").setVisible(false);
- }
- if (objectToConfigure instanceof Tree
- || objectToConfigure instanceof Table) {
- set.removeItemProperty("newItemsAllowed");
- set.removeItemProperty("lazyLoading");
- }
- }
-
- /** Field special properties */
- private void addFieldProperties() {
- // TODO bug #211 states that setFocus works only for Button and
- // Textfield UI components
- Form set = new Form(new GridLayout(COLUMNS, 1));
- set.addField("focus", new Button("Focus", objectToConfigure, "focus"));
- set.getField("focus").setDescription(
- "Focus the cursor to this field. Not all "
- + "components and/or terminals support this feature.");
- addProperties("Field Features", set);
- }
-
- /**
- * Add and remove some miscellaneous example component to/from component
- * container
- */
- private void addComponentContainerProperties() {
- Form set = new Form(new OrderedLayout(
- OrderedLayout.ORIENTATION_VERTICAL));
-
- addComponent = new Select();
- addComponent.setImmediate(true);
- addComponent.addItem("Add component to container");
- addComponent.setNullSelectionItemId("Add component to container");
- addComponent.addItem("Text field");
- addComponent.addItem("Option group");
- addComponent.addListener(this);
-
- set.addField("component adder", addComponent);
- set.addField("remove all components", new Button(
- "Remove all components", objectToConfigure,
- "removeAllComponents"));
-
- addProperties("ComponentContainer Features", set);
- }
-
- /** Value change listener for listening selections */
- public void valueChange(Property.ValueChangeEvent event) {
-
- // FIXME: navigation statistics
- try {
- FeatureUtil.debug(getApplication().getUser().toString(),
- "valueChange "
- + ((AbstractComponent) event.getProperty())
- .getTag() + ", " + event.getProperty());
- } catch (Exception e) {
- // ignored, should never happen
- }
-
- // Adding components to component container
- if (event.getProperty() == addComponent) {
- String value = (String) addComponent.getValue();
-
- if (value != null) {
- // TextField component
- if (value.equals("Text field"))
- ((AbstractComponentContainer) objectToConfigure)
- .addComponent(new TextField("Test field"));
-
- // DateField time style
- if (value.equals("Time")) {
- DateField d = new DateField("Time", new Date());
- d
- .setDescription("This is a DateField-component with text-style");
- d.setResolution(DateField.RESOLUTION_MIN);
- d.setStyle("text");
- ((AbstractComponentContainer) objectToConfigure)
- .addComponent(d);
- }
-
- // Date field calendar style
- if (value.equals("Calendar")) {
- DateField c = new DateField("Calendar", new Date());
- c
- .setDescription("DateField-component with calendar-style and day-resolution");
- c.setStyle("calendar");
- c.setResolution(DateField.RESOLUTION_DAY);
- ((AbstractComponentContainer) objectToConfigure)
- .addComponent(c);
- }
-
- // Select option group style
- if (value.equals("Option group")) {
- Select s = new Select("Options");
- s.setDescription("Select-component with optiongroup-style");
- s.addItem("Linux");
- s.addItem("Windows");
- s.addItem("Solaris");
- s.addItem("Symbian");
- s.setStyle("optiongroup");
-
- ((AbstractComponentContainer) objectToConfigure)
- .addComponent(s);
- }
-
- addComponent.setValue(null);
- }
- } else if (event.getProperty() == getField("lazyLoading")) {
- boolean newValue = ((Boolean) event.getProperty().getValue())
- .booleanValue();
- Field multiselect = getField("multiSelect");
- Field newitems = getField("newItemsAllowed");
- if (newValue) {
- newitems.setValue(Boolean.FALSE);
- newitems.setVisible(false);
- multiselect.setValue(Boolean.FALSE);
- multiselect.setVisible(false);
- } else {
- newitems.setVisible(true);
- multiselect.setVisible(true);
- }
- }
- }
-
- /** Handle all button clicks for this panel */
- public void buttonClick(Button.ClickEvent event) {
- // FIXME: navigation statistics
- try {
- FeatureUtil.debug(getApplication().getUser().toString(),
- "buttonClick " + event.getButton().getTag() + ", "
- + event.getButton().getCaption() + ", "
- + event.getButton().getValue());
- } catch (Exception e) {
- // ignored, should never happen
- }
- // Commit all changed on all forms
- if (event.getButton() == setButton) {
- commit();
- }
-
- // Discard all changed on all forms
- if (event.getButton() == discardButton) {
- for (Iterator i = forms.iterator(); i.hasNext();)
- ((Form) i.next()).discard();
- }
-
- }
-
- /**
- * Helper function for creating forms from array of propety names.
- */
- protected Form createBeanPropertySet(String names[]) {
-
- Form set = new Form(new OrderedLayout(
- OrderedLayout.ORIENTATION_VERTICAL));
-
- for (int i = 0; i < names.length; i++) {
- Property p = config.getItemProperty(names[i]);
- if (p != null) {
- set.addItemProperty(names[i], p);
- Field f = set.getField(names[i]);
- if (f instanceof TextField) {
- if (Integer.class.equals(p.getType()))
- ((TextField) f).setColumns(4);
- else {
- ((TextField) f).setNullSettingAllowed(true);
- ((TextField) f).setColumns(24);
- }
- }
- }
- }
-
- return set;
- }
-
- /** Find a field from all forms */
- public Field getField(Object propertyId) {
- for (Iterator i = forms.iterator(); i.hasNext();) {
- Form f = (Form) i.next();
- Field af = f.getField(propertyId);
- if (af != null)
- return af;
- }
- return null;
- }
-
- public Table getAllProperties() {
- return allProperties;
- }
-
- protected void commit() {
- for (Iterator i = forms.iterator(); i.hasNext();)
- ((Form) i.next()).commit();
- }
-
- private void disableField(Field field) {
- field.setEnabled(false);
- field.setReadOnly(true);
- }
-
- private void disableField(Field field, Object value) {
- field.setValue(value);
- disableField(field);
- }
-
-}
diff --git a/src/com/itmill/toolkit/demo/features/components.png b/src/com/itmill/toolkit/demo/features/components.png
deleted file mode 100644
index e5681d4d37..0000000000
Binary files a/src/com/itmill/toolkit/demo/features/components.png and /dev/null differ
diff --git a/src/com/itmill/toolkit/demo/features/icon_demo.png b/src/com/itmill/toolkit/demo/features/icon_demo.png
deleted file mode 100644
index 6a5c295d6a..0000000000
Binary files a/src/com/itmill/toolkit/demo/features/icon_demo.png and /dev/null differ
diff --git a/src/com/itmill/toolkit/demo/features/icon_intro.png b/src/com/itmill/toolkit/demo/features/icon_intro.png
deleted file mode 100644
index 032712985c..0000000000
Binary files a/src/com/itmill/toolkit/demo/features/icon_intro.png and /dev/null differ
diff --git a/src/com/itmill/toolkit/demo/features/itmill.gif b/src/com/itmill/toolkit/demo/features/itmill.gif
deleted file mode 100644
index b1c3e053f0..0000000000
Binary files a/src/com/itmill/toolkit/demo/features/itmill.gif and /dev/null differ
diff --git a/src/com/itmill/toolkit/demo/features/itmill_spin.swf b/src/com/itmill/toolkit/demo/features/itmill_spin.swf
deleted file mode 100644
index 9e58ce29c6..0000000000
Binary files a/src/com/itmill/toolkit/demo/features/itmill_spin.swf and /dev/null differ
diff --git a/src/com/itmill/toolkit/demo/features/m-bullet-blue.gif b/src/com/itmill/toolkit/demo/features/m-bullet-blue.gif
deleted file mode 100644
index fa6b38b4c9..0000000000
Binary files a/src/com/itmill/toolkit/demo/features/m-bullet-blue.gif and /dev/null differ
diff --git a/src/com/itmill/toolkit/demo/features/m.gif b/src/com/itmill/toolkit/demo/features/m.gif
deleted file mode 100644
index 2201bdfc1c..0000000000
Binary files a/src/com/itmill/toolkit/demo/features/m.gif and /dev/null differ
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/Feature.java b/src/com/itmill/toolkit/tests/featurebrowser/Feature.java
new file mode 100644
index 0000000000..02bbff2e1f
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/Feature.java
@@ -0,0 +1,206 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.terminal.ClassResource;
+import com.itmill.toolkit.terminal.Resource;
+import com.itmill.toolkit.ui.*;
+
+public abstract class Feature extends CustomComponent {
+
+ private static final String PROP_REMINDER_TEXT = ""
+ + "
Note: Use Properties panel located at the top"
+ + " right corner to try out how different properties affect"
+ + " the presentation or functionality of currently selected component.";
+
+ private boolean propsReminder = true;
+
+ private OrderedLayout layout;
+
+ private TabSheet ts;
+
+ private boolean initialized = false;
+
+ private static Resource sampleIcon;
+
+ protected PropertyPanel propertyPanel;
+
+ private Label javadoc;
+
+ private Label description;
+
+ /** Constuctor for the feature component */
+ public Feature() {
+ layout = new OrderedLayout(OrderedLayout.ORIENTATION_VERTICAL);
+ setCompositionRoot(layout);
+ }
+
+ /**
+ * Actual URL consists of "/doc/api/com/itmill/toolkit/"+url
+ *
+ * @param url
+ */
+ public void setJavadocURL(String url) {
+ javadoc
+ .setValue("");
+ }
+
+ /**
+ * Feature component initialization is lazily done when the feature is
+ * attached to application
+ */
+ public void attach() {
+ super.attach();
+
+ // Check if the feature is already initialized
+ if (initialized)
+ return;
+ initialized = true;
+
+ // Javadoc
+ javadoc = new Label();
+ javadoc.setContentMode(Label.CONTENT_XHTML);
+
+ // Demo
+ Component demo = getDemoComponent();
+ if (demo != null)
+ layout.addComponent(demo);
+
+ ts = new TabSheet();
+
+ ts.setWidth(100);
+ ts.setWidthUnits(TabSheet.UNITS_PERCENTAGE);
+ ts.setHeight(100);
+ ts.setHeightUnits(TabSheet.UNITS_PERCENTAGE);
+
+ // Description tab
+ String title = getTitle();
+ if (getDescriptionXHTML() != null) {
+ OrderedLayout mainLayout = new OrderedLayout(
+ OrderedLayout.ORIENTATION_VERTICAL);
+ OrderedLayout layout = new OrderedLayout(
+ OrderedLayout.ORIENTATION_HORIZONTAL);
+ mainLayout.addComponent(layout);
+ if (getImage() != null)
+ layout.addComponent(new Embedded("", new ClassResource(
+ getImage(), this.getApplication())));
+ String label = "";
+ label += getDescriptionXHTML();
+ if (propsReminder)
+ label += PROP_REMINDER_TEXT;
+ if (title != null) {
+ layout.addComponent(new Label("" + title + "
",
+ Label.CONTENT_XHTML));
+ }
+ description = new Label(label, Label.CONTENT_XHTML);
+ mainLayout.addComponent(description);
+
+ ts.addTab(mainLayout, "Description", null);
+ }
+
+ // Properties table tab
+ ts.addTab(getPropertyPanel().getAllProperties(), "Properties", null);
+
+ // Javadoc tab
+ if (!javadoc.getValue().equals(""))
+ ts.addTab(javadoc, "Javadoc", null);
+
+ // Code Sample tab
+ String example = getExampleSrc();
+ if (example != null) {
+ OrderedLayout l = new OrderedLayout();
+ if (getTitle() != null)
+ l.addComponent(new Label(
+ "// " + getTitle() + " example",
+ Label.CONTENT_XHTML));
+ l.addComponent(new Label(example, Label.CONTENT_PREFORMATTED));
+ ts.addTab(l, "Code Sample", null);
+ }
+
+ }
+
+ /** Get the desctiption of the feature as XHTML fragment */
+ protected String getDescriptionXHTML() {
+ return "Feature description is under construction
";
+ }
+
+ /** Get the title of the feature */
+ protected String getTitle() {
+ return this.getClass().getName();
+ }
+
+ public TabSheet getTabSheet() {
+ return ts;
+ }
+
+ /** Get the name of the image file that will be put on description page */
+ protected String getImage() {
+ return null;
+ }
+
+ /** Get the example application source code */
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ /** Get the feature demo component */
+ protected Component getDemoComponent() {
+ return null;
+ }
+
+ /** Get sample icon resource */
+ protected Resource getSampleIcon() {
+ if (sampleIcon == null)
+ sampleIcon = new ClassResource("m.gif", this.getApplication());
+ return sampleIcon;
+ }
+
+ public PropertyPanel getPropertyPanel() {
+ return propertyPanel;
+ }
+
+ public void setPropsReminder(boolean propsReminder) {
+ this.propsReminder = propsReminder;
+ }
+
+ public void updateDescription() {
+ String label = "";
+ label += getDescriptionXHTML();
+ if (propsReminder)
+ label += PROP_REMINDER_TEXT;
+ description.setValue(label);
+ }
+
+ // Fix for #512
+ public Label getDescription() {
+ return description;
+ }
+
+}
\ No newline at end of file
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureBrowser.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureBrowser.java
new file mode 100644
index 0000000000..e7c1014a57
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureBrowser.java
@@ -0,0 +1,282 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import java.util.Iterator;
+import java.util.StringTokenizer;
+
+import com.itmill.toolkit.data.*;
+import com.itmill.toolkit.ui.*;
+import com.itmill.toolkit.ui.Button.ClickEvent;
+import com.itmill.toolkit.ui.Button.ClickListener;
+
+public class FeatureBrowser extends CustomComponent implements
+ Property.ValueChangeListener, ClickListener, Layout {
+
+ private Tree features;
+
+ private Feature currentFeature = null;
+
+ private CustomLayout mainlayout;
+
+ private PropertyPanel properties;
+
+ private boolean initialized = false;
+
+ private Select themeSelector = new Select();
+
+ public void attach() {
+
+ if (initialized)
+ return;
+ initialized = true;
+
+ // Configure tree
+ features = new Tree();
+ features.addContainerProperty("name", String.class, "");
+ features.addContainerProperty("feature", Feature.class, null);
+ features.setItemCaptionPropertyId("name");
+ features.addListener(this);
+ features.setImmediate(true);
+ features.setStyle("menu");
+
+ // Configure component layout
+ mainlayout = new CustomLayout("featurebrowser-mainlayout");
+ setCompositionRoot(mainlayout);
+ mainlayout.addComponent(features, "tree");
+
+ // Theme selector
+ mainlayout.addComponent(themeSelector, "themes");
+ themeSelector.addItem("demo");
+
+ themeSelector.addListener(this);
+ themeSelector.select("demo");
+ themeSelector.setImmediate(true);
+
+ // Restart button
+ Button close = new Button("restart", getApplication(), "close");
+ close.setStyle("link");
+ mainlayout.addComponent(close, "restart");
+
+ // Test component
+ registerFeature("/Welcome", new IntroWelcome());
+ registerFeature("/UI Components", new IntroComponents());
+ registerFeature("/UI Components/Basic", new IntroBasic());
+ registerFeature("/UI Components/Basic/Text Field",
+ new FeatureTextField());
+ registerFeature("/UI Components/Basic/Date Field",
+ new FeatureDateField());
+ registerFeature("/UI Components/Basic/Button", new FeatureButton());
+ registerFeature("/UI Components/Basic/Form", new FeatureForm());
+ registerFeature("/UI Components/Basic/Label", new FeatureLabel());
+ registerFeature("/UI Components/Basic/Link", new FeatureLink());
+ registerFeature("/UI Components/Item Containers",
+ new IntroItemContainers());
+ registerFeature("/UI Components/Item Containers/Select",
+ new FeatureSelect());
+ registerFeature("/UI Components/Item Containers/Table",
+ new FeatureTable());
+ registerFeature("/UI Components/Item Containers/Tree",
+ new FeatureTree());
+ registerFeature("/UI Components/Layouts", new IntroLayouts());
+ registerFeature("/UI Components/Layouts/Ordered Layout",
+ new FeatureOrderedLayout());
+ registerFeature("/UI Components/Layouts/Grid Layout",
+ new FeatureGridLayout());
+ registerFeature("/UI Components/Layouts/Custom Layout",
+ new FeatureCustomLayout());
+ registerFeature("/UI Components/Layouts/Panel", new FeaturePanel());
+ registerFeature("/UI Components/Layouts/Tab Sheet",
+ new FeatureTabSheet());
+ registerFeature("/UI Components/Layouts/Window", new FeatureWindow());
+ // Disabled for now
+ // registerFeature("/UI Components/Layouts/Frame Window",
+ // new FeatureFrameWindow());
+ registerFeature("/UI Components/Data handling", new IntroDataHandling());
+ registerFeature("/UI Components/Data handling/Embedded Objects",
+ new FeatureEmbedded());
+ registerFeature("/UI Components/Data handling/Upload",
+ new FeatureUpload());
+ registerFeature("/Data Model", new IntroDataModel());
+ registerFeature("/Data Model/Properties", new FeatureProperties());
+ registerFeature("/Data Model/Items", new FeatureItems());
+ registerFeature("/Data Model/Containers", new FeatureContainers());
+ registerFeature("/Data Model/Validators", new FeatureValidators());
+ registerFeature("/Data Model/Buffering", new FeatureBuffering());
+ // registerFeature("/Terminal", new IntroTerminal());
+ // registerFeature("/Terminal/Parameters and URI Handling",
+ // new FeatureParameters());
+
+ // Pre-open all menus
+ for (Iterator i = features.getItemIds().iterator(); i.hasNext();)
+ features.expandItem(i.next());
+
+ // Add demo component and tabs
+ currentFeature = new IntroWelcome();
+ mainlayout.addComponent(currentFeature, "demo");
+ mainlayout.addComponent(currentFeature.getTabSheet(), "tabsheet");
+
+ // Add properties
+ properties = currentFeature.getPropertyPanel();
+ mainlayout.addComponent(properties, "properties");
+ }
+
+ public void registerFeature(String path, Feature feature) {
+ StringTokenizer st = new StringTokenizer(path, "/");
+ String id = "";
+ String parentId = null;
+ while (st.hasMoreTokens()) {
+ String token = st.nextToken();
+ id += "/" + token;
+ if (!features.containsId(id)) {
+ features.addItem(id);
+ features.setChildrenAllowed(id, false);
+ }
+ features.getContainerProperty(id, "name").setValue(token);
+ if (parentId != null) {
+ features.setChildrenAllowed(parentId, true);
+ features.setParent(id, parentId);
+ }
+ if (!st.hasMoreTokens())
+ features.getContainerProperty(id, "feature").setValue(feature);
+ parentId = id;
+ }
+ }
+
+ public void valueChange(Property.ValueChangeEvent event) {
+
+ // FIXME: navigation statistics
+ try {
+ if ((event.getProperty().toString() == null)
+ && ((AbstractComponent) event.getProperty()).getTag()
+ .equals("tree")) {
+ // ignore tree initialization
+ } else {
+ FeatureUtil.debug(getApplication().getUser().toString(),
+ "valueChange "
+ + ((AbstractComponent) event.getProperty())
+ .getTag() + ", " + event.getProperty());
+ }
+ } catch (Exception e) {
+ // ignored, should never happen
+ }
+
+ // Change feature
+ if (event.getProperty() == features) {
+ Object id = features.getValue();
+ if (id != null) {
+ if (features.areChildrenAllowed(id))
+ features.expandItem(id);
+ Property p = features.getContainerProperty(id, "feature");
+ Feature feature = p != null ? ((Feature) p.getValue()) : null;
+ if (feature != null) {
+ mainlayout.removeComponent(currentFeature);
+ mainlayout.removeComponent(currentFeature.getTabSheet());
+ mainlayout.addComponent(feature, "demo");
+ mainlayout.addComponent(feature.getTabSheet(), "tabsheet");
+ currentFeature = feature;
+ properties = feature.getPropertyPanel();
+ if (properties != null) {
+ mainlayout.addComponent(properties, "properties");
+ }
+ getWindow()
+ .setCaption(
+ "IT Mill Toolkit Features / "
+ + features.getContainerProperty(id,
+ "name"));
+ }
+ }
+ } else if (event.getProperty() == themeSelector) {
+ getApplication().setTheme(themeSelector.toString());
+ }
+ }
+
+ public void buttonClick(ClickEvent event) {
+ // FIXME: navigation statistics
+ try {
+ FeatureUtil.debug(getApplication().getUser().toString(),
+ "buttonClick " + event.getButton().getTag() + ", "
+ + event.getButton().getCaption() + ", "
+ + event.getButton().getValue());
+ } catch (Exception e) {
+ // ignored, should never happen
+ }
+
+ }
+
+ public void addComponent(Component c) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void addListener(ComponentAttachListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void addListener(ComponentDetachListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public Iterator getComponentIterator() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void moveComponentsFrom(ComponentContainer source) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void removeAllComponents() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void removeComponent(Component c) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void removeListener(ComponentAttachListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void removeListener(ComponentDetachListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void replaceComponent(Component oldComponent, Component newComponent) {
+ // TODO Auto-generated method stub
+
+ }
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureBuffering.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureBuffering.java
new file mode 100644
index 0000000000..a2e2ed8429
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureBuffering.java
@@ -0,0 +1,110 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Select;
+
+public class FeatureBuffering extends Feature {
+
+ private static final String INTRO_TEXT = ""
+ + "IT Mill Toolkit data model provides interface for implementing "
+ + "buffering in data components. The basic idea is that a component "
+ + "reading their state from data source can implement "
+ + "Buffered-interface, for storing the value internally. "
+ + "Buffering provides transactional access "
+ + "for setting data: data can be put to a component's buffer and "
+ + "afterwards committed to or discarded by re-reding it from the data source. "
+ + "The buffering can be used for creating interactive interfaces "
+ + "as well as caching the data for performance reasons."
+ + "
Buffered interface contains methods for committing and discarding "
+ + "changes to an object and support for controlling buffering mode "
+ + "with read-through and write-through modes. "
+ + "Read-through mode means that the value read from the buffered "
+ + "object is constantly up to date with the data source. "
+ + "Respectively the write-through mode means that all changes to the object are "
+ + "immediately updated to the data source.";
+
+ public FeatureBuffering() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+ Panel panel = new Panel();
+ panel.setCaption("Buffering");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(INTRO_TEXT);
+
+ // Properties
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("data/Buffered.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return null;
+ }
+
+ protected String getImage() {
+ return null;
+ }
+
+ protected String getTitle() {
+ return null;
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureButton.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureButton.java
new file mode 100644
index 0000000000..b572870be1
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureButton.java
@@ -0,0 +1,87 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.*;
+
+public class FeatureButton extends Feature {
+
+ public FeatureButton() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Button b = new Button("Caption");
+ l.addComponent(b);
+
+ // Properties
+ propertyPanel = new PropertyPanel(b);
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("link").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("link");
+ Form ap = propertyPanel
+ .createBeanPropertySet(new String[] { "switchMode" });
+ propertyPanel.addProperties("Button Properties", ap);
+
+ setJavadocURL("ui/Button.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "Button b = new Button(\"Caption\");\n";
+
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return "In IT Mill Toolkit, boolean input values are represented by buttons. "
+ + "Buttons may function either as a push buttons or switches. (checkboxes)
"
+ + "Button can be directly connected to any method of an object, which "
+ + "is an easy way to trigger events: new Button(\"Play\", myPiano \"playIt\")
. "
+ + "Or in checkbox-mode they can be bound to a boolean proterties and create "
+ + " simple selectors.
"
+ + "See the demo and try out how the different properties affect "
+ + "the presentation of the component.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "Button";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureContainers.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureContainers.java
new file mode 100644
index 0000000000..4f02c5313b
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureContainers.java
@@ -0,0 +1,113 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Select;
+
+public class FeatureContainers extends Feature {
+
+ private static final String INTRO_TEXT = ""
+ + "Container is the most advanced of the data "
+ + "model supported by IT Mill Toolkit. It provides a very flexible "
+ + "way of managing set of items that share common properties. Each "
+ + "item is identified by an item id. "
+ + "Properties can be requested from container with item "
+ + "and property ids. Other way of accessing properties is to first "
+ + "request an item from container and then request its properties "
+ + "from it."
+ + "
Container interface was designed with flexibility and "
+ + "efficiency in mind. It contains inner interfaces for ordering "
+ + "the items sequentially, indexing the items and accessing them "
+ + "hierarchically. Those ordering models provide basis for "
+ + "Table, Tree and Select UI components. As with other data "
+ + "models, the containers support events for notifying about the "
+ + "changes."
+ + "
Set of utilities for converting between container models by "
+ + "adding external indexing or hierarchy into existing containers. "
+ + "In memory containers implementing indexed and hierarchical "
+ + "models provide easy to use tools for setting up in memory data "
+ + "storages. There is even a hierarchical container for direct "
+ + "file system access.";
+
+ public FeatureContainers() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Panel panel = new Panel();
+ panel.setCaption("Containers");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(INTRO_TEXT);
+
+ // Properties
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("data/Container.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ protected String getDescriptionXHTML() {
+ return null;
+ }
+
+ protected String getImage() {
+ return null;
+ }
+
+ protected String getTitle() {
+ return null;
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureCustomLayout.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureCustomLayout.java
new file mode 100644
index 0000000000..979a8f0fdf
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureCustomLayout.java
@@ -0,0 +1,96 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.*;
+
+public class FeatureCustomLayout extends Feature {
+
+ private static final String INTRO_TEXT = ""
+ + "A container component with freely designed layout and style. The "
+ + "container consists of items with textually represented locations. Each "
+ + "item contains one sub-component. The adapter and theme are resposible "
+ + "for rendering the layout with given style by placing the items on the "
+ + "screen in defined locations."
+ + "
The definition of locations is not fixed - the each style can define its "
+ + "locations in a way that is suitable for it. One typical example would be "
+ + "to create visual design for a website as a custom layout: the visual design "
+ + "could define locations for \"menu\", \"body\" and \"title\" for example. "
+ + "The layout would then be implemented e.g. as plain HTML file."
+ + "
The default theme handles the styles that are not defined by just drawing "
+ + "the subcomponents with flowlayout.";
+
+ protected Component getDemoComponent() {
+ OrderedLayout l = new OrderedLayout();
+
+ Panel panel = new Panel();
+ panel.setCaption("Custom Layout");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(INTRO_TEXT);
+
+ // Properties
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("ui/CustomLayout.html");
+
+ return l;
+ }
+
+ protected String getDescriptionXHTML() {
+ return null;
+ }
+
+ protected String getExampleSrc() {
+ return "CustomLayout c = new CustomLayout(\"mystyle\");\n"
+ + "c.addComponent(new Label(\"Example description\"),\"label1-location\");\n"
+ + "c.addComponent(new Button(\"Example action\"),\"example-action-location\");\n";
+ }
+
+ protected String getImage() {
+ return null;
+ }
+
+ protected String getTitle() {
+ return "Custom Layout";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureDateField.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureDateField.java
new file mode 100644
index 0000000000..2b6317304b
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureDateField.java
@@ -0,0 +1,126 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import java.util.Locale;
+
+import com.itmill.toolkit.data.util.IndexedContainer;
+import com.itmill.toolkit.data.util.MethodProperty;
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.DateField;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Select;
+
+public class FeatureDateField extends Feature {
+
+ static private String[] localeNames;
+ static {
+ Locale[] locales = Locale.getAvailableLocales();
+ localeNames = new String[locales.length];
+ for (int i = 0; i < locales.length; i++)
+ localeNames[i] = locales[i].getDisplayName();
+ }
+
+ public FeatureDateField() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ l.addComponent(new Label("Your default locale is: "
+ + this.getApplication().getLocale().toString()
+ .replace('_', '-')));
+
+ DateField df = new DateField();
+ df.setValue(new java.util.Date());
+ l.addComponent(df);
+
+ // Properties
+ propertyPanel = new PropertyPanel(df);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] {
+ "resolution", "locale" });
+ ap.replaceWithSelect("resolution", new Object[] {
+ new Integer(DateField.RESOLUTION_YEAR),
+ new Integer(DateField.RESOLUTION_MONTH),
+ new Integer(DateField.RESOLUTION_DAY),
+ new Integer(DateField.RESOLUTION_HOUR),
+ new Integer(DateField.RESOLUTION_MIN),
+ new Integer(DateField.RESOLUTION_SEC),
+ new Integer(DateField.RESOLUTION_MSEC) }, new Object[] {
+ "Year", "Month", "Day", "Hour", "Minute", "Second",
+ "Millisecond" });
+ ap.replaceWithSelect("locale", Locale.getAvailableLocales(),
+ localeNames);
+ ap.getField("resolution").setValue(
+ new Integer(DateField.RESOLUTION_DAY));
+ ap.getField("locale").setValue(Locale.getDefault());
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("text").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("text");
+ themes.addItem("calendar").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("calendar");
+ propertyPanel.addProperties("DateField Properties", ap);
+
+ setJavadocURL("ui/DateField.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "DateField df = new DateField(\"Caption\");\n"
+ + "df.setValue(new java.util.Date());\n";
+ }
+
+ protected String getDescriptionXHTML() {
+ return "Representing Dates and times and providing a way to select "
+ + "or enter some specific date and/or time is an typical need in "
+ + "data-entry user interfaces (UI). IT Mill Toolkit provides a DateField "
+ + "component that is intuitive to use and yet controllable through "
+ + "its properties."
+ + "
The calendar-style allows point-and-click selection "
+ + "of dates while text-style shows only minimalistic user interface."
+ + " Validators may be bound to the component to check and "
+ + "validate the given input."
+ + "
On the demo tab you can try out how the different properties affect the "
+ + "presentation of the component.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "DateField";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureEmbedded.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureEmbedded.java
new file mode 100644
index 0000000000..008e25531d
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureEmbedded.java
@@ -0,0 +1,112 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.terminal.ClassResource;
+import com.itmill.toolkit.terminal.Sizeable;
+import com.itmill.toolkit.ui.*;
+
+public class FeatureEmbedded extends Feature {
+
+ public FeatureEmbedded() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ ClassResource flashResource = new ClassResource("itmill_spin.swf",
+ getApplication());
+ Embedded emb = new Embedded("Embedded Caption", flashResource);
+ emb.setType(Embedded.TYPE_OBJECT);
+ emb.setMimeType("application/x-shockwave-flash");
+ emb.setWidth(250);
+ emb.setHeight(100);
+ l.addComponent(emb);
+
+ // Properties
+ propertyPanel = new PropertyPanel(emb);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "type",
+ "source", "width", "height", "widthUnits", "heightUnits",
+ "codebase", "codetype", "archive", "mimeType", "standby",
+ "classId" });
+ ap.replaceWithSelect("type", new Object[] {
+ new Integer(Embedded.TYPE_IMAGE),
+ new Integer(Embedded.TYPE_OBJECT) }, new Object[] { "Image",
+ "Object" });
+ Object[] units = new Object[Sizeable.UNIT_SYMBOLS.length];
+ Object[] symbols = new Object[Sizeable.UNIT_SYMBOLS.length];
+ for (int i = 0; i < units.length; i++) {
+ units[i] = new Integer(i);
+ symbols[i] = Sizeable.UNIT_SYMBOLS[i];
+ }
+ ap.replaceWithSelect("heightUnits", units, symbols);
+ ap.replaceWithSelect("widthUnits", units, symbols);
+ ap.replaceWithSelect("source", new Object[] { flashResource },
+ new Object[] { "itmill_spin.swf" });
+ propertyPanel.addProperties("Embedded Properties", ap);
+ propertyPanel.getField("standby").setDescription(
+ "The text to display while loading the object.");
+ propertyPanel.getField("codebase").setDescription(
+ "root-path used to access resources with relative paths.");
+ propertyPanel.getField("codetype").setDescription(
+ "MIME-type of the code.");
+ propertyPanel
+ .getField("classId")
+ .setDescription(
+ "Unique object id. This can be used for example to identify windows components.");
+
+ setJavadocURL("ui/Embedded.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "// Load image from jpg-file, that is in the same package with the application\n"
+ + "Embedded e = new Embedded(\"Image title\",\n"
+ + " new ClassResource(\"image.jpg\", getApplication()));";
+ }
+
+ protected String getDescriptionXHTML() {
+ return "The embedding feature allows for adding images, multimedia and other non-specified "
+ + "content to your application. "
+ + "The feature has provisions for embedding both applets and Active X controls. "
+ + "Actual support for embedded media types is left to the terminal.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "Embedded";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureForm.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureForm.java
new file mode 100644
index 0000000000..e84dfa22dd
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureForm.java
@@ -0,0 +1,191 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import java.util.Date;
+
+import com.itmill.toolkit.data.Property;
+import com.itmill.toolkit.ui.*;
+
+public class FeatureForm extends Feature implements
+ Property.ValueChangeListener {
+
+ OrderedLayout demo = null;
+
+ Form test;
+
+ Layout formLayout = null;
+
+ Select addField = new Select("Add field");
+
+ Select resetLayout = new Select("Restart");
+
+ protected Component getDemoComponent() {
+
+ if (demo == null) {
+ demo = new OrderedLayout();
+ createDemo();
+ }
+
+ setJavadocURL("ui/Form.html");
+
+ return demo;
+ }
+
+ private void createDemo() {
+
+ demo.removeAllComponents();
+
+ // Test form
+ if (formLayout == null)
+ test = new Form();
+ else
+ test = new Form(formLayout);
+
+ demo.addComponent(test);
+ OrderedLayout actions = new OrderedLayout(
+ OrderedLayout.ORIENTATION_HORIZONTAL);
+ demo.addComponent(actions);
+
+ // form adder
+ addField.setImmediate(true);
+ addField.addItem("Add field");
+ addField.setNullSelectionItemId("Add field");
+ addField.addItem("Text field");
+ addField.addItem("Time");
+ addField.addItem("Option group");
+ addField.addItem("Calendar");
+ addField.addListener(this);
+ actions.addComponent(addField);
+
+ // Layout reset
+ resetLayout.setImmediate(true);
+ resetLayout.addItem("Select layout example");
+ resetLayout.setNullSelectionItemId("Select layout example");
+ resetLayout.addItem("Vertical form (OrderedLayout form-style)");
+ resetLayout.addItem("Two columns (2x1 GridLayout)");
+ resetLayout.addItem("Flow (OrderedLayout flow-orientation)");
+ resetLayout.addListener(this);
+ actions.addComponent(resetLayout);
+
+ // Properties
+ propertyPanel = new PropertyPanel(test);
+ propertyPanel.addProperties("Form special properties", new Form());
+ }
+
+ public void valueChange(Property.ValueChangeEvent event) {
+
+ if (event.getProperty() == resetLayout) {
+
+ String value = (String) resetLayout.getValue();
+
+ if (value != null) {
+ formLayout = null;
+
+ if (value.equals("Two columns (2x1 GridLayout)"))
+ formLayout = new GridLayout(2, 1);
+ if (value.equals("Horizontal (OrderedLayout)"))
+ formLayout = new OrderedLayout(
+ OrderedLayout.ORIENTATION_HORIZONTAL);
+
+ createDemo();
+ resetLayout.setValue(null);
+ }
+ }
+
+ if (event.getProperty() == addField) {
+
+ String value = (String) addField.getValue();
+
+ if (value != null) {
+ if (value.equals("Text field"))
+ test.addField(new Object(), new TextField("Test field"));
+ if (value.equals("Time")) {
+ DateField d = new DateField("Time", new Date());
+ d
+ .setDescription("This is a DateField-component with text-style");
+ d.setResolution(DateField.RESOLUTION_MIN);
+ d.setStyle("text");
+ test.addField(new Object(), d);
+ }
+ if (value.equals("Calendar")) {
+ DateField c = new DateField("Calendar", new Date());
+ c
+ .setDescription("DateField-component with calendar-style and day-resolution");
+ c.setStyle("calendar");
+ c.setResolution(DateField.RESOLUTION_DAY);
+ test.addField(new Object(), c);
+ }
+ if (value.equals("Option group")) {
+ Select s = new Select("Options");
+ s.setDescription("Select-component with optiongroup-style");
+ s.addItem("Linux");
+ s.addItem("Windows");
+ s.addItem("Solaris");
+ s.addItem("Symbian");
+ s.setStyle("optiongroup");
+
+ test.addField(new Object(), s);
+ }
+
+ addField.setValue(null);
+ }
+ }
+ }
+
+ protected String getDescriptionXHTML() {
+ return "Form is a flexible, yet simple container for fields. "
+ + " It provides support for any layouts and provides buffering interface for"
+ + " easy connection of commit- and discard buttons. All the form"
+ + " fields can be customized by adding validators, setting captions and icons, "
+ + " setting immediateness, etc. Also direct mechanism for replacing existing"
+ + " fields with selections is given."
+ + "
Form provides customizable editor for classes implementing"
+ + " Item-interface. Also the form itself"
+ + " implements this interface for easier connectivity to other items."
+ + " To use the form as editor for an item, just connect the item to"
+ + " form.After the item has been connected to the form,"
+ + " the automatically created fields can be customized and new fields can"
+ + " be added. If you need to connect a class that does not implement"
+ + " Item-interface, most properties of any"
+ + " class following bean pattern, can be accessed trough"
+ + " BeanItem."
+ + "
The best example of Form usage is the this feature browser itself; "
+ + " all the Property-panels in demos are composed of Form-components.";
+ }
+
+ protected String getTitle() {
+ return "Form";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureFrameWindow.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureFrameWindow.java
new file mode 100644
index 0000000000..62bd3bd9a0
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureFrameWindow.java
@@ -0,0 +1,166 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import java.util.HashMap;
+import java.util.List;
+
+import com.itmill.toolkit.ui.*;
+import com.itmill.toolkit.ui.Button.ClickEvent;
+
+public class FeatureFrameWindow extends Feature implements Button.ClickListener {
+
+ private Button addButton = new Button("Add to application", this, "addWin");
+
+ private Button removeButton = new Button("Remove from application", this,
+ "delWin");
+
+ private FrameWindow demoWindow;
+
+ private HashMap windowToFramesetMap = new HashMap();
+
+ private int count = 0;
+
+ protected Component getDemoComponent() {
+ OrderedLayout l = new OrderedLayout();
+ demoWindow = new FrameWindow("Feature Test Window");
+ demoWindow.getFrameset()
+ .newFrame(createFrame(demoWindow.getFrameset()));
+
+ l.addComponent(addButton);
+ l.addComponent(removeButton);
+ updateWinStatus();
+
+ // Properties
+ propertyPanel = new PropertyPanel(demoWindow);
+ propertyPanel.dependsOn(addButton);
+ propertyPanel.dependsOn(removeButton);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height", "name", "border", "theme" });
+ ap.replaceWithSelect("border", new Object[] {
+ new Integer(Window.BORDER_DEFAULT),
+ new Integer(Window.BORDER_NONE),
+ new Integer(Window.BORDER_MINIMAL) }, new Object[] { "Default",
+ "None", "Minimal" });
+
+ propertyPanel.addProperties("FrameWindow Properties", ap);
+
+ setJavadocURL("ui/FrameWindow.html");
+
+ return l;
+ }
+
+ protected String getDescriptionXHTML() {
+ return "This component implements a window that contains a hierarchical set of frames. "
+ + "Each frame can contain a web-page, window or a set of frames that divides the space "
+ + "horizontally or vertically.
";
+ }
+
+ protected String getExampleSrc() {
+ return "FrameWindow f = new FrameWindow(\"Frame example\");\n"
+ + "f.getFrameset().newFrame(window);\n"
+ + "f.getFrameset().newFrame(resource,\"targetName\");\n";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "FrameWindow";
+ }
+
+ public void addWin() {
+ getApplication().addWindow(demoWindow);
+ updateWinStatus();
+ }
+
+ public void delWin() {
+ getApplication().removeWindow(demoWindow);
+ updateWinStatus();
+ }
+
+ private void updateWinStatus() {
+ if (demoWindow.getApplication() == null) {
+ addButton.setEnabled(true);
+ removeButton.setEnabled(false);
+ } else {
+ addButton.setEnabled(false);
+ removeButton.setEnabled(true);
+ }
+ }
+
+ public void buttonClick(ClickEvent event) {
+
+ if (event.getButton().getCaption().equals("Remove")) {
+ Window w = event.getButton().getWindow();
+ FrameWindow.Frameset fs = (FrameWindow.Frameset) windowToFramesetMap
+ .get(w);
+ if (fs == demoWindow.getFrameset() && fs.size() <= 1) {
+ // Do not remove the last frame
+ } else if (fs.size() > 1) {
+ fs.removeFrame(fs.getFrame(w.getName()));
+ windowToFramesetMap.remove(w);
+ } else {
+ FrameWindow.Frameset p = fs.getParentFrameset();
+ if (p != demoWindow.getFrameset() || p.size() > 1)
+ p.removeFrame(fs);
+ if (p.size() == 0)
+ p.newFrame(createFrame(p));
+ }
+ }
+
+ if (event.getButton().getCaption().equals("Split")) {
+ Window w = event.getButton().getWindow();
+ FrameWindow.Frameset fs = (FrameWindow.Frameset) windowToFramesetMap
+ .get(w);
+ int index = 0;
+ List l = fs.getFrames();
+ while (index < l.size() && fs.getFrame(index).getWindow() != w)
+ index++;
+ fs.removeFrame(fs.getFrame(w.getName()));
+ windowToFramesetMap.remove(w);
+ if (index > fs.size())
+ index = fs.size();
+ fs = fs.newFrameset((Math.random() > 0.5), index);
+ for (int i = 2 + (int) (Math.random() * 2.0); i > 0; i--)
+ fs.newFrame(createFrame(fs));
+ }
+ }
+
+ private Window createFrame(FrameWindow.Frameset fs) {
+ Window w = new Window();
+ w.addComponent(new Label("Frame: " + (++count) + "",
+ Label.CONTENT_UIDL));
+ w.addComponent(new Button("Split", this));
+ w.addComponent(new Button("Remove", this));
+ windowToFramesetMap.put(w, fs);
+ return w;
+ }
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureGridLayout.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureGridLayout.java
new file mode 100644
index 0000000000..0165f617d2
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureGridLayout.java
@@ -0,0 +1,93 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import java.util.Date;
+
+import com.itmill.toolkit.ui.*;
+
+public class FeatureGridLayout extends Feature {
+
+ public FeatureGridLayout() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ GridLayout gl = new GridLayout(3, 3);
+ DateField cal = new DateField("Test component 1", new Date());
+ cal.setStyle("calendar");
+ gl.addComponent(cal, 1, 0, 2, 1);
+ for (int i = 2; i < 7; i++)
+ gl.addComponent(new TextField("Test component " + i));
+ l.addComponent(gl);
+
+ // Properties
+ propertyPanel = new PropertyPanel(gl);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ ap.addField("new line", new Button("New Line", gl, "newLine"));
+ ap.addField("space", new Button("Space", gl, "space"));
+ propertyPanel.addProperties("GridLayout Features", ap);
+ propertyPanel.getField("height").dependsOn(
+ propertyPanel.getField("add component"));
+
+ setJavadocURL("ui/GridLayout.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "GridLayout gl = new GridLayout(2,2);\n"
+ + "gl.addComponent(new Label(\"Label 1 in GridLayout\"));\n"
+ + "gl.addComponent(new Label(\"Label 2 in GridLayout\"));\n"
+ + "gl.addComponent(new Label(\"Label 3 in GridLayout\"));\n"
+ + "gl.addComponent(new Label(\"Label 4 in GridLayout\"));\n";
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return "This feature provides a container that lays out components "
+ + "into a grid of given width and height."
+ + "
On the demo tab you can try out how the different "
+ + "properties affect the presentation of the component.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "GridLayout";
+ }
+}
\ No newline at end of file
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureItems.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureItems.java
new file mode 100644
index 0000000000..45406d5584
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureItems.java
@@ -0,0 +1,106 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Select;
+
+public class FeatureItems extends Feature {
+
+ private static final String INTRO_TEXT = ""
+ + "Item is an object, which contains a set of named "
+ + "properties. Each property is identified by an "
+ + "id and a reference to the property can be queried from the Item. "
+ + "Item defines inner-interfaces for maintaining the item property "
+ + "set and listening the item property set changes."
+ + "
Items generally represent objects in the object-oriented "
+ + "model, but with the exception that they are configurable "
+ + "and provide an event mechanism. The simplest way of utilizing "
+ + "Item interface is to use existing Item implementations. "
+ + "Provided utility classes include configurable property set,"
+ + " bean to item adapter and Form UI component.";
+
+ public FeatureItems() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Panel panel = new Panel();
+ panel.setCaption("Items");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(INTRO_TEXT);
+
+ // Properties
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("data/Item.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return null;
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "Introduction of Data Model Item";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureLabel.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureLabel.java
new file mode 100644
index 0000000000..7afb65604b
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureLabel.java
@@ -0,0 +1,95 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.*;
+
+public class FeatureLabel extends Feature {
+
+ public FeatureLabel() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Label lab = new Label("Label text");
+ l.addComponent(lab);
+
+ // Properties
+ propertyPanel = new PropertyPanel(lab);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] {
+ "contentMode", "value" });
+ ap.replaceWithSelect("contentMode", new Object[] {
+ new Integer(Label.CONTENT_PREFORMATTED),
+ new Integer(Label.CONTENT_TEXT),
+ new Integer(Label.CONTENT_UIDL),
+ new Integer(Label.CONTENT_XHTML),
+ new Integer(Label.CONTENT_XML) },
+ new Object[] { "Preformatted", "Text", "UIDL (Must be valid)",
+ "XHTML Fragment(Must be valid)",
+ "XML (Subtree with namespace)" });
+ propertyPanel.addProperties("Label Properties", ap);
+
+ setJavadocURL("ui/Label.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "Label l = new Label(\"Caption\");\n";
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return "Labels components are for captions and plain text. "
+ + "By default, it is a light-weight component for presenting "
+ + "text content in application, but it can be also used to present "
+ + "formatted information and even XML."
+ + "
"
+ + "Label can also be directly associated with data property to display "
+ + "information from different data sources automatically. This makes it "
+ + "trivial to present the current user in the corner of applications main window. "
+ + "
"
+ + "On the demo tab you can try out how the different properties affect "
+ + "the presentation of the component.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "Label";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureLink.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureLink.java
new file mode 100644
index 0000000000..798df0b15e
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureLink.java
@@ -0,0 +1,84 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.terminal.ExternalResource;
+import com.itmill.toolkit.ui.*;
+
+public class FeatureLink extends Feature {
+
+ public FeatureLink() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Link lnk = new Link("Link caption", new ExternalResource(
+ "http://www.itmill.com"));
+ l.addComponent(lnk);
+
+ // Properties
+ propertyPanel = new PropertyPanel(lnk);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] {
+ "targetName", "targetWidth", "targetHeight", "targetBorder" });
+ ap.replaceWithSelect("targetBorder", new Object[] {
+ new Integer(Link.TARGET_BORDER_DEFAULT),
+ new Integer(Link.TARGET_BORDER_MINIMAL),
+ new Integer(Link.TARGET_BORDER_NONE) }, new Object[] {
+ "Default", "Minimal", "None" });
+ propertyPanel.addProperties("Link Properties", ap);
+
+ setJavadocURL("ui/Link.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "Link link = new Link(\"Link caption\",new ExternalResource(\"http://www.itmill.com\"));\n";
+ }
+
+ protected String getDescriptionXHTML() {
+ return "The link feature allows for making refences to both internal and external resources. "
+ + "The link can open the new resource in a new window, allowing for control of the newly "
+ + "opened windows attributes, such as size and border. "
+ + "
"
+ + " For example you can create an application pop-up or create link to external resources.";
+
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "Link";
+ }
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureOrderedLayout.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureOrderedLayout.java
new file mode 100644
index 0000000000..5d18cd8870
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureOrderedLayout.java
@@ -0,0 +1,95 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.*;
+
+public class FeatureOrderedLayout extends Feature {
+
+ public FeatureOrderedLayout() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ OrderedLayout ol = new OrderedLayout();
+ for (int i = 1; i < 5; i++)
+ ol.addComponent(new TextField("Test component " + i));
+ l.addComponent(ol);
+
+ // Properties
+ propertyPanel = new PropertyPanel(ol);
+ Form ap = propertyPanel
+ .createBeanPropertySet(new String[] { "orientation" });
+ ap.replaceWithSelect("orientation", new Object[] {
+ new Integer(OrderedLayout.ORIENTATION_HORIZONTAL),
+ new Integer(OrderedLayout.ORIENTATION_VERTICAL) },
+ new Object[] { "Horizontal", "Vertical" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("form").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("form");
+ propertyPanel.addProperties("OrderedLayout Properties", ap);
+
+ setJavadocURL("ui/OrderedLayout.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "OrderedLayout ol = new OrderedLayout(OrderedLayout.ORIENTATION_FLOW);\n"
+ + "ol.addComponent(new TextField(\"Textfield caption\"));\n"
+ + "ol.addComponent(new Label(\"Label\"));\n";
+
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return "This feature provides a container for laying out components either "
+ + "vertically, horizontally or flowingly. The orientation may be changed "
+ + "during runtime. It also defines a special style for themes to implement called \"form\""
+ + "that is used for input forms where the components are laid-out side-by-side "
+ + "with their captions."
+ + "
"
+ + "On the demo tab you can try out how the different properties "
+ + "affect the presentation of the component.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "OrderedLayout";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeaturePanel.java b/src/com/itmill/toolkit/tests/featurebrowser/FeaturePanel.java
new file mode 100644
index 0000000000..efadad36c4
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeaturePanel.java
@@ -0,0 +1,87 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.*;
+
+public class FeaturePanel extends Feature {
+
+ public FeaturePanel() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ // Example panel
+ Panel show = new Panel("Panel caption");
+ show
+ .addComponent(new Label(
+ "This is an example Label component that is added into Panel."));
+ l.addComponent(show);
+
+ // Properties
+ propertyPanel = new PropertyPanel(show);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("ui/Panel.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "Panel show = new Panel(\"Panel caption\");\n"
+ + "show.addComponent(new Label(\"This is an example Label component that is added into Panel.\"));";
+
+ }
+
+ protected String getDescriptionXHTML() {
+ return "Panel is a container for other components, by default it draws a frame around it's "
+ + "extremities and may have a caption to clarify the nature of the contained components' purpose."
+ + " Panel contains an layout where the actual contained components are added, "
+ + "this layout may be switched on the fly.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "Panel";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureParameters.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureParameters.java
new file mode 100644
index 0000000000..18a2a9bef6
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureParameters.java
@@ -0,0 +1,177 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import java.net.URL;
+import java.util.Iterator;
+import java.util.Map;
+
+import com.itmill.toolkit.terminal.DownloadStream;
+import com.itmill.toolkit.terminal.ExternalResource;
+import com.itmill.toolkit.terminal.ParameterHandler;
+import com.itmill.toolkit.terminal.URIHandler;
+import com.itmill.toolkit.ui.*;
+
+public class FeatureParameters extends Feature implements URIHandler,
+ ParameterHandler {
+
+ private Label context = new Label();
+
+ private Label relative = new Label();
+
+ private Table params = new Table();
+
+ public FeatureParameters() {
+ super();
+ params.addContainerProperty("Values", String.class, "");
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Label info = new Label("To test this feature, try to "
+ + "add some get parameters to URL. For example if you have "
+ + "the feature browser installed in your local host, try url: ");
+ info.setCaption("Usage info");
+ l.addComponent(info);
+ try {
+ URL u1 = new URL(getApplication().getURL(),
+ "test/uri?test=1&test=2");
+ URL u2 = new URL(getApplication().getURL(),
+ "foo/bar?mary=john&count=3");
+
+ l.addComponent(new Link(u1.toString(), new ExternalResource(u1)));
+ l.addComponent(new Label("Or this: "));
+ l.addComponent(new Link(u2.toString(), new ExternalResource(u2)));
+ } catch (Exception e) {
+ System.out.println("Couldn't get hostname for this machine: "
+ + e.toString());
+ e.printStackTrace();
+ }
+
+ // URI
+ Panel p1 = new Panel("URI Handler");
+ context.setCaption("Last URI handler context");
+ p1.addComponent(context);
+ relative.setCaption("Last relative URI");
+ p1.addComponent(relative);
+ l.addComponent(p1);
+
+ // Parameters
+ Panel p2 = new Panel("Parameter Handler");
+ params.setCaption("Last parameters");
+ params.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_ID);
+ params.setRowHeaderMode(Table.ROW_HEADER_MODE_ID);
+ p2.addComponent(params);
+ l.addComponent(p2);
+
+ // Properties
+ propertyPanel = new PropertyPanel(p1);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("ui/Panel.html");
+
+ return l;
+ }
+
+ protected String getDescriptionXHTML() {
+ return "This is a demonstration of how URL parameters can be recieved and handled."
+ + "Parameters and URL:s can be received trough the windows by registering "
+ + "URIHandler and ParameterHandler classes window.";
+ }
+
+ protected String getImage() {
+ return "parameters.jpg";
+ }
+
+ protected String getTitle() {
+ return "Parameters";
+ }
+
+ /**
+ * Add URI and parametes handlers to window.
+ *
+ * @see com.itmill.toolkit.ui.Component#attach()
+ */
+ public void attach() {
+ super.attach();
+ getWindow().addURIHandler(this);
+ getWindow().addParameterHandler(this);
+ }
+
+ /**
+ * Remove all handlers from window
+ *
+ * @see com.itmill.toolkit.ui.Component#detach()
+ */
+ public void detach() {
+ super.detach();
+ getWindow().removeURIHandler(this);
+ getWindow().removeParameterHandler(this);
+ }
+
+ /**
+ * Update URI
+ *
+ * @see com.itmill.toolkit.terminal.URIHandler#handleURI(URL, String)
+ */
+ public DownloadStream handleURI(URL context, String relativeUri) {
+ this.context.setValue(context.toString());
+ this.relative.setValue(relativeUri);
+ return null;
+ }
+
+ /**
+ * Update parameters table
+ *
+ * @see com.itmill.toolkit.terminal.ParameterHandler#handleParameters(Map)
+ */
+ public void handleParameters(Map parameters) {
+ params.removeAllItems();
+ for (Iterator i = parameters.keySet().iterator(); i.hasNext();) {
+ String name = (String) i.next();
+ String[] values = (String[]) parameters.get(name);
+ String v = "";
+ for (int j = 0; j < values.length; j++) {
+ if (v.length() > 0)
+ v += ", ";
+ v += "'" + values[j] + "'";
+ }
+ params.addItem(new Object[] { v }, name);
+ }
+ }
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureProperties.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureProperties.java
new file mode 100644
index 0000000000..b3c8a55c67
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureProperties.java
@@ -0,0 +1,111 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Select;
+
+public class FeatureProperties extends Feature {
+
+ private static final String INTRO_TEXT = ""
+ + "IT Mill Toolkit data model is one of the core concepts "
+ + "in the library and Property-interface is the base of that "
+ + "model. Property provides standardized API for a single data object "
+ + "that can be read (get) and written (set). A property is always typed, but can optionally "
+ + "support data type conversions. Optionally properties can provide "
+ + "value change events for following the state changes."
+ + "
The most important function of the Property as well as other "
+ + "data models is to connect classes implementing the interface directly to "
+ + "editor and viewer classes. Typically this is used to connect different "
+ + "data sources to UI components for editing and viewing their contents."
+ + "
Properties can be utilized either by implementing the interface "
+ + "or by using some of the existing property implementations. IT Mill Toolkit "
+ + "includes Property interface implementations for "
+ + "arbitrary function pairs or Bean-properties as well as simple object "
+ + "properties."
+ + "
Many of the UI components also implement Property interface and allow "
+ + "setting of other components as their data-source. These UI-components "
+ + "include TextField, DateField, Select, Table, Button, "
+ + "Label and Tree.";
+
+ public FeatureProperties() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Panel panel = new Panel();
+ panel.setCaption("Data Model");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(INTRO_TEXT);
+
+ // Properties
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("data/Property.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ protected String getDescriptionXHTML() {
+ return null;
+ }
+
+ protected String getImage() {
+ return null;
+ }
+
+ protected String getTitle() {
+ return null;
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureSelect.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureSelect.java
new file mode 100644
index 0000000000..0e8fd5400d
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureSelect.java
@@ -0,0 +1,106 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.*;
+
+public class FeatureSelect extends Feature {
+
+ private static final String[] firstnames = new String[] { "John", "Mary",
+ "Joe", "Sarah", "Jeff", "Jane", "Peter", "Marc", "Robert", "Paula",
+ "Lenny", "Kenny", "Nathan", "Nicole", "Laura", "Jos", "Josie",
+ "Linus" };
+
+ private static final String[] lastnames = new String[] { "Torvalds",
+ "Smith", "Adams", "Black", "Wilson", "Richards", "Thompson",
+ "McGoff", "Halas", "Jones", "Beck", "Sheridan", "Picard", "Hill",
+ "Fielding", "Einstein" };
+
+ public FeatureSelect() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Select s = new Select("Select employee");
+ for (int i = 0; i < 50; i++)
+ s
+ .addItem(firstnames[(int) (Math.random() * (firstnames.length - 1))]
+ + " "
+ + lastnames[(int) (Math.random() * (lastnames.length - 1))]);
+ l.addComponent(s);
+
+ // Properties
+ propertyPanel = new PropertyPanel(s);
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("optiongroup").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("optiongroup");
+ themes.addItem("twincol").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("twincol");
+
+ setJavadocURL("ui/Select.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "Select s = new Select(\"Select Car\");\n"
+ + "s.addItem(\"Audi\");\n" + "s.addItem(\"BMW\");\n"
+ + "s.addItem(\"Chrysler\");\n" + "s.addItem(\"Volvo\");\n";
+
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return "The select component combines two different modes of item selection. "
+ + "Firstly it presents the single selection mode, which is usually represented as "
+ + "either a drop-down menu or a radio-group of switches, secondly it "
+ + "allows for multiple item selection, this is usually represented as either a "
+ + "listbox of selectable items or as a group of checkboxes."
+ + "
"
+ + "Data source can be associated both with selected item and the list of selections. "
+ + "This way you can easily present a selection based on items specified elsewhere in application. "
+ + "
"
+ + "On the demo tab you can try out how the different properties affect the"
+ + " presentation of the component.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "Select";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureTabSheet.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureTabSheet.java
new file mode 100644
index 0000000000..2059f37845
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureTabSheet.java
@@ -0,0 +1,91 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.*;
+
+public class FeatureTabSheet extends Feature {
+
+ public FeatureTabSheet() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ TabSheet ts = new TabSheet();
+ ts
+ .addTab(
+ new Label(
+ "This is an example Label component that is added into Tab 1."),
+ "Tab 1 caption", null);
+ ts
+ .addTab(
+ new Label(
+ "This is an example Label component that is added into Tab 2."),
+ "Tab 2 caption", null);
+ ts
+ .addTab(
+ new Label(
+ "This is an example Label component that is added into Tab 3."),
+ "Tab 3 caption", null);
+ l.addComponent(ts);
+
+ // Properties
+ propertyPanel = new PropertyPanel(ts);
+
+ setJavadocURL("ui/TabSheet.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "TabSheet ts = new TabSheet();\n"
+ + "ts.addTab(new Label(\"This is an example Label component that is added into Tab 1.\"),\"Tab 1 caption\",null);\n"
+ + "ts.addTab(new Label(\"This is an example Label component that is added into Tab 2.\"),\"Tab 2 caption\",null);\n"
+ + "ts.addTab(new Label(\"This is an example Label component that is added into Tab 3.\"),\"Tab 3 caption\",null);";
+ }
+
+ protected String getDescriptionXHTML() {
+ return "A multicomponent container with tabs for switching between them.
"
+ + "In the normal case, one would place a layout component on each tab.
"
+ + "On the demo tab you can try out how the different properties affect "
+ + "the presentation of the component.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "TabSheet";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureTable.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureTable.java
new file mode 100644
index 0000000000..c042614a79
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureTable.java
@@ -0,0 +1,218 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.event.Action;
+import com.itmill.toolkit.ui.Button;
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Select;
+import com.itmill.toolkit.ui.Table;
+
+public class FeatureTable extends Feature implements Action.Handler {
+
+ private static final String[] firstnames = new String[] { "John", "Mary",
+ "Joe", "Sarah", "Jeff", "Jane", "Peter", "Marc", "Josie", "Linus" };
+
+ private static final String[] lastnames = new String[] { "Torvalds",
+ "Smith", "Jones", "Beck", "Sheridan", "Picard", "Hill", "Fielding",
+ "Einstein" };
+
+ private static final String[] title = new String[] { "Project Manager",
+ "Marketing Manager", "Sales Manager", "Trainer", "IT Support",
+ "Account Manager", "Customer Support", "Testing Engineer",
+ "Software Designer", "Programmer", "Consultant" };
+
+ private static final String[] unit = new String[] { "Tokyo", "Mexico City",
+ "Seoul", "New York", "Sao Paulo", "Bombay", "Delhi", "Shanghai",
+ "Los Angeles", "London", "Bangalore", "Hong Kong", "Madrid",
+ "Milano", "Beijing", "Paris", "Moscow", "Helsinki" };
+
+ private Table t;
+
+ private boolean actionsActive = false;
+
+ private Button actionHandlerSwitch = new Button("Activate actions", this,
+ "toggleActions");
+
+ public void toggleActions() {
+ if (actionsActive) {
+ t.removeActionHandler(this);
+ actionsActive = false;
+ actionHandlerSwitch.setCaption("Activate Actions");
+ } else {
+ t.addActionHandler(this);
+ actionsActive = true;
+ actionHandlerSwitch.setCaption("Deactivate Actions");
+ }
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ // Sample table
+ t = new Table("Corporate Employees");
+ t.setPageLength(10);
+ l.addComponent(t);
+
+ // Add columns to table
+ t.addContainerProperty("Firstname", String.class, "");
+ t.addContainerProperty("Lastname", String.class, "");
+ t.addContainerProperty("Title", String.class, "");
+ t.addContainerProperty("Unit", String.class, "");
+
+ // set alignments to demonstrate features
+ t.setColumnAlignment("Title", Table.ALIGN_CENTER);
+ t.setColumnAlignment("Unit", Table.ALIGN_RIGHT);
+
+ // Add random rows to table
+ for (int j = 0; j < 300; j++) {
+ t
+ .addItem(
+ new Object[] {
+ firstnames[(int) (Math.random() * (firstnames.length - 1))],
+ lastnames[(int) (Math.random() * (lastnames.length - 1))],
+ title[(int) (Math.random() * title.length)],
+ unit[(int) (Math.random() * unit.length)] },
+ new Integer(j));
+ }
+
+ // Actions
+ l.addComponent(this.actionHandlerSwitch);
+
+ // Properties
+ propertyPanel = new PropertyPanel(t);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] {
+ "pageLength", "rowHeaderMode", "selectable",
+ "columnHeaderMode", "columnCollapsingAllowed",
+ "columnReorderingAllowed", "width", "height" });
+ ap.replaceWithSelect("columnHeaderMode", new Object[] {
+ new Integer(Table.COLUMN_HEADER_MODE_EXPLICIT),
+ new Integer(Table.COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID),
+ new Integer(Table.COLUMN_HEADER_MODE_HIDDEN),
+ new Integer(Table.COLUMN_HEADER_MODE_ID) }, new Object[] {
+ "Explicit", "Explicit defaults ID", "Hidden", "ID" });
+ ap.replaceWithSelect("rowHeaderMode", new Object[] {
+ new Integer(Table.ROW_HEADER_MODE_EXPLICIT),
+ new Integer(Table.ROW_HEADER_MODE_EXPLICIT_DEFAULTS_ID),
+ new Integer(Table.ROW_HEADER_MODE_HIDDEN),
+ new Integer(Table.ROW_HEADER_MODE_ICON_ONLY),
+ new Integer(Table.ROW_HEADER_MODE_ID),
+ new Integer(Table.ROW_HEADER_MODE_INDEX),
+ new Integer(Table.ROW_HEADER_MODE_ITEM),
+ new Integer(Table.ROW_HEADER_MODE_PROPERTY) }, new Object[] {
+ "Explicit", "Explicit defaults ID", "Hidden", "Icon only",
+ "ID", "Index", "Item", "Property" });
+
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("list").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("list");
+ themes.addItem("paging").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("paging");
+
+ propertyPanel.addProperties("Table Properties", ap);
+
+ // Set first name as item caption propertyId in cas somebody selecs it
+ t.setItemCaptionPropertyId("Firstname");
+
+ // this overrides previous
+ t.setRowHeaderMode(Table.ROW_HEADER_MODE_INDEX);
+ t.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID);
+
+ t.setColumnCollapsingAllowed(true);
+ t.setColumnReorderingAllowed(true);
+ t.setSelectable(true);
+
+ setJavadocURL("ui/Table.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "// Sample table\n"
+ + "t = new Table(\"Corporate Employees\");\n"
+ + "t.setPageLength(10);\n\n"
+ + "// Add columns to table\n"
+ + "t.addContainerProperty(\"Firstname\", String.class, \"\");\n"
+ + "t.addContainerProperty(\"Lastname\", String.class, \"\");\n"
+ + "t.addContainerProperty(\"Age\", String.class, \"\");\n"
+ + "t.addContainerProperty(\"Title\", String.class, \"\");\n"
+ + "t.addContainerProperty(\"Unit\", String.class, \"\");\n\n"
+ + "// Add random rows to table\n"
+ + "for (int j = 0; j < 50; j++) {\n" + " t.addItem(\n"
+ + " new Object[] {\n"
+ + " firstnames[(int) (Math.random() * 9)],\n"
+ + " lastnames[(int) (Math.random() * 9)],\n"
+ + " title[(int) (Math.random() * title.length)],\n"
+ + " unit[(int) (Math.random() * unit.length)] },\n"
+ + " new Integer(j));\n" + "}\n";
+ }
+
+ protected String getDescriptionXHTML() {
+
+ return "The Table component is designed for displaying large volumes of tabular data, "
+ + "in multiple pages whenever needed."
+ + "
Selection of the displayed data is supported both in selecting exclusively one row "
+ + "or multiple rows at the same time. For each row, there may be a set of actions associated, "
+ + "depending on the theme these actions may be displayed either as a drop-down "
+ + "menu for each row or a set of command buttons."
+ + "
Table may be connected to any datasource implementing the Container
interface."
+ + "This way data found in external datasources can be directly presented in the table component."
+ + "
"
+ + "Table implements a number of features and you can test most of them in the table demo tab.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "Table";
+ }
+
+ private Action ACTION1 = new Action("Action 1");
+
+ private Action ACTION2 = new Action("Action 2");
+
+ private Action ACTION3 = new Action("Action 3");
+
+ private Action[] actions = new Action[] { ACTION1, ACTION2, ACTION3 };
+
+ public Action[] getActions(Object target, Object sender) {
+ return actions;
+ }
+
+ public void handleAction(Action action, Object sender, Object target) {
+ t.setDescription("Last action clicked was '" + action.getCaption()
+ + "' on item '" + t.getItem(target).toString() + "'");
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureTextField.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureTextField.java
new file mode 100644
index 0000000000..cc6ac13794
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureTextField.java
@@ -0,0 +1,89 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.*;
+
+public class FeatureTextField extends Feature {
+
+ public FeatureTextField() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout(
+ OrderedLayout.ORIENTATION_HORIZONTAL);
+
+ // Test component
+ TextField tf = new TextField("Caption");
+ l.addComponent(tf);
+
+ // Properties
+ propertyPanel = new PropertyPanel(tf);
+ Form f = propertyPanel.createBeanPropertySet(new String[] { "columns",
+ "rows", "wordwrap", "writeThrough", "readThrough",
+ "nullRepresentation", "nullSettingAllowed", "secret" });
+ propertyPanel.addProperties("Text field properties", f);
+
+ setJavadocURL("ui/TextField.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "TextField tf = new TextField(\"Caption\");\n"
+ + "tf.setValue(\"Contents\");";
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return "TextField combines the logic of both the single line text-entry field and the multi-line "
+ + "text-area into one component. "
+ + "As with all Data-components of IT Mill Toolkit, the TextField can also be bound to an "
+ + "underlying data source, both directly or in a buffered (asynchronous) "
+ + "mode. In buffered mode its background color will change to indicate "
+ + "that the value has changed but is not committed."
+ + "
Furthermore a validators may be bound to the component to "
+ + "check and validate the given input before it is actually committed."
+ + "
On the demo tab you can try out how the different properties affect the "
+ + "presentation of the component.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "TextField";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureTree.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureTree.java
new file mode 100644
index 0000000000..160fdfe6a4
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureTree.java
@@ -0,0 +1,184 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import java.util.Iterator;
+
+import com.itmill.toolkit.event.Action;
+import com.itmill.toolkit.ui.*;
+
+public class FeatureTree extends Feature implements Action.Handler {
+
+ private static final String[] firstnames = new String[] { "John", "Mary",
+ "Joe", "Sarah", "Jeff", "Jane", "Peter", "Marc", "Josie", "Linus" };
+
+ private static final String[] lastnames = new String[] { "Torvalds",
+ "Smith", "Jones", "Beck", "Sheridan", "Picard", "Hill", "Fielding",
+ "Einstein" };
+
+ private Tree t;
+
+ private boolean actionsActive = false;
+
+ private Button actionHandlerSwitch = new Button("Activate actions", this,
+ "toggleActions");
+
+ public FeatureTree() {
+ super();
+ }
+
+ public void toggleActions() {
+ if (actionsActive) {
+ t.removeActionHandler(this);
+ actionsActive = false;
+ actionHandlerSwitch.setCaption("Activate Actions");
+ } else {
+ t.addActionHandler(this);
+ actionsActive = true;
+ actionHandlerSwitch.setCaption("Deactivate Actions");
+ }
+ }
+
+ public void expandAll() {
+ for (Iterator i = t.rootItemIds().iterator(); i.hasNext();) {
+ t.expandItemsRecursively(i.next());
+ }
+ }
+
+ public void collapseAll() {
+ for (Iterator i = t.rootItemIds().iterator(); i.hasNext();) {
+ t.collapseItemsRecursively(i.next());
+ }
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ String[] names = new String[100];
+ for (int i = 0; i < names.length; i++)
+ names[i] = firstnames[(int) (Math.random() * (firstnames.length - 1))]
+ + " "
+ + lastnames[(int) (Math.random() * (lastnames.length - 1))];
+
+ // Create tree
+ t = new Tree("Organization Structure");
+ for (int i = 0; i < 100; i++) {
+ t.addItem(names[i]);
+ String parent = names[(int) (Math.random() * (names.length - 1))];
+ if (t.containsId(parent))
+ t.setParent(names[i], parent);
+ }
+
+ // Forbid childless people to have children (makes them leaves)
+ for (int i = 0; i < 100; i++)
+ if (!t.hasChildren(names[i]))
+ t.setChildrenAllowed(names[i], false);
+
+ l.addComponent(t);
+
+ // Actions
+ l.addComponent(this.actionHandlerSwitch);
+
+ // Expand and Collapse buttons
+ l.addComponent(new Button("Expand All", this, "expandAll"));
+ l.addComponent(new Button("Collapse All", this, "collapseAll"));
+
+ // Properties
+ propertyPanel = new PropertyPanel(t);
+ Form ap = propertyPanel
+ .createBeanPropertySet(new String[] { "selectable" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("menu").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("menu");
+ propertyPanel.addProperties("Tree Properties", ap);
+
+ setJavadocURL("ui/Tree.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "// Create tree\n"
+ + "t = new Tree(\"Organization Structure\");\n"
+ + "for (int i = 0; i < 100; i++) {\n"
+ + " t.addItem(names[i]);\n"
+ + " String parent = names[(int) (Math.random() * (names.length - 1))];\n"
+ + " if (t.containsId(parent)) \n"
+ + " t.setParent(names[i],parent);\n"
+ + "}\n\n"
+ + "// Forbid childless people to have children (makes them leaves)\n"
+ + "for (int i = 0; i < 100; i++)\n"
+ + " if (!t.hasChildren(names[i]))\n"
+ + " t.setChildrenAllowed(names[i], false);\n";
+ }
+
+ protected String getDescriptionXHTML() {
+ return "A tree is a natural way to represent datasets that have"
+ + " hierarchical relationships, such as filesystems, message "
+ + "threads or, as in this example, organization structure. IT Mill Toolkit features a versatile "
+ + "and powerful Tree component that works much like the tree components "
+ + "of most modern operating systems."
+ + "
The most prominent use of the Tree component is to "
+ + "use it for displaying a hierachical menu, like the "
+ + "menu on the left side of the screen for instance "
+ + "or to display filesystems or other hierarchical datasets."
+ + "
The tree component uses Container
"
+ + "datasources much like the Table component, "
+ + "with the addition that it also utilizes the hierarchy "
+ + "information maintained by the container."
+ + "
On the demo tab you can try out how the different properties "
+ + "affect the presentation of the tree component.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "Tree";
+ }
+
+ private Action ACTION1 = new Action("Action 1");
+
+ private Action ACTION2 = new Action("Action 2");
+
+ private Action ACTION3 = new Action("Action 3");
+
+ private Action[] actions = new Action[] { ACTION1, ACTION2, ACTION3 };
+
+ public Action[] getActions(Object target, Object sender) {
+ return actions;
+ }
+
+ public void handleAction(Action action, Object sender, Object target) {
+ t.setDescription("Last action clicked was '" + action.getCaption()
+ + "' on item '" + target + "'");
+ }
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureUpload.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureUpload.java
new file mode 100644
index 0000000000..b4178d55eb
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureUpload.java
@@ -0,0 +1,168 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import com.itmill.toolkit.terminal.StreamResource;
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.Link;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Upload;
+import com.itmill.toolkit.ui.Upload.FinishedEvent;
+
+public class FeatureUpload extends Feature implements Upload.FinishedListener {
+ Buffer buffer = new Buffer();
+
+ Panel status = new Panel("Uploaded file:");
+
+ public FeatureUpload() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Upload up = new Upload("Upload", buffer);
+ up.setImmediate(true);
+ up.addListener(this);
+
+ status.setVisible(false);
+
+ l.addComponent(up);
+ l.addComponent(status);
+
+ // Properties
+ propertyPanel = new PropertyPanel(up);
+
+ setJavadocURL("ui/Upload.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return "Upload u = new Upload(\"Upload a file:\", uploadReceiver);\n\n"
+ + "public class uploadReceiver \n"
+ + "implements Upload.receiver, Upload.FinishedListener { \n"
+ + "\n" + " java.io.File file;\n"
+ + " java.io.FileOutputStream fos;\n"
+ + " public uploadReceiver() {\n" + " }";
+
+ }
+
+ protected String getDescriptionXHTML() {
+ return "This demonstrates the use of the Upload component together with the Link component. "
+ + "This implementation does not actually store the file to disk, it only keeps it in a buffer. "
+ + "The example given on the Code Sample-tab on the other hand stores the file to disk and binds the link to that file.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "Upload";
+ }
+
+ public void uploadFinished(FinishedEvent event) {
+ status.removeAllComponents();
+ if (buffer.getStream() == null)
+ status.addComponent(new Label(
+ "Upload finished, but output buffer is null!!"));
+ else {
+ status
+ .addComponent(new Label("Name: "
+ + event.getFilename(), Label.CONTENT_XHTML));
+ status.addComponent(new Label("Mimetype: "
+ + event.getMIMEType(), Label.CONTENT_XHTML));
+ status.addComponent(new Label("Size: " + event.getLength()
+ + " bytes.", Label.CONTENT_XHTML));
+
+ status.addComponent(new Link("Download " + buffer.getFileName(),
+ new StreamResource(buffer, buffer.getFileName(),
+ getApplication())));
+
+ status.setVisible(true);
+ }
+ }
+
+ public class Buffer implements StreamResource.StreamSource, Upload.Receiver {
+ ByteArrayOutputStream outputBuffer = null;
+
+ String mimeType;
+
+ String fileName;
+
+ public Buffer() {
+
+ }
+
+ public InputStream getStream() {
+ if (outputBuffer == null)
+ return null;
+ return new ByteArrayInputStream(outputBuffer.toByteArray());
+ }
+
+ /**
+ * @see com.itmill.toolkit.ui.Upload.Receiver#receiveUpload(String,
+ * String)
+ */
+ public OutputStream receiveUpload(String filename, String MIMEType) {
+ fileName = filename;
+ mimeType = MIMEType;
+ outputBuffer = new ByteArrayOutputStream();
+ return outputBuffer;
+ }
+
+ /**
+ * Returns the fileName.
+ *
+ * @return String
+ */
+ public String getFileName() {
+ return fileName;
+ }
+
+ /**
+ * Returns the mimeType.
+ *
+ * @return String
+ */
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureUtil.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureUtil.java
new file mode 100644
index 0000000000..14743c14d1
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureUtil.java
@@ -0,0 +1,31 @@
+package com.itmill.toolkit.tests.featurebrowser;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class FeatureUtil {
+
+ private static boolean statistics = false;
+
+ public static final SimpleDateFormat format = new SimpleDateFormat(
+ "yyyyMMdd HHmmss");
+
+ public static void debug(String userIdentity, String msg) {
+ if (statistics)
+ System.out.println("[" + userIdentity + "] " + msg);
+ }
+
+ public static String getTimestamp() {
+ if (statistics)
+ try {
+ return format.format(new Date());
+ } catch (Exception e) {
+ // ignored, should never happen
+ }
+ return "";
+ }
+
+ public static void setStatistics(boolean statistics) {
+ FeatureUtil.statistics = statistics;
+ }
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureValidators.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureValidators.java
new file mode 100644
index 0000000000..caa1c9b865
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureValidators.java
@@ -0,0 +1,106 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Select;
+
+public class FeatureValidators extends Feature {
+
+ private static final String INTRO_TEXT = ""
+ + "IT Mill Toolkit contains simple, yet powerful validation interface, "
+ + "that consists of two parts: Validator and Validatable. Validator is "
+ + "any class that can check validity of an Object. Validatable is "
+ + "a class with configurable validation. "
+ + "Validation errors are passed as special exceptions that implement "
+ + "ErrorMessage interface. This way the validation errors can be "
+ + "automatically added to components."
+ + "
Utilities for simple string and null validation are provided, as "
+ + "well as combinative validators. The validation interface can also "
+ + "be easily implemented by the applications for more complex "
+ + "validation needs.";
+
+ public FeatureValidators() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Panel panel = new Panel();
+ panel.setCaption("Validators");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(INTRO_TEXT);
+
+ // Properties
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("data/Validator.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return null;
+ }
+
+ protected String getImage() {
+ return null;
+ }
+
+ protected String getTitle() {
+ return null;
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureWindow.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureWindow.java
new file mode 100644
index 0000000000..b3a6fa65c8
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureWindow.java
@@ -0,0 +1,159 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.*;
+import com.itmill.toolkit.ui.Window.CloseEvent;
+
+public class FeatureWindow extends Feature implements Window.CloseListener {
+
+ private Button addButton = new Button("Add window", this, "addWin");
+
+ private Button removeButton = new Button("Remove window", this, "delWin");
+
+ private Window demoWindow;
+
+ private Form windowProperties;
+
+ public FeatureWindow() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout layoutRoot = new OrderedLayout();
+ OrderedLayout layoutUpper = new OrderedLayout();
+ OrderedLayout layoutLower = new OrderedLayout();
+
+ demoWindow = new Window("Feature Test Window");
+ demoWindow.addListener(this);
+ demoWindow.setWidth(400);
+ demoWindow.setHeight(200);
+ demoWindow.setTheme("default");
+
+ layoutUpper.addComponent(addButton);
+ layoutUpper.addComponent(removeButton);
+
+ updateWinStatus();
+
+ // Properties
+ propertyPanel = new PropertyPanel(demoWindow);
+ propertyPanel.dependsOn(addButton);
+ propertyPanel.dependsOn(removeButton);
+ windowProperties = propertyPanel.createBeanPropertySet(new String[] {
+ "width", "height", "name", "theme", "border", "scrollable", });
+ windowProperties.replaceWithSelect("border", new Object[] {
+ new Integer(Window.BORDER_DEFAULT),
+ new Integer(Window.BORDER_NONE),
+ new Integer(Window.BORDER_MINIMAL) }, new Object[] { "Default",
+ "None", "Minimal" });
+ // Disabled, not applicable for default theme
+ windowProperties.getField("border").setEnabled(false);
+ windowProperties.getField("scrollable").setEnabled(false);
+
+ propertyPanel.addProperties("Window Properties", windowProperties);
+ windowProperties.getField("width").setDescription(
+ "Minimum width is 100");
+ windowProperties.getField("height").setDescription(
+ "Minimum height is 100");
+
+ setJavadocURL("ui/Window.html");
+
+ layoutRoot.addComponent(layoutUpper);
+ layoutRoot.addComponent(layoutLower);
+ return layoutRoot;
+ }
+
+ protected String getExampleSrc() {
+ return "Window win = new Window();\n"
+ + "getApplication().addWindow(win);\n";
+
+ }
+
+ protected String getDescriptionXHTML() {
+ return "The window support in IT Mill Toolkit allows for opening and closing windows, "
+ + "refreshing one window from another (for asynchronous terminals), "
+ + "resizing windows and scrolling window content. "
+ + "There are also a number of preset window border styles defined by "
+ + "this feature.";
+ }
+
+ protected String getImage() {
+ return "icon_demo.png";
+ }
+
+ protected String getTitle() {
+ return "Window";
+ }
+
+ public void addWin() {
+
+ propertyPanel.commit();
+
+ getApplication().getMainWindow().addWindow(demoWindow);
+
+ demoWindow.removeAllComponents();
+
+ demoWindow
+ .addComponent(new Label(
+ "
This is a new window created by "
+ + "Add window"
+ + " button's event.
You may simply"
+ + " close this window or select "
+ + "Remove window from the Feature Browser window.",
+ Label.CONTENT_XHTML));
+ // prevent user to change window name tag (after window is created)
+ windowProperties.getField("name").setEnabled(false);
+ windowProperties.getField("name").setReadOnly(true);
+ demoWindow.setVisible(true);
+ updateWinStatus();
+ }
+
+ public void delWin() {
+ getApplication().getMainWindow().removeWindow(demoWindow);
+ // allow user to change window name tag (before window is created)
+ windowProperties.getField("name").setEnabled(true);
+ windowProperties.getField("name").setReadOnly(false);
+ updateWinStatus();
+ }
+
+ private void updateWinStatus() {
+ if (demoWindow.getApplication() == null) {
+ addButton.setEnabled(true);
+ removeButton.setEnabled(false);
+ } else {
+ addButton.setEnabled(false);
+ removeButton.setEnabled(true);
+ }
+ }
+
+ public void windowClose(CloseEvent e) {
+ delWin();
+ }
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeaturesApplication.java b/src/com/itmill/toolkit/tests/featurebrowser/FeaturesApplication.java
new file mode 100644
index 0000000000..335d583a6d
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/FeaturesApplication.java
@@ -0,0 +1,56 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.*;
+
+public class FeaturesApplication extends com.itmill.toolkit.Application {
+
+ public void init() {
+ if (getProperty("statistics") != null)
+ FeatureUtil.setStatistics(true);
+ setUser(new Long(System.currentTimeMillis()).toString());
+ Window main = new Window("IT Mill Toolkit Features Tour");
+ setMainWindow(main);
+
+ main.setLayout(new FeatureBrowser());
+ }
+
+ /**
+ * ErrorEvents are printed to default error stream and not in GUI.
+ */
+ public void terminalError(
+ com.itmill.toolkit.terminal.Terminal.ErrorEvent event) {
+ Throwable e = event.getThrowable();
+ FeatureUtil.debug(getUser().toString(), "terminalError: "
+ + e.toString());
+ e.printStackTrace();
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/IntroBasic.java b/src/com/itmill/toolkit/tests/featurebrowser/IntroBasic.java
new file mode 100644
index 0000000000..fae31d029b
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/IntroBasic.java
@@ -0,0 +1,98 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Select;
+
+public class IntroBasic extends Feature {
+
+ private static final String INTRO_TEXT = ""
+ + "Text Field, Date Field, Button, Form, Label and Link components are provided as samples"
+ + " for basic UI components."
+ + "
See the API documentation of respective components for more information.";
+
+ public IntroBasic() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Panel panel = new Panel();
+ panel.setCaption("Basic UI components");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(INTRO_TEXT);
+
+ // Properties
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("ui/package-summary.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return null;
+ }
+
+ protected String getImage() {
+ return null;
+ }
+
+ protected String getTitle() {
+ return "Introduction of basic UI components";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/IntroComponents.java b/src/com/itmill/toolkit/tests/featurebrowser/IntroComponents.java
new file mode 100644
index 0000000000..8f796a74fb
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/IntroComponents.java
@@ -0,0 +1,102 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.terminal.ClassResource;
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Embedded;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Select;
+
+public class IntroComponents extends Feature {
+
+ private static final String INTRO_TEXT = ""
+ + "This picture summarizes the relations between different user interface (UI) components."
+ + "
See API documentation below for more information.";
+
+ public IntroComponents() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Panel panel = new Panel();
+ panel.setCaption("UI component diagram");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(INTRO_TEXT);
+
+ panel.addComponent(new Embedded("", new ClassResource("components.png",
+ this.getApplication())));
+
+ // Properties
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("ui/package-summary.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return null;
+ }
+
+ protected String getImage() {
+ return null;
+ }
+
+ protected String getTitle() {
+ return null;
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/IntroDataHandling.java b/src/com/itmill/toolkit/tests/featurebrowser/IntroDataHandling.java
new file mode 100644
index 0000000000..b96c1c155c
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/IntroDataHandling.java
@@ -0,0 +1,97 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Select;
+
+public class IntroDataHandling extends Feature {
+
+ private static final String INTRO_TEXT = ""
+ + "Embedded Objects and Upload components are provided as samples"
+ + " for data handling section."
+ + "
See the API documentation of respective components for more information.";
+
+ public IntroDataHandling() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Panel panel = new Panel();
+ panel.setCaption("Data Handling");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(INTRO_TEXT);
+
+ // Properties
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return "Please select Embedded Objects or Upload"
+ + " from the menu for more information.";
+ }
+
+ protected String getImage() {
+ return null;
+ }
+
+ protected String getTitle() {
+ return null;
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/IntroDataModel.java b/src/com/itmill/toolkit/tests/featurebrowser/IntroDataModel.java
new file mode 100644
index 0000000000..b46501f6c8
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/IntroDataModel.java
@@ -0,0 +1,99 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Select;
+
+public class IntroDataModel extends Feature {
+
+ private static final String INTRO_TEXT = ""
+ + "This section introduces main concepts of data model in IT Mill Toolkit."
+ + " It contains brief introduction to Properties, Items, Containers, Validators and"
+ + " Buffering classes."
+ + "
See the API documentation of respective area for more information.";
+
+ public IntroDataModel() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Panel panel = new Panel();
+ panel.setCaption("Data Model");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(INTRO_TEXT);
+
+ // Properties
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("data/package-summary.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return null;
+ }
+
+ protected String getImage() {
+ return null;
+ }
+
+ protected String getTitle() {
+ return null;
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/IntroItemContainers.java b/src/com/itmill/toolkit/tests/featurebrowser/IntroItemContainers.java
new file mode 100644
index 0000000000..97c17101b3
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/IntroItemContainers.java
@@ -0,0 +1,98 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Select;
+
+public class IntroItemContainers extends Feature {
+
+ private static final String INTRO_TEXT = ""
+ + "Select, Table and Tree components are provided as samples"
+ + " for item containers section."
+ + "
See the API documentation of respective components for more information.";
+
+ public IntroItemContainers() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Panel panel = new Panel();
+ panel.setCaption("Item Containers");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(INTRO_TEXT);
+
+ // Properties
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("data/Container.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return null;
+ }
+
+ protected String getImage() {
+ return null;
+ }
+
+ protected String getTitle() {
+ return null;
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/IntroLayouts.java b/src/com/itmill/toolkit/tests/featurebrowser/IntroLayouts.java
new file mode 100644
index 0000000000..7c4a4b21bb
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/IntroLayouts.java
@@ -0,0 +1,100 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Select;
+
+public class IntroLayouts extends Feature {
+
+ private static final String INTRO_TEXT = ""
+ + "Layouts are required to place components to specific place in the UI."
+ + " You can use plain Java to accomplish sophisticated component layouting."
+ + " Other option is to use Custom Layout and let the web page designers"
+ + " to take responsibility of component layouting using their own set of tools."
+ + "
See API documentation below for more information.";
+
+ public IntroLayouts() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Panel panel = new Panel();
+ panel.setCaption("Layouts");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(INTRO_TEXT);
+
+ // Properties
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("ui/Layout.html");
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return null;
+ }
+
+ protected String getImage() {
+ return null;
+ }
+
+ protected String getTitle() {
+ return null;
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/IntroTerminal.java b/src/com/itmill/toolkit/tests/featurebrowser/IntroTerminal.java
new file mode 100644
index 0000000000..84ac477c9c
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/IntroTerminal.java
@@ -0,0 +1,74 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+
+public class IntroTerminal extends Feature {
+
+ public IntroTerminal() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ Label lab = new Label();
+ lab.setStyle("featurebrowser-none");
+ l.addComponent(lab);
+
+ // Properties
+ propertyPanel = null;
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return null;
+ }
+
+ /**
+ * @see com.itmill.toolkit.tests.featurebrowser.Feature#getDescriptionXHTML()
+ */
+ protected String getDescriptionXHTML() {
+ return "";
+ }
+
+ protected String getImage() {
+ return null;
+ }
+
+ protected String getTitle() {
+ return "Introduction for terminals (TODO)";
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/IntroWelcome.java b/src/com/itmill/toolkit/tests/featurebrowser/IntroWelcome.java
new file mode 100644
index 0000000000..fb77b16231
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/IntroWelcome.java
@@ -0,0 +1,217 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import java.net.URL;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.Map;
+
+import com.itmill.toolkit.terminal.DownloadStream;
+import com.itmill.toolkit.terminal.PaintException;
+import com.itmill.toolkit.terminal.PaintTarget;
+import com.itmill.toolkit.terminal.ParameterHandler;
+import com.itmill.toolkit.terminal.URIHandler;
+import com.itmill.toolkit.terminal.gwt.server.ApplicationServlet;
+import com.itmill.toolkit.terminal.gwt.server.WebBrowser;
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Panel;
+import com.itmill.toolkit.ui.Select;
+
+public class IntroWelcome extends Feature implements URIHandler,
+ ParameterHandler {
+
+ private WebBrowser webBrowser = null;
+
+ Panel panel = new Panel();
+
+ private static final String WELCOME_TEXT_UPPER = ""
+ + "This application lets you view and play with some features of "
+ + "IT Mill Toolkit. Use menu on the left to select component."
+ + "
Note the Properties selection on the top "
+ + "right corner. Click it open to access component properties and"
+ + " feel free to edit properties at any time."
+ + "
The area that you are now reading is the component"
+ + " demo area. Lower area from here contains component description, API"
+ + " documentation and optional code sample. Note that not all selections"
+ + " contain demo, only description and API documentation is shown."
+ + "
You may also change application's theme from below the menu."
+ + " This example application is designed to work best with"
+ + " Demo theme, other themes are for demonstration purposes only."
+ + "
IT Mill Toolkit enables you to construct complex Web"
+ + " applications using plain Java, no knowledge of other Web technologies"
+ + " such as XML, HTML, DOM, JavaScript or browser differences is required."
+ + "
For more information, point your browser to"
+ + " www.itmill.com.";
+
+ private static final String WELCOME_TEXT_LOWER = ""
+ + "This area contains the selected component's description, list of properties, javadoc"
+ + " and optional code sample. "
+ + "Start your tour now by selecting features from the list"
+ + " on the left and remember to experiment with the Properties panel"
+ + " located at the top right corner area.";
+
+ private String description = WELCOME_TEXT_LOWER
+ + "
IT Mill Toolkit version: "
+ + ApplicationServlet.VERSION;
+
+ public IntroWelcome() {
+ super();
+ }
+
+ protected Component getDemoComponent() {
+
+ OrderedLayout l = new OrderedLayout();
+
+ panel.setCaption("Welcome to the IT Mill Toolkit feature tour!");
+ l.addComponent(panel);
+
+ Label label = new Label();
+ panel.addComponent(label);
+
+ label.setContentMode(Label.CONTENT_XHTML);
+ label.setValue(WELCOME_TEXT_UPPER);
+
+ propertyPanel = new PropertyPanel(panel);
+ Form ap = propertyPanel.createBeanPropertySet(new String[] { "width",
+ "height" });
+ Select themes = (Select) propertyPanel.getField("style");
+ themes.addItem("light").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("light");
+ themes.addItem("strong").getItemProperty(
+ themes.getItemCaptionPropertyId()).setValue("strong");
+ propertyPanel.addProperties("Panel Properties", ap);
+
+ setJavadocURL("package-summary.html");
+
+ setPropsReminder(false);
+
+ return l;
+ }
+
+ protected String getExampleSrc() {
+ return ""
+ + "package com.itmill.toolkit.demo;\n"
+ + "import com.itmill.toolkit.ui.*;\n\n"
+ + "public class HelloWorld extends com.itmill.toolkit.Application {\n"
+ + " public void init() {\n"
+ + " Window main = new Window(\"Hello window\");\n"
+ + " setMainWindow(main);\n"
+ + " main.addComponent(new Label(\"Hello World!\"));\n"
+ + " }\n" + "}\n";
+ }
+
+ // not ready yet to give description, see paint instead
+ protected String getDescriptionXHTML() {
+ return description;
+ }
+
+ // Hack for #512: set description right (WebBrowser now exists)
+ public void paint(PaintTarget target) throws PaintException {
+ if (webBrowser == null) {
+ webBrowser = (WebBrowser) getWindow().getTerminal();
+ if (webBrowser != null) {
+ super.getDescription().setValue(
+ description + "
Browser: "
+ + webBrowser.getBrowserApplication());
+ try {
+ FeatureUtil.debug(getApplication().getUser().toString(),
+ "timestamp=[" + FeatureUtil.getTimestamp()
+ + "] userAgent=["
+ + webBrowser.getBrowserApplication() + "]");
+ } catch (Exception e) {
+ // ignored, should never happen
+ }
+ }
+ }
+ super.paint(target);
+ }
+
+ protected String getImage() {
+ return "icon_intro.png";
+ }
+
+ protected String getTitle() {
+ return "Welcome";
+ }
+
+ /**
+ * Add URI and parametes handlers to window.
+ *
+ * @see com.itmill.toolkit.ui.Component#attach()
+ */
+ public void attach() {
+ super.attach();
+ getWindow().addURIHandler(this);
+ getWindow().addParameterHandler(this);
+ }
+
+ /**
+ * Remove all handlers from window
+ *
+ * @see com.itmill.toolkit.ui.Component#detach()
+ */
+ public void detach() {
+ super.detach();
+ getWindow().removeURIHandler(this);
+ getWindow().removeParameterHandler(this);
+ }
+
+ /**
+ * Update URI
+ *
+ * @see com.itmill.toolkit.terminal.URIHandler#handleURI(URL, String)
+ */
+ public DownloadStream handleURI(URL context, String relativeUri) {
+ return null;
+ }
+
+ /**
+ * Show system status if systemStatus is given on URL
+ *
+ * @see com.itmill.toolkit.terminal.ParameterHandler#handleParameters(Map)
+ */
+ public void handleParameters(Map parameters) {
+ for (Iterator i = parameters.keySet().iterator(); i.hasNext();) {
+ String name = (String) i.next();
+ if (name.equals("systemStatus")) {
+ String status = "";
+ status += "timestamp=" + new Date() + " ";
+ status += "free=" + Runtime.getRuntime().freeMemory() + ", ";
+ status += "total=" + Runtime.getRuntime().totalMemory() + ", ";
+ status += "max=" + Runtime.getRuntime().maxMemory() + "\n";
+ System.out.println(status);
+ }
+ }
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java b/src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java
new file mode 100644
index 0000000000..63cc57cffa
--- /dev/null
+++ b/src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java
@@ -0,0 +1,516 @@
+/* *************************************************************************
+
+ IT Mill Toolkit
+
+ Development of Browser User Interfaces Made Easy
+
+ Copyright (C) 2000-2006 IT Mill Ltd
+
+ *************************************************************************
+
+ This product is distributed under commercial license that can be found
+ from the product package on license.pdf. Use of this product might
+ require purchasing a commercial license from IT Mill Ltd. For guidelines
+ on usage, see licensing-guidelines.html
+
+ *************************************************************************
+
+ For more information, contact:
+
+ IT Mill Ltd phone: +358 2 4802 7180
+ Ruukinkatu 2-4 fax: +358 2 4802 7181
+ 20540, Turku email: info@itmill.com
+ Finland company www: www.itmill.com
+
+ Primary source for information and releases: www.itmill.com
+
+ ********************************************************************** */
+
+package com.itmill.toolkit.tests.featurebrowser;
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import com.itmill.toolkit.data.*;
+import com.itmill.toolkit.data.Property.ValueChangeListener;
+import com.itmill.toolkit.data.util.*;
+import com.itmill.toolkit.terminal.*;
+import com.itmill.toolkit.ui.*;
+
+public class PropertyPanel extends Panel implements Button.ClickListener,
+ Property.ValueChangeListener {
+
+ private Select addComponent;
+
+ private OrderedLayout formsLayout = new OrderedLayout();
+
+ private LinkedList forms = new LinkedList();
+
+ private Button setButton = new Button("Set", this);
+
+ private Button discardButton = new Button("Discard changes", this);
+
+ private Table allProperties = new Table();
+
+ private Object objectToConfigure;
+
+ private BeanItem config;
+
+ protected static final int COLUMNS = 3;
+
+ /** Contruct new property panel for configuring given object. */
+ public PropertyPanel(Object objectToConfigure) {
+ super();
+
+ // Layout
+ setCaption("Properties");
+ addComponent(formsLayout);
+ addStyleName(Panel.STYLE_NO_PADDING);
+
+ setWidth(100);
+ setWidthUnits(Table.UNITS_PERCENTAGE);
+ setHeight(100);
+ setHeightUnits(Table.UNITS_PERCENTAGE);
+
+ // Target object
+ this.objectToConfigure = objectToConfigure;
+ config = new BeanItem(objectToConfigure);
+
+ // Control buttons
+ OrderedLayout buttons = new OrderedLayout(
+ OrderedLayout.ORIENTATION_HORIZONTAL);
+ buttons.addComponent(setButton);
+ buttons.addComponent(discardButton);
+ addComponent(buttons);
+
+ // Add default properties
+ addBasicComponentProperties();
+ if (objectToConfigure instanceof Select)
+ addSelectProperties();
+ if (objectToConfigure instanceof AbstractField
+ && !(objectToConfigure instanceof Table || objectToConfigure instanceof Tree))
+ addFieldProperties();
+ if ((objectToConfigure instanceof AbstractComponentContainer)
+ && !(objectToConfigure instanceof FrameWindow))
+ addComponentContainerProperties();
+
+ // The list of all properties
+ allProperties.addContainerProperty("Name", String.class, "");
+ allProperties.addContainerProperty("Type", String.class, "");
+ allProperties.addContainerProperty("R/W", String.class, "");
+ allProperties.addContainerProperty("Demo", String.class, "");
+ allProperties.setColumnAlignments(new String[] { Table.ALIGN_LEFT,
+ Table.ALIGN_LEFT, Table.ALIGN_CENTER, Table.ALIGN_CENTER });
+ allProperties.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_ID);
+ allProperties.setPageLength(0);
+ allProperties.setWidth(100);
+ allProperties.setWidthUnits(Table.UNITS_PERCENTAGE);
+ allProperties.setHeight(100);
+ allProperties.setHeightUnits(Table.UNITS_PERCENTAGE);
+ updatePropertyList();
+
+ }
+
+ /** Add a formful of properties to property panel */
+ public void addProperties(String propertySetCaption, Form properties) {
+
+ // Create new panel containing the form
+ Panel p = new Panel();
+ p.setCaption(propertySetCaption);
+ p.setStyle("light");
+ p.addComponent(properties);
+ formsLayout.addComponent(p);
+
+ // Setup buffering
+ setButton.dependsOn(properties);
+ discardButton.dependsOn(properties);
+ properties.setWriteThrough(false);
+ // TODO change this to false, and test it is suitable for FeatureBrowser
+ // demo
+ properties.setReadThrough(true);
+
+ // Maintain property lists
+ forms.add(properties);
+ updatePropertyList();
+ }
+
+ /** Recreate property list contents */
+ public void updatePropertyList() {
+
+ allProperties.removeAllItems();
+
+ // Collect demoed properties
+ HashSet listed = new HashSet();
+ for (Iterator i = forms.iterator(); i.hasNext();)
+ listed.addAll(((Form) i.next()).getItemPropertyIds());
+
+ // Resolve all properties
+ BeanInfo info;
+ try {
+ info = Introspector.getBeanInfo(objectToConfigure.getClass());
+ } catch (IntrospectionException e) {
+ throw new RuntimeException(e.toString());
+ }
+ PropertyDescriptor[] pd = info.getPropertyDescriptors();
+
+ // Fill the table
+ for (int i = 0; i < pd.length; i++) {
+ allProperties.addItem(new Object[] { pd[i].getName(),
+ pd[i].getPropertyType().getName(),
+ (pd[i].getWriteMethod() == null ? "R" : "R/W"),
+ (listed.contains(pd[i].getName()) ? "x" : "") }, pd[i]);
+ }
+ }
+
+ /** Add basic properties implemented most often by abstract component */
+ private void addBasicComponentProperties() {
+
+ // Set of properties
+ Form set = createBeanPropertySet(new String[] { "caption", "icon",
+ "componentError", "description", "enabled", "visible", "style",
+ "readOnly", "immediate" });
+
+ // Icon
+ set.replaceWithSelect("icon", new Object[] { null,
+ new ThemeResource("icon/files/file.gif") }, new Object[] {
+ "No icon", "Sample icon" });
+
+ // Component error
+ Throwable sampleException;
+ try {
+ throw new NullPointerException("sample exception");
+ } catch (NullPointerException e) {
+ sampleException = e;
+ }
+ set
+ .replaceWithSelect(
+ "componentError",
+ new Object[] {
+ null,
+ new UserError("Sample text error message."),
+ new UserError(
+ "Error message formatting
Error messages can "
+ + "contain any UIDL formatting, like:
",
+ UserError.CONTENT_UIDL,
+ ErrorMessage.INFORMATION),
+ new SystemError(
+ "This is an example of exception error reposting",
+ sampleException) },
+ new Object[] { "No error", "Sample text error",
+ "Sample Formatted error", "Sample System Error" });
+
+ // Style
+ String currentStyle = ((Component) objectToConfigure).getStyle();
+ if (currentStyle == null)
+ set.replaceWithSelect("style", new Object[] { null },
+ new Object[] { "Default" }).setNewItemsAllowed(true);
+ else
+ set.replaceWithSelect("style", new Object[] { null, currentStyle },
+ new Object[] { "Default", currentStyle })
+ .setNewItemsAllowed(true);
+
+ // Set up descriptions
+ set
+ .getField("caption")
+ .setDescription(
+ "Component caption is the title of the component. Usage of the caption is optional and the "
+ + "exact behavior of the propery is defined by the component. Setting caption null "
+ + "or empty disables the caption.");
+ set
+ .getField("enabled")
+ .setDescription(
+ "Enabled property controls the usage of the component. If the component is disabled (enabled=false),"
+ + " it can not receive any events from the terminal. In most cases it makes the usage"
+ + " of the component easier, if the component visually looks disbled (for example is grayed), "
+ + "when it can not be used.");
+ set
+ .getField("icon")
+ .setDescription(
+ "Icon of the component selects the main icon of the component. The usage of the icon is identical "
+ + "to caption and in most components caption and icon are kept together. Icons can be "
+ + "loaded from any resources (see Terminal/Resources for more information). Some components "
+ + "contain more than just the captions icon. Those icons are controlled through their "
+ + "own properties.");
+ set
+ .getField("visible")
+ .setDescription(
+ "Visibility property says if the component is renreded or not. Invisible components are implicitly "
+ + "disabled, as there is no visible user interface to send event.");
+ set
+ .getField("description")
+ .setDescription(
+ "Description is designed to allow easy addition of short tooltips, like this. Like the caption,"
+ + " setting description null or empty disables the description.");
+ set
+ .getField("readOnly")
+ .setDescription(
+ "Those components that have internal state that can be written are settable to readOnly-mode,"
+ + " where the object can only be read, not written.");
+ set
+ .getField("componentError")
+ .setDescription(
+ "IT Mill Toolkit supports extensive error reporting. One part of the error reporting are component"
+ + " errors that can be controlled by the programmer. This example only contains couple of "
+ + "sample errors; to get the full picture, read browse ErrorMessage-interface implementors "
+ + "API documentation.");
+ set
+ .getField("immediate")
+ .setDescription(
+ "Not all terminals can send the events immediately to server from all action. Web is the most "
+ + "typical environment where many events (like textfield changed) are not sent to server, "
+ + "before they are explicitly submitted. Setting immediate property true (by default this "
+ + "is false for most components), the programmer can assure that the application is"
+ + " notified as soon as possible about the value change in this component.");
+ set
+ .getField("style")
+ .setDescription(
+ "Themes specify the overall looks of the user interface. In addition component can have a set of "
+ + "styles, that can be visually very different (like datefield calendar- and text-styles), "
+ + "but contain the same logical functionality. As a rule of thumb, theme specifies if a "
+ + "component is blue or yellow and style determines how the component is used.");
+
+ // Add created fields to property panel
+ addProperties("Component Basics", set);
+
+ // Customization for Window component
+ if (objectToConfigure instanceof Window) {
+ disableField(set.getField("enabled"), new Boolean(true));
+ disableField(set.getField("visible"), new Boolean(true));
+ disableField(set.getField("componentError"));
+ disableField(set.getField("icon"));
+ }
+ }
+
+ /** Add properties for selecting */
+ private void addSelectProperties() {
+ Form set = createBeanPropertySet(new String[] { "newItemsAllowed",
+ "lazyLoading", "multiSelect" });
+ addProperties("Select Properties", set);
+
+ set.getField("multiSelect").setDescription(
+ "Specified if multiple items can be selected at once.");
+ set
+ .getField("newItemsAllowed")
+ .setDescription(
+ "Select component (but not Tree or Table) can allow the user to directly "
+ + "add new items to set of options. The new items are constrained to be "
+ + "strings and thus feature only applies to simple lists.");
+ Button ll = (Button) set.getField("lazyLoading");
+ ll
+ .setDescription("In Ajax rendering mode select supports lazy loading and filtering of options.");
+ ll.addListener((ValueChangeListener) this);
+ ll.setImmediate(true);
+ if (((Boolean) ll.getValue()).booleanValue()) {
+ set.getField("multiSelect").setVisible(false);
+ set.getField("newItemsAllowed").setVisible(false);
+ }
+ if (objectToConfigure instanceof Tree
+ || objectToConfigure instanceof Table) {
+ set.removeItemProperty("newItemsAllowed");
+ set.removeItemProperty("lazyLoading");
+ }
+ }
+
+ /** Field special properties */
+ private void addFieldProperties() {
+ // TODO bug #211 states that setFocus works only for Button and
+ // Textfield UI components
+ Form set = new Form(new GridLayout(COLUMNS, 1));
+ set.addField("focus", new Button("Focus", objectToConfigure, "focus"));
+ set.getField("focus").setDescription(
+ "Focus the cursor to this field. Not all "
+ + "components and/or terminals support this feature.");
+ addProperties("Field Features", set);
+ }
+
+ /**
+ * Add and remove some miscellaneous example component to/from component
+ * container
+ */
+ private void addComponentContainerProperties() {
+ Form set = new Form(new OrderedLayout(
+ OrderedLayout.ORIENTATION_VERTICAL));
+
+ addComponent = new Select();
+ addComponent.setImmediate(true);
+ addComponent.addItem("Add component to container");
+ addComponent.setNullSelectionItemId("Add component to container");
+ addComponent.addItem("Text field");
+ addComponent.addItem("Option group");
+ addComponent.addListener(this);
+
+ set.addField("component adder", addComponent);
+ set.addField("remove all components", new Button(
+ "Remove all components", objectToConfigure,
+ "removeAllComponents"));
+
+ addProperties("ComponentContainer Features", set);
+ }
+
+ /** Value change listener for listening selections */
+ public void valueChange(Property.ValueChangeEvent event) {
+
+ // FIXME: navigation statistics
+ try {
+ FeatureUtil.debug(getApplication().getUser().toString(),
+ "valueChange "
+ + ((AbstractComponent) event.getProperty())
+ .getTag() + ", " + event.getProperty());
+ } catch (Exception e) {
+ // ignored, should never happen
+ }
+
+ // Adding components to component container
+ if (event.getProperty() == addComponent) {
+ String value = (String) addComponent.getValue();
+
+ if (value != null) {
+ // TextField component
+ if (value.equals("Text field"))
+ ((AbstractComponentContainer) objectToConfigure)
+ .addComponent(new TextField("Test field"));
+
+ // DateField time style
+ if (value.equals("Time")) {
+ DateField d = new DateField("Time", new Date());
+ d
+ .setDescription("This is a DateField-component with text-style");
+ d.setResolution(DateField.RESOLUTION_MIN);
+ d.setStyle("text");
+ ((AbstractComponentContainer) objectToConfigure)
+ .addComponent(d);
+ }
+
+ // Date field calendar style
+ if (value.equals("Calendar")) {
+ DateField c = new DateField("Calendar", new Date());
+ c
+ .setDescription("DateField-component with calendar-style and day-resolution");
+ c.setStyle("calendar");
+ c.setResolution(DateField.RESOLUTION_DAY);
+ ((AbstractComponentContainer) objectToConfigure)
+ .addComponent(c);
+ }
+
+ // Select option group style
+ if (value.equals("Option group")) {
+ Select s = new Select("Options");
+ s.setDescription("Select-component with optiongroup-style");
+ s.addItem("Linux");
+ s.addItem("Windows");
+ s.addItem("Solaris");
+ s.addItem("Symbian");
+ s.setStyle("optiongroup");
+
+ ((AbstractComponentContainer) objectToConfigure)
+ .addComponent(s);
+ }
+
+ addComponent.setValue(null);
+ }
+ } else if (event.getProperty() == getField("lazyLoading")) {
+ boolean newValue = ((Boolean) event.getProperty().getValue())
+ .booleanValue();
+ Field multiselect = getField("multiSelect");
+ Field newitems = getField("newItemsAllowed");
+ if (newValue) {
+ newitems.setValue(Boolean.FALSE);
+ newitems.setVisible(false);
+ multiselect.setValue(Boolean.FALSE);
+ multiselect.setVisible(false);
+ } else {
+ newitems.setVisible(true);
+ multiselect.setVisible(true);
+ }
+ }
+ }
+
+ /** Handle all button clicks for this panel */
+ public void buttonClick(Button.ClickEvent event) {
+ // FIXME: navigation statistics
+ try {
+ FeatureUtil.debug(getApplication().getUser().toString(),
+ "buttonClick " + event.getButton().getTag() + ", "
+ + event.getButton().getCaption() + ", "
+ + event.getButton().getValue());
+ } catch (Exception e) {
+ // ignored, should never happen
+ }
+ // Commit all changed on all forms
+ if (event.getButton() == setButton) {
+ commit();
+ }
+
+ // Discard all changed on all forms
+ if (event.getButton() == discardButton) {
+ for (Iterator i = forms.iterator(); i.hasNext();)
+ ((Form) i.next()).discard();
+ }
+
+ }
+
+ /**
+ * Helper function for creating forms from array of propety names.
+ */
+ protected Form createBeanPropertySet(String names[]) {
+
+ Form set = new Form(new OrderedLayout(
+ OrderedLayout.ORIENTATION_VERTICAL));
+
+ for (int i = 0; i < names.length; i++) {
+ Property p = config.getItemProperty(names[i]);
+ if (p != null) {
+ set.addItemProperty(names[i], p);
+ Field f = set.getField(names[i]);
+ if (f instanceof TextField) {
+ if (Integer.class.equals(p.getType()))
+ ((TextField) f).setColumns(4);
+ else {
+ ((TextField) f).setNullSettingAllowed(true);
+ ((TextField) f).setColumns(24);
+ }
+ }
+ }
+ }
+
+ return set;
+ }
+
+ /** Find a field from all forms */
+ public Field getField(Object propertyId) {
+ for (Iterator i = forms.iterator(); i.hasNext();) {
+ Form f = (Form) i.next();
+ Field af = f.getField(propertyId);
+ if (af != null)
+ return af;
+ }
+ return null;
+ }
+
+ public Table getAllProperties() {
+ return allProperties;
+ }
+
+ protected void commit() {
+ for (Iterator i = forms.iterator(); i.hasNext();)
+ ((Form) i.next()).commit();
+ }
+
+ private void disableField(Field field) {
+ field.setEnabled(false);
+ field.setReadOnly(true);
+ }
+
+ private void disableField(Field field, Object value) {
+ field.setValue(value);
+ disableField(field);
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/components.png b/src/com/itmill/toolkit/tests/featurebrowser/components.png
new file mode 100644
index 0000000000..e5681d4d37
Binary files /dev/null and b/src/com/itmill/toolkit/tests/featurebrowser/components.png differ
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/icon_demo.png b/src/com/itmill/toolkit/tests/featurebrowser/icon_demo.png
new file mode 100644
index 0000000000..6a5c295d6a
Binary files /dev/null and b/src/com/itmill/toolkit/tests/featurebrowser/icon_demo.png differ
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/icon_intro.png b/src/com/itmill/toolkit/tests/featurebrowser/icon_intro.png
new file mode 100644
index 0000000000..032712985c
Binary files /dev/null and b/src/com/itmill/toolkit/tests/featurebrowser/icon_intro.png differ
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/itmill.gif b/src/com/itmill/toolkit/tests/featurebrowser/itmill.gif
new file mode 100644
index 0000000000..b1c3e053f0
Binary files /dev/null and b/src/com/itmill/toolkit/tests/featurebrowser/itmill.gif differ
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/itmill_spin.swf b/src/com/itmill/toolkit/tests/featurebrowser/itmill_spin.swf
new file mode 100644
index 0000000000..9e58ce29c6
Binary files /dev/null and b/src/com/itmill/toolkit/tests/featurebrowser/itmill_spin.swf differ
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/m-bullet-blue.gif b/src/com/itmill/toolkit/tests/featurebrowser/m-bullet-blue.gif
new file mode 100644
index 0000000000..fa6b38b4c9
Binary files /dev/null and b/src/com/itmill/toolkit/tests/featurebrowser/m-bullet-blue.gif differ
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/m.gif b/src/com/itmill/toolkit/tests/featurebrowser/m.gif
new file mode 100644
index 0000000000..2201bdfc1c
Binary files /dev/null and b/src/com/itmill/toolkit/tests/featurebrowser/m.gif differ
--
cgit v1.2.3