From bfaf6d90d6d9f17fbdf17214af1c1898b2566658 Mon Sep 17 00:00:00 2001 From: Marc Englund Date: Fri, 7 Nov 2008 12:08:17 +0000 Subject: [PATCH] Sampler Tooltips example added, etc svn changeset:5828/svn branch:trunk --- .../ITMILL/themes/sampler/sampler/styles.css | 15 +++- .../demo/sampler/SamplerApplication.java | 51 +++++++++----- .../blueprints/ProminentPrimaryAction.java | 9 ++- .../ProminentPrimaryActionExample.java | 66 +++++++++++------- .../sampler/features/commons/Tooltips.java | 38 ++++++++++ .../sampler/features/commons/Tooltips.png | Bin 0 -> 16930 bytes .../features/commons/TooltipsExample.java | 52 ++++++++++++++ .../NotificationCustomExample.java | 2 +- 8 files changed, 184 insertions(+), 49 deletions(-) create mode 100644 src/com/itmill/toolkit/demo/sampler/features/commons/Tooltips.java create mode 100644 src/com/itmill/toolkit/demo/sampler/features/commons/Tooltips.png create mode 100644 src/com/itmill/toolkit/demo/sampler/features/commons/TooltipsExample.java diff --git a/WebContent/ITMILL/themes/sampler/sampler/styles.css b/WebContent/ITMILL/themes/sampler/sampler/styles.css index 899ee9ceda..70e1ed7eb5 100644 --- a/WebContent/ITMILL/themes/sampler/sampler/styles.css +++ b/WebContent/ITMILL/themes/sampler/sampler/styles.css @@ -4,7 +4,7 @@ #sampler { background-color: white; } -#sampler .i-expandlayout-topbar { +#sampler .i-orderedlayout-topbar { border-bottom: 1px solid #999; } @@ -23,6 +23,11 @@ #sampler .i-button-screenshot { border: 3px solid #eeeeee; + overflow: hidden; +} +#sampler .i-button-screenshot img { + margin-top: -2px; + margin-left: -3px; } #sampler tr.i-table-row-section { @@ -35,6 +40,10 @@ font-weight: bold; } +#sampler .i-panel-content-light { + border-top: 0px; +} + #sampler .feature-main { padding: 20px; } @@ -51,6 +60,10 @@ padding: 20px; line-height: 20px; } +#sampler .feature-info div.i-link a { + color: white; + line-height: 20px; +} #sampler .feature-name { font-size: 22px; font-weight: bold; diff --git a/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java b/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java index f8b0014ffa..d96a57f7e1 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.Tooltips; 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; @@ -41,6 +42,7 @@ import com.itmill.toolkit.ui.Embedded; import com.itmill.toolkit.ui.ExpandLayout; import com.itmill.toolkit.ui.GridLayout; import com.itmill.toolkit.ui.Label; +import com.itmill.toolkit.ui.Panel; import com.itmill.toolkit.ui.SplitPanel; import com.itmill.toolkit.ui.Table; import com.itmill.toolkit.ui.Tree; @@ -62,6 +64,12 @@ public class SamplerApplication extends Application { new FeatureSet("Components", new Feature[] { // Components + + new FeatureSet("Commons", + new Feature[] { new Tooltips(), // tooltips + + }), + new FeatureSet("Buttons", new Feature[] { new ButtonPush(), // basic new ButtonLink(), // link @@ -288,6 +296,7 @@ public class SamplerApplication extends Application { // Handle REST -style urls public DownloadStream handleURI(URL context, String relativeUri) { + Feature f = features.getFeatureByPath(relativeUri); if (f != null) { setFeature(f); @@ -457,6 +466,7 @@ public class SamplerApplication extends Application { public void show(Component c) { if (getCompositionRoot() != c) { + c.setSizeFull(); setCompositionRoot(c); } } @@ -545,24 +555,28 @@ public class SamplerApplication extends Application { } - private class FeatureGrid extends GridLayout implements FeatureList { + private class FeatureGrid extends Panel implements FeatureList { + + GridLayout grid = new GridLayout(5, 1); FeatureGrid() { - super(5, 1); - setWidth("100%"); - setMargin(true); - setSpacing(true); + setSizeFull(); + getLayout().setWidth("100%"); + grid.setWidth("100%"); + grid.setSpacing(true); + addComponent(grid); + setStyleName(Panel.STYLE_LIGHT); } private void newRow() { - while (getCursorX() > 0) { - space(); + while (grid.getCursorX() > 0) { + grid.space(); } - setRows(getRows() + 1); + grid.setRows(grid.getRows() + 1); } public void setFeatureContainer(HierarchicalContainer c) { - removeAllComponents(); + grid.removeAllComponents(); Collection features = c.getItemIds(); for (Iterator it = features.iterator(); it.hasNext();) { final Feature f = (Feature) it.next(); @@ -572,17 +586,18 @@ public class SamplerApplication extends Application { if (c.isRoot(f)) { title.setWidth("100%"); title.setStyleName("section"); - addComponent(title, 0, getCursorY(), getColumns() - 1, - getCursorY()); + grid.addComponent(title, 0, grid.getCursorY(), grid + .getColumns() - 1, grid.getCursorY()); } else { title.setStyleName("subsection"); - addComponent(title); + grid.addComponent(title); } - setComponentAlignment(title, ALIGNMENT_LEFT, - ALIGNMENT_VERTICAL_CENTER); + grid.setComponentAlignment(title, + GridLayout.ALIGNMENT_LEFT, + GridLayout.ALIGNMENT_VERTICAL_CENTER); } else { - if (getCursorX() == 0) { - space(); + if (grid.getCursorX() == 0) { + grid.space(); } Button b = new Button(); b.setStyleName(Button.STYLE_LINK); @@ -598,7 +613,7 @@ public class SamplerApplication extends Application { ((SamplerWindow) getWindow()).setFeature(f); } }); - addComponent(b); + grid.addComponent(b); } } } @@ -651,7 +666,7 @@ public class SamplerApplication extends Application { f = null; // break while if no new found String part = parts.remove(0); for (int i = 0; i < fs.length; i++) { - if (fs[i].getPathName().equals(part)) { + if (fs[i].getPathName().equalsIgnoreCase(part)) { if (parts.isEmpty()) { return fs[i]; } else if (fs[i] instanceof FeatureSet) { diff --git a/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryAction.java b/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryAction.java index 6602429981..f4f0bdca51 100644 --- a/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryAction.java +++ b/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryAction.java @@ -35,12 +35,15 @@ public class ProminentPrimaryAction extends Feature { @Override public NamedExternalResource[] getRelatedResources() { return new NamedExternalResource[] { + + new NamedExternalResource("CSS used", getThemeBase() + + "prominentprimaryaction/styles.css"), + new NamedExternalResource( - "LukeW: Primary & Secondary Actions in Web Forms", + "Article: Primary & Secondary Actions in Web Forms (LukeW)", "http://www.lukew.com/resources/articles/psactions.asp"), new NamedExternalResource( - "UI Pattern Factory: Primary & Secondary Actions", + "Article: Primary & Secondary Actions (UI Pattern Factory)", "http://uipatternfactory.com/p=primary-and-secondary-actions/") }; } - } diff --git a/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryActionExample.java b/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryActionExample.java index cd8b5ea7c9..fb03daaa4d 100644 --- a/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryActionExample.java +++ b/src/com/itmill/toolkit/demo/sampler/features/blueprints/ProminentPrimaryActionExample.java @@ -10,32 +10,46 @@ public class ProminentPrimaryActionExample extends OrderedLayout implements 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); + { // Cancel / Save + OrderedLayout horiz = new OrderedLayout(ORIENTATION_HORIZONTAL); + horiz.setSpacing(true); + horiz.setMargin(true); + addComponent(horiz); + Button secondary = new Button("Cancel", this); + secondary.setStyleName(Button.STYLE_LINK); + horiz.addComponent(secondary); + Button primary = new Button("Save", this); + horiz.addComponent(primary); + } + + { // Sign up / Sign in + OrderedLayout horiz = new OrderedLayout(ORIENTATION_HORIZONTAL); + horiz.setSpacing(true); + horiz.setMargin(true); + addComponent(horiz); + Button primary = new Button("Sign up", this); + primary.addStyleName("primary"); + horiz.addComponent(primary); + Button secondary = new Button("or Sign in", this); + secondary.setStyleName(Button.STYLE_LINK); + horiz.setComponentAlignment(secondary, ALIGNMENT_LEFT, + ALIGNMENT_VERTICAL_CENTER); + horiz.addComponent(secondary); + } + + { // Login / Forgot password? + OrderedLayout vert = new OrderedLayout(); + vert.setSpacing(true); + vert.setMargin(true); + addComponent(vert); + Button primary = new Button("Login", this); + vert.addComponent(primary); + vert.setComponentAlignment(primary, OrderedLayout.ALIGNMENT_RIGHT, + OrderedLayout.ALIGNMENT_BOTTOM); + Button secondary = new Button("Forgot your password?", this); + secondary.setStyleName(Button.STYLE_LINK); + vert.addComponent(secondary); + } } diff --git a/src/com/itmill/toolkit/demo/sampler/features/commons/Tooltips.java b/src/com/itmill/toolkit/demo/sampler/features/commons/Tooltips.java new file mode 100644 index 0000000000..3644424ebc --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/commons/Tooltips.java @@ -0,0 +1,38 @@ +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.AbstractComponent; + +public class Tooltips extends Feature { + + @Override + public String getDescription() { + return "Most components can have a description," + + " which is shown as a \"tooltip\".
" + + "Descriptions may have rich content.
" + + "Note that description is more generic term than" + + " tooltip - a component might choose to show" + + " the description in another way, if that's more appropriate" + + " for that compoenent.)"; + } + + @Override + public APIResource[] getRelatedAPI() { + return new APIResource[] { new APIResource(AbstractComponent.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/Tooltips.png b/src/com/itmill/toolkit/demo/sampler/features/commons/Tooltips.png new file mode 100644 index 0000000000000000000000000000000000000000..556e74f4def4f60f4afd3cb5ac5c2974d201f189 GIT binary patch literal 16930 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 ts%tiq?A richtext tooltip" + + "
    " + + "
  • HTML formatting
  • Images
    " + + "
  • etc...
"); + addComponent(rich); + + /* Edit */ + final RichTextArea rte = new RichTextArea(); + rte + .setValue("Click Edit Tooltip to edit this tooltip, then Apply"); + rte.setVisible(false); // hide editor initially + addComponent(rte); + Button apply = new Button("Edit Tooltip", new Button.ClickListener() { + public void buttonClick(ClickEvent event) { + if (rte.isVisible()) { + rte.setVisible(false); + event.getButton().setDescription((String) rte.getValue()); + event.getButton().setCaption("Edit Tooltip"); + } else { + rte.setVisible(true); + event.getButton().setCaption("Apply"); + } + } + }); + apply.setDescription((String) rte.getValue()); + addComponent(apply); + + } +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/notifications/NotificationCustomExample.java b/src/com/itmill/toolkit/demo/sampler/features/notifications/NotificationCustomExample.java index 78defa1f3d..4863156106 100644 --- a/src/com/itmill/toolkit/demo/sampler/features/notifications/NotificationCustomExample.java +++ b/src/com/itmill/toolkit/demo/sampler/features/notifications/NotificationCustomExample.java @@ -42,7 +42,7 @@ public class NotificationCustomExample extends OrderedLayout { initPositionItems(position); final NativeSelect style = new NativeSelect("Style"); - position.setNullSelectionAllowed(false); + style.setNullSelectionAllowed(false); horiz.addComponent(style); initTypeItems(style); -- 2.39.5