1 29 30 package nextapp.echo2.testapp.interactive.testscreen; 31 32 import nextapp.echo2.app.Border; 33 import nextapp.echo2.app.Color; 34 import nextapp.echo2.app.Extent; 35 import nextapp.echo2.app.Insets; 36 import nextapp.echo2.app.Column; 37 import nextapp.echo2.app.Label; 38 import nextapp.echo2.app.SplitPane; 39 import nextapp.echo2.app.TextArea; 40 import nextapp.echo2.app.event.ActionEvent; 41 import nextapp.echo2.app.event.ActionListener; 42 import nextapp.echo2.app.layout.SplitPaneLayoutData; 43 import nextapp.echo2.app.text.StringDocument; 44 import nextapp.echo2.testapp.interactive.ButtonColumn; 45 46 public class TextSyncTest extends SplitPane { 47 48 public TextSyncTest() { 49 super(SplitPane.ORIENTATION_HORIZONTAL, new Extent(250, Extent.PX)); 50 setStyleName("DefaultResizable"); 51 52 SplitPaneLayoutData splitPaneLayoutData; 53 54 ButtonColumn controlsColumn = new ButtonColumn(); 55 controlsColumn.setStyleName("TestControlsColumn"); 56 add(controlsColumn); 57 58 final Column testColumn = new Column(); 59 testColumn.setCellSpacing(new Extent(15)); 60 splitPaneLayoutData = new SplitPaneLayoutData(); 61 splitPaneLayoutData.setInsets(new Insets(15)); 62 testColumn.setLayoutData(splitPaneLayoutData); 63 add(testColumn); 64 65 Label testLabel = new Label("This test is used to evaluate the capability of TextComponents to continue receiving " 66 + "user input during server interactions. This capability is critical as server-pushed operations may be " 67 + "taking place while the user is typing (which would otherwise result in typed characters silently being " 68 + "dropped if they were typed at the exact instant that the server were performing a synchronization. " 69 + "To use this test, focus the text field, click one of the test buttons and begin typing during the " 70 + "synchronization operation. Verify using the debug pane that the input is being handled correctly for each " 71 + "scenario."); 72 testColumn.add(testLabel); 73 74 final TextArea textArea = new TextArea(new StringDocument(), null, 40, 8); 75 textArea.setBorder(new Border(1, Color.BLUE, Border.STYLE_SOLID)); 76 testColumn.add(textArea); 77 78 controlsColumn.addButton("3 Second Server Interaction Delay", new ActionListener() { 79 public void actionPerformed(ActionEvent e) { 80 try { 81 Thread.sleep(3000); 82 } catch (InterruptedException ex) { } 83 } 84 }); 85 86 controlsColumn.addButton("3 Second Server Interaction Delay; Set Text", new ActionListener() { 87 public void actionPerformed(ActionEvent e) { 88 try { 89 Thread.sleep(3000); 90 } catch (InterruptedException ex) { } 91 textArea.getDocument().setText("The text value has been reset."); 92 } 93 }); 94 95 controlsColumn.addButton("3 Second Server Interaction Delay; Remove Text Area", new ActionListener() { 96 public void actionPerformed(ActionEvent e) { 97 try { 98 Thread.sleep(3000); 99 } catch (InterruptedException ex) { } 100 testColumn.remove(textArea); 101 } 102 }); 103 } 104 } 105 | Popular Tags |