[seek-dev] scrollbar additions to kepler

Rod Spears rods at ku.edu
Tue Jul 27 11:14:21 PDT 2004


Although having the panner AND the scrollbars seems optimal, but because 
of possible architectural issues it would be reasonable to me to have it 
be either or. The panner or scrollbars, especially if this could be easy 
to specify via a persistent preference.

Rod


Chad Berkley wrote:

> Hi,
>
> I've been working the last 4 days to add scrollbars to the vergil 
> canvas.  I've had limited success and I've run into a couple problems. 
> I wanted to see what others thought of this before I continue.
>
> There are two different places where this functionality can be added. 
> The first one (and probably the technically correct place) is in the 
> Diva library.  Diva is the library ptolemy uses to provide all of the 
> graph editing functionality.  Diva also provides the panner (the 
> widget in the bottom left that allows you to move around the 
> workspace).  The second place this functionality can be added is to 
> the Vergil gui classes.
>
> Placing the code in diva is probably the best way to do this because 
> then it would integrate seamlessly into the current view and allow the 
> scrollbars to interact with the panner.  Changing Diva to do this is 
> not trivial.  Diva has it's own layer system built around AWT with 
> some Swing components.  Also, if we change diva, it's going to be much 
> harder to make this a "pluggable" change without making some 
> architectural change to diva itself.
>
> Placing the code in the BasicGraphFrame class of vergil is the most 
> straight forward way to do it because the vergil gui uses all swing 
> components and places diva widgets inside the swing components.  This 
> is the way I have partially implemented the scrollbars now (using a 
> JScrollPane).  There are several problems with this.  First of all, 
> getting the scrollbars to interact with the panner correctly seems 
> mostly impossible.  Basically, i have to remove the panner or else 
> things get chaotic real quick.  If the user moves the workspace via 
> the panner, there is no event to catch when this happens, so the 
> scrollbars can't be updated accordingly.  I've also had to make major 
> changes to the zoom code.  The two advantages of doing it this way are 
> that it's easier to code since one can work with only swing components 
> and i think it will be easier to make this a pluggable change since 
> some people have said they don't want scrollbars on the canvas.
>
> Another thing I thought of the other day while working with photoshop 
> (which has scrollbars on it's canvas), is that we could add a "hand" 
> tool which would serve one of the purposes of the panner (to let you 
> move around the workspace).  I like the panner and don't really want 
> to get rid of it anyway.  I think the panner, scrollbars and a 
> potential hand tool would work well together.  It's just a matter of 
> figuring out the best way to do it.  Ptolemy folks: how hard do you 
> think it would be to add this to Diva?
>
> thoughts?
>
> chad
> _______________________________________________
> seek-dev mailing list
> seek-dev at ecoinformatics.org
> http://www.ecoinformatics.org/mailman/listinfo/seek-dev





More information about the Seek-dev mailing list