From 7fdfda6c342af23bb4924fc2624a7ffd7feff9e1 Mon Sep 17 00:00:00 2001 From: Marc Englund Date: Fri, 7 Nov 2008 14:27:33 +0000 Subject: [PATCH] Sampler; Icons svn changeset:5833/svn branch:trunk --- .../demo/sampler/SamplerApplication.java | 8 +-- .../demo/sampler/features/commons/Icons.java | 36 +++++++++++++ .../demo/sampler/features/commons/Icons.png | Bin 0 -> 10461 bytes .../features/commons/IconsExample.java | 49 ++++++++++++++++++ 4 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 src/com/itmill/toolkit/demo/sampler/features/commons/Icons.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/commons/Icons.png create mode 100644 src/com/itmill/toolkit/demo/sampler/features/commons/IconsExample.java diff --git a/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java b/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java index d96a57f7e1..34bc8ca932 100644 --- a/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java +++ b/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java @@ -20,6 +20,7 @@ import com.itmill.toolkit.demo.sampler.features.blueprints.ProminentPrimaryActio import com.itmill.toolkit.demo.sampler.features.buttons.ButtonLink; import com.itmill.toolkit.demo.sampler.features.buttons.ButtonPush; import com.itmill.toolkit.demo.sampler.features.buttons.ButtonSwitch; +import com.itmill.toolkit.demo.sampler.features.commons.Icons; import com.itmill.toolkit.demo.sampler.features.commons.Tooltips; import com.itmill.toolkit.demo.sampler.features.link.LinkCurrentWindow; import com.itmill.toolkit.demo.sampler.features.link.LinkNoDecorations; @@ -65,10 +66,11 @@ public class SamplerApplication extends Application { new FeatureSet("Components", new Feature[] { // Components - new FeatureSet("Commons", - new Feature[] { new Tooltips(), // tooltips + new FeatureSet("Commons", new Feature[] { + new Tooltips(), // tooltips + new Icons(), // icons - }), + }), new FeatureSet("Buttons", new Feature[] { new ButtonPush(), // basic diff --git a/src/com/itmill/toolkit/demo/sampler/features/commons/Icons.java b/src/com/itmill/toolkit/demo/sampler/features/commons/Icons.java new file mode 100644 index 0000000000..c30fd22c57 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/commons/Icons.java @@ -0,0 +1,36 @@ +package com.itmill.toolkit.demo.sampler.features.commons; + +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.Component; + +public class Icons extends Feature { + + @Override + public String getDescription() { + return "Most components can have an icon," + + " which is usually displayed next to the caption.
" + + "When used correctly, icons can make it significantly" + + " easier for the user to find a specific functionality." + + " Beware of overuse, which will have the opposite effect."; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(Component.class) }; + } + + @Override + public Class[] getRelatedFeatures() { + // TODO Auto-generated method stub + return null; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/commons/Icons.png b/src/com/itmill/toolkit/demo/sampler/features/commons/Icons.png new file mode 100644 index 0000000000000000000000000000000000000000..0f0f190d79f33544495ed018ddcae7e1aa58b297 GIT binary patch literal 10461 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