You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@pivot.apache.org by JohnRodey <ti...@yahoo.com> on 2010/10/08 18:23:44 UTC

Some random thoughts/questions about future functionality

Hey all, I had some random thoughts...  I think some have already been
discussed to some degree.

1) Will it ever be possible to embed HTML/JavaScript plugins such as Google
Maps/Earth within a Pivot application?

2) What about Swing/Applet libraries, will it ever support those as an
embedded components?  In particular there is one called prefuse that is
pretty slick.  Might be worth looking at for ideas for new graphing
components in the future, check out vizster and the radial graph demos, a
few of my favorites. http://prefuse.org/gallery/

3) Just curious if there are any updates on when 2.0 will have an official
release?

Thanks!

-- 
View this message in context: http://apache-pivot-users.399431.n3.nabble.com/Some-random-thoughts-questions-about-future-functionality-tp1666277p1666277.html
Sent from the Apache Pivot - Users mailing list archive at Nabble.com.

Re: Some random thoughts/questions about future functionality

Posted by Sandro Martini <sa...@gmail.com>.
Hi John,

> Hey all, I had some random thoughts...  I think some have already been discussed to some degree.
new ideas are important, and always welcome :-)

> 1) Will it ever be possible to embed HTML/JavaScript plugins such as Google Maps/Earth within a Pivot application?
Heavyweight components are not embeddable in a Pivot
Applet/Application but Swing could at a certain degree (Greg could
explain to you this much better in detail than me), and for Javascript
the code must run in the Javascript version supported by the JVM ...
so I don't know, probably it's better is to try.
Some info (probably a little outdated) here:
http://mail-archives.apache.org/mod_mbox//pivot-user/201004.mbox/%3C4B837AEB-C7CB-4851-A371-3D86F5D4479B@mac.com%3E


> 2) What about Swing/Applet libraries, will it ever support those as an embedded components?  In particular there is one called prefuse that is pretty slick.  Might be worth looking at for ideas for new graphing components in the future, check out vizster and the radial graph demos, a few of my favorites. http://prefuse.org/gallery/
Prefuse seems interesting, the license is BSD so is compatible with
our (Apache License), but I see that their latest release is targeted
at Java 5 and is a beta, releases at 2007/10/21 so to me seems a
little outdated ... but I'm not against.

Maybe we could see something like this: http://www.processing.org/
(but not the language, only the part usable from Java, and maybe the
part not tied to OpenGL).

Or generally speaking maybe we could try to make some general facade
in Pivot, and implement providers for chosen frameworks (we, or let
others do it :-) ) ... but in this case it's always difficult to do
something really general, useful, and not-too-complex, due to
differences in external frameworks, so maybe we could start to think
at something like this, but for a future release, like 3.0 ...


> 3) Just curious if there are any updates on when 2.0 will have an official release?
Greg can tell you something more precise, but features should be
almost complete, only some refining should be done now (and fixing
bugs if found), so we are speaking of a little time.


Bye,
Sandro

Re: Some random thoughts/questions about future functionality

Posted by Greg Brown <gk...@mac.com>.
> 1) Will it ever be possible to embed HTML/JavaScript plugins such as Google
> Maps/Earth within a Pivot application?

That would be challenging. It would effectively require writing an HTML 4+ capable browser in Java. I don't think anyone has done it yet (for Swing, I mean), though I suppose it is possible.

> 2) What about Swing/Applet libraries, will it ever support those as an
> embedded components?  In particular there is one called prefuse that is
> pretty slick.  Might be worth looking at for ideas for new graphing
> components in the future, check out vizster and the radial graph demos, a
> few of my favorites. http://prefuse.org/gallery/

This is feasible, though not currently on the radar. I created a prototype a couple months back that supported embedding an arbitrary JComponent in a Pivot app. I got pretty far with it, but I had trouble getting the Pivot and Swing focus systems to work together, so I ultimately abandoned the effort.

However, it may be possible to write a Pivot wrapper for prefuse, like we did with JFreeChart (and prototyped with JGraph). These APIs are somewhat decoupled from the Swing API and rely mainly on Java2D. They simply include Swing components that allow them to be used in a Swing app - you may be able to do something similar with prefuse.

> 3) Just curious if there are any updates on when 2.0 will have an official
> release?

As Sandro said, it should be fairly soon. We're pretty much feature complete at this point. At the moment, we're trying to get 1.5.2 wrapped up (which will be the last release of the 1.x branch), and then we'll focus on finalizing 2.0.


Re: Some random thoughts/questions about future functionality

Posted by Greg Brown <gk...@mac.com>.
> - Amino is significantly smaller than JavaFX. It aims to be fast, easy to learn, and very, very lean; at the expense of backwards compatibility and features.
> 
> Check - Pivot's total JAR size is ~2MB, including debug info, and not all apps will require all JARs. Without debug info, the total size is ~1.5MB.

Forgot to mention that Pivot is also very easy to learn. Pivot's APIs were designed to be as intuitive and efficient as possible, and a comprehensive tutorial is available online:

http://pivot.apache.org/tutorials/

G


Re: Some random thoughts/questions about future functionality

Posted by Greg Brown <gk...@mac.com>.
> Hi Greg.  I still feel Amino has a lot to offer and plan to release it.

I'm sure it does, and I wish you the best of luck with it. However, I still think that a consolidation of effort would ultimately be more beneficial to the Java UI community as a whole.

> I also plan to investigate your JarBundler. I didn't know about that until just recently. It didn't come up in my research of Java exe tools. 

Unfortunately, we can't take credit for that.  :-)  JarBundler isn't part of Pivot, it's a separate project:

http://www.informagen.com/JarBundler/

It is a great way to package Pivot apps, though. Here's the link to the Windows .exe generator I mentioned (yet another separate project):

http://launch4j.sourceforge.net/

> Perhaps we need to start a sort of 'client side java interest group', now that Sun/Oracle is moving further and further away from it.

I think this makes a lot of sense. What did you have in mind?

Greg


Re: Some random thoughts/questions about future functionality

Posted by Greg Brown <gk...@mac.com>.
> I see that Josh is moving ahead with his Animo (Bedrock) toolkit. Looks quite minimal though. Here is a link about it I received today : http://leonardosketch.org/amino/

That's too bad. There's quite a lot of overlap between what Josh is doing and what we have done with Pivot - plenty of opportunities to collaborate:

- Uses an event bus instead of listeners on each component, enabling better separation of model and view

We actually considered this way back, but chose to use component-specific listeners for MVC and pub/sub at the app level. But it could certainly be done - Pivot provides an event bus API in the Core library (org.apache.pivot.util.MessageBus).

- A background task API to handle threading for you.

Sounds like org.apache.pivot.util.concurrent.Task.

- Mixes a retained mode scenegraph with immediate mode paint APIs so you can work at the abstraction level you prefer.

Pivot rendering is primarily based on Java2D (i.e. paint() calls), but retained mode drawing is also supported. In previous releases, the org.apache.pivot.wtk.media.drawing classes could be used for this; in Pivot 2.0, SVG (and possibly other APIs like ZVTM) can be used.

- There are no Look & Feel classes. All UI skinning is done directly with CSS 3, even the default L&F.

While Pivot does have "L&F" (aka Skin) classes, they are abstracted from the end user and accessible via styles. They are never directly referenced in code.

- If you use the (experimental) JOGL backend you can directly mix 2D graphics with OpenGL code.

I actually successfully prototyped this in Pivot a couple months back. However, I never committed it because it would have introduced a dependency on JOGL (which isn't included in the JDK). It would be trivial to add back in.

- All controls can be referenced by ID, similar to JavaScript libs, enabling further separation of concerns.

This can be done in Pivot via BXML IDs.

- Amino has a tool called AppBundler which generates Mac OSX .app bundles as well as JNLP builds. The user should never know that your app is written in Java, or any other language. They will just love your app.

There is an existing project called JarBundler that does this (though it is LGPL-licensed); the Launch4J project will generate .exe files for Windows users. You can see an example of a Pivot app packaged this way here:

http://ixnay.biz/deployment/deployment-example-osx.tar.gz
http://ixnay.biz/deployment/deployment-example-windows.zip

- Amino is BSD licensed and community developed, allowing you to do things you can’t do with the Oracle owned JavaFX, such as: subsetting, bundling with your application, embedding on a mobile platform, recompiling with GCJ or Kaffe, or forking it for your own uses.

Check (though Pivot is ASL 2.0 rather than BSD).

- Amino is focused expressly on desktop apps. JavaFX is focused web based and mobile applications, similar to Flex and Sliverlight.

That's not entirely accurate. Flex and Silverlight (as well as Pivot) all allow developers to build applications that target *either* the web or the desktop. Only targeting the desktop makes Amino more limited and therefore less appealing, IMO. Also, JavaFX mobile was dropped as of the 2.0 announcement - it seems that the focus of JavaFX 2.0 will also be the web and the desktop.

- Amino is significantly smaller than JavaFX. It aims to be fast, easy to learn, and very, very lean; at the expense of backwards compatibility and features.

Check - Pivot's total JAR size is ~2MB, including debug info, and not all apps will require all JARs. Without debug info, the total size is ~1.5MB.

- Amino is embeddable in Swing panels, so you can add just a little bit of Amino to your existing apps.

Check; see this example:

http://svn.apache.org/repos/asf/pivot/trunk/examples/src/org/apache/pivot/examples/swing/

- Event Bus: needs a new implementation. The current one is slow, not scaleable, and probably has memory leaks. See the wiki for details.

See the org.apache.pivot.util.MessageBus class discussed above.

- Scene Graph: the current scenegraph is minimal, just enough to get the controls to work. We need the rest of the shapes (path, oval, arc, lines, etc.) and transforms (rotate, shear) built and tested. See the wiki for details.

See the new SVG support mentioned earlier:

http://svn.apache.org/repos/asf/pivot/trunk/examples/src/org/apache/pivot/examples/svg/

- Maven support: I don’t use Maven but a lot of people do. It would be great to get Amino and it’s dependent libs built into a Maven repo.

Pivot doesn't use Maven either, but our release process generates Maven bundles for deployment via Sonatype.

- CSS parser: I’m currently using a new from scratch CSS 3 parser. It needs to be finished to support some missing properties, as well as refactored to be more maintainable.

Pivot could also use a CSS parser, though our JSON-based style syntax has historically worked quite well (and is very similar to how JSON is used to apply styles dynamically in HTML/JavaScript).

- Installers: the AppBundler currently supports JNLPs and Mac OSX .app bundles. We’d like it to support NSIS generated MSI bundles and Linux launch scripts, but we need developers from those platforms to work on them.

Since JarBundler already exists and works well, why not use it? Or better yet, try to get the author to release it under a compatible license so it can be included in the platform.

- More Controls: we have a fair number of controls, but a lot is still missing like menus, task panels, search fields, charts and more.

Pivot has all of these components and more.

G



Re: Some random thoughts/questions about future functionality

Posted by Superstring Media <su...@gmail.com>.
The way the SVGSalamander API could be wrapped by Pivot was smooth. It might be possible to do the same for other useful APIs like ZVTM. I'm sure it would also draw more people to Pivot.

I see that Josh is moving ahead with his Animo (Bedrock) toolkit. Looks quite minimal though. Here is a link about it I received today : http://leonardosketch.org/amino/

Ramping up to Pivot 2.0 it would also be good to prepare some website announcements to launch in the days following the release. Even on significant additions like SVGSalamander or something like ZVTM web announcements should always be made. Reviewers should also be contacted to writeup some promo whenever there is something to report, which is generally all the time. A steady and diverse stream of web announcements is the best way to have everyone beat a path to Pivot's door.

Thom


On 2010-10-08, at 6:38 PM, Greg Brown wrote:

> I didn't look at it all that closely, but ZVTM also seems like something that could potentially be wrapped by a "native" Pivot component, rather than trying to embed a Swing version in a Pivot app...
> 
> On Oct 8, 2010, at 12:49 PM, Superstring Media wrote:
> 
>> Another random but happy thought is the possibility of adding the impressive ZVTM/ZUIST API to Pivot, likely its the best ZUI out there. I see similar missions between ZVTM and Pivot however ZVTM concentrates on more or less one major scenegraph component. Looking at the documentation it looks like a friendly API that could empower Pivot in a specific way and also make Pivot relevant to a whole new target user ( the zoom people :-)
>> 
>> http://zvtm.sourceforge.net/
>> http://zvtm.sourceforge.net/zuist/
>> 
>> Thom
>> 
>> 
>> On 2010-10-08, at 11:23 AM, JohnRodey wrote:
>> 
>>> 
>>> Hey all, I had some random thoughts...  I think some have already been
>>> discussed to some degree.
>>> 
>>> 1) Will it ever be possible to embed HTML/JavaScript plugins such as Google
>>> Maps/Earth within a Pivot application?
>>> 
>>> 2) What about Swing/Applet libraries, will it ever support those as an
>>> embedded components?  In particular there is one called prefuse that is
>>> pretty slick.  Might be worth looking at for ideas for new graphing
>>> components in the future, check out vizster and the radial graph demos, a
>>> few of my favorites. http://prefuse.org/gallery/
>>> 
>>> 3) Just curious if there are any updates on when 2.0 will have an official
>>> release?
>>> 
>>> Thanks!
>>> 
>>> -- 
>>> View this message in context: http://apache-pivot-users.399431.n3.nabble.com/Some-random-thoughts-questions-about-future-functionality-tp1666277p1666277.html
>>> Sent from the Apache Pivot - Users mailing list archive at Nabble.com.
>> 
> 


Re: Some random thoughts/questions about future functionality

Posted by Greg Brown <gk...@mac.com>.
I didn't look at it all that closely, but ZVTM also seems like something that could potentially be wrapped by a "native" Pivot component, rather than trying to embed a Swing version in a Pivot app...

On Oct 8, 2010, at 12:49 PM, Superstring Media wrote:

> Another random but happy thought is the possibility of adding the impressive ZVTM/ZUIST API to Pivot, likely its the best ZUI out there. I see similar missions between ZVTM and Pivot however ZVTM concentrates on more or less one major scenegraph component. Looking at the documentation it looks like a friendly API that could empower Pivot in a specific way and also make Pivot relevant to a whole new target user ( the zoom people :-)
> 
> http://zvtm.sourceforge.net/
> http://zvtm.sourceforge.net/zuist/
> 
> Thom
> 
> 
> On 2010-10-08, at 11:23 AM, JohnRodey wrote:
> 
>> 
>> Hey all, I had some random thoughts...  I think some have already been
>> discussed to some degree.
>> 
>> 1) Will it ever be possible to embed HTML/JavaScript plugins such as Google
>> Maps/Earth within a Pivot application?
>> 
>> 2) What about Swing/Applet libraries, will it ever support those as an
>> embedded components?  In particular there is one called prefuse that is
>> pretty slick.  Might be worth looking at for ideas for new graphing
>> components in the future, check out vizster and the radial graph demos, a
>> few of my favorites. http://prefuse.org/gallery/
>> 
>> 3) Just curious if there are any updates on when 2.0 will have an official
>> release?
>> 
>> Thanks!
>> 
>> -- 
>> View this message in context: http://apache-pivot-users.399431.n3.nabble.com/Some-random-thoughts-questions-about-future-functionality-tp1666277p1666277.html
>> Sent from the Apache Pivot - Users mailing list archive at Nabble.com.
> 


Re: Some random thoughts/questions about future functionality

Posted by Superstring Media <su...@gmail.com>.
Another random but happy thought is the possibility of adding the impressive ZVTM/ZUIST API to Pivot, likely its the best ZUI out there. I see similar missions between ZVTM and Pivot however ZVTM concentrates on more or less one major scenegraph component. Looking at the documentation it looks like a friendly API that could empower Pivot in a specific way and also make Pivot relevant to a whole new target user ( the zoom people :-)

http://zvtm.sourceforge.net/
http://zvtm.sourceforge.net/zuist/

Thom


On 2010-10-08, at 11:23 AM, JohnRodey wrote:

> 
> Hey all, I had some random thoughts...  I think some have already been
> discussed to some degree.
> 
> 1) Will it ever be possible to embed HTML/JavaScript plugins such as Google
> Maps/Earth within a Pivot application?
> 
> 2) What about Swing/Applet libraries, will it ever support those as an
> embedded components?  In particular there is one called prefuse that is
> pretty slick.  Might be worth looking at for ideas for new graphing
> components in the future, check out vizster and the radial graph demos, a
> few of my favorites. http://prefuse.org/gallery/
> 
> 3) Just curious if there are any updates on when 2.0 will have an official
> release?
> 
> Thanks!
> 
> -- 
> View this message in context: http://apache-pivot-users.399431.n3.nabble.com/Some-random-thoughts-questions-about-future-functionality-tp1666277p1666277.html
> Sent from the Apache Pivot - Users mailing list archive at Nabble.com.