01: /*
02: * The contents of this file are subject to the terms of the Common Development
03: * and Distribution License (the License). You may not use this file except in
04: * compliance with the License.
05: *
06: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
07: * or http://www.netbeans.org/cddl.txt.
08: *
09: * When distributing Covered Code, include this CDDL Header Notice in each file
10: * and include the License file at http://www.netbeans.org/cddl.txt.
11: * If applicable, add the following below the CDDL Header, with the fields
12: * enclosed by brackets [] replaced by your own identifying information:
13: * "Portions Copyrighted [year] [name of copyright owner]"
14: *
15: * The Original Software is NetBeans. The Initial Developer of the Original
16: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17: * Microsystems, Inc. All Rights Reserved.
18: */
19:
20: package org.netbeans.modules.soa.ui.tnv.impl;
21:
22: import java.util.ArrayList;
23: import java.util.List;
24: import javax.swing.JScrollPane;
25: import javax.swing.event.ChangeEvent;
26: import javax.swing.event.ChangeListener;
27: import org.netbeans.modules.soa.ui.tnv.api.ObservableChangeTracker;
28: import org.netbeans.modules.soa.ui.tnv.api.ObservableChangeTracker.UpdateListener;
29:
30: /**
31: *
32: * @author nk160297
33: */
34: public class ComponentChangeTracker implements ObservableChangeTracker {
35:
36: private List<UpdateListener> listeners = new ArrayList<UpdateListener>();
37:
38: public ComponentChangeTracker(JScrollPane scrollPain) {
39: scrollPain.getViewport().addChangeListener(
40: new ChangeListener() {
41: public void stateChanged(ChangeEvent e) {
42: fireUpdateMessage();
43: }
44: });
45:
46: // myComp.addComponentListener(new ComponentListener() {
47: // public void componentHidden(ComponentEvent e) {
48: // fireUpdateMessage();
49: // }
50: // public void componentMoved(ComponentEvent e) {
51: // fireUpdateMessage();
52: // }
53: // public void componentResized(ComponentEvent e) {
54: // fireUpdateMessage();
55: // }
56: // public void componentShown(ComponentEvent e) {
57: // fireUpdateMessage();
58: // }
59: // });
60: }
61:
62: public void dispose() {
63: listeners.clear();
64: }
65:
66: public void addUpdateListener(UpdateListener listener) {
67: listeners.add(listener);
68: }
69:
70: public void removeUpdateListener(UpdateListener listener) {
71: listeners.remove(listener);
72: }
73:
74: private void fireUpdateMessage() {
75: for (UpdateListener listener : listeners) {
76: listener.observableChanged();
77: }
78: }
79:
80: }
|