- Timestamp:
- 2003-05-27T15:57:37+12:00 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/gui/messages/MessagePane.java
r4293 r4366 48 48 */ 49 49 public class MessagePane 50 50 extends JPanel 51 51 implements ActionListener { 52 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 // Toggle config setting 276 277 // Inform model something has changed. 278 279 280 281 282 283 // Toggle config setting 284 285 // Inform model something has changed. 286 287 288 289 290 291 // Toggle config setting 292 293 // Inform model something has changed. 294 295 296 297 298 299 // Toggle config setting 300 301 // Inform model something has changed. 302 303 304 305 306 307 // Toggle config setting 308 309 // Inform model something has changed. 310 311 312 313 314 315 // Toggle config setting 316 317 // Inform model something has changed. 318 319 320 321 322 323 // Toggle config setting 324 325 // Inform model something has changed. 326 327 328 329 330 331 // Toggle config setting 332 333 // Inform model something has changed. 334 335 336 337 338 339 // Toggle config setting 340 341 // Inform model something has changed. 342 343 344 345 346 347 // Toggle config setting 348 349 // Inform model something has changed. 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 53 GridBagConstraints grid_constraints = null; 54 55 GridBagLayout grid_layout = null; 56 57 JButton save_messages = null; 58 59 JLabel level_label = null; 60 JLabel message_count = null; 61 JLabel source_label = null; 62 63 JPanel central_pane = null; 64 JPanel corner_pane = null; 65 JPanel count_pane = null; 66 JPanel horizontal_pane = null; 67 JPanel level_pane = null; 68 JPanel source_pane = null; 69 JPanel vertical_pane = null; 70 71 JScrollPane scroll_pane = null; 72 73 JToggleButton level_event = null; 74 JToggleButton level_error = null; 75 JToggleButton level_information = null; 76 JToggleButton level_main = null; 77 JToggleButton source_browser = null; 78 JToggleButton source_build = null; 79 JToggleButton source_general = null; 80 JToggleButton source_mirroring = null; 81 JToggleButton source_metaedit = null; 82 JToggleButton source_session = null; 83 84 JList message_list = null; 85 86 MessageListModel model = null; 87 88 MessageListRenderer renderer = null; 89 90 String args[]; 91 92 public MessagePane() { 93 } 94 95 public void display() { 96 // Setup main layout managers 97 grid_layout = new GridBagLayout(); 98 grid_constraints = new GridBagConstraints(); 99 this.setLayout(grid_layout); 100 101 // Vertical Buttons 102 source_pane = new JPanel(new BorderLayout()); 103 source_pane.setBorder(BorderFactory.createEmptyBorder(5,5,5,3)); 104 105 vertical_pane = new JPanel(new GridLayout(6,1)); 106 107 Gatherer.println("\tCreating source_label"); 108 source_label = new JLabel(get("Source")); 109 source_label.setHorizontalAlignment(JLabel.CENTER); 110 111 Gatherer.println("\tCreating source_general"); 112 source_general = new JToggleButton(get("General"), Gatherer.config.get("messages.source_general", false)); 113 source_general.setIcon(Utility.OFF_ICON); 114 source_general.setSelectedIcon(Utility.ON_ICON); 115 source_general.setHorizontalTextPosition(JToggleButton.CENTER); 116 source_general.setVerticalTextPosition(JToggleButton.BOTTOM); 117 source_general.addActionListener(this); 118 119 Gatherer.println("\tCreating source_browser"); 120 source_browser = new JToggleButton(get("Browser"), Gatherer.config.get("messages.source_browser", false)); 121 source_browser.setIcon(Utility.OFF_ICON); 122 source_browser.setSelectedIcon(Utility.ON_ICON); 123 source_browser.setHorizontalTextPosition(JToggleButton.CENTER); 124 source_browser.setVerticalTextPosition(JToggleButton.BOTTOM); 125 source_browser.addActionListener(this); 126 127 Gatherer.println("\tCreating source_mirroring"); 128 source_mirroring = new JToggleButton(get("Mirroring"), Gatherer.config.get("messages.source_mirroring", false)); 129 source_mirroring.setIcon(Utility.OFF_ICON); 130 source_mirroring.setSelectedIcon(Utility.ON_ICON); 131 source_mirroring.setHorizontalTextPosition(JToggleButton.CENTER); 132 source_mirroring.setVerticalTextPosition(JToggleButton.BOTTOM); 133 source_mirroring.addActionListener(this); 134 135 Gatherer.println("\tCreating source_session"); 136 source_session = new JToggleButton(get("Session"), Gatherer.config.get("messages.source_session", false)); 137 source_session.setIcon(Utility.OFF_ICON); 138 source_session.setSelectedIcon(Utility.ON_ICON); 139 source_session.setHorizontalTextPosition(JToggleButton.CENTER); 140 source_session.setVerticalTextPosition(JToggleButton.BOTTOM); 141 source_session.addActionListener(this); 142 143 Gatherer.println("\tCreating source_metaedit"); 144 source_metaedit = new JToggleButton(get("Metaedit"), Gatherer.config.get("messages.source_metaedit", false)); 145 source_metaedit.setIcon(Utility.OFF_ICON); 146 source_metaedit.setSelectedIcon(Utility.ON_ICON); 147 source_metaedit.setHorizontalTextPosition(JToggleButton.CENTER); 148 source_metaedit.setVerticalTextPosition(JToggleButton.BOTTOM); 149 source_metaedit.addActionListener(this); 150 151 Gatherer.println("\tCreating source_build"); 152 source_build = new JToggleButton(get("Build"), Gatherer.config.get("messages.source_build", false)); 153 source_build.setIcon(Utility.OFF_ICON); 154 source_build.setSelectedIcon(Utility.ON_ICON); 155 source_build.setHorizontalTextPosition(JToggleButton.CENTER); 156 source_build.setVerticalTextPosition(JToggleButton.BOTTOM); 157 source_build.addActionListener(this); 158 159 source_pane.add(source_label, BorderLayout.NORTH); 160 vertical_pane.add(source_general); 161 vertical_pane.add(source_browser); 162 vertical_pane.add(source_mirroring); 163 vertical_pane.add(source_session); 164 vertical_pane.add(source_metaedit); 165 vertical_pane.add(source_build); 166 source_pane.add(vertical_pane, BorderLayout.CENTER); 167 168 // Central pane 169 central_pane = new JPanel(new BorderLayout()); 170 171 Gatherer.println("\tCreating message_list"); 172 model = new MessageListModel(); 173 renderer = new MessageListRenderer(); 174 message_list = new JList(); 175 message_list.setModel(model); 176 message_list.setCellRenderer(renderer); 177 178 scroll_pane = new JScrollPane(message_list); 179 central_pane.add(scroll_pane, BorderLayout.CENTER); 180 181 Gatherer.println("\tCreating message_count"); 182 count_pane = new JPanel(new BorderLayout()); 183 args = new String[2]; 184 args[0] = model.getSizeStr(); 185 args[1] = model.getTotalSizeStr(); 186 message_count = new JLabel(get("Message_Count",args)); 187 message_count.setHorizontalAlignment(JLabel.RIGHT); 188 189 central_pane.add(scroll_pane, BorderLayout.CENTER); 190 central_pane.add(message_count, BorderLayout.SOUTH); 191 192 // Corner area 193 corner_pane = new JPanel(new BorderLayout()); 194 corner_pane.setBorder(BorderFactory.createEmptyBorder(3,5,5,5)); 195 196 Gatherer.println("\tCreating save_message"); 197 save_messages = new JButton(get("Save_Messages"), 198 new ImageIcon(Utility.RES_DIR+"save.gif")); 199 save_messages.addActionListener(this); 200 201 corner_pane.add(save_messages, BorderLayout.CENTER); 202 203 // Horizontal buttons. 204 level_pane = new JPanel(new BorderLayout()); 205 206 horizontal_pane = new JPanel(new GridLayout(1,4)); 207 208 Gatherer.println("\tCreating level_label"); 209 level_label = new JLabel(get("Level")); 210 level_label.setHorizontalAlignment(JLabel.CENTER); 211 212 Gatherer.println("\tCreating level_main"); 213 level_main = new JToggleButton(get("Main"), Gatherer.config.get("messages.level_main", false)); 214 level_main.setIcon(Utility.OFF_ICON); 215 level_main.setSelectedIcon(Utility.ON_ICON); 216 level_main.addActionListener(this); 217 218 Gatherer.println("\tCreating level_event"); 219 level_event = new JToggleButton(get("Event"), Gatherer.config.get("messages.level_event", false)); 220 level_event.setIcon(Utility.OFF_ICON); 221 level_event.setSelectedIcon(Utility.ON_ICON); 222 level_event.addActionListener(this); 223 224 Gatherer.println("\tCreating level_information"); 225 level_information = new JToggleButton(get("Information"), Gatherer.config.get("messages.level_information", false)); 226 level_information.setIcon(Utility.OFF_ICON); 227 level_information.setSelectedIcon(Utility.ON_ICON); 228 level_information.addActionListener(this); 229 230 Gatherer.println("\tCreating level_error"); 231 level_error = new JToggleButton(get("Error"), Gatherer.config.get("messages.level_error", false)); 232 level_error.setIcon(Utility.OFF_ICON); 233 level_error.setSelectedIcon(Utility.ON_ICON); 234 level_error.addActionListener(this); 235 236 level_pane.add(level_label, BorderLayout.NORTH); 237 horizontal_pane.add(level_main); 238 horizontal_pane.add(level_event); 239 horizontal_pane.add(level_information); 240 horizontal_pane.add(level_error); 241 level_pane.add(horizontal_pane, BorderLayout.CENTER); 242 243 // Terrifying gridbag layout 244 grid_constraints.fill = GridBagConstraints.BOTH; 245 grid_layout.setConstraints(source_pane, grid_constraints); 246 this.add(source_pane); 247 grid_constraints.weightx = 1.0; 248 grid_constraints.weighty = 1.0; 249 grid_constraints.gridwidth = GridBagConstraints.REMAINDER; 250 grid_layout.setConstraints(central_pane, grid_constraints); 251 this.add(central_pane); 252 grid_constraints.weightx = 0.0; 253 grid_constraints.weighty = 0.0; 254 grid_constraints.gridwidth = 1; 255 grid_layout.setConstraints(corner_pane, grid_constraints); 256 this.add(corner_pane); 257 grid_constraints.gridwidth = GridBagConstraints.REMAINDER; 258 grid_layout.setConstraints(level_pane, grid_constraints); 259 this.add(level_pane); 260 } 261 262 public void actionPerformed(ActionEvent event) { 263 Object source = event.getSource(); 264 265 // Eventually this will dump the messages to a text file, but for now 266 // I'm using it in testing. 267 if(source == save_messages) { 268 for(int i = 0; i < 20; i++) { 269 model.add(Message.random()); 270 message_list.ensureIndexIsVisible(model.getSize() - 1); 271 } 272 } 273 // We've been asked to toggle whether we show general messages. 274 else if(source == source_general) { 275 // Toggle config setting 276 Gatherer.config.set("messages.source_general", false, !Gatherer.config.get("messages.source_general", false)); 277 // Inform model something has changed. 278 model.refresh(); 279 message_list.ensureIndexIsVisible(model.getSize() - 1); 280 } 281 // We've been asked to toggle whether we show browser messages. 282 else if(source == source_browser) { 283 // Toggle config setting 284 Gatherer.config.set("messages.source_browser", false, !Gatherer.config.get("messages.source_browser", false)); 285 // Inform model something has changed. 286 model.refresh(); 287 message_list.ensureIndexIsVisible(model.getSize() - 1); 288 } 289 // We've been asked to toggle whether we show general messages. 290 else if(source == source_mirroring) { 291 // Toggle config setting 292 Gatherer.config.set("messages.source_mirroring", false, !Gatherer.config.get("messages.source_mirroring", false)); 293 // Inform model something has changed. 294 model.refresh(); 295 message_list.ensureIndexIsVisible(model.getSize() - 1); 296 } 297 // We've been asked to toggle whether we show session messages. 298 else if(source == source_session) { 299 // Toggle config setting 300 Gatherer.config.set("messages.source_session", false, !Gatherer.config.get("messages.source_session", false)); 301 // Inform model something has changed. 302 model.refresh(); 303 message_list.ensureIndexIsVisible(model.getSize() - 1); 304 } 305 // We've been asked to toggle whether we show metaedit messages. 306 else if(source == source_metaedit) { 307 // Toggle config setting 308 Gatherer.config.set("messages.source_metaedit", false, !Gatherer.config.get("messages.source_metaedit", false)); 309 // Inform model something has changed. 310 model.refresh(); 311 message_list.ensureIndexIsVisible(model.getSize() - 1); 312 } 313 // We've been asked to toggle whether we show build messages. 314 else if(source == source_build) { 315 // Toggle config setting 316 Gatherer.config.set("messages.source_build", false, !Gatherer.config.get("messages.source_build", false)); 317 // Inform model something has changed. 318 model.refresh(); 319 message_list.ensureIndexIsVisible(model.getSize() - 1); 320 } 321 // We've been asked to toggle whether we show main level messages. 322 else if(source == level_main) { 323 // Toggle config setting 324 Gatherer.config.set("messages.level_main", false, !Gatherer.config.get("messages.level_main", false)); 325 // Inform model something has changed. 326 model.refresh(); 327 message_list.ensureIndexIsVisible(model.getSize() - 1); 328 } 329 // We've been asked to toggle whether we show event level messages. 330 else if(source == level_event) { 331 // Toggle config setting 332 Gatherer.config.set("messages.level_event", false, !Gatherer.config.get("messages.level_event", false)); 333 // Inform model something has changed. 334 model.refresh(); 335 message_list.ensureIndexIsVisible(model.getSize() - 1); 336 } 337 // We've been asked to toggle whether we show information level messages. 338 else if(source == level_information) { 339 // Toggle config setting 340 Gatherer.config.set("messages.level_information", false, !Gatherer.config.get("messages.level_information", false)); 341 // Inform model something has changed. 342 model.refresh(); 343 message_list.ensureIndexIsVisible(model.getSize() - 1); 344 } 345 // We've been asked to toggle whether we show error level messages. 346 else if(source == level_error) { 347 // Toggle config setting 348 Gatherer.config.set("messages.level_error", false, !Gatherer.config.get("messages.level_error", false)); 349 // Inform model something has changed. 350 model.refresh(); 351 message_list.ensureIndexIsVisible(model.getSize() - 1); 352 } 353 // Pretty much no matter what happens we need to get the new size 354 args = new String[2]; 355 args[0] = model.getSizeStr(); 356 args[1] = model.getTotalSizeStr(); 357 message_count.setText(get("Message_Count",args)); 358 } 359 360 /** The callback for the message listener. Here all of the messages are 361 * displayed onto the list. 362 * @param message The Message to be displayed. 363 */ 364 public void show(Message message) { 365 model.add(message); 366 message_list.ensureIndexIsVisible(model.getSize() - 1); 367 } 368 369 370 private String get(String key) { 371 return get(key, null); 372 } 373 374 private String get(String key, String args[]) { 375 if(key.indexOf('.') == -1) { 376 key = "Messages." + key; 377 } 378 return Gatherer.dictionary.get(key, args); 379 } 380 380 } 381 381
Note:
See TracChangeset
for help on using the changeset viewer.