Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [science-iwg] Eclipse Rich Beans proposal

IC, thanks.

I once offered a Swing-based suite of "Beans" when these kinds of UI components were seen as a great future market: http://sdj.sourceforge.net/java/coffee/

As a bizarre coincidence, Flashline was later purchased by BEA (switching more towards a market for "Enterprise JavaBeans" ;-) so while it no longer exists in a form you'd recognize, it lives on as Oracle now.

>The name rich beans is owned by: www.richbeans.com of India
Hehe, similar for CoffeeBeans, I tried to avoid the "JavaBeans" trademarks or name protection Sun got back then, but without being a lawyer, there are plenty of "Java Shops" out there selling coffee, too, so hopefully you won't be forced to change the project name.

Frankly speaking there is quite an overpopulation of "Data Binding" projects in Eclipse alone.
"BeanValidation" is also an established Java standard though the name "Bean" in that case is not necessarily related to JavaBeans or EJBs, though it started around the latter (especially Entity Beans) but the name was probably as vague as "Web Beans" now better known as "CDI".

So the idea, especially with a Science and Research focus sounds compelling, but the name could be at least as confusing and vague as "Web Beans" was before they changed it to "CDI";-)

 Werner 

On Tue, Jul 28, 2015 at 3:29 PM, <science-iwg-request@xxxxxxxxxxx> wrote:
Send science-iwg mailing list submissions to
        science-iwg@xxxxxxxxxxx

To subscribe or unsubscribe via the World Wide Web, visit
        https://dev.eclipse.org/mailman/listinfo/science-iwg
or, via email, send a message with subject or body 'help' to
        science-iwg-request@xxxxxxxxxxx

You can reach the person managing the list at
        science-iwg-owner@xxxxxxxxxxx

When replying, please edit your Subject line so it is more specific
than "Re: Contents of science-iwg digest..."


Today's Topics:

   1. Re: Eclipse Rich Beans proposal (Matt.Gerring@xxxxxxxxxxxxx)


----------------------------------------------------------------------

Message: 1
Date: Tue, 28 Jul 2015 13:28:46 +0000
From: <Matt.Gerring@xxxxxxxxxxxxx>
To: <science-iwg@xxxxxxxxxxx>
Subject: Re: [science-iwg] Eclipse Rich Beans proposal
Message-ID:
        <14159819E27EDC41968035052B165F668D8708D1@xxxxxxxxxxxxxxxxxxxxxxxxx>
Content-Type: text/plain; charset="utf-8"

Good point, thankyou ;). Yes the document text is below, planning to put the code on our dawn-eclipse next week.


Eclipse Rich Beans
Primary tabs

  *   Overview(active tab)<https://projects.eclipse.org/proposals/eclipse-rich-beans>
  *   Edit<https://projects.eclipse.org/proposals/eclipse-rich-beans/edit>
BASICS
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process<http://www.eclipse.org/projects/dev_process/development_process.php>) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please add your feedback in the comments section.
Parent Project:
Technology Project<https://projects.eclipse.org/projects/technology>
Background:
Diamond Light Source are part of the eclipse science working group and have developed several Eclipse RCP products both for user interface and for data analysis and acquisition servers. This project has come from that development work and exists already. It has some overlap with other eclipse projects, but we don't think this should be an issue and the ecosystem is richer with multiple solutions!
Scope:
The scope is to:

  1.  Provide a set of widgets which allow values to be entered and validated in a standard way.
  2.  Provide a service which synchronizes these widgets with beans, including complex object trees.
  3.  Provide a mechanism to auto-generate user interface components from beans using the standard widget set including 'on-the-fly' user interface generation
  4.  Provide a mechanism for design of experiments (DOE https://en.wikipedia.org/wiki/Design_of_experiments) to be carried out with beans by allowing some fields to be ranges
  5.  Provide a very simple to reuse design with many examples
Not in the scope:

  1.  Serialization: Rich Beans is agnostic as to whether XML, JSON or any other technology be used. It is just widgets<->beans
Description:
This project will allow user interface to be created from beans or graphs of beans. The user interface will have standard widgets which are already used in DAWNSci and other RCP products from Diamond Light Source but that which may be used by users of the Rich Beans API. For instance there are widgets for editing numbers with bounds validation, units and that allow expressions of other boxes. There are widgets for entering a range of values and expanding out bean graphs to complete Design of Experiments work.

This kind of thing already exists in other Eclipse project but Eclipse is described as an ecosystem and not a monoculture
The API will be simple to use, have great widgets for science and be fast for huge field lists. So even though it is a minnow in the world of models, data binding and UI generation, it has some strong points.

Screenshots from three of the examples:
UI

BEAN GRAPH

[https://projects.eclipse.org/sites/default/files/b1.png]

public class ExampleBean {

       private List<ExampleItem> items;
//?

public class ExampleItem {

       public enum ItemChoice {
             XY, POLAR;

             public static Map<String, ItemChoice> names() {
                    final Map<String,ItemChoice> ret = newHashMap<String,ItemChoice>(2);
                    ret.put("X-Y Graph", XY);
                    ret.put("Polar",     POLAR);
                    return ret;
             }
       }

       private String     itemName;
       private ItemChoice choice = ItemChoice.XY;
       private Double x,y;
       private double r,theta;
//?

[https://projects.eclipse.org/sites/default/files/b2.jpg]


public class ExampleBean {

       private List<ExampleItem> items;

//?

public class ExampleItem {

       private String     itemName;
       private ItemChoice choice = ItemChoice.XY;
       private Double x,y;
       private double r,theta;

       private List<OptionItem> options;

//?

public class OptionItem {

    private String optionName;
       private boolean showAxes, showTitle, showLegend, showData;
       private static int count = 0;

//?

[https://projects.eclipse.org/sites/default/files/b3.png]

So more than 200,000 fields are linked and editable in a speedy fashion!

public class ExampleBean {

       private List<ExampleItem> items;

//? Example has 2000 items


public class ExampleItem {

       private String     itemName;
       private ItemChoice choice = ItemChoice.XY;
       private Double x,y;
       private double r,theta;

       private double d0, d1,d2,d3,d4,d5,d6,d7,d8, d9;
       private double d10, d11,d12,d13,d14,d15,d16,d17,d18, d19;
       private double d20, d21,d22,d23,d24,d25,d26,d27,d28, d29;
       private double d30, d31,d32,d33,d34,d35,d36,d37,d38, d39;
       private double d40, d41,d42,d43,d44,d45,d46,d47,d48, d49;
       private double d50, d51,d52,d53,d54,d55,d56,d57,d58, d59;
       private double d60, d61,d62,d63,d64,d65,d66,d67,d68, d69;
       private double d70, d71,d72,d73,d74,d75,d76,d77,d78, d79;
       private double d80, d81,d82,d83,d84,d85,d86,d87,d88, d89;
       private double d90, d91,d92,d93,d94,d95,d96,d97,d98, d99;

//? Example has 100 fields




Why Here?:
This project is of interest to multiple members of the science working group and it will directly address requirements of those members - and others in the community - that results in tighter integration and reuse across the projects.
Diamond Light Source are a member and supporter of the Eclipse Foundation and currently see this as the best route to making an RCP project truly open source.
Licenses:
Eclipse Public License 1.0<https://projects.eclipse.org/content/eclipse-public-license-1.0>
Legal Issues:
The code exists and is licensed already as EPL. It might have some apache dependencies. The name rich beans is owned by: www.richbeans.com of India but we hope that the project will be known as 'Eclipse Rich Beans' and have packages org.eclipse.richbeans
Project Scheduling:

  *   Initial contribution Autumn 2015 - September or October ideally
  *   This project exists and once we have made it ready for release and passed the IP checking, it could be part of the Eclipse Release Train.

Future Work:
We plan to increase the auto-generation capability by using the metawidgets project more. Currently the UI generation is by statically generated classes at compile time and does not support bean graphs. Metawidgets are dynamic and support nesting and would work better with our widget set.  http://metawidget.org/
HIDEPEOPLE<https://projects.eclipse.org/proposals/eclipse-rich-beans>
Project Leads:
Matthew Gerring<https://projects.eclipse.org/users/matthew-gerring>
Committers:
Colin Palmer
James Mudd<https://projects.eclipse.org/users/jmuddjiu>
Baha El-Kassaby<https://projects.eclipse.org/users/baha-elkassaby-diamond-light-source>
Mentors:
Marcel Bruch<https://projects.eclipse.org/users/marcel-bruch-codetrails>
Jay Billings<https://projects.eclipse.org/users/jay-billings-oak-ridge-national-laboratory>
HIDESOURCE CODE<https://projects.eclipse.org/proposals/eclipse-rich-beans>
Initial Contribution:
Bundle names (copywright Diamond Light Source):
1.     org.eclipse.richbeans.api
2.     org.eclipse.richbeans.widgets
3.     org.eclipse.richbeans.reflection
4.     org.eclipse.richbeans.generator
5.     org.eclipse.richbeans.examples
6.     org.eclipse.richbeans.validation
7.     org.eclipse.richbeans.doe
What they do
1.      API no dependency interface plugin for services and other interfaces.
2.     Bunch of widgets
3.     Implementation of bean to UI and UI to bean service used to do data binding using reflection
4.     Automatic generation of user interface, might depend on metawidgets, http://metawidget.org/, EPL licensed code
5.     Examples of how to use
6.     Validation plugin for checking beans are legal and UI in legal state
7.     Design of expriments plugin for expanding beans that use DOE annotations
Source Repository Type:
GitHub<https://projects.eclipse.org/source-repository-type/github>
Source Repositories:
https://github.com/DawnScience/dawn-eclipse


From: science-iwg-bounces@xxxxxxxxxxx [mailto:science-iwg-bounces@xxxxxxxxxxx] On Behalf Of Jonah Graham
Sent: 28 July 2015 14:25
To: Science Industry Working Group
Subject: Re: [science-iwg] Eclipse Rich Beans proposal


Hi Matt,

I can't seem to access the document on the Eclipse website. Any help would be appreciated.

Thanks,
Jonah
Hello,

We (Diamond guys) are thinking of releasing the widget library we use for parts of DAWN and GDA as a separate eclipse project. It features automatic data binding using reflection and has scientific widgets for editing bean trees. We are currently adding on-the-fly generation by linking to a library called metawidgets. I have not submitted the proposal yet (maybe next week), but it is here:

https://projects.eclipse.org/proposals/eclipse-rich-beans

My question is what do you think? I suspect you will find this project more intuitive to understand than what DAWNSci does! I know this kind of thing already exists in Eclipse but it is an ecosystem after all and not a monoculture?

To put its point over positively; the API is, I think, simple to use, has better widgets for science and is fast for huge field lists. So even though it is a minnow in the world of models and data binding, it has some strong points.

Matt

And some screenshots from the examples (not very jazzy, there are some nicer widgets). These ones sync to JSON but obviously exporting the beans to a specific format is a detail the library is agnostic to:
UI

BEAN GRAPH

[cid:image001.png@01D0C55B.B85701B0]

public class ExampleBean {

       private List<ExampleItem> items;
//?

public class ExampleItem {

       public enum ItemChoice {
             XY, POLAR;

             public static Map<String, ItemChoice> names() {
                    final Map<String,ItemChoice> ret = new HashMap<String,ItemChoice>(2);
                    ret.put("X-Y Graph", XY);
                    ret.put("Polar",     POLAR);
                    return ret;
             }
       }

       private String     itemName;
       private ItemChoice choice = ItemChoice.XY;
       private Double x,y;
       private double r,theta;
//?

[cid:image004.jpg@01D0C55E.DDD7CED0]

public class ExampleBean {

       private List<ExampleItem> items;

//?

public class ExampleItem {

       private String     itemName;
       private ItemChoice choice = ItemChoice.XY;
       private Double x,y;
       private double r,theta;

       private List<OptionItem> options;

//?

public class OptionItem {

    private String optionName;
       private boolean showAxes, showTitle, showLegend, showData;
       private static int count = 0;

//?

[cid:image003.png@01D0C55D.2AEF9880]

So more than 200,000 fields are linked and editable with in speedy fashion!

public class ExampleBean {

       private List<ExampleItem> items;

//? Example has 2000 items


public class ExampleItem {

       private String     itemName;
       private ItemChoice choice = ItemChoice.XY;
       private Double x,y;
       private double r,theta;

       private double d0, d1,d2,d3,d4,d5,d6,d7,d8, d9;
       private double d10, d11,d12,d13,d14,d15,d16,d17,d18, d19;
       private double d20, d21,d22,d23,d24,d25,d26,d27,d28, d29;
       private double d30, d31,d32,d33,d34,d35,d36,d37,d38, d39;
       private double d40, d41,d42,d43,d44,d45,d46,d47,d48, d49;
       private double d50, d51,d52,d53,d54,d55,d56,d57,d58, d59;
       private double d60, d61,d62,d63,d64,d65,d66,d67,d68, d69;
       private double d70, d71,d72,d73,d74,d75,d76,d77,d78, d79;
       private double d80, d81,d82,d83,d84,d85,d86,d87,d88, d89;
       private double d90, d91,d92,d93,d94,d95,d96,d97,d98, d99;

//? Example has 100 fields








--

This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom


_______________________________________________
science-iwg mailing list
science-iwg@xxxxxxxxxxx<mailto:science-iwg@xxxxxxxxxxx>
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/science-iwg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dev.eclipse.org/mailman/private/science-iwg/attachments/20150728/f90da442/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image006.jpg
Type: image/jpeg
Size: 59969 bytes
Desc: image006.jpg
URL: <https://dev.eclipse.org/mailman/private/science-iwg/attachments/20150728/f90da442/attachment.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image010.png
Type: image/png
Size: 40133 bytes
Desc: image010.png
URL: <https://dev.eclipse.org/mailman/private/science-iwg/attachments/20150728/f90da442/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image011.png
Type: image/png
Size: 57363 bytes
Desc: image011.png
URL: <https://dev.eclipse.org/mailman/private/science-iwg/attachments/20150728/f90da442/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 48264 bytes
Desc: image001.jpg
URL: <https://dev.eclipse.org/mailman/private/science-iwg/attachments/20150728/f90da442/attachment-0001.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 73715 bytes
Desc: image002.jpg
URL: <https://dev.eclipse.org/mailman/private/science-iwg/attachments/20150728/f90da442/attachment-0002.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image003.jpg
Type: image/jpeg
Size: 71515 bytes
Desc: image003.jpg
URL: <https://dev.eclipse.org/mailman/private/science-iwg/attachments/20150728/f90da442/attachment-0003.jpg>

------------------------------

_______________________________________________
science-iwg mailing list
science-iwg@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/science-iwg

End of science-iwg Digest, Vol 30, Issue 26
*******************************************


Back to the top