⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bugcellrenderer.java

📁 A static analysis tool to find bugs in Java programs
💻 JAVA
字号:
/* * FindBugs - Find bugs in Java programs * Copyright (C) 2003-2005, University of Maryland * Copyright (C) 2004 Dave Brosius <dbrosius@users.sourceforge.net> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA	 02111-1307	 USA */package edu.umd.cs.findbugs.gui;import java.awt.Color;import java.awt.Component;import javax.swing.ImageIcon;import javax.swing.JTree;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeCellRenderer;import edu.umd.cs.findbugs.BugInstance;import edu.umd.cs.findbugs.ClassAnnotation;import edu.umd.cs.findbugs.Detector;import edu.umd.cs.findbugs.FieldAnnotation;import edu.umd.cs.findbugs.MethodAnnotation;import edu.umd.cs.findbugs.SourceLineAnnotation;/** * Custom cell renderer for the bug tree. * We use this to select the tree icons, and to set the * text color based on the bug priority. */public class BugCellRenderer extends DefaultTreeCellRenderer {	private static final BugCellRenderer theInstance = new BugCellRenderer();	/**	 * Get the single instance.	 * 	 * @return the instance	 */	public static BugCellRenderer instance() {		return theInstance;	}	private static final long serialVersionUID = 1L;	private ImageIcon bugGroupIcon;	private ImageIcon packageIcon;	private ImageIcon bugIcon;	private ImageIcon classIcon;	private ImageIcon methodIcon;	private ImageIcon fieldIcon;	private ImageIcon sourceFileIcon;	private Object value;	private BugCellRenderer() {		ClassLoader classLoader = this.getClass().getClassLoader();		bugGroupIcon = new ImageIcon(classLoader.getResource("edu/umd/cs/findbugs/gui/bug.png"));		packageIcon = new ImageIcon(classLoader.getResource("edu/umd/cs/findbugs/gui/package.png"));		bugIcon = new ImageIcon(classLoader.getResource("edu/umd/cs/findbugs/gui/bug2.png"));		classIcon = new ImageIcon(classLoader.getResource("edu/umd/cs/findbugs/gui/class.png"));		methodIcon = new ImageIcon(classLoader.getResource("edu/umd/cs/findbugs/gui/method.png"));		fieldIcon = new ImageIcon(classLoader.getResource("edu/umd/cs/findbugs/gui/field.png"));		sourceFileIcon = new ImageIcon(classLoader.getResource("edu/umd/cs/findbugs/gui/sourcefile.png"));	}	@Override	public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel,												  boolean expanded, boolean leaf, int row, boolean hasFocus) {		DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;		Object obj = node.getUserObject();		this.value = obj;		super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);		// Set the icon, depending on what kind of node it is		if (obj instanceof BugInstance) {			setIcon(bugIcon);		} else if (obj instanceof ClassAnnotation) {			setIcon(classIcon);		} else if (obj instanceof MethodAnnotation) {			setIcon(methodIcon);		} else if (obj instanceof FieldAnnotation) {			setIcon(fieldIcon);		} else if (obj instanceof SourceLineAnnotation) {			setIcon(sourceFileIcon);		} else if (obj instanceof BugInstanceGroup) {			// This is a "group" node			BugInstanceGroup groupNode = (BugInstanceGroup) obj;			String groupType = groupNode.getGroupType();			if (groupType == FindBugsFrame.GROUP_BY_CLASS) {				setIcon(classIcon);			} else if (groupType == FindBugsFrame.GROUP_BY_PACKAGE) {				setIcon(packageIcon);			} else if (groupType == FindBugsFrame.GROUP_BY_BUG_TYPE) {				setIcon(bugGroupIcon);							} else if (groupType == FindBugsFrame.GROUP_BY_BUG_CATEGORY) {				setIcon(bugGroupIcon);			}		} else {			setIcon(null);		}		return this;	}	@Override	public Color getTextNonSelectionColor() {		return getCellTextColor();	}	private Color getCellTextColor() {		// Based on the priority, color-code the bug instance.		Color color = Color.BLACK;		if (value instanceof BugInstance) {			BugInstance bugInstance = (BugInstance) value;			switch (bugInstance.getPriority()) {			case Detector.EXP_PRIORITY:				color = FindBugsFrame.EXP_PRIORITY_COLOR;				break;			case Detector.LOW_PRIORITY:				color = FindBugsFrame.LOW_PRIORITY_COLOR;				break;			case Detector.NORMAL_PRIORITY:				color = FindBugsFrame.NORMAL_PRIORITY_COLOR;				break;			case Detector.HIGH_PRIORITY:				color = FindBugsFrame.HIGH_PRIORITY_COLOR;				break;			}		}		return color;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -