KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nextapp > echo2 > testapp > interactive > testscreen > DelayTest


1 /*
2  * This file is part of the Echo Web Application Framework (hereinafter "Echo").
3  * Copyright (C) 2002-2005 NextApp, Inc.
4  *
5  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
6  *
7  * The contents of this file are subject to the Mozilla Public License Version
8  * 1.1 (the "License"); you may not use this file except in compliance with
9  * the License. You may obtain a copy of the License at
10  * http://www.mozilla.org/MPL/
11  *
12  * Software distributed under the License is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14  * for the specific language governing rights and limitations under the
15  * License.
16  *
17  * Alternatively, the contents of this file may be used under the terms of
18  * either the GNU General Public License Version 2 or later (the "GPL"), or
19  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
20  * in which case the provisions of the GPL or the LGPL are applicable instead
21  * of those above. If you wish to allow use of your version of this file only
22  * under the terms of either the GPL or the LGPL, and not to allow others to
23  * use your version of this file under the terms of the MPL, indicate your
24  * decision by deleting the provisions above and replace them with the notice
25  * and other provisions required by the GPL or the LGPL. If you do not delete
26  * the provisions above, a recipient may use your version of this file under
27  * the terms of any one of the MPL, the GPL or the LGPL.
28  */

29
30 package nextapp.echo2.testapp.interactive.testscreen;
31
32 import nextapp.echo2.app.Button;
33 import nextapp.echo2.app.Insets;
34 import nextapp.echo2.app.Column;
35 import nextapp.echo2.app.event.ActionEvent;
36 import nextapp.echo2.app.event.ActionListener;
37 import nextapp.echo2.app.layout.SplitPaneLayoutData;
38 import nextapp.echo2.testapp.interactive.CoolDelayMessage;
39 import nextapp.echo2.webcontainer.ContainerContext;
40 import nextapp.echo2.webcontainer.DefaultServerDelayMessage;
41 /**
42  * A test for handling of long-running server-interactions.
43  */

44 public class DelayTest extends Column {
45     
46     private int clickCount = 0;
47     
48     public DelayTest() {
49         super();
50         
51         SplitPaneLayoutData splitPaneLayoutData = new SplitPaneLayoutData();
52         splitPaneLayoutData.setInsets(new Insets(10));
53         setLayoutData(splitPaneLayoutData);
54         
55         Button delayButton = new Button("Test 3 second delay");
56         delayButton.setStyleName("Default");
57         delayButton.addActionListener(new ActionListener() {
58             public void actionPerformed(ActionEvent e) {
59                 try {
60                     Thread.sleep(3000);
61                 } catch (InterruptedException JavaDoc ex) {
62                 }
63             }
64         });
65         add(delayButton);
66         
67         final Button blockedButton = new Button("This button has been clicked 0 times");
68         blockedButton.setStyleName("Default");
69         blockedButton.addActionListener(new ActionListener() {
70             public void actionPerformed(ActionEvent e) {
71                 blockedButton.setText("This button has been clicked " + ++clickCount + " times");
72             }
73         });
74         add(blockedButton);
75         
76         Button setNullButton = new Button("Set ServerDelayMessage to None");
77         setNullButton.setStyleName("Default");
78         setNullButton.addActionListener(new ActionListener() {
79             public void actionPerformed(ActionEvent e) {
80                 ContainerContext containerContext
81                         = (ContainerContext) getApplicationInstance().getContextProperty(ContainerContext.CONTEXT_PROPERTY_NAME);
82                 containerContext.setServerDelayMessage(null);
83             }
84         });
85         add(setNullButton);
86         
87         Button setDefaultButton = new Button("Set ServerDelayMessage to Default");
88         setDefaultButton.setStyleName("Default");
89         setDefaultButton.addActionListener(new ActionListener() {
90             public void actionPerformed(ActionEvent e) {
91                 ContainerContext containerContext
92                         = (ContainerContext) getApplicationInstance().getContextProperty(ContainerContext.CONTEXT_PROPERTY_NAME);
93                 containerContext.setServerDelayMessage(DefaultServerDelayMessage.INSTANCE);
94             }
95         });
96         add(setDefaultButton);
97         
98         Button setCustomDefaultButton = new Button("Set ServerDelayMessage to Custom DefaultServerDelayMessage");
99         setCustomDefaultButton.setStyleName("Default");
100         setCustomDefaultButton.addActionListener(new ActionListener() {
101             public void actionPerformed(ActionEvent e) {
102                 ContainerContext containerContext
103                         = (ContainerContext) getApplicationInstance().getContextProperty(ContainerContext.CONTEXT_PROPERTY_NAME);
104                 containerContext.setServerDelayMessage(new DefaultServerDelayMessage("Well, this seems to be taking a while. "
105                         + "Now might be a good time to grab a snack or a frosty beverage from the kitchen."));
106             }
107         });
108         add(setCustomDefaultButton);
109         
110         Button coolButton = new Button("Set ServerDelayMessage to CoolDelayMessage");
111         coolButton.setStyleName("Default");
112         coolButton.addActionListener(new ActionListener() {
113             public void actionPerformed(ActionEvent e) {
114                 ContainerContext containerContext
115                         = (ContainerContext) getApplicationInstance().getContextProperty(ContainerContext.CONTEXT_PROPERTY_NAME);
116                 containerContext.setServerDelayMessage(new CoolDelayMessage(containerContext, "PLEASE WAIT"));
117             }
118         });
119         add(coolButton);
120     }
121 }
122
Popular Tags