Fixed numerous problems introduced in previous commit which reduced dependency on swing classes ChangeListener and ChangeEvent.
This commit is contained in:
parent
713bd6bab8
commit
bf609aa353
@ -6,11 +6,10 @@ import java.beans.PropertyChangeListener;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.EventObject;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
|
||||
import net.sf.openrocket.logging.LogHelper;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
@ -20,6 +19,7 @@ import net.sf.openrocket.util.Invalidatable;
|
||||
import net.sf.openrocket.util.Invalidator;
|
||||
import net.sf.openrocket.util.MemoryManagement;
|
||||
import net.sf.openrocket.util.Reflection;
|
||||
import net.sf.openrocket.util.StateChangeListener;
|
||||
|
||||
|
||||
/**
|
||||
@ -37,7 +37,7 @@ import net.sf.openrocket.util.Reflection;
|
||||
*
|
||||
* @author Sampo Niskanen <sampo.niskanen@iki.fi>
|
||||
*/
|
||||
public class BooleanModel extends AbstractAction implements ChangeListener, Invalidatable {
|
||||
public class BooleanModel extends AbstractAction implements StateChangeListener, Invalidatable {
|
||||
private static final LogHelper log = Application.getLogger();
|
||||
|
||||
private final ChangeSource source;
|
||||
@ -232,7 +232,7 @@ public class BooleanModel extends AbstractAction implements ChangeListener, Inva
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stateChanged(ChangeEvent event) {
|
||||
public void stateChanged(EventObject event) {
|
||||
checkState(true);
|
||||
|
||||
if (firing > 0) {
|
||||
|
@ -14,6 +14,7 @@ import javax.swing.Action;
|
||||
import javax.swing.BoundedRangeModel;
|
||||
import javax.swing.SpinnerModel;
|
||||
import javax.swing.SpinnerNumberModel;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
|
||||
import net.sf.openrocket.logging.LogHelper;
|
||||
@ -891,12 +892,15 @@ public class DoubleModel implements StateChangeListener, ChangeSource, Invalidat
|
||||
checkState(true);
|
||||
|
||||
EventObject event = new EventObject(this);
|
||||
ChangeEvent cevent = new ChangeEvent(this);
|
||||
firing++;
|
||||
// Copy the list before iterating to prevent concurrent modification exceptions.
|
||||
EventListener[] ls = listeners.toArray(new EventListener[0]);
|
||||
for (EventListener l : ls) {
|
||||
if ( l instanceof StateChangeListener ) {
|
||||
((StateChangeListener)l).stateChanged(event);
|
||||
} else if ( l instanceof ChangeListener ) {
|
||||
((ChangeListener)l).stateChanged(cevent);
|
||||
}
|
||||
}
|
||||
firing--;
|
||||
|
@ -1,16 +1,17 @@
|
||||
package net.sf.openrocket.gui.adaptors;
|
||||
|
||||
import java.util.EventObject;
|
||||
|
||||
import javax.swing.AbstractListModel;
|
||||
import javax.swing.ComboBoxModel;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
|
||||
import net.sf.openrocket.util.ChangeSource;
|
||||
import net.sf.openrocket.util.Reflection;
|
||||
import net.sf.openrocket.util.StateChangeListener;
|
||||
|
||||
|
||||
public class EnumModel<T extends Enum<T>> extends AbstractListModel
|
||||
implements ComboBoxModel, ChangeListener {
|
||||
implements ComboBoxModel, StateChangeListener {
|
||||
|
||||
private final ChangeSource source;
|
||||
private final String valueName;
|
||||
@ -114,7 +115,7 @@ public class EnumModel<T extends Enum<T>> extends AbstractListModel
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
public void stateChanged(EventObject e) {
|
||||
Enum<T> value = (Enum<T>) getMethod.invoke(source);
|
||||
if (value != currentValue) {
|
||||
currentValue = value;
|
||||
|
@ -3,6 +3,8 @@ package net.sf.openrocket.gui.adaptors;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.EventListener;
|
||||
import java.util.EventObject;
|
||||
|
||||
import javax.swing.SpinnerModel;
|
||||
import javax.swing.SpinnerNumberModel;
|
||||
@ -14,9 +16,10 @@ import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.util.BugException;
|
||||
import net.sf.openrocket.util.ChangeSource;
|
||||
import net.sf.openrocket.util.Reflection;
|
||||
import net.sf.openrocket.util.StateChangeListener;
|
||||
|
||||
|
||||
public class IntegerModel implements ChangeListener {
|
||||
public class IntegerModel implements StateChangeListener {
|
||||
private static final LogHelper log = Application.getLogger();
|
||||
|
||||
|
||||
@ -95,7 +98,7 @@ public class IntegerModel implements ChangeListener {
|
||||
private final Method getMethod;
|
||||
private final Method setMethod;
|
||||
|
||||
private final ArrayList<ChangeListener> listeners = new ArrayList<ChangeListener>();
|
||||
private final ArrayList<EventListener> listeners = new ArrayList<EventListener>();
|
||||
|
||||
private final int minValue;
|
||||
private final int maxValue;
|
||||
@ -184,7 +187,7 @@ public class IntegerModel implements ChangeListener {
|
||||
* is the first listener.
|
||||
* @param l Listener to add.
|
||||
*/
|
||||
public void addChangeListener(ChangeListener l) {
|
||||
public void addChangeListener(EventListener l) {
|
||||
if (listeners.isEmpty()) {
|
||||
source.addChangeListener(this);
|
||||
lastValue = getValue();
|
||||
@ -218,11 +221,17 @@ public class IntegerModel implements ChangeListener {
|
||||
|
||||
|
||||
public void fireStateChanged() {
|
||||
Object[] l = listeners.toArray();
|
||||
ChangeEvent event = new ChangeEvent(this);
|
||||
EventListener[] list = listeners.toArray(new EventListener[0] );
|
||||
EventObject event = new EventObject(this);
|
||||
ChangeEvent cevent = new ChangeEvent(this);
|
||||
firing++;
|
||||
for (int i = 0; i < l.length; i++)
|
||||
((ChangeListener) l[i]).stateChanged(event);
|
||||
for( EventListener l : list ) {
|
||||
if ( l instanceof ChangeListener) {
|
||||
((ChangeListener)l).stateChanged(cevent);
|
||||
} else if ( l instanceof StateChangeListener ) {
|
||||
((StateChangeListener)l).stateChanged(event);
|
||||
}
|
||||
}
|
||||
firing--;
|
||||
}
|
||||
|
||||
@ -230,7 +239,8 @@ public class IntegerModel implements ChangeListener {
|
||||
* Called when the source changes. Checks whether the modeled value has changed, and if
|
||||
* it has, updates lastValue and generates ChangeEvents for all listeners of the model.
|
||||
*/
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
@Override
|
||||
public void stateChanged(EventObject e) {
|
||||
int v = getValue();
|
||||
if (lastValue == v)
|
||||
return;
|
||||
|
@ -11,6 +11,7 @@ import java.awt.event.ItemListener;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.EventObject;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.Action;
|
||||
@ -20,12 +21,11 @@ import javax.swing.border.Border;
|
||||
import javax.swing.border.CompoundBorder;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import javax.swing.border.LineBorder;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
|
||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||
import net.sf.openrocket.unit.Unit;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.util.StateChangeListener;
|
||||
|
||||
|
||||
/**
|
||||
@ -36,7 +36,7 @@ import net.sf.openrocket.unit.UnitGroup;
|
||||
* @author Sampo Niskanen <sampo.niskanen@iki.fi>
|
||||
*/
|
||||
|
||||
public class UnitSelector extends StyledLabel implements ChangeListener, MouseListener,
|
||||
public class UnitSelector extends StyledLabel implements StateChangeListener, MouseListener,
|
||||
ItemSelectable {
|
||||
|
||||
private DoubleModel model;
|
||||
@ -235,7 +235,8 @@ public class UnitSelector extends StyledLabel implements ChangeListener, MouseLi
|
||||
/**
|
||||
* Update the component when the DoubleModel changes.
|
||||
*/
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
@Override
|
||||
public void stateChanged(EventObject e) {
|
||||
updateText();
|
||||
}
|
||||
|
||||
|
@ -13,6 +13,7 @@ import java.awt.event.ActionListener;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.awt.geom.Ellipse2D;
|
||||
import java.util.EventObject;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.BorderFactory;
|
||||
@ -23,8 +24,6 @@ import javax.swing.JPanel;
|
||||
import javax.swing.JSpinner;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.border.BevelBorder;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import net.sf.openrocket.document.OpenRocketDocument;
|
||||
@ -43,6 +42,7 @@ import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.util.BugException;
|
||||
import net.sf.openrocket.util.Coordinate;
|
||||
import net.sf.openrocket.util.StateChangeListener;
|
||||
|
||||
|
||||
public class InnerTubeConfig extends ThicknessRingComponentConfig {
|
||||
@ -228,7 +228,7 @@ class ClusterSelectionPanel extends JPanel {
|
||||
}
|
||||
|
||||
|
||||
private class ClusterButton extends JPanel implements ChangeListener, MouseListener,
|
||||
private class ClusterButton extends JPanel implements StateChangeListener, MouseListener,
|
||||
Resettable {
|
||||
private Clusterable component;
|
||||
private ClusterConfiguration config;
|
||||
@ -285,7 +285,7 @@ class ClusterSelectionPanel extends JPanel {
|
||||
|
||||
|
||||
@Override
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
public void stateChanged(EventObject e) {
|
||||
repaint();
|
||||
}
|
||||
|
||||
|
@ -420,7 +420,9 @@ public class Rocket extends RocketComponent {
|
||||
}
|
||||
|
||||
// Notify all listeners
|
||||
for ( EventListener l : listenerList ) {
|
||||
// Copy the list before iterating to prevent concurrent modification exceptions.
|
||||
EventListener[] list = listenerList.toArray( new EventListener[0] );
|
||||
for ( EventListener l : list ) {
|
||||
if ( l instanceof ComponentChangeListener ) {
|
||||
((ComponentChangeListener) l ).componentChanged(e);
|
||||
} else if ( l instanceof StateChangeListener ) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user