Skip to main content

kirillcool's Blog

Releases, releases

Posted by kirillcool on April 14, 2010 at 2:10 PM EDT

It’s my great pleasure today to announce the availability of releases of the following projects:

Substance 6.0 main features include:

  • Support for multi-state animations
  • New look for text-based components
  • Custom component states

Click on the button below to launch a signed WebStart application that shows the available Substance features.

Trident 1.2 is a stabilization release and has a few new APIs.

You’re more than welcome to download the releases for Trident, Substance and relevant plugins.

Related Topics >>

Comments

Releases, releases

Hi,
I used earlier your SVG to Java2D -application, which was available at:
http://weblogs.java.net/blog/kirillcool/archive/2006/10/svg_and_java_ui_...
But it seems the application has been removed. Do you still have the app somewhere available?
BR,
Juho-Pekka

Releases, releases

It seems like there are no downloads for the Substance project. Can you provide a working link?

Releases, releases

Your project seems very interesting and i'd like to try substance. Unfortunately i can't get de jar because java-net is refusing to open the download directory!
Could you restore the link to get it.
Thanks

Where to get the demo source?

Dear Mr. Grouchnikov, the substance look and feel is the laf of my choice. Unfortunately, i'm not a very experienced Swing user yet. Because of the great demo application that shows use cases i'm interested in, i've searched it's sources, but i simply can't find them. Where can i get the sources? They'd be a great help for me learning how to use substance. Please help me. Best regards, David

installation of substance look and feel

i downloaded latest version of substance.But I dont know how to install .Please tell me how to install it and use. Please help me.Please. Thanks a lot

Start at the top of

Start at the top of https://substance.dev.java.net/learn.html

One more doubt

Thank you so much Sir.I have successfully installed Substance.jar and Trident .jar and as per your directions I have run the application. I pasted Substance.jar and trident.jar in C:/temp folder(windows platform).Now whenever I run the Walkthrough.class file in command prompt I have to give following command: java -cp .;C:/temp/substance.jar;C:/temp/trident.jar Walkthrough But I want to run the application by this command: java Walkthrough So please tell me where should I keep substance.jar and Trident.jar and what changes I have to make in the code? Thank you so much, Looking forward.

If you're using third-party

If you're using third-party jars, you need to add them to the classpath. This is not Substance-specific and applies to any third-party jars.

I am using the substance jar

I am using the substance jar of java.net itself which you provided.What I want is that if I make an application and run it with command prompt then I should run it by simply "java applicationname" without including the parameters for substance.jar.Is it possible by placing substance.jar in bin folder of jdk or is there any java code which could implicitly tell JVM the path of substance.jar while running? Thank you so much.

If i understand correctly,

If i understand correctly, the library works as expected when the jars are added to the classpath. If you're looking for a way to add third-party jars to some global system-wide location - that is not specific to Substance.

Substance 5.3 official release

Posted by kirillcool on September 28, 2009 at 1:22 PM EDT

I am extremely pleased today to announce the availability of the final release for version 5.3 of Substance look-and-feel (code-named Reykjavik). The release notes for version 5.3 contain the detailed information on the contents of this release which include the following:

Click on the button below to launch a signed WebStart application that shows the available Substance features.

The following sub-projects are also available:

You are more than welcome to take Substance 5.3 for a ride. Sample screenshots of Substance 5.3 in action:

Related Topics >>

Comments

nightstone

Hi. Tried the nightstone viewer (been looking everywhere for a svg file browser for local folders on my pc, and came upon your work. Looks great!) I tried launching it, but it failed. using java 6, windows seven 64bit two dialogue boxes requesting run permission, then the third dialogue saying: Unable to launch the application Exceptions: java.lang.NoClassDefFoundError: org/jvnet/flamingo/common/ProgressListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) at com.sun.javaws.Launcher.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: org.jvnet.flamingo.common.ProgressListener at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 27 more Hope this information is enough to help . . . Keep up the good work, I hope I get to use it (could use the .svn aspect also!) Sincerely, Craig

Animation blueprints for SWT

Posted by kirillcool on August 12, 2009 at 1:20 AM EDT

Over at Pushing Pixels i have ran the series on adding animations to enable rich interactivity expected from modern SWT applications. The code is part of the Granite project which aims to provide blueprints for animated SWT applications powered by the Trident animation library, and the series has covered the following:

  • Part 1 – adding simple animation behavior to such scenarios as component appearance (fade in) and window disposal (fade-out) using built in and custom class attributes and setters.
  • Part 2 – adding animated load progress indication while the application is loading data.
  • Part 3 – loading the album art matching the specific search string and asynchronously displaying the associated images.
  • Part 4 – scrolling the album covers showed in the container and adding animations to the scrolling.
  • Part 5 – complex transition scenarios.

How can you run this code locally?

  • Get the latest SVN snapshots of Trident and Granite
  • Add the following Eclipse libraries to the project: org.eclipse.core.jobs, org.eclipse.equinox.common, org.eclipse.osgi
  • The Onyx distribution contains the lib/amazon.jar. It has been created with the following steps:
  • Get an Amazon E-commerce key
  • Run the org.pushingpixels.granite.DemoApp class, passing your Amazon key as the only parameter to this class, adding the Amazon, Trident and Granite classes, as well as Eclipse jars to the classpath

If all went right, you should see the main application running and displaying Sarah McLachlan albums as in this video:

I hope you enjoyed this series. If you’re interested in adding rich animations to your SWT applications, you’re more than welcome to explore Trident and Granite and report any bugs and missing features in the project forums and mailing lists.

Related Topics >>

Trident 1.0 official release

Posted by kirillcool on July 15, 2009 at 1:07 AM EDT

I am thrilled today to announce the availability of the final release for version 1.0 of Trident animation library for Java applications (code-named Acumen).  Trident aims to simplify the development of rich animation effects in Java based UI applications, addressing both simple and complex scenarios – and you can read the available documentation in the project Wiki.

The current published API set follows the “simplicity before generality” approach. Trident is a continuation of the internal animation engine that has been part of the Substance look-and-feel for the last two years. Extracting it to a standalone library was accompanied by a significant overhaul of the API facets to:

  • Provide a shallow learning curve
  • Address real world use cases

It is very easy to start with Trident. To add animations to your application, simply create a timeline, configure it to change a value of some property and play it. From here, you can go progressively deeper towards the more powerful – and the more complex – Trident APIs:

At each level you get more control over the animations – as you get more comfortable with what Trident can do to address the animation requirements of your application.

During the development of this version i have created a number of simple and more advanced examples using Trident. These examples have driven the current shape of Trident APIs. The simple examples include animating the foreground color of a button, showing an indeterminate progress indication, emulating fireworks and Matrix rain. In addition, Amber and Onyx are more complicated applications that integrate animation scenarios into UIs that fetch and display information from the web-based backend services – such as Digg, Twitter and Amazon. These examples strive to be the blueprints for using Trident in Java applications.

If i had to choose three features that bring the most functionality to interested applications, those would be:

  • Timeline scenarios that allow creating progressively complex dependency graphs of timelines, runnables, swing workers and custom application actors
  • Support for threading rules of UI toolkits that frees the application code from creating convoluted nested inner classes and prevents it from deadlocking and freezing the UI
  • The extensibility layer that allows application to extend the existing core functionality to additional property classes and UI toolkits

Going forward, i intend to evolve Trident, and i already have a couple of post-1.0 features in the pipeline. The next major release of Substance will be rewritten to use Trident – further testing the published APIs for usage in real-world scenarios. In addition, the next major release of Flamingo ribbon will add Trident-based animations – where applicable.

Finally, no project is complete without the users trying the different features, pushing the existing APIs, reporting bugs and asking to support additional requirements. Subscribe to the mailing lists and let me know what is missing, and how the existing APIs can be improved. If you find a bug, report it in the issue tracker. If you want to take a look at the code, check out the SVN repository and subscribe to the "commits" mailing list.

Related Topics >>

Comments

Thanks for the amazing work Kirill, I'm testing trident for a few weeks now and all went well. I'll give you feedback when I'll have time to apply it to my pet project. Best regards /Paul

Trident animation library - overview and roadmap

Posted by kirillcool on June 26, 2009 at 1:13 PM EDT

Trident is an animation library for Java applications, and this week i’ve written about the concepts behind it and APIs available to interested applications:

What’s next? Version 1.0 (code-named Acumen) is right around the corner. Release candidate is scheduled for June 29, and the final release is scheduled for July 13.

Trident is a new library, and its APIs need to be tested in real-world scenarios. While i have a few small test applications that illustrate the specific API methods, as well as medium sized demos (Onyx and Amber), there is always room for improvement.

Going forward, i intend to evolve Trident, and i already have a couple of post-1.0 features in the pipeline. Trident has evolved from the internal animation layer of Substance look-and-feel, and the next major release of Substance will be rewritten to use Trident – further testing the published APIs for usage in real-world scenarios. In addition, the next major release of Flamingo ribbon will add Trident-based animations – where applicable.

Your input and feedback are always highly appreciated. Download the latest daily bits, and read the documentation. Subscribe to the mailing lists and let me know what is missing, and how the existing APIs can be improved. If you find a bug, report it in the issue tracker. If you want to take a look at the code, check out the SVN repository and subscribe to the “commits” mailing list.

Swing / SWT applications do not have to be boring. Trident aims to simplify the development of rich animation effects in Java based UI applications, addressing both simple and complex scenarios. But it can only be as good as the applications that are using it. So, read the documentation, download the sources / binaries, integrate it in your applications and let me know what you think.

Related Topics >>

Comments

Hi Kirill, I've been lurking around your work for some time and really want to thank you for all of your efforts. Thanks in no small part to your efforts, Swing remains a relevant and increasingly capable toolkit for java applications. After waiting 7 months based on unfulfilled promises from Sun regarding javafx, I regret not having spent that time learning your libraries. Javafx is a dead end for application development. It's time to get back into the Swing of true java.

Flamingo 4.1 official release

Posted by kirillcool on May 26, 2009 at 12:26 PM EDT

I am pleased today to announce the availability of the final release for version 4.1 of Flamingo component suite (code-named Guenivere). It is a stabilization release that adds a few minor features and fixes all known bugs.

Here is the list of minor features added in release 4.1:

  • Multi-row controls in ribbon bands
  • Rich tooltips for ribbon band expand buttons
  • Horizontal alignment for wrapped ribbon components
  • Internal tracking of disabled state of popup / action areas on command buttons for selecting the correct displayed icon
  • Tree breadcrumb adapter class is now abstract to enforce applications to provide the segment caption

To see the Flamingo ribbon component in action under core look-and-feels, run the following WebStart demo:

To see the Flamingo ribbon component in action under Substance look-and-feel, run the following WebStart demo:

If you want to test the ribbon in your applications, you would need the following (the last two only for applications running under Substance look-and-feel):

You are more than welcome to take Flamingo 4.1 for a ride and report any problems in the project mailing lists, forums or issue tracker.

Release 4.1 will be the base for the JavaOne technical session 4143 that will be held next Thursday, June 4th at 13:30 in Hall E 135. If you’re interested to hear about the ribbon and the Swing implementation, as well as in a few ribbon tricks that you might not be aware about, please drop by.

Comments

 hello  Kirill Grouchnikov I'me so iterested by ...

hello

http://weblogs.java.net/sites/all/themes/java_adaptive/images/dotted_hor...); ">Kirill Grouchnikov

I'me so iterested by ur project how could i download flamingo ?

<p>Hello</p> <p>I don't download flamingo, need ...

Hello

I don't download flamingo, need help.

&nbsp;hey Amigos ...! I couldn't download flamingo, Really ...

hey Amigos ...!

I couldn't download flamingo, Really need a help.

thnx

Vineet, Accelerators on command buttons are currently not supported. If this is required in your application, please continue the discussion on the project forums / mailing lists about an option to contribute this feature to the project. Thanks Kirill

thanks..I will do that...

Hi Kirill, Nice application you created. I am using Flamingo 4.1 and need your help. I have to set accelerators for the command buttons in the ribbon bands. But, I can't find any such function existing. Is there any such support provided by you jar? Please reply ASAP. Thanks in advance, Vineet

Substance 5.2 official release

Posted by kirillcool on May 26, 2009 at 12:22 PM EDT

I am thrilled today to announce the availability of the final release for version 5.2 of Substance look-and-feel (code-named Quebec). The release notes for version 5.2 contain the detailed information on the contents of this release which include the following:

Click on the button below to launch a signed WebStart application that shows the available Substance features.

The following sub-projects are also available as releases:

You are more than welcome to take Substance 5.2 for a ride and report any problems in the project mailing lists, forums or issue tracker.

Sample screenshots of Substance 5.2 in action:

Related Topics >>

Comments

Hi Kirill, great work again. It has bothered me for a long time, that your Look & Feel wasn't available for NetBeans anymore. That's one of the reasons, why I created a project ( NBTabbedPane) to get rid of the need to create custom UI Delegates. Here are some screenshots of NB with Substance + NBTabbedPane: http://eppleton.sharedhost.de/blog/?p=885 cheers --Toni

Animation blueprints for Swing

Posted by kirillcool on May 25, 2009 at 7:02 PM EDT

Over at Pushing Pixels i have ran the series on adding animations to enable rich interactivity expected from modern Swing applications. The code is part of the Onyx project which aims to provide blueprints for animated Swing applications powered by the Trident animation library, and the series has covered the following:

  • Part 1 - adding simple animation behavior to such scenarios as component appearance (fade in), rollovers and window disposal (fade-out) using built in and custom class attributes and setters.
  • Part 2 - adding animated load progress indication while the application is loading data.
  • Part 3 - loading the album art matching the specific search string and asynchronously displaying the associated images.
  • Part 4 - scrolling the album covers showed in the container and adding animations to the scrolling.
  • Part 5 - complex transition scenarios.

How can you run this code locally?

If all went right, you should see the main application running and displaying Sarah McLachlan albums as in this video:

I hope you enjoyed this series. If you’re interested in adding rich animations to your Swing applications, you’re more than welcome to explore Trident and Onyx and report any bugs and missing features in the project forums and mailing lists.

Related Topics >>

Comments

Gili, There are no Javadocs yet - the partial documentation (the library itself is work in progress) is in the project Wiki. To build Trident with Ant, you'll need the matching platform SWT jars in the classpath - i do not intend to bundle them with Trident. Thanks Kirill

Kirill, I tried building Trident using Ant but ran into a bunch of SWT-related compilation errors. It would be really nice to be able to look at the Trident Javadoc without having to try to figure out the build process. Gili

Thannksss Kirill !!!! What would happen to swing without you ?? really awesome !!! I will try to add trident to my projects !! :-)

Introducing Project Onyx - Animation Blueprints for Swing

Posted by kirillcool on May 15, 2009 at 3:40 PM EDT

Project Onyx aims to provide blueprints for adding animation to Swing applications using the Trident animation engine. Onyx is a Swing RIA that connects to Amazon E-commerce backend and shows a list of albums for a specific performer. It is a pure Swing / Java2D application with only two dependencies - Trident and the classes generated by the wsimport tool from the Amazon E-commerce WSDL.

Over the next few entries i’m going to show code snippets that illustrate how Trident can be used to add simple and complex animations to your Swing applications. The full code is in the SVN repository, and here are a few videos that show the different parts of Onyx in action:

Fading in the main Onyx window, rollover animations on the close button and fading out the main window on disposing:

Asynchronously connecting to Amazon to fetch and display the list of albums, with fading and looping load progress animation, and smooth album scrolling:

Showing bigger album art and scrollable track listing in a separate window when an album is selected, complete with a complex scenario of showing the art and switching between the albums:

Related Topics >>

Comments

great idea, we might have a look at this for our movie browser: http://code.google.com/p/movie-browser/

Google's Java editions

Posted by kirillcool on April 18, 2009 at 7:22 PM EDT

Following the announcement of Google App Engine for Java, it’s interesting to see how Sun and Google differ in their analysis of market trends. Traditionally, Sun has three main “versions” of Java:

  • Java Standard Edition (SE) for desktop applications
  • Java Enterprise Edition (EE) for server side
  • Java Mobile Edition (ME) for phones

With JavaFX, the new (and perhaps belatedly rediscovered) focus on client side market has three versions:

  • Desktop profile
  • Mobile profile
  • TV profile

with a common profile that aims to write an application once, and have it run on all three types of displays - and the history will tell how well that will be supported and used in practice.

What about Google? This is how i see it:

  • GWT is Java Web Edition (WE)
  • Android is Java Device Edition (DE)
  • App Engine is Java Cloud Edition (CE)

and no stated goal (at least yet) to provide a common edition for GWT and Android.

For comments, click through to Pushing Pixels.

Related Topics >>