import com.itmill.toolkit.demo.sampler.features.trees.TreeMouseEvents;
import com.itmill.toolkit.demo.sampler.features.trees.TreeMultiSelect;
import com.itmill.toolkit.demo.sampler.features.trees.TreeSingleSelect;
-import com.itmill.toolkit.demo.sampler.features.windows.WindowChild;
-import com.itmill.toolkit.demo.sampler.features.windows.WindowChildAutosize;
-import com.itmill.toolkit.demo.sampler.features.windows.WindowChildModal;
-import com.itmill.toolkit.demo.sampler.features.windows.WindowChildPositionSize;
-import com.itmill.toolkit.demo.sampler.features.windows.WindowChildScrollable;
-import com.itmill.toolkit.demo.sampler.features.windows.WindowNativeNew;
-import com.itmill.toolkit.demo.sampler.features.windows.WindowNativeShared;
+import com.itmill.toolkit.demo.sampler.features.windows.Subwindow;
+import com.itmill.toolkit.demo.sampler.features.windows.SubwindowAutoSized;
+import com.itmill.toolkit.demo.sampler.features.windows.SubwindowClose;
+import com.itmill.toolkit.demo.sampler.features.windows.SubwindowModal;
+import com.itmill.toolkit.demo.sampler.features.windows.SubwindowPositioned;
+import com.itmill.toolkit.demo.sampler.features.windows.SubwindowSized;
/**
* Contains the FeatureSet implementation and the structure for the feature
public static class Windows extends FeatureSet {
public Windows() {
- super("Windows", new Feature[] {
- //
- new WindowNativeShared(), //
- new WindowNativeNew(), //
- new WindowChild(), //
- new WindowChildAutosize(), //
- new WindowChildModal(), //
- new WindowChildPositionSize(), //
- new WindowChildScrollable(), //
- });
+ super(
+ "Windows",
+ "Windows",
+ "Windows can for instance organize the UI, save space (popup windows), focus attention (modal windows), provide multiple views for multitasking (native browser windows).",
+ new Feature[] {
+ //
+ new Subwindow(), //
+ new SubwindowModal(), //
+ new SubwindowAutoSized(), //
+ new SubwindowSized(), //
+ new SubwindowPositioned(), //
+ new SubwindowClose(), //
+ // new NativeWindow(), // in progress
+ });
}
}
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.demo.sampler.APIResource;\r
+import com.itmill.toolkit.demo.sampler.Feature;\r
+import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
+import com.itmill.toolkit.ui.Window;\r
+\r
+public class NativeWindow extends Feature {\r
+\r
+ @Override\r
+ public String getName() {\r
+ return "Subwindow";\r
+ }\r
+\r
+ @Override\r
+ public String getDescription() {\r
+ return "A <i>Subwindow</i> is a popup-window within the browser window."\r
+ + " There can be multiple subwindows in one (native) browser"\r
+ + " window.";\r
+ }\r
+\r
+ @Override\r
+ public APIResource[] getRelatedAPI() {\r
+ return new APIResource[] { new APIResource(Window.class) };\r
+ }\r
+\r
+ @Override\r
+ public Class[] getRelatedFeatures() {\r
+ return new Class[] { SubwindowModal.class };\r
+ }\r
+\r
+ @Override\r
+ public NamedExternalResource[] getRelatedResources() {\r
+ return null;\r
+ }\r
+\r
+}\r
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.terminal.ExternalResource;\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.Label;\r
+import com.itmill.toolkit.ui.VerticalLayout;\r
+import com.itmill.toolkit.ui.Window;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+import com.itmill.toolkit.ui.Window.CloseEvent;\r
+\r
+public class NativeWindowExample extends VerticalLayout {\r
+\r
+ Window window;\r
+\r
+ public NativeWindowExample() {\r
+\r
+ // Create the window\r
+ window = new Window("Automatically sized subwindow");\r
+ // Native windows should be explicitly removed from the application\r
+ // when appropriate; in this case when closed:\r
+ window.addListener(new Window.CloseListener() {\r
+ // inline close-listener\r
+ public void windowClose(CloseEvent e) {\r
+ getApplication().removeWindow(window);\r
+ }\r
+ });\r
+\r
+ // Configure the windows layout; by default a VerticalLayout\r
+ VerticalLayout layout = (VerticalLayout) window.getLayout();\r
+ layout.setMargin(true);\r
+ layout.setSpacing(true);\r
+ // make it undefined for auto-sizing window\r
+ layout.setSizeUndefined();\r
+\r
+ // Add some content;\r
+ window.addComponent(new Label("This is is native (browser) window."));\r
+\r
+ // Add a button for opening the window\r
+ Button open = new Button("Open native window",\r
+ new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ getApplication().addWindow(window);\r
+ getApplication().getMainWindow().open(\r
+ new ExternalResource(window.getURL()),\r
+ "NativeWindowExample", 500, 500,\r
+ Window.BORDER_NONE);\r
+ }\r
+ });\r
+ addComponent(open);\r
+\r
+ }\r
+\r
+}
\ No newline at end of file
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.demo.sampler.APIResource;\r
+import com.itmill.toolkit.demo.sampler.Feature;\r
+import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
+import com.itmill.toolkit.ui.Window;\r
+\r
+public class Subwindow extends Feature {\r
+\r
+ @Override\r
+ public String getName() {\r
+ return "Subwindow";\r
+ }\r
+\r
+ @Override\r
+ public String getDescription() {\r
+ return "A <i>Subwindow</i> is a popup-window within the browser window."\r
+ + " There can be multiple subwindows in one (native) browser"\r
+ + " window.";\r
+ }\r
+\r
+ @Override\r
+ public APIResource[] getRelatedAPI() {\r
+ return new APIResource[] { new APIResource(Window.class) };\r
+ }\r
+\r
+ @Override\r
+ public Class[] getRelatedFeatures() {\r
+ return new Class[] { SubwindowModal.class };\r
+ }\r
+\r
+ @Override\r
+ public NamedExternalResource[] getRelatedResources() {\r
+ return null;\r
+ }\r
+\r
+}\r
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.demo.sampler.APIResource;\r
+import com.itmill.toolkit.demo.sampler.Feature;\r
+import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
+import com.itmill.toolkit.ui.Window;\r
+\r
+public class SubwindowAutoSized extends Feature {\r
+\r
+ @Override\r
+ public String getName() {\r
+ return "Window, automatic size";\r
+ }\r
+\r
+ @Override\r
+ public String getDescription() {\r
+ return "The window will be automatically sized to fit the contents,"\r
+ + " if the size of the window (and it's layout) is undefined.<br/>"\r
+ + " Note that by default Window contains a VerticalLayout that"\r
+ + " is 100% wide.";\r
+ }\r
+\r
+ @Override\r
+ public APIResource[] getRelatedAPI() {\r
+ return new APIResource[] { new APIResource(Window.class) };\r
+ }\r
+\r
+ @Override\r
+ public Class[] getRelatedFeatures() {\r
+ return new Class[] { SubwindowModal.class };\r
+ }\r
+\r
+ @Override\r
+ public NamedExternalResource[] getRelatedResources() {\r
+ return null;\r
+ }\r
+\r
+}\r
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.TextField;\r
+import com.itmill.toolkit.ui.VerticalLayout;\r
+import com.itmill.toolkit.ui.Window;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+\r
+public class SubwindowAutoSizedExample extends VerticalLayout {\r
+\r
+ Window subwindow;\r
+\r
+ public SubwindowAutoSizedExample() {\r
+\r
+ // Create the window\r
+ subwindow = new Window("Automatically sized subwindow");\r
+\r
+ // Configure the windws layout; by default a VerticalLayout\r
+ VerticalLayout layout = (VerticalLayout) subwindow.getLayout();\r
+ layout.setMargin(true);\r
+ layout.setSpacing(true);\r
+ // make it undefined for auto-sizing window\r
+ layout.setSizeUndefined();\r
+\r
+ // Add some content;\r
+ for (int i = 0; i < 7; i++) {\r
+ TextField tf = new TextField();\r
+ tf.setWidth("400px");\r
+ subwindow.addComponent(tf);\r
+ }\r
+\r
+ Button close = new Button("Close", new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ // close the window by removing it from the main window\r
+ getApplication().getMainWindow().removeWindow(subwindow);\r
+ }\r
+ });\r
+ // The components added to the window are actually added to the window's\r
+ // layout; you can use either. Alignments are set using the layout\r
+ layout.addComponent(close);\r
+ layout.setComponentAlignment(close, "right bottom");\r
+\r
+ // Add a button for opening the subwindow\r
+ Button open = new Button("Open sized window",\r
+ new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ if (subwindow.getParent() != null) {\r
+ // window is already showing\r
+ getWindow().showNotification(\r
+ "Window is already open");\r
+ } else {\r
+ // Open the subwindow by adding it to the main\r
+ // window\r
+ getApplication().getMainWindow().addWindow(\r
+ subwindow);\r
+ }\r
+ }\r
+ });\r
+ addComponent(open);\r
+\r
+ }\r
+\r
+}
\ No newline at end of file
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.demo.sampler.APIResource;\r
+import com.itmill.toolkit.demo.sampler.Feature;\r
+import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
+import com.itmill.toolkit.ui.Window;\r
+\r
+public class SubwindowClose extends Feature {\r
+\r
+ @Override\r
+ public String getName() {\r
+ return "Subwindow";\r
+ }\r
+\r
+ @Override\r
+ public String getDescription() {\r
+ return "Using a <i>CloseListener</i> one can detect when a window is closed.";\r
+ }\r
+\r
+ @Override\r
+ public APIResource[] getRelatedAPI() {\r
+ return new APIResource[] { new APIResource(Window.class) };\r
+ }\r
+\r
+ @Override\r
+ public Class[] getRelatedFeatures() {\r
+ return new Class[] { SubwindowModal.class };\r
+ }\r
+\r
+ @Override\r
+ public NamedExternalResource[] getRelatedResources() {\r
+ return null;\r
+ }\r
+\r
+}\r
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.Label;\r
+import com.itmill.toolkit.ui.VerticalLayout;\r
+import com.itmill.toolkit.ui.Window;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+import com.itmill.toolkit.ui.Window.CloseEvent;\r
+\r
+public class SubwindowCloseExample extends VerticalLayout {\r
+\r
+ Window subwindow;\r
+\r
+ public SubwindowCloseExample() {\r
+\r
+ // Create the window\r
+ subwindow = new Window("A subwindow w/ close-listener");\r
+ subwindow.addListener(new Window.CloseListener() {\r
+ // inline close-listener\r
+ public void windowClose(CloseEvent e) {\r
+ getApplication().getMainWindow().showNotification(\r
+ "Window closed");\r
+ }\r
+ });\r
+\r
+ // Configure the windws layout; by default a VerticalLayout\r
+ VerticalLayout layout = (VerticalLayout) subwindow.getLayout();\r
+ layout.setMargin(true);\r
+ layout.setSpacing(true);\r
+\r
+ // Add some content; a label and a close-button\r
+ Label message = new Label("This is a subwindow with a close-listener.");\r
+ subwindow.addComponent(message);\r
+\r
+ // Add a button for opening the subwindow\r
+ Button open = new Button("Open window", new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ if (subwindow.getParent() != null) {\r
+ // window is already showing\r
+ getWindow().showNotification("Window is already open");\r
+ } else {\r
+ // Open the subwindow by adding it to the main window\r
+ getApplication().getMainWindow().addWindow(subwindow);\r
+ }\r
+ }\r
+ });\r
+ addComponent(open);\r
+\r
+ }\r
+\r
+}
\ No newline at end of file
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.Label;\r
+import com.itmill.toolkit.ui.VerticalLayout;\r
+import com.itmill.toolkit.ui.Window;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+\r
+public class SubwindowExample extends VerticalLayout {\r
+\r
+ Window subwindow;\r
+\r
+ public SubwindowExample() {\r
+\r
+ // Create the window\r
+ subwindow = new Window("A subwindow");\r
+\r
+ // Configure the windws layout; by default a VerticalLayout\r
+ VerticalLayout layout = (VerticalLayout) subwindow.getLayout();\r
+ layout.setMargin(true);\r
+ layout.setSpacing(true);\r
+\r
+ // Add some content; a label and a close-button\r
+ Label message = new Label("This is a subwindow");\r
+ subwindow.addComponent(message);\r
+\r
+ Button close = new Button("Close", new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ // close the window by removing it from the main window\r
+ getApplication().getMainWindow().removeWindow(subwindow);\r
+ }\r
+ });\r
+ // The components added to the window are actually added to the window's\r
+ // layout; you can use either. Alignments are set using the layout\r
+ layout.addComponent(close);\r
+ layout.setComponentAlignment(close, "right");\r
+\r
+ // Add a button for opening the subwindow\r
+ Button open = new Button("Open subwindow", new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ if (subwindow.getParent() != null) {\r
+ // window is already showing\r
+ getWindow().showNotification("Window is already open");\r
+ } else {\r
+ // Open the subwindow by adding it to the main window\r
+ getApplication().getMainWindow().addWindow(subwindow);\r
+ }\r
+ }\r
+ });\r
+ addComponent(open);\r
+\r
+ }\r
+\r
+}
\ No newline at end of file
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.demo.sampler.APIResource;\r
+import com.itmill.toolkit.demo.sampler.Feature;\r
+import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
+import com.itmill.toolkit.demo.sampler.features.blueprints.ProminentPrimaryAction;\r
+import com.itmill.toolkit.ui.Window;\r
+\r
+public class SubwindowModal extends Feature {\r
+\r
+ @Override\r
+ public String getName() {\r
+ return "Modal window";\r
+ }\r
+\r
+ @Override\r
+ public String getDescription() {\r
+ return "A <i>modal window</i> blocks access to the rest of the application, "\r
+ + "until the window is closed (or made non-modal).<br/>"\r
+ + " Use modal windows when the user must finish the task in the"\r
+ + " window before continuing.";\r
+ }\r
+\r
+ @Override\r
+ public APIResource[] getRelatedAPI() {\r
+ return new APIResource[] { new APIResource(Window.class) };\r
+ }\r
+\r
+ @Override\r
+ public Class[] getRelatedFeatures() {\r
+ return new Class[] {\r
+ //\r
+ Subwindow.class, //\r
+ ProminentPrimaryAction.class, //\r
+ };\r
+ }\r
+\r
+ @Override\r
+ public NamedExternalResource[] getRelatedResources() {\r
+ return new NamedExternalResource[] {\r
+ //\r
+ new NamedExternalResource("Wikipedia: Modal window",\r
+ "http://en.wikipedia.org/wiki/Modal_window"), //\r
+\r
+ };\r
+ }\r
+\r
+}\r
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.Label;\r
+import com.itmill.toolkit.ui.VerticalLayout;\r
+import com.itmill.toolkit.ui.Window;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+\r
+public class SubwindowModalExample extends VerticalLayout {\r
+\r
+ Window subwindow;\r
+\r
+ public SubwindowModalExample() {\r
+\r
+ // Create the window...\r
+ subwindow = new Window("A modal subwindow");\r
+ // ...and make it modal\r
+ subwindow.setModal(true);\r
+\r
+ // Configure the windws layout; by default a VerticalLayout\r
+ VerticalLayout layout = (VerticalLayout) subwindow.getLayout();\r
+ layout.setMargin(true);\r
+ layout.setSpacing(true);\r
+\r
+ // Add some content; a label and a close-button\r
+ Label message = new Label("This is a modal subwindow.");\r
+ subwindow.addComponent(message);\r
+\r
+ Button close = new Button("Close", new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ // close the window by removing it from the main window\r
+ getApplication().getMainWindow().removeWindow(subwindow);\r
+ }\r
+ });\r
+ // The components added to the window are actually added to the window's\r
+ // layout; you can use either. Alignments are set using the layout\r
+ layout.addComponent(close);\r
+ layout.setComponentAlignment(close, "right");\r
+\r
+ // Add a button for opening the subwindow\r
+ Button open = new Button("Open modal window",\r
+ new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ if (subwindow.getParent() != null) {\r
+ // window is already showing\r
+ getWindow().showNotification(\r
+ "Window is already open");\r
+ } else {\r
+ // Open the subwindow by adding it to the main\r
+ // window\r
+ getApplication().getMainWindow().addWindow(\r
+ subwindow);\r
+ }\r
+ }\r
+ });\r
+ addComponent(open);\r
+\r
+ }\r
+\r
+}
\ No newline at end of file
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.demo.sampler.APIResource;\r
+import com.itmill.toolkit.demo.sampler.Feature;\r
+import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
+import com.itmill.toolkit.ui.Window;\r
+\r
+public class SubwindowPositioned extends Feature {\r
+\r
+ @Override\r
+ public String getName() {\r
+ return "Window position";\r
+ }\r
+\r
+ @Override\r
+ public String getDescription() {\r
+ return "The position of a window can be specified, or it can be centered.";\r
+ }\r
+\r
+ @Override\r
+ public APIResource[] getRelatedAPI() {\r
+ return new APIResource[] { new APIResource(Window.class) };\r
+ }\r
+\r
+ @Override\r
+ public Class[] getRelatedFeatures() {\r
+ return new Class[] { SubwindowModal.class };\r
+ }\r
+\r
+ @Override\r
+ public NamedExternalResource[] getRelatedResources() {\r
+ return null;\r
+ }\r
+\r
+}\r
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.Label;\r
+import com.itmill.toolkit.ui.VerticalLayout;\r
+import com.itmill.toolkit.ui.Window;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+\r
+public class SubwindowPositionedExample extends VerticalLayout {\r
+\r
+ Window subwindow;\r
+\r
+ public SubwindowPositionedExample() {\r
+ setSpacing(true);\r
+\r
+ // Create the window\r
+ subwindow = new Window("A positioned subwindow");\r
+\r
+ // Configure the windws layout; by default a VerticalLayout\r
+ VerticalLayout layout = (VerticalLayout) subwindow.getLayout();\r
+ layout.setMargin(true);\r
+ layout.setSpacing(true);\r
+ // make it fill the whole window\r
+ layout.setSizeFull();\r
+\r
+ // Add some content; a label and a close-button\r
+ Label message = new Label("This is a positioned window");\r
+ subwindow.addComponent(message);\r
+\r
+ Button close = new Button("Close", new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ // close the window by removing it from the main window\r
+ getApplication().getMainWindow().removeWindow(subwindow);\r
+ }\r
+ });\r
+ // The components added to the window are actually added to the window's\r
+ // layout; you can use either. Alignments are set using the layout\r
+ layout.addComponent(close);\r
+ layout.setComponentAlignment(close, "right bottom");\r
+\r
+ // Add buttons for opening the subwindow\r
+ Button fifty = new Button("Open positioned window at 50x50",\r
+ new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ subwindow.setPositionX(50);\r
+ subwindow.setPositionY(50);\r
+ if (subwindow.getParent() == null) {\r
+ // Open the subwindow by adding it to the main\r
+ // window\r
+ getApplication().getMainWindow().addWindow(\r
+ subwindow);\r
+ }\r
+ }\r
+ });\r
+ addComponent(fifty);\r
+ Button onefifty = new Button("Open positioned window at 150x150",\r
+ new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ subwindow.setPositionX(150);\r
+ subwindow.setPositionY(150);\r
+ if (subwindow.getParent() == null) {\r
+ // Open the subwindow by adding it to the main\r
+ // window\r
+ getApplication().getMainWindow().addWindow(\r
+ subwindow);\r
+ }\r
+ }\r
+ });\r
+ addComponent(onefifty);\r
+ Button center = new Button("Open centered window",\r
+ new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ subwindow.center();\r
+ if (subwindow.getParent() == null) {\r
+ // Open the subwindow by adding it to the main\r
+ // window\r
+ getApplication().getMainWindow().addWindow(\r
+ subwindow);\r
+ }\r
+ }\r
+ });\r
+ addComponent(center);\r
+\r
+ }\r
+\r
+}
\ No newline at end of file
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.demo.sampler.APIResource;\r
+import com.itmill.toolkit.demo.sampler.Feature;\r
+import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
+import com.itmill.toolkit.ui.Window;\r
+\r
+public class SubwindowSized extends Feature {\r
+\r
+ @Override\r
+ public String getName() {\r
+ return "Window, explicit size";\r
+ }\r
+\r
+ @Override\r
+ public String getDescription() {\r
+ return "The size of a window can be specified - here the width is set"\r
+ + " in pixels, and the height in percent.";\r
+ }\r
+\r
+ @Override\r
+ public APIResource[] getRelatedAPI() {\r
+ return new APIResource[] { new APIResource(Window.class) };\r
+ }\r
+\r
+ @Override\r
+ public Class[] getRelatedFeatures() {\r
+ return new Class[] { SubwindowModal.class };\r
+ }\r
+\r
+ @Override\r
+ public NamedExternalResource[] getRelatedResources() {\r
+ return null;\r
+ }\r
+\r
+}\r
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.windows;\r
+\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.Label;\r
+import com.itmill.toolkit.ui.VerticalLayout;\r
+import com.itmill.toolkit.ui.Window;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+\r
+public class SubwindowSizedExample extends VerticalLayout {\r
+\r
+ Window subwindow;\r
+\r
+ public SubwindowSizedExample() {\r
+\r
+ // Create the window\r
+ subwindow = new Window("A sized subwindow");\r
+ subwindow.setWidth("500px");\r
+ subwindow.setHeight("80%");\r
+\r
+ // Configure the windws layout; by default a VerticalLayout\r
+ VerticalLayout layout = (VerticalLayout) subwindow.getLayout();\r
+ layout.setMargin(true);\r
+ layout.setSpacing(true);\r
+ // make it fill the whole window\r
+ layout.setSizeFull();\r
+\r
+ // Add some content; a label and a close-button\r
+ Label message = new Label("This is a sized window");\r
+ subwindow.addComponent(message);\r
+\r
+ Button close = new Button("Close", new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ // close the window by removing it from the main window\r
+ getApplication().getMainWindow().removeWindow(subwindow);\r
+ }\r
+ });\r
+ // The components added to the window are actually added to the window's\r
+ // layout; you can use either. Alignments are set using the layout\r
+ layout.addComponent(close);\r
+ layout.setComponentAlignment(close, "right bottom");\r
+\r
+ // Add a button for opening the subwindow\r
+ Button open = new Button("Open sized window",\r
+ new Button.ClickListener() {\r
+ // inline click-listener\r
+ public void buttonClick(ClickEvent event) {\r
+ if (subwindow.getParent() != null) {\r
+ // window is already showing\r
+ getWindow().showNotification(\r
+ "Window is already open");\r
+ } else {\r
+ // Open the subwindow by adding it to the main\r
+ // window\r
+ getApplication().getMainWindow().addWindow(\r
+ subwindow);\r
+ }\r
+ }\r
+ });\r
+ addComponent(open);\r
+\r
+ }\r
+\r
+}
\ No newline at end of file
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import com.itmill.toolkit.demo.sampler.APIResource;\r
-import com.itmill.toolkit.demo.sampler.Feature;\r
-import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
-import com.itmill.toolkit.ui.Window;\r
-\r
-public class WindowChild extends Feature {\r
-\r
- @Override\r
- public String getName() {\r
- return "Child window";\r
- }\r
-\r
- @Override\r
- public String getDescription() {\r
- return "Creates and opens a new floating child window with its own state."\r
- + "<br>Child windows are typically used for Dialog Windows and"\r
- + " Multiple Document Interface applications.";\r
- }\r
-\r
- @Override\r
- public APIResource[] getRelatedAPI() {\r
- return new APIResource[] { new APIResource(Window.class) };\r
- }\r
-\r
- @Override\r
- public Class[] getRelatedFeatures() {\r
- return new Class[] { WindowNativeShared.class, WindowNativeNew.class,\r
- WindowChildAutosize.class, WindowChildModal.class,\r
- WindowChildPositionSize.class, WindowChildScrollable.class };\r
- }\r
-\r
- @Override\r
- public NamedExternalResource[] getRelatedResources() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
-}\r
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import com.itmill.toolkit.demo.sampler.APIResource;\r
-import com.itmill.toolkit.demo.sampler.Feature;\r
-import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
-import com.itmill.toolkit.ui.Component;\r
-import com.itmill.toolkit.ui.Window;\r
-\r
-public class WindowChildAutosize extends Feature {\r
-\r
- @Override\r
- public String getName() {\r
- return "Window autosizing";\r
- }\r
-\r
- @Override\r
- public String getDescription() {\r
- return "Creates and opens a new floating child window with its own state."\r
- + "<br>The size of this child window will be adjusted automatically"\r
- + " to fit the content (in this example, the caption). This is default"\r
- + " behavior for a child window.";\r
- }\r
-\r
- @Override\r
- public APIResource[] getRelatedAPI() {\r
- return new APIResource[] { new APIResource(Window.class) };\r
- }\r
-\r
- @Override\r
- public Class[] getRelatedFeatures() {\r
- return new Class[] { WindowNativeShared.class, WindowNativeNew.class,\r
- WindowChild.class, WindowChildModal.class,\r
- WindowChildPositionSize.class, WindowChildScrollable.class };\r
- }\r
-\r
- @Override\r
- public NamedExternalResource[] getRelatedResources() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- @Override\r
- public Component getExample() {\r
- return new WindowChildExample();\r
- }\r
-\r
-}\r
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import com.itmill.toolkit.ui.Button;\r
-import com.itmill.toolkit.ui.Label;\r
-import com.itmill.toolkit.ui.VerticalLayout;\r
-import com.itmill.toolkit.ui.Window;\r
-import com.itmill.toolkit.ui.Button.ClickEvent;\r
-import com.itmill.toolkit.ui.Window.CloseEvent;\r
-\r
-public class WindowChildExample extends VerticalLayout implements\r
- Window.CloseListener {\r
-\r
- private Button b1;\r
- private Button b2;\r
- private Label l;\r
-\r
- public WindowChildExample() {\r
- setSpacing(true);\r
-\r
- b1 = new Button(\r
- "Create and open a new child window with its own state", this,\r
- "openButtonClick");\r
- addComponent(b1);\r
-\r
- l = new Label("Amount of child windows attached to the main window: x");\r
- addComponent(l);\r
-\r
- b2 = new Button("Refresh", this, "refreshButtonClick");\r
- addComponent(b2);\r
- }\r
-\r
- public void openButtonClick(ClickEvent event) {\r
- Window w = new Window("New child window");\r
- Label desc = new Label("This is a new child window with its own state."\r
- + " The child window is added to the main window"\r
- + " instead of the application.");\r
- w.addComponent(desc);\r
- w.addListener(this);\r
- w.setResizable(false);\r
- getApplication().getMainWindow().addWindow(w);\r
- }\r
-\r
- public void refreshButtonClick(ClickEvent event) {\r
- l.setValue("Amount of child windows attached to the main window: "\r
- + getApplication().getMainWindow().getChildWindows().size());\r
- }\r
-\r
- public void windowClose(CloseEvent e) {\r
- // In this example, the window will be removed after closing\r
- getApplication().getMainWindow().removeWindow(e.getWindow());\r
- System.err.println("Sampler->WindowChildExample: Window close event");\r
- }\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import com.itmill.toolkit.demo.sampler.APIResource;\r
-import com.itmill.toolkit.demo.sampler.Feature;\r
-import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
-import com.itmill.toolkit.ui.Window;\r
-\r
-public class WindowChildModal extends Feature {\r
-\r
- @Override\r
- public String getName() {\r
- return "Window modality";\r
- }\r
-\r
- @Override\r
- public String getDescription() {\r
- return "Creates and opens a new modal child window with its own state."\r
- + "<br>Child window modality means that you cannot access the"\r
- + " underlying window(s) while the modal window is displayed.";\r
- }\r
-\r
- @Override\r
- public APIResource[] getRelatedAPI() {\r
- return new APIResource[] { new APIResource(Window.class) };\r
- }\r
-\r
- @Override\r
- public Class[] getRelatedFeatures() {\r
- return new Class[] { WindowNativeShared.class, WindowNativeNew.class,\r
- WindowChild.class, WindowChildAutosize.class,\r
- WindowChildPositionSize.class, WindowChildScrollable.class };\r
- }\r
-\r
- @Override\r
- public NamedExternalResource[] getRelatedResources() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
-}\r
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import com.itmill.toolkit.ui.Button;\r
-import com.itmill.toolkit.ui.Label;\r
-import com.itmill.toolkit.ui.VerticalLayout;\r
-import com.itmill.toolkit.ui.Window;\r
-import com.itmill.toolkit.ui.Button.ClickEvent;\r
-import com.itmill.toolkit.ui.Window.CloseEvent;\r
-\r
-public class WindowChildModalExample extends VerticalLayout implements\r
- Window.CloseListener {\r
-\r
- private Button b;\r
-\r
- public WindowChildModalExample() {\r
- setSpacing(true);\r
-\r
- b = new Button("Create and open a new modal child window", this,\r
- "openButtonClick");\r
- addComponent(b);\r
- }\r
-\r
- public void openButtonClick(ClickEvent event) {\r
- Window w = new Window("Modal child window");\r
- Label desc = new Label(\r
- "This is a modal child window with its own state."\r
- + " You cannot access the main window while the modal child"\r
- + " window is shown.");\r
- w.addComponent(desc);\r
- w.addListener(this);\r
- w.setResizable(false);\r
- w.setModal(true);\r
- getApplication().getMainWindow().addWindow(w);\r
- }\r
-\r
- public void windowClose(CloseEvent e) {\r
- // In this example, the window will be removed after closing\r
- getApplication().getMainWindow().removeWindow(e.getWindow());\r
- System.err\r
- .println("Sampler->WindowChildModalExample: Window close event");\r
- }\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import com.itmill.toolkit.demo.sampler.APIResource;\r
-import com.itmill.toolkit.demo.sampler.Feature;\r
-import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
-import com.itmill.toolkit.ui.Window;\r
-\r
-public class WindowChildPositionSize extends Feature {\r
-\r
- @Override\r
- public String getName() {\r
- return "Window position and size";\r
- }\r
-\r
- @Override\r
- public String getDescription() {\r
- return "Creates and opens a new floating child window with specified"\r
- + " size and position attributes. This child window is also"\r
- + " set to allow resizing.";\r
- }\r
-\r
- @Override\r
- public APIResource[] getRelatedAPI() {\r
- return new APIResource[] { new APIResource(Window.class) };\r
- }\r
-\r
- @Override\r
- public Class[] getRelatedFeatures() {\r
- return new Class[] { WindowNativeShared.class, WindowNativeNew.class,\r
- WindowChild.class, WindowChildAutosize.class,\r
- WindowChildModal.class, WindowChildScrollable.class };\r
- }\r
-\r
- @Override\r
- public NamedExternalResource[] getRelatedResources() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
-}\r
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import com.itmill.toolkit.ui.Button;\r
-import com.itmill.toolkit.ui.Label;\r
-import com.itmill.toolkit.ui.VerticalLayout;\r
-import com.itmill.toolkit.ui.Window;\r
-import com.itmill.toolkit.ui.Button.ClickEvent;\r
-import com.itmill.toolkit.ui.Window.CloseEvent;\r
-\r
-public class WindowChildPositionSizeExample extends VerticalLayout implements\r
- Window.CloseListener {\r
-\r
- private Button b1;\r
- private Button b2;\r
- private Label l;\r
-\r
- public WindowChildPositionSizeExample() {\r
- setSpacing(true);\r
-\r
- b1 = new Button("Create and open a new child window", this,\r
- "openButtonClick");\r
- addComponent(b1);\r
-\r
- l = new Label("Amount of child windows attached to the main window: x");\r
- addComponent(l);\r
-\r
- b2 = new Button("Refresh", this, "refreshButtonClick");\r
- addComponent(b2);\r
- }\r
-\r
- public void openButtonClick(ClickEvent event) {\r
- Window w = new Window("New child window");\r
- Label desc = new Label("This is a new child window with a preset"\r
- + " width, height and position. Resizing has also been"\r
- + " enabled for this window.");\r
- w.addComponent(desc);\r
- w.addListener(this);\r
-\r
- // Set window position\r
- w.setPositionX(300);\r
- w.setPositionY(300);\r
-\r
- // Set window size\r
- w.setWidth(300, UNITS_PIXELS);\r
- w.setHeight(300, UNITS_PIXELS);\r
-\r
- // Enable resizing\r
- w.setResizable(true);\r
-\r
- getApplication().getMainWindow().addWindow(w);\r
- }\r
-\r
- public void refreshButtonClick(ClickEvent event) {\r
- l.setValue("Amount of child windows attached to the main window: "\r
- + getApplication().getMainWindow().getChildWindows().size());\r
- }\r
-\r
- public void windowClose(CloseEvent e) {\r
- // In this example, the window will be removed after closing\r
- getApplication().getMainWindow().removeWindow(e.getWindow());\r
- System.err\r
- .println("Sampler->WindowChildPositionSizeExample: Window close event");\r
- }\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import com.itmill.toolkit.demo.sampler.APIResource;\r
-import com.itmill.toolkit.demo.sampler.Feature;\r
-import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
-import com.itmill.toolkit.ui.Window;\r
-\r
-public class WindowChildScrollable extends Feature {\r
-\r
- @Override\r
- public String getName() {\r
- return "Window - Scrollable";\r
- }\r
-\r
- @Override\r
- public String getDescription() {\r
- return "Creates and opens a new floating child window with specified"\r
- + " size and position attributes. The content for this window"\r
- + " is too big to fit in the specified size. Therefore you can"\r
- + " use the scrollbars to view different part of the content.";\r
- }\r
-\r
- @Override\r
- public APIResource[] getRelatedAPI() {\r
- return new APIResource[] { new APIResource(Window.class) };\r
- }\r
-\r
- @Override\r
- public Class[] getRelatedFeatures() {\r
- return new Class[] { WindowNativeShared.class, WindowNativeNew.class,\r
- WindowChild.class, WindowChildAutosize.class,\r
- WindowChildModal.class, WindowChildPositionSize.class };\r
- }\r
-\r
- @Override\r
- public NamedExternalResource[] getRelatedResources() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
-}\r
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import com.itmill.toolkit.ui.Button;\r
-import com.itmill.toolkit.ui.Label;\r
-import com.itmill.toolkit.ui.VerticalLayout;\r
-import com.itmill.toolkit.ui.Window;\r
-import com.itmill.toolkit.ui.Button.ClickEvent;\r
-import com.itmill.toolkit.ui.Window.CloseEvent;\r
-\r
-public class WindowChildScrollableExample extends VerticalLayout implements\r
- Window.CloseListener {\r
-\r
- private Button b1;\r
- private Button b2;\r
- private Label l;\r
-\r
- public WindowChildScrollableExample() {\r
- setSpacing(true);\r
-\r
- b1 = new Button("Create and open a scrollable child window", this,\r
- "openButtonClick");\r
- addComponent(b1);\r
-\r
- l = new Label("Amount of child windows attached to the main window: x");\r
- addComponent(l);\r
-\r
- b2 = new Button("Refresh", this, "refreshButtonClick");\r
- addComponent(b2);\r
- }\r
-\r
- public void openButtonClick(ClickEvent event) {\r
- Window w = new Window("Scroll");\r
- Label desc = new Label(\r
- "This is a new child window with a preset"\r
- + " width, height and position. Resizing has been"\r
- + " disabled for this window. Additionally, this text label"\r
- + " is intentionally too large to fit the window. You can"\r
- + " use the scrollbars to view different parts of the window content.");\r
- w.addComponent(desc);\r
- w.addListener(this);\r
-\r
- // Set window position\r
- w.setPositionX(300);\r
- w.setPositionY(300);\r
-\r
- // Set window size\r
- w.setWidth(170, UNITS_PIXELS);\r
- w.setHeight(100, UNITS_PIXELS);\r
-\r
- // Disable resizing\r
- w.setResizable(false);\r
-\r
- getApplication().getMainWindow().addWindow(w);\r
- }\r
-\r
- public void refreshButtonClick(ClickEvent event) {\r
- l.setValue("Amount of child windows attached to the main window: "\r
- + getApplication().getMainWindow().getChildWindows().size());\r
- }\r
-\r
- public void windowClose(CloseEvent e) {\r
- // In this example, the window will be removed after closing\r
- getApplication().getMainWindow().removeWindow(e.getWindow());\r
- System.err\r
- .println("Sampler->WindowChildScrollableExample: Window close event");\r
- }\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import com.itmill.toolkit.demo.sampler.APIResource;\r
-import com.itmill.toolkit.demo.sampler.Feature;\r
-import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
-import com.itmill.toolkit.ui.Window;\r
-\r
-public class WindowNativeNew extends Feature {\r
-\r
- @Override\r
- public String getName() {\r
- return "Native window - Unique";\r
- }\r
-\r
- @Override\r
- public String getDescription() {\r
- return "Creates and opens a new native browser window with its own state."\r
- + "<br>Native browser"\r
- + " windows can either share the same state (instance) or have their own"\r
- + " internal state (instance). In practice the former option means that the"\r
- + " URL of the window will always be same (pointing to the same Window object"\r
- + ", whereas using the latter option generates a new URL (and Window instance)"\r
- + " for each new window."\r
- + "<br>It is essential to remember to remove the closed windows from the"\r
- + " application e.g. by implementing the Window.CloseListener interface.";\r
- }\r
-\r
- @Override\r
- public APIResource[] getRelatedAPI() {\r
- return new APIResource[] { new APIResource(Window.class) };\r
- }\r
-\r
- @Override\r
- public Class[] getRelatedFeatures() {\r
- return new Class[] { WindowNativeShared.class, WindowChild.class,\r
- WindowChildAutosize.class, WindowChildModal.class,\r
- WindowChildPositionSize.class, WindowChildScrollable.class };\r
- }\r
-\r
- @Override\r
- public NamedExternalResource[] getRelatedResources() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
-}\r
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import com.itmill.toolkit.terminal.ExternalResource;\r
-import com.itmill.toolkit.ui.Button;\r
-import com.itmill.toolkit.ui.Label;\r
-import com.itmill.toolkit.ui.VerticalLayout;\r
-import com.itmill.toolkit.ui.Window;\r
-import com.itmill.toolkit.ui.Button.ClickEvent;\r
-import com.itmill.toolkit.ui.Window.CloseEvent;\r
-\r
-public class WindowNativeNewExample extends VerticalLayout implements\r
- Window.CloseListener {\r
-\r
- private Button b1;\r
- private Button b2;\r
- private Label l;\r
-\r
- public WindowNativeNewExample() {\r
- setSpacing(true);\r
-\r
- b1 = new Button(\r
- "Create and open a new native window with its own state", this,\r
- "openButtonClick");\r
- addComponent(b1);\r
-\r
- l = new Label("Amount of windows in memory:");\r
- addComponent(l);\r
-\r
- b2 = new Button("Refresh", this, "refreshButtonClick");\r
- addComponent(b2);\r
- }\r
-\r
- public void openButtonClick(ClickEvent event) {\r
- Window w = new Window("Native subwindow");\r
- Label desc = new Label(\r
- "This is a new native window with its own state."\r
- + " You'll notice that if you open a new window several"\r
- + " times, the URL will be unique for each window, and the"\r
- + " amount of windows in memory will increase by one."\r
- + " When you close this window, the amount of windows in"\r
- + " memory should decrease by one."\r
- + " The window is added to the application and then"\r
- + " opened through its unique URL.");\r
- w.addComponent(desc);\r
- w.addListener(this);\r
- getApplication().addWindow(w);\r
- getApplication().getMainWindow().open(new ExternalResource(w.getURL()),\r
- "_blank");\r
- }\r
-\r
- public void refreshButtonClick(ClickEvent event) {\r
- l.setValue("Amount of windows in memory: "\r
- + getApplication().getWindows().size());\r
- }\r
-\r
- public void windowClose(CloseEvent e) {\r
- // In this example, the window will be removed after closing,\r
- getApplication().removeWindow(e.getWindow());\r
- System.err\r
- .println("Sampler->WindowNativeNewExample: Window close event");\r
- }\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import com.itmill.toolkit.demo.sampler.APIResource;\r
-import com.itmill.toolkit.demo.sampler.Feature;\r
-import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
-import com.itmill.toolkit.ui.Window;\r
-\r
-public class WindowNativeShared extends Feature {\r
-\r
- @Override\r
- public String getName() {\r
- return "Native window - Shared";\r
- }\r
-\r
- @Override\r
- public String getDescription() {\r
- return "Creates and opens a new native browser window with shared state. If the"\r
- + " window object has already been created, it will only be reopened."\r
- + "<br>Native browser"\r
- + " windows can either share the same state (instance) or have their own"\r
- + " internal state (instance). In practice the former option means that the"\r
- + " URL of the window will always be same (pointing to the same Window object"\r
- + ", whereas using the latter option generates a new URL (and Window instance)"\r
- + " for each new window."\r
- + "<br>When using the latter option it is essential to remember to remove"\r
- + " the closed windows from the"\r
- + " application e.g. by implementing the Window.CloseListener interface.";\r
- }\r
-\r
- @Override\r
- public APIResource[] getRelatedAPI() {\r
- return new APIResource[] { new APIResource(Window.class) };\r
- }\r
-\r
- @Override\r
- public Class[] getRelatedFeatures() {\r
- return new Class[] { WindowNativeNew.class, WindowChild.class,\r
- WindowChildAutosize.class, WindowChildModal.class,\r
- WindowChildPositionSize.class, WindowChildScrollable.class };\r
- }\r
-\r
- @Override\r
- public NamedExternalResource[] getRelatedResources() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
-}\r
+++ /dev/null
-package com.itmill.toolkit.demo.sampler.features.windows;\r
-\r
-import java.net.URL;\r
-\r
-import com.itmill.toolkit.terminal.ExternalResource;\r
-import com.itmill.toolkit.ui.Button;\r
-import com.itmill.toolkit.ui.Label;\r
-import com.itmill.toolkit.ui.VerticalLayout;\r
-import com.itmill.toolkit.ui.Window;\r
-import com.itmill.toolkit.ui.Button.ClickEvent;\r
-import com.itmill.toolkit.ui.Window.CloseEvent;\r
-\r
-public class WindowNativeSharedExample extends VerticalLayout implements\r
- Window.CloseListener {\r
-\r
- private URL nativeWindowURL = null;\r
- private Button b1;\r
- private Button b2;\r
- private Label l;\r
-\r
- public WindowNativeSharedExample() {\r
- setSpacing(true);\r
-\r
- b1 = new Button("Create/open a new native window with shared state",\r
- this, "openButtonClick");\r
- addComponent(b1);\r
-\r
- l = new Label("Amount of windows in memory:");\r
- addComponent(l);\r
-\r
- b2 = new Button("Refresh", this, "refreshButtonClick");\r
- addComponent(b2);\r
- }\r
-\r
- public void openButtonClick(ClickEvent event) {\r
- if (nativeWindowURL == null) {\r
- final Window w = new Window("Native subwindow");\r
- final Label desc = new Label(\r
- "This is a new native window with a shared state."\r
- + " You'll notice that even if you open this several"\r
- + " times, the URL will always be the same, and the"\r
- + " amount of windows in memory will not increase. "\r
- + " The window is added to the application and then"\r
- + " opened through its unique URL.");\r
- w.addComponent(desc);\r
- w.addListener(this);\r
- getApplication().addWindow(w);\r
- nativeWindowURL = w.getURL();\r
- }\r
- getApplication().getMainWindow().open(\r
- new ExternalResource(nativeWindowURL), "_blank");\r
- }\r
-\r
- public void refreshButtonClick(ClickEvent event) {\r
- l.setValue("Amount of windows in memory: "\r
- + getApplication().getWindows().size());\r
- }\r
-\r
- public void windowClose(CloseEvent e) {\r
- // In this example, the window will not be removed after closing,\r
- // in order to preserve the window's URL functional. Normally you would\r
- // remove the window after closing as follows:\r
- // getApplication().removeWindow(e.getWindow());\r
-\r
- System.err\r
- .println("Sampler->WindowNativeSharedExample: Window close event");\r
- }\r
-\r
-}
\ No newline at end of file