[[BackLinksMenu]] [[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|)]] = 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 == [wiki:PRO_LIB_CORE_TUTORIAL_R0] [[BR]] [wiki: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 = * See http://www.sophie2.org/trac/ticket/196 for comments on additional task requirements that can be implemented if there is time left. --boyan@2009-02-02