Chapter 8: Tools and Commands


Main Toolbar

The main toolbar provides a set of commands as equivalents to frequently-used menu commands, and a set of tools for creating primitive drawables.

New Project
This command is equivalent to File:New.

Open
This command is equivalent to File:Open.

Save
This command is equivalent to File:Save.

Save Image
This command is equivalent to File:Save Image.

Save Template
This command is equivalent to File:Save Template.

Browse Repository
This command is equivalent to File:Repository:Browse.

Check In Project
This command is equivalent to File:Repository:Check In.

Undo
This command is equivalent to Edit:Undo.

Redo
This command is equivalent to Edit:Redo.

Copy
This command is equivalent to Edit:Copy.

Paste
This command is equivalent to Edit:Paste.

Print
This command is equivalent to File:Print.

About UMLStudio
This command is equivalent to Help:About UMLStudio.

Help Contents
This command is equivalent to Help:Contents.

Zoom Out
This command is equivalent to View:Zoom Out.

Zoom In
This command is equivalent to View:Zoom In.

Zoom Combo
The zoom combo can be used to either directly type-in a zoom level, or choose one from a list of predefined zoom levels. The entered value should be in the range 20-400%. Choose Fit To Page if you want the zoom level to be calculated automatically so that as much as the diagram as possible can be displayed in the drawing pane.

New Model
This command is equivalent to Model:New Model.

New Tool Model
This command is equivalent to Model:New Tool Model.

New Stereotype Model
This command is equivalent to Model:New Stereotype Model.

Implode
This command is equivalent to Model:Implode.

Explode
This command is equivalent to Model:Explode.

Generate Code
This command is equivalent to Tools:Generate Code.

Generate Documentation
This command is equivalent to Tools:Generate Documentation.

Reverse Engineer
This command is equivalent to Tools:Reverse Engineer.


Miscellaneous Toolbar

The miscellaneous toolbar provides a set of tools for creating non-template based drawables, and for manipulating drawables.

Pointer Tool
The pointer tool is used for pointing at drawables in the drawing pane. Using this tool, you can select drawables, drag them, resize them, etc. After creating a drawable, this tool is automatically selected, unless you also hold down the shift key while creating the drawable, in which case the currently selected tool remains selected. The cursor changes depending on where it is positioned.

Tag Tool
This tool is used for creating and attaching a tag to a place drawable. A tag is a sort of comment and is used to highlight information about a place. To create a tag, select this tool, position the cursor inside the desired place and drag out. Then click inside the created tag and type your text. You can cancel this operation using the Edit:Undo command.

Message Tool
This tool is used for creating and attaching a message to a link drawable. Messages are primarily used in collaboration diagrams. To create a message, select this tool, position the cursor over the desired link and click the mouse button. You can cancel this operation using the Edit:Undo command.

Junction Tool
This tool is used for creating and attaching a junction to a place drawable. To create a junction, select a junction from the menu of this tool, position the cursor over the border of a place and click the mouse button. You can cancel this operation using the Edit:Undo command.

Swimlane Tool
This tool is used for creating a swimlane. Swimlanes allow the drawables in a model to be divided into a number of vertical groups, where each vertical group represents a swimlane. To create a swimlane, select this tool, position the cursor roughly where you want the swimlane to appear and click the mouse button. The first swimlane in a model will contain all the drawables to the left of the click point. Subsequent swimlanes can appear to the left, right, or in between existing swimlanes. You can cancel this operation using the Edit:Undo command.

Text Tool
This tool is used for creating text primitives. A text primitive is a rectangular area which can be used for entering and editing arbitrary text. The text can be specified to be editable or static via its property sheet. Text primitives are typically used in tool models to provide a place-holder for a place/link name. They can also be used freely in custom models for providing visible comments. To create a text primitive, select this tool, hold down the mouse button in the drawing pane, drag to define the text boundary, and release the mouse button. To enter text into the primitive, click inside it and type your text. You can cancel this operation using the Edit:Undo command. You can edit the properties of a text primitive by double-clicking it, or selecting the primitive and choosing Edit:Properties.

Line Tool
This tool is used for creating line primitives. A line primitive is a straight line as defined by its two end-points. To create a line primitive, select this tool, hold down the mouse button in the drawing pane where you want the line to begin, drag to where you want the line to end, and release the mouse button. You can cancel this operation using the Edit:Undo command.

Rectangle Tool
This tool is used for creating rectangle primitives. To create a rectangle primitive, select this tool, hold down the mouse button in the drawing pane, drag to define the rectangle boundary, and release the mouse button. You can cancel this operation using the Edit:Undo command.

Rounded Rectangle Tool
This tool is used for creating rounded rectangle primitives and behaves like the rectangle tool.

Ellipse Tool
This tool is used for creating ellipse primitives and behaves like the rectangle tool.

Polyline Tool
This tool is used for creating polyline (i.e., open polygon) primitives. A polyline primitive is a sequence of 3 or more points, connected by straight lines. To create a polyline primitive, select this tool, click to define the first point, drag and click to define the next point, and repeat the last step until you have defined all the desired points. To complete the polyline, click the last point twice (without dragging). You can cancel this operation using the Edit:Undo command.

Polygon Tool
This tool is used for creating closed polygon primitives. A polygon primitive must have at least 3 points (called vertices) and is created in the same way as a polyline primitive.

Icon Tool
This tool is used for creating icon primitives. Choose the desired icon from the menu of this tool and click where you want it to appear.

Group As Primitive
This command is equivalent to Arrange:Group As Primitive.

Group As Place
This command is equivalent to Arrange:Group As Place.

Ungroup
This command is equivalent to Arrange:Ungroup.

Bring To Front
This command is equivalent to Arrange:Bring To Front.

Send To Back
This command is equivalent to Arrange:Send To Back.

Reposition
This command is equivalent to Arrange:Reposition.

Renumber Messages
This command is equivalent to Arrange:Renumber Messages.

Library Tool
This tool displays a menu that provides access to the user-defined library. The first two entries in the menu (Use As Primitive and Use As Place) are mutually exclusive and control the way a library symbol can be inserted into your project. A tick appears next to the current selection. If you choose Use As Primitive, then each time you choose a library symbol and insert it into your project, it will be created as a primitive group. Otherwise, it will be created as a place group.

The next entry in the menu (Load Library) allows the user to load a different library. It displays the standard Windows open dialog for selecting a library file. Once selected, the new library replaces the current one. The new selection automatically becomes the default library.

The rest of the menu contains two sets of submenus. The first set of submenus contains the symbols offered by the library. The second set contains the design patterns offered by the library. To insert a library symbol/pattern into your project, click on the Library button, move down to the desired category, and then select a symbol/pattern from the submenu of that category. If you click the cursor in the drawing pane, a symbol/pattern will be created and centered at the click position. As soon as you create the symbol/pattern, the cursor automatically switches to the standard pointer, unless you also hold down the shift key while clicking. After inserting a symbol into your project, you can cancel the insertion using the Edit:Undo command.

Font Tool
This tool is used to define the font attributes of one or more drawables. To use it, select the drawables you want to affect, and click on the tool. A dialog is displayed for selecting the desired font attributes.

Select the desired attributes and press the OK button to confirm your selection, or the Cancel button to cancel them. Confirming your changes will apply the font attributes to the selected drawables. You can cancel this operation using the Edit:Undo command. You can specify your default font attributes by choosing from this dialog when no drawables are selected. The default font attributes are:

Font = Arial
Style = Regular
Size = 9
Color = Black
Align = Center
They are used for text primitives when they are created. The default font attributes do not apply to link, place, and tag drawables.

Fill Color Tool
This tool is used to define the fill color of one or more drawables. To use it, select the drawables you want to color, and click on the arrow to the right of the tool. A menu of colors appears.

Select the desired color. The interior of the selected drawables will be filled with the selected color. There are a number of special options in this menu:

  • The None option will make the interior of your drawables transparent.
  • The option before None (drawn as a pixel grid) gives the system color for painting the background of a toolbar icon so that it matches the toolbar background.
  • The Auto option will restore the fill color of your selected drawables to that specified by the notation template.
  • The More option will display the standard Windows color dialog for choosing an arbitrary color.
You can cancel this operation using the Edit:Undo command. You can select a default fill color by choosing a color from this menu when no drawables are selected. The default fill color is initially white and defines the interior color of primitives when they are created. The default fill color does not apply to link, place, and tag drawables.

Line Color Tool
This tool is used to define the line color of one or more drawables. To use it, select the drawables you want to color, and click on the arrow to the right of the tool. A menu of colors appears.

Select the desired color. The boundary of the selected drawables will be drawn with the selected color. The structure of this menu is identical to the fill menu.

You can cancel this operation using the Edit:Undo command. You can select a default line color by choosing a color from this menu when no drawables are selected. The default line color is initially black and defines the boundary color of primitives when they are created. The default line color does not apply to link, place, and tag drawables.

Line Style Tool
This tool is used to define the line style of one or more drawables. To use it, select the drawables you want to affect, and click on the arrow to the right of the tool. A menu of line styles appears.

Select the desired line style. The boundary of the selected drawables will be drawn with the selected line style.

You can cancel this operation using the Edit:Undo command. You can select a default line style by choosing a line style from this menu when no drawables are selected. The default line style is initially a thin solid line (i.e., the fifth row in the menu) and defines the boundary line style of primitives when they are created. The default line style does not apply to link, place, and tag drawables.

Normal Links
This command is equivalent to Looks:Normal Links.

Step Links
This command is equivalent to Looks:Step Links.

Curve Links
This command is equivalent to Looks:Curve Links.

Annotation
This command is equivalent to Looks:Annotation.


Custom Toolbar

The custom toolbar provides a set of tools for creating link and place drawables, as well as for customizing the definitions of these tools. The link and place tools are defined by the current notation template.

Link Tools

A set of 10 primary link tools are provided by your template. Each of these appears as a button in the custom toolbar. If a link tool has stereotypes, these will appear in a popup menu when you position the cursor over the link’s button, so that you can select them. If you select a stereotype from one of these popups, the toolbar button will change to that of the stereotype, until you select the pointer tool again.

A link is used to connect two places. Each link has a source (the place at which is starts) and a destination (the place at which it ends).

To create a link, select the desired link tool, position the cursor inside the source place, hold the mouse button down, drag to the destination place, and release the mouse button. This creates a straight link. You can also create a polyline link (i.e., a link with intermediate points). You can do this in two ways:

  • Instead of dragging directly to the destination place, click the mouse at one or more intermediate points. The intermediate points cannot lie inside a place. This method also allows you to create a link that has the same place as source and destination.

  • Create a straight link and add intermediate points to it by dragging its shaft at any desired point. You can repeat this process to create multiple intermediate points.
If the link has a text attachment (i.e., a text box in the middle), you can click on it and type your text.

You can edit the properties of a link by double-clicking it, or selecting the link and choosing Edit:Properties.

You can cancel an operation that defines or affects a link using the Edit:Undo command.

Extra Link Tools Menu
This button appears to the right of the link tools and provides a popup menu of extra link tools. Any additional link tools (over and above the 10 primary link tools and their stereotypes) defined by the template will appear in this menu. The extra link tools appear in the first row of the popup, and their stereotypes (if any) appear vertically below them.

If you select a tool or stereotype from the extra menu, the menu’s button will change to that of the selected tool/stereotype, until you select the pointer tool again.

Place Tools

A set of 14 primary place tools are provided by your template. Each of these appears as a button in the custom toolbar. If a place tool has stereotypes, these will appear in a popup menu when you position the cursor over the place’s button, so that you can select them. If you select a stereotype from one of these popups, the toolbar button will change to that of the stereotype, until you select the pointer tool again.

A place is used to describe an entity (e.g., a class, an object, a state). Each place has an associated master which describes it. The same master may be shared by more than one place of the same kind.

To create a place, select the desired place tool and click in the drawing pane. The place will be created and centered on the clicked point. You can now enter the place name by clicking on it and typing the name. The name automatically binds the place to its master. The master appears in the lister page of the info pane.

You can edit the properties of a place by double-clicking it, or selecting the place and choosing Edit:Properties.

You can cancel an operation that defines or affects a place using the Edit:Undo command.

Extra Place Tools Menu
This button appears to the right of the place tools and provides a popup menu of extra place tools. Any additional place tools (over and above the 14 primary place tools and their stereotypes) defined by the template will appear in this menu. The extra place tools appear in the first row of the popup, and their stereotypes (if any) appear vertically below them.

If you select a tool or stereotype from the extra menu, the menu’s button will change to that of the selected tool/stereotype, until you select the pointer tool again.

Tool Design Edit

This command activates the tool design edit mode for editing the design of a custom tool. Each custom tool is defined in the template as a set of primitives. This is called the tool model and can be edited in the same way as a custom model. To edit a custom tool, select the tool by pressing its icon in the custom toolbar, then press this icon. If you do not select a tool before pressing this icon, the first link tool in the list will be assumed.

When the tool design edit mode is activated, the tool model for the nominated tool is located and activated. This model is displayed in the drawing pane (in the same way as custom models) so that you can edit it. You can only use primitive drawables in a tool model. No tags, links, or places are allowed. For ease of editing, a tool model is a 400% enlarged version of the tool design. This enlargement is independent of the zoom facility. The actual (i.e., default) size for the drawable created by the tool is displayed in the locater page of the info pane.

You can modify the default size by dragging the knob that appears at the bottom-right corner of the tool in the locater page. You can edit the tool properties (e.g., to rename the tool) by double-clicking the tool model’s icon in the explorer tree, or by choosing Edit:Properties.

Please note that any tool design modifications you make will not be saved to the notation template until you do File:Save Template.

Tool Icon Edit

This command activates the tool icon edit mode for editing the icon of a custom tool. Each tool icon is defined as a color bitmap.

To edit a tool icon, select the tool by pressing its icon in the custom toolbar, then press this icon. If you do not select a tool before pressing this icon, the first link tool in the list will be assumed.

When the tool icon edit mode is activated, the tool icon is displayed in the drawing pane so that you can edit it. For ease of editing, a tool icon bitmap is displayed as a 10-times enlarged version of the actual icon bitmap. The actual size of the icon is displayed in the locater page of the info pane.

You can only use the following primitive drawables to edit a tool icon bitmap:

  • The pointer tool has no effect.
  • The line, rectangle, rounded rectangle and ellipse tools have their normal effect.
  • The polyline tool behaves like a pen: it draws as you drag it.

Tip: Pixels that are painted with the penultimate color in the color menus (i.e., the one drawn like a pixel grid) will become transparent. You should paint all the background pixels in a tool icon using this color so that they match the rest of the toolbar.

Tip: If you hold down the control key while drawing using any of the primitive tools, all the affected pixels will become transparent, regardless of the pen and fill color option currently selected. Your changes to a tool icon are reflected in the toolbar as soon as you switch to another custom tool, or to another mode. You can undo your changes as usual using the Edit:Undo command.

Please note that any tool icon modifications you make will not be saved to the notation template until you do File:Save Template.

Model Edit

This command activates the normal model edit mode (this is the default mode). It automatically reactivates the last active custom model prior to changing the edit mode.


Cursors

The mouse cursor assumes different shapes depending on what tool is selected and where the mouse pointer is positioned:

This is the default cursor. It appears when the pointer tool is selected and the mouse pointer is positioned on no drawable.
This cursor appears when a place tool is selected from the custom toolbar and the mouse pointer is positioned in the drawing pane.
This cursor appears when a library symbol/pattern is selected from the library menu and the mouse pointer is positioned in the drawing pane.
This cursor appears when a master is dragged from the lister pane to be dropped into the drawing pane.
This cursor appears when an object is being dragged for dropping elsewhere, but the target pane cannot receive it.
This cursor appears when a link tool is selected from the custom toolbar and the mouse pointer is positioned in the drawing pane.
This cursor appears when a link tool is selected and the mouse pointer is positioned over a source place. It indicates that if you click and drag, the link will originate from this place.
This cursor appears when a link is partially created and the mouse pointer is positioned over a target place. It indicates that if you release the mouse button (or click) the link will be completed and connected to the target place.
This cursor appears when the message tool is selected and the mouse pointer is positioned in the drawing pane.
This cursor appears when the message tool is selected and the mouse pointer is positioned over a link. It indicates that clicking the mouse button will create a message and attach it to the link.
This cursor appears when the junction tool is selected and the mouse pointer is positioned in the drawing pane.
This cursor appears when the junction tool is selected and the mouse pointer is positioned on the border of a place. It indicates that clicking the mouse button will create a junction and attach it to the place.
This cursor appears when the Arrange:Renumber Messages command is activated and the control or the shift key is held down. It indicates that clicking the mouse button on a message will set the renumbering sequence to the message’s current number.
This cursor appears when the Arrange:Renumber Messages command is activated. It indicates that clicking the mouse button on a message will renumber the message according to the renumbering sequence.
This cursor appears when the mouse pointer is positioned over a drawable. It indicates that if you hold down the mouse button and drag, the selected drawables will be repositioned accordingly.
This cursor appears when the mouse pointer is positioned over a member of a group drawable. It indicates that if you hold down the mouse button and drag, the selected members will be repositioned accordingly.
This cursor appears when the mouse pointer is positioned over a junction of a place or on a call-box in a sequence diagram. It indicates that if you hold down the mouse button and drag, the junction or call-box will be repositioned accordingly.
This cursor appears when the mouse pointer is positioned on a selected drawable’s knob. It indicates that if you hold down the mouse button and drag, the drawable will be modified/resized accordingly.
This cursor appears when the mouse pointer is positioned on a vertical border of a swimlane. It indicates that if you hold down the mouse button and drag, the swimlane border will be adjusted accordingly.
This cursor appears when the mouse pointer is positioned on a horizontal border of a call-box in a sequence diagram. It indicates that if you hold down the mouse button and drag, the call-box border will be adjusted accordingly.
This cursor appears when the mouse pointer is positioned over an area of a drawable that may contain text. It indicates that if you click the mouse button, you can start editing the text.
This cursor appears when the mouse pointer is positioned on the refinement hyper link of a place (a small yellow box appearing at the bottom right corner of a place that has a submodel). It indicates that if you click the mouse button, the place submodel will be displayed instead (i.e., explodes the view).
This cursor appears when a submodel is the current model, the control key is pressed, and the mouse pointer is positioned on no drawable. It indicates that if you click the mouse button, the parent model will be displayed instead (i.e., implodes the view).
This cursor appears when the mouse pointer is positioned on a textual hyper link text within a place, link, or message. It indicates that if you click the mouse button, the hyper link will be activated. Depending on what the link is, an appropriate application is launched to show the link. For example, for a URL link, the default web browser is launched, and for a document, the application associated with that document is launched.
This cursor appears when the polyline tool is selected in the Icon Edit Mode and the mouse pointer is positioned in the drawing pane. It indicates that if you click and/or drag, the pixels under the mouse pointer will be painted with the current line color.
This cursor appears in three situations:
  • When a primitive tool is selected in the Icon Edit Mode and the mouse pointer is positioned in the drawing pane, and the control button is pressed at the same time. It indicates that if you click and drag, the primitive will be drawn with the background color (i.e., it will erase instead of draw).

  • When a call-box (in a sequence diagram) is dragged away from the shaft on which it appears. It indicates that if you release the mouse button, the call-box will be deleted.

  • When a junction is dragged away from its place. It indicates that if you release the mouse button, the junction will be deleted.


The File Menu

The File menu provides commands for manipulating project and template files, printing documents, and closing the application.

In addition to its commands, the File menu provides a list of most-recently saved projects. These appear at the bottom of the menu, before the Exit command. Selecting a project from this list causes it to be opened immediately in a separate window.

File : New

This command is used for creating a new project. It displays a list of notation templates in a dialog box for the user to choose from.

Every project requires a template. The template defines the notation that the project will use. The available templates are best kept in a separate folder. The name of this folder appears above the list in the dialog box. You can set the path to this folder using Tools:Options.

A special template (called <Internal>) always appears at the top of the list. This template is hard-coded into UMLStudio and is always available. All other templates are user-defined.

To nominate a template, click on it to select it and then press the OK button. Alternatively, double-click the template in the list. The dialog will disappear and a new project window will be displayed, based on the selected template.

Pressing the Cancel button will dismiss the dialog and cancel the New command.

File : Open

This command is used for opening an existing project. It displays the standard Windows dialog for opening a document.

To open a project, browse to its folder, click on the file to select it, and then press the OK button. Alternatively, double-click the file. The dialog will disappear and the selected project will be displayed in a separate window. UMLStudio will automatically locate and use the template upon which the project is based. If the template cannot be located the user will be prompted and asked to nominate a template manually.

Pressing the Cancel button will dismiss the dialog and cancel the Open command.

Open Reference Project

This command is used for opening a reference project. It displays the standard Windows dialog for opening a document (as in File:Open). If a reference project is already open, it is automatically closed before the new one is opened. The contents of an open reference project is displayed in the Reference Project Page (in the info pane).

Use reference projects to make your centrally stored classes (e.g., your corporate object model) available to other projects. The names of all classes in the currently open reference project is added to the Type and Container boxes in various dialogs.

File : Close

This command closes the currently active project window. If there are any unsaved changes to the project or its template, the user will be prompted and given the opportunity to save them.

File : Repository : Browse

This command displays a dialog for browsing the project repository, managed by UMLServer. It is disabled when UMLServer is not running.

The window title includes the user who is connected to UMLServer and his/her access rights. The latter consists of four letters:

Where an access right is not available to the user, it is indicated as an underscore.

The browser window is divided into two panes. The left pane displays the hierarchy of projects and folders in the repository. The root of this hierarchy is always a folder named Root. Each folder may contain sub-folders or projects. When you select a node in this hierarchy, its contents is displayed in the right pane.

The right pane provides a tabular view of the contents of a folder or project. When a folder of projects is selected in the left pane, the right pane lists the attributes of the latest version of each project in the folder. When a project is selected in the left pane, the right pane lists the attributes of each version of the project. In both cases, the following attributes are listed from left to right:

Creating Folders in Repository

You can create a new folder in the repository by first selecting (in the left pane) the folder within which you want the new folder to appear, and then pressing the New Folder button. The new folder is initially named Untitled. You can rename it by double-clicking it to display its property sheet and then changing the folder name in the property sheet.

Deleting Folders/Projects from Repository

You can delete a folder, project (or one of its versions) by first selecting it in one of the two panes and then pressing the Delete button. Since this operation cannot be undone, you will be asked to confirm it.

Checking a Project into Repository

You can check-in either a new project or a new version of an existing project into the repository by pressing the Check In button. This will display the standard Windows dialog for opening files. Browse to the desired project/version and press Open. The following dialog is then displayed.

When checking in a new project, you need to make sure that you have selected the desired target folder in the left pane. However, when checking in a new version of an existing project, you don’t need to have its target folder/project selected. The correct position is encoded in the project file and will be used by UMLServer.

Checking a Project out of Repository

To check out the latest version of a project, select the project in one of the two panes and press the Check Out button. To check out a specific version of a project, select that version in the right pane and press the Check Out button. In both cases, the following dialog is displayed.

To change the default target folder, press the Into Folder button and browse to the desired folder. If you tick the Check Out As Read Only check box, the checked out project will not be editable (i.e., good for viewing only). If you tick the Open Checked Out Project, the project is opened in UMLStudio as soon as it is checked.

Viewing a Project’s Revision History

To view the revision history of a project, select the project in one of the two panes and press the History button. A dialog is displayed that lists the project’s history.

File : Repository : Check In

This command is equivalent to the Check In button in the repository browser window. It is disabled when UMLServer is not running.

File : Save

This command saves any changes to the current project. It is dimmed when there have been no changes since the last save. If the project is new and has never been saved before, this command has the same effect as File:Save As.

File : Save As

This command is used for saving the project to a user-specified file. It displays the standard Windows dialog for saving files.

To save the project into an existing project file, browse to its folder, click on the file to select it, and then press the Save button. Alternatively, double-click the file. To save the project under a new name, type the new name in the File name box and press the Save button.

The dialog will disappear and the project will be saved to the specified file. If the file already exists, the user will be prompted to confirm overwriting it. Saving a project will not save any changes to its template. A separate command (File:Save Template) is used for this purpose. Pressing the Cancel button will dismiss the dialog and cancel the Save As command.

File : Save Image

This command is used for saving the image of the current model (or the selected drawables in the model) in a file. If no drawables are selected in the model, then the whole model is included in the image file; otherwise, only the selected drawables are included. It displays the standard Windows dialog for saving files.

Browse to the location where you want the file to be saved.

The File name field defaults to the model name. The Save as type combo provides you with three image file format options to choose from: bitmap, JPEG, and PNG.

File : Save Template

This command is used for saving the template upon which the current project is based. It displays the standard Windows dialog for saving files.

To save the template into an existing template file, browse to its folder, click on the file to select it, and then press the Save button. Alternatively, double-click the file. To save the template under a new name, type the new name in the File name box and press the Save button.

The dialog will disappear and the template will be saved to the specified file. If the file already exists, the user will be prompted to confirm overwriting it. If the template is saved under a new name, the project will be based on the new template from now on.

Pressing the Cancel button will dismiss the dialog and cancel the Save Template command.

File : Switch To Template

This command is used for making the current project to be based on another template. It displays a dialog box containing the list of existing templates to choose from (this dialog is the same as that displayed by the File:New command).

As soon as the template is switched, all the models in the project will be automatically updated to conform to the notation of the new template.

Use this command to instantly change the notation in which your project is expressed.

File : Print

This command is used for printing information in the current project. It displays a dialog box for specifying what should be printed and the print attributes.

The top part of the dialog is the same as the standard Windows print dialog and is used for selecting the printer and setting its properties. The bottom part is specific to UMLStudio.

The Print What group is used for nominating what should be printed. Choose Models if you want to print model diagrams, Model Tree if you want to print a summary of the model tree hierarchy, or Notation Template if you want to print the full description of the notation template for the current project. The default choice is Models.

The Print Scope group is used for controlling the scope of printing. This group is only applicable to the Models group. Choose This Model if you want only information contained by the current model to be printed, This Model & Submodels if you want all the submodels of the current model to be also included, or All Models if you want information contained by all models to be printed. The default choice is This Model.

Copies controls the number of physical hard-copies produced. Select the Fit Model to Page option if you want each printed model diagram to be scaled to fit on a single page. Select the Print Footer option if you want each printed page to have a footer which names the project and the printed information and provides a serial page number.

After setting the desired options, press the OK button to commence printing, or Cancel to cancel it. Pressing OK will cause all changes to the dialog box to be stored in UMLStudio’s profile and remembered, independent of the current project.

File : Page Setup

This command is used for setting up the print page of the current project. It displays the standard Windows dialog box for specifying the page parameters.

The size of the page affects the drawing pane of the project window. The canvas within the drawing pane is organized as a matrix of pages specified by this dialog.

File : Default Project

This submenu provides two commands for nominating a default project. A default project is one that is automatically loaded when UMLStudio is launched. If you’re likely to work with a project for a few days then by nominating it as the default project you won’t have to open it every time you launch UMLStudio. To nominate the current project as the default project, choose the Set This Project as Default command. To cancel the default project, choose the Reset (no Default Project) command.

File : Exit

This command is used for quitting the application. All project windows are closed prior to quitting. If any project or template has unsaved changes then the user will be prompted to confirm saving the changes beforehand.


The Edit Menu

The Edit menu provides commands for manipulating the objects of a project.

These commands typically apply to the currently selected objects in the drawing pane, the explorer pane, or the info pane.

Edit : Undo

This command cancels the effect of the last operation, provided the operation is reversible. As of version 5.0, unlimited undo is supported.

Each project tracks the undoing of its own operations. Therefore, operations applied to one project will not affect the undoing of operations applied to other simultaneously open projects.

Edit : Redo

This command repeats an operation that has been canceled by Edit:Undo. As of version 5.0, unlimited redo is supported.

Edit : Cut

This command is used to move one or more objects to the clipboard, causing them to be removed from the project. (This command is also available in the context popup menu.) The contents of the clipboard can be later pasted to any project using the Edit:Paste command. Cut, Copy, and Paste provide a convenient means of moving data within a project as well as between projects.

Cut applies to the selected objects in the currently active pane according to the following table.

Active PaneEffect of Cut
Drawing Pane Moves to the clipboard the selected drawables in the current model. Cutting a place drawable causes its master to be copied to the clipboard as well (including any submodel hierarchy it may have). The master is not removed from the project, unless there are no remaining references to it (i.e., its reference count becomes zero).

Cutting a place drawable causes all links and tags connected to it to be removed as well, even if they are not selected. These links and tags are not moved to the clipboard, unless they are also selected.

If the drawing pane is in icon edit mode, cut moves the icon to the clipboard. This causes the icon to be cleared (i.e., all pixels set to the background color).

Explorer Pane Moves to the clipboard the selected custom model (including any submodel hierarchy it may have) in the tree. Cut is dimmed when the currently selected tree node is not a custom model (e.g., a tool model, a folder, or a text file). UMLStudio always asks the user to confirm that they wish to cut a model.

Info Pane Cut only applies to the lister tab. It moves to the clipboard the currently selected masters that have a reference count of zero. Masters with a non-zero reference count are not removed from the project.

You can cancel the effect of Cut using the Edit:Undo command. This causes the cut objects to be restored in the project, but a copy of them will remain on the clipboard.

Cut, Copy, and Paste use a private clipboard within UMLStudio, so that the complex structure of the data can be readily understood. They also use the system clipboard so that drawings can be pasted to other Windows applications. For example, if you copy or cut a UMLStudio model (or the drawables in it), you can paste it to a Microsoft Word document using the Word paste command.

Edit : Copy

This command has the same effect as Edit:Cut except that it does not remove the selected objects from the project. It simply copies them to the clipboard. (This command is also available in the context popup menu.)

Edit : Shallow Copy

This command has the same effect as Edit:Copy except that when applied to places that have submodels (or models whose places have submodels), it does not copy the submodels.

Edit : Paste

This command is used to paste the contents of the clipboard to the current project. (This command is also available in the context popup menu.)

Paste attempts to intelligently transfer as much data as it can to the most appropriate location in the project. The data need not have originated from the same location. For example, if you copy a place drawable from the drawing pane of a project, you can paste it to the info pane of another project. In this case, if there is no active model, only the place master is pasted.

As of version 4.1, when you paste a model in the explorer pane, the model will appear as the child of the currently-selected model (if any); otherwise, it will appear as a top-level model.

You can paste the contents of the clipboard to as many projects and as many times as you wish.

You can cancel the effect of Paste using the Edit:Undo command. This causes the pasted objects to be removed from the project, but will not affect the clipboard.

Edit : Delete

This command is used to delete one or more objects from the project. It has the same effect as Edit:Cut, except that it does not copy the selected objects to the clipboard. (This command is also available in the context popup menu.)

Edit : Select Explodes

This command is used to select all place drawables in the current model whose masters have submodels. It is dimmed when there is no active model or when the active model is empty.

Use this command to find out which of the place drawables have submodels.

Edit : Select All

This command is used to select all drawables in the current model. It is dimmed when there is no active model or when the active model is empty.

Use this command when you want to perform an operation on all the drawables in a model (e.g., drag or delete them).

Edit : Find

This command is used to search for a string in the current project. It displays a tabbed dialog box for controlling the search.

The Search Criteria tab is used for specifying the search parameters. Type the string you want to search for in the Find combo box, or simply select a string from the combo box’s list of previously entered search strings.

To restrict the search to object names, select the Search Name Only option. To require a case-sensitive search, select the Match Case option. To require the search string to match whole words, select the Match Whole Words Only option.

To find the next match in the project, press the Find Next button. To reverse the order of the search, press the Find Previous button. When a match is found, UMLStudio automatically browses to it. For example, if the matched object is a link in a model, the model is activated and the link is brought to view in the drawing pane.

To find all occurrences of the search string in the project, press the Find All button. This causes the Match List tab to be activated to display the list of matched objects.

Each line in the match list refers to an object. A string may match the same object more than once (e.g., against its name and its attributes). The number of matches against each object is also displayed in the list. To browse to a matched object, simply double-click its row in the match list.

Pressing the Close button dismisses the dialog box and saves any changes to the search criteria in UMLStudio’s profile.

Edit : Replace

This command is used to replace occurrences of a string with another string in the current project. It displays a variation of the Find dialog box.

Type the string you want to replace your search string in the Replace combo box, or simply select a string from the combo box’s list of previously entered replace strings. The replace string can be optionally empty.

Having found a match for the search string (e.g., by pressing the Find button), press the Replace button to replace this string with the one you have provided. As soon as performing the replace, UMLStudio implicitly searches for the next occurrence of the string and brings it to view for you to decide if you want to replace it as well, etc.

To replace every occurrence of the search string, press the Replace All button. This causes the Match List tab to be activated to display the list of all matched objects that have been replaced.

Each line in the match list refers to an object. To browse to a matched object, simply double-click its row in the match list.

Pressing the Close button dismisses the dialog box and saves any changes to the replace criteria in UMLStudio’s profile.

Edit : Properties

This command is used to display the property sheet for the currently-selected object. (This command is also available in the context popup menu.)

The contents of the property sheet depends on the type of the selected object, which may be one of the following:

After confirming the changes to an object’s properties, you can cancel these changes using the Edit:Undo command.

Model Properties

To display the properties of a model (custom model or tool model), select the model in the explorer pane and select Edit:Properties. Alternatively, double-click the model icon in the explorer pane.

The model property sheet consists of one property page (called General).

The name of the model appears in the Name combo box. To change it, type a new name or choose a name from the combo box’s list of previously entered names. The Kind combo box denotes the kind of the model (custom or tool). Since the kind of a model cannot be changed, this combo box is disabled. The Semantics combo box defines the semantics of a tool model. This combo only applies to tool models (not to custom models). The Comment box is used to enter a verbal description of the model.

The Access group is used for specifying the model access permissions. This defaults to Public.

Selecting the Gen Code option causes this model to be considered in the code generation process (see Tools:Generate Code). For a tool model, this option determines the default value of the same option for objects created using that tool.

For a tool model, an Auto Size option also appears. This option is of significance for link/place tools that contain an editable text box. Choosing this option causes the size of a place (or the text box of a link) to be automatically adjusted to tightly enclose the text within it when the text is edited. It also enforces the text to appear as a single line.

Pressing the OK button saves the changes to the property sheet and closes it. Pressing the Cancel button dismisses the property sheet and ignores all changes to it.

UMLStudio only allows one property sheet to be displayed at any time. If you request the property sheet of another object while one is already open, the existing property sheet will be used to display the properties of the next object. Any changes to the properties of the previous object will be implicitly saved beforehand.

Diagram Type Properties

To display the properties of a diagram type, select the diagram type in the Diagrams subfolder of the template folder in the explorer pane.

The diagram type property sheet consists of two property pages (called General and Tools).

The Access group specifies the default access rights for a model of this type.

The Gen Code, Step Link, and Curve Link options determine the default values of the corresponding properties for a model of this type.

For example, given the diagram type State Diagram, if Access is set to Protected and Curve Link is ticked, then any new state diagram model will default to Protected and Curve Link.

The Supported Diagram option determines if this diagram type is to be supported by the current notation template. If you untick this option, then the notation template will not allow the user to create models of this diagram type.

The Tools property page lists the tools supported by the diagram type. It consists of two lists:

A list row that has an Lnn prefix means that the row represents a link tool (e.g., L02 represents the second link tool in the template). Similarly, a list row that has a Pnn prefix means that the row represents a place tool (e.g., P03 represents the third place tool in the template).

You can move tools between the two lists by selecting them and pressing the << and >> buttons. Pressing the <<All and All>> buttons cause entire lists to be moved.

Master Properties

To display the properties of a master, select the master in the lister page of the info pane and select Edit:Properties. Alternatively, double-click the master name in the lister page.

For a master whose tool has semantics other than Class, the property sheet consists of one property page:

For a master whose tool has Class semantics, the property sheet consists of five property pages:

The OK and Cancel button appear in all pages and apply to the whole property sheet (not just the current page): pressing OK will save the changes to all pages, pressing Cancel will cancel the changes to all pages.

The General property page is similar to the general page of a model property sheet except for the following fields.

Master Attributes

The Attributes property page is used for defining or changing the master’s attributes. An attribute is typed data associated with a master and provides additional information about the master.

The list of attributes currently defined for the master appears at the bottom of the Attributes page. Each row in this list provides a summary of an attribute in the format:

CheckBox Flags ClassName::AttributeName : AttributeType x Cardinality
Both the attributes for this class and all the base classes are displayed. However, the base class attributes are read-only and cannot be modified in this dialog. These rows are dimmed and will not be selected if you click on them. However, you can use the up/down arrow keys to switch focus to dimmed rows so that you can view their details in the rest of the dialog.

The last item in the list, <New>, is used for creating a new attribute.

To view the definition of an attribute, select its row in the list. This will cause the attribute definition to be loaded into the remaining fields of the page. You can now modify any of these fields and then press the Add button to save your changes.

The Name combo box contains the name of the attribute. Every attribute must be named. The Type combo box contains the type of the attribute. This is optional and if not provided, the int type will be assumed (if applicable to the code generation language). The box to the right of the Type combo specifies the cardinality of the attribute. This is also optional and if not provided, a cardinality of 1 will be assumed.

The Container combo box provides an optional container class for the attribute when its cardinality is greater than 1. The Value box specifies an optional initial value for the attribute. The Comment box provides a verbal description of the attribute.

The Access group is used to specify the access permissions for the attribute (it defaults to Private).

The Modes group consists of 7 options and is used to further qualify the attribute. Select the Constant option if the attribute is a constant (i.e., has an unchangeable value). Constant attributes require an initial value. Select the Static option if the attribute is static (i.e., shared by all instances of objects of this master). Select the Get/Set option if you want the code generation process to generate ‘Get’ and ‘Set’ methods for accessing this attribute. Select the Annotate option if you want the attribute to be displayed within the place. Select the Final option if the attribute is final (i.e., readonly). Select the Volatile option is the attribute is volatile (as in Java). Select the Transient option is the attribute is transient (as in Java).

Select the MACRO option if the attribute is a macro. A macro provides a convenient means of recording additional information about a class that is not inherent in the class (e.g., the database table to be used for persistence). A macro can only have a name, a value, and an annotate flag.

By default, only the Annotate option is selected. The check box to the left of each row is the same as the Annotate mode, and causes the attribute to be displayed within the place.

An attribute name in the list may be preceded by one of the following flags:

You can create a new attribute by selecting the <New> row in the attribute list, entering the attribute information into relevant fields, and then pressing the Add button.

You can delete an existing attribute by first selecting it in the list and then pressing the Delete button. You can copy and paste attributes between objects via the attribute list popup menu.

You can change the position of an attribute in the list (i.e., reorder the list) by selecting the attribute and pressing the Move Up or Move Down button. This will move the attribute up or down one row at a time.

Master Methods

The Methods property page is used for defining or changing the master’s methods. A method is an operation associated with a master and provides a behavior for it.

The list of methods currently defined for the master appears at the bottom of the Methods page. Each row in this list provides a summary of a method in the format:

CheckBox Flags ClassName::MethodName (ParameterList) : ReturnValue +Exception +Context
Both the methods for this class and all the base classes are displayed. However, the base class methods are read-only and cannot be modified in this dialog.

The last item in the list <New> is used for creating a new method.

To view the definition of a method, select its row in the list. This will cause the method definition to be loaded into the remaining fields of the page. You can now modify any of these fields and then press the Add button to save your changes.

The Name combo box contains the name of the method. Every method must be named. The Returns combo box contains the return type of the method. The Comment box provides a verbal description of the method.

The Access group is used to specify the access permissions for the method (it defaults to Public).

The Modes group consists of 8 options and is used to further qualify the method. Select the Constant option if the method is a constant (i.e., does not modify objects of this master). Select the Static option if the method is static (i.e., can be invoked without having an object of this master). Select the Virtual option if the method is virtual. Select the Annotate option if you want the method to be displayed within the place. Select the Final option if the method is not to be further overridden by subclasses. Select the Abstract option if the method is abstract (i.e., only defined in a subclass). Select the Synchronized option if the method is synchronized (as in Java). Select the Native option if the method has native implementation (as in Java). By default, only the Annotate option is selected.

The check box to the left of each row is the same as the Annotate mode, and causes the method to be displayed within the place.

Like an attribute, a method in the list may be preceded by -, #, or + (meaning, respectively, private, protected, and public).

You can create a new method by selecting the row in the method list, entering the method information into relevant fields, and then pressing the Add button.

You can delete an existing method by first selecting it in the list and then pressing the Delete button. You can copy and paste methods between objects via the method list popup menu.

You can change the position of a method in the list (i.e., reorder the list) by selecting the method and pressing the Move Up or Move Down button. This will move the method up or down one row at a time.

A method may optionally have parameters. Each parameter is used to pass data to the method and/or to return data from it. To edit a method’s parameters press the Pars button. This will display a separate dialog box.

The behavior of this dialog is similar to the Methods property page. The list of currently defined parameters for the nominated method appears at the bottom of the dialog. Each row in this list provides a summary of a parameter in the format:

ParameterName : ParameterType
All parameters must be named. A parameter may optionally have a default value. This is provided in the Value box.

The Mode group is used to specify the mode of the parameter. Select In if the parameter is used to pass a value to the method only, Out if the parameter is used to return a value only, or In/Out if it is used for both purposes. The default mode is In.

To save your changes to the method parameters, press the OK button. To cancel the changes, press the Cancel button. The dialog will be dismissed and you will return to the Methods property page.

A method may also have other properties (consisting of exceptions and contexts). To edit these press the Others button. This will display a separate dialog box.

The list of currently defined exceptions/contexts for the nominated method appears at the bottom of the dialog. Each row in this list provides a summary of a parameter in the format:

Exception : ExceptionName
or
Context : ContextName
The Kind group is used to specify the kind of a property. Select Exception if the property denotes an exception that the method can raise, or Context if the property specifies a context name for the method.

You can also specify/view code for a method. To do this, press the Code button. A separate window will be opened to display the code. Any changes you make to a method's code will be remembered.

Master Types

The Types property page is used for defining or changing the types defined by the master.

The list of types currently defined for the master appears at the bottom of the Types page. Each row in this list provides a summary of a type in the format:

CheckBox Flags ClassName::TypeName : Definition
Both the types for this class and all the base classes are displayed. However, the base class types are read-only and cannot be modified in this dialog.

The last item in the list <New> is used for creating a new type.

To view the definition of a type, select its row in the list. This will cause the type definition to be loaded into the remaining fields of the page. You can now modify any of these fields and then press the Add button to save your changes.

The Name combo box contains the name of the type. Every type must be named. The Definition field is enabled for Simple types, and may be used to enter the definition of a simple type (similar to typedef in C/C++). The Comment box provides a verbal description of the type.

The Access group is used to specify the access permissions for the type (it defaults to Public).

The Kind group allows you to categorize a type as Simple, Enum (i.e., enumeration), or Structure.

The check box to the left of each row is the same as the Annotate mode, and causes the type to be displayed within the place.

Like an attribute, a type in the list may be preceded by -, #, or + (meaning, respectively, private, protected, and public).

You can create a new type by selecting the row in the type list, entering the type information into relevant fields, and then pressing the Add button.

You can delete an existing type by first selecting it in the list and then pressing the Delete button. You can copy and paste types between objects via the type list popup menu.

You can change the position of a type in the list (i.e., reorder the list) by selecting the type and pressing the Move Up or Move Down button. This will move the type up or down one row at a time.

Enum and Structure types may optionally have elements. To edit a type’s elements press the Elements button. This will display a separate dialog box.

The behavior of this dialog is similar to the Types property page. The list of currently defined elements for the nominated type appears at the bottom of the dialog. Each row in this list provides a summary of an element in the format:

ElementName : ElementType
All elements must be named. An element may optionally have a default value. This is provided in the Value box.

To save your changes to the type parameters, press the OK button. To cancel the changes, press the Cancel button. The dialog will be dismissed and you will return to the Types property page.

Master Exceptions

Finally, the Exceptions property page is used for defining or changing the master’s exceptions. An exception denotes an error that may be raised by the methods defined in the master.

The list of exceptions currently defined for the master appears at the bottom of the Exceptions page. Each row in this list provides a summary of an exception in the format:

CheckBox ClassName::ExceptionName {MemberList}

The check box to the left of each row is not selectable, because unlike attributes and methods, exceptions are never displayed within a place.

Both the exceptions for this class and all the base classes are displayed. However, the base class exceptions are read-only and cannot be modified in this dialog.

The last item in the list <New> is used for creating a new exception.

To view the definition of an exception, select its row in the list. This will cause the exception definition to be loaded into the remaining fields of the page. You can now modify any of these fields and then press the Add button to save your changes.

The Name combo box contains the name of the exception. Every exception must be named. The Comment box provides a verbal description of the exception.

An exception may optionally have members. Each member is a typed data that further defines the exception. To edit an exception’s members, press the Members button. This will display a separate dialog box similar to that displayed for the parameters of a method.

The list of currently defined members for the nominated exception appears at the bottom of the dialog. Each row in this list provides a summary of a parameter in the format:

MemberName : MemberType
All members must be named. A member may optionally have a default value. This is provided in the Value box.

To save your changes to the exception members, press the OK button. To cancel the changes, press the Cancel button. The dialog will be dismissed and you will return to the Exceptions property page.

List Popup Menu
Each of the lists in the Attributes, Methods, and Exceptions tab pages has an associated popup menu that can be activated by pressing the right mouse button. This menu provides four commands:

Drawable Properties

To display the properties of a drawable, select the drawable in the drawing pane and select Edit:Properties. Alternatively, double-click the drawable. If the property sheet is already displayed then simply selecting the drawable will be sufficient. In this way, you can quickly switch from the properties of one drawable to another. You can view the properties of places, links, and text primitives. Other drawables have no properties.

Place Properties

If the selected drawable is a place then the master properties for that place will be displayed instead.

Two additional options will also be displayed:

Link Properties

If the selected drawable in a link then the link property sheet will be displayed.

This property page is similar to the model property page, except for the following fields:

Message Properties

If the selected drawable is a message primitive then the message property sheet will be displayed.

The Name box is used to modify the message name. The Reverse option should be selected if you want the message arrow to appear in the reverse direction of the link to which it is attached. The Comment box is as per other drawables. The Link To button, combo, and the URL checkbox are the same as in the Link Properties dialog.

Text Properties

If the selected drawable is a text primitive then the text property sheet will be displayed.

The Text box is used to modify the text. The Kind combo offers three settings:

The Editable option should be selected if you want the user to be able to interactively modify the text in the drawable pane (it defaults to selected). This option is usually used for a text primitive appearing in a tool model. Making the text editable means that the text will be interactively editable in drawables created with that tool. Otherwise, the text will be static (i.e., unchangeable).

Edit : Clear Combo Histories

The combo boxes in the various dialog boxes are designed to remember the last few data items entered by the user. This is called a combo history and provides a convenient means for the user to save time by selecting frequently used data items from a combo’s list box. This command allows you to clear all such histories.


The View Menu

The View menu provides commands for managing the presentation of the project information, especially in the drawing pane. These commands do not affect the information stored in the project file.

View : Zoom In

This command is used to zoom into the drawing pane. It causes the drawing displayed inside the drawing pane to be enlarged by 10%. You can zoom in up to 400% the actual size.

View : Normal Size

This command restores the zoom level for the drawing pane to 100% (i.e., the actual size).

View : Zoom Out

This command is used to zoom out of the drawing pane. It causes the drawing displayed inside the drawing pane to be shrunk by 10%. You can zoom out down to 20% the actual size.

View : Pan to Selected

This command is used to bring one or more selected drawables in the drawing pane to view. It automatically scrolls the drawing so that the selected drawables are centered in the drawing pane.

View : Show Page Breaks

This command toggles to show/hide the page breaks in the drawing pane. For a large drawing consisting of more than one page, showing the page breaks enables you to see the page boundaries in the drawing. These boundaries are displayed as grey lines. It defaults to show page breaks.

View : Show Namespaces

This command toggles to show/hide the namespace of masters in the drawing pane. When ticked, it causes the namespace of each master to be prepended to its name (but separated with a dot). It defaults to hide namespaces.

View : Show Roles/Cardinalities

This command toggles to show/hide the roles/cardinalities of the links in the drawing pane. If your drawing is too complicated and cluttered, hiding the link roles/cardinalities will help make it clearer. It defaults to show roles/cardinalities.

View : Show Hyper Links

This command toggles to show/hide hyper links.

View : Highlight Groups

This command toggles to highlight/de-highlight group drawables. If a group drawable has no visible boundary, highlighting the groups will help make the group boundaries clear. It defaults to highlight groups.

View : Main Toolbar

This command toggles to show/hide UMLStudio’s main toolbar. Normally you would want to show the toolbar, but you might want to temporarily hide it to provide more space for the drawing pane. It defaults to show the toolbar.

View : Miscellaneous Toolbar

This command toggles to show/hide UMLStudio’s miscellaneous toolbar. Normally you would want to show the toolbar, but you might want to temporarily hide it to provide more space for the drawing pane. It defaults to show the toolbar.

View : Custom Toolbar

This command toggles to show/hide UMLStudio’s custom toolbar (containing the link and place tools). Normally you would want to show the toolbar, but you might want to temporarily hide it to provide more space for the drawing pane. It defaults to show the toolbar.

View : Status Bar

This command toggles to show/hide UMLStudio’s status bar, which displays information about your current actions at the bottom of the application window. Normally you would want to show the status bar, but you might want to temporarily hide it to provide more space for the drawing pane. It defaults to show the status bar.

View : Log Window

This command toggles to show/hide the log window. The log window is used to report important information (e.g., errors, warnings, traces) to the user during code generation and reverse engineering. Normally you would want to hide the log window, because it will appear on top of the project windows and obscure them. It defaults to hide the log window.

View : Refresh

This command refreshes the entire project window. Should the project window be garbled for any reason, this command will clean it up. It is very unlikely that you would ever need to use this command.


The Model Menu

The Model menu provides commands for creating new models and navigating up and down the model hierarchy.

Model : New Model

This command is used to create a new custom model (it is also available in the context popup menu.) It will display a dialog box that lists the available diagram types to choose from.

The list of the available diagram types comes directly from the template (i.e., is the same as that appearing inside the Diagrams subfolder of the template folder).

To create a model, select the desired model type from the list and press the OK button. Alternatively, double-click the desired model in the list.

If you select the As a Child of Currently-Selected Model option, the new model will appear as a child of the current model in the Models folder in the explorer pane. Otherwise, it will be appear as a top-level model, directly inside the Models folder.

The new model is initially empty (i.e., contains no drawables), and is automatically selected. The name of the model defaults to Untitled n (where n is a sequential number that starts at 1).

You can cancel the effect of New using the Edit:Undo command.

Model : New Tool Model

This command is used to create a new tool model. It is enabled when a tool in the custom toolbar or the explorer pane is selected (or when the Links or Places folder in the explorer pane is selected). If the currently-selected tool is a link tool then a new link tool is created. Otherwise, a new place tool is created. In both cases, the new tool is added to the template, and its model is displayed in the content pane.

A new tool model is initially empty and named Untitled. You can design the tool by adding drawables to it. You can change the tool name by bringing up its property sheet and typing a new name in the Name field.

Model : New Stereotype Model

This command is used to create a new stereotype model. It is enabled when a tool in the custom toolbar or the explorer pane is selected. The new stereotype is added to the template as a child of the selected tool, and its model is displayed in the content pane.

A new stereotype model is initially empty and named Untitled. You can design the tool by adding drawables to it. You can change the tool name by bringing up its property sheet and typing a new name in the Name field.

Model : Explode

This command is used to create a submodel for the master of the currently-selected place in the drawing pane (it is also available in the popup menu.) If the master already has a submodel, then it instead activates that submodel. The command is dimmed when the selected drawable is not a place or when more than one drawable is selected.

It displays the same dialog box as the Model:New command, but the model tree in the dialog also includes the existing models within the project.

If you select a model from the Analysis folder in the dialog, then a new model is created and the exploded master is linked to it. However, if you select a model from from the Existing Models folder in the dialog, no model is created, but the exploded master is linked to the selected existing model.

In the former case, the created submodel appears as a child of the model which contains the selected place in the explorer pane, and is automatically activated. The submodel is initially empty (i.e., contains no drawables). Its name defaults to the parent master name. For example, if a place named 'Service' inside a model named 'Architecture' is exploded into a class model, then the explorer tree will look like this:

As a shortcut to this command, you can double-click the place while holding the control key. If the place master has a submodel, it is activated. Otherwise, the user is prompted to confirm the creation of the submodel.

You can cancel the effect of Explode using the Edit:Undo command.

Model : Submodel

This command is used to navigate to the submodel of the master of the currently-selected place in the drawing pane (it is also available in the popup menu.)

The command is dimmed when the selected drawable is not a place, when more than one drawable is selected, or when the master of the selected place has no submodel.

As a shortcut to this command, you can double-click the place while holding the control key, or click on the place’s refinement hyper link.

Model : Implode

This command is used to navigate from a submodel to the parent model, i.e., the model that contains the place whose master owns the submodel (this command is also available in the popup menu.)

The parent model is activated. Alternatively, you can browse to the parent model (or any other model) manually by selecting it in the explorer pane. This command is dimmed for root-level models (i.e., models that appear directly inside the Models folder).

Model : Break Explode Link

If you select a place that has a submodel and then choose this command, the connection between the place’s master and the submodel will be removed. This allows you to disconnect a master from its submodel without having to delete one of them.

Model : Move Up

This command moves up the currently-selected custom model in the explorer pane by one position.

Model : Move Down

This command moves down the currently-selected custom model in the explorer pane by one position.

Model : Best Page Matrix

The matrix page in the info pane allows you to specify the size of the drawing for the current model. If your drawing doesn’t use all the pages allocated, then you can get the optimal fit for the drawing by applying this command. It changes the drawing page matrix so that it tightly encloses the drawables.


The Arrange Menu

The Arrange menu provides commands for managing the arrangement of drawables in the drawing pane. These command apply to the currently-selected drawables.

Arrange : Bring To Front

This command is used to change the stacking order of the currently selected drawables in the drawing pane so that (where there is a physical overlap) they will appear on top of other drawables.

You can cancel the effect of Bring To Front using the Edit:Undo command.

Arrange : Send To Back

This command is used to change the stacking order of the currently selected drawables in the drawing pane so that (where there is a physical overlap) they will appear below other drawables.

You can cancel the effect of Send To Back using the Edit:Undo command.

Arrange : Group As Primitive

This command is used to group the currently selected primitives as a primitive. The result is a single drawable that behaves like a primitive (called a primitive group). Therefore, a primitive group can itself be grouped with other drawables to produce nested groups. After grouping, you can still individually manipulate the drawables in the group (e.g., selecting, dragging, and deleting them).

To access the members of a primitive group, you should hold down the control key as you click and/or drag the group members. You cannot drag drawables into or out of a primitive group.

You can cancel the effect of Group As Primitive using the Edit:Undo command.

Arrange : Group As Place

This command is used to group the currently selected drawables as a place. The result is a single drawable that behaves like a place (called a place group). Therefore, a place group can itself be grouped with other drawables to produce nested place groups. After grouping, you can still individually manipulate the drawables in the group (e.g., selecting, dragging, and connecting links to places).

If a place group is not locked, you cannot drag drawables into or out of it.

You can cancel the effect of Group As Place using the Edit:Undo command.

Arrange : Ungroup

This command is used to ungroup primitive groups and place groups. Select the groups you want to ungroup and then choose this command. Ungrouping a group restores the group members as separate drawables. If you ungroup a place group then any link connected to the group will be removed. However, links connected to group members will remain intact.

You can cancel the effect of Ungroup using the Edit:Undo command.

Arrange : Flip Horizontal

This command is used to horizontally flip the currently selected primitives. It has no effect on other drawables.

You can cancel the effect of Flip Horizontal using the Edit:Undo command.

Arrange : Flip Vertical

This command is used to vertically flip the currently selected primitives. It has no effect on other drawables.

You can cancel the effect of Flip Vertical using the Edit:Undo command.

Arrange : Rotate Left

This command is used to rotate the currently selected primitives by 90 degrees anti-clockwise. It has no effect on other drawables.

You can cancel the effect of Rotate Left using the Edit:Undo command.

Arrange : Rotate Right

This command is used to rotate the currently selected primitives by 90 degrees clockwise. It has no effect on other drawables.

You can cancel the effect of Rotate Right using the Edit:Undo command.

Arrange : Reposition

This command is used to reposition the currently selected drawables (except for links, which are ignored by this command). A dialog box is displayed for specifying the repositioning criteria.

The Horizontal group is used for repositioning along the x-axis. The Vertical group is used for repositioning along the y-axis. Both groups default to the None option (i.e., no repositioning). Choose one of the Align options to align the sides or the centers of the selected drawables. Choose Space Evenly to force a uniform gap between the drawables. Choose Same Width or Same Height to force the drawables to have the same size.

After making your selections, press the OK button for the repositioning to take place, or the Cancel button to cancel the command.

You can cancel the effect of Reposition using the Edit:Undo command.

Arrange : Renumber Messages

This command is enabled for diagrams that can contain messages attached to links (i.e., collaboration and default diagram types). It allows such messages to be renumbered in click sequence.

The command behaves as a toggle flag. When you select it, the number parts of all the messages in the current model are highlighted. Each time you click on a message, that message is sequentially renumbered (starting with 1). If you choose the command again, or click in a blank area or on a non-message, the messages are de-highlighted.

If you want to only renumber a few of the messages in a model, you can start the renumbering sequence at a number other than 1. To start the sequence at n, hold the shift or control key down, click on a message that has the sequence number n, and then release the shift/control key. Subsequent clicks will renumber messages to n+1, etc.


The Looks Menu

The Looks menu provides commands for controlling the cosmetic appearance of drawables in the drawing pane. These command apply to the currently-selected drawables.

Looks : Fill Color

This command displays a menu of colors to be used for filling the currently-selected drawables. This is the same as the fill color menu in the main toolbar.

You can cancel the effect of Fill Color using the Edit:Undo command.

Looks : Line Color

This command displays a menu of colors to be used for drawing the border lines of the currently-selected drawables. This is the same as the line color menu in the main toolbar.

You can cancel the effect of Line Color using the Edit:Undo command.

Looks : Line Style

This command displays a menu of line styles to be used for drawing the border lines of the currently-selected drawables. This is the same as the line style menu in the main toolbar.

You can cancel the effect of Line Style using the Edit:Undo command.

Looks : Font

This command displays a dialog box for specifying the font attributes of the currently-selected drawables. This is the same as the font dialog accessed from the main toolbar.

You can cancel the effect of Font using the Edit:Undo command.

Looks : Normal Links

This command is used to switch all the links in the current model to the normal mode (i.e., not stepped or curved).

You can cancel the effect of Normal Links using the Edit:Undo command.

Looks : Step Links

This command is used to switch all the links in the current model to the step mode, causing all link segments to be drawn as horizontal or vertical lines.

You can cancel the effect of Step Links using the Edit:Undo command.

Looks : Curve Links

This command is used to switch all the links in the current model to the curve mode, causing them to be drawn as Bezier curves.

You can cancel the effect of Curve Links using the Edit:Undo command.

Looks : Annotation

This command displays a dialog for controlling the annotation of one or more classes. It applies to all the selected classes in the current model, or to all classes in the current model (if nothing is selected in the current model).

You can cancel the effect of Annotation using the Edit:Undo command.

Looks : Apply Template

This command is used to enforce the looks attributes of the currently-selected drawables as specified by the project template. It only affects links and places, and effectively cancels any changes made to the appearance of the drawables using the commands in the Looks menu.

You can cancel the effect of Apply Template using the Edit:Undo command.


The Tools Menu

The Tools menu provides tools for code generation, document generation, reverse engineering, and specifying the preferred options for UMLStudio.

Tools : Generate Code

This command is used to generate code for the current project. It displays a dialog box for nominating the code generation script and specifying its parameters.

The Scope group specifies the objects/models for which code should be generated. If you select Selected Objects, code will be generated for the currently-selected objects in the current model only. Select Current Model if you want to generate code for the current model only (excluding any submodels it may have). Select All Models to generate code for the entire project. The default selection is Current Model.

The Script to Run combo box specifies the code generation script to be used. This combo box is populated with the scripts located inside the Scripts\CodeGen subfolder in the explorer pane (see Tools:Options):

The box to the right of the Target Folder button specifies the target folder for code generation. All generated code files will be placed in this folder. You can either type the folder name directly into the box, or press the Target Folder button to browse to the desired folder. The latter will display the standard Windows dialog for opening files to facilitate the browsing.

Similarly, the box to the right of the Target File button specifies the target file for code generation. However, because code is usually generated in a number of files, most code generation scripts ignore this field, and derive the file names from the master names.

The Generation Options box list the options exposed by the selected script. Each option has a tick box next to it which can be used to select the option. An option may be of one of the following categories:

When a value option is selected, its value is displayed in the Value box so that you can edit the text. When a choice option is selected, the Value box becomes a combo from which you can select an available value. In both cases, pressing the Set Option button or selecting another option from the Generation Options list causes the value to be set.

To start generating code, press the Run button. The dialog will disappear and code will be generated and stored in appropriate files. A trace of code generation will be displayed in the log window . The log window will be displayed automatically if the Show Log Window Automatically option has been selected in the Tools:Options dialog.

The code generation parameters will be remembered for your project. However, if you dismiss the dialog by pressing the Cancel button, your changes to the parameters will be ignored.

Tools : Generate Documentation

This command displays the same dialog box as displayed by Tools:Generate Code. The only difference being that the Script to Run combo is loaded with the document generation scripts located inside the Scripts\DocGen subfolder of the explorer pane (see Tools:Options).

Tools : Run Other Script

This command displays the same dialog box as displayed by Tools:Generate Code. The only difference being that the Script to Run combo is loaded with the scripts located inside the Scripts\Other subfolder of the explorer pane (see Tools:Options).

Tools : Import Project

This command displays a dialog box for running import scripts:

No import scripts are provided in this version.

Tools : Export Project

This command displays a dialog box for running export scripts:

No export scripts are provided in this version.

Tools : Reverse Engineer

This command is used to reverse engineer one or more program code files back into class models. It displays a dialog box for selecting the files to be reverse engineered.

The Language combo box specifies the source programming language (defaults to C++). It lists all the languages for which there is hard-code reverse engineering support, plus all the languages for which reverese engineering scripts have been provided (in the Scripts/RevEng/ folder).

The Options group lists all the available options for the selected language. For script-based languages, the options are specified by the script.

Selecting the Show All Attribute/Method Annotations option causes all the attributes/methods for the generated places to be displayed within them.

If the Show Relationships Graphically option is not selected, then only inheritance and implementation relationships are shown. Otherwise, composition and aggregation relationships are also displayed.

Selecting the Keep Method Code option causes the code for each parsed class method to be included in the model. This code can then be viewed by pressing the Code button in the Method Properties tab page.

If the Record File Names in Generated Classes opion is selected, then for each generated class, its source file name is recorded in the class’s File Name property.

The Source Files list box is used for displaying the currently-selected program code files to be used for reverse engineering.

To add more files to this list, press the Add Files button. This will display the standard Windows Open dialog box for nominating one or more files. Select the files you want and press the Open button.

The Files of type combo in this dialog allow you to select the type of files you want displayed in the dialog. If there is a file type not catered for, you can explicitly specify it in the File name field. For example, if you want to view all .hh files, type *.hh in the File name field and press enter.

If you have a folder hierarchy of files that you want to reverse engineer, use the Recursive Add button. This will display the standard Windows Open dialog box for nominating a folder. The files in the nominated folder (and all its subfolders, etc.) that match the nominated language will be added to the list.

If you press the Auto Select button, then the file name recorded against each class in the current model is added to files list box. This provides a convenient means of repeating reverse engineering. Before you reverse engineer, select the Record File Names in Generated Classes opion, and next time, you only need to press this button to have the same files selected.

To drop files from the list, first select them and then press the Drop Files button.

To start the reverse engineering process, press the Reverse button. The dialog box will disappear and the selected files will be parsed and converted to n class diagram, which is then displayed in the current model. The log window will be displayed automatically if the Show Log Window Automatically option has been selected in the Tools:Options dialog.

Tools : Redo Last Reverse Engineer

This command is the same as Tools:Reverse Engineer except that it preloads the dialog with the files used for the last reverse engineer (i.e., the files that appear under the Reversed node in the explorer pane).

Tools : Open File Separately

This command opens, in a separate window, the currently selected (generated or script) file in the explorer pane. The file is opened using its nominated application, as specified in Tools:Options.

A convenient shortcut to this command is to simply double-click the file icon in the explorer pane.

Tools : Options

This command displays a dialog box for setting the user-preferred options for UMLStudio. These options are divided into three tab pages, and are stored in UMLStudio’s profile.

The General tab page contains a list of simple options:

The Max Image Width and Max Image Height fields apply to images generated by the File:Save Image command and the document generation scripts. If a generated image is larger than the maximum size specified by these two fields, it will be automatically shrunk.

Pressing the OK button saves the changes to all pages of the dialog and closes the dialog. Pressing the Cancel button dismisses the dialog and ignores all changes to it.

The Locations tab page displays a list of edit boxes for specifying the location of a number of important files/folders used by UMLStudio.

The box to the right of the Notation Folder button specifies the folder in which UMLStudio will look for notation templates. You can change this folder either by typing the new path directly into the box, or by pressing the Notation Folder button to browse to the desired folder.

The box to the right of the Default Notation button specifies the default notation template (to be used for creating a new project when UMLStudio is first launched). You can change the default notation by pressing the Default Notation button to browse to the desired notation template file.

The box to the right of the Script Folder button specifies the folder in which UMLStudio will look for scripts (in CodeGen, DocGen, and Other subfolders of the explorer pane). You can change this folder either by typing the new path directly into the box, or by pressing the Script Folder button to browse to the desired folder.

The box to the right of the Default Library button specifies the default library project (to be automatically loaded when the application is launched). You can change the default library by pressing the Default Library button to browse to the desired library file.

The box to the right of the Default Ref. Proj. button specifies the default reference project (to be automatically loaded when the application is launched). You can change the default reference project by pressing the Default Ref. Proj. button to browse to the desired project file.

The box to the right of the Repos. Cache button specifies the path for the repository cache file. When you use UMLServer, this file stores temporary information about the repository. If you run UMLStudio from a LAN server, then you might want to change the path of this file to avoid write permission problems on the server.

The Viewers tab page is used for specifying applications for viewing files according to their types. These viewers are used when you double-click a file in the explorer pane, or select it and choose Tools:Open File Separately.

The list of currently-defined viewers is displayed at the bottom of the tab page. Each row in the list is of the general format:

Extension => ViewerApplication
You can create a new viewer by selecting the <New> row in the list, entering the viewer information into relevant fields, and then pressing the Add button.

You can delete an existing viewer by first selecting it in the list and then pressing the Delete button.

You can change the position of a viewer in the list (i.e., reorder the list) by selecting the viewer and pressing the Move Up or Move Down button. This will move the viewer up or down one row at a time.

The Extension field specifies a file extension.

The field to the right of the Viewer button specifies the full path of the viewer application. You can either type the path name, or press the Viewer button and browse to the viewer application.


The Tasks Menu

The Tasks menu lists the tasks defined in the scripts/Task folder. Each task is defined as a PragScript. By adding your own task definitions to this folder you can access them from the Tasks menu.

Duplicate Selected Places

This command runs a task script which duplicates the places selected in the current model. The effect of this is not the same as copying and pasting the places. When you copy and paste a place, the master to which the place refers is not duplicated. Instead, the copied place refers to the original master (thus causing its reference count to be incremented). By contrast, this task script duplicates the original master and gives it a new name. This is useful for situations where you want to make a copy of a master and alter some of its attributes, methods, etc.

Project Hierarchy

This command runs a task script which displays in the log window a textual representation of the project hierarchy. The hierarchy includes the name of each model and the places in that model.

Project Statistics

This command runs a task script which displays in the log window some useful statistics for the current project.

Run in Debug Mode

This command toggles the debug mode for running task scripts. When enabled, it shows each loaded PragScript function in the log window.

Define New Task...

This command displays a dialog which describes how to define a new task.


The Window Menu

The Window menu is the standard Windows window menu for applications, consisting of a set of commands for managing project windows and the list of currently open project windows.


The Help Menu

Help : Contents

This command displays the contents page of the online user manual. Use the contents page if you want to look something up by subject.

Help : Index

This command displays the index page of the online user manual. Use the index page if you want to look something up using keywords.

Help : PragSoft Web Site

This command takes you to PragSoft Corporation’s main web page.

Help : Buy Now

This command takes you to PragSoft Corporation’s secure online shopping page, where you can purchase product licenses using a credit card.

Help : License Key

This command displays the license details dialog. When you purchase a license, use this dialog to enter the registration details sent to you by PragSoft Corporation.

You can configure your license as a Stand-alone License or Floating License by choosing the relevant radio button.

If you choose to configure as a stand-alone license, you can enter the license details into the top part of the dialog and press OK.

If you choose to configure as a floating license, you must first install UMLServer and enter the license details into the license dialog of UMLServer. Then you can enter the floating license information into the above dialog:

If UMLServer has been installed in your network by a Network Administrator then you should ask them for the above details.

You can run UMLServer and UMLStudio on the same PC. In this case, you can press the Default Settings button for the fields to be automatically set.

Please note that under the floating license option, you need to make sure that exactly one instance of UMLServer is running on the nominated host when you run UMLStudio. As soon as it is launched, UMLStudio contacts UMLServer to verify the license details. If UMLServer is not running at the time, or if the verification fails, or if the maximum number of clients (as specified by license quantity) is reached, UMLServer will run in freeware mode instead.

See the UMLServer documentation for further details.

Help : About UMLStudio

This command displays UMLStudio’s splash screen that contains license information.


The Popup Menu

The context popup menu appears when you hold the right mouse button down in the explorer pane, the drawing pane, or the lister page. The commands in the popup menu apply to the currently selected object(s) in the pane. If you right-click the mouse in the drawing pane on an object, then that object is implicitly selected first.

The popup menu provides commands that are already available in the pull-down menus, and serves as a convenience.

Popup : Call

If you bring up the popup menu for a link or for a message attached to a link then this command is enabled. Selecting this command displays a submenu that lists the methods for the target place of the link. All methods, including the base class methods are listed. Selecting a method from this menu causes it to appear as the label for the link/message. The first entry in this submenu is called <None> and causes the label to be removed.


Table of Contents | Chapter 7 | License Agreement

Copyright © 1996-2010 PragSoft Corporation (www.pragsoft.com)