1 24 package info.monitorenter.gui.chart.events; 25 26 import info.monitorenter.gui.chart.ITrace2D; 27 import info.monitorenter.gui.chart.layout.LayoutFactory.PropertyChangeCheckBoxMenuItem; 28 29 import java.awt.Color ; 30 import java.awt.Component ; 31 import java.awt.event.ActionEvent ; 32 import java.beans.PropertyChangeEvent ; 33 34 import javax.swing.JColorChooser ; 35 36 45 public final class Trace2DActionSetCustomColor extends ATrace2DAction { 46 47 50 private static final long serialVersionUID = 3904680491952451890L; 51 52 56 private Color m_lastChosen; 57 58 65 private Component m_trigger; 66 67 86 public Trace2DActionSetCustomColor(final ITrace2D trace, final String description, 87 final Component trigger) { 88 super(trace, description); 89 this.m_trigger = trigger; 90 trace.addPropertyChangeListener(ITrace2D.PROPERTY_COLOR, this); 91 } 92 93 96 public void actionPerformed(final ActionEvent e) { 97 Color chosen = JColorChooser.showDialog(this.m_trigger, "choose color for " 98 + this.m_trace.getName(), this.m_trace.getColor()); 99 this.m_lastChosen = chosen; 100 this.m_trace.setColor(chosen); 101 } 102 103 106 public void propertyChange(final PropertyChangeEvent evt) { 107 String property = evt.getPropertyName(); 108 if (property.equals(ITrace2D.PROPERTY_COLOR)) { 109 Color newValue = (Color ) evt.getNewValue(); 110 if (newValue.equals(this.m_lastChosen)) { 111 this.firePropertyChange(PropertyChangeCheckBoxMenuItem.PROPERTY_SELECTED, 112 new Boolean (false), new Boolean (true)); 113 } else { 114 this.firePropertyChange(PropertyChangeCheckBoxMenuItem.PROPERTY_SELECTED, 115 new Boolean (true), new Boolean (false)); 116 } 117 } 118 } 119 } 120 | Popular Tags |