Ticket #161 (closed enhancement: fixed)

Opened 1 year ago

Last modified 3 months ago

Add Preferences Service

Reported by: mwlinnem@IU.EDU Assigned to: mwlinnem@IU.EDU
Priority: high Milestone:
Component: Others Version: 0.8.x
Severity: major Keywords:
Cc:

Description

Stage: Requirements Specification

Description: (from Bonnie) We need a UI implementation so that people can customize their preference setup. Maybe download IVC (http://sourceforge.net/projects/ivc/), and look at the preference functionalities there.

Next Step: Investigate preference service implementation possibilities. Look into IVC implementation. Look into OSGi default preference service, etc... . Think about how we want integrate the preference service (where in NWB / how we want to use it).

Change History

10/31/07 14:28:48 changed by mwlinnem@IU.EDU

  • owner changed from nwb to mwlinnem@IU.EDU.
  • summary changed from Add Preference Service to Add Preferences Service.

Stage: Requirements Specification (developed)

Description: The user should be able to customize their preferences for various values that affect how NWB works.

Preferences should be saved between NWB sessions.

Each plugin in NWB should independently be able to specify what its preferences are, and the user should be able to easily modify those preferences.

Plugins should be able to have preferences for the following things: Boolean values (yes / no choice), Text, File locations, Directory locations, Numbers, and Multiple-choice (radio buttons).

The interface for how the user selects their preferences should not be tied to the plugins themselves. The plugins should only specify certain information, such as the data-type and name, of its preferences. NWB will then separately interpret this information and turn it into the GUI in NWB. This is so we can later have a web version of NWB (which will have a different GUI representation of preferences).

In addition to each plugin having their own preferences, there should also be a set of preferences for the system as a whole, that is accessible from all plugins.

The preferences system should work and look similar to the IVC preferences system (with some improvements and changes, especially on the back-end).

Next Step: I will run these requirements by Bonnie to see if she thinks they sufficiently describe what we want out of the Preferences Service.

Russell and I have already discussed a possible design for the Preferences Service, where each plugin has a configuration file foo.pref which specifies what preferences it exposes. These .pref files will be read by the Preference Service, which will create a GUI based on these files similar to the one seen in IVC. This design will be further described in the following step.

10/31/07 15:44:27 changed by bherr@IU.EDU

We should definitely consider doing it the OSGi way. OSGi provides a configuration admin on top of the preferences and metatype services that allows OSGi to manage the configuration of bundles. It provides everything but the UI. If we deem it too complicated/not to fit our needs, then we should at least follow their model somewhat. Also, MetaTypeProviders? are a no-brainer here.

Take a look at the spec, especially the compendium. It will tell you exactly how it works. http://www2.osgi.org/Release4/Download

12/03/07 11:28:45 changed by mwlinnem@IU.EDU

Current Status:
Requirements finalized. Design ongoing.

Description:
After a couple NWB meetings we have decided more or less how we want to do things. Currently I am working on a prototype, from which I will develop a more detailed design.

Next Step:
Develop prototype and detailed design, and present at NWB developer meeting for approval.

01/29/08 11:31:27 changed by mwlinnem@IU.EDU

Current Status: Design approved, Design mostly completed.

Description: Described new design in NWB Developer Meeting. Implemented it successfully.

Next Step: Finish up last few implementation details, then demo it, implements requested changes, then change the Eclipse Java-based Algorithm Wizard to support making preferences easily.

01/30/08 16:30:51 changed by mwlinnem@IU.EDU

*Should say "implementatiom mostly completed" above.

08/13/08 12:37:08 changed by mwlinnem@IU.EDU

  • status changed from new to closed.
  • resolution set to fixed.

Preference Service is done but hasn't really been used or tested much. Closing this for now, but will re-open if any complaints are generated when this sees some more use.