To follow-up on my own message, there is another advantage to my
proposal. It would allow prj.el files to reside anywhere, not just
in the source hierarchy. I would add a new command for the JDE
files menu, called Open Project, which would prompt you to enter the path
to a project file, which could reside anywhere.
- Paul
At 02:18 PM 8/27/99 -0400, Paul Kinnucan wrote:
>Hi All,
>
>I am thinking of revising the way projects work in the JDE to put each
>project in its own frame. The motivation for doing this is that it would
>solve a lot of headaches associated with the current way of maintaining a
>project's properties. Currently, every time you switch source buffers, the
>JDE determines which project the buffer belongs to and reloads the project
>file for that buffer, thereby setting all the JDE variables to the values
>specific to that project. This can have disconcerting effects when stepping
>through a program. For example, suppose you step into the JDK source, which
>has no project associated with it. When you step into source for which
>there is no project, the JDE sets the JDE variables to those in your .emacs
>file. Thus, when you step into the JDK, the jde-db-source-directories
>variable, which is used by the debugger to find source files, gets reset to
>the .emacs file setting or to the default setting which is "". The bottom
>line is that stepping into source belonging to another project (or no
>project) can cause the debugger to lose its way.
>
>To solve this problem, I propose that we associate each open project with a
>separate frame. The title bar for the frame would contain the project's
>name. Instead of resetting the project variables every time you load a
>source file or switch buffers, the JDE would reset the variables only when
>you selected the frame. Thus, suppose you Project A and Project B open and
>were currently working in Project A (i.e., Project A's frame has the input
>focus). The following table contrasts the differences between the current
>project handling and the proposed handling for a typical sequence of
>user actions:
>
> JDE Action
>User Action Current Proposed
>-----------------------------------------------------------------------
>Open A source file in A No action No action
>Open B source file in A Load B's prj.el* No action
>Switch frames from A to B None Loads B's prj.el
>Open A source file in B Load A's prj.el No action
>Open B source file in B No action No Action
>
>* Loading a prj.el file causes the values of JDE customization variables,
>e.g., jde-global-classpath, to be reset to those specific for the project.
>
>The net effect is that settings of JDE variables are local to
>project frames not to source buffers. This means that you can open
>another project's source file in the current project's frame without
>triggering an update to the new project's variables. This is very
>convenient for debugging (stepping causes the JDE to open source
>files automatically).
>
>I think it's also is advantageous from a UI point of view. It allows
>you to know immediately what project you are working in at all times.
>
>I'd like to hear your feedback on this proposal.
>
>- Paul
>
>