Local History Specification
Author: Josef Pavlicek
$Id: index.html,v 1.24 2007/06/21 16:44:16 josefpavlicek Exp $ (see full CVS history)
$Date: 2007/06/21 16:44:16 $
- Local History Use Cases
- Detail UI Design and Specification
- Related documents
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
To develop the Local History tool for NetBeans.
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.
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:
- main menu - Versioning -> Local History (Figure 1 ),
- project tree -> context menu - >Local History (Figure 1.2 ),
- if the user doesn't have selected some folder or file, the system shows him/her disabled Show History label in the menu.
Local History Scenario
The system allows the user:
- To set the files history for the time period, which the user can set up in the options in the Tools -> (Figure 1.3),
- By default the system saves the history for each file for 7 days and the system groups the history via days in the week. The user can to change this settings in in the Version options(Figure 1.3).
- After that the system deletes the older files.
- The system sustains the last 5 saved files in the history continuously.
- The system shows the user Local History table, which serves the user for better orientation in the Local History structure:
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:
- 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).
- Remove the inserted differences from the particular file ( mouse over/pressed state)
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)
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.
- 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 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
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 )
This chapter collect the UI design and description of new features.
Local History settings UI design
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.
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 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
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.
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:
The Figure 2.4 and 2.5 shows how the system shows the draggers on the edge of the Local History table (the UI specification for draggers you can read here).
Local History DIFF UI design
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 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 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 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 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 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.
This UI specification expanses the CVS UI Specification done by Jan Rojcek, and Richard Gregor. Click here.
Tanks Jiri Sedlacek for help.
Ing. Josef Pavlicek, Ph.D.
Human Interface Designer
Software eXperience Design
Sun Microsystems Czech s.r.o
Phone:+420 233 009 442
GSM: +420 737 38 54 75