diff options
author | Marc Englund <marc.englund@itmill.com> | 2009-02-12 14:51:31 +0000 |
---|---|---|
committer | Marc Englund <marc.englund@itmill.com> | 2009-02-12 14:51:31 +0000 |
commit | fc5388c5ea5ea3467ed2582bb55773db2e375ce6 (patch) | |
tree | 2f3e6573e3b84c37a41cc9bf3d96f0e5aec1edc3 /src/com/itmill/toolkit/demo/sampler/SamplerApplication.java | |
parent | 6e3b79ab28fc99faaba74192d8c4a965fbd49c6a (diff) | |
download | vaadin-framework-fc5388c5ea5ea3467ed2582bb55773db2e375ce6.tar.gz vaadin-framework-fc5388c5ea5ea3467ed2582bb55773db2e375ce6.zip |
View source in subwindow / native window. Fixes #2561
svn changeset:6821/svn branch:trunk
Diffstat (limited to 'src/com/itmill/toolkit/demo/sampler/SamplerApplication.java')
-rw-r--r-- | src/com/itmill/toolkit/demo/sampler/SamplerApplication.java | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java b/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java index f9802d98d2..2607d83310 100644 --- a/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java +++ b/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java @@ -1,6 +1,7 @@ package com.itmill.toolkit.demo.sampler; import java.net.URI; +import java.net.URL; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; @@ -15,9 +16,11 @@ import com.itmill.toolkit.demo.sampler.ModeSwitch.ModeSwitchEvent; import com.itmill.toolkit.event.ItemClickEvent; import com.itmill.toolkit.event.ItemClickEvent.ItemClickListener; import com.itmill.toolkit.terminal.ClassResource; +import com.itmill.toolkit.terminal.DownloadStream; import com.itmill.toolkit.terminal.ExternalResource; import com.itmill.toolkit.terminal.Resource; import com.itmill.toolkit.terminal.ThemeResource; +import com.itmill.toolkit.terminal.URIHandler; import com.itmill.toolkit.ui.Alignment; import com.itmill.toolkit.ui.Button; import com.itmill.toolkit.ui.ComboBox; @@ -80,8 +83,13 @@ public class SamplerApplication extends Application { public Window getWindow(String name) { Window w = super.getWindow(name); if (w == null) { - w = new SamplerWindow(); - w.setName(name); + if (name.startsWith("src")) { + w = new SourceWindow(); + } else { + w = new SamplerWindow(); + w.setName(name); + } + addWindow(w); } return w; @@ -500,7 +508,8 @@ public class SamplerApplication extends Application { String current = ""; ActiveLink link = null; for (int i = 0; i < parts.length; i++) { - layout.addComponent(new Label("‣")); + layout.addComponent(new Label("»", + Label.CONTENT_XHTML)); current += (i > 0 ? "/" : "") + parts[i]; Feature f = FeatureSet.FEATURES.getFeatureByPath(current); link = new ActiveLink(f.getName(), new ExternalResource("#" @@ -712,4 +721,28 @@ public class SamplerApplication extends Application { return allFeatures; } + public class SourceWindow extends Window { + public SourceWindow() { + addURIHandler(new URIHandler() { + public DownloadStream handleURI(URL context, String relativeUri) { + Feature f = FeatureSet.FEATURES + .getFeatureByPath(relativeUri); + if (f != null) { + addComponent(new CodeLabel(f.getSource())); + } else { + addComponent(new Label("Sorry, no source found for " + + relativeUri)); + } + return null; + } + + }); + + addListener(new CloseListener() { + public void windowClose(CloseEvent e) { + SamplerApplication.this.removeWindow(SourceWindow.this); + } + }); + } + } } |