Project Manager Specification Version 1.0
Purpose of the Project Manager
The purpose of the project manager is to provide the following:
- A graphical interface from which to start all components of
JigCell.
- A mechanism for organizing all related files that make up a
single model or "project".
- A mechanism for packaging all related files that make up a
single model or "project" for portable redistribution.
- A coordinating entity to support communication between various
JigCell
components.
Basic assuptions
- Initially, all files making up a project will be kept in the same
directory. This directory is called a "Working Directory" for that
project.
- The Run Manager's run files will be altered to eliminate path
information. All file references within run files will be assumed to
be to the same directory as that run file is in.
- Initially, the Project Manager has no knowledge of OAA.
If some component (such as the Run Manager) needs access to an OAA
facilitator, some external mechanism must be used to start it.
- The Project Manager will communicate with other JigCell
components
through an ad hoc API specific to each component.
That is, the Model Builder will have its own API that the Project
Manager understands, the Run Manager will its own API that the Project
Manager understands, and so on.
The communications channel will be a direct socket connection.
- Only one project may be open at a time within the Project
Manager.
If the user wishes to open another project he will be warned that the
current project will now close.
- The Project Manager will only check for the existance of any
given
file within its file list when that file is accessed.
If a user attempts to access or manipulate a file, if the file no
longer exists, then a suitable error dialog will be initiated.
- The project's file list is automatically saved whenever the
project is
changed.
A project is changed whenever (1) files are added/removed from the
project or (2) the user alters the comments for a file, and then
moves focus out of the comment edit box.
- A user may add or remove files from the project at any time, even
when a file is being used in one of JigCell's components.
- If a user saves an existing file that is in the project from a
component (such as
the Model Builder) with a new name then the user must explicity tell
the Project Manager to add that file to the project.
Bugs in other programs that might affect
the Project Manager
- The Run Manager tries to talk to the facilitator at startup.
We want to wait to the talk to the faciliator until absolutely
necessary.
- Run Manager tries to find a simulator at startup.
We want to wait to the talk to the faciliator until absolutely
necessary.
Possible startup scenarios
- No project loaded: Run the Comparator, Model Builder, Parameter
Estimator, or Run Manager directly from the Project Manager without
defining a current project (and thus, a current Working Directory).
This effectivley gives the user a GUI interface for starting the
different components of JigCell. Saving/Creating files from the various
components does not create or alter any projects. The user may
save/create the files wherever he wishes.
- Create a project: A User may create a project.
However, any open applications do not know about it. All subsequent
startup of components then communicate with the Project Manager.
- Load a project: Same as "Create a project" except that creating a
new project is unnecessary.
Creating a project
- Creating a new project automatically closes the project that is
currently open (if there is one).
- Upon creating a project, the user is asked first what the name of
the project should be.
- Second, the user chooses what directory the project should be in.
This defines the current Working Directory.
- Creating a new project causes a new project file to be created in
the
specified Working Directory.
- Creating a project presents the user with an (initially empty)
file
list.
- The user can then add/remove files, change comments, and start
various JigCell components.
Loading a project
- Loading an existing project automatically closes the project that
is currently open (if there is one). The user will first be warned and
asked if he wishes to contiune.
- The user is then presented with a list of files currently in the
project.
The current Working Directory becomes the directory that holds the
project file.
- The user can then add/remove files, change comments, and start
different JigCell components.
Adding a file to the project
- At any time that a project is open within the Project Manager,
a user may add a file to the project.
- If the file is already in the Working Directory then the file is
simply added to the project.
- If the file is not in the Working Directory, the Project Manager
will
confirm that the user would like to copy the file to the working
directory.
If the user agrees, then the file is copied to the working directory
and added to the project's file list.
If the user does not want the file copied, then the user is told that
the file was not added and nothing happens.
Comments
- A user may write in comments about each file by clicking on the
file and then writing in text in the comments editor.
- Comments are automatically saved whenever (1) the user exits the
Project Manager (2) the user clicks on another part of the Project
Manager that is not the comments editor.
Additional functionality
- An existing Project can be renamed at anytime.
This does not change the name of the file (*.proj). The name of a
project never has any
necessary relationship to the name of the project file.
- Comments are text-based and are stored in the *.proj file.
- A user can import (add) a file to the project at any time.
There are no restrictions as to what extension (if there be any) that
a file must have.
There is also no restrictions on where the file is as long as the user
has rights to copy that file as the file will copied and placed the the
Working Directory.
- The user can access JigCell documentation from the help
menu.
- Double-clicking a file in the current project file list will
cause an
appropriate editor to come up if possible.
For instance, if the user double-clicks on an SBML file, then the
Model Builder will come up with that file loaded.
This might also be achieved by right-clicking on that file and
selecting Open in Model Builder.
- The user can sort the files within the Project Manager's file
listing.
Files can be sorted by name, type, or date.
Additional specifications
- Every project is defined by a *.proj file.
The *.proj file stores the name of the project, the name of all the
files in the project (to be valid, these must exist in the current
directory) , and the corresponding comments associated with each file
in
the project.
- No backups are currently generated.
If the *.proj file is deleted from the harddrive, then the project is
gone.