[ Previous | Next | Contents | Glossary | Home | Search ]
Motif and CDE 2.1 Style Guide Reference


Data Transfer

Reference

Description

Data transfer operations transfer objects or data from a source to a target. The target may simply store the objects or data or may process them in some way as a result of the transfer.

There are five classes of data transfer operations:

Drag and drop
Drags source elements and drops them on the target to which they are transferred.

Primary
Transfers the primary selection to an indicated target.

Quick
Designates elements to be transferred to the control in which the user was most recently working.

Clipboard
Transfers elements to the clipboard and pastes them from the clipboard.

File
Transfers elements to a file (or object) and inserts them from a file (or object).

Each transfer operation is one of the following:

Copy operation
Transfers the data to the target, without affecting the source.

Move operation
Transfers the data to the target, removing it from the source.

Link operation
Transfers the data to the target (or simply places a link at the target) so that it remains linked to the source.

When to Use

Required
Allow any selectable element to be transferred.

Recommended
Provide support for users to transfer large labels that they might want to copy by using keyboard or mouse-based transfer. For example, a user might want to copy a complex icon or logo.

Guidelines

Required
A copy operation should transfer the source elements to the target without affecting the original source element in any way.

Required
A move operation should transfer the source elements to the target and then remove them from the source.

Required
A link transfer operation should do one of the following:

  1. Transfer the source element to the target, keeping it linked (in an application-specific manner) to the original source element.

  2. Place a link to the source element (made and displayed in an application-specific manner) in the target without copying the source element.

  3. Required
    The insertion point for an operation that transfers data into a selection scope is determined as follows:

    1. For a mouse-based TRANSFER button primary transfer or drag-and-drop transfer, the insertion point is the pointer position when the TRANSFER button is released.

    2. For a transfer invoked via a menu (popped up via the MENU button) on a selection or object, the insertion point is the pointer position when the MENU button is pressed.

    3. If neither of the previous applies, the pointer position is the cursor position.

      If the insertion position is not on an object, then do one of the following:

      1. If insertions can happen only at a fixed place in the selection scope, the insertion point should be placed at that point (for example, append-only text).

      2. If the elements in the selection scope are ordered in some way, the insertion point should be moved (for each element inserted) so that the element may be inserted at the proper position.

      3. Required
        If the insertion point is on a selection, but not on an object, a transfer operation into the scope should have one of the following effects:

        1. If a link operation, link the selection to the source elements, if such links are supported by your application.

        2. If pending delete behavior is enabled, replace the contents of the selection by the transferred data or link (except possibly for a primary copy at the edge of the primary selection).

        3. Insert the transferred data or link at the insertion point.

        4. Required
          If the insertion point is neither on a selection nor on an object, a transfer operation should insert the transferred data or link at the insertion point.

          Required
          If the elements are laid out in a linear manner, insert elements immediately prior to the insertion point.

          Recommended
          If the insertion point is on an unselected object, transfer data into that object (in an object-specific way; for example, if the object is text-based, append text to the end of the object).

          Recommended
          If the insertion point is on a selected object, transfer data into all the objects selected in the scope. However, issue a warning message instead if all selected elements in the scope are not objects.

          Required
          If the target insertion point is within the region of the source elements, do not perform the transfer; instead, issue a warning signal.

          Required
          If an operation that transfers data into a scope is selected from a menu popped up (via the MENU button) on neither an object nor a selection, issue a warning message if the insertion point is on an object.

          Recommended
          If a scope has elements selected, and a transfer operation uses an insertion point based on the position of the cursor (rather than the pointer) that is not within the selection, issue a warning message.

          Required
          When an object is moved or copied, transfer the contents of the object along with the object itself.

          Required
          When a move operation is performed, remove the source elements only if the data transfer has completed successfully. If the data transfer operation has been canceled or it has failed, do not remove the source elements.

          Required
          Do not select data transferred to a target as a result of a link or copy operation.

          Required
          If the source elements used in a data transfer operation are selected, do not deselect them as a result of the operation.

          Required
          Do not change the source elements used as the source of a copy or link operation.

          Required
          When transferred data is inserted into a selection scope (not into objects within the scope) by using normal mode at a position disjoint from a selection, deselect the selected elements.

          Required
          Inserting or pasting elements at a location disjoint from the selection should have no effect on the selection in add mode.

          Required
          If a transfer operation uses an insertion point based on the position of the pointer (rather than the cursor), place the cursor at the pointer position used.

          Recommended
          When a data transfer operation inserts multiple elements into a selection scope (except when a selection is being copied by primary or drag-and-drop transfer within the same scope), place the selection anchor at the opposite end of the area or range so that Shift Select Shift Space or Shift Ctrl Space in text can be used to select it when following is true:

          1. Transferred elements are not selected

          2. Data is inserted as an area or range, which does not overlap existing elements, one end of which corresponds to the position of the cursor when the operation is completed

          3. Recommended
            If a selection scope contains only objects, then transferring nonobject data to the scope should encapsulate the data into an object and include the object in the scope.

            Recommended
            When a list displays names of objects or files, provide an icon that represents the objects or files selected (or their contents) adjacent to the list, allowing the selected list elements to be treated as strings.

            Recommended
            Display a message asking the user to choose the desired result if the source elements of a data transfer represent files or objects and the user could be confused that more than one of the following could be inserted:

            1. The images of the icons representing the files or objects

            2. The names of the files or objects

            3. Links to the files or objects

            4. The data contained in the files or objects

            5. Required
              During a transfer operation, allow the data transferred to change its appearance or representation to suit the requirements of the target.

              Recommended
              If a source cannot transfer data in the format preferred by the target, provide a warning message and allow the user to cancel the operation.

              Recommended
              On a move transfer operation, notify the user of possible loss of data if the target element indicates that data may be lost due to conversion of the format of the transferred data. Ask the user to confirm the action before proceeding. For example, if the user moves an ASCII file and the target element will not accept ASCII files without losing data, display a message to request confirmation.

              Optional
              If you provide a choice of the exact representation of data to be transferred, notify the user which representation the application will use. Alternatively, display a secondary window that allows the user to choose the representation.

              A transfer well is a special field similar to a clipboard with option buttons that represent transferred elements.

              Recommended
              Provide a transfer well adjacent to the control that can take focus if a selection scope containing objects does either of the following:

              1. Uses an element cursor and the control containing the scope does not take focus as a whole

              2. Does not have a background area (for example, it is represented as a list)

                Transferring objects to the target well includes them in the scope.

              3. Optional
                Use data transferred to transfer wells associated with selection scopes that consist primarily of text or graphics to replace the contents of the scope, or as input to operations that manipulate the contents of the scope.

                Recommended
                If your application supports transfer to a transfer well as a means of loading a file into the application, design the application to respond to this operation as if the operation had occurred through more conventional means, such as when the user chooses Open from the File menu. That is, provide the same kind of feedback and behavior for data transfer loading of files as when the Open choice is used. For example, if changes to a currently loaded file have not been saved, display a message asking whether the changes should be saved before loading the new file.

                Recommended
                If a group of elements cannot all be transferred successfully, and the destination can determine this before any transfers are performed, allow the user to set a property that determines which of the following actions to take:

                1. Do not transfer any of the elements (the default).

                2. Transfer all the elements that can be transferred.

                3. Display a message asking the user what to do. Include buttons with the following choices:

                  1. Resume (transfer all possible elements)

                  2. Cancel (do no transfers)

                  3. Help

                  4. Recommended
                    If a group of elements cannot all be transferred successfully, but the destination cannot determine this before at least one transfer has been performed, allow the user to set a property that determines which of the following actions to take:

                    1. Stop the transfer and undo any transfers that have already occurred (if possible).

                    2. Stop the transfer, but allow already completed transfers to remain (the default).

                    3. Transfer only the elements that can be transferred.

                    4. Display a message asking the user what to do.

                      Include buttons with the following choices:

                      1. Resume (transfer all possible elements)

                      2. Stop (stop transferring, but do not undo transfers)

                      3. Cancel (undo all transfers)

                      4. Help

                      5. Required

                        Allow the user to override the default operation of a TRANSFER button-based data transfer operation by using a modifier key. Table 12 lists these operations and overrides.

                        Table 12. TRANSFER Button Overrides

                        Operation Modifier Override
                        Move Shift
                        Copy Ctrl
                        Link Ctrl Shift

                        Essential Related Topics

                        For more information, see the Clipboard, Direct Manipulation, and Primary Transfer reference pages.

                        Supplemental Related Topics

                        For more information, see the Copy To (Dialog Choice) and Pop-Up Menu (Menu Type) reference pages.


                        [ Previous | Next | Contents | Glossary | Home | Search ]