package org.chartsy.macd; import java.awt.Color; import java.awt.Stroke; import java.beans.PropertyEditorSupport; import java.util.logging.Level; import org.chartsy.main.chart.AbstractPropertiesNode; import org.chartsy.main.utils.SerialVersion; import org.chartsy.main.utils.StrokeGenerator; import org.chartsy.main.utils.StrokePropertyEditor; import org.openide.nodes.Sheet; /** * * @author viorel.gheba */ public class IndicatorNode extends AbstractPropertiesNode { private static final long serialVersionUID = SerialVersion.APPVERSION; public IndicatorNode() { super("MACD Properties"); } public IndicatorNode(IndicatorProperties indicatorProperties) { super("MACD Properties", indicatorProperties); } @SuppressWarnings("unchecked") protected @Override Sheet createSheet() { Sheet sheet = Sheet.createDefault(); Sheet.Set set = getPropertiesSet(); sheet.put(set); try { // Label set.put(getProperty( "Label", // property name "Sets the label", // property description IndicatorProperties.class, // properties class String.class, // property class PropertyEditorSupport.class, // property editor class (null if none) "getLabel", // get method name "setLabel", // set method name IndicatorProperties.LABEL // default property value )); // Marker Visibility set.put(getProperty( "Marker Visibility", // property name "Sets the marker visibility", // property description IndicatorProperties.class, // properties class boolean.class, // property class null, // property editor class (null if none) "getMarker", // get method name "setMarker", // set method name IndicatorProperties.MARKER // default property value )); // Fast set.put(getProperty( "Fast", // property name "Sets the fast value", // property description IndicatorProperties.class, // properties class int.class, // property class null, // property editor class (null if none) "getFast", // get method name "setFast", // set method name IndicatorProperties.FAST // default property value )); // Slow set.put(getProperty( "Slow", // property name "Sets the slow value", // property description IndicatorProperties.class, // properties class int.class, // property class null, // property editor class (null if none) "getSlow", // get method name "setSlow", // set method name IndicatorProperties.SLOW // default property value )); // Smooth set.put(getProperty( "Smooth", // property name "Sets the smooth value", // property description IndicatorProperties.class, // properties class int.class, // property class null, // property editor class (null if none) "getSmooth", // get method name "setSmooth", // set method name IndicatorProperties.SMOOTH // default property value )); // Zero Line Color set.put(getProperty( "Zero Line Color", // property name "Sets the zero line color", // property description IndicatorProperties.class, // properties class Color.class, // property class null, // property editor class (null if none) "getZeroLineColor", // get method name "setZeroLineColor", // set method name IndicatorProperties.ZERO_LINE_COLOR // default property value )); // Zero Line Style set.put(getProperty( "Zero Line Style", // property name "Sets the zero line style", // property description IndicatorProperties.class, // properties class Stroke.class, // property class StrokePropertyEditor.class, // property editor class (null if none) "getZeroLineStroke", // get method name "setZeroLineStroke", // set method name StrokeGenerator.getStroke(IndicatorProperties.ZERO_LINE_STROKE_INDEX) // default property value )); // Zero Line Visibility set.put(getProperty( "Zero Line Visibility", // property name "Sets the zero line visibility flag", // property description IndicatorProperties.class, // properties class boolean.class, // property class null, // property editor class (null if none) "getZeroLineVisibility", // get method name "setZeroLineVisibility", // set method name IndicatorProperties.ZERO_LINE_VISIBILITY // default property value )); // Histogram Positive Color set.put(getProperty( "Histogram Positive Color", // property name "Sets the histogram positive color", // property description IndicatorProperties.class, // properties class Color.class, // property class null, // property editor class (null if none) "getHistogramPositiveColor", // get method name "setHistogramPositiveColor", // set method name IndicatorProperties.HISTOGRAM_POSITIVE_COLOR // default property value )); // Histogram Negative Color set.put(getProperty( "Histogram Negative Color", // property name "Sets the histogram negative color", // property description IndicatorProperties.class, // properties class Color.class, // property class null, // property editor class (null if none) "getHistogramNegativeColor", // get method name "setHistogramNegativeColor", // set method name IndicatorProperties.HISTOGRAM_NEGATIVE_COLOR // default property value )); // Signal Line Color set.put(getProperty( "Signal Line Color", // property name "Sets the signal line color", // property description IndicatorProperties.class, // properties class Color.class, // property class null, // property editor class (null if none) "getSignalColor", // get method name "setSignalColor", // set method name IndicatorProperties.SIGNAL_COLOR // default property value )); // Signal Line Style set.put(getProperty( "Signal Line Style", // property name "Sets the signal line style", // property description IndicatorProperties.class, // properties class Stroke.class, // property class StrokePropertyEditor.class, // property editor class (null if none) "getSignalStroke", // get method name "setSignalStroke", // set method name StrokeGenerator.getStroke(IndicatorProperties.SIGNAL_STROKE_INDEX) // default property value )); // MACD Line Color set.put(getProperty( "MACD Line Color", // property name "Sets the macd line color", // property description IndicatorProperties.class, // properties class Color.class, // property class null, // property editor class (null if none) "getMacdColor", // get method name "setMacdColor", // set method name IndicatorProperties.MACD_COLOR // default property value )); // MACD Line Style set.put(getProperty( "MACD Line Style", // property name "Sets the macd line style", // property description IndicatorProperties.class, // properties class Stroke.class, // property class StrokePropertyEditor.class, // property editor class (null if none) "getMacdStroke", // get method name "setMacdStroke", // set method name StrokeGenerator.getStroke(IndicatorProperties.MACD_STROKE_INDEX) // default property value )); } catch (NoSuchMethodException ex) { LOG.log(Level.SEVERE, "[MACD Node] : Method does not exist.", ex); } return sheet; } }