You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MessageHandlerPanel.java 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /********************************************************************
  2. * Copyright (c) 2007 Contributors. All rights reserved.
  3. * This program and the accompanying materials are made available
  4. * under the terms of the Eclipse Public License v 2.0
  5. * which accompanies this distribution and is available at
  6. * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
  7. *
  8. * Contributors: IBM Corporation - initial API and implementation
  9. * Helen Hawkins - initial version (bug 148190)
  10. *******************************************************************/
  11. package org.aspectj.tools.ajbrowser.ui.swing;
  12. import java.awt.BorderLayout;
  13. import java.awt.event.MouseAdapter;
  14. import java.awt.event.MouseEvent;
  15. import java.awt.event.MouseListener;
  16. import java.util.List;
  17. import javax.swing.DefaultListModel;
  18. import javax.swing.JList;
  19. import javax.swing.JPanel;
  20. import javax.swing.JScrollPane;
  21. import org.aspectj.ajde.Ajde;
  22. import org.aspectj.ajde.ui.swing.CompilerMessagesCellRenderer;
  23. import org.aspectj.bridge.IMessage;
  24. import org.aspectj.tools.ajbrowser.ui.BrowserMessageHandler;
  25. /**
  26. * Panel used to display messages from the message handler
  27. */
  28. public class MessageHandlerPanel extends JPanel {
  29. private static final long serialVersionUID = -2251912345065588977L;
  30. private JScrollPane jScrollPane1 = new JScrollPane();
  31. private JList list;
  32. private DefaultListModel listModel;
  33. private BorderLayout borderLayout1 = new BorderLayout();
  34. public void showMessageHandlerPanel(BrowserMessageHandler handler, boolean showPanel) {
  35. if (!showPanel) {
  36. setVisible(false);
  37. return;
  38. }
  39. createList(handler.getMessages());
  40. try {
  41. jbInit();
  42. } catch (Exception e) {
  43. e.printStackTrace();
  44. }
  45. list.setModel(listModel);
  46. MouseListener mouseListener = new MouseAdapter() {
  47. public void mouseClicked(MouseEvent e) {
  48. if (e.getClickCount() >= 1) {
  49. int index = list.locationToIndex(e.getPoint());
  50. if (listModel.getSize() >= index && index != -1) {
  51. IMessage message = (IMessage) listModel
  52. .getElementAt(index);
  53. Ajde.getDefault().getEditorAdapter().showSourceLine(
  54. message.getSourceLocation(), true);
  55. }
  56. }
  57. }
  58. };
  59. list.addMouseListener(mouseListener);
  60. list.setCellRenderer(new CompilerMessagesCellRenderer());
  61. setVisible(showPanel);
  62. }
  63. private void createList(List<IMessage> messages) {
  64. list = new JList();
  65. listModel = new DefaultListModel();
  66. for (IMessage message : messages) {
  67. listModel.addElement(message);
  68. }
  69. }
  70. private void jbInit() throws Exception {
  71. this.setLayout(borderLayout1);
  72. this.add(jScrollPane1, BorderLayout.CENTER);
  73. jScrollPane1.getViewport().add(list, null);
  74. }
  75. }