aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/itmill/toolkit/demo/sampler/SamplerApplication.java
diff options
context:
space:
mode:
authorMarc Englund <marc.englund@itmill.com>2009-02-12 14:51:31 +0000
committerMarc Englund <marc.englund@itmill.com>2009-02-12 14:51:31 +0000
commitfc5388c5ea5ea3467ed2582bb55773db2e375ce6 (patch)
tree2f3e6573e3b84c37a41cc9bf3d96f0e5aec1edc3 /src/com/itmill/toolkit/demo/sampler/SamplerApplication.java
parent6e3b79ab28fc99faaba74192d8c4a965fbd49c6a (diff)
downloadvaadin-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.java39
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("&raquo;",
+ 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);
+ }
+ });
+ }
+ }
}