1 29 30 package echo2example.chatclient; 31 32 import nextapp.echo2.app.Alignment; 33 import nextapp.echo2.app.Button; 34 import nextapp.echo2.app.ContentPane; 35 import nextapp.echo2.app.Extent; 36 import nextapp.echo2.app.Label; 37 import nextapp.echo2.app.Row; 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 43 47 public class ChatScreen extends ContentPane { 48 49 private TextArea postField; 50 private MessagePane messagePane; 51 52 55 public ChatScreen() { 56 super(); 57 58 SplitPane outerSplitPane = new SplitPane(SplitPane.ORIENTATION_VERTICAL_TOP_BOTTOM, new Extent(32)); 59 outerSplitPane.setStyleName("ChatScreen.SplitPane"); 60 add(outerSplitPane); 61 62 Row controlsRow = new Row(); 63 controlsRow.setStyleName("ControlPane"); 64 outerSplitPane.add(controlsRow); 65 66 Button logoutButton = new Button(Messages.getString("Generic.Exit"), Styles.ICON_24_EXIT); 67 logoutButton.setStyleName("ControlPane.Button"); 68 logoutButton.addActionListener(new ActionListener(){ 69 public void actionPerformed(ActionEvent e) { 70 ChatApp.getApp().disconnect(); 71 } 72 }); 73 controlsRow.add(logoutButton); 74 75 SplitPane mainSplitPane = new SplitPane(SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent(90)); 76 mainSplitPane.setStyleName("ChatScreen.SplitPane"); 77 outerSplitPane.add(mainSplitPane); 78 79 SplitPane inputAreaSplitPane = new SplitPane(SplitPane.ORIENTATION_HORIZONTAL_LEADING_TRAILING, new Extent(150)); 80 mainSplitPane.add(inputAreaSplitPane); 81 82 Label currentUserLabel = new Label(ChatApp.getApp().getUserName() + ":"); 83 currentUserLabel.setStyleName("ChatScreen.CurrentUserLabel"); 84 inputAreaSplitPane.add(currentUserLabel); 85 86 SplitPane postSplitPane = new SplitPane(SplitPane.ORIENTATION_HORIZONTAL_TRAILING_LEADING, new Extent(100)); 87 inputAreaSplitPane.add(postSplitPane); 88 89 Button submitPostButton = new Button(Messages.getString("ChatScreen.SubmitPostButton"), Styles.ICON_24_RIGHT_ARROW); 90 submitPostButton.setStyleName("ChatScreen.SubmitPostButton"); 91 submitPostButton.setTextPosition(new Alignment(Alignment.LEFT, Alignment.DEFAULT)); 92 submitPostButton.addActionListener(new ActionListener() { 93 public void actionPerformed(ActionEvent e) { 94 postMessage(); 95 } 96 }); 97 postSplitPane.add(submitPostButton); 98 99 postField = new TextArea(); 100 postField.setStyleName("ChatScreen.PostField"); 101 postField.setWidth(new Extent(97, Extent.PERCENT)); 102 postField.setHeight(new Extent(70, Extent.PX)); 103 postField.addActionListener(new ActionListener() { 104 public void actionPerformed(ActionEvent e) { 105 postMessage(); 106 } 107 }); 108 postSplitPane.add(postField); 109 110 messagePane = new MessagePane(); 111 mainSplitPane.add(messagePane); 112 113 ChatApp app = ChatApp.getApp(); 114 app.setFocusedComponent(postField); 115 } 116 117 120 public void updateMessageList() { 121 messagePane.update(); 122 } 123 124 127 private void postMessage() { 128 ChatApp app = ChatApp.getApp(); 129 if (postField.getText().trim().length() != 0) { 130 app.postMessage(postField.getText()); 131 } 132 postField.setText(""); 133 app.setFocusedComponent(postField); 134 messagePane.update(); 135 } 136 } 137 | Popular Tags |