[Pipet Devel] J.W. Bizzaro; TODO 20000218

Gary Van Domselaar gvd at redpoll.pharmacy.ualberta.ca
Sat Feb 19 12:36:20 EST 2000

"J.W. Bizzaro" wrote:
> Brad Chapman wrote:
> >
> > > 1.  Split gi workspace up into many more modules to keep things easy to manage.
> >
> > This is a really good idea. I was thinking it might be helpful to add a
> > new connector/dot class (which will probably be needed once dots get more
> > complicated). Then we could move the event stuff for dots/lines to this
> > class and also move the locus event stuff to the locus class.
> I was thinking about the event handlers being in their own modules.  But, do
> you think splitting up such highly accessed methods (e.g., whenever a locus
> gets dragged) will slow things down?  This is a question I have about Python
> operation.  Maybe someone here knows the answer to that.
> > > 2.  Make windowlets resizable via dragging frame.
> >
> > Do we still need this if we have "automatically scrolling windows"?
> Yeah, windowlets should have much of the functionality of full-fledged X
> windows.  This is especially useful for composite/sub-workspace windowlets,
> where you may need lots of room to work within a windowlet.  We/I will be
> adding some 'window manager' features to the workspace.
> > > 3.  Add multiple locus selection to gi workspace.  SHIFT-button1 and
> > >     CTRL-button1 will do this.
> >
> > This would be really helpful--they we could start setting up simple piping
> > stuff (ie. a document to a viewer)
> It is certainly needed to make composites: Select the loci to be composited,
> choose 'composite' from pop-up menu, and ZAPP-O, one locus takes the place of
> many.
> > > 4.  Work on locus deletion.  Brad started this.  There should be 2 types:
> > >     (1) complete removal and (2) change to a composite locus, which uses (1).
> > > 5.  Work on locus disconnection via pop-up menu over connector.
> >
> > Let me know if the stuff I did makes sense when you start looking at this.
> > I might be able to make it cleaner/more usable if there are problems.
> I was planning on making a method that is the inverse of the connect_loci
> method.  I'll go check out what you did.
> > > 6.  Add windowlets to locus connectors.  These will give connector status/info.
> > > 7.  Pop-up menu needs to reflect the item selected: locus, connector or
> > >     workspace.
> >
> > Don't forget about my button 3 "fix." We'll need to think of something new
> > to do for this if you want to start adding more functionality to the
> > pop-up menu.
> Right, I need to add that to my TODO list.
> > > 8.  For the time being, I want locus addition to take place via DnD with
> > >     containers.  The 'Add' pop-up submenu in the end will be for adding MIME
> > >     and connection type-compatible loci to other loci.  We're a long way from
> > >     doing that, so I want to remove it (Brad).
> >
> > Okay, that shouldn't be too big a problem for most stuff since we have
> > drag and drop working.
> > However, what about database stuff--right now I'm connecting through a
> > blank added container. How would this work under the new system?
> Can we put a blank database container in one of the main
> containers/directories?
>     $LOCIHOME/back/private/container/
> Blank containers are wrappers with an XML description (like all loci), right?
> Then we can put the wrapper in the container/directory.
> (I know you argued for a different way to manage private loci.  I have to get
> back to you on that.)
> > > 9.  We need a locus clipboard for doing copy/cut/paste of loci.  I think this
> > >     should be a subtype of the composite locus type and able to be placed on
> > >     the workspace.
> >
> > Do you have a plan for keeping these type of containers out of the way?
> > Have a toolbar contiainer of useful loci? You could drag them out of the
> > toolbar to add stuff to them, but when they get deleted from the
> > workspace, they go right back to the toolbar. Is this an idea?
> I was thinking the clipboard should be a 'composite' type locus rather than a
> 'container' type locus.  This is because composites preserve connectivity,
> which should be preserved during copy/cut/paste.  Trash loci should also be
> composite type for the same reason.  But then again, if you composite the stuff
> that is to be trashed/copy/cut/pasted, you can then put it in a container.
> As for keeping 'permanent' loci 'out of the way', How about having a 'hide
> locus' option that makes a locus invisible although not deleted?
> > > 10. Loci needs to start up with a few loci already on the workspace:
> > >     containers.
> >
> > Maybe this would be how to deal with the database problem I mentioned
> > earlier?
> Well, I think we can have a permanent container representing a Loci directory
> (as mentioned above), and a blank database container can be pulled out.
> > > 11. Establish communication pipe with middleware.  NOTE that the gi workspace
> > >     is a 'dumb' front-end to the middleware, and that some of what has been
> > >     hard-coded into the gi workspace (by Brad) needs to be abstracted out to
> > >     the middleware.
> >
> > You are absolutely right about this. The middleware and frontware XML
> > stuff is especially tangled. I've started to untangle it, and this what
> > I'll be working on asap. I think I have a better model for how this can
> > work and how I can extract things to be nicer. A lot of that ugliness are
> > my kludges to make things work when I didn't really have a view about how
> > all the code would look in the long term. I see some things a little
> > clearer now, and I definately think fixing this up should be a priority
> > for me so that we'll have less code breaking in the future.
> What may be confusing, and I'm not sure how much I wrote about this to you, is
> that the front-end(s) and the middleware will communicate by sending XML tags
> back and forth.  And the tags are commands.  Here's an example:
>     <gi locus_select id=387hwj7843>        gi requests selection of locus
>     <middle locus_select id=387hwj7843>    middle approves
>     ...
> The middleware will have to echo back an approval for the front-end to proceed.
> This will be a 'dialog' that occurs through a pipe (Gary mentioned that this
> might occur via HTTP). 

HTTP works well with xml and would give us the hook into an
xml-compliant web-browser interface if and when this aspect of loci
comes about.

> Gary and I developed this approach together.  If you have more questions,
> perhaps Gary can join in on the conversion ;-)

OpenDX also uses this approach.  Actually, Brad, did you ever receive
those rough Loci architecture drafts that Jeff and I hacked together?  I
wouldn't mind making a wp doc from those and posting it to the group,
once it gets the stamp of approval.  Maybe I should add _that_ to _my_
TODO list.

                                  Gary Van Domselaar
                               gary at bioinformatics.org
                           bioinformatics.org: The Open Lab

More information about the Pipet-Devel mailing list