/* ===========================================================
* TradeManager : a application to trade strategies for the Java(tm) platform
* ===========================================================
*
* (C) Copyright 2011-2011, by Simon Allen and Contributors.
*
* Project Info: org.trade
*
* This library 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 2.1 of the License, or
* (at your option) any later version.
*
* This library 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 this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*
* [Java is a trademark or registered trademark of Oracle, Inc.
* in the United States and other countries.]
*
* (C) Copyright 2011-2011, by Simon Allen and Contributors.
*
* Original Author: Simon Allen;
* Contributor(s): -;
*
* Changes
* -------
*
*/
package org.trade.ui.tables.renderer;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;
import org.trade.dictionary.valuetype.Side;
import org.trade.persistent.dao.TradeOrder;
import org.trade.persistent.dao.Tradestrategy;
import org.trade.ui.models.TradingdayTreeModel;
/**
*/
public class TradingdayTreeCellRenderer extends DefaultTreeCellRenderer {
private static final long serialVersionUID = 7664391812385841364L;
private Color backgroundSelectionColor = null;
public TradingdayTreeCellRenderer() {
super();
backgroundSelectionColor = this.getBackgroundSelectionColor();
}
/**
* Method getTreeCellRendererComponent.
*
* @param tree
* JTree
* @param value
* Object
* @param selected
* boolean
* @param expanded
* boolean
* @param leaf
* boolean
* @param row
* int
* @param hasFocus
* boolean
* @return Component
* @see javax.swing.tree.TreeCellRenderer#getTreeCellRendererComponent(JTree,
* Object, boolean, boolean, boolean, int, boolean)
*/
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded,
boolean leaf, int row, boolean hasFocus) {
Object node = ((TradingdayTreeModel) tree.getModel()).getNode(value);
Component comp = super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
if (selected) {
this.setBackgroundSelectionColor(backgroundSelectionColor);
}
if (node != null) {
if ((node instanceof Tradestrategy) /* leaf */) {
Tradestrategy tradestrategy = (Tradestrategy) node;
if (!tradestrategy.getTradeOrders().isEmpty()) {
TradeOrder tradeOrder = tradestrategy.getTradeOrders().get(0);
if (tradeOrder.hasTradePosition()) {
if (Side.BOT.equals(tradeOrder.getTradePosition().getSide())) {
comp.setForeground(Color.GREEN);
} else {
comp.setForeground(Color.RED);
}
}
if (selected) {
this.setBackgroundSelectionColor(backgroundSelectionColor);
}
}
this.setToolTipText("Select to open chart.");
} else if (expanded) {
} else {
}
}
return comp;
}
}