1 23 package info.monitorenter.gui.chart.events; 24 25 import info.monitorenter.gui.chart.AAxis; 26 import info.monitorenter.gui.chart.Chart2D; 27 import info.monitorenter.gui.chart.layout.LayoutFactory.PropertyChangeCheckBoxMenuItem; 28 29 import java.awt.event.ActionEvent ; 30 import java.beans.PropertyChangeEvent ; 31 32 40 public final class Chart2DActionSetAxis extends AChart2DAction { 41 42 47 private final int m_axisTarget; 48 49 50 private final AAxis m_axis; 51 52 73 public Chart2DActionSetAxis(final Chart2D chart, final AAxis axis, final String description, 74 final int axisTarget) throws IllegalArgumentException { 75 super(chart, description); 76 if (axisTarget != Chart2D.X && axisTarget != Chart2D.Y) { 77 throw new IllegalArgumentException ( 78 "Argument axisTarget is invalid, choose one of Chart2D.X, Chart2D.Y."); 79 } 80 this.m_axisTarget = axisTarget; 81 this.m_axis = axis; 82 chart.addPropertyChangeListener(Chart2D.PROPERTY_AXIS_X, this); 83 chart.addPropertyChangeListener(Chart2D.PROPERTY_AXIS_Y, this); 84 } 85 86 89 public void actionPerformed(final ActionEvent e) { 90 switch (this.m_axisTarget) { 91 case Chart2D.X: 92 this.m_chart.setAxisX(this.m_axis); 93 break; 94 95 case Chart2D.Y: 96 this.m_chart.setAxisY(this.m_axis); 97 break; 98 99 default: 100 break; 102 103 } 104 } 105 106 109 public void propertyChange(final PropertyChangeEvent evt) { 110 if (evt.getPropertyName().equals(Chart2D.PROPERTY_AXIS_X) && this.m_axisTarget == Chart2D.X) { 111 112 Class axisClass = evt.getNewValue().getClass(); 113 if (this.m_axis.getClass() == axisClass) { 114 this.firePropertyChange(PropertyChangeCheckBoxMenuItem.PROPERTY_SELECTED, 115 new Boolean (false), new Boolean (true)); 116 } else { 117 this.firePropertyChange(PropertyChangeCheckBoxMenuItem.PROPERTY_SELECTED, 118 new Boolean (true), new Boolean (false)); 119 } 120 } else if (evt.getPropertyName().equals(Chart2D.PROPERTY_AXIS_Y) 121 && this.m_axisTarget == Chart2D.Y) { 122 123 Class axisClass = evt.getNewValue().getClass(); 124 if (this.m_axis.getClass() == axisClass) { 125 this.firePropertyChange(PropertyChangeCheckBoxMenuItem.PROPERTY_SELECTED, 126 new Boolean (false), new Boolean (true)); 127 } else { 128 this.firePropertyChange(PropertyChangeCheckBoxMenuItem.PROPERTY_SELECTED, 129 new Boolean (true), new Boolean (false)); 130 } 131 } 132 133 } 134 135 } 136 | Popular Tags |