Internal
Much of this information is internal documentation. Care has not been made to make links work and make the documentation conprehensible for outsiders.
  • - Commands —

Commands are use to perform the actual work in the tool - meaning, when an instrument is applied, a command is usually responsible for doing the actiul work.

Another purpose of the command is to undo and redo. The tool is build so that every action (besides some) can be undone and redone. So in order to do anything, one has to create a Command. This command is usually first applied when the instrument is applied, but it is also registeret usually with a subpattern of WithCommandManager.

To give an example one could look at the pattern CreatePlace, which is such a subpattern and registers a new command. The command is here a simple CreateCommand. (To see the interface of a command look at some commands or look into the framework)

  • - Clippings —

Clippings are use to make it simple to use commands. I.e. when one creates a new place and deletes it and then undos it again, the placed must always be the same. This means that the object identity must be always be the same.

To give an example of how this interaction between clippings and commands works see CreateCommand. This is a very simple use, but there are very complex situation when clippings are helpfull.

The interface of clippings can be found in the cpn2000 code (see Clipping)