While the connect tool will generally be sufficient and powerful enough for most AcmeStudio users, there are those users who know exactly what patterns they want to use, and the ambiguous dialog for differentiation will be inefficient. For these users, it is possible to select which rule is desired from the palette. First, in AcmeStudio preferences, the user must specify to use allow specific rules to be chosen from the palette. Then, upon reloading their system, a palette tool will be visible with a small black arrow on the right. Clicking this tool will expand the tree, and the user can navigate to the desired pattern, select it, and connect like using a sticky rule (detailed above).
To organize the
items in the palette tree, AcmeStudio uses an intuitive, hierarchical structure,
to present the possible pattern choices to the user. The first choice the user
will be presented with (left most section of the tree) is a list of component
info for available rules (‘*’ represents that rules can use any component for
this item). For instance, if an option on the list is ‘Filter -> *’, then
under this menu item, the user will be able to find any pattern which is
defined to connect a Filter component to any other component. The category
labeled ‘* <-> *’ can also be useful, as it contains all rules which
specify no component information (they only specify port information, along
with roles and a connector).
At the bottom of the list of components, the user will also be presented with an option ‘By Ports’. This option is quite similar to the list of components, providing users with a list of patterns grouped by the way in which ports are addressed. For instance, ‘SourceT <-> *’ would represent all rules that go from a SourceT port to any other port, and so on.
If a style designer desires, he can select ‘Allow users of this style to extend with new patterns’. This choice is made at the dialog shown when viewing ‘change rules and visualization’ in the style editor. Should the designer of a style being worked with have specified this, a user can extend the defined connection patterns to create more.
Suppose a user, using the ‘connect’ tool on the palette, attempts to connect two items for which there is no defined pattern. If the style designer chose to allow extensions, AcmeStudio will inform the user that while there are no defined patterns for these objects, extensions can be made by selecting Design è New Connection Pattern… menu item. Users will then be presented with the same dialog described earlier for connection pattern definition.
Note – these newly defined patterns will not be included with the style. They will simply extend the patterns for the specific system being worked in. This technique is quite useful for a user working on a model and creating many connections of a specific type, not defined in a pattern. To avoid hassle, the user could define their own pattern for this connection, and proceed with their system creation in an efficient manner.