/* *************************************************************************
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();
// 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("