Re: User Interface Designer

11 views
Skip to first unread message

Murilo Saraiva de Queiroz

unread,
May 19, 2008, 4:41:11 PM5/19/08
to openc...@googlegroups.com, openb...@googlegroups.com
Hi Bhavesh,

Since we're planning to use Eclipse RCP for OpenBiomind there's no much need for a visual editor. It can help things a little but creating the interface programmaticaly isn't a big deal. Using SWT/RCP layouts is tricky at the beginning, specially if you depends too heavily on visual editors; start reading the tutorial below, and if you have doubts please let me know:

http://www.eclipse.org/articles/Article-Understanding-Layouts/Understanding-Layouts.htm

Did you followed the RCP tutorial I sent a few days ago ? Its example application can be a good starting point for OpenBiomind GUI. The idea is to have a Task Navigator capable of grouping tasks by type (feature selection, clustering, etc.) and / or experiment (normally an experiment is composed by a series of different tasks).

Then we would have a different editor for each task, where the user specify the parameters to be used. Results will be shown by the same editor (the parameters could be the task header), when they are available.

I've been talking with Lucio about the integration with the existing code, and basically we have two options:

- Run open-biomind tasks as independent processes (called with System.exec). Lucio would modify the executables so control and task monitoring can be done by standard input / output. In this case the GUI would be just a wrapper for the actual code; it would be easier to integrate modules written in other languages, or even distribute the load (communicating with the process using sockets).

- The other approach is to use open-biomind as a library, and call the appropriate methods directly, in separate threads. The advantage would be a better control of the application, but I'm afraid that if not done correctly we would introduce too many unwanted dependencies (the GUI should always be optional).

For Eclipse RCP I recommend the book

J.McAffer, J.-M.Lemieux -
Eclipse Rich Client Platform - Designing, Coding, and Packaging Java Applications

You'll probably find it in your local library.

On Mon, May 19, 2008 at 4:37 PM, Bhavesh Sanghvi <bsan...@cs.iastate.edu> wrote:

Hi,

I had a query related to the UI Designer to be used. I have used Visual
Editor (VE) for UI development in Eclipse. However, there is no stable
version of VE for Eclipse 3.3 (Europa). So, I tried to look for other tools.

One of the tools among those that I looked at is WindowsBuilder
(http://www.instantiations.com/windowbuilder/pro/index.html). They also
donate their software for open source development (instructions available at
http://www.instantiations.com/company/opensource.html). Please let me know
if it is fine to apply for this software?

One of the free tools that I looked at is Jigloo SWT/Swing GUI Builder for
Eclipse (http://www.cloudgarden.com/jigloo/) which has initial support of
OpenSwing (http://oswing.sourceforge.net/).

Another alternative is to use something like NetBeans
(http://www.netbeans.org/features/java/swing.html). Since we are having
project in Eclipse, it may be difficult to design UI in NetBeans and use
Eclipse alone for development.


--
Best,
Bhavesh, who is trying to find out the correct tool for development






--
Murilo Saraiva de Queiroz, MSc.
Senior Software Engineer
http://www.vettalabs.com

Murilo Saraiva de Queiroz

unread,
May 19, 2008, 6:10:54 PM5/19/08
to openc...@googlegroups.com, openb...@googlegroups.com
On Mon, May 19, 2008 at 7:00 PM, Joel Pitt <joel...@gmail.com> wrote:

On Mon, May 19, 2008 at 4:41 PM, Murilo Saraiva de Queiroz
<mur...@gmail.com> wrote:
> Hi Bhavesh,
>
> Since we're planning to use Eclipse RCP for OpenBiomind there's no much need
> for a visual editor. It can help things a little but creating the interface
> programmaticaly isn't a big deal. Using SWT/RCP layouts is tricky at the
> beginning, specially if you depends too heavily on visual editors; start
> reading the tutorial below, and if you have doubts please let me know:

I can't remember the name of the platform, but there are several
bioinformatics frameworks that use Eclipse RCP to try and integrate
bioinformatics tools, sequence and data retrieval, etc. It may be
worth researching what platforms already exist and maybe integrate the
openbiomind GUI into one of them... which may automatically provide
the ability to view/normalise microarray data.

One I can think of is http://www.bioclipse.net/ - but it doesn't have
microarray capabilities (yet).

Yes, that's the idea. Eclipse applications are implemented as plugins. In the same way you can add, for example, Python support to your Eclipse installation, theoretically we could implement standalone Eclipse plugins for all OpenBiomind tools.

However, it's very difficult to implement such plugins in a completely generic / independent way, so we bundle them together in a single stand-alone application. That's why you always download Eclipse Java SDK - it comes with a lot of plugins to provide the minimum support for an IDE.

But your suggestion is very good; I think one of our first steps should be reviewing these RCP-based applications and evaluating if we can simply add openbiomind tools to one of them, as plugins. Given the large number of different datasets and formats (even when you talk of an "specific" area such as microarray data), I think this won't be trivial or even possible, but we should at least investigate the possibility.

Lúcio, could you please spend some time on this ?

Thanks!

Murilo Q.

Bhavesh Sanghvi

unread,
May 19, 2008, 7:05:30 PM5/19/08
to openb...@googlegroups.com, openc...@googlegroups.com

Hi Murilo,

 

I did look at the tutorial. I will look at this link and try to find out the book too.

 

As far as the following options are concerned,

“- Run open-biomind tasks as independent processes (called with System.exec). Lucio would modify the executables so control and task monitoring can be done by standard input / output. In this case the GUI would be just a wrapper for the actual code; it would be easier to integrate modules written in other languages, or even distribute the load (communicating with the process using sockets).”
“- The other approach is to use open-biomind as a library, and call the appropriate methods directly, in separate threads. The advantage would be a better control of the application, but I'm afraid that if not done correctly we would introduce too many unwanted dependencies (the GUI should always be optional).”

I think that if we provide APIs as for the second option, it may still be possible to write GUI without much dependence. However, as per Lucio’s other e-mail, I think that the first option will work much better, as then the GUI won’t be doing anything additional, but, as you put, would be a wrapper around the CLI.

 

--

Best,

Bhavesh Sanghvi

Bhavesh Sanghvi

unread,
Jul 20, 2008, 9:06:51 PM7/20/08
to openb...@googlegroups.com

Hello,

 

I have implemented the Graph Features task and am able to generate the Graphviz DOT files. Now, I think I need to convert that to image file.

I am interested in knowing the followings:

1.       How do I convert the dot file to image file? I think I need to use Grappa.

2.       Does Grappa work fine with Java 6? The FAQ (http://www.research.att.com/~john/Grappa/grappa_faq.html) mentions that it can work with Java 5 after some tweaks. There is no mention of Java 6. Has anyone already tried to use Grappa with Java 6?

3.       Is there a quick tutorial (blog, etc.) that explains how to use Grappa to convert dot files to images?

4.       Anything else that I need to know about Graphviz/Grappa?

 

--

Thanks,

Bhavesh Sanghvi

 

From: openc...@googlegroups.com [mailto:openc...@googlegroups.com] On Behalf Of Murilo Saraiva de Queiroz
Sent: Tuesday, May 20, 2008 4:14 AM
To: openc...@googlegroups.com
Subject: Re: User Interface Designer

 

On Mon, May 19, 2008 at 8:31 PM, Lúcio de Souza Coelho <luc...@gmail.com> wrote:


On Mon, May 19, 2008 at 8:16 PM, Murilo Saraiva de Queiroz
<mur...@gmail.com> wrote:
(...)

> Lúcio can give more details on which results should be shown in the GUI for each task.

(...)

There are currently three types of results produced by OpenBiomind:

a) Huge tabular or otherwise structured text files (lists of important
features, clustering results, model files, etc).
b) Clustering images.
c) Gene relationship graphs - OpenBiomind actually produces .dot
files, and those are viewable using Graphviz.


It's quite easy to use graphviz to generate PNG images.  



(b) and (c) are well worth of direct visualization in the interface, I
think. As for (a)... Well, I guess that it depends on the kind of huge
text output file produced, and that should be analyzed case by case.
For instance lists of important features may have thousands of items,
but just the, say, top 10 or 20 most important usually are considered
worth of being considered by biologists. In a case like that the GUI
could show a preview of the n top features in a tablelike form, while
the file produced by the command would actually contain all entries.


Exactly.

Murilo Saraiva de Queiroz

unread,
Jul 20, 2008, 10:34:11 PM7/20/08
to openb...@googlegroups.com
Hi Bhavesh,

In another project we use command-line graphviz to generate the images, running the graphviz executable using System.exec(). The approach is the same described here:

http://webloria.loria.fr/~szathmar/off/projects/java/GraphVizAPI/index.php

Since there are easy to install builds of graphviz for Windows and most Linux distros I think this can be acceptable if you can't find a way of using grappa. Anyway, it seems that grappa focus is interactive graphs, and we just need static PNG files.

Bhavesh Sanghvi

unread,
Jul 20, 2008, 10:50:00 PM7/20/08
to openb...@googlegroups.com

I did look at Proba example earlier as well. I’ll try to use it and get back in case there is any problem.

 

--

Thanks,

Bhavesh Sanghvi

Bhavesh Sanghvi

unread,
Jul 22, 2008, 11:41:44 AM7/22/08
to openb...@googlegroups.com

Hi Murilo,

 

I saw how to run graphviz from the command line to generate image file (using the dot application). Now, I have following queries:

1.       Will we include Graphviz with OpenBiomind-GUI?

a.       Or will we assume that the users will have it installed, and will specify it’s home in preference (optional). If the preference is set, the application will use DOT executable to convert DOT files to images, otherwise not.

2.       If we want to include the Graphviz executables, then

a.       Do I need to include only the dot executable (I think it works that ways for Windows).

b.      How will we include it such that it works for all OS?

                                                               i.      It seems that Graphviz has Windows, Red Hat Linux, and Mac (experimental) versions. What all OS are we planning to support for OpenBiomind-GUI? Until now, I’ve tried only Windows builds.

                                                             ii.      For Windows XP, Graphviz has dot.exe. What are the files for other OS? Can they be executed just by calling dot? I need to know that for specifying the name in Process.

c.       What are the legal procedures for it? Must I contact the people at Graphviz (I think it’ll be John Ellson)?

 

That has been a long mail. I hope I did not miss anything. Otherwise, I’ll write again.

 

--

Best,

Bhavesh Sanghvi

 

From: openb...@googlegroups.com [mailto:openb...@googlegroups.com] On Behalf Of Murilo Saraiva de Queiroz


Sent: Sunday, July 20, 2008 9:34 PM
To: openb...@googlegroups.com

Murilo Saraiva de Queiroz

unread,
Jul 23, 2008, 10:41:56 AM7/23/08
to openb...@googlegroups.com, Ben Goertzel, David Hart, linas
Hello Bhavesh,

The graphviz license isn't particularly problematic ( http://www.graphviz.org/License.php ), but I would like to hear the opinion of more experienced people about this (so I sent this message to Ben, David and Linas).

Anyway, I think that the simpler and most portable solution is to assume that the user will install Graphviz separately (e.g. using the Windows installer available at the homepage, or apt-get in Linux).

Open Biomind GUI should allow the user to configure the location of the required executable, and the application shouldn't crash if it's not found (instead we should display a message explaining that to enable the feature the user must install Graphviz, and include the address were it can be found).

We should also give the user access to the generated .dot files (even if graphviz *is* available), since he may want to customize it (according to publishing guidelines, for example).

Thanks!

Murilo Q.
Reply all
Reply to author
Forward
0 new messages