Version 2 (modified by deyan, 16 years ago) (diff) |
---|
Analysis
Overview
Some new features of the PRO_LIB_INSPECTOR should be added in order to make it more useful.
Task requirements
The following new features of the Inspector should be implemented:
- String representation view - there should be a trigger to view certain objects in their toString() representation instead of a tree-like structure. This would help debugging by viewing complex classes and list-like objects in a simple and human readable String form.
- Static methods filter view - there should be a trigger which filters out all static methods from the tree-like representation of the inspected objects. This would help debugging of objects which are instances of classes with a huge amount of static fields (like some Swing components, for example).
- Multiple Inspector instances - not only one but a multitude of Inspector instances should be available to the user.
- the user should be able to easily create a new instance of the Inspector (by cloning the existing one, for example),
- each Inspector instance should have its own root element. This means that the user should have an option to select a certain object as a root of each Inspector instance instead of having a hardcoded one as a default.
- the user should be able to easily change the root of a given Inspector instance by:
- selecting the parent of the current root to be the new root, if such is available,
- selecting a given object in the tree-like representation of the current root and making it the new root,
- specifying a custom object as a root of the new Inspector instance. Doing so might be tricky so a clever way of handling this should be devised, if possible.
Task result
- code modifications in the core.prolib.inspector module,
- ideas for other useful features in the comments section, if any
Implementation idea
- use reflection to filter out static methods
Related
PRO_LIB_CORE_TUTORIAL_R0
PRO_LIB_INSPECTOR_R0
How to demo
- Run Sophie 2.0,
- Turn on and off String representation view,
- Turn on and off Static methods filter view,
- Create a new Inspector instance and change its root
Design
Implementation
(Implementation results should be described and linked here (from the wiki or the repository))
Testing
Comments
(Write comments for this or later revisions here.)