Projects and sets
FIG 17 shows an example of the Focus-n panel for Projects and Sets 1700, which is intended to provided a consistent access to all user objects. The content of the panel 1710 is enclosed within a margin. There are three columns, one for Projects 1720, another for Sets 1730 and a last one for subsets 1740.
In column 1720, each project of the user is represented as a beveled rectangle, with the name of the project inside. In the example there are three projects, [Universal] 1722, [Project 1] 1724 and [Project 2] 1726. The [Universal] project will always exist, since it is the one that automatically includes all user objects. At each moment, the user can select one and only one of the available projects, by clicking on them with the pointing device. The inventive system highlights the selected project with a gray (or another specific color) background; in the example, the [Universal] project is selected.
Column 1730 shows the sets associated to the selected project. There is a set for each available type, represented as an oval with the type (in plural) inside, and the name of the corresponding project down the oval in curly brackets. The inventive system assures that each object belonging to a project will automatically be included in the set that corresponds to its type. For example, the {Universal} set of documents 1735 will always include all user documents.
Column 1740 shows the subsets of each set of the selected project. The user can define a number of subsets, represented as an oval with the type inside and an arbitrary name chosen by the user (in curly brackets). Subset are aimed to group some of the objects contained in the corresponding set in a meaningful manner. For example, the subset {Tutorials} 1744 of documents may include the objects in set 1735 that are tutorials. However, since the user can include or exclude the objects in the subset manually, the system will not be able to guarantee that all objects in a subset fulfill the criteria that defines the subset. To this aim, it is possible to provide means for defining automatic subsets, for which the inventive system will automatically include or exclude objects according to a number of rules on object attributes. In the example, the automatic subset 1748, marked with an inverted 'A', will always contain all received mails.
The scrollbar 1750 allows to shift up and down the contents of columns 1730 and 1740, for when it is impossible to fit all sets and subsets into the vertical space of the panel. The scroll slider 1755 is the interface element that allows the user to control the shifting, and also indicates the relative offset and height of the viewed portion with respect to the full height of the columns. There may be another vertical scrollbar for the list of projects (not shown in the example). There will not be any horizontal scrollbar, because the inventive system automatically adjusts the viewing scale to fit the output graphics into the available width of the panel (zoomable interface).
FIG. 18 illustrates the structures of projects 1800, sets 1810 and subsets 1820. All these entities are specific types of user objects, as Type_ID fields 1805, 1815 and 1825 contain type identifiers above 1000. A project contains a {list of sets} 1830, i.e. an array of identifiers (object locators) of the sets corresponding to that project, one set for each available type. The inventive system will automatically create the sets for each new project. A set contains a {list of subsets} 1840, i.e. an array of identifiers (object locators) of the subsets created by the user for each set.
Moreover, each set and each subset contains a {list of objects} in fields 1850 and 1860, i.e. an array of identifiers (object locators) for all objects included in the set or subset. By using object locators to define a list of objects, the objects are not replicated at each insertion in a set or subset. The user will be able to add or remove objects in projects and subsets, which simply implies to add or remove the object locator in the corresponding list of objects. The inventive system will control that every object is only included in sets or subsets of its own type. When an object is included in a subset, the system will also include the object in the corresponding set of the project. Finally, the system will automatically include any object in the corresponding set of the [Universal] project.