From 0d0f7912854a6ac5b611d4233e4555783db42553 Mon Sep 17 00:00:00 2001 From: halw Date: Wed, 3 Mar 2010 21:57:22 +0000 Subject: [PATCH] Author:halw Date:2010-03-03T21:09:17.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@500 abb3cda0-5349-4a8f-a601-0c33ac3a8c38 --- .../_images/es_gt_feature_tool_callers_01.png | Bin 0 -> 21102 bytes .../es_gt_feature_tool_callers_01.png.data | 3 + .../browsing-features.wiki | 59 +++++++++++------- 3 files changed, 40 insertions(+), 22 deletions(-) create mode 100644 documentation/current/eiffelstudio/_images/es_gt_feature_tool_callers_01.png create mode 100644 documentation/current/eiffelstudio/_images/es_gt_feature_tool_callers_01.png.data diff --git a/documentation/current/eiffelstudio/_images/es_gt_feature_tool_callers_01.png b/documentation/current/eiffelstudio/_images/es_gt_feature_tool_callers_01.png new file mode 100644 index 0000000000000000000000000000000000000000..3e2e31cce8eabf551313eeeaa5d6b33fd4597b4d GIT binary patch literal 21102 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≀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 window if you are reading this in HTML!) opened to look up the generated documentation in the previous section. +Let us get back to EiffelStudio. Before studying the documentation generation we saw how to display properties of '''classes'''. It's also interesting to explore the properties of '''features'''. -Before studying the documentation generation we saw how to display properties of classes. It's also interesting to explore the properties of features. Let's look at this now, through the Feature View. +There are two tools with similar sounding names that we will use to explore features: +# The [[Features Tool|Features tool]] (plural) which provides a list of the immediate features of the class on which the development window is targeted. This tool is located by default in the vertical pane on the right hand side of the development window. +# The Feature tool (singular) which allows you to explore the properties of some particular feature. By default, the Feature tool is available as a tab on the lower pane of the development window along with the Class tool, Outputs tool, and others. Your Development Window should still be targeted to class LIST, from the last view, Routines, that you displayed on it. If you've lost it, just retarget a Development Window to this class. -If the Features Tool is not visible, bring it back by clicking the Features button on the top toolbar, used earlier to remove it. +Let's start by making the [[Features Tool|Features tool]] visible. To see the Features tool click on the tab labeled [[Image:features-tab]] (note that this is the plural "Features" versus the singular "Feature"). -(Another way is through the menu entry View --> Tools --> Features ). +If the tab for the Features tool is not visible, bring it back by following the menu path: + + View --> Tools --> Features + + +While we are at it, let's get make the Feature tool visible as well. Click on the tab on the lower pane that's labeled [[Image:feature-tab]]. As with the Features tool, if the Feature tab is missing, you can use the menu path to restore it. + +One more thing, and we'll look at some features. If you restarted EiffelStudio since you worked through the [[Viewing Classes]] section, you may have to select Link Context Tool again from the View menu. ==Targeting to a feature== -The list of features, organized by feature clauses, appears on the left: +The list of features, organized by feature clauses, appears in the Features tool: -[[Image:index-51]] +[[Image:es gt features tool 01]] -The class only has a few immediate features because most of its interesting features are inherited. Make sure the Editing Tool is tall enough (as on the above figure) and click the feature forth, the last one, in the Feature Tree on the left. This makes the feature the Editing Tool's current target, and scrolls the text to its declaration: +The class only has a few immediate features because most of its interesting features are inherited. Make sure the Editor tool is tall enough (as on the above figure) and click the feature forth, the last one, in the Feature Tree on the left. This makes the feature the Editor tool's current target, and scrolls the text to its declaration: -[[Image:index-52]] +[[Image:es gt features tool 02]] Note how both of the top target fields are now filled: the first one shows the target class, LIST, and the second one shows the target feature, forth. ==Basic feature information== -Now let's look at the feature views. Click the Feature Tab at the bottom of the Context Tool. +Now let's look at the views of the feature forth provided in the Feature tool. -This brings up basic information on the selected feature in the Context Tool. +A view of forth is already visible in the Feature tool. By default, it is the Flat view. -The bottom Context Tool shows one of the Feature views, by default Flat. The flat view of a feature, similar in concept to the flat view of a class, gives the full text of a feature, taking into account any inherited precondition or postcondition clauses. Here the feature as declared in the class appears in the top Editing Tool, with no precondition and an ensure then postcondition clause. But it's a redefinition of an inherited feature; the flat view in the bottom Context Tool shows the full precondition, inherited from the ancestor LINEAR, as well as the postcondition from LIST. +[[Image:es gt feature tool 01]] -Flat is just one of the available Feature Views, shown by the buttons on the Feature View toolbar +The flat view of a feature, similar in concept to the flat view of a class, gives the full text of a feature, taking into account any inherited precondition or postcondition clauses. Here the feature as declared in the class appears in the top Editing Tool, with no precondition and an ensure then postcondition clause. But it's a redefinition of an inherited feature; the flat view in the bottom Context Tool shows the full precondition, inherited from the ancestor LINEAR, as well as the postcondition from LIST. -Text gives the feature text, fully clickable. +Flat is just one of the available Feature Views, shown by the buttons on the toolbar of the Feature tool. + +[[Image:es gt feature tool toolbar buttons 01]] + +You can mouse-over the different buttons to see the views they represent. + +Just to the left of Flat, Basic Text gives the feature text, fully clickable.
==Who calls this feature?== -Next to Flat is Callers. Try it now by clicking the corresponding button (the following figure and the next only show the Context Tool, where the views appear): +To the right of Flat is Callers. Try it now by clicking the corresponding button. You may have to scroll down some in the display to see the series of entries show in the image below; -[[Image:index-55]] +[[Image:es gt feature tool callers 01]] -This view shows all the places in the system that call the routine, or one of its redefinitions. Such information can be invaluable for debugging in particular. The successive paragraphs correspond to the various versions of forth in class LIST, its ancestors and its descendants. Reading from the top we see that: +This view shows all the places in the system that call the routine, or one of its redefinitions. Such information can be invaluable for debugging in particular. The successive paragraphs correspond to the various versions of forth in class LIST, its ancestors and its descendants. Reading from the top we'll examine a few entries: * The version from LIST is called in LIST itself by the function is_equal. -* The version from LIST's descendant ARRAYED_CIRCULAR is not called directly in this system, although it '''could''' be called through dynamic binding (on an entity declared of type LIST but dynamically attached to an instance of ARRAYED_CIRCULAR). -* About 60% down, forth from ARRAYED_LIST, a version in another descendant of LIST, is called by two routines of ARRAYED_CIRCULAR, one routine of ARRAYED_LIST, and two routines of MULTI_ARRAY_LIST. -* Also note, in the following entry, that after renaming forth is called back in the descendant ARRAYED_STACK. - -The following five view buttons are similar except that they let you precise what kind of callers you are looking for, or what is being called by the currently selected feature. +* The version from LIST is called in routines in two debugger classes RT_DBG_CALL_RECORD and RT_DBG_COMMON +* The version forth from MULTI_ARRAY_LIST is a version in a descendant of LIST, and is called by three routines of MULTI_ARRAY_LIST itself: duplicate, put_right, and remove_right. +* Although it is not shown in the figure, if you scroll around some, you will find cases in which a descendant of forth has been renamed and that renamed version is called. For example child_forth from LINKED_TREE is descendant version of forth and is called by routines in LINKED_CURSOR_TREE and LINKED_TREE. + +The following five view buttons are similar except that they let you specify what kind of callers you are looking for, or what is being called by the currently selected feature. Feel free to explore these views. ==What happens to my feature through the inheritance hierarchy?== @@ -55,7 +70,7 @@ After the caller/callee views, the next view button is Implementers This is a very useful view, showing all the ancestors and descendants of LIST that provide a separate version of forth, including the original introduction of this feature in LINEAR and subsequent redeclarations (redefinitions or effectings). The mention (version from) signals the version applicable to the current class, here LIST. -Since all class and feature names on these views are hyperlinks, you can display any of the listed versions in a new Development Window by control-right-clicking it (we will see shortly how to display it in the same tool). Right-click on the feature name forth on the line that reads MULTI_ARRAY_LIST forth. This brings up a context menu and chose Show --> Text. The tool is now targeted to the routine forth from MULTI_ARRAY_LIST, so that you can see the implementation of the routine in that class. +Since all class and feature names on these views are hyperlinks, you can display any of the listed versions in a new Development Window by control-right-clicking it (we will see shortly how to display it in the ''same'' tool). Right-click on the feature name forth on the line that reads MULTI_ARRAY_LIST forth. This brings up a context menu and chose Show --> Text. The tool is now targeted to the routine forth from MULTI_ARRAY_LIST, so that you can see the implementation of the routine in that class. We still have two unexplored views, Ancestor versions and Descendant versions. Click the first of these to obtain the ancestor versions of forth from MULTI_ARRAY_LIST.