1 29 30 package nextapp.echo2.testapp.interactive; 31 32 import nextapp.echo2.app.Button; 33 import nextapp.echo2.app.Color; 34 import nextapp.echo2.app.Column; 35 import nextapp.echo2.app.ContentPane; 36 import nextapp.echo2.app.Extent; 37 import nextapp.echo2.app.Font; 38 import nextapp.echo2.app.Insets; 39 import nextapp.echo2.app.Label; 40 import nextapp.echo2.app.Row; 41 import nextapp.echo2.app.SplitPane; 42 import nextapp.echo2.app.WindowPane; 43 import nextapp.echo2.app.event.ActionEvent; 44 import nextapp.echo2.app.event.ActionListener; 45 import nextapp.echo2.app.layout.SplitPaneLayoutData; 46 47 50 public class ConsoleWindowPane extends WindowPane { 51 52 private Column column; 53 private ContentPane logPane; 54 55 public ConsoleWindowPane() { 56 super(); 57 setTitle("Console"); 58 setStyleName("Default"); 59 60 SplitPane splitPane = new SplitPane(SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent(32)); 61 add(splitPane); 62 63 Row controlRow = new Row(); 64 controlRow.setStyleName("ControlPane"); 65 splitPane.add(controlRow); 66 67 Button button = new Button("Clear", Styles.ICON_24_NO); 68 button.setStyleName("ControlPane.Button"); 69 button.addActionListener(new ActionListener() { 70 public void actionPerformed(ActionEvent e) { 71 column.removeAll(); 72 } 73 }); 74 controlRow.add(button); 75 76 SplitPaneLayoutData splitPaneLayoutData; 77 logPane = new ContentPane(); 78 logPane.setFont(new Font(Font.MONOSPACE, Font.PLAIN, new Extent(10))); 79 logPane.setForeground(Color.GREEN); 80 splitPaneLayoutData = new SplitPaneLayoutData(); 81 splitPaneLayoutData.setBackground(Color.BLACK); 82 logPane.setLayoutData(splitPaneLayoutData); 83 splitPane.add(logPane); 84 85 column = new Column(); 86 column.setInsets(new Insets(5)); 87 logPane.add(column); 88 } 89 90 public void writeMessage(String message) { 91 column.add(new Label(message)); 92 logPane.setVerticalScroll(new Extent(-1)); 93 } 94 } 95 | Popular Tags |