File creation through virtual containers

In an approach for creating a file, a computer receives a selection on a selection of content within application software on a first computing device to transfer to a clipboard. The computer appends metadata of the received selection with metadata indicating application software and file association information that corresponds to the selected content. The computer receives an indication to paste the selected content from the clipboard to a second computing device. The computer determines whether compatible application software on the second computing device is capable of accepting the selected content included in the received indication to paste. The computer responsive to determining that compatible application software on the second computing device is not capable of accepting the selected content included in the received indication to paste, creates a file that includes the selected content included in the received indication to paste and appended metadata.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of data transfer, and more particularly to creating a virtual container for the storage and viewing of transferred data when an appropriate destination is unavailable.

Container-based virtualization, also called operating system virtualization, is an approach to virtualization in which the virtualization layer runs as an application within the operating system (OS). When utilizing operating-system-level virtualization, the operating system kernel runs on the hardware node with multiple isolated user space containers, also called virtual containers (e.g., memory where application software executes), installed on top that are simulated. The virtual container includes an application engine, packaging infrastructure, and runtime libraries that allow the application software to run anywhere. When a user accesses the virtual container, the virtual container responds and maintains the appearance of an actual computing device as the virtual container incorporates features that limit, account for, and isolate the resource usage of a process and/or collection of processes (e.g., instance of a computer program being executed).

When users of a computing device access, create, and/or update files through application software, the users may utilize a clipboard in conjunction with a clipboard manager to assist in performing the associated tasks. The clipboard is a set of functions and messages that enables application software to transfer data. As all applications have access to the clipboard, data can be easily transferred between applications and/or within an application. The clipboard manager is a computer program that adds functionality to the clipboard of an operating system. Clipboard managers enhance the basic functions of cut, copy, and paste operations with one or more features, such as multiple buffers and the ability to merge, split, and edit contents; selecting the buffer to store data from a cut or copy; selecting the buffer the paste data should be retrieved from; handling formatted text, tabular data, data objects, media content, and uniform resource locators (URLs); saving copied data to long term storage; indexing and/or tagging clipped data; and searching saved data.

When data is transferred to the clipboard, the selection may also include embedded metadata. Metadata is structured information that describes, explains, locates, or otherwise makes it easier to retrieve, use, or manage an information resource (e.g., document files, digital images, videos, spreadsheets, and web pages). Three types of metadata include: descriptive (e.g., discovery and identification), structural (e.g., how compound objects are put together), and administrative (e.g., assists to manage a resource). Metadata can be embedded in a digital object (e.g., HTML documents, headers of image files) or stored separately (e.g., database linked to objects described). Internal or embedded metadata stays with the data being described and is available with the data and can be manipulated locally. External or stored metadata allows collocation metadata for all the contents for more efficient searching and management.

SUMMARY

Aspects of the present invention disclose a method, computer program product, and system for creating a file. The method includes one or more computer processors receiving a selection of content within application software on a first computing device to transfer to a clipboard. The method further includes one or more computer processors appending metadata of the received selection with metadata indicating application software and file association information that corresponds to the selected content. The method further includes one or more computer processors receiving an indication to paste the selected content from the clipboard to a second computing device. The method further includes one or more computer processors determining whether compatible application software on the second computing device is capable of accepting the selected content included in the received indication to paste. The method further includes, responsive to determining that compatible application software on the second computing device is not capable of accepting the selected content included in the received indication to paste, one or more computer processors creating a file that includes the selected content included in the received indication to paste and append metadata.

DETAILED DESCRIPTION

Computer files are resources for storing information that are available to a computer program. Computer files may be transferred to another location within a client device (e.g., moved to another directory on the same computing device) or transferred to another target client device connected over a network (e.g., server, client device, LAN drive, etc.) through available actions, such as cut, copy, paste, save, etc., irrespective of compatible computer programs being available on the target client device. As recognized by embodiments of the present invention, while content within a computer program may be transferred via a clipboard and associated clipboard functions to another open compatible computer program on a target client device, when compatible computer programs are not open and/or installed on the target client device, cut and/or copied content from within a computer file may not automatically be saved with the appropriate file type when pasted on the target client device.

Embodiments of the present invention create a virtual container to store pasted content on a target client device irrespective of compatible computer programs being open and/or installed on a target client device that may then be accessed by a user. Additionally, embodiments of the present invention allow for the stored content in the virtual container (e.g., an image file) to revert to the appropriate file type when the compatible computer program becomes available (e.g., installed on the target device).

The present invention will now be described in detail with reference to the Figures.FIG. 1is a functional block diagram illustrating a distributed data processing environment, generally designated100, in accordance with one embodiment of the present invention.FIG. 1provides only an illustration of one embodiment and does not imply any limitations with regard to the environments in which different embodiments may be implemented.

In the depicted embodiment, distributed data processing environment100includes client devices110and140and server120, all interconnected over network130. Distributed data processing environment100may include additional computing devices, mobile computing devices, servers, computers, storage devices, or other devices not shown.

Client devices110and140may be a web server or any other electronic device or computing system capable of processing program instructions and receiving and sending data. In some embodiments, client devices110and140may be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with network130. In other embodiments, client devices110and140may represent a server computing system utilizing multiple computers as a server system, such as in a cloud computing environment. In general, client devices110and140are representative of any electronic device or combination of electronic devices capable of executing machine readable program instructions as described in greater detail with regard toFIG. 3, in accordance with embodiments of the present invention. Client device110contains user interface112, application software114, and file creation program200. Client device140contains user interface142, application software144, and virtual container146.

User interfaces112and142are programs that provide an interface between a user of client devices110and140and a plurality of applications that reside on client devices110and140(e.g., application software114, application software144, virtual container146, etc.) and/or may be accessed over network130. A user interface, such as user interfaces112and142, refers to the information (e.g., graphic, text, sound) that a program presents to a user and the control sequences the user employs to control the program. A variety of types of user interfaces exist. In one embodiment, user interfaces112and142are graphical user interfaces. A graphical user interface (GUI) is a type of interface that allows users to interact with peripheral devices (i.e., external computer hardware that provides input and output for a computing device, such as a keyboard and mouse) through graphical icons and visual indicators as opposed to text-based interfaces, typed command labels, or text navigation. The actions in GUIs are often performed through direct manipulation of the graphical elements. User interface112sends and receives information to file creation program200.

Application software114and144are a set of one of more programs designed to carry out the operations for a specific application (e.g., word processing programs, spread sheet programs, media players, web browsers, etc.) to assist a user to perform an activity. In the depicted embodiment, a user of client device110through user interface112utilizes application software114to cut and/or copy a selection (e.g., portion of text, cells, displayed information, etc.) within an open program on client device110and selects to paste the selection on client device140and/or server120, which initiates file creation program200. When application software is installed on a client device, file creation program200utilizes the installed application software to determine a file format to assign to the pasted selection. For example, when the user selects to paste the selection on client device140, file creation program200accesses application software144and determines the file format to be assigned to the pasted selection based on application software144. In the depicted embodiment, application software114resides on client device110and application software144resides on client device140. In another embodiment, application software114and application software144may reside on server120or on another device (not shown) connected over network130.

Server120may be a management server, a web server, or any other electronic device or computing system capable of receiving and sending data. In some embodiments, server120may be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable device capable of communication with client device110over network130. In other embodiments, server120may represent a server computing system utilizing multiple computers as a server system, such as in a cloud computing environment. Server120contains virtual container122.

Virtual containers122and146are files created by file creation program200that store a cut and/or copied selection from within the data provided by application software (e.g. application software114) that a user pastes on another client device and or server connected over network130where the paste operation is not expected (e.g., read-only file) or where the content is not understood (e.g., file type not recognized, application software114or144is not active, etc.). For example, cut and/or copy occurs on client device110, and the paste occurs on server120and/or client device140. Virtual containers122and146include metadata associated with the application software responsible for the cut and/or copied selection. In one embodiment, virtual containers122and146may be stored as an image file. In another embodiment, virtual containers122and146may be stored with a specific file type dependent upon the copied selection, application software114, and application software144that is available on client device140and/or server120on which the paste occurs.

Virtual containers122and146are able to store the cut and/or copied selection in a loss-less form, which allows for re-transformation (e.g., revert to an original file type, reconstruct the original version) to be possible when virtual containers122and/or146are later accessed by a matching instance of application software114or144. For example, initially application software114does not include a word processing program to edit a copied selection; and thus, file creation program200creates virtual container146. A compatible word processing program is later installed on client device140, and when the word processing program opens virtual container146instead of an image file, the cut or copied selection reverts to a word processing document that is usable by the word processing program. In the depicted embodiment, virtual container122resides on server120, and virtual container146resides on client device140. In another embodiment, virtual containers122and146may reside on client device110. In some other embodiment, virtual containers122and146may reside on another client device and/or server not shown.

Network130may be a local area network (LAN), a wide area network (WAN), such as the Internet, a wireless local area network (WLAN), any combination thereof, or any combination of connections and protocols that will support communications between client device110, server120, and other computing devices and servers (not shown), in accordance with embodiments of the inventions. Network130may include wired, wireless, or fiber optic connections.

File creation program200is a program for creating a file (e.g., virtual container122and virtual container146) in response to a user pasting cut and/or copied selections from a client device, such as client device110to client device140and/or server120, where the paste operation is not expected (e.g., read-only file) or where the content is not understood (e.g., file type not recognized, application software114or144is not active, etc.). For example, a user selects and copies text from a word processing program on client device110. The user then selects to paste the copied text selection on client device140; however, the word processing document on client device140is set to read only; and therefore, the copied text may not be pasted into the word processing document. In order to transfer the information, file creation program200creates virtual container146to store the information on client device140for future use and/or viewing. In the depicted embodiment, file creation program200resides on client device110. In another embodiment, file creation program200may reside on client device140. In some other embodiment, file creation program200may reside on server120. In yet some other embodiment, file creation program200may reside on another client device, server, or multiple client and server devices not currently shown.

FIG. 2is a flowchart depicting operational steps of file creation program200, a program for creating a virtual container in response to pasting a cut and/or copied selection on another client device where the paste operation is not expected (e.g., read only) and/or where the content is not understood (e.g., file type not recognized), in accordance with an embodiment of the present invention. In the depicted embodiment, file creation program200is running in the background on client device110. In another embodiment, file creation program200may be incorporated within application software114. In some other embodiment, file creation program200may be incorporated within the clipboard to add additional functionality. In yet another embodiment, file creation program200may be a selectable program that a user opens in anticipation of transferring content from client device110to server120and/or client device140that may not include compatible application software.

In step202, file creation program200receives an indication of a cut and/or copy function of a selection within application software114. File creation program200initiates when a user of client device110, through user interface112, cuts and/or copies selected content (e.g., selection) from within open application software114. The cut and/or copy function transfers the selected content or a copy of the selected content to a clipboard. For example, a user highlights a text selection from within an open text file through a word processing program. The user then selects the cut and/or copy function that places the selected text on the clipboard and thereby initiates file creation program200. Once the selected content transfers to the clipboard, file creation program200stores and tracks the content transferred to the clipboard.

In step204, file creation program200appends the metadata with information pertaining to application software114and file association information. A file association links a file type to the corresponding instance of application software114installed on client device110or application software144installed on client device140. A file type, also referred to as a file format or file extension, specifies how bits, which store the information of the file, are used to encode information in a digital storage medium that may be specific to a particular type of data or may be designed for storage of several types of data. For example, file types identify image files (e.g., bitmap image file (bmp), tagged image file format (TIFF), joint photographic experts group (JPG), etc.), word processing documents (e.g., documents (doc), text files (txt), portable document format (pdf), etc.), spreadsheets, multimedia files, programming language files, etc. In addition to transferring the selected content to the clipboard, the cut and/or copy function also transfers associated information regarding application software114and the file type to the clipboard. In one embodiment, file creation program200retrieves the file name, file type, and application software114(e.g., program name) from the clipboard. In another embodiment, file creation program200may retrieve the file type and the application software. File creation program200stores the retrieved information within the metadata of the previously stored content.

For example, cells from within a spreadsheet program are copied and transferred to the clipboard from my_spread_sheet.dif. The file name my_spread_sheet, the file type of “.dif”, and the spreadsheet program, from which the cells were copied from, are stored on the clipboard with the copied cells; and therefore, available to file creation program200. Currently, when the copied cells are pasted in a new location, only the format and content of the spreadsheet cells may be transferred, and the remaining information, such as the file name, the file type, and the program name remain as a record in the clipboard but may no longer be directly associated with the pasted content in the new location. However, file creation program200extracts the file type (e.g., .dif), the name of application software114(e.g., spreadsheet program), and the file name (e.g., my_spread_sheet) from the clipboard and embeds extracted information within the metadata of the cells. For example, file creation program200appends the extracted information to the metadata associated with the cells in the received cut and/or copy operation.

In step206, file creation program200receives an indication to paste the selection from application software114on to another client device (e.g., client device140, server120). Through user interface112, the user selects server120or client device140, which are connected to client device110over network130. The user identifies a location within client device140or server120and performs an action associated with a paste function. In one embodiment, file creation program200receives a location and indication to paste the selection through user interactions with a network file manager. A network file manager is a distributed file system that provides a user interface to manage files and folders, allowing a user of a client device to access files over a network similar to local storage (e.g., connects workstations attached to the same computer network). For example, a user accesses a network file manager on client device110. Through the network file manager, the user of client device110may view the local directory structure of client device110as well as the directory structure for client device140and server120. Via user interface112, the user selects client device140and navigates to a location within the respective directory structure and initiates a paste function.

In another embodiment, file creation program200receives a location and indication to paste the selection when a user initiates a remote desktop on client device140or server120. The remote desktop refers to software or an operating system feature that allows a client device or server to be run remotely on one system while being displayed on a separate client device (e.g., remote control of another client device connected via the Internet or another network). In one embodiment, the user utilizes user interface112to select an active instance of application software144and initiate a paste function. In another embodiment, the user utilizes user interface112to open an instance of application software144and initiate a paste function. In some other embodiment, the user utilizes user interface112to select a location on client device140(e.g., desktop) and initiate a paste function.

For example, a customer support representative may initiate a remote desktop from client device110to troubleshoot a customer problem on client device140through user interface112over network130. The customer support representative may access client device140through remote desktop sharing, which allows the keystrokes and mouse clicks of the customer support representative to be registered on client device140instead of on client device110. However, while utilizing the remote desktop, the customer support representative may switch between client device110and client device140to perform actions on either client device (e.g., copies information on client device110and then switches to client device140to paste the copied information). The customer support representative may then select the paste function to initiate a transfer of the cut/copied selection from client device110to client device140in various manners.

In decision208, file creation program200determines whether active application software is available on the selected client device to receive the cut and/or copied selection. For example, file creation program200determines whether the identified paste location includes an active instance of application software144that is capable of receiving the cut and/or copied selection from an active instance of application software114. Active application software refers to software on a client device (e.g., client device140) that is currently open and running that is therefore capable of receiving the cut and/or copied selection in response to a paste command.

In one embodiment, the user selects and identifies an active instance of application software144on client device140though user interface112while accessing the remote desktop capable of receiving the cut and/or copied selection. In another embodiment, the user may not select an open instance of application software144, and file creation program200may access a task manager on client device140or server120to determine an active instance of application software. The task manager identifies programs, processes, and services that are currently running on a client device. In one embodiment, file creation program200searches the task manager for an exact match between application software114and application software144. In another embodiment, file creation program200searches within the task manager for an active instance of application software144that is capable of accessing the same file type. For example, word processing programs are capable of opening multiple file types. Application software144would therefore not need to be an exact match but merely a compatible word processing program capable of accessing the same file type. In some other embodiment, file creation program200searches within the task manager for an active instance of application software144capable of receiving the cut and/or copied information as embedded information. For example, a copied table from a spreadsheet program may be pasted within a word processing document or presentation file as an image and/or embedded table.

If file creation program200determines that active application software is available on the selected client device to receive the cut and/or copied selection (decision208, yes branch), then file creation program200pastes the cut and/or copied selection (step210). If file creation program200determines that active application software is not available on the selected client device to receive the cut and/or copied selection (decision208, no branch), then file creation program200creates a virtual container for the paste selection (step212). For example, in the depicted embodiment, server120does not include application software; and therefore, file creation program200does not identify application software compatible with application software114and therefore creates virtual container122.

In step210, file creation program200pastes the cut and/or copied selection. In one embodiment, file creation program200pastes the cut and/or copied selection from application software114on client device110to active application software144on client device140based on the user selection. For example, file creation program200receives an active word processing program within application software144based on the user selection through the remote desktop (e.g., user selects specific active application software144and initiates the paste). File creation program200completes the paste function and transfers the cut and/or copied selection to active application software144. In another embodiment, file creation program200may select an instance of application software144based on the best match and completes the paste function. For example, file creation program200selects the same instance of active application software144first, followed by an active instance of application software144that is capable of processing the same file type, and finally selecting an instance of application software144that is capable of receiving embedded information. In some other embodiment, file creation program200may provide the user with a list of active instances of application software144that are capable of receiving the cut and/or copied information to select from prior to completing the paste function. For example, a notepad program and a word processing program are open and can both receive a cut and/or copied text selection. The user would then select either the notepad program or the word program. After the user makes a selection, the paste function completes.

In step212, file creation program200creates a virtual container for the paste selection. On server120, file creation program200creates virtual container122. On client device140, file creation program200creates virtual container146. File creation program200creates virtual container122or virtual container146based on information associated with the cut and/or copied selection from application software114. A virtual container includes a container identification (e.g., numeric identification), an operating system template (e.g., name of the operating system on which the virtual container is based), and a configuration file (e.g., a file that sets resource control parameters). For example, virtual containers122or146would include information identifying application software114from which the cut and/or copied selection was taken from and the configuration (e.g., format) of the cut and/or copied information.

In decision214, file creation program200determines whether compatible application software (e.g., application software144) is installed on the selected client device (e.g., client device140, server120). File creation program200searches for available inactive (e.g., not opened and running) application software that is installed on the selected client device and could therefore be opened at a later time. In one embodiment, file creation program200searches client device140for installed instances of application software144that are identical to application software114. In another embodiment, file creation program200searches client device140for installed instances of application software144that are capable of processing the same file types as application software114. For example, a text file created in a notepad program may be opened in a word processing program in addition to a notepad program. In the depicted embodiment, server120does not include application software; and therefore, file creation program200is unable to locate identical and/or compatible application software and determines identical and/or compatible application software is not installed.

If file creation program200determines that compatible application software is available on the selected client device (decision214, yes branch), then file creation program200stores the cut and/or copied selection with the associated file type (step216). If file creation program200determines that compatible application software is not available (decision214, no branch), then file creation program200transforms the cut and/or copied selection into an image (step218).

In step216, file creation program200stores the cut and/or copied selection with the associated file type (e.g., identical or compatible application software144file type). In one embodiment, file creation program200updates virtual container146with the file type associated with application software114(e.g., application software114matches installed application software144). For example, a copied selection included a file type of “.doc”. When the user selects to paste the copied selection of client device140, file creation program200determines that a word processing program is not active but is however installed on client device140. File creation program200determines that installed application software144and application software114are identical (e.g., both application software114and144access the same file types) and stores virtual container146with a “.doc” file type. In another embodiment, file creation program200updates virtual container146to the file type associated with installed application software144(e.g., application software114and144are not the same but are compatible). As file creation program200stores virtual container146as a specific file type, when installed application software144is later active and accesses virtual container146, the cut and or copied selection within virtual container146opens with the assigned file type and is capable of being viewed and/or edited without a loss of information.

In step218, file creation program200transforms the paste selection into an image. In one embodiment, file creation program200may utilize an image converter to change the cut and/or copied selection within virtual container122or virtual container146into an image file. An image converter changes a file into an image file through compression and formatting changes. However, compression and formatting changes may result in a loss of data when the image conversion compresses the data and/or changes the image size. In another embodiment, file creation program200may utilize rendering to change the cut and/or copied selection within virtual container122or virtual container146into an image file. Rendering is the process of generating an image by means of computer programs by adding bitmap textures, lights, bump mapping, and relative positions to other objects within the cut and/or copied text. The rendered image results in an image stored within virtual container122or virtual container146that is viewable by a user when later accessed.

In step220, file creation program200embeds the virtual container content as a comment within the image. File creation program200updates the metadata of virtual container122or virtual container146with the original content of the cut and/or copied selection in order to preserve the integrity of the cut/or coped selection in a loss-less form. The original content includes at least the name of the source application software (e.g., application software114) from which the cut and/or copied selection was taken from, the file type association, and the content. For example, the metadata would indicate the word processing program, the file extension, and the text that was cut and/or copied. In addition, the original content may also include formatting and rendering details (e.g., compression ratio, text formats, sampling, image size, etc.). The original content embedded within the metadata allows for the image file to be re-transformed without a loss of data when accessed by compatible application software144when installed and active at a later time.

In step222, file creation program200saves the virtual container as an image file. In one embodiment, file creation program200may maintain the file extension from application software114(e.g., cut and/or copied selection was from an image file). In another embodiment, file creation program200saves virtual container122or146with a default image file type (e.g., most common file type, most used on the client device, etc.). In some other embodiment, file creation program200may provide a list of image file types to the user. The user can utilize user interface112to then select the file type from the provided list, and file creation program200saves virtual container122or virtual container146with the selected file type. Once file creation program200saves virtual container122or virtual container146as an image file with the updated metadata, file creation program200completes.

After completion in another user session, a user of client device140can utilize user interface142to select to open virtual container146. In one embodiment, the user may view an image of the information within virtual container146(e.g., installed application software144does not include the original program or a program compatible with the assigned file type). In another embodiment, when client device140includes an active and installed instance of application software144that is capable of viewing the original image, as virtual container146includes the metadata with the original content, the cut and/or copied selection may revert to the original file type in a loss-less form that may be viewed and/or edited. For example, a user later opens a word processing program and selects to open virtual container146. The word processing program may recognize the file type and/or the program name stored within the metadata of virtual container146and reverts virtual container146back to the original form, which may then be viewed and/or edited by the word processing program. In some other embodiment, the user may be provided with an option to transform virtual container146back to the original form or open virtual container146as an image file.

FIG. 3depicts computer300that is an example of a system that includes file creation program200. It should be appreciated thatFIG. 3provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.

Computer300includes processor(s)304, cache316, memory306, persistent storage308, communications unit310, input/output (I/O) interface(s)312, and communications fabric302. Communications fabric302provides communications between cache316, memory306, persistent storage308, communications unit310, and input/output (I/O) interface(s)312. Communications fabric302can be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system. For example, communications fabric302can be implemented with one or more buses or a crossbar switch.

Memory306and persistent storage308are computer readable storage media. In this embodiment, memory306includes random access memory (RAM)314. In general, memory306can include any suitable volatile or non-volatile computer readable storage media. Cache316is a fast memory that enhances the performance of processor(s)304by holding recently accessed data, and data near recently accessed data, from memory306.

Program instructions and data used to practice embodiments of the present invention may be stored in persistent storage308and in memory306for execution by one or more of the respective processor(s)304via cache316. In an embodiment, persistent storage308includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage308can include a solid state hard drive, a semiconductor storage device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, or any other computer readable storage media that is capable of storing program instructions or digital information.

Communications unit310, in these examples, provides for communications with other data processing systems or devices. In these examples, communications unit310includes one or more network interface cards. Communications unit310may provide communications through the use of either or both physical and wireless communications links. Program instructions and data used to practice embodiments of the present invention may be downloaded to persistent storage308through communications unit310.

I/O interface(s)312allows for input and output of data with other devices that may be connected to each computer system. For example, I/O interface(s)312may provide a connection to external device(s)318, such as a keyboard, a keypad, a touch screen, and/or some other suitable input device. External device(s)318can also include portable computer readable storage media, such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention, e.g., user interface112, user interface142, application software114, application software144, virtual container122, virtual container146, and file creation program200can be stored on such portable computer readable storage media and can be loaded onto persistent storage308via I/O interface(s)312. I/O interface(s)312also connect to a display320.