1 43 44 package org.jfree.experimental.chart.plot.dial; 45 46 import java.io.IOException ; 47 import java.io.ObjectInputStream ; 48 import java.util.Arrays ; 49 import java.util.EventListener ; 50 import java.util.List ; 51 52 import javax.swing.event.EventListenerList ; 53 54 58 public abstract class AbstractDialLayer implements DialLayer { 59 60 61 private boolean visible; 62 63 64 private transient EventListenerList listenerList; 65 66 69 protected AbstractDialLayer() { 70 this.visible = true; 71 this.listenerList = new EventListenerList (); 72 } 73 74 80 public boolean isVisible() { 81 return this.visible; 82 } 83 84 91 public void setVisible(boolean visible) { 92 this.visible = visible; 93 notifyListeners(new DialLayerChangeEvent(this)); 94 } 95 96 103 public void addChangeListener(DialLayerChangeListener listener) { 104 this.listenerList.add(DialLayerChangeListener.class, listener); 105 } 106 107 114 public void removeChangeListener(DialLayerChangeListener listener) { 115 this.listenerList.remove(DialLayerChangeListener.class, listener); 116 } 117 118 127 public boolean hasListener(EventListener listener) { 128 List list = Arrays.asList(this.listenerList.getListenerList()); 129 return list.contains(listener); 130 } 131 132 138 protected void notifyListeners(DialLayerChangeEvent event) { 139 Object [] listeners = this.listenerList.getListenerList(); 140 for (int i = listeners.length - 2; i >= 0; i -= 2) { 141 if (listeners[i] == DialLayerChangeListener.class) { 142 ((DialLayerChangeListener) listeners[i + 1]).dialLayerChanged( 143 event); 144 } 145 } 146 } 147 148 153 private void readObject(ObjectInputStream stream) 154 throws IOException , ClassNotFoundException { 155 stream.defaultReadObject(); 156 this.listenerList = new EventListenerList (); 157 } 158 159 } 160 | Popular Tags |