The present invention relates to copying attributes of files and inserting such attributes into objects.
Software developers frequently find themselves compiling lists of files. For example, it often is the case that a list of files is needed to produce one or more scripts that relate to the files on the list. In another example, the list of files may be required by a software development tool, such as a source code control system, which takes some action upon the files specified in the list. In any case, lists of files often serve as input to various software development tools.
Presently, software developers manually compile these file lists. For instance, if a list of files is already in existence, a developer can copy various filenames from the list and paste the selected filenames into a destination, i.e. a text field of a software development tool. In other cases, where no list is in existence, developers open a command shell, run a set of tedious scripts to compile a list of files into a text file, manually open the text file, run the copy command, open the target into which the filenames are to be inserted, and finally paste the list of filenames into the target.
In either case, the process of manually compiling a list of filenames can be long, tedious, and error prone, particularly in light of the many files that often are to be included in such a list. It would be beneficial to provide a technique that obtains one or more file attributes and provides those attributes to a destination object that overcomes the limitations described above.
The embodiments disclosed herein provide methods and apparatus for obtaining one or more attributes of files and including those attributes within a destination, or target, object. One embodiment of the present invention can include a method of selectively pasting attributes of files. The method can include, responsive to a user input, storing each selected file and at least one attribute associated with each selected file. Responsive to a subsequent user input, a target object can be identified. Also responsive to the subsequent user input, the method can include selectively inserting the attribute associated with each selected file into the target object or creating a copy of each selected file within the target object according to whether the target object supports file object types.
Another embodiment of the present invention can include a method of pasting attributes of files. The method can include, responsive to a user input, storing at least one attribute of each selected file. Responsive to a subsequent user input, the attribute of each selected file can be inserted into a target object that does not support file object types.
Yet another embodiment of the present invention can include a machine readable storage, having stored thereon a computer program having a plurality of code sections for causing a machine to perform the various steps and implement the components and/or structures disclosed herein.
There are shown in the drawings, embodiments which are presently preferred; it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown.
While the specification concludes with claims defining the features of the invention that are regarded as novel, it is believed that the invention will be better understood from a consideration of the description in conjunction with the drawings. As required, detailed embodiments of the present invention are disclosed herein; however, it is to be understood that the disclosed embodiments are merely exemplary of the invention, which can be embodied in various forms. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the present invention in virtually any appropriately detailed structure. Further, the terms and phrases used herein are not intended to be limiting but rather to provide an understandable description of the invention.
As shown, five files 105 have been selected in GUI 100. The names of the selected files 105 are “A_Text_File”, “B_Text_File”, “C_Text_File”, “D_Text_File”, and “E_Text_File”. Each of the selected files 105 is a text file. Typically, once one or more files are selected, a conventional cut and paste or copy paste operation can be performed. A traditional cut or copy/paste operation places a copy of the selected files 105 into temporary storage of a computer system, often referred to as the clipboard. The entirety of the selected files 105 then can be pasted into a target location that is selected by a user. That is, a copy of each selected file 105 is created or inserted at the location designated by the user.
In accordance with one embodiment of the present invention, rather than placing a copy of the entire selected file in temporary storage, responsive to a copy command from a user, a copy of the selected file(s) as well as a copy of one or more of the attributes of the selected file(s) can be placed into temporary storage. Subsequently, one or more of the attributes of the selected files 105 can be pasted, or copied, from the temporary storage into the target location. For example, in one embodiment, the name of each file can be pasted into the target location. Thus, the text “A_Text_File, B_Text_File, C_Text_File, D_Text_File, E_Text_File”, corresponding to the filename of each selected file, can be pasted into the target location. Any appropriate delimiter, if one is needed or desired, can be inserted between the respective filenames.
As shown in
A “Copy and Select Attributes” menu item can be provided as well. This menu item can cause a further dialog or GUI (not shown) to be presented to the user that allows the user to specify exactly which attributes of the selected file(s) are to be copied into temporary storage. A similar functionality can be provided regarding a paste function. That is, if all attributes of selected file(s) are copied, a paste special type of function can be provided which allows the user to select which attributes are pasted.
The particular copy/paste options described with reference to
In step 520, the user can select a target location or object. For example, the location in which the pointer or cursor is located can be identified and/or selected. Such an object can be said to be the active object or one with focus. In step 525, the user can initiate a paste command. In step 530, the target object is evaluated to determine whether the target object supports file object types. If so, the method can proceed to step 540 where copies of the actual selected file(s) are placed or created within the target object, or at the target location. That is, the paste operation works as a conventional paste operation. If not, a copy of the attribute(s) of each selected file can be created within the target object in step 535. Text of the attributes, i.e. a filename, date of creation, or the like, as the case may be, can be inserted within the target object.
It should be appreciated that the various GUI's and visual objects disclosed herein have been provided for purposes of illustration only. As such, these items are not intended to limit the present invention in any way, but rather to serve as examples for teaching one skilled in the art various ways in which the embodiments disclosed herein can be implemented.
The inventive arrangements disclosed herein provide away in which one or more parameters of files can be copied and pasted. The embodiments disclosed herein can, if desired, paste either the selected file(s) or one or more attributes of the selected file(s) to the target object according to context, i.e. whether the target object supports file object types. Further, it should be appreciated that the functionality disclosed herein can be implemented within the operating system of a computer and/or information processing system or within an application executing therein.
The present invention can be realized in hardware, software, or a combination of hardware and software. The present invention can be realized in a centralized fashion in one computer system or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software can be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein. The present invention also can be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods.
The terms “computer program”, “software”, “application”, variants and/or combinations thereof, in the present context, mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form. For example, a computer program can include, but is not limited to, a subroutine, a function, a procedure, an object method, an object implementation, an executable application, an applet, a servlet, a source code, an object code, a shared library/dynamic load library and/or other sequence of instructions designed for execution on a computer system.
The terms “a” and “an”, as used herein, are defined as one or more than one. The term “plurality”, as used herein, is defined as two or more than two. The term “another”, as used herein, is defined as at least a second or more. The terms “including” and/or “having”, as used herein, are defined as comprising (i.e., open language). The term “coupled”, as used herein, is defined as connected, although not necessarily directly, and not necessarily mechanically, i.e. communicatively linked through a communication channel or pathway.
This invention can be embodied in other forms without departing from the spirit or essential attributes thereof. Accordingly, reference should be made to the following claims, rather than to the foregoing specification, as indicating the scope of the invention.