1 7 34 35 package com.sun.tools.example.debug.gui; 36 37 import java.util.*; 38 39 import javax.swing.AbstractListModel ; 40 41 public class MonitorListModel extends AbstractListModel { 42 43 private final List monitors = new ArrayList(); 44 45 MonitorListModel(Environment env) { 46 47 MonitorListListener listener = new MonitorListListener(); 49 env.getContextManager().addContextListener(listener); 50 51 } 53 54 public Object getElementAt(int index) { 55 return monitors.get(index); 56 } 57 58 public int getSize() { 59 return monitors.size(); 60 } 61 62 public void add(String expr) { 63 monitors.add(expr); 64 int newIndex = monitors.size()-1; fireIntervalAdded(this, newIndex, newIndex); 66 } 67 68 public void remove(String expr) { 69 int index = monitors.indexOf(expr); 70 remove(index); 71 } 72 73 public void remove(int index) { 74 monitors.remove(index); 75 fireIntervalRemoved(this, index, index); 76 } 77 78 public List monitors() { 79 return Collections.unmodifiableList(monitors); 80 } 81 82 public Iterator iterator() { 83 return monitors().iterator(); 84 } 85 86 private void invalidate() { 87 fireContentsChanged(this, 0, monitors.size()-1); 88 } 89 90 private class MonitorListListener implements ContextListener { 91 92 public void currentFrameChanged(CurrentFrameChangedEvent e) { 93 invalidate(); 94 } 95 } 96 } 97 | Popular Tags |