 |
» |
|
|
 |
NAMEData Transfer — Reference DescriptionData 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: Transfer the source element to the
target, keeping it linked (in an application-specific manner) to
the original source element. Place a link to the source element (made and displayed
in an application-specific manner) in the target without copying
the source element.
Insertion- Required
The insertion point for an operation that transfers
data into a selection scope is determined as follows: 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. 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. 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: 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). 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.
- 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: If a link operation, link the selection
to the source elements, if such links are supported by your application. 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). Insert the transferred data or link at the insertion
point.
- 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.
Exclusions- 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.
Rules- 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: Transferred elements are not selected 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
- 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: The images of the icons representing
the files or objects The names of the files or objects Links to the files or objects The data contained in the files or objects
Data Format- 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.
Transfer WellsA 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: Uses an element cursor and the control
containing the scope does not take focus as a whole 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. - 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.
Transferring Groups of Elements- 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: Do not transfer any of the elements
(the default). Transfer all the elements that can be transferred. Display a message asking the user what to do. Include
buttons with the following choices: Resume (transfer all possible elements)
- 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: Stop the transfer and undo any transfers
that have already occurred (if possible). Stop the transfer, but allow already completed transfers
to remain (the default). Transfer only the elements that can be transferred. Display a message asking the user what to do. Include buttons with the following choices: Resume (transfer all possible elements) Stop (stop transferring, but do not undo transfers) Cancel (undo all transfers)
Transfer Option
- Required
Allow the user to
override the default operation of a TRANSFER button-based data transfer
operation by using a modifier key. Table 12 “TRANSFER Button Overrides” lists these operations and
overrides. Table 12 TRANSFER Button Overrides | Operation | Modifier
Override |
|---|
| Move | Shift | | Copy | Ctrl | | Link | CtrlShift |
Essential Related TopicsFor more information, see the Clipboard,
Direct Manipulation,
and Primary Transfer reference
pages. Supplemental Related TopicsFor more information, see the Copy To (Dialog Choice)
and Pop-Up Menu (Menu
Type) reference pages.
|