Author: Daniel Bergqvist
Keywords: jmri LogixNG reference clipboard

# LogixNG Reference - Chapter 2

## The clipboard

### Cut/Copy/Paste/Paste copy

While editing a ConditionalNG, it can be useful to cut out something, edit something else, and then paste it back. Chapter 1 has a good example. For this purpose, LogixNG has a clipboard. Each time you cut an action or expression, it is moved to the clipboard.

It also possible to copy all or part of a ConditionalNG. This can then be pasted into the same ConditionalNG, another ConditionalNG or even a different LogixNG.

The LogixNG context menu contains four items for working with the clipboard.

Cut
  The row and its children are removed from the ConditionalNG and added the clipboard.
Copy
  The row and its children are copied from the ConditionalNG and added the clipboard.
Paste
  The first row in the clipboard is pasted to the empty row and removed from the clipboard.
Paste copy
  The first row in the clipboard is copied and then pasted to the empty row.

### Working with the clipboard

The clipboard editor works the same way as the ConditionalNG editor, with the exception that actions and expressions are never active while on the clipboard.

The clipboard contents are visible by selecting Tools ⇒ Open clipboard. The clipboard can also be opened from the main menu of the three LogixNG tables.

In the ConditionalNG editor window, copy and cut add to the beginning of the clipboard list. Paste uses the first item in the clipboard list and it will be deleted from clipboard list. Paste copy does not remove the item.

In the clipboard window, copy creates a duplicate item and adds it to the beginning of the list. Cut moves the item to the beginning of the list. Remove will delete the item from the clipboard list.

Note that you can cut an item on any level in the clipboard tree. While editing a ConditionalNG, you may cut a big tree from the ConditionalNG and you then take only a small sub tree and paste back to the ConditionalNG.

    Example:
    * Many
      * IfThenElse
        * If sensor
        * Then Throw turnout

You can cut the Many action from the ConditionalNG, then go to the clipboard and expand the Many action and then cut the IfThenElse action. The IfThenElse action will then be moved to the first row on the clipboard. Now you can go back to the ConditionalNG and paste the IfThenElse action to the ConditionalNG.

If the popup menu is opened on an item that can be copied, the menu item Copy is enabled. If "Copy" is selected, the item and its sub tree are copied to the clipboard. Each item gets an auto system name and no user name.

Chapter 3 - Working with sockets

Return to the Reference TOC