New features in ModelMaker 10.10
ModelMaker 10.10 released
ModelMaker Tools released the official ModelMaker 10.10 update on 4 March 2009.
Main new Features
- New type selectors resulting in more compact and easier to use dialogs.
- Navigation history of recently visited members in main toolbar.
- Auto styled Mind Maps - including editor to create custom color schemes.
- Related classes displayed in members view class info bar improve class navigation.
- Modules view can be ordered by namespace. Change namespace with Drag&Drop.
and lots more...
- Engine, importers, editors and tools support higher Ascii characters in identifiers, allowing names like Länge and Maņana - depending on the system code page.
- New type selector with auto drop down filtered list of all known types and auto completion. Old style type selectors (radio buttons) have been removed everywhere and related dialogs have been redesigned.
- Type Selector handles Alt+Right / Alt+ Left to go to the next uppercase character in an identifier. This improves navigating in identifiers like MoveToNextBoundary.
- The type selector auto completion checks type history and predefined types (previously known as type presets) before checking other known types. Customizing the predefined types allows changing auto completion order, character case (pascal) for types like string (or String, STRING), int (Integer) bool (Boolean). Predefined types can be edited via Environment Options | General. New defaults are applied, previous type presets are ignored.
- Global Navigation History and Stack based forward / backward history in the main toolbar. The two histories styles give access to methods (optionally also other member types) recently visited. Keyboard shortcuts are Alt+Left/Right (stack based history) and Ctrl+` for the global history. (German keyboards Ctrl+0). The history buttons can be hidden using "Customize toolbar". History options are available in tab Environment Options | General | Search & History.
- The Delegate dialog has an embedded parameter wizard. This allows structured editing of the delegate parameter list.
- The (embedded) parameter wizard (method and delegate dialogs) has a filtered auto drop down list with previously entered variable/typename combinations.
- The (embedded) parameter wizard supports multiple selection when changing parameter modifiers (const, out etc) typename and default value.
- "Locate in Delphi/VS" commits pending changes in model views before switching to the IDE.
- "Invoke model search" added to Module code view and implementation view. Activates the model search bar with the identifier at cursor position. Shortcut Ctrl+Shift+F
- Drag-dropping files on the Reference view adds these files as references, similar to how Modules view imports dropped files.
- When using the IDE add-ins to convert a file or project to a model, ModelMaker suggests to adjust (increases) the language mode if necessary. For example: invoked from VS2008 the C# language mode will be set to C# v3 minimum, invoked from Delphi 2009, the Delphi language will be at least D2009 win32 mode. This should avoid most importing problems.
- Environment variables may be used in the path specified in a path alias. Aliased path "($PROJECTS)" (omit quotes) will expand environment variable "PROJECTS". Environment vars can only be at the beginning of an aliased path. Sub directories are supported. For example: "($PROJECTS)\Test". Environment vars inside aliased paths are not supported. For example: "E:\($SOURCE)\Tests" is not supported.
Members view - class info bar
- The Members view class info bar displays classes related to the current class. For example: ancestor, supported interfaces and classes implementing the current interface. The related classes are displayed up in a scrollable list. Clicking a class or interface navigates to it. Using this, it is easy to navigate between a class and interfaces it implements and vice versa.
- Modules can be additionally be ordered by namespace (Pascal only). In this ordering mode modules can be drag-dropped on a namespace to change the unit name / namespace. If the module source file name is changed to an already existing file, the module's auto code generation is disabled to avoid unwanted overwriting existing source files.
- Module can also be dropped on other modules to change namespace, folder, alias or category. Previously modules could only be dropped only on folder nodes.
- Module nodes can be displayed as bold to make navigation easier - option on tab Environment options | GUI.
- Module Path information is optionally suppressed, - option on tab Environment options | GUI.
- Modules view uses super-hints to show details of entities
- Some class related commands are available on the Modules view toolbar. Use toolbar customization to show/hide or move these.
- Print Module - allows emitting the module to clipboard, file, printer or preview, without generating the source. Default shortcut Ctrl+P, The command is available from the editor pop up | Wizards sub menu. The command is also available in the toolbar, but hidden by default. Use toolbar customization to expose it. The Module Code view has a similar command Print Module Code. This prints the unexpanded module code, the code for contained classes is not expanded.
- Diagram editor: "Assign custom color" shows the current color for the selected symbol rather than the previous selected color.
- Diagram symbols, Visual style tab: for parent defined (not-customized) colors, the color dialog comes up with the parent defined color rather than black.
- Color selectors in drawing shape symbol replaced with drop down pick lists containing standard web-safe colors.
- Add Web URL hyperlink on diagram elements hyperlinks tab. Allows creating http:// links
- The hot area for role life lines (sequence diagrams) has been increased. This makes it easier to connect messages to life lines.
Mind Maps Diagrams
- Mind Map diagrams can be Auto styled. Auto styling consist of two parts: First, one of the (new) predefined visual styles is assigned to mind map nodes: Central Theme, Branch or Sub-Branch. These styles define border style, font size etc. Additionally, a color scheme assigns fill and stroke colors to Mind Map symbols, overriding the colors as defined in the visual styles. Several color schemes are available, such as Bright Colors, Pastel Colors and Gray scale. Additional color schemes may be created based on one of the predefined schemes.
- To customize the fill and stroke color of individual mind map nodes in an auto styled diagram, use the "Apply Custom Color" button from the main diagram editor visual style toolbar (or popup menu). This command resets the "Auto styled" option for the selected node(s) and then assigns a color as Fill Color (using the symbol's visual style). The same thing can be done using the MindMap symbol dialog: disable the auto styled option and select a new custom fill or border color.
- For colored (palettized) styles you may pick a color from the style's color palette using the assign color drop down in the Mind Map tool bar.
- Similar, you can add a new branch with a specific color using the Add Branch drop down from the Mind Map tool bar
- The hierarchical structure as used in auto styled diagrams, is based on Mind Map relations and their direction. Mind Map symbols, images etc. are included in the structural analysis. Other relations like dependencies and and annotation relations do not define the hierarchy. Arrows as may be displayed on the mind map relations are purely decorational and have no meaning for the hierarchical structure. This helps analyzing problems with Auto styled diagrams, arrows are auto-displayed when mind map relations are selected. .
- Several Border Styles are available: round rectangle, ellipse, drop round rectangle etc. The border style is part of the Visual Style. Therefore, to change the default border style for all mind map symbols, you should edit the visual styles "mindmap:defaults" or "mindmap-node" (in older versions). To change the border for individual nodes, use the border style selector in the mind map editor toolbar.
- The Tool Palette commands to create a Central Theme and (Sub) Branch have no effect in an auto styled diagram: in all cases a new node will be created but the visual style will be assigned based on the hierarchy.
- Manual styled diagrams: (auto styling disabled) in this case the styles for nodes are not auto assigned. When creating a node, ModelMaker analyses the structure in some cases to guess the correct style, but once assigned styles are not updated, nor are color schemes applied (the color schemes require the structure to be present). In manual mode you create new nodes with Ins/Ctrl+Ins keyboard shortcuts, with the Quick Access Tools (QAT) or Editor Tool Palette. The QAT and Palette tools auto detect and assign the required parent style (central theme, first level branch, subbranch). In most cases manual styled diagrams look OK and result in about the same diagram as a gray scale auto styled diagram.
New keyboard shortcuts:
- Backspace: select parent node
- Delete (Del): selects the parent node for the deleted nodes.
- Insert (Ins): inserts a new sub branch (child) Mind Map symbol
- Ctrl+Insert (Ctrl+Ins): inserts a new sibling sub branch (add a child to the parent of the selected symbol.
- Change Parent: Alt+Drag/Drop a MindMap symbol on another MindMap symbol changes the Mind Map hierarchy (instead of symbol containment as on other diagrams). The MindMap between the two symbols relation is created or modified. The dropped symbol and its sub branches are auto-repositioned.
- Mind Maps created with SimpleMind for the iPhone can be imported with the Diagrams view | Import diagrams command.
- Creating custom schemes for Mind Maps is done with the Custom Scheme Editor. This is invoked from the Mind Map toolbar
when a colored style is selected. Note: the command is only available when the selected color scheme is a palettized scheme (not Black & White or Gray Scale).
The build-in styles cannot be adjusted, instead you use the "save as" command in the Custom Style editor to clone and modify these.
You may add descriptions to color entries such as "Fix asap", "Feature request". These descriptions are displayed in the color
The custom scheme files are picked up at startup from directory
C:\Documents and Settings\[USERNAME]\Application Data\ModelMakerTools\ModelMaker\10.0
To delete custom styles, remove them from this directory and restart ModelMaker.
- Modules can be additionally be ordered by namespace (Pascal only).
- In documentation templates the macros <!date!> and <!time!> are available. These expand to the short date and time format as defined in the system locale settings.
Method implementation view
- Print method - allows emitting the entire method to clipboard, file, printer or preview. Default shortcut Ctrl+P, The command is available from the editor pop up | Tools sub menu. The command is also available in the toolbar, but hidden by default. Use toolbar customization to expose it. The members view has a similar command Print methods. This prints the selected methods - in the order as displayed in the members view.
- Treeviews would handle Ctrl/Shift+Left/Right and Select all when the inplace editor was active. Solved
- Treeviews would start rename when clicking on an already selected node to focus the tree. Solved.
- Event editor dialog would add available delegates to the drop down list each time the dialog was invoked rather than first clearing the list. Solved.
- Modules view folder structure would not discriminate between a (sub) folder name and a file with the same name, causing the (sub) solder to be invisible. Fixed.
- Pascal: class vars and consts would in some cases be generated as instance fields (vars). Solved.
- Adding methods to a decorator pattern would cause an access violation. Solved.
- The Documentation editor font as defined on Environment Options | Editors would not be user in all cases, changes would not be picked. Solved.
- Minor xml formatting problem solved.
- Modules view and Classes view: invoking class difference with a just single class selected would cause a list index out of bounds error. Solved.
- Class difference could in some cases lead to a series of error messages "ambiguous module...". Solved.