|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.debugger.jpda.ui.models; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Vector; import org.netbeans.api.debugger.DebuggerEngine; import org.netbeans.api.debugger.Session; import org.netbeans.api.debugger.jpda.JPDADebugger; import org.netbeans.spi.debugger.ContextProvider; import org.netbeans.spi.debugger.ui.Constants; import org.netbeans.spi.viewmodel.TableModel; import org.netbeans.spi.viewmodel.TreeModelListener; import org.netbeans.spi.viewmodel.UnknownTypeException; import org.openide.util.NbBundle; /** * * @author Jan Jancura */ public class SessionsTableModel implements TableModel, Constants, PropertyChangeListener { private static String loc(String key) { return NbBundle.getBundle (SessionsTableModel.class).getString (key); } private Vector listeners = new Vector (); public SessionsTableModel (ContextProvider contextProvider) { JPDADebugger debugger = (JPDADebugger) contextProvider. lookupFirst (null, JPDADebugger.class); debugger.addPropertyChangeListener (debugger.PROP_STATE, this); } public Object getValueAt (Object row, String columnID) throws UnknownTypeException { if (row instanceof Session) { if (columnID.equals (SESSION_STATE_COLUMN_ID)) return getSessionState ((Session) row); else if (columnID.equals (SESSION_LANGUAGE_COLUMN_ID)) return row; else if (columnID.equals (SESSION_HOST_NAME_COLUMN_ID)) return ((Session) row).getLocationName (); } throw new UnknownTypeException (row); } public boolean isReadOnly (Object row, String columnID) throws UnknownTypeException { if (row instanceof Session) { if (columnID.equals (SESSION_STATE_COLUMN_ID)) return true; else if (columnID.equals (SESSION_LANGUAGE_COLUMN_ID)) return false; else if (columnID.equals (SESSION_HOST_NAME_COLUMN_ID)) return true; } throw new UnknownTypeException (row); } public void setValueAt (Object row, String columnID, Object value) throws UnknownTypeException { if (row instanceof Session) { if (!columnID.equals (SESSION_LANGUAGE_COLUMN_ID)) throw new UnknownTypeException (row); } else throw new UnknownTypeException (row); } private static String getSessionState (Session s) { DebuggerEngine e = s.getCurrentEngine (); JPDADebugger d = (JPDADebugger) e.lookupFirst (null, JPDADebugger.class); switch (d.getState ()) { case JPDADebugger.STATE_DISCONNECTED: return loc ("MSG_Session_State_Disconnected"); case JPDADebugger.STATE_RUNNING: return loc ("MSG_Session_State_Running"); case JPDADebugger.STATE_STARTING: return loc ("MSG_Session_State_Starting"); case JPDADebugger.STATE_STOPPED: return loc ("MSG_Session_State_Stopped"); } return null; } /** * Registers given listener. * * @param l the listener to add */ public void addTreeModelListener (TreeModelListener l) { listeners.add (l); } /** * Unregisters given listener. * * @param l the listener to remove */ public void removeTreeModelListener (TreeModelListener l) { listeners.remove (l); } private void fireTreeChanged () { Vector v = (Vector) listeners.clone (); int i, k = v.size (); for (i = 0; i < k; i++) ((TreeModelListener) v.get (i)).treeChanged (); } private void fireTreeNodeChanged (Object parent) { Vector v = (Vector) listeners.clone (); int i, k = v.size (); for (i = 0; i < k; i++) ((TreeModelListener) v.get (i)).treeNodeChanged (parent); } private static final Integer SD = new Integer (JPDADebugger.STATE_DISCONNECTED); public void propertyChange (PropertyChangeEvent e) { fireTreeChanged (); if (e.getNewValue ().equals (SD)) ((JPDADebugger) e.getSource ()).removePropertyChangeListener ( JPDADebugger.PROP_STATE, this ); } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.