Author:halw
Date:2010-03-11T21:40:07.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@513 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
halw
2010-03-11 21:40:07 +00:00
parent 8c6efdaba6
commit 87ecfd5f0f

View File

@@ -3,6 +3,7 @@
[[Property:uuid|cb6c2e52-d238-9b55-0b78-ab3af9568550]]
It was important to take a look at how EiffelStudio stores your project, but unless your idea of fun is to poke around directories to look at compiler-generated files that's not really the exciting part yet. Among the most innovative aspects of EiffelStudio is a unique set of facilities to "browse" through a software system.
==Browsing style==
Browsing -- traversing the structure -- is particularly important in object-oriented development and especially in Eiffel because of the speed at which you can construct sophisticated class structures, making use of inheritance, genericity, the client relation and information hiding, and subjecting features to all kinds of adaptations -- renaming, redefinition, undefinition, effecting -- that are key to the expressive power of the software, but call for smart tools to keep track of what's going on. EiffelStudio's tools are second to none. Among their key properties:
@@ -11,6 +12,7 @@ Browsing -- traversing the structure -- is particularly important in object-orie
* Although classes are stored in files and clusters in directories, you can for the most part forget about the file system. Unlike most environments, which let you manipulate files containing software texts, EiffelStudio lets you concentrate on your <span>development objects</span> -- the units that make sense for you: features, classes, clusters, systems. You think in terms of those conceptual units, and don't have to worry about where they are stored. Most of the time, you'll just forget about files and directories.
* You can produce many views of the development objects. For a class, you may see the full text, the interface only, the inheritance structure, the clients, the features, and many other views. You can even display <span>graphical</span> views along with textual ones. All these are fully browsable; you can go from one to the other as you please.
==A Development Window==
Let's see how this works. First, take a look at the EiffelStudio window:
@@ -27,6 +29,7 @@ So far we have talked about "the EiffelStudio window", but in fact that's not co
Whether you have one development window or many, each may have as its '''target''' an element of the system: system, cluster, class (the most common case), feature, run-time object. This simply means that the tool displays information about that element.
==Retargeting by name==
In our first look at the development window, the Editor tool was empty. To target it to a specific class, you can just type the class name -- if you know it -- into the '''Class field''' at the top left:
@@ -74,6 +77,7 @@ Our second technique for retargeting a development window to a class (other than
As the tool is now targeted to <code>LIST</code>, the Class Field at the top left now shows the name of that class, exactly as if we had typed that name, the way we did with <code>STRING_32</code> in the previous method of retargeting.
==Moving back and forth==
Here now is a third way to retarget. Towards the top-left part of the development window there are <code>Back</code> and <code>Forth</code> buttons, which will enable you to revisit classes already seen during the current session:
@@ -84,6 +88,7 @@ Click the <code>Back</code> button. This retargets the tool to the class you vis
Note that all buttons of the interface have a "tooltip" as shown in the figure above. if you move the cursor on a button, '''without clicking''', and wait a second or so, a small message comes up, explaining the purpose of the button. Also, if there is an associated keyboard shortcut, it will be displayed in the tooltip.
==The Target History==
As a fourth way to retarget -- there are more, and after this one we'll stop counting -- you can also use the Target History menu, which you can bring up through the little arrow to the right of the Class Field:
@@ -92,24 +97,25 @@ As a fourth way to retarget -- there are more, and after this one we'll stop cou
If you click this arrow -- the little black triangle -- you will see a menu of all your recent targets. Doing this now will only show the two classes visited so far, <code>STRING_32</code> and <code>LIST</code>, but later on there will be more entries. By default EiffelStudio remembers 20 history entries; this is one of the settings you can change later if you wish, through the menu path:
<code lang=text>
Tools --> Preferences
Tools --> Preferences
</code>
But, let's don't do that now.
==Adding to Favorites==
If you find yourself often needing to examine a particular class, you can add it to your [[Favorites tool|Favorites]], much like adding an interesting page's web link to the bookmarks of a Web browser.
It's easy to add the current target -- currently, <code>LIST</code> -- to your Favorites. Do it now by following the menu path:
<code lang="text">
Favorites --> Add to Favorites
Favorites --> Add to Favorites
</code>
[[Image:es gt add to favorites 01]]
Now display the favorites; one way is to go back to that same Favorites menu:
<code lang="text">
Favorites --> Favorites
Favorites --> Favorites
</code>
The Favorites tool appears as a tab in the same area as the Groups tool:
@@ -126,6 +132,7 @@ Right now we don't need the Favorites tool, so you can get rid of it by clicking
After you close the Favorites tool, you may see some tool other than the Groups tool that we had been using. If this is the case, click on the Groups tool's tab at the bottom of the pane to make the library classes visible again.
==Using additional Editor tool tabs==
So far, even though we've targeted to the development window to different classes, we've only used one Editor tab. But it is helpful sometimes to have views of several classes handy in multiple editor tabs. Its easy enough to create a new tab at the time that you target the development window to a new class. For example, you should see the class <code>CHAIN</code> in the Groups tool's view of the the <code>list</code> subcluster of <code>structures</code> (the same place we found class <code>LIST</code>. Instead of clicking on <code>CHAIN</code> the way we did <code>LIST</code>, this time '''control-right-click''' on <code>CHAIN</code>, that is to say, click with the rightmost button of the mouse while holding the CONTROL key on the keyboard. This creates a new tab for <code>CHAIN</code> and retargets the development window to that class, while sliding the existing tab for class <code>LIST</code> to the right a bit.
@@ -144,24 +151,24 @@ With all the techniques seen so far, you were able to retarget the current the d
To create a new development window, follow the menu path:
<code lang="text">
File --> New Window
File --> New Window
</code>
This will create a new development window with a title bar that reads "<code lang=text>Empty development tool #1</code>" because the window is (as yet) untargeted. You can also create a new development window by using the keyboard accelerator: <code>CTRL-N</code>.
You can close a development window either by clicking its close button in the corner of the window, or by following the menu path:
<code lang="text">
File --> Close Window
File --> Close Window
</code>
Be careful not to try to use:
<code lang="text">
File --> Exit
File --> Exit
</code>
to close a single window. This menu command will exit the entire EiffelStudio development environment, closing all windows.
If, during a session, you end up with a number of windows active and want to see an active index to them, you can invoke the [[Windows tool|active windows tool]] by following the menu path:
<code lang="text">
View--> Tools--> Active windows
View--> Tools--> Active windows
</code>
[[Image:es gt active windows tool 01]]