[Pipet Devel] excerpt from CHANGES
Brad Chapman
chapmanb at arches.uga.edu
Wed Feb 9 10:04:55 EST 2000
> First, thanks for the continued work on the project, Brad.
The pleasure is all mine--thanks for taking a look at things!
>> 2/8/00 Brad
>> * Got all of the below database stuff working for MySQL, PostgreSQL
and
>> Gadfly (at least, it seems to be working okay for my simple
examples).
>> Shouldn't be too hard to add more dbs if people want them...
>
> So, you have list and tree views of MySQL, PostgreSQL and Gadfly?
Very nice.
Right, I just did this because they seemed like 3 good ones to try. If
anyone is using other databases and would like me to get those
working, just let me know!
>> 2/7/00 Brad
>> * Can now drag and drop databases and tables.
>
> I don't use a DBMS on my system. Could we provide a small, test
> database/table for the 3 you wrapped?
Sure, MySQL and PostgreSQL will be a little more of a pain, since they
require installation and getting them running and all that jazz, so I
just provided a simple one for Gadfly. Gadfly is written in all
python, and isn't hard to install and get running. I'll send a
separate e-mail after this about it with a script to create a really
simple database. If you try it out, you'll notice that it also reveals
a current problem I'm having with Gadfly.
> I noticed the DnD, and I'm pleased to see that you tackled the
problem first,
> since I have no experience with it.
I basically just looked at dnd.py from the pyGtk examples and tried to
figure out what was going on there. I really needed to get this
working in order to get
the database stuff working, so that is what I tried to hit it first
(plus, I think it is pretty neat to be able to drag and drop things!).
I have a question on this for you. I would like to add it so that
you can also drag and drop loci from the workspace into a container
(as opposed to out of a container onto the workspace). This would also
allow us to drag loci between different workspaces (notice now how you
can drag a loci out of a container into any workspace inside the main
workspace. Pretty neat, and I didn't even have to try to do this). My
question is, what kind of button press or button press/key stroke
combo should I use to do this? I was thinking Shift:button1 click
or Control:button1 click or something like that--do you have a
preference/opinion on this?
To do the dnd into containers "properly" we'll also need to make
deletion of loci possible (otherwise it'll be more like copying loci
around), but hopefully that shouldn't be too bad.
>> * Created a table_view widget (just a CList with mutliple
columns--it
>> appears that that is the most widely used widget to display database
>> contents). Dragging a table out of a container onto the desktop
shows its
>> contents in the table view widget.
>
> Does the table show up as a file in the 'filesystem view' or as an
icon in
> the
> 'database view'?
The table is created in a separate document type loci. Basically, my
idea for getting at a table in a database is this:
1. Open up a container loci and click on the database button to
connect to a DB.
2. Once connected, the container will be filled with all of the
databases within the big database.
3. To get at the info in one of these databases, you drag it out onto
the workspace and this will create a new container for the database,
filled with all of the tables in the database.
4. Drag one of these tables out into the workspace, and a document
loci type will be created with the "table_view" widget containg the
column names and all of the info in the columns.
> Also, I think we should have one 'view' per container. 'Filesystem'
and
> 'database' are really 2 different container types. We need to think
on a
> much
> lower level than we are. Instead of one program called 'container'
that has
> many different functions, we need to have many different containers
that have
> one function each.
I ?think? what I described above might be what you want, but I'm not
positive. Let me know. Eventually, what I hope to have is that
dragging a table onto the workspace just creates a loci with a simple
widget showing some information about the table (ie. column names and
type of information they store, number of records, etc.) and then if
you hook the table up to a viewer, this will show all of the data.
That way, you can work with a huge table without having to show
everything in it.
In terms of the list vs. tree view. I'm just keeping them both
going so we can decide between them later. They both show exactly the
same thing now (since I'm not delving into directories or databases
because it is too slow). I might just switch to the list, but it is
giving me issues with the drag and drop. Notice how when you drag
something from a list view the pixmap that is shown is not the one
from the container, but this random big pixmap that I have no idea
where it came from. I can't figure out why this is happening...
> Again, per our earlier conversations, the Loci user will be limited
to what
> part of the filesystem he/she can access. By default, we want 4
filesystem
> containers on the workspace (akin to disk dirves on a Mac desktop):
>
> (1) $LOCIHOME/back/public/container/
> (2) $LOCIHOME/back/private/container/
> (3) $HOME/loci/back/public/container/
> (4) $HOME/loci/back/private/container/
>
> They appear on the workspace everytime Loci is started, and they
cannot be
> deleted/trashed. And for security, the user CANNOT change to a
parent
> directory.
Do you think we need this for using Loci on a "local" system? It seems
like you should be able to, and would want to be able to, access all
of the files/programs on your system from loci. However, when you
connect to a remote loci, you can only see the directories inside of
loci home. Am I making any sense? I had an idea about this earlier
that I posted--I'll resend that right after this.
> A 'trash container' is another one we need to make.
Do we want a trash container or do we want to use the delete option
from the menu?
> About document loci: It'd be nice if text documents had a 'text
viewer'
> (non-editable editor) widget in the windowlet by default. You have
the
> filename in the windowlet and a way to change the file affiliation
of the
> locus. But, by the design model I've been beating everyone over the
head
> with, the user should not be able to change affiliation. Just like
in the
> Mac, if you have an icon representing a particular file, you can't
change it
> so that it represents something else.
That's true... The reason I added the file selection is so that you
could get at a file directly if you added a document widget directly
onto the workspace. Also, I thought this would be needed if you wanted
to use the document widget to supply a file for command line
construction.
WRT the text viewer--that should be no big deal to do, but do you
want this contained in the "document" widget or as a separate viewer
widget? It just seems like it might be annoying to have to load the
contents of a file every time you want to refrence it, especially if
you have huge text files like some FASTA file or something.
> BUT, here's the catch: This doesn't always happen. It seems there
is an
> invisible event-catching box that doesn't always line up with the
windowlet.
> Try clicking all around on some windowlets. Sometimes there is a
corner that
> won't let the super-workspace catch the event.
I'm not sure, but this might have to do with the problem of the actual
position of a loci not being identical to it's world coordinates. I
tried to use c2w() to convert the canvas coordinate refrences to
world coordinates, but I always get a seg fault when I try to use it.
Not sure why...
>> Problem with the Solution: This solution also prevents button 3
clicks from
>> being propogated to loci within an internal windowlet. So we can't
use a
>> button 3
>> click for anything specific to a loci, or within a GUI.
>
> Well, I'll try to take a crack at the problem.
That would be great! At least right now things seem to go fairly
normally and you don't accidentally end up adding loci to the wrong
workspace, but a better solution would definately be spectacular :-)
Brad
More information about the Pipet-Devel
mailing list