wiki:PRO_LIB_INSPECTOR_R1
Last modified 16 years ago Last modified on 02/02/09 16:32:13

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=PRO_LIB_INSPECTOR_R1, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

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

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