/******************************************************************************
* Copyright: GPL v3 *
* *
* 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 dba.gui.auxClasses;
import dba.gui.auxClasses.nodes.AttributeNode;
import dba.gui.auxClasses.nodes.DatabaseNode;
import dba.gui.auxClasses.nodes.FunctionalDependencyNode;
import dba.gui.auxClasses.nodes.RelationNode;
import dba.utils.GetIcons;
import dba.utils.constants;
import javax.swing.*;
import javax.swing.tree.DefaultTreeCellRenderer;
import java.awt.*;
/**
* Custom TreeCellRenderer to provide custom icons for Database,
* Relations, Attributes and FDs
*
* @author Andreas Freitag
*/
public class CustomTreeCellRenderer extends DefaultTreeCellRenderer implements constants {
private GetIcons getIcons;
/**
*
*/
private static final long serialVersionUID = -2155183026454520506L;
public CustomTreeCellRenderer() {
super();
getIcons = GetIcons.getInstance();
}
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded,
boolean leaf, int row, boolean hasFocus) {
super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
ImageIcon icon;
if (value instanceof AttributeNode) {
icon = getIcons.getTreeAttribute();
setIcon(icon);
} else if (value instanceof FunctionalDependencyNode) {
icon = getIcons.getTreeFd();
setIcon(icon);
} else if (value instanceof RelationNode) {
icon = getIcons.getTreeRelation();
setIcon(icon);
} else if (value instanceof DatabaseNode) {
icon = getIcons.getTreeDatabase();
setIcon(icon);
}
return this;
}
}