You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(73) |
Sep
(92) |
Oct
(9) |
Nov
(80) |
Dec
(60) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(92) |
Feb
(52) |
Mar
(71) |
Apr
(64) |
May
(53) |
Jun
(10) |
Jul
(111) |
Aug
(93) |
Sep
(134) |
Oct
|
Nov
|
Dec
|
Update of /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime In directory usw-pr-cvs1:/tmp/cvs-serv12814 Modified Files: AllocThreadMethodR.java AllocThreadTraceR.java AllocTraceR.java AllocTypeMethodR.java AllocTypeThreadMethodR.java AllocTypeThreadR.java AllocTypeThreadTraceR.java AllocTypeTraceR.java ClassR.java CPUThreadMethodR.java CPUThreadTraceR.java CPUTraceR.java DataR.java ImageR.java MethodR.java MonThreadMethodR.java MonThreadTraceR.java MonTraceR.java MultiRootDataR.java ThreadGroupR.java ThreadR.java TypeR.java Log Message: created auto-refreshing task where children listeners are registered Index: AllocThreadMethodR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/AllocThreadMethodR.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** AllocThreadMethodR.java 24 Jul 2002 22:29:03 -0000 1.12 --- AllocThreadMethodR.java 20 Aug 2002 18:59:18 -0000 1.13 *************** *** 79,83 **** protected EventListenerList listenerList=new EventListenerList(); protected transient AllocStatEvent allocEvent; - private Map listenersMap=new HashMap(1); /** Constructs multi-rooted object --- 79,82 ---- *************** *** 133,136 **** --- 132,171 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.ALLOC_TYPE_THREAD_METHOD: + refreshAllocTypeThreadMethods(); + return; + case Constants.ALLOC_THREAD_TRACE: + refreshAllocThreadTraces(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + switch (type) { + case Constants.ALLOC_TYPE_THREAD_METHOD: + return getAllocTypeThreadMethods(); + case Constants.ALLOC_THREAD_TRACE: + return getAllocThreadTraces(); + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {Constants.ALLOC_TYPE_THREAD_METHOD, + Constants.ALLOC_THREAD_TRACE}; + } + // ---------- return parents, roots /** Returns TypeRef root of this object. *************** *** 220,233 **** void addAllocTypeThreadMethod(AllocTypeThreadMethodRef o) { allocTypeThreadMethods.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_METHOD, new Object[]{o}, new int[]{ ! allocTypeThreadMethods.size()-1}), listenersMap); } void addAllocThreadTrace(AllocThreadTraceRef o) { allocThreadTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_THREAD_TRACE, new Object[]{o}, new int[]{ ! allocThreadTraces.size()-1}), listenersMap); } --- 255,268 ---- void addAllocTypeThreadMethod(AllocTypeThreadMethodRef o) { allocTypeThreadMethods.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_METHOD, new Object[]{o}, new int[]{ ! allocTypeThreadMethods.size()-1})); } void addAllocThreadTrace(AllocThreadTraceRef o) { allocThreadTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_THREAD_TRACE, new Object[]{o}, new int[]{ ! allocThreadTraces.size()-1})); } *************** *** 352,358 **** */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.removeChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_THREAD_METHOD, ! Constants.ALLOC_THREAD_TRACE}); } --- 387,391 ---- */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.globalRemoveChildrenListener(getId(), type, l, getChildTypes()); } *************** *** 367,373 **** */ public void addChildrenListener(int type, ChildrenListener l) { ! image.addChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_THREAD_METHOD, ! Constants.ALLOC_THREAD_TRACE}); } --- 400,404 ---- */ public void addChildrenListener(int type, ChildrenListener l) { ! image.globalAddChildrenListener(getId(), type, l, getChildTypes()); } Index: AllocThreadTraceR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/AllocThreadTraceR.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** AllocThreadTraceR.java 24 Jul 2002 22:29:03 -0000 1.10 --- AllocThreadTraceR.java 20 Aug 2002 18:59:18 -0000 1.11 *************** *** 77,81 **** protected EventListenerList listenerList = new EventListenerList(); protected transient AllocStatEvent allocEvent; - private Map listenersMap=new HashMap(1); /** Constructs multi-rooted object --- 77,80 ---- *************** *** 120,123 **** --- 119,152 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.ALLOC_TYPE_THREAD_TRACE: + refreshAllocTypeThreadTraces(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + switch (type) { + case Constants.ALLOC_TYPE_THREAD_TRACE: + return getAllocTypeThreadTraces(); + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {Constants.ALLOC_TYPE_THREAD_TRACE}; + } + // ---------- return parents, roots *************** *** 211,217 **** void addAllocTypeThreadTrace(AllocTypeThreadTraceRef o) { allocTypeThreadTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_TRACE, new Object[]{o}, new int[]{ ! allocTypeThreadTraces.size()-1}), listenersMap); } --- 240,246 ---- void addAllocTypeThreadTrace(AllocTypeThreadTraceRef o) { allocTypeThreadTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_TRACE, new Object[]{o}, new int[]{ ! allocTypeThreadTraces.size()-1})); } *************** *** 350,355 **** */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.removeChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_THREAD_TRACE}); } --- 379,383 ---- */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.globalRemoveChildrenListener(getId(), type, l, getChildTypes()); } *************** *** 364,369 **** */ public void addChildrenListener(int type, ChildrenListener l) { ! image.addChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_THREAD_TRACE}); } --- 392,396 ---- */ public void addChildrenListener(int type, ChildrenListener l) { ! image.globalAddChildrenListener(getId(), type, l, getChildTypes()); } Index: AllocTraceR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/AllocTraceR.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** AllocTraceR.java 24 Jul 2002 22:29:03 -0000 1.11 --- AllocTraceR.java 20 Aug 2002 18:59:18 -0000 1.12 *************** *** 81,85 **** protected EventListenerList listenerList = new EventListenerList(); protected transient AllocStatEvent allocEvent; - private Map listenersMap=new HashMap(1); /** Constructs new object with info. --- 81,84 ---- *************** *** 140,143 **** --- 139,178 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.ALLOC_TYPE_TRACE: + refreshAllocTypeTraces(); + return; + case Constants.ALLOC_THREAD_TRACE: + refreshAllocThreadTraces(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + switch (type) { + case Constants.ALLOC_TYPE_TRACE: + return getAllocTypeTraces(); + case Constants.ALLOC_THREAD_TRACE: + return getAllocThreadTraces(); + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {Constants.ALLOC_TYPE_TRACE, + Constants.ALLOC_THREAD_TRACE}; + } + // image getter method *************** *** 189,202 **** void addAllocTypeTrace(AllocTypeTraceRef o) { allocTypeTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_TRACE, new Object[]{o}, new int[]{ ! allocTypeTraces.size()-1}), listenersMap); } void addAllocThreadTrace(AllocThreadTraceRef o) { allocThreadTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_THREAD_TRACE, new Object[]{o}, new int[]{ ! allocThreadTraces.size()-1}), listenersMap); } --- 224,237 ---- void addAllocTypeTrace(AllocTypeTraceRef o) { allocTypeTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_TRACE, new Object[]{o}, new int[]{ ! allocTypeTraces.size()-1})); } void addAllocThreadTrace(AllocThreadTraceRef o) { allocThreadTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_THREAD_TRACE, new Object[]{o}, new int[]{ ! allocThreadTraces.size()-1})); } *************** *** 353,359 **** */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.removeChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_TRACE, ! Constants.ALLOC_THREAD_TRACE}); } --- 388,392 ---- */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.globalRemoveChildrenListener(getId(), type, l, getChildTypes()); } *************** *** 368,374 **** */ public void addChildrenListener(int type, ChildrenListener l) { ! image.addChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_TRACE, ! Constants.ALLOC_THREAD_TRACE}); } --- 401,405 ---- */ public void addChildrenListener(int type, ChildrenListener l) { ! image.globalAddChildrenListener(getId(), type, l, getChildTypes()); } Index: AllocTypeMethodR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/AllocTypeMethodR.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** AllocTypeMethodR.java 24 Jul 2002 22:29:03 -0000 1.11 --- AllocTypeMethodR.java 20 Aug 2002 18:59:18 -0000 1.12 *************** *** 77,81 **** protected EventListenerList listenerList = new EventListenerList(); protected transient AllocStatEvent allocEvent; - private Map listenersMap=new HashMap(1); /** Constructs multi-rooted object --- 77,80 ---- *************** *** 176,179 **** --- 175,214 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.ALLOC_TYPE_TRACE: + refreshAllocTypeTraces(); + return; + case Constants.ALLOC_TYPE_THREAD_METHOD: + refreshAllocTypeThreadMethods(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + switch (type) { + case Constants.ALLOC_TYPE_TRACE: + return getAllocTypeTraces(); + case Constants.ALLOC_TYPE_THREAD_METHOD: + return getAllocTypeThreadMethods(); + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {Constants.ALLOC_TYPE_TRACE, + Constants.ALLOC_TYPE_THREAD_METHOD}; + } + // ---------- profiler statistic *************** *** 218,231 **** void addAllocTypeTrace(AllocTypeTraceRef o) { allocTypeTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_TRACE, new Object[]{o}, new int[]{ ! allocTypeTraces.size()-1}), listenersMap); } void addAllocTypeThreadMethod(AllocTypeThreadMethodRef o) { allocTypeThreadMethods.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_METHOD, new Object[]{o}, new int[]{ ! allocTypeThreadMethods.size()-1}), listenersMap); } --- 253,266 ---- void addAllocTypeTrace(AllocTypeTraceRef o) { allocTypeTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_TRACE, new Object[]{o}, new int[]{ ! allocTypeTraces.size()-1})); } void addAllocTypeThreadMethod(AllocTypeThreadMethodRef o) { allocTypeThreadMethods.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_METHOD, new Object[]{o}, new int[]{ ! allocTypeThreadMethods.size()-1})); } *************** *** 324,330 **** */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.removeChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_TRACE, ! Constants.ALLOC_TYPE_THREAD_METHOD}); } --- 359,363 ---- */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.globalRemoveChildrenListener(getId(), type, l, getChildTypes()); } *************** *** 339,345 **** */ public void addChildrenListener(int type, ChildrenListener l) { ! image.addChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_TRACE, ! Constants.ALLOC_TYPE_THREAD_METHOD}); } --- 372,376 ---- */ public void addChildrenListener(int type, ChildrenListener l) { ! image.globalAddChildrenListener(getId(), type, l, getChildTypes()); } Index: AllocTypeThreadMethodR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/AllocTypeThreadMethodR.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** AllocTypeThreadMethodR.java 24 Jul 2002 22:29:03 -0000 1.11 --- AllocTypeThreadMethodR.java 20 Aug 2002 18:59:18 -0000 1.12 *************** *** 80,84 **** protected EventListenerList listenerList = new EventListenerList(); protected transient AllocStatEvent allocEvent; - private Map listenersMap=new HashMap(1); /** Constructs multi-rooted object --- 80,83 ---- *************** *** 123,126 **** --- 122,155 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.ALLOC_TYPE_THREAD_TRACE: + refreshAllocTypeThreadTraces(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + switch (type) { + case Constants.ALLOC_TYPE_THREAD_TRACE: + return getAllocTypeThreadTraces(); + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {Constants.ALLOC_TYPE_THREAD_TRACE}; + } + // ---------- return parents *************** *** 227,233 **** void addAllocTypeThreadTrace(AllocTypeThreadTraceRef o) { allocTypeThreadTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_TRACE, new Object[]{o}, new int[]{ ! allocTypeThreadTraces.size()-1}), listenersMap); } --- 256,262 ---- void addAllocTypeThreadTrace(AllocTypeThreadTraceRef o) { allocTypeThreadTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_TRACE, new Object[]{o}, new int[]{ ! allocTypeThreadTraces.size()-1})); } *************** *** 371,376 **** */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.removeChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_THREAD_TRACE}); } --- 400,404 ---- */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.globalRemoveChildrenListener(getId(), type, l, getChildTypes()); } *************** *** 385,390 **** */ public void addChildrenListener(int type, ChildrenListener l) { ! image.addChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_THREAD_TRACE}); } --- 413,417 ---- */ public void addChildrenListener(int type, ChildrenListener l) { ! image.globalAddChildrenListener(getId(), type, l, getChildTypes()); } Index: AllocTypeThreadR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/AllocTypeThreadR.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** AllocTypeThreadR.java 24 Jul 2002 22:29:03 -0000 1.12 --- AllocTypeThreadR.java 20 Aug 2002 18:59:19 -0000 1.13 *************** *** 77,81 **** protected EventListenerList listenerList = new EventListenerList(); protected transient AllocStatEvent allocEvent; - private Map listenersMap=new HashMap(1); /** Constructs multi-rooted object --- 77,80 ---- *************** *** 175,178 **** --- 174,213 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.ALLOC_TYPE_THREAD_METHOD: + refreshAllocTypeThreadMethods(); + return; + case Constants.ALLOC_TYPE_THREAD_TRACE: + refreshAllocTypeThreadTraces(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + switch (type) { + case Constants.ALLOC_TYPE_THREAD_METHOD: + return getAllocTypeThreadMethods(); + case Constants.ALLOC_TYPE_THREAD_TRACE: + return getAllocTypeThreadTraces(); + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {Constants.ALLOC_TYPE_THREAD_METHOD, + Constants.ALLOC_TYPE_THREAD_TRACE}; + } + // ---------- profiler statistic *************** *** 217,230 **** void addAllocTypeThreadMethod (AllocTypeThreadMethodRef o) { allocTypeThreadMethods.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_METHOD, new Object[]{o}, new int[]{ ! allocTypeThreadMethods.size()-1}), listenersMap); } void addAllocTypeThreadTrace(AllocTypeThreadTraceRef o) { allocTypeThreadTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_TRACE, new Object[]{o}, new int[]{ ! allocTypeThreadTraces.size()-1}), listenersMap); } --- 252,265 ---- void addAllocTypeThreadMethod (AllocTypeThreadMethodRef o) { allocTypeThreadMethods.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_METHOD, new Object[]{o}, new int[]{ ! allocTypeThreadMethods.size()-1})); } void addAllocTypeThreadTrace(AllocTypeThreadTraceRef o) { allocTypeThreadTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_TRACE, new Object[]{o}, new int[]{ ! allocTypeThreadTraces.size()-1})); } *************** *** 331,337 **** */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.removeChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_THREAD_METHOD, ! Constants.ALLOC_TYPE_THREAD_TRACE}); } --- 366,370 ---- */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.globalRemoveChildrenListener(getId(), type, l, getChildTypes()); } *************** *** 346,352 **** */ public void addChildrenListener(int type, ChildrenListener l) { ! image.addChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_THREAD_METHOD, ! Constants.ALLOC_TYPE_THREAD_TRACE}); } --- 379,383 ---- */ public void addChildrenListener(int type, ChildrenListener l) { ! image.globalAddChildrenListener(getId(), type, l, getChildTypes()); } Index: AllocTypeThreadTraceR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/AllocTypeThreadTraceR.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** AllocTypeThreadTraceR.java 24 Jul 2002 22:29:03 -0000 1.9 --- AllocTypeThreadTraceR.java 20 Aug 2002 18:59:19 -0000 1.10 *************** *** 105,108 **** --- 105,129 ---- // ---------- return child Lists + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {}; + } + // ---------- return parents Index: AllocTypeTraceR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/AllocTypeTraceR.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** AllocTypeTraceR.java 24 Jul 2002 22:29:03 -0000 1.11 --- AllocTypeTraceR.java 20 Aug 2002 18:59:19 -0000 1.12 *************** *** 76,80 **** protected EventListenerList listenerList = new EventListenerList(); protected transient AllocStatEvent allocEvent; - private Map listenersMap=new HashMap(1); /** Constructs multi-rooted object --- 76,79 ---- *************** *** 119,122 **** --- 118,151 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.ALLOC_TYPE_THREAD_TRACE: + refreshAllocTypeThreadTraces(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + switch (type) { + case Constants.ALLOC_TYPE_THREAD_TRACE: + return getAllocTypeThreadTraces(); + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {Constants.ALLOC_TYPE_THREAD_TRACE}; + } + // ---------- return parents, roots *************** *** 210,216 **** void addAllocTypeThreadTrace(AllocTypeThreadTraceRef o) { allocTypeThreadTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_TRACE, new Object[]{o}, new int[]{ ! allocTypeThreadTraces.size()-1}), listenersMap); } --- 239,245 ---- void addAllocTypeThreadTrace(AllocTypeThreadTraceRef o) { allocTypeThreadTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_THREAD_TRACE, new Object[]{o}, new int[]{ ! allocTypeThreadTraces.size()-1})); } *************** *** 330,335 **** */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.removeChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_THREAD_TRACE}); } --- 359,363 ---- */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.globalRemoveChildrenListener(getId(), type, l, getChildTypes()); } *************** *** 344,349 **** */ public void addChildrenListener(int type, ChildrenListener l) { ! image.addChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.ALLOC_TYPE_THREAD_TRACE}); } --- 372,376 ---- */ public void addChildrenListener(int type, ChildrenListener l) { ! image.globalAddChildrenListener(getId(), type, l, getChildTypes()); } Index: ClassR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/ClassR.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** ClassR.java 24 Jul 2002 22:29:03 -0000 1.8 --- ClassR.java 20 Aug 2002 18:59:19 -0000 1.9 *************** *** 117,124 **** public void refreshMethods() { - List list=new ArrayList(); image.extractChildRoot(this.objId, IProf.CLASS_METHODS, image. ! methodFactory, list); ! image.addMethods(list); } --- 117,122 ---- public void refreshMethods() { image.extractChildRoot(this.objId, IProf.CLASS_METHODS, image. ! methodFactory, null, Constants.METHOD); } *************** *** 129,132 **** --- 127,160 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.METHOD: + refreshMethods(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + switch (type) { + case Constants.METHOD: + return getMethods(); + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {Constants.METHOD}; + } + // image getter method *************** *** 188,191 **** --- 216,222 ---- void addMethod(MethodRef o) { methods.add(o); + // methods may be added unexpectedly for "unknown" classes + image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. + METHOD, new Object[]{o}, new int[]{methods.size()-1})); } *************** *** 291,294 **** --- 322,350 ---- public String toString() { return getName(); + } + + // ---------- listeners + + /** + * Removes an <code>ChildrenListener</code> from this object. + * @param type Type of children to listen events for. Constants are defined + * in net.sourceforge.javaprofiler.jpi.Constants. + * @param l the listener to be removed + */ + public void removeChildrenListener(int type, ChildrenListener l) { + image.globalRemoveChildrenListener(getId(), type, l, getChildTypes()); + } + + /** + * Adds an <code>ChildrenListener</code> to this object. + * <strong>Warning:</strong> Events are not dispatched in the swing event- + * dispatching thread, rather they are dispatched in the thread which + * caused new data to be loaded. + * @param type Type of children to listen events for. Constants are defined + * in net.sourceforge.javaprofiler.jpi.Constants. + * @param l the listener to be added + */ + public void addChildrenListener(int type, ChildrenListener l) { + image.globalAddChildrenListener(getId(), type, l, getChildTypes()); } } Index: CPUThreadMethodR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/CPUThreadMethodR.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** CPUThreadMethodR.java 24 Jul 2002 22:29:03 -0000 1.9 --- CPUThreadMethodR.java 20 Aug 2002 18:59:19 -0000 1.10 *************** *** 74,78 **** protected EventListenerList listenerList = new EventListenerList(); protected transient CPUStatEvent CPUEvent; - private Map listenersMap=new HashMap(1); /** Constructs multi-rooted object --- 74,77 ---- *************** *** 117,120 **** --- 116,149 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.CPU_THREAD_TRACE: + refreshCPUThreadTraces(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + switch (type) { + case Constants.CPU_THREAD_TRACE: + return getCPUThreadTraces(); + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {Constants.CPU_THREAD_TRACE}; + } + // ---------- return parents, roots *************** *** 193,199 **** void addCPUThreadTrace(CPUThreadTraceRef o) { cpuThreadTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. CPU_THREAD_TRACE, new Object[]{o}, new int[]{ ! cpuThreadTraces.size()-1}), listenersMap); } --- 222,228 ---- void addCPUThreadTrace(CPUThreadTraceRef o) { cpuThreadTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. CPU_THREAD_TRACE, new Object[]{o}, new int[]{ ! cpuThreadTraces.size()-1})); } *************** *** 309,314 **** */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.removeChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.CPU_THREAD_TRACE}); } --- 338,342 ---- */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.globalRemoveChildrenListener(getId(), type, l, getChildTypes()); } *************** *** 323,328 **** */ public void addChildrenListener(int type, ChildrenListener l) { ! image.addChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.CPU_THREAD_TRACE}); } --- 351,355 ---- */ public void addChildrenListener(int type, ChildrenListener l) { ! image.globalAddChildrenListener(getId(), type, l, getChildTypes()); } Index: CPUThreadTraceR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/CPUThreadTraceR.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** CPUThreadTraceR.java 24 Jul 2002 22:29:03 -0000 1.8 --- CPUThreadTraceR.java 20 Aug 2002 18:59:19 -0000 1.9 *************** *** 99,102 **** --- 99,123 ---- // ---------- return child Lists + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {}; + } + // ---------- return parents Index: CPUTraceR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/CPUTraceR.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** CPUTraceR.java 24 Jul 2002 22:29:03 -0000 1.10 --- CPUTraceR.java 20 Aug 2002 18:59:19 -0000 1.11 *************** *** 76,80 **** protected EventListenerList listenerList = new EventListenerList(); protected transient CPUStatEvent CPUEvent; - private Map listenersMap=new HashMap(1); /** Constructs new object with info. --- 76,79 ---- *************** *** 124,127 **** --- 123,156 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.CPU_THREAD_TRACE: + refreshCPUThreadTraces(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + switch (type) { + case Constants.CPU_THREAD_TRACE: + return getCPUThreadTraces(); + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {Constants.CPU_THREAD_TRACE}; + } + // image getter method *************** *** 194,200 **** void addCPUThreadTrace(CPUThreadTraceRef o) { cpuThreadTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. CPU_THREAD_TRACE, new Object[]{o}, new int[]{ ! cpuThreadTraces.size()-1}), listenersMap); } --- 223,229 ---- void addCPUThreadTrace(CPUThreadTraceRef o) { cpuThreadTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. CPU_THREAD_TRACE, new Object[]{o}, new int[]{ ! cpuThreadTraces.size()-1})); } *************** *** 308,313 **** */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.removeChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.CPU_THREAD_TRACE}); } --- 337,341 ---- */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.globalRemoveChildrenListener(getId(), type, l, getChildTypes()); } *************** *** 322,327 **** */ public void addChildrenListener(int type, ChildrenListener l) { ! image.addChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.CPU_THREAD_TRACE}); } --- 350,354 ---- */ public void addChildrenListener(int type, ChildrenListener l) { ! image.globalAddChildrenListener(getId(), type, l, getChildTypes()); } Index: DataR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/DataR.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** DataR.java 24 Jul 2002 22:29:03 -0000 1.6 --- DataR.java 20 Aug 2002 18:59:19 -0000 1.7 *************** *** 69,71 **** --- 69,77 ---- */ public abstract DataR getLocationR(); + + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public abstract void refresh(int type); } Index: ImageR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/ImageR.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -r1.13 -r1.14 *** ImageR.java 24 Jul 2002 22:29:03 -0000 1.13 --- ImageR.java 20 Aug 2002 18:59:19 -0000 1.14 *************** *** 128,131 **** --- 128,143 ---- protected EventListenerList threadgroupListeners = new EventListenerList(); + /** Maps from data object and child type to <code>ChildrenListener</code> + * list. + */ + private Map childListeners=new HashMap(1); + /** Maps from image child type to <code>ChildrenListener</code> list. */ + private Map imageChildListeners=new HashMap(1); + [...1270 lines suppressed...] ! int type=(int) (key.longValue() >> 32); ! ! refresh(type); ! } ! } ! }; ! } ! return task; } ! ! /** Returns a <code>Timer</code> that can be used for refreshing realtime ! * image. */ ! public Timer getTimer() { ! if (timer==null) { ! timer=new Timer(true); ! } ! return timer; } } Index: MethodR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/MethodR.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** MethodR.java 24 Jul 2002 22:29:03 -0000 1.12 --- MethodR.java 20 Aug 2002 18:59:19 -0000 1.13 *************** *** 104,108 **** protected transient CPUStatEvent CPUEvent; protected transient MonStatEvent monEvent; - private Map listenersMap=new HashMap(1); /** Constructs new object with info. --- 104,107 ---- *************** *** 157,164 **** public void refreshCPUTraces() { - List list=new ArrayList(); image.extractChildRoot(this.objId, IProf.CPU_METHOD_TRACES, image. ! cpuTraceFactory, list); ! image.addCPUTraces(list); } --- 156,161 ---- public void refreshCPUTraces() { image.extractChildRoot(this.objId, IProf.CPU_METHOD_TRACES, image. ! cpuTraceFactory, null, Constants.CPU_TRACE); } *************** *** 170,177 **** public void refreshAllocTraces() { - List list=new ArrayList(); image.extractChildRoot(this.objId, IProf.ALLOC_METHOD_TRACES, image. ! allocTraceFactory, list); ! image.addAllocTraces(list); } --- 167,172 ---- public void refreshAllocTraces() { image.extractChildRoot(this.objId, IProf.ALLOC_METHOD_TRACES, image. ! allocTraceFactory, null, Constants.ALLOC_TRACE); } *************** *** 183,190 **** public void refreshMonTraces() { - List list=new ArrayList(); image.extractChildRoot(this.objId, IProf.MON_METHOD_TRACES, image. ! monTraceFactory, list); ! image.addMonTraces(list); } --- 178,183 ---- public void refreshMonTraces() { image.extractChildRoot(this.objId, IProf.MON_METHOD_TRACES, image. ! monTraceFactory, null, Constants.MON_TRACE); } *************** *** 239,242 **** --- 232,301 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.CPU_TRACE: + refreshCPUTraces(); + return; + case Constants.ALLOC_TRACE: + refreshAllocTraces(); + return; + case Constants.MON_TRACE: + refreshMonTraces(); + return; + case Constants.ALLOC_TYPE_METHOD: + refreshAllocTypeMethods(); + return; + case Constants.ALLOC_THREAD_METHOD: + refreshAllocThreadMethods(); + return; + case Constants.CPU_THREAD_METHOD: + refreshCPUThreadMethods(); + return; + case Constants.MON_THREAD_METHOD: + refreshMonThreadMethods(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + switch (type) { + case Constants.CPU_TRACE: + return getCPUTraces(); + case Constants.ALLOC_TRACE: + return getAllocTraces(); + case Constants.MON_TRACE: + return getMonTraces(); + case Constants.ALLOC_TYPE_METHOD: + return getAllocTypeMethods(); + case Constants.ALLOC_THREAD_METHOD: + return getAllocThreadMethods(); + case Constants.CPU_THREAD_METHOD: + return getCPUThreadMethods(); + case Constants.MON_THREAD_METHOD: + return getMonThreadMethods(); + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {Constants.CPU_TRACE, + Constants.ALLOC_TRACE, + Constants.MON_TRACE, + Constants.ALLOC_TYPE_METHOD, + Constants.ALLOC_THREAD_METHOD, + Constants.CPU_THREAD_METHOD, + Constants.MON_THREAD_METHOD}; + } + // image getter method *************** *** 296,302 **** */ public void refresh() { ! refresh(IProf.ALLOC_DATA); ! refresh(IProf.CPU_DATA); ! refresh(IProf.MON_DATA); } --- 355,361 ---- */ public void refresh() { ! refreshStatistics(IProf.ALLOC_DATA); ! refreshStatistics(IProf.CPU_DATA); ! refreshStatistics(IProf.MON_DATA); } *************** *** 335,383 **** void addCPUTrace(CPUTraceRef o) { cpuTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. CPU_TRACE, new Object[]{o}, new int[]{ ! cpuTraces.size()-1}), listenersMap); } void addAllocTrace(AllocTraceRef o) { allocTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TRACE, new Object[]{o}, new int[]{ ! allocTraces.size()-1}), listenersMap); } void addMonTrace(MonTraceRef o) { monTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. MON_TRACE, new Object[]{o}, new int[]{ ! monTraces.size()-1}), listenersMap); } void addAllocTypeMethod(AllocTypeMethodRef o) { allocTypeMethods.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_METHOD, new Object[]{o}, new int[]{ ! allocTypeMethods.size()-1}), listenersMap); } void addAllocThreadMethod(AllocThreadMethodRef o) { allocThreadMethods.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_THREAD_METHOD, new Object[]{o}, new int[]{ ! allocThreadMethods.size()-1}), listenersMap); } void addCPUThreadMethod(CPUThreadMethodRef o) { cpuThreadMethods.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. CPU_THREAD_METHOD, new Object[]{o}, new int[]{ ! cpuThreadMethods.size()-1}), listenersMap); } void addMonThreadMethod(MonThreadMethodRef o) { monThreadMethods.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. MON_THREAD_METHOD, new Object[]{o}, new int[]{ ! monThreadMethods.size()-1}), listenersMap); } --- 394,442 ---- void addCPUTrace(CPUTraceRef o) { cpuTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. CPU_TRACE, new Object[]{o}, new int[]{ ! cpuTraces.size()-1})); } void addAllocTrace(AllocTraceRef o) { allocTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TRACE, new Object[]{o}, new int[]{ ! allocTraces.size()-1})); } void addMonTrace(MonTraceRef o) { monTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. MON_TRACE, new Object[]{o}, new int[]{ ! monTraces.size()-1})); } void addAllocTypeMethod(AllocTypeMethodRef o) { allocTypeMethods.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_TYPE_METHOD, new Object[]{o}, new int[]{ ! allocTypeMethods.size()-1})); } void addAllocThreadMethod(AllocThreadMethodRef o) { allocThreadMethods.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. ALLOC_THREAD_METHOD, new Object[]{o}, new int[]{ ! allocThreadMethods.size()-1})); } void addCPUThreadMethod(CPUThreadMethodRef o) { cpuThreadMethods.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. CPU_THREAD_METHOD, new Object[]{o}, new int[]{ ! cpuThreadMethods.size()-1})); } void addMonThreadMethod(MonThreadMethodRef o) { monThreadMethods.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. MON_THREAD_METHOD, new Object[]{o}, new int[]{ ! monThreadMethods.size()-1})); } *************** *** 425,429 **** * IProf.MON_DATA. */ ! private void refresh(int what) { IProf.sData data; try { --- 484,488 ---- * IProf.MON_DATA. */ ! private void refreshStatistics(int what) { IProf.sData data; try { *************** *** 452,456 **** private void conditionalRefresh(int what) { if (image.getAlwaysRefresh()) ! refresh(what); } --- 511,515 ---- private void conditionalRefresh(int what) { if (image.getAlwaysRefresh()) ! refreshStatistics(what); } *************** *** 546,557 **** */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.removeChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.CPU_TRACE, ! Constants.ALLOC_TRACE, ! Constants.MON_TRACE, ! Constants.ALLOC_TYPE_METHOD, ! Constants.ALLOC_THREAD_METHOD, ! Constants.CPU_THREAD_METHOD, ! Constants.MON_THREAD_METHOD}); } --- 605,609 ---- */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.globalRemoveChildrenListener(getId(), type, l, getChildTypes()); } *************** *** 566,577 **** */ public void addChildrenListener(int type, ChildrenListener l) { ! image.addChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.CPU_TRACE, ! Constants.ALLOC_TRACE, ! Constants.MON_TRACE, ! Constants.ALLOC_TYPE_METHOD, ! Constants.ALLOC_THREAD_METHOD, ! Constants.CPU_THREAD_METHOD, ! Constants.MON_THREAD_METHOD}); } --- 618,622 ---- */ public void addChildrenListener(int type, ChildrenListener l) { ! image.globalAddChildrenListener(getId(), type, l, getChildTypes()); } Index: MonThreadMethodR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/MonThreadMethodR.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** MonThreadMethodR.java 24 Jul 2002 22:29:03 -0000 1.9 --- MonThreadMethodR.java 20 Aug 2002 18:59:19 -0000 1.10 *************** *** 74,78 **** protected EventListenerList listenerList = new EventListenerList(); protected transient MonStatEvent monEvent; - private Map listenersMap=new HashMap(1); /** Constructs multi-rooted object --- 74,77 ---- *************** *** 117,120 **** --- 116,149 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.MON_THREAD_TRACE: + refreshMonThreadTraces(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + switch (type) { + case Constants.MON_THREAD_TRACE: + return getMonThreadTraces(); + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {Constants.MON_THREAD_TRACE}; + } + // ---------- return parents, roots /** Returns ThreadRef root of this object. *************** *** 193,199 **** void addMonThreadTrace(MonThreadTraceRef o) { monThreadTraces.add(o); ! image.fireChildrenAdded(new ChildrenEvent(this, Constants. MON_THREAD_TRACE, new Object[]{o}, new int[]{ ! monThreadTraces.size()-1}), listenersMap); } --- 222,228 ---- void addMonThreadTrace(MonThreadTraceRef o) { monThreadTraces.add(o); ! image.globalFireChildrenAdded(new ChildrenEvent(this, Constants. MON_THREAD_TRACE, new Object[]{o}, new int[]{ ! monThreadTraces.size()-1})); } *************** *** 309,314 **** */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.removeChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.MON_THREAD_TRACE}); } --- 338,342 ---- */ public void removeChildrenListener(int type, ChildrenListener l) { ! image.globalRemoveChildrenListener(getId(), type, l, getChildTypes()); } *************** *** 323,328 **** */ public void addChildrenListener(int type, ChildrenListener l) { ! image.addChildrenListenerChecked(type, l, listenersMap, ! new int[] {Constants.MON_THREAD_TRACE}); } --- 351,355 ---- */ public void addChildrenListener(int type, ChildrenListener l) { ! image.globalAddChildrenListener(getId(), type, l, getChildTypes()); } Index: MonThreadTraceR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/MonThreadTraceR.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** MonThreadTraceR.java 24 Jul 2002 22:29:03 -0000 1.8 --- MonThreadTraceR.java 20 Aug 2002 18:59:19 -0000 1.9 *************** *** 99,102 **** --- 99,123 ---- // ---------- return child Lists + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public List getChildren(int type) { + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns child types which this object can have. */ + public int[] getChildTypes() { + return new int[] {}; + } + // ---------- return parents, roots Index: MonTraceR.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/realtime/MonTraceR.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** MonTraceR.java 24 Jul 2002 22:29:03 -0000 1.10 --- MonTraceR.java 20 Aug 2002 18:59:19 -0000 1.11 *************** *** 76,80 **** protected EventListenerList listenerList = new EventListenerList(); protected transient MonStatEvent monEvent; - private Map listenersMap=new HashMap(1); /** Constructs new object with info. --- 76,79 ---- *************** *** 124,127 **** --- 123,156 ---- } + /** Refreshes a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. + */ + public void refresh(int type) { + switch (type) { + case Constants.MON_THREAD_TRACE: + refreshMonThreadTraces(); + return; + } + throw new IllegalArgumentException("Illegal child type"); + } + + /** Returns a child list specified by the <code>type</code> argument. + * @param type Type of child list. Constants are defined in + * net.sourceforge.javaprofiler.jpi.Constants. ... [truncated message content] |
From: Pavel V. <va...@us...> - 2002-08-19 10:53:41
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views In directory usw-pr-cvs1:/tmp/cvs-serv5307 Modified Files: AllocHistogramTableModel.java Log Message: changed order of columns Index: AllocHistogramTableModel.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/AllocHistogramTableModel.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** AllocHistogramTableModel.java 19 Aug 2002 09:07:20 -0000 1.9 --- AllocHistogramTableModel.java 19 Aug 2002 10:53:31 -0000 1.10 *************** *** 34,39 **** public class AllocHistogramTableModel extends AbstractTableModel { private List allocStats; ! private String columnNames[] = { "name", "count", "total count", "histogram", "space", "total space" }; ! private Class columnClasses[] = { String.class, Long.class, Long.class, AllocStat.class, Long.class, Long.class }; private AllocStatListener statListener; --- 34,39 ---- public class AllocHistogramTableModel extends AbstractTableModel { private List allocStats; ! private String columnNames[] = { "name", "count", "histogram", "total count", "space", "total space" }; ! private Class columnClasses[] = { String.class, Long.class, AllocStat.class, Long.class, Long.class, Long.class }; private AllocStatListener statListener; *************** *** 86,93 **** } case 2: { ! return new Long(alloc.getTotalInstancesCount() ); } case 3: { ! return alloc; } case 4: { --- 86,93 ---- } case 2: { ! return alloc; } case 3: { ! return new Long(alloc.getTotalInstancesCount() ); } case 4: { *************** *** 194,197 **** --- 194,200 ---- /* * $Log$ + * Revision 1.10 2002/08/19 10:53:31 vachis + * changed order of columns + * * Revision 1.9 2002/08/19 09:07:20 vachis * added loggin of changes |
From: Pavel V. <va...@us...> - 2002-08-19 09:09:46
|
Update of /cvsroot/javaprofiler/test/module In directory usw-pr-cvs1:/tmp/cvs-serv7544 Modified Files: TestAllocHistView.java MainThreads.java Log Message: added loggin of changes Index: TestAllocHistView.java =================================================================== RCS file: /cvsroot/javaprofiler/test/module/TestAllocHistView.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** TestAllocHistView.java 8 Aug 2002 23:35:14 -0000 1.9 --- TestAllocHistView.java 19 Aug 2002 09:09:43 -0000 1.10 *************** *** 191,192 **** --- 191,198 ---- } + /* + * $Log$ + * Revision 1.10 2002/08/19 09:09:43 vachis + * added loggin of changes + * + */ Index: MainThreads.java =================================================================== RCS file: /cvsroot/javaprofiler/test/module/MainThreads.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** MainThreads.java 7 Aug 2002 17:43:12 -0000 1.5 --- MainThreads.java 19 Aug 2002 09:09:43 -0000 1.6 *************** *** 120,121 **** --- 120,128 ---- } } + + /* + * $Log$ + * Revision 1.6 2002/08/19 09:09:43 vachis + * added loggin of changes + * + */ \ No newline at end of file |
From: Pavel V. <va...@us...> - 2002-08-19 09:07:29
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views In directory usw-pr-cvs1:/tmp/cvs-serv7002 Modified Files: TimeSeriesModel.java TimeSeriesGraph.java TableMap.java TableClickSorter.java AllocTableClickSorter.java AllocHistogramTableModel.java AllocHistogramTable.java ActiveThreadsView.java Log Message: added loggin of changes Index: TimeSeriesModel.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/TimeSeriesModel.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** TimeSeriesModel.java 30 Jul 2002 12:15:34 -0000 1.3 --- TimeSeriesModel.java 19 Aug 2002 09:07:20 -0000 1.4 *************** *** 172,174 **** } } ! } \ No newline at end of file --- 172,181 ---- } } ! } ! ! /* ! * $Log$ ! * Revision 1.4 2002/08/19 09:07:20 vachis ! * added loggin of changes ! * ! */ Index: TimeSeriesGraph.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/TimeSeriesGraph.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** TimeSeriesGraph.java 7 Aug 2002 17:41:13 -0000 1.4 --- TimeSeriesGraph.java 19 Aug 2002 09:07:20 -0000 1.5 *************** *** 250,251 **** --- 250,258 ---- } } + + /* + * $Log$ + * Revision 1.5 2002/08/19 09:07:20 vachis + * added loggin of changes + * + */ Index: TableMap.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/TableMap.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** TableMap.java 8 Aug 2002 23:33:04 -0000 1.2 --- TableMap.java 19 Aug 2002 09:07:20 -0000 1.3 *************** *** 90,95 **** fireTableChanged(e); //forward event to our listeners } - - - } --- 90,99 ---- fireTableChanged(e); //forward event to our listeners } } + + /* + * $Log$ + * Revision 1.3 2002/08/19 09:07:20 vachis + * added loggin of changes + * + */ Index: TableClickSorter.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/TableClickSorter.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** TableClickSorter.java 18 Aug 2002 19:38:56 -0000 1.4 --- TableClickSorter.java 19 Aug 2002 09:07:20 -0000 1.5 *************** *** 417,418 **** --- 417,425 ---- } } + + /* + * $Log$ + * Revision 1.5 2002/08/19 09:07:20 vachis + * added loggin of changes + * + */ \ No newline at end of file Index: AllocTableClickSorter.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/AllocTableClickSorter.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** AllocTableClickSorter.java 18 Aug 2002 19:38:56 -0000 1.3 --- AllocTableClickSorter.java 19 Aug 2002 09:07:20 -0000 1.4 *************** *** 90,91 **** --- 90,98 ---- } + + /* + * $Log$ + * Revision 1.4 2002/08/19 09:07:20 vachis + * added loggin of changes + * + */ Index: AllocHistogramTableModel.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/AllocHistogramTableModel.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** AllocHistogramTableModel.java 18 Aug 2002 19:38:56 -0000 1.8 --- AllocHistogramTableModel.java 19 Aug 2002 09:07:20 -0000 1.9 *************** *** 191,192 **** --- 191,199 ---- } } + + /* + * $Log$ + * Revision 1.9 2002/08/19 09:07:20 vachis + * added loggin of changes + * + */ Index: AllocHistogramTable.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/AllocHistogramTable.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** AllocHistogramTable.java 18 Aug 2002 19:38:56 -0000 1.9 --- AllocHistogramTable.java 19 Aug 2002 09:07:20 -0000 1.10 *************** *** 34,38 **** */ public class AllocHistogramTable extends JTable { ! /** Creates a new instance of HistogramTable */ --- 34,38 ---- */ public class AllocHistogramTable extends JTable { ! int stringColumn = 0; //in model column order!! /** Creates a new instance of HistogramTable */ *************** *** 53,56 **** --- 53,57 ---- if ( clazz == String.class ) { cmodel.getColumn(i).setPreferredWidth(250); + stringColumn = i; //JTextField textField = new JTextField(); //column.setCellEditor( new DefaultCellEditor( textField ) ); *************** *** 62,66 **** } ! protected boolean checkModel( TableModel model ) { // int mcols = model.getColumnCount(); --- 63,67 ---- } ! protected boolean checkModel( TableModel model ) { // int mcols = model.getColumnCount(); *************** *** 74,81 **** --- 75,122 ---- checkModel( dataModel ); super.setModel( dataModel ); + + Class clazz; + for (int i=0; i < getModel().getColumnCount(); i++ ) { + clazz = getModel().getColumnClass(i); + if ( clazz == String.class ) { + stringColumn = i; + break; + } + } } public void tableChanged( TableModelEvent e) { + int row = -1; + String str = ""; + + //hack + //store string in selection beacuse when all table changes, selection is cleared + // if (e.getType() == TableModelEvent.UPDATE + // && e.getLastRow() == Integer.MAX_VALUE) { + // if ( (row = getSelectedRow()) != -1) + // str = (String) getModel().getValueAt( row, stringColumn ); + // } + super.tableChanged(e); + + //restore selection with stored string + // if ( row != -1 ) { + //nothing changed + // if ( ((String) getModel().getValueAt( row, stringColumn )) + // .compareTo( str ) == 0 ) { + // setRowSelectionInterval( row, row ); + // } + //} + // else { + // TableModel model = getModel(); + // for( int i = 0; i < model.getColumnCount(); i++ ) { + // if ( ((String) model.getValueAt( i, stringColumn )) + // .compareTo( str ) == 0 ) { + // setRowSelectionInterval( i, i ); + // } + // } + // } + // } + } //---------- renderers *************** *** 209,210 **** --- 250,258 ---- } + + /* + * $Log$ + * Revision 1.10 2002/08/19 09:07:20 vachis + * added loggin of changes + * + */ Index: ActiveThreadsView.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/ActiveThreadsView.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** ActiveThreadsView.java 7 Aug 2002 17:42:06 -0000 1.3 --- ActiveThreadsView.java 19 Aug 2002 09:07:20 -0000 1.4 *************** *** 114,115 **** --- 114,122 ---- } } + + /* + * $Log$ + * Revision 1.4 2002/08/19 09:07:20 vachis + * added loggin of changes + * + */ \ No newline at end of file |
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views In directory usw-pr-cvs1:/tmp/cvs-serv15127 Modified Files: TableClickSorter.java AllocTableClickSorter.java AllocHistogramTableModel.java AllocHistogramTable.java Log Message: sorting finished Index: TableClickSorter.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/TableClickSorter.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** TableClickSorter.java 17 Aug 2002 19:13:05 -0000 1.3 --- TableClickSorter.java 18 Aug 2002 19:38:56 -0000 1.4 *************** *** 51,58 **** */ public class TableClickSorter extends TableMap { ! private int indexes[] = null; ! private int usedCount = 0; //number uf used buckets in the indexes[] private final LinkedList sortingColumns = new LinkedList(); ! private boolean ascendColumns[] = null; /** Creates a new instance of TableClickSorter */ --- 51,60 ---- */ public class TableClickSorter extends TableMap { ! private int indexes[] = null; ! private int usedCount = 0; //number uf used buckets in the indexes[] private final LinkedList sortingColumns = new LinkedList(); ! private boolean ascendColumns[] = null; ! private int allwaysSortBy; ! private boolean allwaysSortAscend = true; /** Creates a new instance of TableClickSorter */ *************** *** 75,80 **** } - /** Attention when use this, you need care about synchronization. - */ public void setModel(TableModel model) { super.setModel(model); --- 77,80 ---- *************** *** 133,154 **** //---------------- SORTING ! public synchronized void sort() { ! //PENDING super.tableChanged( new TableModelEvent(this) ); } ! /**Comparator interface, it compares rows in the table. */ ! public int compare( Object v1, Object v2 ) { ! ! //PENDING return 0; } /** This method is used by compare() for comparsion of objects in the cells. ! * Override this to add comparsion for new class. */ ! public int compareObjs( Object o1, Object o2 ) { // If both values are null, return 0. --- 133,175 ---- //---------------- SORTING ! /**Sort table according actual sorting settings. Use <code> sortByColumn() </code> or ! * <code> setAllwaysSortBy()</code> to the settings. ! *@see #setAllwaysSortBy(int) ! *@see #sortByColumn(int) ! */ public synchronized void sort() { ! int[] aux = new int[indexes.length]; ! mergeSort( indexes, aux, 0, indexes.length - 1 ); super.tableChanged( new TableModelEvent(this) ); } ! /** Compares rows in the model. ! * use: compare( indexes[i], indexes[j] ) */ ! protected int compare( int row1, int row2 ) { ! int result, i; ! int col; ! Object o1, o2; ! ! for( i = 0; i<sortingColumns.size(); i++ ) { ! col = ((Integer) sortingColumns.get( i )).intValue(); ! o1 = model.getValueAt(row1, col); ! o2 = model.getValueAt(row2, col); ! result = compareObjs( o1, o2 ) * (ascendColumns[col] ? 1 :-1); ! if (result != 0) ! return result; ! } ! if ( allwaysSortBy != -1 ) { ! o1 = model.getValueAt(row1, allwaysSortBy); ! o2 = model.getValueAt(row2, allwaysSortBy); ! result = compareObjs( o1, o2 ) * (allwaysSortAscend ? 1 :-1); ! } return 0; } /** This method is used by compare() for comparsion of objects in the cells. ! * override this to add comparsion for new class. */ ! protected int compareObjs( Object o1, Object o2 ) { // If both values are null, return 0. *************** *** 210,217 **** } ! public void sortByColumn( int column ) { sortByColumn( column, ascendColumns[ column ] ); } public synchronized void sortByColumn( int column, boolean ascending ) { Integer col = new Integer( column ); --- 231,249 ---- } ! /** Sorts table by given column in stored order. Default order is asceding, this ! * could by changed by <code> SortByColumn(int, boolean) </code>. ! * ! *@see #sort() ! *@see #setAllwaysSortBy(int) ! */ ! public synchronized void sortByColumn( int column ) { sortByColumn( column, ascendColumns[ column ] ); } + /** Sorts table by given column in given order. + * + *@see #sort() + *@see #setAllwaysSortBy(int) + */ public synchronized void sortByColumn( int column, boolean ascending ) { Integer col = new Integer( column ); *************** *** 226,230 **** } ! //---------------- handling events from TableModel listener --- 258,310 ---- } ! ! /** Sets the column that will be used for distinction of rows if values in sorting column ! * equals. ! * ! *@see #sortByColumn(int) ! *@see #setAllwaysSortBy(int,boolean) ! */ ! public void setAllwaysSortBy( int column ) { ! allwaysSortBy = column; ! } ! ! /** Sets the column that will be used for distinction of rows if values in sorting column ! * equals. ! * ! *@see #sortByColumn(int) ! *@see #setAllwaysSortBy(int) ! */ ! public void setAllwaysSortBy( int column, boolean asceding ) { ! allwaysSortBy = column; ! allwaysSortAscend = asceding; ! } ! ! ! /**Gets the column that will be used for distinction of rows if values in sortin column ! * equals. ! * ! *@see #sortByColumn(int) ! *@see #setAllwaysSortBy(int) ! */ ! public int getAllwaysSortBy() { ! return allwaysSortBy; ! } ! ! /**Gets asceding for the column from <code> getAllwaysSortBy </code>*/ ! public boolean getAllwaysAscend() { ! return allwaysSortAscend; ! } ! ! /**Returns ascending order for given column. True = asceding, false = desceding. ! */ ! protected boolean getAscending( int column ) { ! return ascendColumns[column]; ! } ! ! /**Sets ascending order for given column. True = asceding, false = desceding. ! */ ! protected void setAscending( int column, boolean asceding ) { ! ascendColumns[column] = asceding; ! } //---------------- handling events from TableModel listener *************** *** 293,296 **** --- 373,418 ---- private synchronized int preferedArraySize( int size ) { return (int) Math.ceil( Math.pow( 2, Math.log(size)/Math.log(2) )); + } + + //-------- mergesort + //sorts src using aux + private synchronized void mergeSort( int[] src, int[] aux, int lo, int hi ) { + if( lo > hi ) + throw new RuntimeException("Mergesort: low index is grater than high index. lo: " + lo +" hi:" + hi); + int len = hi - lo + 1; + + if (len < 7 ) { //FIX + for (int i=lo; i<=hi; i++) + for (int j=i; j>lo && compare(src[j-1], src[j])>0; j--) { + int tmp = src[j]; + src[j] = src[j-1]; + src[j-1] = tmp; + } + return; + } + + int mid = (lo + hi) >> 1; + mergeSort( src, aux, lo, mid ); + mergeSort( src, aux, mid+1, hi ); + + //array is already sorted + if ( compare(src[mid], src[mid+1] ) <= 0) { + return; + } + + //merge + int a = lo, b = mid+1, c = lo; + while ((a <= mid) && (b <= hi)){ + if ( compare(src[a], src[b]) < 0 ) + aux[c++]=src[a++]; + else + aux[c++]=src[b++]; + } + while (a <= mid) + aux[c++]=src[a++]; + while (b <= hi) + aux[c++]=src[b++]; + + System.arraycopy(aux, lo, src, lo, len); } } Index: AllocTableClickSorter.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/AllocTableClickSorter.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** AllocTableClickSorter.java 16 Aug 2002 13:09:27 -0000 1.2 --- AllocTableClickSorter.java 18 Aug 2002 19:38:56 -0000 1.3 *************** *** 28,32 **** * (Actually it sorts only indexes mapping to TableModel). The differnce is that * AllocTableClickSorter can sort AllocStat objects therefore you have to you use this with ! * AllocHistogramTable and AllocHistogramModel. * * --- 28,35 ---- * (Actually it sorts only indexes mapping to TableModel). The differnce is that * AllocTableClickSorter can sort AllocStat objects therefore you have to you use this with ! * AllocHistogramTable and AllocHistogramModel. ! * This class also changes default asceding order. ! * Columns with strings are sorted in asceding order other in desceding order. ! * Model is allways sorted by first column with string {@link TableClickSorter#setAllwaysSortBy(int) } * * *************** *** 39,45 **** public AllocTableClickSorter( TableModel model ) { super( model ); } ! public int compareObjs(Object o1, Object o2) { if (o1 == null && o2 == null) return 0; --- 42,56 ---- public AllocTableClickSorter( TableModel model ) { super( model ); + initSorting(); } ! ! public void setModel( TableModel model ) { ! super.setModel( model ); ! initSorting(); ! } ! /** Compares objects, it adds comparsion for instances of the classes that implement AllocStat interface ! */ ! protected int compareObjs(Object o1, Object o2) { if (o1 == null && o2 == null) return 0; *************** *** 61,64 **** --- 72,90 ---- return super.compareObjs( o1, o2 ); + } + + //--------------- private + private void initSorting() { + boolean first = true; + for (int i=0; i < getColumnCount(); i++ ) { + Class clazz = getColumnClass(i); + if ( clazz == String.class ) { + setAscending( i, true ); + if ( first ) + setAllwaysSortBy( i, true ); + } + else + setAscending( i, false ); + } } Index: AllocHistogramTableModel.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/AllocHistogramTableModel.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** AllocHistogramTableModel.java 17 Aug 2002 19:06:14 -0000 1.7 --- AllocHistogramTableModel.java 18 Aug 2002 19:38:56 -0000 1.8 *************** *** 27,31 **** /**Model for table that shows instances count and "histogram" of instances count. ! * Columns contains name_of_type, instaces_count, count_of_all_instances_ever_created_in_VM, * histogram_of_instances_count, size_of_instances, size_off_all_instances_ever_created_in_VM * --- 27,31 ---- /**Model for table that shows instances count and "histogram" of instances count. ! * Columns contain name_of_type, instaces_count, count_of_all_instances_ever_created_in_VM, * histogram_of_instances_count, size_of_instances, size_off_all_instances_ever_created_in_VM * *************** *** 173,177 **** //subcribing, unsubscribing ! protected void subscribeToJpi( List allocStats, HasChildren parent, int subscribeType ) { this.parent = parent; this.subscribeType = subscribeType; --- 173,177 ---- //subcribing, unsubscribing ! private void subscribeToJpi( List allocStats, HasChildren parent, int subscribeType ) { this.parent = parent; this.subscribeType = subscribeType; *************** *** 183,187 **** } ! protected void unsubscribeFromJpi() { parent.removeChildrenListener( subscribeType, childrenListener ); ListIterator iter = allocStats.listIterator(); --- 183,187 ---- } ! private void unsubscribeFromJpi() { parent.removeChildrenListener( subscribeType, childrenListener ); ListIterator iter = allocStats.listIterator(); Index: AllocHistogramTable.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/AllocHistogramTable.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** AllocHistogramTable.java 16 Aug 2002 13:06:39 -0000 1.8 --- AllocHistogramTable.java 18 Aug 2002 19:38:56 -0000 1.9 *************** *** 23,26 **** --- 23,27 ---- import java.awt.*; import javax.swing.*; + import javax.swing.event.*; import javax.swing.table.*; import javax.swing.border.*; *************** *** 74,78 **** super.setModel( dataModel ); } ! protected static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1); --- 75,84 ---- super.setModel( dataModel ); } ! ! public void tableChanged( TableModelEvent e) { ! super.tableChanged(e); ! } ! //---------- renderers ! protected static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1); *************** *** 201,204 **** } //end of Renderers ! } --- 207,210 ---- } //end of Renderers ! } |
From: Pavel V. <va...@us...> - 2002-08-17 19:13:09
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views In directory usw-pr-cvs1:/tmp/cvs-serv17984 Modified Files: TableClickSorter.java Log Message: small fix Index: TableClickSorter.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/TableClickSorter.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** TableClickSorter.java 16 Aug 2002 13:09:27 -0000 1.2 --- TableClickSorter.java 17 Aug 2002 19:13:05 -0000 1.3 *************** *** 84,88 **** public void tableChanged(TableModelEvent e) { ! /* if (e.getFirstRow() == TableModelEvent.HEADER_ROW) { initColumns(); } --- 84,88 ---- public void tableChanged(TableModelEvent e) { ! if (e.getFirstRow() == TableModelEvent.HEADER_ROW) { initColumns(); } *************** *** 97,101 **** case TableModelEvent.UPDATE: //nothing special ! }*/ super.tableChanged( e ); } --- 97,101 ---- case TableModelEvent.UPDATE: //nothing special ! } super.tableChanged( e ); } *************** *** 252,256 **** int i; ! /* if (first < usedCount) { //repair broken mapping for (i=0; i<usedCount; i++ ) if (indexes[i] >= first ) { --- 252,256 ---- int i; ! if (first < usedCount) { //repair broken mapping for (i=0; i<usedCount; i++ ) if (indexes[i] >= first ) { *************** *** 264,268 **** } usedCount = last-first+1 + usedCount; ! */ } private synchronized void delRows( int first, int last ) { --- 264,268 ---- } usedCount = last-first+1 + usedCount; ! } private synchronized void delRows( int first, int last ) { |
From: Pavel V. <va...@us...> - 2002-08-17 19:06:26
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views In directory usw-pr-cvs1:/tmp/cvs-serv16431 Modified Files: AllocHistogramTableModel.java Log Message: addChildren listener fix Index: AllocHistogramTableModel.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/AllocHistogramTableModel.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** AllocHistogramTableModel.java 31 Jul 2002 16:52:37 -0000 1.6 --- AllocHistogramTableModel.java 17 Aug 2002 19:06:14 -0000 1.7 *************** *** 142,146 **** } } ! fireTableRowsInserted( i, j-1 ); i = j; } --- 142,146 ---- } } ! fireTableRowsInserted( delta[i], delta[j-1] ); i = j; } *************** *** 166,170 **** } } ! fireTableRowsUpdated( i, j-1 ); i = j; } --- 166,170 ---- } } ! fireTableRowsUpdated( delta[i], delta[j-1] ); i = j; } |
From: Michael R. <mr...@br...> - 2002-08-16 15:28:22
|
Hi all, i am sorry, that i am posting a question here, but i did not find another adress. I downloaded the profiler library and want to try to make a small app, which is displaying the profiled data of testfiles. Its now around one day that i am reading and testing, but i don't find the real entry. I nearly tried all the examples with and without ide and get only errors. Is there a small example, how i can start profiling from out of a java program? For example: i am having a simple class with a main method, which is producing Strings. I would like to let it run, collecting the data and using the IProf to output the data. Thanks in advance, Michael Virengeprüft vom G DATA AntiVirenKit |
From: Pavel V. <va...@us...> - 2002-08-16 13:09:29
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views In directory usw-pr-cvs1:/tmp/cvs-serv12913 Modified Files: TableClickSorter.java AllocTableClickSorter.java Log Message: sorting prepared Index: TableClickSorter.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/TableClickSorter.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** TableClickSorter.java 8 Aug 2002 06:45:04 -0000 1.1 --- TableClickSorter.java 16 Aug 2002 13:09:27 -0000 1.2 *************** *** 51,57 **** */ public class TableClickSorter extends TableMap { ! private int indexes[] = new int[0]; private int usedCount = 0; //number uf used buckets in the indexes[] ! private ArrayList sortingColumns = new ArrayList(); /** Creates a new instance of TableClickSorter */ --- 51,58 ---- */ public class TableClickSorter extends TableMap { ! private int indexes[] = null; private int usedCount = 0; //number uf used buckets in the indexes[] ! private final LinkedList sortingColumns = new LinkedList(); ! private boolean ascendColumns[] = null; /** Creates a new instance of TableClickSorter */ *************** *** 59,62 **** --- 60,64 ---- super( model ); //adds listener, etc. initIndexes(); + initColumns(); } *************** *** 78,84 **** --- 80,91 ---- super.setModel(model); initIndexes(); + initColumns(); } public void tableChanged(TableModelEvent e) { + /* if (e.getFirstRow() == TableModelEvent.HEADER_ROW) { + initColumns(); + } + switch (e.getType()) { case TableModelEvent.INSERT: *************** *** 90,99 **** case TableModelEvent.UPDATE: //nothing special ! } super.tableChanged( e ); } ! // Add a mouse listener to the Table to trigger a table sort ! // when a column heading is clicked in the JTable. public void addMouseListenerToHeaderInTable(JTable table) { final TableClickSorter sorter = this; --- 97,107 ---- case TableModelEvent.UPDATE: //nothing special ! }*/ super.tableChanged( e ); } ! /** Add a mouse listener to the Table to trigger a table sort ! * when a column heading is clicked in the JTable. ! */ public void addMouseListenerToHeaderInTable(JTable table) { final TableClickSorter sorter = this; *************** *** 107,113 **** if (e.getClickCount() == 1 && column != -1) { int shiftPressed = e.getModifiers()&InputEvent.SHIFT_MASK; ! boolean ascending = (shiftPressed == 0); ! //PENDING ! //sorter.sortByColumn(column); } } --- 115,127 ---- if (e.getClickCount() == 1 && column != -1) { int shiftPressed = e.getModifiers()&InputEvent.SHIFT_MASK; ! synchronized (this) { ! if (shiftPressed != 0) { ! ascendColumns[column] = !ascendColumns[column]; ! } ! sorter.sortByColumn(column); ! } ! } ! else if(e.getClickCount() == 1 && column != -1) { ! initColumns(); } } *************** *** 120,132 **** //---------------- SORTING ! //comparator public int compare( Object v1, Object v2 ) { //PENDING return 0; } ! public void sortByColumn( int column, boolean ascending ) { ! //PENDING sort care about column ! super.tableChanged( new TableModelEvent(this) ); } --- 134,227 ---- //---------------- SORTING ! public synchronized void sort() { ! //PENDING ! super.tableChanged( new TableModelEvent(this) ); ! } ! ! /**Comparator interface, it compares rows in the table. ! */ public int compare( Object v1, Object v2 ) { + //PENDING return 0; } ! /** This method is used by compare() for comparsion of objects in the cells. ! * Override this to add comparsion for new class. ! */ ! public int compareObjs( Object o1, Object o2 ) { ! ! // If both values are null, return 0. ! if (o1 == null && o2 == null) ! return 0; ! else if (o1 == null) // Define null less than everything. ! return -1; ! else if (o2 == null) ! return 1; ! ! ! if (o1 instanceof java.lang.Number && o2 instanceof java.lang.Number) { ! Number n1 = (Number) o1; ! double d1 = n1.doubleValue(); ! Number n2 = (Number) o2; ! double d2 = n2.doubleValue(); ! ! if (d1 < d2) ! return -1; ! else if (d1 > d2) ! return 1; ! else ! return 0; ! } ! else if (o1 instanceof java.lang.Boolean && o2 instanceof java.lang.Boolean) { ! Boolean bool1 = (Boolean) o1; ! boolean b1 = bool1.booleanValue(); ! Boolean bool2 = (Boolean) o2; ! boolean b2 = bool2.booleanValue(); ! ! if (b1 == b2) ! return 0; ! else if (b1) // Define false < true ! return 1; ! else ! return -1; ! } //default case: ! else if (o1 instanceof java.lang.Comparable && o2 instanceof java.lang.Comparable) { ! int result = ((Comparable) o1).compareTo( o2 ); ! if (result < 0) ! return -1; ! else if (result > 0) ! return 1; ! else ! return 0; ! } ! else { //lexicografic comparsion ! String s1 = o1.toString(); ! String s2 = o1.toString(); ! ! int result = s1.compareTo( s2 ); ! if (result < 0) ! return -1; ! else if (result > 0) ! return 1; ! else ! return 0; ! } ! } ! ! public void sortByColumn( int column ) { ! sortByColumn( column, ascendColumns[ column ] ); ! } ! ! public synchronized void sortByColumn( int column, boolean ascending ) { ! Integer col = new Integer( column ); ! //sortingColumns.clear(); ! ! if ( sortingColumns.contains( col ) ) { ! sortingColumns.remove( col ); ! } ! sortingColumns.addFirst( col ); ! ! sort(); } *************** *** 134,142 **** //---------------- handling events from TableModel listener private synchronized void initIndexes() { int i; usedCount = getRowCount(); ! indexes = new int[ (int) Math.ceil( usedCount * 1.1 ) ]; for (i=0; i<usedCount; i++ ) { indexes[i] = i; --- 229,247 ---- //---------------- handling events from TableModel listener + private synchronized void initColumns() { + int i; + + int colNum = getColumnCount(); + ascendColumns = new boolean[ colNum ]; + for (i=0; i<colNum; i++ ) { + ascendColumns[i] = true; + } + } + private synchronized void initIndexes() { int i; usedCount = getRowCount(); ! indexes = new int[ preferedArraySize( usedCount ) ]; for (i=0; i<usedCount; i++ ) { indexes[i] = i; *************** *** 147,151 **** int i; ! if (first < usedCount) { //repair broken mapping for (i=0; i<usedCount; i++ ) if (indexes[i] >= first ) { --- 252,256 ---- int i; ! /* if (first < usedCount) { //repair broken mapping for (i=0; i<usedCount; i++ ) if (indexes[i] >= first ) { *************** *** 159,163 **** } usedCount = last-first+1 + usedCount; ! } private synchronized void delRows( int first, int last ) { --- 264,268 ---- } usedCount = last-first+1 + usedCount; ! */ } private synchronized void delRows( int first, int last ) { *************** *** 174,186 **** condReallocateIndexes( usedCount ); } ! ! //PENDING deside whether allocate new array private synchronized void condReallocateIndexes( int newSize ) { int i; ! ! int indexes2[] = new int[ (int) Math.ceil(newSize * 1.1) ]; ! System.arraycopy( indexes, 0, indexes2, 0, usedCount ); ! indexes = indexes2; } } --- 279,296 ---- condReallocateIndexes( usedCount ); } ! private synchronized void condReallocateIndexes( int newSize ) { int i; ! int pref = preferedArraySize( newSize ); ! ! if ( pref > indexes.length || pref <= indexes.length * 0.9 ) { ! int indexes2[] = new int[ pref ]; ! System.arraycopy( indexes, 0, indexes2, 0, usedCount ); ! indexes = indexes2; ! } } + private synchronized int preferedArraySize( int size ) { + return (int) Math.ceil( Math.pow( 2, Math.log(size)/Math.log(2) )); + } } Index: AllocTableClickSorter.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/AllocTableClickSorter.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** AllocTableClickSorter.java 8 Aug 2002 06:45:04 -0000 1.1 --- AllocTableClickSorter.java 16 Aug 2002 13:09:27 -0000 1.2 *************** *** 22,25 **** --- 22,27 ---- import javax.swing.table.TableModel; + + import net.sourceforge.javaprofiler.jpi.AllocStat; /** AllocTableClickSorter is TableClickSorter, in other words: It sorts TableModel for JTable * when you click on column header in JTable instance. *************** *** 39,45 **** } ! public int compare(Object v1, Object v2) { ! //PENDING ! return 0; } --- 41,64 ---- } ! public int compareObjs(Object o1, Object o2) { ! if (o1 == null && o2 == null) ! return 0; ! else if (o1 == null) // Define null less than everything. ! return -1; ! else if (o2 == null) ! return 1; ! ! if ( o1 instanceof AllocStat && o2 instanceof AllocStat ) { ! long d1 = ((AllocStat) o1).getLiveInstancesCount(); ! long d2 = ((AllocStat) o2).getLiveInstancesCount(); ! if (d1 < d2) ! return -1; ! else if (d1 > d2) ! return 1; ! else ! return 0; ! } ! ! return super.compareObjs( o1, o2 ); } |
From: Pavel V. <va...@us...> - 2002-08-16 13:06:55
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views In directory usw-pr-cvs1:/tmp/cvs-serv10826 Modified Files: AllocHistogramTable.java Log Message: tiny fix Index: AllocHistogramTable.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/AllocHistogramTable.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** AllocHistogramTable.java 8 Aug 2002 23:32:42 -0000 1.7 --- AllocHistogramTable.java 16 Aug 2002 13:06:39 -0000 1.8 *************** *** 190,200 **** bar.setBackground( Color.white ); bar.setBorderPainted( false ); ! if (isBordered) { ! if (isSelected) { ! bar.setBackground( table.getSelectionBackground() ); ! } else { ! bar.setBackground( table.getBackground() ); ! } } return this; --- 190,199 ---- bar.setBackground( Color.white ); bar.setBorderPainted( false ); ! if (isSelected) { ! bar.setBackground( table.getSelectionBackground() ); ! } else { ! bar.setBackground( table.getBackground() ); } + return this; |
From: Michael R. <mr...@br...> - 2002-08-16 10:36:05
|
Hi, modified DubugOutput to the current CVS files. Some methods i could not resolve. Best, Michael =========================================================== Michael Remme BrainT@GS GmbH mr...@br... Neuhofstr. 48 Tel. : 02161 / 40 64 871 D-41061 Mönchengladbach Fax. : 02161 / 40 64 874 http://www.BrainTags.de Mobil: 0173 / 535 21 37 *** DebugOutput.java 16 Feb 2002 16:22:18 -0000 1.4 --- DebugOutput.java 16 Aug 2002 10:30:16 -0000 *************** *** 27,37 **** */ public class DebugOutput { /** Print snapshot data to System.out. ! * @param sn SnapshotImpl data to print. */ public static void print (SnapshotImpl sn) { // classes list, ClassData object type ! Iterator it = sn.classes().iterator(); while (it.hasNext()) { ClassData c = (ClassData) it.next(); System.out.println("CLASS = " + c.getName()); --- 29,39 ---- */ public class DebugOutput { /** Print snapshot data to System.out. ! * @param sn SnapshotImpl data to print. */ public static void print (SnapshotImpl sn) { // classes list, ClassData object type ! Iterator it = sn.getClasses().iterator(); while (it.hasNext()) { ClassData c = (ClassData) it.next(); System.out.println("CLASS = " + c.getName()); *************** *** 45,69 **** System.out.println(); } System.out.println("INSTANCE FIELDS:"); ! Iterator itI = c.getInstanceFields().iterator(); while (itI.hasNext()) { ! ClassFieldData f = (ClassFieldData) itI.next(); ! System.out.println(f.getName() + " SIGN = " + f.getSignature() ! ); ! System.out.println(); } System.out.println("STATIC FIELDS:"); ! Iterator itS = c.getStaticFields().iterator(); while (itS.hasNext()) { ! ClassFieldData f = (ClassFieldData) itS.next(); ! System.out.println(f.getName() + " SIGN = " + f.getSignature() ! ); ! System.out.println(); } } ! // groupThreads list, ThreadGroupData object type ! it = sn.groupOfThreads().iterator(); while (it.hasNext()) { ThreadGroupData g = (ThreadGroupData) it.next(); System.out.println("GROUP = " + g.getName()); --- 47,75 ---- System.out.println(); } System.out.println("INSTANCE FIELDS:"); ! Iterator itI = c.getFields().iterator(); while (itI.hasNext()) { ! FieldData f = (FieldData) itI.next(); ! if ( ! f.isStatic() ){ ! System.out.println(f.getName() + " SIGN = " + f.getSignature() ! ); ! System.out.println(); ! } } System.out.println("STATIC FIELDS:"); ! Iterator itS = c.getFields().iterator(); while (itS.hasNext()) { ! FieldData f = (FieldData) itS.next(); ! if ( ! f.isStatic() ){ ! System.out.println(f.getName() + " SIGN = " + f.getSignature() ! ); ! System.out.println(); ! } } } ! // groupThreads list, ThreadGroupData object type ! it = sn.getThreadGroups().iterator(); while (it.hasNext()) { ThreadGroupData g = (ThreadGroupData) it.next(); System.out.println("GROUP = " + g.getName()); *************** *** 73,80 **** System.out.println(th.getName() + " : "); } } ! // objectTypes list, AllocClassData object type it = sn.allocTypes().iterator(); while (it.hasNext()) { AllocTypeData o = (AllocTypeData) it.next(); --- 79,88 ---- System.out.println(th.getName() + " : "); } } ! // objectTypes list, AllocClassData object type + /* + //Couldn't resolve that it = sn.allocTypes().iterator(); while (it.hasNext()) { AllocTypeData o = (AllocTypeData) it.next(); *************** *** 116,152 **** break; default: s = null; ! break; } System.out.println(s); System.out.println(); } ! // arenas list, AllocArenaData object type // FIX arenas() ! it = sn.arenas().iterator(); while (it.hasNext()) { AllocArenaData a = (AllocArenaData) it.next(); System.out.println("ARENA = " + a.getName()); System.out.println(); } ! // instances are N/A from IProf! // leaving blank ! // gcs list, GCData object type // FIX gcs() ! it = sn.gcs().iterator(); while (it.hasNext()) { ! GCData g = (GCData) it.next(); System.out.println("GC:"); System.out.println("start: " + g.getStartTime()); System.out.println("end: " + g.getEndTime()); } ! // jniGlobalRefs and jniWeakGlobalRefs are N/A from IProf! // leaving blank ! // Hash Statistics are N/A. // leaving blank --- 124,160 ---- break; default: s = null; ! break; } System.out.println(s); System.out.println(); } ! */ // arenas list, AllocArenaData object type // FIX arenas() ! it = sn.getArenas().iterator(); while (it.hasNext()) { AllocArenaData a = (AllocArenaData) it.next(); System.out.println("ARENA = " + a.getName()); System.out.println(); } ! // instances are N/A from IProf! // leaving blank ! // gcs list, GCData object type // FIX gcs() ! it = sn.getGCRuns().iterator(); while (it.hasNext()) { ! GCRunData g = (GCRunData) it.next(); System.out.println("GC:"); System.out.println("start: " + g.getStartTime()); System.out.println("end: " + g.getEndTime()); } ! // jniGlobalRefs and jniWeakGlobalRefs are N/A from IProf! // leaving blank ! // Hash Statistics are N/A. // leaving blank *************** *** 169,191 **** int totalMonTraces = 0; int totalMonThreadMethods = 0; int totalMonThreadTraces = 0; ! it = sn.classes().iterator(); while (it.hasNext()) { ClassData c = (ClassData) it.next(); Iterator itM = c.getMethods().iterator(); while (itM.hasNext()) { MethodData m = (MethodData) itM.next(); ! Iterator itT = m.getAllocTraces().values().iterator(); while (itT.hasNext()) { AllocTraceData t = (AllocTraceData) itT.next(); totalAllocTraces ++; } ! itT = m.getCPUTraces().values().iterator(); while (itT.hasNext()) { CPUTraceData t = (CPUTraceData) itT.next(); totalCpuTraces ++; } ! itT = m.getMonTraces().values().iterator(); while (itT.hasNext()) { MonTraceData t = (MonTraceData) itT.next(); totalMonTraces ++; --- 177,199 ---- int totalMonTraces = 0; int totalMonThreadMethods = 0; int totalMonThreadTraces = 0; ! it = sn.getClasses().iterator(); while (it.hasNext()) { ClassData c = (ClassData) it.next(); Iterator itM = c.getMethods().iterator(); while (itM.hasNext()) { MethodData m = (MethodData) itM.next(); ! Iterator itT = m.getAllocTraces().iterator(); while (itT.hasNext()) { AllocTraceData t = (AllocTraceData) itT.next(); totalAllocTraces ++; } ! itT = m.getCPUTraces().iterator(); while (itT.hasNext()) { CPUTraceData t = (CPUTraceData) itT.next(); totalCpuTraces ++; } ! itT = m.getMonTraces().iterator(); while (itT.hasNext()) { MonTraceData t = (MonTraceData) itT.next(); totalMonTraces ++; *************** *** 194,199 **** --- 202,209 ---- } totalClasses ++; } + /* + //Couldn't resolve it = sn.allocTypes().iterator(); while (it.hasNext()) { AllocTypeData a = (AllocTypeData) it.next(); *************** *** 209,258 **** } totalAllocObjects ++; } ! it = sn.threads().iterator(); while (it.hasNext()) { ThreadData th = (ThreadData) it.next(); ! Iterator itA = th.getTypes().values().iterator(); while (itA.hasNext()) { ! AllocThreadTypeData a = (AllocThreadTypeData) itA.next(); Iterator itM = a.getMethods().values().iterator(); while (itM.hasNext()) { ! AllocThreadTypeMethodData m = (AllocThreadTypeMethodData) itM.next(); Iterator itT = m.getTraces().values().iterator(); while (itT.hasNext()) { ! AllocThreadTypeTraceData t = ! (AllocThreadTypeTraceData) itT.next(); ! totalAllocThreadObjectTraces ++; } totalAllocThreadObjectMethods ++; } totalAllocThreadObjects ++; } ! Iterator itM = th.getAllocMethods().values().iterator(); while (itM.hasNext()) { AllocThreadMethodData m = (AllocThreadMethodData) itM.next(); ! Iterator itT = m.getTraces().values().iterator(); while (itT.hasNext()) { AllocThreadTraceData t = (AllocThreadTraceData) itT.next(); totalAllocThreadTraces ++; } totalAllocThreadMethods ++; } ! itM = th.getCPUMethods().values().iterator(); while (itM.hasNext()) { CPUThreadMethodData m = (CPUThreadMethodData) itM.next(); ! Iterator itT = m.getTraces().values().iterator(); while (itT.hasNext()) { CPUThreadTraceData t = (CPUThreadTraceData) itT.next(); totalCpuThreadTraces ++; } totalCpuThreadMethods ++; } ! itM = th.getMonMethods().values().iterator(); while (itM.hasNext()) { MonThreadMethodData m = (MonThreadMethodData) itM.next(); ! Iterator itT = m. getTraces().values().iterator(); while (itT.hasNext()) { MonThreadTraceData t = (MonThreadTraceData) itT.next(); totalMonThreadTraces ++; --- 219,272 ---- } totalAllocObjects ++; } ! */ ! it = sn.getThreads().iterator(); while (it.hasNext()) { ThreadData th = (ThreadData) it.next(); ! /* ! Couldn't resolve ! Iterator itA = th.getTypes().iterator(); while (itA.hasNext()) { ! AllocTypeThreadData a = (AllocThreadTypeData) itA.next(); Iterator itM = a.getMethods().values().iterator(); while (itM.hasNext()) { ! AllocTypeThreadMethodData m = (AllocThreadTypeMethodData) itM.next(); Iterator itT = m.getTraces().values().iterator(); while (itT.hasNext()) { ! AllocTypeThreadTraceData t = ! (AllocTypeThreadTraceData) itT.next(); ! totalAllocThreadObjectTraces ++; } totalAllocThreadObjectMethods ++; } totalAllocThreadObjects ++; } ! */ ! Iterator itM = th.getAllocThreadMethods().iterator(); while (itM.hasNext()) { AllocThreadMethodData m = (AllocThreadMethodData) itM.next(); ! Iterator itT = m.getAllocThreadTraces().iterator(); while (itT.hasNext()) { AllocThreadTraceData t = (AllocThreadTraceData) itT.next(); totalAllocThreadTraces ++; } totalAllocThreadMethods ++; } ! itM = th.getCPUThreadMethods().iterator(); while (itM.hasNext()) { CPUThreadMethodData m = (CPUThreadMethodData) itM.next(); ! Iterator itT = m.getCPUThreadTraces().iterator(); while (itT.hasNext()) { CPUThreadTraceData t = (CPUThreadTraceData) itT.next(); totalCpuThreadTraces ++; } totalCpuThreadMethods ++; } ! itM = th.getMonThreadMethods().iterator(); while (itM.hasNext()) { MonThreadMethodData m = (MonThreadMethodData) itM.next(); ! Iterator itT = m.getMonThreadTraces().iterator(); while (itT.hasNext()) { MonThreadTraceData t = (MonThreadTraceData) itT.next(); totalMonThreadTraces ++; *************** *** 272,284 **** System.out.println(); System.out.println("AllocObjectMethod: " + totalAllocObjectMethods); System.out.println("AllocThreadMethod: " + totalAllocThreadMethods); ! System.out.println("AllocThreadObjectMethod: " + totalAllocThreadObjectMethods); System.out.println(); System.out.println("AllocTrace: " + totalAllocTraces); System.out.println("AllocObjectTrace: " + totalAllocObjectTraces); System.out.println("AllocThreadTrace: " + totalAllocThreadTraces); ! System.out.println("AllocThreadObjectTrace: " + totalAllocThreadObjectTraces); System.out.println(); System.out.println("CpuThreadMethod: " + totalCpuThreadMethods); --- 286,298 ---- System.out.println(); System.out.println("AllocObjectMethod: " + totalAllocObjectMethods); System.out.println("AllocThreadMethod: " + totalAllocThreadMethods); ! System.out.println("AllocThreadObjectMethod: " + totalAllocThreadObjectMethods); System.out.println(); System.out.println("AllocTrace: " + totalAllocTraces); System.out.println("AllocObjectTrace: " + totalAllocObjectTraces); System.out.println("AllocThreadTrace: " + totalAllocThreadTraces); ! System.out.println("AllocThreadObjectTrace: " + totalAllocThreadObjectTraces); System.out.println(); System.out.println("CpuThreadMethod: " + totalCpuThreadMethods); |
From: Pavel V. <va...@us...> - 2002-08-11 20:50:08
|
Update of /cvsroot/javaprofiler/jpi In directory usw-pr-cvs1:/tmp/cvs-serv18664 Added Files: build.xml Log Message: build script by michal --- NEW FILE: build.xml --- <?xml version="1.0" encoding="UTF-8"?> <project basedir="../" default="jar" name="jpi"> <target name="init"> <tstamp/> <!-- You can set up any variables you want used throughout the script here. --> <!-- configuration ************************************************** --> <!-- doxygen --> <property name="doxygen_dir" location="D:\Program Files\doxygen-1.2.12"/> <property name="doxygen_exec" location="${doxygen_dir}\bin\doxygen.exe"/> <!-- end of configuration ******************************************* --> <!-- Common classpath --> <path id="project.classpath"> <pathelement location="jpi"/> </path> <!-- Common jar pattern set --> <patternset id="project.jarpattern.exclude"> <exclude name="**/*.java"/> <exclude name="**/*.bak"/> <exclude name="**/*.form"/> <exclude name="**/.nbattrs"/> <exclude name="docs"/> <!-- others are in deafult exlcudes (cvsfiles, "*~",".#*", etc.) --> </patternset> </target> <target name="compile" depends="init" description="Compile .java files"> <property name="cp" refid="project.classpath"/> <echo message="Classpath is ${cp}"/> <javac classpathref="project.classpath" debug="true" failonerror="true"> <src> <pathelement location="jpi"/> </src> <include name="net/**/*"/> </javac> </target> <target name="jar" depends="init,compile" description="Create .jar"> <!-- To make a standalone app: --> <!-- 1. Create a myapp.mf manifest somewhere. --> <!-- 2. Put in it: --> <!-- Manifest-Version: 1.0 --> <!-- Main-Class: com.foo.Main --> <!-- 3. Pass to <jar>: manifest="myapp.mf" --> <jar compress="true" defaultexcludes="yes" jarfile="jpi/jpi.jar"> <fileset dir="jpi"> <include name="net/**/*"/> <patternset refid="project.jarpattern.exclude"/> <exclude name="jpi.jar"/> </fileset> </jar> </target> <target name="all" depends="init,jar,javadoc,doxygen" description="Build everything."> <echo message="Application built. "/> </target> <target name="javadoc" depends="init" description="Javadoc for my API."> <mkdir dir="jpi/docs/javadoc"/> <javadoc Windowtitle="JPI" defaultexcludes="yes" destdir="jpi/docs/javadoc" group="JPI net.sourceforge.javaprofiler.jpi.*" private="on" failonerror="false"> <doctitle>Java Profiling Interface</doctitle> <package name="net.sourceforge.javaprofiler.jpi.*"/> <sourcepath> <pathelement location="jpi"/> </sourcepath> </javadoc> </target> <target name="doxygen" depends="init" description="Doxygen documentation for my API."> <echo message="executing: ${doxygen_exec}"/> <exec executable="${doxygen_exec}" dir="jpi/docs" failonerror="false"> <arg file="jpiimpl/docs/doc_html.conf"/> </exec> <exec executable="${doxygen_exec}" dir="jpiimpl/docs" failonerror="false"> <arg file="jpi/docs/doc_latex.conf"/> </exec> </target> <target name="clean" depends="init" description="Clean all build products."> <delete> <fileset dir="jpi"> <include name="**/*.class"/> </fileset> </delete> <delete file="jpi/jpi.jar"/> </target> <target name="cleanall" depends="init,clean" description="Clean all build products and documnetation."> <delete dir="jpi/docs/javadoc"/> <delete dir="jpi/docs/html"/> <delete dir="jpi/docs/latex"/> </target> </project> |
From: Pavel V. <va...@us...> - 2002-08-09 00:34:31
|
Update of /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/data In directory usw-pr-cvs1:/tmp/cvs-serv17734 Modified Files: SnapshotImpl.java Log Message: fix (didn't compile) Index: SnapshotImpl.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/data/SnapshotImpl.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -r1.29 -r1.30 *** SnapshotImpl.java 8 Aug 2002 23:28:37 -0000 1.29 --- SnapshotImpl.java 9 Aug 2002 00:34:26 -0000 1.30 *************** *** 764,767 **** --- 764,768 ---- ThreadGroupData rf = (ThreadGroupData) refObj; Integer parentID = new Integer( ((IProf.sThreadInfo) sid.info).parentObjId); + ThreadData parent = (ThreadData) libIDs.get( parentID); ThreadData newObj = new ThreadData( sid, rf, parent, this ); rf.addThread( newObj ); *************** *** 1141,1144 **** --- 1142,1148 ---- /* * $Log$ + * Revision 1.30 2002/08/09 00:34:26 vachis + * fix (didn't compile) + * * Revision 1.29 2002/08/08 23:28:37 vachis * fix CreateAndPutInt - GROUP_THREADS |
From: Pavel V. <va...@us...> - 2002-08-08 23:37:38
|
Update of /cvsroot/javaprofiler/test/module In directory usw-pr-cvs1:/tmp/cvs-serv3568 Modified Files: runhist.sh runhist.bat Log Message: shmem Index: runhist.sh =================================================================== RCS file: /cvsroot/javaprofiler/test/module/runhist.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** runhist.sh 8 Aug 2002 00:21:07 -0000 1.1 --- runhist.sh 8 Aug 2002 23:37:33 -0000 1.2 *************** *** 2,4 **** export CLASSPATH=../../module/javaprofiler.jar:../../jpiimpl/jpiimpl.jar:./:$CLASSPATH export LD_LIBRARY_PATH=../../library/src/profiler:../../library/src2 ! java TestAllocHistView --- 2,4 ---- export CLASSPATH=../../module/javaprofiler.jar:../../jpiimpl/jpiimpl.jar:./:$CLASSPATH export LD_LIBRARY_PATH=../../library/src/profiler:../../library/src2 ! java TestAllocHistView shmem Index: runhist.bat =================================================================== RCS file: /cvsroot/javaprofiler/test/module/runhist.bat,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** runhist.bat 25 Jul 2002 23:01:31 -0000 1.1 --- runhist.bat 8 Aug 2002 23:37:33 -0000 1.2 *************** *** 4,6 **** SET CLASSPATH=..\..\jpiimpl\jpiimpl.jar;..\..\module\javaprofiler.jar;.\;%CLASSPATH% set path=%JAVA_HOME%\bin;%path%;..\..\library\src2 ! java TestAllocHistView --- 4,6 ---- SET CLASSPATH=..\..\jpiimpl\jpiimpl.jar;..\..\module\javaprofiler.jar;.\;%CLASSPATH% set path=%JAVA_HOME%\bin;%path%;..\..\library\src2 ! java TestAllocHistView shmem |
From: Pavel V. <va...@us...> - 2002-08-08 23:35:16
|
Update of /cvsroot/javaprofiler/test/module In directory usw-pr-cvs1:/tmp/cvs-serv2910 Modified Files: TestAllocHistView.java Log Message: used sorting model Index: TestAllocHistView.java =================================================================== RCS file: /cvsroot/javaprofiler/test/module/TestAllocHistView.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** TestAllocHistView.java 8 Aug 2002 00:21:29 -0000 1.8 --- TestAllocHistView.java 8 Aug 2002 23:35:14 -0000 1.9 *************** *** 74,81 **** }); ! JTable table = new AllocHistogramTable( ! new AllocHistogramTableModel( image.getTypes(), ! image, Constants.TYPE ) ! ); table.setPreferredScrollableViewportSize(new Dimension(600, 600)); --- 74,83 ---- }); ! //when you stop using model call model.dispose() ! TableClickSorter sortedModel = new AllocTableClickSorter( ! new AllocHistogramTableModel( image.getTypes(), ! image, Constants.TYPE ) ); ! JTable table = new AllocHistogramTable( sortedModel ); ! sortedModel.addMouseListenerToHeaderInTable(table); table.setPreferredScrollableViewportSize(new Dimension(600, 600)); *************** *** 174,183 **** } public static void main( String[] arg) { ! boolean useShmem = true;//false; ! //if (arg.length >= 1 && (arg[0].compareTo("shmem")==0)) { ! // useShmem = true; ! // System.out.println("Using shared memory."); ! //} // let's run the test --- 176,185 ---- } public static void main( String[] arg) { ! boolean useShmem = false; ! if (arg.length >= 1 && (arg[0].compareTo("shmem")==0)) { ! useShmem = true; ! System.out.println("Using shared memory."); ! } // let's run the test |
From: Pavel V. <va...@us...> - 2002-08-08 23:33:07
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views In directory usw-pr-cvs1:/tmp/cvs-serv2279 Modified Files: TableMap.java Log Message: fix Index: TableMap.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/TableMap.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** TableMap.java 8 Aug 2002 06:45:04 -0000 1.1 --- TableMap.java 8 Aug 2002 23:33:04 -0000 1.2 *************** *** 22,26 **** import javax.swing.table.TableModel; ! import javax.swing.table.DefaultTableModel; import javax.swing.event.TableModelListener; import javax.swing.event.TableModelEvent; --- 22,26 ---- import javax.swing.table.TableModel; ! import javax.swing.table.AbstractTableModel; import javax.swing.event.TableModelListener; import javax.swing.event.TableModelEvent; *************** *** 33,37 **** * @author Pavel Vacha */ ! public class TableMap extends DefaultTableModel implements TableModelListener { //implementation issue --- 33,37 ---- * @author Pavel Vacha */ ! public class TableMap extends AbstractTableModel implements TableModelListener { //implementation issue |
From: Pavel V. <va...@us...> - 2002-08-08 23:32:45
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views In directory usw-pr-cvs1:/tmp/cvs-serv2152 Modified Files: AllocHistogramTable.java Log Message: new design Index: AllocHistogramTable.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/AllocHistogramTable.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** AllocHistogramTable.java 8 Aug 2002 00:18:23 -0000 1.6 --- AllocHistogramTable.java 8 Aug 2002 23:32:42 -0000 1.7 *************** *** 161,169 **** barMax = barMax * 2; - //FIXME??invoke later repaint(); } bar.setValue( (int) ((100*alloc.getLiveInstancesCount())/barMax) ); if (isBordered) { --- 161,173 ---- barMax = barMax * 2; repaint(); } bar.setValue( (int) ((100*alloc.getLiveInstancesCount())/barMax) ); + + //?? + if ( bar.getValue() < 1 && alloc.getLiveInstancesCount() > 0) { + bar.setValue(1); + } if (isBordered) { *************** *** 182,192 **** } } return this; } } //end of Renderers ! ! //editors ! //private class LongStringEditor extends ! } --- 186,205 ---- } } + + //?? + bar.setBackground( Color.white ); + bar.setBorderPainted( false ); + if (isBordered) { + if (isSelected) { + bar.setBackground( table.getSelectionBackground() ); + } else { + bar.setBackground( table.getBackground() ); + } + } + return this; } } //end of Renderers ! } |
From: Pavel V. <va...@us...> - 2002-08-08 23:28:42
|
Update of /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/data In directory usw-pr-cvs1:/tmp/cvs-serv970 Modified Files: SnapshotImpl.java Log Message: fix CreateAndPutInt - GROUP_THREADS Index: SnapshotImpl.java =================================================================== RCS file: /cvsroot/javaprofiler/jpiimpl/net/sourceforge/javaprofiler/jpiimpl/data/SnapshotImpl.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -r1.28 -r1.29 *** SnapshotImpl.java 24 Jul 2002 22:29:22 -0000 1.28 --- SnapshotImpl.java 8 Aug 2002 23:28:37 -0000 1.29 *************** *** 762,766 **** } case IProf.GROUP_THREADS: { ! ThreadGroupData newObj = new ThreadGroupData( sid ); return newObj; } --- 762,773 ---- } case IProf.GROUP_THREADS: { ! ThreadGroupData rf = (ThreadGroupData) refObj; ! Integer parentID = new Integer( ((IProf.sThreadInfo) sid.info).parentObjId); ! ThreadData newObj = new ThreadData( sid, rf, parent, this ); ! rf.addThread( newObj ); ! if (parent != null ) ! parent.addChild( newObj ); ! else //assign parent later ! postOpLst.add( new PostOpThreadData( parentID, newObj ) ); return newObj; } *************** *** 1134,1137 **** --- 1141,1147 ---- /* * $Log$ + * Revision 1.29 2002/08/08 23:28:37 vachis + * fix CreateAndPutInt - GROUP_THREADS + * * Revision 1.28 2002/07/24 22:29:22 vachis * implements new interfaces for getting roots and info |
From: Pavel V. <va...@us...> - 2002-08-08 06:45:10
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views In directory usw-pr-cvs1:/tmp/cvs-serv1728 Added Files: TableMap.java TableClickSorter.java AllocTableClickSorter.java Log Message: models with sorting for JTable --- NEW FILE: TableMap.java --- /* * 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 the Java Profiler module. * The Initial Developers of the Original Code are Jan Stola, Pavel Vacha, * Michal Pise, Petr Luner, Lukas Petru and Marek Przeczek. * Portions created by Jan Stola are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Pavel Vacha are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Michal Pise are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Petr Luner are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Lukas Petru are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Marek Przeczek are Copyright (C) 2000-2001. All Rights Reserved. * * Contributors: Jan Stola, Pavel Vacha, Michal Pise, Petr Luner, * Lukas Petru and Marek Przeczek. */ package net.sourceforge.javaprofiler.module.views; import javax.swing.table.TableModel; import javax.swing.table.DefaultTableModel; import javax.swing.event.TableModelListener; import javax.swing.event.TableModelEvent; /**TableMap is TableModel that forwards all method calls to its model. * Events from the model forwards to its listeners. It designed as super class for * your map models with other funkcionality e.g. sorting. * * @author Pavel Vacha */ public class TableMap extends DefaultTableModel implements TableModelListener { //implementation issue protected TableModel model; /** Creates a new instance of TableMap */ public TableMap( TableModel model ) { this.model = model; this.model.addTableModelListener( this ); } public TableModel getModel() { return model; } public void setModel( TableModel model ) { this.model.removeTableModelListener( this ); this.model = model; this.model.addTableModelListener( this ); } //TableModel interface - forwarding public Object getValueAt(int row, int column) { return model.getValueAt( row, column ); } public void setValueAt(Object aValue, int row, int column) { model.setValueAt( aValue, row, column ); } public String getColumnName(int columnIndex) { return model.getColumnName(columnIndex); } public Class getColumnClass(int columnIndex) { return model.getColumnClass( columnIndex ); } public int getColumnCount() { return model.getColumnCount(); } public int getRowCount() { return model.getRowCount(); } public boolean isCellEditable(int rowIndex, int columnIndex) { return model.isCellEditable( rowIndex, columnIndex ); } //methods for adding/removing listeners inherited from DefaultTableModel //TableModelListener interface public void tableChanged(TableModelEvent e) { fireTableChanged(e); //forward event to our listeners } } --- NEW FILE: TableClickSorter.java --- /* * 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 the Java Profiler module. * The Initial Developers of the Original Code are Jan Stola, Pavel Vacha, * Michal Pise, Petr Luner, Lukas Petru and Marek Przeczek. * Portions created by Jan Stola are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Pavel Vacha are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Michal Pise are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Petr Luner are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Lukas Petru are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Marek Przeczek are Copyright (C) 2000-2001. All Rights Reserved. * * Contributors: Jan Stola, Pavel Vacha, Michal Pise, Petr Luner, * Lukas Petru and Marek Przeczek. */ package net.sourceforge.javaprofiler.module.views; import net.sourceforge.javaprofiler.module.views.TableMap; import javax.swing.JTable; import javax.swing.table.*; import javax.swing.event.TableModelEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.InputEvent; import java.util.*; /**TableClickSorter is TableMap model that provides sorting capabalities. * TableClickSorter doesn't keep model data, it stores only array of indexes and refernce to the model. * This array is reordered during sorting. Request made through getVauleAt(row, col) * are redirected to model via mapping array. * Sorting take place only when user clicks on column; newly added rows goes to * the bottom of the table. * !! You have to register listner on the JTable with * <code> addMouseListenerToHeaderInTable(JTable table) </code> method * * Usage : * * TableModel model1 = new AllocHistogramTableModel(); //or create any another TableModel that you wish * TableClickSorter model = new TableClickSorter(model1); * JTable table = new JTable(model); * model.addMouseListenerToHeaderInTable(table); * * @author Pavel Vacha */ public class TableClickSorter extends TableMap { private int indexes[] = new int[0]; private int usedCount = 0; //number uf used buckets in the indexes[] private ArrayList sortingColumns = new ArrayList(); /** Creates a new instance of TableClickSorter */ public TableClickSorter( TableModel model ) { super( model ); //adds listener, etc. initIndexes(); } public Object getValueAt(int row, int column) { return model.getValueAt(indexes[row], column); } public boolean isCellEditable(int row, int column) { return model.isCellEditable( indexes[row], column ); } public void setValueAt(Object value, int row, int column) { model.setValueAt( value, row, column ); } /** Attention when use this, you need care about synchronization. */ public void setModel(TableModel model) { super.setModel(model); initIndexes(); } public void tableChanged(TableModelEvent e) { switch (e.getType()) { case TableModelEvent.INSERT: addRows( e.getFirstRow(), e.getLastRow() ); break; case TableModelEvent.DELETE: delRows( e.getFirstRow(), e.getLastRow() ); break; case TableModelEvent.UPDATE: //nothing special } super.tableChanged( e ); } // Add a mouse listener to the Table to trigger a table sort // when a column heading is clicked in the JTable. public void addMouseListenerToHeaderInTable(JTable table) { final TableClickSorter sorter = this; final JTable tableView = table; tableView.setColumnSelectionAllowed(false); MouseAdapter listMouseListener = new MouseAdapter() { public void mouseClicked(MouseEvent e) { TableColumnModel columnModel = tableView.getColumnModel(); int viewColumn = columnModel.getColumnIndexAtX(e.getX()); int column = tableView.convertColumnIndexToModel(viewColumn); if (e.getClickCount() == 1 && column != -1) { int shiftPressed = e.getModifiers()&InputEvent.SHIFT_MASK; boolean ascending = (shiftPressed == 0); //PENDING //sorter.sortByColumn(column); } } }; JTableHeader th = tableView.getTableHeader(); th.addMouseListener(listMouseListener); } //---------------- SORTING //comparator public int compare( Object v1, Object v2 ) { //PENDING return 0; } public void sortByColumn( int column, boolean ascending ) { //PENDING sort care about column super.tableChanged( new TableModelEvent(this) ); } //---------------- handling events from TableModel listener private synchronized void initIndexes() { int i; usedCount = getRowCount(); indexes = new int[ (int) Math.ceil( usedCount * 1.1 ) ]; for (i=0; i<usedCount; i++ ) { indexes[i] = i; } } private synchronized void addRows( int first, int last ) { int i; if (first < usedCount) { //repair broken mapping for (i=0; i<usedCount; i++ ) if (indexes[i] >= first ) { indexes[i] += last-first+1; //number of added items } } //add new items condReallocateIndexes( last-first+1 + usedCount ); for ( i=usedCount; i<last-first+1 + usedCount; i++ ) { indexes[i] = first + (usedCount-i); } usedCount = last-first+1 + usedCount; } private synchronized void delRows( int first, int last ) { int i; for (i=0; i<usedCount; i++ ) if (indexes[i] >= first ) { indexes[i] -= last-first+1; //number of deleted items } System.arraycopy( indexes, first, indexes, last+1, usedCount-(last-first+1) ); for( i=usedCount-(last-first+1); i<usedCount; i++ ) indexes[i] = 0; usedCount = usedCount-(last-first+1); condReallocateIndexes( usedCount ); } //PENDING deside whether allocate new array private synchronized void condReallocateIndexes( int newSize ) { int i; int indexes2[] = new int[ (int) Math.ceil(newSize * 1.1) ]; System.arraycopy( indexes, 0, indexes2, 0, usedCount ); indexes = indexes2; } } --- NEW FILE: AllocTableClickSorter.java --- /* * 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 the Java Profiler module. * The Initial Developers of the Original Code are Jan Stola, Pavel Vacha, * Michal Pise, Petr Luner, Lukas Petru and Marek Przeczek. * Portions created by Jan Stola are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Pavel Vacha are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Michal Pise are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Petr Luner are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Lukas Petru are Copyright (C) 2000-2001. All Rights Reserved. * Portions created by Marek Przeczek are Copyright (C) 2000-2001. All Rights Reserved. * * Contributors: Jan Stola, Pavel Vacha, Michal Pise, Petr Luner, * Lukas Petru and Marek Przeczek. */ package net.sourceforge.javaprofiler.module.views; import javax.swing.table.TableModel; /** AllocTableClickSorter is TableClickSorter, in other words: It sorts TableModel for JTable * when you click on column header in JTable instance. * (Actually it sorts only indexes mapping to TableModel). The differnce is that * AllocTableClickSorter can sort AllocStat objects therefore you have to you use this with * AllocHistogramTable and AllocHistogramModel. * * * @author Pavel Vacha * @see TableClickSorter */ public class AllocTableClickSorter extends TableClickSorter { /** Creates a new instance of AllocTableClickSorter */ public AllocTableClickSorter( TableModel model ) { super( model ); } public int compare(Object v1, Object v2) { //PENDING return 0; } } |
From: Pavel V. <va...@us...> - 2002-08-08 00:21:31
|
Update of /cvsroot/javaprofiler/test/module In directory usw-pr-cvs1:/tmp/cvs-serv22640 Modified Files: TestAllocHistView.java Log Message: no message Index: TestAllocHistView.java =================================================================== RCS file: /cvsroot/javaprofiler/test/module/TestAllocHistView.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** TestAllocHistView.java 27 Jul 2002 22:29:03 -0000 1.7 --- TestAllocHistView.java 8 Aug 2002 00:21:29 -0000 1.8 *************** *** 174,179 **** } public static void main( String[] arg) { // let's run the test ! TestAllocHistView test = new TestAllocHistView( true, true ); test.show(); --- 174,186 ---- } public static void main( String[] arg) { + boolean useShmem = true;//false; + + //if (arg.length >= 1 && (arg[0].compareTo("shmem")==0)) { + // useShmem = true; + // System.out.println("Using shared memory."); + //} + // let's run the test ! TestAllocHistView test = new TestAllocHistView( true, useShmem ); test.show(); |
From: Pavel V. <va...@us...> - 2002-08-08 00:21:10
|
Update of /cvsroot/javaprofiler/test/module In directory usw-pr-cvs1:/tmp/cvs-serv22402 Added Files: runhist.sh Log Message: script for linux --- NEW FILE: runhist.sh --- #! /bin/sh export CLASSPATH=../../module/javaprofiler.jar:../../jpiimpl/jpiimpl.jar:./:$CLASSPATH export LD_LIBRARY_PATH=../../library/src/profiler:../../library/src2 java TestAllocHistView |
From: Pavel V. <va...@us...> - 2002-08-08 00:20:31
|
Update of /cvsroot/javaprofiler/test/snapshot In directory usw-pr-cvs1:/tmp/cvs-serv22068 Modified Files: run1.sh run2.sh run3.sh runsnap.sh runsnap2.sh Log Message: fix - changed to relative path Index: run1.sh =================================================================== RCS file: /cvsroot/javaprofiler/test/snapshot/run1.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** run1.sh 25 Jul 2002 08:06:40 -0000 1.1 --- run1.sh 8 Aug 2002 00:20:26 -0000 1.2 *************** *** 1,5 **** #! /bin/sh ! export CLASSPATH=./Notepad.jar:$CLASSPATH ! export LD_LIBRARY_PATH=/home/pavel/Project/javaprof/library/src/profiler:/home/pavel/Project/javaprof/library/src2 #java -Xrunprofiler:commun_type=socket Notepad > out1.txt java -Xrunprofiler:commun_type=shmem Notepad --- 1,5 ---- #! /bin/sh ! export CLASSPATH=${JAVA_HOME}/demo/jfc/Notepad/Notepad.jar:$CLASSPATH ! export LD_LIBRARY_PATH=../../library/src/profiler:../../library/src2 #java -Xrunprofiler:commun_type=socket Notepad > out1.txt java -Xrunprofiler:commun_type=shmem Notepad Index: run2.sh =================================================================== RCS file: /cvsroot/javaprofiler/test/snapshot/run2.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** run2.sh 25 Jul 2002 08:06:40 -0000 1.1 --- run2.sh 8 Aug 2002 00:20:26 -0000 1.2 *************** *** 1,5 **** #! /bin/sh ! export CLASSPATH=./SwingSet2.jar:$CLASSPATH ! export LD_LIBRARY_PATH=/home/pavel/Project/javaprof/library/src/profiler:/home/pavel/Project/javaprof/library/src2 java -Xrunprofiler:commun_type=shmem SwingSet2 #java -Xrunprofiler:commun_type=socket SwingSet2 > out2.txt --- 1,5 ---- #! /bin/sh ! export CLASSPATH=${JAVA_HOME}/demo/jfc/SwingSet2/SwingSet2.jar:$CLASSPATH ! export LD_LIBRARY_PATH=../../library/src/profiler:../../library/src2 java -Xrunprofiler:commun_type=shmem SwingSet2 #java -Xrunprofiler:commun_type=socket SwingSet2 > out2.txt Index: run3.sh =================================================================== RCS file: /cvsroot/javaprofiler/test/snapshot/run3.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** run3.sh 25 Jul 2002 08:06:40 -0000 1.1 --- run3.sh 8 Aug 2002 00:20:26 -0000 1.2 *************** *** 1,4 **** #! /bin/sh ! export LD_LIBRARY_PATH=/home/pavel/Project/javaprof/library/src/profiler:/home/pavel/Project/javaprof/library/src2 #java -Xrunprofiler:commun_type=socket TestNoSwing > out3.txt java -Xrunprofiler:commun_type=shmem TestNoSwing --- 1,4 ---- #! /bin/sh ! export LD_LIBRARY_PATH=../../library/src/profiler:../../library/src2 #java -Xrunprofiler:commun_type=socket TestNoSwing > out3.txt java -Xrunprofiler:commun_type=shmem TestNoSwing Index: runsnap.sh =================================================================== RCS file: /cvsroot/javaprofiler/test/snapshot/runsnap.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** runsnap.sh 25 Jul 2002 08:06:40 -0000 1.1 --- runsnap.sh 8 Aug 2002 00:20:26 -0000 1.2 *************** *** 1,4 **** #! /bin/sh ! export CLASSPATH=/home/pavel/Project/javaprof/jpiimpl/jpiimpl.jar:./:$CLASSPATH ! export LD_LIBRARY_PATH=/home/pavel/Project/javaprof/library/src/profiler:/home/pavel/Project/javaprof/library/src2 java TestSnap --- 1,4 ---- #! /bin/sh ! export CLASSPATH=../../jpiimpl/jpiimpl.jar:./:$CLASSPATH ! export LD_LIBRARY_PATH=../../library/src/profiler:../../library/src2 java TestSnap Index: runsnap2.sh =================================================================== RCS file: /cvsroot/javaprofiler/test/snapshot/runsnap2.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** runsnap2.sh 25 Jul 2002 08:06:40 -0000 1.1 --- runsnap2.sh 8 Aug 2002 00:20:26 -0000 1.2 *************** *** 1,4 **** #! /bin/sh ! export CLASSPATH=/home/pavel/Project/javaprof/jpiimpl/jpiimpl.jar:./:$CLASSPATH ! export LD_LIBRARY_PATH=/home/pavel/Project/javaprof/library/src/profiler:/home/pavel/Project/javaprof/library/src2 java TestSnap2 --- 1,4 ---- #! /bin/sh ! export CLASSPATH=../../jpiimpl/jpiimpl.jar:./:$CLASSPATH ! export LD_LIBRARY_PATH=../../library/src/profiler:../../library/src2 java TestSnap2 |
From: Pavel V. <va...@us...> - 2002-08-08 00:18:29
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views In directory usw-pr-cvs1:/tmp/cvs-serv21136 Modified Files: AllocHistogramTable.java Log Message: fix - size of columns Index: AllocHistogramTable.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/AllocHistogramTable.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** AllocHistogramTable.java 31 Jul 2002 16:54:41 -0000 1.5 --- AllocHistogramTable.java 8 Aug 2002 00:18:23 -0000 1.6 *************** *** 48,60 **** TableColumnModel cmodel = getColumnModel(); //set width for column with histogram and string ! for (i=1; i < cmodel.getColumnCount(); i++ ) { clazz = model.getColumnClass(i); if ( clazz == String.class ) { ! cmodel.getColumn(i).setPreferredWidth(500); //JTextField textField = new JTextField(); //column.setCellEditor( new DefaultCellEditor( textField ) ); } else if ( clazz == AllocStat.class ) { ! cmodel.getColumn(i).setPreferredWidth(250); } } --- 48,60 ---- TableColumnModel cmodel = getColumnModel(); //set width for column with histogram and string ! for (i=0; i < cmodel.getColumnCount(); i++ ) { clazz = model.getColumnClass(i); if ( clazz == String.class ) { ! cmodel.getColumn(i).setPreferredWidth(250); //JTextField textField = new JTextField(); //column.setCellEditor( new DefaultCellEditor( textField ) ); } else if ( clazz == AllocStat.class ) { ! cmodel.getColumn(i).setPreferredWidth(200); } } |
From: Lukas P. <pe...@us...> - 2002-08-07 18:20:43
|
Update of /cvsroot/javaprofiler/test/module In directory usw-pr-cvs1:/tmp/cvs-serv5935 Modified Files: MainThreads.java Log Message: shmem connecting enabled Index: MainThreads.java =================================================================== RCS file: /cvsroot/javaprofiler/test/module/MainThreads.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** MainThreads.java 29 Jul 2002 16:44:57 -0000 1.4 --- MainThreads.java 7 Aug 2002 17:43:12 -0000 1.5 *************** *** 72,75 **** --- 72,76 ---- ActiveThreadsView view=new ActiveThreadsView(image); + view.setBorder(BorderFactory.createLineBorder(Color.GREEN)); frame.getContentPane().add(view, BorderLayout.CENTER); *************** *** 87,91 **** private static IProf connect (String hostName) { ! IProf iprof = new IProf(new CommunSetupSocket(CommunSetupSocket. CLIENT_MODE, hostName, 25595)); try { --- 88,96 ---- private static IProf connect (String hostName) { ! IProf iprof; ! if (hostName.compareTo("shmem")==0) { ! iprof = new IProf(new CommunSetupShMem()); ! } else ! iprof = new IProf(new CommunSetupSocket(CommunSetupSocket. CLIENT_MODE, hostName, 25595)); try { *************** *** 102,106 **** if (arg.length >= 1) hostName = arg[0]; ! System.out.println("host: " + hostName); IProf iprof = connect(hostName); --- 107,114 ---- if (arg.length >= 1) hostName = arg[0]; ! if (hostName.compareTo("shmem")==0) ! System.out.println("Shared memory."); ! else ! System.out.println("host: " + hostName); IProf iprof = connect(hostName); |
From: Lukas P. <pe...@us...> - 2002-08-07 18:17:14
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views In directory usw-pr-cvs1:/tmp/cvs-serv5075 Modified Files: ActiveThreadsView.java Log Message: inner area color set Index: ActiveThreadsView.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/ActiveThreadsView.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** ActiveThreadsView.java 30 Jul 2002 12:23:04 -0000 1.2 --- ActiveThreadsView.java 7 Aug 2002 17:42:06 -0000 1.3 *************** *** 62,66 **** graph=new TimeSeriesGraph(); ! graph.setGraphColor(new java.awt.Color(0x008000)); add(graph, BorderLayout.CENTER); --- 62,67 ---- graph=new TimeSeriesGraph(); ! graph.setGraphColor(new java.awt.Color(0x009000)); ! graph.setInnerColor(java.awt.Color.WHITE); add(graph, BorderLayout.CENTER); |