/*
** This file is part of Filius, a network construction and simulation software.
**
** Originally created at the University of Siegen, Institute "Didactics of
** Informatics and E-Learning" by a students' project group:
** members (2006-2007):
** André Asschoff, Johannes Bade, Carsten Dittich, Thomas Gerding,
** Nadja Haßler, Ernst Johannes Klebert, Michell Weyer
** supervisors:
** Stefan Freischlad (maintainer until 2009), Peer Stechert
** Project is maintained since 2010 by Christian Eibl <filius@c.fameibl.de>
** and Stefan Freischlad
** Filius 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 2 of the License, or
** (at your option) version 3.
**
** Filius 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 Filius. If not, see <http://www.gnu.org/licenses/>.
*/
package filius.gui.anwendungssicht;
import java.awt.Component;
import javax.swing.Icon;
import javax.swing.JTree;
import javax.swing.tree.*;
import filius.software.system.Datei;
class GUITreeRenderer extends DefaultTreeCellRenderer {
private Icon dateiIcon, ordnerIcon;
private boolean dateienAnzeigen;
public GUITreeRenderer(Icon dateiIcon, Icon ordnerIcon) {
this.dateiIcon = dateiIcon;
this.ordnerIcon = ordnerIcon;
}
public Component getTreeCellRendererComponent(
JTree tree,
Object value,
boolean sel,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus) {
super.getTreeCellRendererComponent(
tree, value, sel,
expanded, leaf, row,
hasFocus);
if (leaf && isDatei(value)) {
setIcon(dateiIcon);
setText(this.getDateiName(value));
} else {
setIcon(ordnerIcon);
}
if (isDatei(value) && !isDateienAnzeigen())
{
setVisible(false);
setText("");
setIcon(null);
}
return this;
}
protected boolean isDatei(Object value)
{
DefaultMutableTreeNode node =
(DefaultMutableTreeNode)value;
if (node.getUserObject().getClass().equals(Datei.class))
{
return true;
}
return false;
}
protected String getDateiName(Object value)
{
DefaultMutableTreeNode node =
(DefaultMutableTreeNode)value;
if (node.getUserObject().getClass().equals(Datei.class))
{
Datei datei = (Datei) node.getUserObject();
return datei.getName();
}
return "";
}
public boolean isDateienAnzeigen() {
return dateienAnzeigen;
}
public void setDateienAnzeigen(boolean dateienAnzeigen) {
this.dateienAnzeigen = dateienAnzeigen;
}
}