The majority of the commands in the menus operate on the active page. A page is made active either by clicking in the contents of the page, by clicking the titlebar of the surrounding window or by selecting the page from the Windows menu.
Many of the commands of the menus also operate on the current selection of the active page. The current selection is called current focus.
- Makes a dialog popup. Entering a file name without extension and clicking ok will result in the creation of a minimal BETA library, which is given the entered file name. The result of this will be a diagram, like the one shown above, showing up on the active work sheet. The title of the diagram is the name of the new BETA fragment group (the file name: fee) followed by a dash (-) and the name of the new BETA fragment form (lib). The single attribute shown below the title corresponds to the single class attribute of the library:
ORIGIN '~beta/basiclib/betaenv'
-- lib: Attributes --
<<NameDecl>>: (# #) |
-
Notice:
- Diagrams displaying the attributes of a library, like the one mentioned above, are called attributes diagrams.
- Diagrams displaying the descriptor of a program are called descriptor diagrams.
-
A general note:
- Invoking this command will create a new page entitled 'Graphics Page'.
- Graphics pages are as the name implies ment for graphics only. That is all objects appearing on these pages are interpreted as having no other semantics than the purely graphical one. Basically the commands that apply on these pages are the purely graphical ones that can be found in the Graphics and Align menues. Also Clear from the Edit menu applies to purely graphical objects (whereas Cut, Copy and Paste regrettably are not yet implemented for these types of objecs).
- Selecting Open... makes the open dialog popup. From here a .bet or .ast file can be selected and opened.
- Selecting a .bet or .ast file will, depending on the category of the selected fragment, result in either a descriptor or attributes diagram on the active worksheet. This class diagram reflects the attributes of the opened fragment. One exception from this should be noted: When a file containing more than one fragmentform is opened the first thing to show up will be the group page with a diagram displaying the fragmentforms of the selected file (see
The Group Page). Now, by doubleclicking one of these fragmentforms its attributes can be shown on the active worksheet as described above.
-
Notice:
- A BETA fragment is said to be related to a class diagram if the class diagram reflects attributes declared in this fragment.
- Only one .diag file can be open at the time, but the different class diagrams on the work sheets can be related to several different BETA fragments.
- Performs a save of all shown diagrams on all open pages to the currently open .diag file.
- This means that the layout of the diagrams on the pages are saved, and that the fragments related to the diagrams are saved to their .bet and .ast files. The .diag file can then later be opened for further browsing and editing and eventually be saved again.
-
Notice:
- The default name for the diagram is the name of the BETA fragment that was opened or created first during the session. To change this name use Save As (see below).
- Using this command invokes the dialog. Entering a name in the text field of the dialog with extension .diag and choosing Save will result in a save of all shown diagrams on all open pages to this file (as described above).
- Reverts all edits done during the current Freja session. I.e. the diagram will appear as it did when it was initially opened.
-
Notice:
- Currently not implemented.
- Using this command you can, using the dialog that pops up, save the current page on disc as graphics only. The graphics only format is Encapsulated PostScript.
- Use Page Setup before printing. To get a satisfactory print the recommended settings are:
-
- Paper: A4 letter.
- Output form: Scale to fit.
- Omit page borders.
-
Notice:
- Currently not implemented.
- Initiating the print command will bring up a dialog asking the user to indicate which pages are to be printed. If all pages are to be printed simply select the Print all pages field of the dialog.
- You can choose to either print directly to a printer or to print to a file.
- If printing directly to a printer, type in a print command - e.g. /usr/local/bin/lpr -P<PrinterName> on a unix system.
- If printing to a file, type in the name and path to the file - e.g. /tmp/freja-print.ps.
-
Notice:
- Print is currently not implemented on MS Windows platforms. To print your diagram on these platforms use Save Page As Graphics.
- Hides all Freja windows.
- Choosing Undo from the Edit Menu will undo the latest editing operation on a work sheet in Freja. If this operation itself was Undo the state before the Undo will be restored.
- The operations which can be undone are Cut, Copy, Paste, Insert Before, Insert After, Paste Before, Paste After, Expand.
-
Notice:
- Currently not implemented.
- Initiating Cut removes the contents of current focus on the active work sheet. The deleted part of the class diagram is moved onto a clipboard and can later be pasted into any other class diagram. Only titles and attributes can be cut from a class diagram (not any of the relations). Performing a Cut with a title of a class diagram as current focus results in the removal of the entire class diagram and the removal of the attribute of which this diagram is a detailed version. Notice that this type of cut will also cut the corresponding code.
- Copies the contents of current focus on the active work sheet onto the clipboard and can later be pasted into any other class diagram. Only titles and attributes can be copied from a class diagram (not any of the relations).
- When current focus is an attribute of a class diagram this command performs an Insert Before followed by a Paste.
- If current focus is part of a class diagram - i.e. a title or an attribute - and if the clipboard contains part of a class diagram, then Paste can only be performed when the contents of current focus and the class diagram part on the clipboard are of exchangeable syntactic categories. If this is the case and a Paste is performed the effect is that the contents of current focus is replaced by the class diagram part on the clipboard and the code is updated correspondingly.
- In this context when cutting or copying with a title of a class diagram as current focus the syntactic category is the same as the syntactic category of the attribute of which the class diagram is a detailed version.
- When current focus is an attribute of a class diagram this command performs an Insert After followed by a Paste.
- Removes the contents of current focus on the active work sheet (nothing is moved to the clipboard).
- If current focus is an attribute of a class diagram or the title of a diagram detailed from such an attribute, this command will invoke the appropriate dialog the attribute or class. If a new name is entered, it must be a lexem (i.e. some legal name in BETA). Therefore before accepting it, the name is parsed and if unlegal the dialog will ask the to change it.
- If current focus is an attribute of a class diagram or the title of a diagram detailed from such an attribute, this command will invoke a codeeditor on the code that corresponds to current focus. The functionality of a codeeditor is mainly identical to the functionality of the codeviewer/-editor of the browser window of Sif. Codeeditors are therefore typically used when textual structure editing on some part of the code is called for.
- If the contents of current focus is an attribute of a class diagram this command will insert a new unexpanded attribute before current focus.
- If the contents of current focus is an attribute of a class diagram this command will insert a new unexpanded attribute after current focus.
- If current focus is part of a class diagram this command removes all nonterminals representing optional productions from the contents of current focus.
- Inserts all nonterminals representing optional productions in current focus, if it is part of a class diagram.
In general the New menu contains entries that are composed of two or more ordinary commands and are provided to make some of the more frequently used series of commands easier to perform.
- This command basically creates a new class pattern and makes a corresponding class diagram show up on the active work sheet. The user is prompted for a class name and is furthermore able to decide whether the class should be declared virtual (virtual, binding of virtual or final binding of virtual).
- The class is declared in what is called the current fragment diagram.
- If the current focus is a title or an attribute of a class diagram P the current fragment diagram is the fragment diagram that is related to the same fragment as the diagram P.
- This command creates a new attibute. The user is promted for name, type and whether it should be a static or dynamic reference attribute.
- This command creates a new operation. It inserts the new operation in the class where current focus is set. That is, the class diagram which includes the title or attribute which is current focus. This diagram is called the current diagram. The user is prompted for a name for the new operation and is furthermore able to decide whether the operation should be declared virtual (virtual, binding of virtual or final binding of virtual).
- This command creates a new class. It inserts the new class in the class where current focus is set. That is, the class diagram which includes the title or attribute which is current focus. The user is prompted for a name for the new class and is furthermore able to decide whether the class should be declared virtual (virtual, binding of virtual or final binding of virtual).
The commands of the Relations menu all relate one node to another. For this reason they are all basically used in the same manner: Choose the wanted relation, possibly a dialog appears, then fill in the wanted settings and click Ok, click the left mouse on the source of the relation and after that click the right mouse on the destination of the relation.
Notice:
- The settings of some of the relations (aggregations and associations) can be altered by choosing Edit.. from the popup-menu that appears when you right-click the relation. This will bring up the appropriate dialog with settings according to the right-clicked relation.
- The source or destination of a relation can be altered after its creation by selecting the source/destination end of the relation connector and dragging it to the new endpoint
- Any elements of a class diagram can be connected using through this relation. It has no formal semantics and no code results from creating it. It is intended as a purely informal symbol, used in situations where the user has not yet decided which type of concrete relation (typically aggregation or association) should exist between two classes.
- When executing this command a dialog appears. The aggregation dialog makes it possible to:
- give the aggregation a name,
- specifify the multiplicities of the whole and the part,
- specify the implementation of a one-to-many
[2]
aggregation; that is to specify if a repetition or one of the basic container classes should be used in the resulting code,
- specify if the aggregation is to be implemented by-reference or by-value.
- Note that default values are set, so that the user only has to specify the settings he actually wants to change.
- When Ok has been clicked, click the left mouse on the source ("whole") of the relation and after that click the right mouse on the destination ("part") of the relation.
- The destination (the part) must either be a class declaration, a virtual class declaration, a binding of a virtual class declaration or a final binding of a virtual class declaration. The destination may either be detailed or not.
- If the source (the whole) of this operation is the title of a class symbol the result will be that a new attribute containing the corresponding code is inserted in the class. If the source is an attribute of a class and this attribute corresponds to a dynamic or static reference in the code the operation will result in this attribute being altered so that it now corresponds to the generated aggregation code.
-
- When executing this command a dialog appears. The Association dialog makes it possible to:
- give the association a name,
- specify role names for both sides of the association,
- specify multiplicities for both sides of the association,
- specify the implemention of a one-to-many or many-to-many association; that is to specify if a repetion or one of the basic container classes should be used in the resulting association code,
- specify if the association should be embedded or not; that is to specify if the generated code is to result in a separate association class or if it is to be embedded in the source and destination classes,
- Note that default values are set, so that the user only has to specify the settings he actually wants to change.
- When Ok has been clicked in the dialog, click the left mouse on the source of the relation and after that click the right mouse on the destination of the relation.
- Creating this relation the source and destination must be detailed versions of either class declarations, virtual class declarations, binding of virtual class declarations or final binding of virtual class declarations.
-
- Creating this relation the source and destination must be detailed versions of either class declarations, virtual class declarations, binding of virtual class declarations or final binding of virtual class declarations.
- The result of creating a Specialization relation will be that the descriptor corresponding to the source diagram gets the destination class inserted as its prefix.
- For this relation the source must either be an attribute containing an unexpanded attribute declaration or an attribute containing a pattern, virtual or binding declaration. The destination must be an attribute containing a binding or virtual declaration.
- Having created a relation like this the source will have become a binding of the virtual of the destination.
-
Notice:
- A possible descriptor of the source will not be lost through this operation.
- Behaves exactly like the Binding of Virtual relation except that the source in this case becomes a final binding of the virtual of the destination.
- For the Variable Pattern relation the source must be an attribute containing either an unexpanded attribute declaration or some kind of simple declaration. The destination must either be the title of a diagram that is a detailed version of an attribute containing a pattern declaration or it must be an attribute containing a pattern declaration.
- The result will be that the source becomes a declaration of a pattern variable with the destination pattern as qualification.
- If current focus is a title of a class diagram Abstract will remove this class diagram and all diagrams detailed from it.
- If current focus is an attribute that has been detailed the command will remove the detailed version of the attribute and all diagrams detailed from that.
- If current focus is a title of a class diagram Abstract Recursively will remove all diagrams detailed from it (but not the diagram to which the title belongs).
- If current focus is an attribute that has been detailed the command will remove the detailed version of the attribute and all diagrams detailed from that.
- If current focus is a title or an attribute of a class diagram this command will remove all class diagrams not on the "detail path" to the diagram which is current focus.
- If current focus is an attribute of a class diagram and this attribute contains an object descriptor, like e.g. a pattern declaration does, Detail will display the attribute on detailed form; that is, as a class diagram displaying the attributes of this descriptor.
- If current focus is a title of a class diagram Detail will perform a Detail on all attributes that can be detailed in the class diagram.
-
Notice:
- Doubleclicking a detailable attribute of a class diagram will perform a Detail on the attribute. If the attribute is already detailed doubleclicking it will make the title of the detailed version the new current focus.
- If current focus is an attribute of a class diagram and this attribute contains an object descriptor, like e.g. a pattern declaration does, Detail Recursively will display the attribute on detailed form; that is, as a class diagram displaying the attributes of this descriptor. Then it will perform this command recursively on the detailable attributes of the diagram that has now been detailed.
- If current focus is a title of a class diagram Detail Recursively will perform a Detail Recvrsively on all attributes that can be detailed in the class diagram.
- By means of the Search command it is possible to search for a substring of a lexem, i.e. a name definition, a name application or a string.
- Notice that this command does not search text auxillary to the class diagrams, e.g text in user created labels.
- Extends the search dialog with a replace text field so that the found text can be replaced with a text specified in this text field.
- If current focus is the title of a class diagram and if there are currently displayed sub-patterns of this pattern, Layout Sub-patterns will rearrange the positions of these sub-class diagrams in a manner that makes them appear "nicely" in a tree structure below the selected diagram.
- If current focus is the title of a class diagram and if there are currently displayed sub-patterns of this pattern, Edged Specialization Connectors will make specialization connectors only follow horizontal and vertical lines.
- The four following entries concerns the appearance of the information inside the atributes of the class diagrams - that is, the textual prettyprint of the attributes.
-
Name
This is the default prettyprint mode for attributes. This prettyprint mode only displays the name (the NameDecl part) of the declaration.
-
Name and Type
In this mode both the name and the type of the declaration inside an attribute is shown.
-
Type
This prettyprint mode only displays the type of the declaration.
-
Type and Kind
The Name and Kind prettyprint mode displays the name and the kind (e.g. static item symbolised by a '@') of the declaration.
Redraws the contents of the page.
If there is a selection on the current page, this page is scrolled so that the selection is visible.
The Create menu commands draw non-formal graphic objects (nodes and connectors).
Creates a connector between two graphical elements. Click the left mouse on the source and after that click the right mouse on the destination.
Left click to define a corner of the rectangle, drag the mouse untill the rectancle has the desired size and shape, then left click again.
Left click to define a corner of the rectangle, drag the mouse untill the rectancle has the desired size and shape, then left click again.
Left click to define the center of the ellipse, drag the mouse untill the rectancleellipse has the desired size and shape, then left click again.
Left click to define each edge of the polygon, then right click to connect the first and last edge.
To create a text label left click the position where you want the text to start. Type the desired text and click anywhere to finish.
All entries in this menu aligns a number of graphical elements
(like f.ex. two or more classes). Holding the shift-key down click on
each of the elements you wish to align, then select the desired
alignment. Alignment will be preserve the position of the first
element you clicked, aligning the other elements with respect to this
position.
The selected elements are repositioned so that the left-most edge (of the bounding box) of each of the selected elements appear on the same vertical axis.
The selected elements are repositioned so that the right-most edge (of the bounding box) of each of the selected elements appear on the same vertical axis.
The selected elements are repositioned so that the top-most edge (of the bounding box) of each of the selected elements appear on the same horizontal axis.
The selected elements are repositioned so that the bottom-most edge (of the bounding box) of each of the selected elements appear on the same horizontal axis.
The selected elements are repositioned so that the center (of the bounding box) of each of the selected elements appear on the same horizontal axis.
The selected elements are repositioned so that the center (of the bounding box) of each of the selected elements appear on the same vertical axis.
A dialog appears and either vertical or horizontal spacing (or both) can be specified.
In the case of vertical spacing the selected elements are repositioned so that the bottom-most edge (of the bounding box) of one element has a distance corresponding to the specified spacing to the top-most edge (of the bounding box) of the next element.
In the case of horizontal spacing the selected elements are repositioned so that the right-most edge (of the bounding box) of one element has a distance corresponding to the specified spacing to the left-most edge (of the bounding box) of the next element.
[2] An aggregation is said to be one-to-many if the multiplicity of the
part is one and the multiplicity of the whole is more than one
Mjolner Integrated Development Tool - Reference Manual |
© 1991-2004 Mjølner Informatics |
[Modified: Friday October 5th 2001 at 10:46]
|