Software applications manage or otherwise utilize varying data object types. As examples, personal information managers work with objects such as electronic messages, tasks, and events, and IT management tools coordinate objects such as incidents and application defects. As a list of objects grows, it can become difficult for the user of the application prioritize or otherwise ensure appropriate action is taken with respect to a given object. An IT management tool may handle application defects of varying sorts ranging from user interface defects to performance defects to documentation defects. Each defect is represented by a corresponding object. Each object can identify a status of the defect, an individual assigned to address the defect, plus any other relevant information. As the object increase in number, it becomes more and more difficult for a project manager to ensure that the corresponding defects are being assigned to the correct personnel and addressed in a in a timely, prioritized fashion.
Introduction:
Software applications manage or otherwise utilize varying data object types. Embodiments, described in detail below, aid in efficiently organizing such managed objects in an efficient manner while also being personal to the user of the application. In other words, various embodiments allow the user to define a number of categories and easily assign a given category to a given managed object. Such assignment can be referred to as tagging. “Managed object” is used herein to refer to an entity being managed by an application. The specific nature of the entity depends on the type of application. For example, where the application is an e-mail program, the objects being managed may be e-mail messages. Where the application is an IT management tool, the objects may correspond to defects or incidents. Typically, an application causes representations the objects being managed to be displayed in a user interface. Thus, “managed object” can refer both to the actual object data as well as the user interface representation of the managed object.
In an example implementation, managed object tagging is accomplished by displaying a group of user defined classification controls proximal to the objects being managed by an application. The classification controls are caused to be displayed such that user interface actions can visually link any plurality of the managed objects to a given one of the classification controls. With the classification controls displayed, a user interaction visually liking a selected one of the managed objects to a selected one of the classification controls is detected. The selected managed object is then tagged with data corresponding to the selected classification control. This data or “tag” is user defined information associated with the selected classification control.
An example display of classification controls is depicted in
The following description is broken into sections. The first, labeled “Environment,” describes and example of a network environment in which various embodiments may be implemented. The second, labeled “Components,” describes examples of physical and logical components for implementing various embodiments. The third section, labeled “Operation,” describes steps taken to implement various embodiments.
Environment:
In the example of
In the example of
Components:
More specifically, definition engine 22 represents generally a combination of hardware and programming configured to define a plurality of classification controls according to user input. In performing this task, definition engine may receive user input specifying a tag that can be associated with a managed object. Where, for example, the managed object is a task, the user input may specify a tag specifying a due date or a tag defining a task type. In other words, definition engine 22 performs its function by collecting user input specifying various tags and then defines the classification controls such that each control corresponds to a different one of the user specified tags.
Display engine 24 represents generally a combination of hardware and programming configured to cause, in a user interface displaying managed objects, a display of the plurality of user defined classification controls proximal to the objects. Display engine 24 performs this function in a manner that allows user interface actions to visually link any plurality of the managed objects to any given one of the classification controls. In other words, the display of the classification controls allows for a single managed object to be visually linked to a one or more of the classification controls. Also, multiple managed objects can be selected and then visually linked simultaneously to a common classification object. Examples are described below with reference to
Causing a display can be achieved by directly interacting with the graphics hardware responsible for displaying the user interface. Causing a display can also be achieved indirectly by generating and communicating electronic data that can be processed and displayed. With the direct approach, display engine 26 may operate on a client device 18 where it can directly control the display. With the indirect approach, display engine 24 may be operate on a server device 16 where it communicates the information to be processed by a client device 18 to be displayed.
Tagging engine 26 represents generally a combination of hardware and programming configured to tag a selected one of the managed objects with data corresponding to a selected one of the classification controls. Tagging engine 26 does so upon detecting a user interface action that visually links the selected object to the selected classification control. Tagging engine 26 may be responsible for detecting as such a user interface action in which the selected managed object is dragged and dropped on the selected classification control. In tagging the managed object, tagging engine 26 may alter the managed object so that it includes the user defined information corresponding to the classification control in question. Instead, tagging engine 26 may maintain a table or other data structure linking identifiers for the managed objects to the corresponding user defined information.
In a particular example, display engine 24 causes, in the user interface, a display of a tag control. A tag control is a user interface control with which a user can interact to alter the plurality of classification controls. Such alterations can include adding a classification control, deleting a classification control, specifying a tag for an added classification control or updating a tag for an existing classification control or modifying tag corresponding to an existing classification control. Definition engine 22 can then alter the plurality of classification controls according to a user's interaction with the tag control.
In another example, display engine 24 is responsible for filtering the display of the managed objects according to the data tagged to those objects. In other words, tagging engine 26 may tag different managed objects with different tags based on which classification control each managed object is visually linked to. Thus, upon a user's selection of a given classification control, display engine 24 can filter the display of the managed objects such that only the managed object being tagged using that classification control are visible. Alternatively, display engine 24 may highlight those managed objects such that they are visually distinguished from the others. Thus, tagging engine 26 may detect a first user interface action or series thereof visually linking a first plurality of the managed objects with a first one of the classification controls. Tagging engine 26 may then detect a second user interface action or series thereof visually linking a second plurality of the managed objects with a second one of the classification controls. In doing so, tagging engine 26 tags the first and second pluralities of managed objects with data corresponding to the first and second classification controls respectively. Once the first and second pluralities of managed objects are tagged, display engine 24 can then filter the display of the managed objects such that the first plurality of manage objects are visually distinguishable as a set different from the second plurality of managed objects.
In foregoing discussion, engines 22-26 were described as combinations of hardware and programming. Such components may be implemented in a number of fashions. Looking at
In one example, the program instructions can be part of an installation package that when installed can be executed by processing resource 30 to implement system 12. In this case, medium 28 may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed. In another example, the program instructions may be part of an application or applications already installed. Here, medium 28 can include integrated memory such as a hard drive, solid state drive, or the like.
In
Operation:
Referring to Fig, 4, in step 38 a plurality of user defined classification controls are caused to be displayed in a user interface proximal to a plurality of a plurality of objects managed by an application. The classification controls are caused to be displayed such that user interface actions can visually link any plurality of the managed objects to any given one of the classification controls. Referring to
Each classification control caused to be displayed in step 38 may correspond to a different user specified tag. A tag control may also be caused to be displayed in step 38. Based on a user interaction with that tag control, the plurality of classification controls are altered. Referring to
Continuing with
Steps 40 and 42 can be repeated until a plurality of the managed objects are tagged allowing the display of the managed objects to be filtered according to the data tagged to the managed objects. Such filtering, for example, may be initiated by the user's selection of a particular classification control. In an example, one set or plurality of managed objects may be tagged with data corresponding to one classification control while a second set or plurality of managed object may be tagged with data corresponding to a second classifications control. Upon the user's later selection of the first classification control, the display of the managed objects may be filtered such that the first plurality of manage objects are visually distinguishable as a set different from the second plurality of managed objects.
Moving on to the screen views of
Moving to
Referring back to
Ultimately,
Conclusion:
Embodiments can be realized in any computer-readable medium for use by or in connection with an instruction execution system such as a computer/processor based system or an ASIC (Application Specific Integrated Circuit) or other system that can fetch or obtain the logic from computer-readable medium and execute the instructions contained therein. “Computer-readable medium” can be any non-transitory storage medium that can contain, store, or maintain a set of instructions and data for use by or in connection with the instruction execution system. A computer readable medium can comprise any one or more of many physical, non-transitory media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of a computer-readable medium include, but are not limited to, a portable magnetic computer diskette such as floppy diskettes, hard drives, solid state drives, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory, flash drives, and portable compact discs.
Although the flow diagram of
The present invention has been shown and described with reference to the foregoing exemplary embodiments. It is to be understood, however, that other forms, details and embodiments may be made without departing from the spirit and scope of the invention that is defined in the following claims.