package org.iplantc.phyloviewer.shared.render.style;
/**
* An INodeStyle that returns default values from a base INodeStyle if they haven't been set.
*/
public class CompositeNodeStyle extends NodeStyle
{
private INodeStyle baseStyle;
public CompositeNodeStyle(INodeStyle baseStyle)
{
super(null, Double.NaN);
this.baseStyle = baseStyle;
}
@Override
public String getColor() {
if (color != null)
{
return color;
}
else
{
return baseStyle.getColor();
}
}
@Override
public double getPointSize() {
if (!Double.isNaN(pointSize))
{
return pointSize;
}
else
{
return baseStyle.getPointSize();
}
}
public void setBaseStyle(INodeStyle baseStyle)
{
this.baseStyle = baseStyle;
}
public INodeStyle getBaseStyle()
{
return baseStyle;
}
}