Requirements

Motivation

Motivation of the Local History Specification is to allow the user to have some Local History for his/her files. The NetBeans IDE doesn't have the Local History now. The user can download it like the pluging from the Update Center, but the Local History the NetBeans doesn't have now by default.

This functionality is very useful for NetBeans users. It's the reason why I prepared this specification.

Josef Pavlicek - eXperience Design Team

Goals

To develop the Local History tool for NetBeans.

PLEASE ATTENTION

This UI spec has two parts. The Local History functionality is very complicated. From this reason I prepared two variants of Local History UI spec. This is the first part. It describes elementary functionality and UI design for the NetBeans MileStone M7. This part was reviewed. The second part is on the reconstruction jet.

Local History Use Cases

Local History Use Case

The user works with the IDE. During his/her work he/she saves the edited files. If the user changed some file, sometimes he/she needs to return to the preview version, because he/she needs copy some part or all source code into the current file. The user wants to have the history of his/her local file/folder he/she works with the IDE. The user except, that this history the system saves automatically. If he/she wants, the user can change the Local History settings in main toolbar - Tools.

Open Local History Scenario

The system allows the user to open Local History viewer for file or folder, if he/she is on the some file or folder in the Project Tree and if he/she go to:

DIFF history file Use Case

If the user writes the code into his/her file, he/she deletes or modifies it. During this work he/she saved his/her file and sometimes needs to see the differences between his/her versions (saved) of files. He/she supposes to have some information for all files like:

date and time when the file was:

saved,

edited by re factoring (this state will be added after we will have the detail description of the Refactoring and other actions),

labeled by the user (for example like modified).

DIFF History File Scenario

The system shows the user the DIFF between the saved versions of the files. The user can select the version of the file which he/she wants to diff in the Local History table (for example Figure 2.3). The system shows the user the DIFF viewer which allows the user (Figure 3):

Move all differences from the saved file version into the particular version ( mouse over/pressed state).

Insert or replace (Figure 3.1),current difference on the saved file version into the particular version ( mouse over/pressed state).

Revert to this version from the Local History Use Case

If the user works with the IDE (writes the code), he/she sometimes needs to return back for later version of the file - revert this file to the selected version. The user supposes that he/she has some possibility to return into the older version of the edited file. The current file (which he/she edits) often is for him/her only temporary version. With this version he/she works, edits the code and if the code works like the user wants, after that the user sets it by the main version. If the code doesn't work like the user wants, the user wants to have some possibility to roll back saved history version to the local current version.

Revert to this version from the Local History Scenario

The system allows the user revert back saved file from the Local History into current file. The system allows it via two ways:

via Revert to this version function located in the Local History files context menu in the file tree (Figure 3.2),(Figure 3.3) .

via move all button located on the edge between the Local History viewer frames:

The roll back from the Local History the user can do by:

time stamp (each file has some time stamps in the Local History repository)

Revert deleted file Use Case

The user works with the Local History and supposes the Local History allows him/her to revert deleted file. The user wants to use the Main or Context menu and to have some possibility to revert deleted file back.

Revert deleted file Scenario

The user is on the Main or Context menu and he/she wants to revert deleted file:

the system offers in the sub menu of Local History - "Revert Deleted" menu item.
(Figure 3.4)

this menu item is visible if is/are some deleted file/s or here

the user can click on it and the system reverts the deleted items

Delete from Local History Use Cases

The user is in the Local History table (Figure 3.2),(Figure 3.3). He/she wants to have some possibility to delete the saved Local History version.

Delete from Local History Scenario

If the user is in the Local History table the system allows him/her to delete saved file in the Local History (Figure 3.2). The system shows:

the dynamic tooltip:

in the tooltip the system shows "Delete from History" link

if the user clicks on the link, the system deletes current saved version

Set Label for Local History file Use Case

If the user uses the Local History, he/she needs to set label for some version of history file. He/she needs to customize the file before some action, which he/she wants to do. For example, if the user wants to rename name of the methods, he/she needs to set label "before renaming".

Set Label for Local History file Scenario

The system allows the user to write label for the file. During the user works the system has in the memory versions of the files. The system allows:

set label for the file version

the system allows the user to choose the correct version of the file from Local History tree (Figure 4.1 )

Detail UI Design and Specification

This chapter collect the UI design and description of new features.

Local History settings UI design

Figure 1: The Local History on the Versioning menu.

The Figure 1 description:

This picture shows how the user can call the Local History for the particular file. The Local History is active and visible, if the user has selected some file or folder in the project window. If not, the Local History label is gray.This functionality show two red ellipses connected by the red line.

Figure 1.2: Local History From Context Menu

The Figure 1.2 description:

This picture shows how the user can call the Local History for the particular file or folder from the context menu. The Local History is active and visible, if the user has selected some file. If not, the Local History label is gray. This functionality show two red ellipses connected by the red line.

NOTICE: The Local History always is placed under the Versioning systems (if we don't have version system, is the Local History alone between the gray lines)

Figure 1.3: The Local History Settings

Figure 1.3 description:

Figure 1.3 shows the Local History settings placed in the Options menu. The system allows the user set:

The delay how long the system will stored the files - File History Days

Number of still stored files.

Local History table description UI design

Figure 2.1 : The history tree detail

The Figure 2.1 description:

The Figure 2.1 shows how the system structures the history for the files or folders by the days.

Local History for the files the system shows in the first column with the label "Version" .

In the second column of the Local History table the system shows the "Label" of the files. This filed is useful for the user, if he/she wants to set the name for the file version.

Figure 2.3: The History Tree detail of labeled file

The Figure 2.3 description:

The Figure 2.3 shows how the system shows the files label. If the user set the label for the some file like Modified (on the Figure 2.3), the system shows it inside the Local History table. The user can write directly into the row.

The Figure 2.4 and 2.5 description:

Local History DIFF UI design

Figure 3: The Local History Diff viewer

Figure 3 description:

The Figure 3 shows how the system shows the user differences between saved version (left side) and particular version (right side). The system colors (49,106,197) the row in the Local History table. It signalizes that the system diff the saved version shown in the row with the Current file.

Figure 3.1: Detail of the Diff pointers

Figure 3.1 description:

Figure 3.1 shows in detail, how the system shows the pointer, which allows the user easy move the differences from the saved version file into the Current file.

Figure 3.2: Revert to This Version or Delete from the History

Figure 3.2 description:

The Figure 3.2 shows, how the system allows the user Revert back the current file version to the saved version in Local History. The system allows the user to Delete saved Version from the Local History manually too. This menu is visible, if the user click into the Local History row in Versions column. The system shows, that the particular row in the selected column black edge line (Figure 3.3).

Figure 3.3: The detail of the bordered row in the selected column

Figure 3.3 description:

This figure shows the detail of bordered row in the selected Column. If the user selected some field in the Local History table, the system show 1 pix width black line around the filed.

Figure 3.4: Revert deleted

Figure 3.4 description:

Figure 3.4 shows the Revert Deleted item placed in the Local History sub menu. This item is active (is not light gray) if the user selected the folder (or package, form etc.).

Figure 4.1: Set Label in the Local History tree

Figure 4.1 description:

This figure shows, how the system allows the user insert his/her label for the saved version of the file. The user can click into the row in the status column of the Local History table, the system borders the filed by the black line (Figure 3.3) and allows the user to write the label:

The system allows to write the label if the status label is empty or if the label was added by the user. In this case the color of the label is white, if is the filed active (has black borders).

If the user edits or writes or deletes the label, the color of the label is white.

If the user goes out from the filed (unselected it) the border disappears and the system changes the color of the label to black.