/* * Copyright (C) 2010-2016 JPEXS * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.jpexs.decompiler.flash.gui.abc; import com.jpexs.decompiler.flash.gui.View; import java.awt.Component; import java.net.URL; import javax.swing.DefaultListCellRenderer; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JList; /** * * @author JPEXS */ public class IconListRenderer extends DefaultListCellRenderer { private final Icon constIcon; private final Icon functionIcon; private final Icon variableIcon; private Icon loadIcon(String path) { ClassLoader cldr = this.getClass().getClassLoader(); URL imageURL = cldr.getResource(path); return new ImageIcon(imageURL); } public IconListRenderer() { constIcon = View.getIcon("constant"); functionIcon = View.getIcon("function"); variableIcon = View.getIcon("variable"); } @Override public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { // Get the renderer component from parent class JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); // Get icon to use for the list item value TraitsListItem tli = (TraitsListItem) value; if (tli.getType() == TraitsListItem.Type.CONST) { label.setIcon(constIcon); } if (tli.getType() == TraitsListItem.Type.VAR) { label.setIcon(variableIcon); } if (tli.getType() == TraitsListItem.Type.METHOD) { label.setIcon(functionIcon); } if (tli.getType() == TraitsListItem.Type.INITIALIZER) { label.setIcon(functionIcon); } if (tli.getType() == TraitsListItem.Type.SCRIPT_INITIALIZER) { label.setIcon(functionIcon); } return label; } }