| 1 | [[BackLinksMenu]] |
| 2 | |
| 3 | [[TicketQuery(summary=TASK_NAME_HERE, 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|)]] |
| 4 | |
| 5 | |
| 6 | |
| 7 | = Analysis = |
| 8 | == Overview == |
| 9 | Some new features of the PRO_LIB_INSPECTOR should be added in order to make it more useful. |
| 10 | |
| 11 | == Task requirements == |
| 12 | The following new features of the Inspector should be implemented: |
| 13 | |
| 14 | * '''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. |
| 15 | * '''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). |
| 16 | * '''Multiple Inspector instances''' - not only one but a multitude of Inspector instances should be available to the user. |
| 17 | * the user should be able to easily create a new instance of the Inspector (by cloning the existing one, for example), |
| 18 | * 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. |
| 19 | * the user should be able to easily change the root of a given Inspector instance by: |
| 20 | * selecting the parent of the current root to be the new root, if such is available, |
| 21 | * selecting a given object in the tree-like representation of the current root and making it the new root, |
| 22 | * 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. |
| 23 | |
| 24 | == Task result == |
| 25 | * code modifications in the core.prolib.inspector module, |
| 26 | * ideas for other useful features in the comments section, if any |
| 27 | |
| 28 | == Implementation idea == |
| 29 | * use reflection to filter out static methods |
| 30 | |
| 31 | == Related == |
| 32 | [wiki:PRO_LIB_CORE_TUTORIAL_R0] [[BR]] |
| 33 | [wiki:PRO_LIB_INSPECTOR_R0] |
| 34 | |
| 35 | == How to demo == |
| 36 | * Run Sophie 2.0, |
| 37 | * Turn on and off String representation view, |
| 38 | * Turn on and off Static methods filter view, |
| 39 | * Create a new Inspector instance and change its root |
| 40 | |
| 41 | = Design = |
| 42 | |
| 43 | = Implementation = |
| 44 | ^(Implementation results should be described and linked here (from the wiki or the repository))^ |
| 45 | |
| 46 | = Testing = |
| 47 | |
| 48 | = Comments = |
| 49 | ^(Write comments for this or later revisions here.) |