From: Marc Englund Date: Thu, 30 Oct 2008 15:29:45 +0000 (+0000) Subject: Sampler various updates, some samples added. X-Git-Tag: 6.7.0.beta1~3892 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=12c8acb7016eb3bd4e129dc756df5099895da2ef;p=vaadin-framework.git Sampler various updates, some samples added. svn changeset:5774/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/demo/sampler/Feature.java b/src/com/itmill/toolkit/demo/sampler/Feature.java index 7690f8cde5..4639a6fd7f 100644 --- a/src/com/itmill/toolkit/demo/sampler/Feature.java +++ b/src/com/itmill/toolkit/demo/sampler/Feature.java @@ -96,7 +96,7 @@ abstract public class Feature { * @return */ public String getIconName() { - String icon = getClass().getSimpleName() + ".gif"; + String icon = getClass().getSimpleName() + ".png"; return icon; } diff --git a/src/com/itmill/toolkit/demo/sampler/FeatureSet.png b/src/com/itmill/toolkit/demo/sampler/FeatureSet.png deleted file mode 100644 index 69e13fa395..0000000000 Binary files a/src/com/itmill/toolkit/demo/sampler/FeatureSet.png and /dev/null differ diff --git a/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java b/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java index 526a20ea0f..33825ad6dc 100644 --- a/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java +++ b/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java @@ -16,6 +16,13 @@ import com.itmill.toolkit.data.util.ObjectProperty; import com.itmill.toolkit.demo.sampler.ModeSwitch.ModeSwitchEvent; import com.itmill.toolkit.demo.sampler.features.DummyFeature; import com.itmill.toolkit.demo.sampler.features.DummyFeature2; +import com.itmill.toolkit.demo.sampler.features.blueprints.ProminentPrimaryAction; +import com.itmill.toolkit.demo.sampler.features.buttons.ButtonLink; +import com.itmill.toolkit.demo.sampler.features.buttons.ButtonPush; +import com.itmill.toolkit.demo.sampler.features.buttons.ButtonSwitch; +import com.itmill.toolkit.demo.sampler.features.link.LinkCurrentWindow; +import com.itmill.toolkit.demo.sampler.features.link.LinkNoDecorations; +import com.itmill.toolkit.demo.sampler.features.link.LinkSizedWindow; import com.itmill.toolkit.terminal.ClassResource; import com.itmill.toolkit.terminal.DownloadStream; import com.itmill.toolkit.terminal.ExternalResource; @@ -40,18 +47,32 @@ public class SamplerApplication extends Application { // Main structure, root is always a FeatureSet that is not shown private static final FeatureSet features = new FeatureSet("All", new Feature[] { - // Main sets + // Main sets - new FeatureSet("Patterns", new Feature[] { - // Patterns + new FeatureSet("Blueprints", new Feature[] { + // Blueprints + new ProminentPrimaryAction(), // }), new FeatureSet("Components", new Feature[] { - // Components + // Components + new FeatureSet("Buttons", new Feature[] { + new ButtonPush(), // basic + new ButtonLink(), // link + new ButtonSwitch(), // switch/checkbox + + }), + + new FeatureSet("Links", new Feature[] { + new LinkCurrentWindow(), // basic + new LinkNoDecorations(), // new win + new LinkSizedWindow(), // new win }), + }), + new FeatureSet("Unsorted", new Feature[] { // Patterns new DummyFeature(), // @@ -484,6 +505,20 @@ public class SamplerApplication extends Application { } }); + + setCellStyleGenerator(new CellStyleGenerator() { + public String getStyle(Object itemId, Object propertyId) { + if (propertyId == null && itemId instanceof FeatureSet) { + if (allFeatures.isRoot(itemId)) { + return "section"; + } else { + return "subsection"; + } + + } + return null; + } + }); } public void setFeatureContainer(HierarchicalContainer c) { @@ -502,12 +537,15 @@ public class SamplerApplication extends Application { FeatureGrid() { super(5, 1); setWidth("100%"); + setMargin(true); + setSpacing(true); } private void newRow() { while (getCursorX() > 0) { space(); } + setRows(getRows() + 1); } public void setFeatureContainer(HierarchicalContainer c) { @@ -517,15 +555,29 @@ public class SamplerApplication extends Application { final Feature f = (Feature) it.next(); if (f instanceof FeatureSet) { newRow(); - addComponent(new Label(f.getName())); + Label title = new Label(f.getName()); + title.setWidth("100%"); + title + .setStyleName((c.isRoot(f) ? "section" + : "subsection")); + if (c.isRoot(f)) { - newRow(); + // newRow(); + addComponent(title, 0, getCursorY(), getColumns() - 1, + getCursorY()); + } else { + addComponent(title); } + setComponentAlignment(title, ALIGNMENT_LEFT, + ALIGNMENT_VERTICAL_CENTER); } else { Button b = new Button(); b.setStyleName(Button.STYLE_LINK); + b.addStyleName("screenshot"); b.setIcon(new ClassResource(f.getClass(), f.getIconName(), SamplerApplication.this)); + b.setWidth("120px"); + b.setHeight("120px"); b.setDescription("

" + f.getName() + "

" + f.getDescription()); b.addListener(new Button.ClickListener() { @@ -550,7 +602,7 @@ public class SamplerApplication extends Application { private String desc; - private String icon = "FeatureSet.png"; + private String icon = "folder.gif"; private Feature[] content; diff --git a/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryAction.java b/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryAction.java new file mode 100644 index 0000000000..6602429981 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryAction.java @@ -0,0 +1,46 @@ +package com.itmill.toolkit.demo.sampler.features.blueprints; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.demo.sampler.features.buttons.ButtonLink; +import com.itmill.toolkit.demo.sampler.features.buttons.ButtonPush; +import com.itmill.toolkit.ui.Button; +import com.itmill.toolkit.ui.Link; + +public class ProminentPrimaryAction extends Feature { + + public String getDescription() { + return "A primary action is an action that is clearly the" + + " default and it should be visually more prominent" + + " than the secondary actions.
Good candidates" + + " include Save, Submit, Continue, Next," + + " Finish and so on.
Note that 'dangerous' actions" + + " that can not be undone should not be primary, and that it's" + + " not always possible to identify a primary action" + + " - don't force it if it's not obvious."; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(Button.class), + new APIResource(Link.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { ButtonPush.class, ButtonLink.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + return new NamedExternalResource[] { + new NamedExternalResource( + "LukeW: Primary & Secondary Actions in Web Forms", + "http://www.lukew.com/resources/articles/psactions.asp"), + new NamedExternalResource( + "UI Pattern Factory: Primary & Secondary Actions", + "http://uipatternfactory.com/p=primary-and-secondary-actions/") }; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryAction.png b/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryAction.png new file mode 100644 index 0000000000..aacf950aa0 Binary files /dev/null and b/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryAction.png differ diff --git a/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryActionExample.java b/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryActionExample.java new file mode 100644 index 0000000000..5266ca1e9b --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryActionExample.java @@ -0,0 +1,49 @@ +package com.itmill.toolkit.demo.sampler.features.blueprints; + +import com.itmill.toolkit.ui.Button; +import com.itmill.toolkit.ui.OrderedLayout; +import com.itmill.toolkit.ui.Button.ClickEvent; + +public class ProminentPrimaryActionExample extends OrderedLayout implements + Button.ClickListener { + + public ProminentPrimaryActionExample() { + setSpacing(true); + + OrderedLayout horiz = new OrderedLayout(ORIENTATION_HORIZONTAL); + horiz.setSpacing(true); + addComponent(horiz); + Button primary = new Button("Save", this); + horiz.addComponent(primary); + Button secondary = new Button("Cancel", this); + secondary.setStyleName(Button.STYLE_LINK); + horiz.addComponent(secondary); + + horiz = new OrderedLayout(ORIENTATION_HORIZONTAL); + horiz.setSpacing(true); + addComponent(horiz); + primary = new Button("Sign up", this); + horiz.addComponent(primary); + secondary = new Button("or Sign in", this); + secondary.setStyleName(Button.STYLE_LINK); + horiz.addComponent(secondary); + + horiz = new OrderedLayout(ORIENTATION_HORIZONTAL); + horiz.setSpacing(true); + addComponent(horiz); + primary = new Button("Login", this); + horiz.addComponent(primary); + secondary = new Button("Forgot your password?", this); + secondary.setStyleName(Button.STYLE_LINK); + horiz.addComponent(secondary); + + } + + /* + * Shows a notification when a button is clicked. + */ + public void buttonClick(ClickEvent event) { + getWindow().showNotification( + event.getButton().getCaption() + " clicked"); + } +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonLink.java b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonLink.java new file mode 100644 index 0000000000..1f1a0053ae --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonLink.java @@ -0,0 +1,35 @@ +package com.itmill.toolkit.demo.sampler.features.buttons; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.demo.sampler.features.link.LinkCurrentWindow; +import com.itmill.toolkit.demo.sampler.features.link.LinkNoDecorations; +import com.itmill.toolkit.demo.sampler.features.link.LinkSizedWindow; +import com.itmill.toolkit.ui.Button; + +public class ButtonLink extends Feature { + + public String getDescription() { + return "A link-styled button."; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(Button.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { ButtonPush.class, ButtonSwitch.class, + LinkCurrentWindow.class, LinkNoDecorations.class, + LinkSizedWindow.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonLink.png b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonLink.png new file mode 100644 index 0000000000..dc3350a0e0 Binary files /dev/null and b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonLink.png differ diff --git a/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonLinkExample.java b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonLinkExample.java new file mode 100644 index 0000000000..c9445fb426 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonLinkExample.java @@ -0,0 +1,51 @@ +package com.itmill.toolkit.demo.sampler.features.buttons; + +import com.itmill.toolkit.terminal.ThemeResource; +import com.itmill.toolkit.ui.Button; +import com.itmill.toolkit.ui.OrderedLayout; +import com.itmill.toolkit.ui.Button.ClickEvent; + +public class ButtonLinkExample extends OrderedLayout implements + Button.ClickListener { + + private static final String CAPTION = "Help"; + private static final String TOOLTIP = "Show help"; + private static final ThemeResource ICON = new ThemeResource( + "icons/icon_info.gif"); + private static final String NOTIFICATION = "Help clicked"; + + public ButtonLinkExample() { + setSpacing(true); + + // Button w/ text and tooltip + Button b = new Button(CAPTION); + b.setStyleName(Button.STYLE_LINK); + b.setDescription(TOOLTIP); + b.addListener(this); // react to clicks + addComponent(b); + + // Button w/ text, icon and tooltip + b = new Button(CAPTION); + b.setStyleName(Button.STYLE_LINK); + b.setDescription(TOOLTIP); + b.setIcon(ICON); + b.addListener(this); // react to clicks + addComponent(b); + + // Button w/ icon and tooltip + b = new Button(); + b.setStyleName(Button.STYLE_LINK); + b.setDescription(TOOLTIP); + b.setIcon(ICON); + b.addListener(this); // react to clicks + addComponent(b); + + } + + /* + * Shows a notification when a button is clicked. + */ + public void buttonClick(ClickEvent event) { + getWindow().showNotification(NOTIFICATION); + } +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonPush.java b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonPush.java new file mode 100644 index 0000000000..518d85d48b --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonPush.java @@ -0,0 +1,30 @@ +package com.itmill.toolkit.demo.sampler.features.buttons; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Button; + +public class ButtonPush extends Feature { + + public String getDescription() { + return "A basic push-button."; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(Button.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { ButtonLink.class, ButtonSwitch.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonPush.png b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonPush.png new file mode 100644 index 0000000000..87d96efbd3 Binary files /dev/null and b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonPush.png differ diff --git a/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonPushExample.java b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonPushExample.java new file mode 100644 index 0000000000..5457b36c9e --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonPushExample.java @@ -0,0 +1,48 @@ +package com.itmill.toolkit.demo.sampler.features.buttons; + +import com.itmill.toolkit.terminal.ThemeResource; +import com.itmill.toolkit.ui.Button; +import com.itmill.toolkit.ui.OrderedLayout; +import com.itmill.toolkit.ui.Button.ClickEvent; + +public class ButtonPushExample extends OrderedLayout implements + Button.ClickListener { + + private static final String CAPTION = "Save"; + private static final String TOOLTIP = "Save changes"; + private static final ThemeResource ICON = new ThemeResource( + "icons/action_save.gif"); + private static final String NOTIFICATION = "Changes have been saved"; + + public ButtonPushExample() { + setSpacing(true); + + // Button w/ text and tooltip + Button b = new Button(CAPTION); + b.setDescription(TOOLTIP); + b.addListener(this); // react to clicks + addComponent(b); + + // Button w/ text, icon and tooltip + b = new Button(CAPTION); + b.setDescription(TOOLTIP); + b.setIcon(ICON); + b.addListener(this); // react to clicks + addComponent(b); + + // Button w/ icon and tooltip + b = new Button(); + b.setDescription(TOOLTIP); + b.setIcon(ICON); + b.addListener(this); // react to clicks + addComponent(b); + + } + + /* + * Shows a notification when a button is clicked. + */ + public void buttonClick(ClickEvent event) { + getWindow().showNotification(NOTIFICATION); + } +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonSwitch.java b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonSwitch.java new file mode 100644 index 0000000000..6eeab810b3 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonSwitch.java @@ -0,0 +1,30 @@ +package com.itmill.toolkit.demo.sampler.features.buttons; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Button; + +public class ButtonSwitch extends Feature { + + public String getDescription() { + return "A switch button."; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(Button.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { ButtonPush.class, ButtonLink.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonSwitch.png b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonSwitch.png new file mode 100644 index 0000000000..948e167579 Binary files /dev/null and b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonSwitch.png differ diff --git a/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonSwitchExample.java b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonSwitchExample.java new file mode 100644 index 0000000000..722b89b085 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/buttons/ButtonSwitchExample.java @@ -0,0 +1,52 @@ +package com.itmill.toolkit.demo.sampler.features.buttons; + +import com.itmill.toolkit.terminal.ThemeResource; +import com.itmill.toolkit.ui.Button; +import com.itmill.toolkit.ui.OrderedLayout; +import com.itmill.toolkit.ui.Button.ClickEvent; + +public class ButtonSwitchExample extends OrderedLayout implements + Button.ClickListener { + + private static final String CAPTION = "Allow HTML"; + private static final String TOOLTIP = "Allow/disallow HTML in comments"; + private static final ThemeResource ICON = new ThemeResource( + "icons/page_code.gif"); + + public ButtonSwitchExample() { + setSpacing(true); + + // Button w/ text and tooltip + Button b = new Button(CAPTION); + b.setSwitchMode(true); + b.setDescription(TOOLTIP); + b.addListener(this); // react to clicks + addComponent(b); + + // Button w/ text, icon and tooltip + b = new Button(CAPTION); + b.setSwitchMode(true); + b.setDescription(TOOLTIP); + b.setIcon(ICON); + b.addListener(this); // react to clicks + addComponent(b); + + // Button w/ icon and tooltip + b = new Button(); + b.setSwitchMode(true); + b.setDescription(TOOLTIP); + b.setIcon(ICON); + b.addListener(this); // react to clicks + addComponent(b); + + } + + /* + * Shows a notification when a button is clicked. + */ + public void buttonClick(ClickEvent event) { + boolean enabled = event.getButton().booleanValue(); + getWindow().showNotification( + "HTML " + (enabled ? "enabled" : "disabled")); + } +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/link/LinkCurrentWindow.java b/src/com/itmill/toolkit/demo/sampler/features/link/LinkCurrentWindow.java new file mode 100644 index 0000000000..3bd09c9307 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/link/LinkCurrentWindow.java @@ -0,0 +1,32 @@ +package com.itmill.toolkit.demo.sampler.features.link; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.demo.sampler.features.buttons.ButtonLink; +import com.itmill.toolkit.ui.Link; + +public class LinkCurrentWindow extends Feature { + + public String getDescription() { + return "An external link."; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(Link.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { LinkNoDecorations.class, LinkSizedWindow.class, + ButtonLink.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/link/LinkCurrentWindow.png b/src/com/itmill/toolkit/demo/sampler/features/link/LinkCurrentWindow.png new file mode 100644 index 0000000000..5b13d5e288 Binary files /dev/null and b/src/com/itmill/toolkit/demo/sampler/features/link/LinkCurrentWindow.png differ diff --git a/src/com/itmill/toolkit/demo/sampler/features/link/LinkCurrentWindowExample.java b/src/com/itmill/toolkit/demo/sampler/features/link/LinkCurrentWindowExample.java new file mode 100644 index 0000000000..20b7909e58 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/link/LinkCurrentWindowExample.java @@ -0,0 +1,38 @@ +package com.itmill.toolkit.demo.sampler.features.link; + +import com.itmill.toolkit.terminal.ExternalResource; +import com.itmill.toolkit.terminal.ThemeResource; +import com.itmill.toolkit.ui.Link; +import com.itmill.toolkit.ui.OrderedLayout; + +public class LinkCurrentWindowExample extends OrderedLayout { + + private static final String CAPTION = "Open Google"; + private static final String TOOLTIP = "http://www.google.com"; + private static final ThemeResource ICON = new ThemeResource( + "icons/icon_world.gif"); + + public LinkCurrentWindowExample() { + setSpacing(true); + + // Link w/ text and tooltip + Link l = new Link(CAPTION, + new ExternalResource("http://www.google.com")); + l.setDescription(TOOLTIP); + addComponent(l); + + // Link w/ text, icon and tooltip + l = new Link(CAPTION, new ExternalResource("http://www.google.com")); + l.setDescription(TOOLTIP); + l.setIcon(ICON); + addComponent(l); + + // Link w/ icon and tooltip + l = new Link(); + l.setResource(new ExternalResource("http://www.google.com")); + l.setDescription(TOOLTIP); + l.setIcon(ICON); + addComponent(l); + + } +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/link/LinkNoDecorations.java b/src/com/itmill/toolkit/demo/sampler/features/link/LinkNoDecorations.java new file mode 100644 index 0000000000..7d979d8b6e --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/link/LinkNoDecorations.java @@ -0,0 +1,32 @@ +package com.itmill.toolkit.demo.sampler.features.link; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.demo.sampler.features.buttons.ButtonLink; +import com.itmill.toolkit.ui.Link; + +public class LinkNoDecorations extends Feature { + + public String getDescription() { + return "A link that opens a new window w/o decorations"; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(Link.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { LinkCurrentWindow.class, LinkSizedWindow.class, + ButtonLink.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/link/LinkNoDecorations.png b/src/com/itmill/toolkit/demo/sampler/features/link/LinkNoDecorations.png new file mode 100644 index 0000000000..e8fa3010c9 Binary files /dev/null and b/src/com/itmill/toolkit/demo/sampler/features/link/LinkNoDecorations.png differ diff --git a/src/com/itmill/toolkit/demo/sampler/features/link/LinkNoDecorationsExample.java b/src/com/itmill/toolkit/demo/sampler/features/link/LinkNoDecorationsExample.java new file mode 100644 index 0000000000..446f6080db --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/link/LinkNoDecorationsExample.java @@ -0,0 +1,44 @@ +package com.itmill.toolkit.demo.sampler.features.link; + +import com.itmill.toolkit.terminal.ExternalResource; +import com.itmill.toolkit.terminal.ThemeResource; +import com.itmill.toolkit.ui.Link; +import com.itmill.toolkit.ui.OrderedLayout; + +public class LinkNoDecorationsExample extends OrderedLayout { + + private static final String CAPTION = "Open Google in new window"; + private static final String TOOLTIP = "http://www.google.com (opens in new window)"; + private static final ThemeResource ICON = new ThemeResource( + "icons/icon_world.gif"); + + public LinkNoDecorationsExample() { + setSpacing(true); + + // Link w/ text and tooltip + Link l = new Link(CAPTION, + new ExternalResource("http://www.google.com")); + l.setTargetName("_blank"); + l.setTargetBorder(Link.TARGET_BORDER_NONE); + l.setDescription(TOOLTIP); + addComponent(l); + + // Link w/ text, icon and tooltip + l = new Link(CAPTION, new ExternalResource("http://www.google.com")); + l.setTargetName("_blank"); + l.setTargetBorder(Link.TARGET_BORDER_NONE); + l.setDescription(TOOLTIP); + l.setIcon(ICON); + addComponent(l); + + // Link w/ icon and tooltip + l = new Link(); + l.setResource(new ExternalResource("http://www.google.com")); + l.setTargetName("_blank"); + l.setTargetBorder(Link.TARGET_BORDER_NONE); + l.setDescription(TOOLTIP); + l.setIcon(ICON); + addComponent(l); + + } +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/link/LinkSizedWindow.java b/src/com/itmill/toolkit/demo/sampler/features/link/LinkSizedWindow.java new file mode 100644 index 0000000000..8591ca355b --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/link/LinkSizedWindow.java @@ -0,0 +1,32 @@ +package com.itmill.toolkit.demo.sampler.features.link; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.demo.sampler.features.buttons.ButtonLink; +import com.itmill.toolkit.ui.Link; + +public class LinkSizedWindow extends Feature { + + public String getDescription() { + return "A link that opens a small new window w/o decorations"; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(Link.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + return new Class[] { LinkCurrentWindow.class, LinkNoDecorations.class, + ButtonLink.class }; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/link/LinkSizedWindow.png b/src/com/itmill/toolkit/demo/sampler/features/link/LinkSizedWindow.png new file mode 100644 index 0000000000..290b313a9b Binary files /dev/null and b/src/com/itmill/toolkit/demo/sampler/features/link/LinkSizedWindow.png differ diff --git a/src/com/itmill/toolkit/demo/sampler/features/link/LinkSizedWindowExample.java b/src/com/itmill/toolkit/demo/sampler/features/link/LinkSizedWindowExample.java new file mode 100644 index 0000000000..f6ea27434e --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/link/LinkSizedWindowExample.java @@ -0,0 +1,52 @@ +package com.itmill.toolkit.demo.sampler.features.link; + +import com.itmill.toolkit.terminal.ExternalResource; +import com.itmill.toolkit.terminal.Resource; +import com.itmill.toolkit.terminal.ThemeResource; +import com.itmill.toolkit.ui.Link; +import com.itmill.toolkit.ui.OrderedLayout; + +public class LinkSizedWindowExample extends OrderedLayout { + + private static final String CAPTION = "Open Google in small window"; + private static final String TOOLTIP = "http://www.google.com (opens in small window)"; + private static final ThemeResource ICON = new ThemeResource( + "icons/icon_world.gif"); + private static final Resource TARGET = new ExternalResource( + "http://www.google.com/m"); + + public LinkSizedWindowExample() { + setSpacing(true); + + // Link w/ text and tooltip + Link l = new Link(CAPTION, TARGET); + l.setTargetName("_blank"); + l.setTargetWidth(300); + l.setTargetHeight(300); + l.setTargetBorder(Link.TARGET_BORDER_NONE); + l.setDescription(TOOLTIP); + addComponent(l); + + // Link w/ text, icon and tooltip + l = new Link(CAPTION, TARGET); + l.setTargetName("_blank"); + l.setTargetWidth(300); + l.setTargetHeight(300); + l.setTargetBorder(Link.TARGET_BORDER_NONE); + l.setDescription(TOOLTIP); + l.setIcon(ICON); + addComponent(l); + + // Link w/ icon and tooltip + l = new Link(); + l.setResource(TARGET); + l.setTargetName("_blank"); + l.setTargetWidth(300); + l.setTargetHeight(300); + l.setTargetBorder(Link.TARGET_BORDER_NONE); + l.setDescription(TOOLTIP); + l.setIcon(ICON); + addComponent(l); + + } +} diff --git a/src/com/itmill/toolkit/demo/sampler/folder.gif b/src/com/itmill/toolkit/demo/sampler/folder.gif new file mode 100644 index 0000000000..8dc04c4956 Binary files /dev/null and b/src/com/itmill/toolkit/demo/sampler/folder.gif differ