123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- /* *************************************************************************
-
- 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 class Feature extends CustomComponent {
-
- private OrderedLayout layout;
-
- private TabSheet ts;
-
- private boolean initialized = false;
-
- private static Resource sampleIcon;
-
- protected PropertyPanel propertyPanel;
-
- /** Constuctor for the feature component */
- public Feature() {
- layout = new OrderedLayout(OrderedLayout.ORIENTATION_VERTICAL);
- setCompositionRoot(layout);
- }
-
- /**
- * Feature component initialization is lazily done when the feature is
- * attached to application
- */
- public void attach() {
-
- // Check if the feature is already initialized
- if (initialized)
- return;
- initialized = true;
-
- // Demo
- Component demo = getDemoComponent();
- if (demo != null)
- layout.addComponent(demo);
-
- ts = new TabSheet();
- layout.addComponent(ts);
-
- // Description
- String desc = getDescriptionXHTML();
- String title = getTitle();
- if (desc != null && title != null) {
- GridLayout gl = new GridLayout(2, 1);
- if (getImage() != null)
- gl.addComponent(new Embedded("", new ClassResource(getImage(),
- this.getApplication())));
- gl.addComponent(new Label("<h2>" + title + "</h2>" + desc,
- Label.CONTENT_XHTML));
- ts.addTab(gl, "Description", null);
- }
-
- // Code Sample
- String example = getExampleSrc();
- if (example != null) {
- OrderedLayout l = new OrderedLayout();
- l.addComponent(new Label("<h2>" + getTitle() + " example</h2>",
- Label.CONTENT_XHTML));
- l.addComponent(new Label(example, Label.CONTENT_PREFORMATTED));
- ts.addTab(l, "Code Sample", null);
- }
-
- // Javadoc
- Label javadocPlaceholder = new Label(
- "This is a placeholder for Javadoc");
- ts.addTab(javadocPlaceholder, "Javadoc", null);
-
- // Properties tab
- // if (properties != null)
- // ts.addTab(properties, "Properties", null);
- }
-
- /** Get the desctiption of the feature as XHTML fragment */
- protected String getDescriptionXHTML() {
- return "<h2>Feature description is under construction</h2>";
- }
-
- /** Get the title of the feature */
- protected String getTitle() {
- return this.getClass().getName();
- }
-
- /** 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;
- }
-
- }
|