123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /* *******************************************************************
- * Copyright (c) 1999-2001 Xerox Corporation,
- * 2002 Palo Alto Research Center, Incorporated (PARC).
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- *
- * Contributors:
- * Xerox/PARC initial implementation
- * Helen Hawkins Converted to new interface (bug 148190)
- * ******************************************************************/
-
-
- package org.aspectj.ajde.ui.swing;
-
- import java.awt.Component;
-
- import javax.swing.JLabel;
- import javax.swing.JList;
- import javax.swing.ListCellRenderer;
-
- import org.aspectj.ajde.Ajde;
- import org.aspectj.bridge.IMessage;
- import org.aspectj.util.LangUtil;
-
- /**
- * @author Mik Kersten
- */
- public class CompilerMessagesCellRenderer extends JLabel implements ListCellRenderer {
-
- private static final long serialVersionUID = -4406791252357837712L;
-
- public Component getListCellRendererComponent(
- JList list,
- Object value,
- int index,
- boolean isSelected,
- boolean cellHasFocus) {
- String label = "<no message>";
- String detail = null;
- IMessage.Kind kind = IMessage.ERROR;
- if (value instanceof IMessage) {
- IMessage cm = (IMessage) value;
- label = cm.getMessage();
- if (LangUtil.isEmpty(label)) {
- label = cm.getMessage();
- }
- kind = cm.getKind();
- Throwable thrown = cm.getThrown();
- if (null != thrown) {
- detail = LangUtil.renderException(thrown);
- }
- } else if (null != value) {
- label = value.toString();
- }
- setText(label);
- if (kind.equals(IMessage.WARNING)) {
- setIcon(Ajde.getDefault().getIconRegistry().getWarningIcon());
- } else if (IMessage.ERROR.isSameOrLessThan(kind)) {
- setIcon(Ajde.getDefault().getIconRegistry().getErrorIcon());
- } else {
- setIcon(Ajde.getDefault().getIconRegistry().getInfoIcon());
- }
- if (isSelected) {
- setBackground(list.getSelectionBackground());
- setForeground(list.getSelectionForeground());
- } else {
- setBackground(list.getBackground());
- setForeground(list.getForeground());
- }
- setEnabled(list.isEnabled());
- setFont(list.getFont());
- setOpaque(true);
- if (null != detail) {
- setToolTipText(detail);
- }
- return this;
- }
- }
|