/**
* This file is part of VisiCut.
* Copyright (C) 2011 - 2013 Thomas Oster <thomas.oster@rwth-aachen.de>
* RWTH Aachen University - 52062 Aachen, Germany
*
* VisiCut 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 3 of the License, or
* (at your option) any later version.
*
* VisiCut 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 VisiCut. If not, see <http://www.gnu.org/licenses/>.
**/
package com.t_oster.visicut.gui.mapping;
import com.t_oster.visicut.misc.Helper;
import com.t_oster.visicut.model.graphicelements.GraphicSet;
import com.t_oster.visicut.model.mapping.FilterSet;
import com.t_oster.visicut.model.mapping.MappingFilter;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
/**
*
* @author Thomas Oster <thomas.oster@rwth-aachen.de>
*/
public class FilterSetCellRenderer extends DefaultTableCellRenderer
{
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (c instanceof JLabel)
{
if (value == null)
{
String text = java.util.ResourceBundle.getBundle("com/t_oster/visicut/gui/mapping/resources/CustomMappingPanel").getString("EVERYTHING_ELSE");
((JLabel) c).setText(text);
}
if (value instanceof FilterSet)
{
String text = java.util.ResourceBundle.getBundle("com/t_oster/visicut/gui/mapping/resources/CustomMappingPanel").getString("EVERYTHING");
if (!((FilterSet) value).isEmpty())
{
MappingFilter f = ((FilterSet) value).getFirst();
text = GraphicSet.translateAttVal(f.getAttribute());
String dots = ((FilterSet) value).size() > 1 ? "..." : "";
if (f.getValue() instanceof Color)
{
String color = Helper.toHtmlRGB((Color) f.getValue());
text = "<html><table><tr><td>" + text + " " + color + "<td border=1 bgcolor=" + color + "> </td><td>" + dots + "</td></tr></table></html>";
}
else if (f.getValue() != null)
{
text = text + " " + GraphicSet.translateAttVal(f.getValue().toString()) + dots;
}
}
((JLabel) c).setText(text);
((JLabel) c).setToolTipText(((FilterSet) value).toString());
}
}
return c;
}
}