1 29 30 package nextapp.echo2.testapp.interactive.testscreen; 31 32 import nextapp.echo2.app.Button; 33 import nextapp.echo2.app.Column; 34 import nextapp.echo2.app.Extent; 35 import nextapp.echo2.app.Insets; 36 import nextapp.echo2.app.Label; 37 import nextapp.echo2.app.event.ActionEvent; 38 import nextapp.echo2.app.event.ActionListener; 39 import nextapp.echo2.app.layout.SplitPaneLayoutData; 40 import nextapp.echo2.testapp.interactive.GhostTask; 41 import nextapp.echo2.testapp.interactive.InteractiveApp; 42 43 47 public class PushGhostTest extends Column { 48 49 52 public PushGhostTest() { 53 super(); 54 SplitPaneLayoutData splitPaneLayoutData = new SplitPaneLayoutData(); 55 splitPaneLayoutData.setInsets(new Insets(10)); 56 setLayoutData(splitPaneLayoutData); 57 58 setCellSpacing(new Extent(3)); 59 60 Label label; 61 label = new Label("This test will cause the application to continuously push asynchronous updates " 62 + "to the client by clicking buttons randomly on the screen. Once started, the test cannot be " 63 + "stopped until your application session is destroyed, i.e., by exiting your browser or " 64 + "manually clearing the session cookie."); 65 add(label); 66 67 if (InteractiveApp.LIVE_DEMO_SERVER) { 68 label = new Label("Because you are visiting this application on the nextapp.com server, we have disabled " 69 + "the options to run this test indefinitely and/or with a 0ms callback interval. If you install this " 70 + "application on your own server, you will be given the option of running the more extreme version " 71 + "of this test. A binary Web Archive (WAR file) version of this application is provided by the " 72 + "standard Echo2 download."); 73 add(label); 74 } 75 76 addTestButton(500, 20, 1); 77 78 if (!InteractiveApp.LIVE_DEMO_SERVER) { 79 addTestButton(0, 10, 1); 80 addTestButton(0, 20, 1); 81 addTestButton(0, 60, 1); 82 addTestButton(0, 300, 1); 83 addTestButton(0, 600, 1); 84 addTestButton(0, 3600, 1); 85 addTestButton(0, 0, 1); 86 87 addTestButton(0, 10, 10); 88 addTestButton(0, 20, 10); 89 addTestButton(0, 60, 10); 90 addTestButton(0, 300, 10); 91 addTestButton(0, 600, 10); 92 addTestButton(0, 3600, 10); 93 addTestButton(0, 0, 10); 94 95 addTestButton(0, 10, 100); 96 addTestButton(0, 20, 100); 97 addTestButton(0, 60, 100); 98 addTestButton(0, 300, 100); 99 addTestButton(0, 600, 100); 100 addTestButton(0, 3600, 100); 101 addTestButton(0, 0, 100); 102 } 103 } 104 105 private void addTestButton(final int callbackInterval, final int runTimeInSeconds, final int clicksPerIteration) { 106 StringBuffer text = new StringBuffer ("START (Runtime: "); 107 text.append(runTimeInSeconds == 0 ? "Indefinite" : (runTimeInSeconds + "s")); 108 text.append(", Callback interval: "); 109 text.append(callbackInterval); 110 text.append("ms, Clicks Per Iteration: "); 111 text.append(clicksPerIteration); 112 Button startButton = new Button(text.toString()); 113 startButton.setStyleName("Default"); 114 startButton.addActionListener(new ActionListener() { 115 public void actionPerformed(ActionEvent e) { 116 InteractiveApp app = (InteractiveApp)getApplicationInstance(); 117 GhostTask ghostTask = new GhostTask(); 118 ghostTask.setClicksPerIteration(clicksPerIteration); 119 if (runTimeInSeconds > 0) { 120 ghostTask.setRunTime(runTimeInSeconds * 1000); 121 } 122 app.startGhostTask(ghostTask, callbackInterval); 123 } 124 }); 125 add(startButton); 126 } 127 } | Popular Tags |