package org.iplantc.phyloviewer.shared.render.style; /** * An IBranchStyle that returns default values from a base IBranchStyle if they haven't been set. */ public class CompositeBranchStyle extends BranchStyle { private IBranchStyle baseStyle; public CompositeBranchStyle(IBranchStyle baseStyle) { super(null, Double.NaN); this.baseStyle = baseStyle; } @Override public String getStrokeColor() { if (strokeColor != null) { return strokeColor; } else { return baseStyle.getStrokeColor(); } } @Override public double getLineWidth() { if (!Double.isNaN(strokeWidth)) { return strokeWidth; } else { return baseStyle.getLineWidth(); } } public void setBaseStyle(IBranchStyle baseStyle) { this.baseStyle = baseStyle; } public IBranchStyle getBaseStyle() { return baseStyle; } }