treeCellRenderer = new JLabel(); treeCellRenderer.setOpaque(true); treeCellRenderer.setFont(font);
	public FileCellRenderer()	{		font = UIManager.getFont("Tree.font");		treeSelectionForeground = UIManager.getColor("Tree.selectionForeground");		treeNoSelectionForeground = UIManager.getColor("Tree.textForeground");		treeSelectionBackground = UIManager.getColor("Tree.selectionBackground");		treeNoSelectionBackground = UIManager.getColor("Tree.textBackground");		// use metal icons because not all looks and feels define these.		// note that metal is guaranteed to exist, so this shouldn't		// cause problems in the future.		UIDefaults metalDefaults = new javax.swing.plaf.metal.MetalLookAndFeel()			.getDefaults();		fileIcon = metalDefaults.getIcon("FileView.fileIcon");		dirIcon = metalDefaults.getIcon("FileView.directoryIcon");		filesystemIcon = metalDefaults.getIcon("FileView.hardDriveIcon");		loadingIcon = metalDefaults.getIcon("FileView.hardDriveIcon");		treeCellRenderer = new JLabel();		treeCellRenderer.setOpaque(true);		treeCellRenderer.setFont(font);		propertiesChanged();		/* pure genius. since only one instance of this class is ever		 * created, we can add a 'hard-coded' component to the editbus		 * to handle property changes.		 */		EditBus.addToBus(new EBComponent()		{			public void handleMessage(EBMessage msg)			{				if(msg instanceof PropertiesChanged)					propertiesChanged();			}		});	}