File generator

In an approach for generating a file, a computer opens a first file within application software that includes content. The computer receives an indication to generate a second file based on the opened first file and an indication of a file format for the second file. The computer provides a selection window associated with the second file, wherein the selection window is at least partially transparent and at least partially overlays the opened first file. The computer identifies content within the first file that is overlaid by the provided selection window associated with the second file. The computer transfers a copy of the identified content within the first file that is overlaid by the provided selection window associated with the second file.

BACKGROUND

The present invention relates generally to the field of software applications, and more particularly to generating files associated with another file format within a software application.

With the continued miniaturization of computing resources and advancements in portable battery life, portable computers have grown in popularity. The same developments that spurred the growth of laptop computers and other portable computers have allowed manufacturers to integrate computing resources into cellular phones and handheld computing devices resulting in mobile computing devices (e.g., a smartphone, a personal digital assistant, a tablet, etc.). Mobile computing devices are capable of running a variety of operating systems and thus allow users to perform tasks while in transit.

Users rely on computing devices, mobile computing devices, and telecommunications equipment to produce, store, retrieve, transmit, and manipulate data to produce a work product through productivity software. Productivity software is application software designed to perform a group of coordinated functions, tasks, or activities that produce information, such as documents, presentations, worksheets, databases, charts, graphs, etc. Collections of application software (e.g., software suite) include related functionality that shares a common user interface thus allowing some ability to exchange data amongst the various individual instances of application software. For example, an office suite is a collection of bundled productivity software that includes a word processing program, a spreadsheet program, and a presentation program that is capable of exchanging data amongst the three programs.

Data is exchanged amongst application programs of a software suite and/or with compatible application software through the use of cut, copy, and paste functions associated with a clipboard and a clipboard manager. The clipboard includes functions and messages that enable application software to transfer data between applications and/or within an application. The clipboard manager adds functionality to the clipboard of an operating system by enhancing the basic functions of cut, copy, and paste operations with one or more feature. For example, the clipboard manager includes multiple buffers that merge, split, and edit contents; select the buffer to store data from a cut or copy; select the buffer the paste data should be retrieved from; handle formatted text, tabular data, data objects, media content, and uniform resource locators (URLs); save copied data to long term storage; index and/or tag clipped data; and search saved data.

SUMMARY

Aspects of the present invention disclose a method, computer program product, and system for generating a file. The method includes one or more computer processors opening a first file within application software that includes content. The method further includes one or more computer processors receiving an indication to generate a second file based on the opened first file and an indication of a file format for the second file. The method further includes one or more computer processors providing a selection window associated with the second file, wherein the selection window is at least partially transparent and at least partially overlays the opened first file. The method further includes one or more computer processors identifying content within the first file that is overlaid by the provided selection window associated with the second file. The method further includes one or more computer processors transferring a copy of the identified content within the first file that is overlaid by the provided selection window associated with the second file.

DETAILED DESCRIPTION

Embodiments of the present invention recognize users of computing devices employ the use of cut, copy, and paste functions to transfer data between multiple instances of application software that may include a different file format by implementing a series of steps to switch between the multiple instances of applications and to perform the transfer of data. For example, a user selects content to cut and/or copy within a word processing program, selects a spreadsheet program, identifies a location within the spreadsheet to paste the selection, and selects paste which transfers the data that may then be edited. To make a second selection from the word processing document, the user reselects the word processing program and repeats the process. Embodiments of the present invention also recognize that when transferring data between multiple instances of application software the process to cut, copy, paste, and edit the data can be time consuming and may be difficult depending on the size of the computing device. Embodiments of the present invention create a selection window associated with another file format within an instance of application software. Through the selection window of the present invention, the user selects, transfers, edits, and saves the data in the file format associated with the selection window without necessitating the switching between instances of application software.

The present invention will now be described in detail with reference to the Figures.FIG. 1is a functional block diagram illustrating a 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, data processing environment100includes client device110connected to network130. Data processing environment100may include additional computing devices, mobile computing devices, servers, computers, storage devices, or other devices not shown.

Client device110may 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 device110may 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 general, client device110is 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. 4, in accordance with embodiments of the present invention. Client device110contains user interface112, application software114, file116, new file118, and file generator program200.

User interface112is a program that provides an interface between a user of client device110and a plurality of applications that reside on client device110(e.g., application software114, file116, new file118, file generator program200, etc.) and/or may be accessed over network130. A user interface, such as user interface112, 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 interface112is a graphical user interface. 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 interface112transfers information between application software114, file116, new file118, and file generator program200.

Application software114is a set of one of more programs designed to carry out the operations for a specific application to assist a user to perform an activity (e.g., word processing programs, spread sheet programs, presentation programs, media players, web browsers). For example, application software114includes a program that creates, views and/or edits file116. In the depicted embodiment, application software114resides on client device110. In another embodiment, application software114may reside on a server or on another device (not shown) connected over network130. Application software114interacts with file generator program200in order to create new file118. In one embodiment, application software114includes file generator program200as a plug-in (i.e., adds features available through file generator program200to application software114).

File116is a collection of data or information associated with a filename that is accessible by application software114(e.g., data files, text files, program files, image files, media files, etc.). For example, file116is a word processing file that includes research materials, experiment results, and conclusions. File116includes the information to create new file118via file generator program200. In the depicted embodiment, file116resides on client device110. In another embodiment, file116resides on a server or another computing device (not shown) connected over network130provided file116is accessible by application software114and file generator program200.

New file118is a collection of data or information resulting from file generator program200that is based on file116; however, new file118may include a different file format than file116. For example, file116is a word processing file, and new file118is a presentation file highlighting the experiment results and conclusions to present at a conference. In the depicted embodiment, new file118resides on client device110. In another embodiment, new file118resides on a server of another computing device (not shown) connected over network130. In one embodiment, new file118is a file that is created and saved at the beginning of file generator program200. In another embodiment, new file118is initially a temporary file that is created by file generator program200that a user may save after creation. In some other embodiment, new file118may be a previously saved file that is re-opened to add additional content (e.g., continue editing at another time).

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 generator program200is a program for creating new file118from file116that may include a different file format. File generator program200allows the user, through user interface112, to select displayed content within an open instance of file116through a selection window. File generator program200converts the selected displayed content associated with a selected file format, thus creating new file118. Upon creation of new file118, file generator program200enables editing of new file118and selection of additional content from file116. In the depicted embodiment, file generator program200resides on client device110. In another embodiment, file generator program200resides on a server or another computing device (not shown) provided file generator program200has access to file116.

FIG. 2is a flowchart depicting operational steps of file generator program200, a program for creating new file118based on an existing file (e.g., file116), in accordance with an embodiment of the present invention. In one embodiment, file generator program200is a standalone program. In another embodiment, file generator program200is a plug-in incorporated within application software114. Prior to initiating, a user, through user interface112, opens file116through application software114. In one embodiment, file generator program200initiates in response to a user selection of an icon on client device110through user interface112that represents file generator program200. For example, a user double taps an icon associated with file generator program200and file generator program200initiates. In another embodiment, a user, through user interface112, makes a selection associated with file generator program200within application software114from a toolbar, drop-down menu, and/or shortcut keys, and file generator program200initiates.

In step202, file generator program200displays a selection window overlaying file116. File generator program200provides the user with available file formats through user interface112. A file format is the standard manner in which information is encoded for storage in a computer file. For example, file generator program200displays file formats associated with a presentation format, a document format, a spreadsheet format, and an image format. File generator program200receives a selection through user interface112from the user indicating the file format for the selection window. In one embodiment, file generator program200displays a transparent selection window over file116with the corresponding file format (e.g., creates a new instance of new file118and/or a new page without prior content included). For example, file generator program200displays the selection window as a grid with rows and columns over file116when the selected file format is associated with a spreadsheet program (i.e., the selection window with the grid overlays the open instance of file116). As the selection window is transparent, the user is able to view the underlying content (i.e., overlaid content) prior to making a selection. File generator program200adjusts the size of the selection window according to the scale of file116. In one embodiment, file generator program200updates the entirety of the selection window to correspond to the content that is currently viewable.

As depicted in the example of user interface300inFIG. 3A, file generator program200initiates the creation of a presentation file from a word processing document. User interface300displays application software302(e.g., word processing program) and an open instance of file116(e.g., word processing document) that includes text306(e.g., “Star light, star bright”), image308(e.g., star symbol), and text310(e.g., “First star I see tonight”). File generator program200displays selection window304over file116that is scaled to the same size as file116. As selection window304is transparent, the underlying content (e.g., overlaid content) within file116(e.g., text306and image308) is viewable to the user as the content would appear in new file118(e.g., presentation slide312). Additionally, selection window304corresponds to presentation slide312(e.g., preview pane), however, presentation slide312is blank as file generator program200has not received an indication through user interface to transfer text306and image308to new file118.

In another embodiment, file generator program200displays a partially transparent selection window (e.g., new file118is in process and already includes content). In one embodiment, file generator program200may display a transparent selection window that includes content transferred to new file118that cannot be overwritten by another selection made through the selection window in a different font color. For example, file generator program200displays content already in new file118in red or black indicating that the content cannot be replaced. In one embodiment, file generator program200displays content that can be replaced as a ghosted text (e.g., light grey color). In another embodiment, file generator program200displays a border (e.g., dashed line, green, flashes, etc.) around content that can be replaced. In another embodiment, file generator program200may display updates to a portion of the selection window associated with new file118that cannot be replaced as with a different background (e.g., reduced level of transparency, different background color, etc.) and displays updates to the portion of the selection window that can be replaced by a selection within file116as transparent. In some other embodiment, file generator program200changes the background color associated with content within new file118that cannot be overwritten by another selection.

As depicted in the example of user interface360inFIG. 3Dfile generator program200receives an indication through user interface112to add another selection to new file118(e.g., adds a second selection into new file344). Through user interface112, the user moves selection window364to include text310. By moving selection window364, text306and image308are uncovered, and maintain the original formatting of file116within application software302despite changes made to text346and image348within new file344. File generator program200splits selection window364into reserved portion366, which includes previously added content (e.g., text346and image348) that cannot be replaced, and available portion368that is capable of receiving another selection. As reserved portion366cannot be replaced, image308is partially obscured from view by reserved portion366. As available portion368is empty space, text310is visible and thus available for later selection and incorporation. Presentation slide352maintains text346and image348, but does not include text310, as file generator program200has not received an indication through user interface112to transfer text310to new file344.

In step204, file generator program200identifies content from file116through a selection window. As at least a portion of the selection window is transparent, file generator program200identifies the content from file116as the content directly beneath the transparent portion(s) of the selection window. Through user interface112, the user may change the content file generator program200identifies within the selection window by moving forward or backward within file116and/or resizing the selection window. For example, the user scrolls, page advances, etc. within file116, which changes the content that is under the selection window. In another example, the user, through user interface112, moves the selection window by selecting and dragging the selection window over another portion of file116, thus changing the underlying content. Additionally, the user may change the size of the selection window to capture more and/or less text. For example, the user may reduce the size of the selection window to encompass a single line of text within a paragraph of text or enlarge the selection window to capture additional content. File generator program200collects information pertaining to the content (e.g., text, images, formatting, etc.) within the selection window for further use. For example, file generator program200identifies the words, font, font size, font color, etc., associated with text within file116when within the selection window. As the content within the selection window changes, file generator program200updates (e.g., synchronizes) the information pertaining to the content to reflect the current content within the selection window.

In step206, file generator program200transfers the selected content to new file118. File generator program200receives an indication from the user through user interface112to capture the content within the selection window. For example, the user selects an icon associated with an action to transfer the content within the selection window to new file118. File generator program200notifies application software114of the content within the selection window from step204(e.g., selects content within file116corresponding to the content within the selection window). File generator program200initiates a memory copy within application software114(e.g., copies selected content). Additionally as part of the selection, file generator program200pastes the information from the memory copy to new file118. In other words, file generator program200initiates the selection, copy, and paste of the content within the selection window to new file118within a single combination action. File generator program200changes the transparency of the background of the selection window associated with content from transparent to a different background (e.g., reduced level of transparency, different background color, etc.) indicating the selection cannot be overwritten. File generator program200displays the content and format of new file118(e.g., converts the selection window to an active instance of new file118).

As depicted in the example of user interface320inFIG. 3B, file generator program200transfers a copy of the content within selection window304to new file324(e.g., updates new file118with the transferred content thus creating new file324). File generator program200transfers the copy of text306and image308to new file324as text326and image328. Text306and image308remain unchanged within the open instance of file116within application software302, but are no longer visible as new file324is active and file generator program200changes the background of the selection window associated with content from transparent to a different background (e.g., reduced level of transparency, different background color, etc.) indicating the selection cannot be overwritten. However, text310is still visible as only the portion of file116within application software302corresponding with selection window304is obscured by new file324. File generator program200updates presentation slide312to presentation slide332(e.g., preview pane) that corresponds to the content of new file324, and includes text326and image328(e.g., content resides within new file324).

In step208, file generator program200edits the content within new file118. In one embodiment, file generator program200edits the content in the selection window prior to saving to new file118(e.g., temporary file). In another embodiment, file generator program200edits the content in the selection window within a saved instance of new file118(e.g., directly edits the saved instance of new file118through the selection window). Through user interface112, a user selects available formatting tools within application software114(e.g., bold, italic, indent, bullet, font size, etc.). File generator program200identifies the user selection within the formatting tools within application software114. File generator program200applies the selected formatting tool to new file118, thus allowing the user to edit new file118through application software114(i.e., enables the selected formatting tool to edit new file118) and does not require another instance of application software114associated with the file type of new file118to be opened to enable editing. Additionally, the user, through user interface112, may edit new file118directly (e.g., add and/or delete content). For example, the user adds additional text that was not part of the selection window and is not found within file116. Additionally, the user may remove an image (e.g., image328) from new file118in order to replace the image with another selection from file116. As new file118is active, file generator program200only incorporates the editing changes within new file118, and file116remains unchanged.

As depicted in the example of user interface340inFIG. 3C, file generator program200edits new file324and creates new file344. Through user interface112, the user selects text326and formatting tools within application software302associated with changing the text format from regular to bold italic. File generator program200identifies the selection of the formatting tool within application software302, and applies the formatting to the user selection of text326(e.g., “Star light, star bright”) and creates text346(e.g., “Star light, star bright”). Additionally the user selects image328and selects a fill option within application software302. File generator program200identifies the selection of the fill tool, and the selected color, and changes image328(e.g., white star symbol) to image348(e.g., grey star symbol). File generator program200updates presentation slide332to presentation slide352that corresponds to the content of new file344, and includes text346and image348. As the editing changes were only applied to the content within new file344, text306remains unchanged.

In decision210, file generator program200determines whether an additional selection is to be made from file116. In one embodiment, file generator program200determines the user moves the new file118(e.g., changes the location of the overlay), thus indicating an additional selection is to be made. In another embodiment, file generator program200receives a user selection through user interface112(e.g., icon, a toolbar, drop-down menu, and/or shortcut keys) that indicates an additional selection is to be made. In some other embodiment, file generator program200receives a user selection to create another instance of new file118and/or advance within new file118(e.g., add a new page, new slide, new worksheet, etc.), and determines an additional selection is to be made. In another embodiment, file generator program200receives an indication from a user through user interface112to exit and/or save new file118and file generator program200determines another selection is not to be made.

If file generator program200determines an additional selection is to be made from within file116(decision210, yes branch), then file generator program200displays the selection window (step202). If file generator program200determines an additional selection is not to be made from file116(decision210, no branch), then file generator program200completes. Upon completion, file generator program200exits and/or saves new file118depending upon the user selection that file generator program200receives through user interface112.

Computer400includes communications fabric402, which provides communications between cache416, memory406, persistent storage408, communications unit410, and input/output (I/O) interface(s)412. Communications fabric402can 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 fabric402can be implemented with one or more buses or a crossbar switch.

Memory406and persistent storage408are computer readable storage media. In this embodiment, memory406includes random access memory (RAM)414. In general, memory406can include any suitable volatile or non-volatile computer readable storage media. Cache416is a fast memory that enhances the performance of computer processor(s)404by holding recently accessed data, and data near accessed data, from memory406.

User interface112, application software114, file116, new file118, and file generator program200may be stored in persistent storage408and in memory406for execution and/or access by one or more of the respective computer processor(s)404via cache416. In an embodiment, persistent storage408includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage408can 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 unit410, in these examples, provides for communications with other data processing systems or devices. In these examples, communications unit410includes one or more network interface cards. Communications unit410may provide communications through the use of either or both physical and wireless communications links. User interface112, application software114, file116, new file118, and file generator program200may be downloaded to persistent storage408through communications unit410.

I/O interface(s)412allows for input and output of data with other devices that may be connected to computer400. For example, I/O interface(s)412may provide a connection to external device(s)418, such as a keyboard, a keypad, a touch screen, and/or some other suitable input device. External devices418can 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, application software114, file116, new file118, and file generator program200, can be stored on such portable computer readable storage media and can be loaded onto persistent storage408via I/O interface(s)412. I/O interface(s)412also connect to a display420.