mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-08 15:52:26 +01:00
Author:halw
Date:2009-01-27T01:57:16.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@171 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -4,88 +4,88 @@
|
||||
All actions taken in the diagram tool that modify a part of the system are immediately reflected in the Eiffel system. Following is a summary of these actions.
|
||||
* When you create a new class, this is the generated empty class: <br/>
|
||||
<code>
|
||||
indexing
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
|
||||
revision: "$Revision: 74646 $"
|
||||
note
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
|
||||
revision: "$Revision: 74646 $"
|
||||
|
||||
class
|
||||
CLASS_NAME
|
||||
CLASS_NAME
|
||||
|
||||
end -- class CLASS_NAME
|
||||
</code>
|
||||
|
||||
* When you delete a class, the class file is removed from the disk.
|
||||
* When you add a parent to a class, the parent is inserted in the existing inheritance clause, ''without'' any additional ( <code> undefine </code>/ <code> select </code>/etc.) clauses to solve possible conflicts. <br/>
|
||||
* When you add a parent to a class, the parent is inserted in the existing inheritance clause, ''without'' any additional ( <code>undefine</code>/ <code>select</code>/etc.) clauses to solve possible conflicts. <br/>
|
||||
<code>
|
||||
indexing
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
|
||||
revision: "$Revision: 74646 $"
|
||||
note
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
|
||||
revision: "$Revision: 74646 $"
|
||||
|
||||
class
|
||||
CLASS_NAME
|
||||
CLASS_NAME
|
||||
|
||||
inherit
|
||||
NEW_PARENT
|
||||
NEW_PARENT
|
||||
|
||||
end -- class CLASS_NAME
|
||||
</code>
|
||||
|
||||
* When removing an inheritance link, the entire parent clause is removed, i.e. including any <code> redefine </code>/ <code> undefine </code>/etc. until the matching <code> end </code>.
|
||||
* When removing an inheritance link, the entire parent clause is removed, i.e. including any <code>redefine</code>/<code>undefine</code>/etc. until the matching <code>end</code>.
|
||||
* When creating a client link, a function or attribute is generated by the feature wizard. When creating a function, this code is generated: <br/>
|
||||
<code>
|
||||
indexing
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
|
||||
revision: "$Revision: 74646 $"
|
||||
note
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
|
||||
revision: "$Revision: 74646 $"
|
||||
|
||||
class
|
||||
CLASS_NAME
|
||||
CLASS_NAME
|
||||
|
||||
feature -- Access
|
||||
|
||||
f: TYPE is
|
||||
-- Client from CLASS_NAME to TYPE.
|
||||
do
|
||||
end
|
||||
f: TYPE
|
||||
-- Client from CLASS_NAME to TYPE.
|
||||
do
|
||||
end
|
||||
|
||||
end -- class CLASS_NAME
|
||||
</code>
|
||||
|
||||
* If you choose to create an attribute for the client link, and optionally specify to generate a set-procedure and an invariant, the following code will be pasted into the class text: <br/>
|
||||
<code>
|
||||
indexing
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
|
||||
revision: "$Revision: 74646 $"
|
||||
note
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
|
||||
revision: "$Revision: 74646 $"
|
||||
|
||||
class
|
||||
CLASS_NAME
|
||||
CLASS_NAME
|
||||
|
||||
feature -- Access
|
||||
|
||||
f: TYPE is
|
||||
-- Client from CLASS_NAME to TYPE.
|
||||
f: TYPE
|
||||
-- Client from CLASS_NAME to TYPE.
|
||||
|
||||
feature -- Element change
|
||||
|
||||
set_f (a_f: TYPE) is
|
||||
-- Client from CLASS_NAME to TYPE.
|
||||
require
|
||||
a_f_not_void: af /= Void
|
||||
do
|
||||
f := a_f
|
||||
ensure
|
||||
f_assigned: f = a_f
|
||||
end
|
||||
set_f (a_f: TYPE)
|
||||
-- Client from CLASS_NAME to TYPE.
|
||||
require
|
||||
a_f_not_void: af /= Void
|
||||
do
|
||||
f := a_f
|
||||
ensure
|
||||
f_assigned: f = a_f
|
||||
end
|
||||
|
||||
invariant
|
||||
f_not_void: f /= Void
|
||||
f_not_void: f /= Void
|
||||
|
||||
end -- class CLASS_NAME
|
||||
</code>
|
||||
|
||||
@@ -3,49 +3,74 @@
|
||||
[[Property:uuid|c0ea47ac-e616-0762-b1bf-53d87df8ce9f]]
|
||||
The toolbar of the diagram contains these buttons:
|
||||
* [[Image:diagram-target-cluster-or-class-icon]] Target to cluster or class <br/>
|
||||
Drop a class or a cluster on this icon to build the corresponding diagram.
|
||||
**Drop a class or a cluster on this icon to build the corresponding diagram.
|
||||
|
||||
* [[Image:new-inheritance-link-icon]] [[Creating inheritance links|Create new inheritance links]] <br/>
|
||||
Selecting this button allows you to create inheritance, client-supplier or aggregate links by picking from one class and dropping on the other.
|
||||
**Selecting this button allows you to create inheritance, client-supplier or aggregate links by picking from one class and dropping on the other.
|
||||
|
||||
* [[Image:16x16--new-class-icon]] [[Creating a new class|Create a new class]] <br/>
|
||||
Pick from this button and drop on the diagram to add a new class.
|
||||
**Pick from this button and drop on the diagram to add a new class.
|
||||
|
||||
* [[Image:general-undo-icon]] [[Undoing and redoing|Undo last action]] <br/>
|
||||
Click to undo the last action.
|
||||
**Click to undo the last action.
|
||||
|
||||
* [[Image:general-undo-history-icon]] [[Undoing and redoing|History tool]] <br/>
|
||||
Click to open the '''History tool'''.
|
||||
**Click to open the '''History tool'''.
|
||||
|
||||
* [[Image:general-redo-icon]] [[Undoing and redoing|Redo last action]] <br/>
|
||||
Click to redo the last undone action.
|
||||
**Click to redo the last undone action.
|
||||
|
||||
* [[Image:general-reset-icon]] [[Removing items from a view|Remove figure]] <br/>
|
||||
Drop figures in this hole that you want to remove from the view only.
|
||||
**Drop figures in this hole that you want to remove from the view only.
|
||||
|
||||
* [[Image:diagram-choose-color-icon]] [[Changing colors of classes|Change color]] <br/>
|
||||
Drop class bubbles in this hole to change their color, or click this button and change the color of all class bubbles at once.
|
||||
**Drop class bubbles in this hole to change their color, or click this button and change the color of all class bubbles at once.
|
||||
|
||||
* [[Image:diagram-fill-cluster-icon]] [[Retrieving all classes into a cluster|Include all classes of cluster]] <br/>
|
||||
Drop a cluster in this hole to show all classes of the cluster in this view.
|
||||
**Drop a cluster in this hole to show all classes of the cluster in this view.
|
||||
|
||||
* [[Image:diagram-depth-of-relations-icon]] [[Changing system exploration depth|Select depth of relations]] <br/>
|
||||
Click to bring up the '''Select depth''' dialog.
|
||||
**Click to bring up the '''Select depth''' dialog.
|
||||
|
||||
* [[Image:diagram-zoom-out-icon]] [[Zooming a diagram|Zoom out]] <br/>
|
||||
Shrink the diagram.
|
||||
**Shrink the diagram.
|
||||
|
||||
* [[Image:diagram-fit-to-screen-icon]] [[Zooming a diagram|Fit Diagram to Screen]] <br/>
|
||||
Fit the diagram to the screen dimensions so it is all visible.
|
||||
**Fit the diagram to the screen dimensions so it is all visible.
|
||||
|
||||
* [[Image:diagram-zoom-in-icon]] [[Zooming a diagram|Zoom in]] <br/>
|
||||
Enlarge the diagram.
|
||||
**Enlarge the diagram.
|
||||
|
||||
* [[Image:diagram-inheritance-link-icon]] [[Showing or hiding links and labels|Show/hide inheritance links]] <br/>
|
||||
Toggle visibility of all inheritance links in the view.
|
||||
**Toggle visibility of all inheritance links in the view.
|
||||
|
||||
* [[Image:diagram-supplier-link-icon]] [[Showing or hiding links and labels|Show/hide client-supplier links]] <br/>
|
||||
Toggle visibility of all client-supplier links in the view.
|
||||
**Toggle visibility of all client-supplier links in the view.
|
||||
|
||||
* [[Image:diagram-show-labels-icon]] [[Showing or hiding links and labels|Show/hide labels]] <br/>
|
||||
Toggle visibility of all client link labels in the view.
|
||||
**Toggle visibility of all client link labels in the view.
|
||||
|
||||
* [[Image:diagram-export-to-png-icon]] [[Exporting a diagram to PNG image file|Export diagram to.png]] <br/>
|
||||
Click to generate a .png file from current view.
|
||||
**Click to generate a .png file from current view.
|
||||
|
||||
* [[Image:diagram-toggle-quality-icon]] Toggles the drawing quality.
|
||||
|
||||
* [[Image:diagram-toogle-physics-icon]] Toggles the physics mode on and off.
|
||||
|
||||
* [[Image:diagram-view-uml-icon]] Toggles view between BON notation and UML.
|
||||
|
||||
* [[Image:diagram-anchor-icon]] Allows to anchor or unanchor a class/cluster figure.
|
||||
|
||||
* [[Image:diagram-physics-settings-icon]] Displays physics settings dialog to control physics behavour.
|
||||
|
||||
* [[Image:16x16--general-delete-icon]] [[Deleting items|Delete]] <br/>
|
||||
Drop items in this hole to remove them from the system.
|
||||
**Drop items in this hole to remove them from the system.
|
||||
|
||||
* [[Image:diagram-show-legend-icon]] Toggle cluster color legend.
|
||||
|
||||
* [[Image:diagram-force-right-angles-icon]] [[Using the link tool|Put handles on a link]] <br/>
|
||||
Click on this button to toggle right angles on all links in the view. Drop a link on it to bring up the link tool for that link.
|
||||
**Click on this button to toggle right angles on all links in the view. Drop a link on it to bring up the link tool for that link.
|
||||
|
||||
In addition to these toolbar buttons there is also a drop down list for selecting various zoom percentages on the current view, and a view list for switching between previously saved views/layouts of various parts of the system.
|
||||
|
||||
|
||||
|
||||
@@ -5,37 +5,68 @@ The diagram tool uses the [http://bon-method.com BON] (Business Object Notation
|
||||
|
||||
==Class==
|
||||
|
||||
[[Image:bon-class]] An object class is represented by an ellipse(sometimes referred to as ''bubble''). It contains the class name and formal generics of the Eiffel class it represents. Second, it displays information about properties of a class. These properties are:
|
||||
* Deferred: class is declared as <code> deferred </code>.
|
||||
[[Image:bon-class]]
|
||||
|
||||
A class is represented by an ellipse(sometimes referred to as ''bubble''). It contains the class name and formal generics of the Eiffel class it represents. Second, it displays information about properties of a class. These properties are:
|
||||
* Deferred: class is declared as <code>deferred</code>.
|
||||
|
||||
|
||||
[[Image:bon-class-deferred]]
|
||||
|
||||
* Effective: class is not <code> deferred </code> and has at least one <code> deferred </code> parent, or redefines one ore more features.
|
||||
|
||||
* Effective: class is not <code>deferred</code> and has at least one <code>deferred</code> parent, or redefines one ore more features.
|
||||
|
||||
|
||||
[[Image:bon-class-effective]]
|
||||
|
||||
* Persistent: class inherits <eiffel>STORABLE</eiffel> or has indexing tag <code> persistent </code>.
|
||||
|
||||
* Persistent: class inherits <eiffel>STORABLE</eiffel> or has indexing tag <code>persistent</code>.
|
||||
|
||||
|
||||
[[Image:bon-class-persistent]]
|
||||
|
||||
* Interfaced: class has one ore more <code> external </code> features.
|
||||
|
||||
* Interfaced: class has one ore more <code>external</code> features.
|
||||
|
||||
|
||||
[[Image:bon-class-interfaced]]
|
||||
|
||||
* Reused: class resides in a precompiled library or in a <code> library </code> cluster.
|
||||
|
||||
* Reused: class resides in a precompiled library or in a <code>library</code> cluster.
|
||||
|
||||
|
||||
[[Image:bon-class-reused]]
|
||||
|
||||
|
||||
* Root class: class has the program's entry point.
|
||||
|
||||
|
||||
[[Image:bon-class-root]]
|
||||
|
||||
|
||||
{{seealso|<br/>
|
||||
[[Rename class|Changing class names]] }}
|
||||
|
||||
|
||||
==Cluster==
|
||||
|
||||
A cluster is a collection of classes and sub-clusters. It is represented by a stippled, rounded rectangle. The cluster name is in a similar rectangle, by default located at the top of the cluster just outside of it. A cluster can be iconified, which means it is minimized to take up as less space as possible.
|
||||
<div> [[Image:bon-cluster-iconified]] [[Image:bon-cluster]] </div><br/>
|
||||
A cluster is a collection of classes and sub-clusters. It is represented by a stippled, rounded rectangle. The cluster name is in a similar rectangle, by default located at the top of the cluster just outside of it.
|
||||
|
||||
|
||||
[[Image:bon-cluster]]
|
||||
|
||||
|
||||
A cluster can be iconified, which means it is minimized to take up as less space as possible.
|
||||
|
||||
|
||||
[[Image:bon-cluster-iconified]]
|
||||
|
||||
|
||||
|
||||
{{seealso|<br/>
|
||||
[[Iconifying and restoring a cluster|Iconifying a cluster]] }}
|
||||
|
||||
|
||||
==Inheritance links==
|
||||
|
||||
Inheritance between classes is represented by an arrow from a class to its parent. Typically, inheritance links point upwards.
|
||||
@@ -45,11 +76,20 @@ Inheritance between classes is represented by an arrow from a class to its paren
|
||||
{{seealso|<br/>
|
||||
[[Creating inheritance links|Creating inheritance links]] }}
|
||||
|
||||
|
||||
==Client/supplier links==
|
||||
|
||||
Client relationships between classes are represented by an arrow with a double line from the client to the supplier. Typically, these links point to the right. A special kind of relationship is the aggregate client/supplier link. Aggregate means that the supplier is an integral part of the client. In the class text, it corresponds to <code> expanded </code> features. In the diagram, an aggregate link has a little line along the back side of the arrow.
|
||||
<div> [[Image:bon-client]] [[Image:bon-agg-client]] </div><br/>
|
||||
<br/>
|
||||
Client relationships between classes are represented by an arrow with a double line from the client to the supplier. Typically, these links point to the right.
|
||||
|
||||
|
||||
[[Image:bon-client]]
|
||||
|
||||
|
||||
A special kind of relationship is the aggregate client/supplier link. Aggregate means that the supplier is an integral part of the client. In the class text, it corresponds to <code>expanded</code> features. In the diagram, an aggregate link has a little line along the back side of the arrow.
|
||||
|
||||
|
||||
[[Image:bon-agg-client]]
|
||||
|
||||
|
||||
{{seealso|<br/>
|
||||
[[Creating client/supplier links|Creating client/supplier links]] }}
|
||||
|
||||
@@ -5,7 +5,7 @@ Every class or cluster has one or more views. Every view shows the [[Contexts|co
|
||||
<div> [[Image:diagram-view-combo]] </div>
|
||||
The view combo box, as seen in the image above, can be used to add a view or switch to a previously added one. Every class and cluster has a view "DEFAULT" that is generated automatically. If you create a new view and move for example a class around in it, the "DEFAULT" view is unaffected.
|
||||
|
||||
The case tool provides you with the following possibilities to manipulate views:
|
||||
The Diagram tool provides you with the following possibilities to manipulate views:
|
||||
* [[Adding a view|Adding a view]]
|
||||
* [[Deleting a view|Deleting a view]]
|
||||
* [[Showing or hiding links and labels|Showing or hiding links and labels]]
|
||||
|
||||
Reference in New Issue
Block a user