Victory for India

Well… In addition to India’s 2011 Cricket World Cup victory, I was inspired by victory of 2011 Anti-Corruption Movement lead by Anna Hazare

 
Anna Hazare

 
Corruption is the core issue that we face today. I have to admit, I was very cynical in my view towards “fighting corruption”. Looking at the series of scams we had, I never thought anyone can put an end to this. But things changed when I saw this movement and the result. I really appreciate all those who has joined the movement for their courage and determination.

It was very interesting to see how some politicians reacted to this. Anyway that was on expected lines, no surprises. I don’t have to name them. You know it… I was also inspired by the way the younger generation responded to the whole movement. Yes, we too can bring the change. There is still some ray of hope!

Hmm… Its also interesting to note that, there are still some “intellectuals” who “tries very hard” to use their analytical and statistical skills to view each and everything that happens on earth. Cool! Well? If you haven’t watched CNN-IBN The Last Word: Anna Hazare fast and the Media, please do so.

There were three “intellectuals”, other than Anupam Kher. I was amazed by their intelligence (or lack of it)… May be they never had to visit the local government offices and hence clueless about the facts of life… Or may be they are trying very hard to look at things from different perspective… trying to stay away from “norms” and hence everything looks “abnormal”…

What?! Did you mean – Abnormal Psychology? :)

What ever… I don’t care, as long as it helps to end corruption… Well done India! :)
This is just a beginning…

Its almost a year since my last post… A bit busy with other tasks…
Btw, I came across this interesting post “A Year After: The People”:)

JavaFX – Rotate Chart Axis Label

It will be difficult to fit in long labels when they are horizontal. Labels will overlap. So it may be nice to rotate the label by small angle so as to fit long text. We may do this by customizing CategoryAxis. As of now it depends on some internal implementation, but it will be nice to have this feature as part of public API

For Applet mode, click on above image. For standalone mode

Try it out and let me know feedback

JavaFX – My Wish List

Independent.. Unplugged.. No “Corporate” Strings Attached..
Just thought of putting down my wish list..

  • Offline Deployment: Users must be able to deploy and execute JavaFX applications in various mode without depending on dl.javafx.com. Yes, with current deployment its much easier to handle deployment and auto-update of runtime (users just need to install JRE). But this is real blocker for Enterprise adoption of JavaFX. In addition to that customers may have some apprehensions related to availability of runtime, even though there are no issues.
  • Better Deployment: Deployment using dtfx.js is fine. But there is room for improvement. This script is a bit heavy. It can be related to numerous checks such as platform, browser, JRE-version etc. May be some of these checks can be moved to server-side (based on user-agent header?) or some option can be provided to disable some of those checks (especially related to JRE-Version). Also a simplified alternative (without dependency on JavaScript) will be of use.
  • WebKit for JavaFX: Most of web services provide HTML content, many of authentication mechanism also needs browser support. It will be great if a JavaFX WebKit component is added.
  • Lazy Loading: In addition to JDK 7 feature – Project Jigsaw, deployment APIs can be provided which will help to differ download and initialization of different features of application.
  • Prism Toolkit: Yes, This is work in progress. Waiting for this to be default Toolkit…
  • Mobile Runtime: As of now mobile runtime is made available only for Windows-Mobile platform. For wider adoption, runtime have to be made available on other platforms such as Android.
  • Better Samples / Demos: Official JavaFX samples was suitable for introducing the new script and basic platform features. Now the platform has matured. Hence we need to have better samples / demos which reflect complex use-cases. Its already under progress in oracle mix forum. We can also include some “best practices” guide. This is really important…

Things like more controls are not included in my list. The platform provides stable framework for controls. Now it should be straight forward to include more controls. So this is not really an issue. More controls will be added soon. Yes we need more documentation on controls framework and CSS.. Hope I didn’t miss anything.. Hope my wish will be fulfilled soon…

JavaFX[1.3] – Power of CSS

There was a question related to setting of background color for TreeView. Yes we can do lot of customization of Controls using CSS. It may be a bit difficult at this point of time due to lack of proper documentation. But you can start playing with CSS using StyleEditor sample.

Below samples shows ListView and TreeView customized using javafx.css file.
Thanks to Jasper Potts for help

For Applet mode, click on above image. For standalone mode

Try it out and let me know feedback
It will be much much easier once the official documentation is in place..

Out of Sun[shine]

Well… This is not about JavaFX (for a change) …

I moved out of Sun MicrosystemsMy Dream Company. Culmination of a decade long association. It was very very difficult decision to make, but after weighing so many different options, have decided to move on.. Interestingly the decision was not influenced by take-over or technology.. I still like the work, believe in the technology and will continue to be strong proponent of Java and JavaFX…

Looked at the cubicle and office for one last time (as employee) and returned my Sun badge.. That definitely was one of the sad moment of my life.. Well.. Life moves on..

OK! enough of personal stuff.. Now get back to JavaFX!

JavaFX [1.3] – TableView (?)

Yes! TableView or Data-Grid is really important control and must be included in JavaFX. If you are really in hurry and can use JavaFX 1.2, you can use XTableView from JFXtras. They are also working on JavaFX 1.3 complaint JFXtras 0.7. If you want it to be part of official JavaFX version, put more pressure on Jonathan Giles

If both these strategies failed, you can still put together TableView using a group of ListView. All foundation for implementing a scalable TableView is already in place based on Cell API.



For Applet mode, click on above image
For standalone mode

Mean while you can use above TableView implementation. View is constructed using a set of ListView. The data model is direct copy of Swing. So didn’t really put any effort for implementing this…

Try it out and let me know feedback.. Please let Jonathan Giles know all your requirements on TableView, so that it will be complete and will address all your requirements when its released

JavaFX [1.3] – TreeView

JavaFX 1.3 has TreeView as preview control. Here I’ll demonstrate how to use it to implement a File Browser. For this, we need to implement a custom TreeView.cellFactory which will return a TreeCell instance (View) and provide an implementation for TreeItem (Model). TreeItem.createChildren is implemented so as to add more and more items, as and when user expands the nodes (Drive/Directory).

For Applet mode, click on above image

For standalone mode

Try all preview controls and give your valuable feedback and file RFEs/Bugs in JavaFX – JIRA

JavaFX + Facebook

One of my previous post discussed about OAuth based authentication for Twitter, LinkedIn and Yahoo. Here I’ll discuss about authentication and usage of Facebook. It also provides OAuth based authentication, but the flow and usage is slightly different. Please refer to Desktop Application Authentication for more information.

For new application, please ensure that you register your application with Facebook. Specify Connect URL as base URL of deployed applet. Note down Application ID which will be used as client_id. Using client_id and Applet URL we can create the authorization URL as shown below.

Authentication Steps:

  • Click on above link and login to Facebook
  • Authorize JavaFX Sample application to access your Facebook profile
  • Page will be automatically redirected to the JavaFX Applet page
  • Extract the access_token parameter from URL
  • Pass access_token to JavaFX Applet as argument
  • Use Facebook Graph API to access all rest of information

Please refer to JavaFXFacebook.html for more information related to extraction and passing of access_token and client_id to JavaFX Applet. The view is implemented using ListView. Please refer to New to JavaFX 1.3: Cells for usage on ListView + ListCell APIs.

Update: There was some confusion due to additional steps related to “redirection of url to applet”. Yes, Twitter, LinkedIn and Yahoo didn’t have this concept. The difference is, there user needs to copy the access_token numbers from the page and paste it in application. In case of Facebook, due to url-redirection, the access_token can be automatically passed to application as argument. So user don’t have to do any copy-paste.

Try it out and let me know feedback

JavaFX [1.3] – Save As Image

JavaFX – Save As Image code updated to be compatible with JavaFX 1.3
Please refer to JavaFX13Utils.fx for more information. You will need to update only if you are using internal APIs as mentioned in this forum thread.

For Applet mode, click on above image

For standalone mode

Try it out and let me know feedback

JavaFX + OAuth

As usual will start off with Wikipedia – OAuth (Open Authorization) – is an open standard that allows users to share their private resources (e.g. photos, videos, contact lists) stored on one site with another site without having to hand out their username and password. With more and more services moving to OAuth model, I think we need to try to have a generic implementation. Here is an attempt…

I prefer not to duplicate all those details available in various resources, so suggest to read few articles if you are not familiar with concepts of OAuth. Yahoo has a very detailed article outlining the flow of OAuth authorization or Beginner’s Guide to OAuth from Hueniverse. Please refer to same for more info..

You can try out yourself with demo below. You need to get consumer-key and consumer-secret from respective service providers – Twitter, LinkedIn or Yahoo


To launch click on above image or

First enter oauth_consumer_key and oauth_secret_key, click “Request Token” button. If key is proper, you will receive a message in log with a URL. Copy and paste that URL in browser and follow the instructions. Once you grant access to your application, it will return a number. Copy the number and paste it as oauth_verifier. Now click on “Access Token” button. It will return you oauth_token and oauth_token_secret which can be used for all subsequent communication.

Yes its a bit difficult to understand the overall flow and implementation. I have tried my best to simplify it. The API may be simplified a bit more. I have signed up for contributing to JFXtras long time back, but haven’t done anything yet. My objective was to pull in the various parsers that are used in different samples and create a library. I think all these can be incorporated into that…

Usage:


def oauthAPI = OAuthAPI.getInstance(
    <Service-Provider>, 
    <oauth_consumer_key>,
    <oauth_consumer_secret>
);

// Request Token Callback
oauthAPI.onRequestToken = function(response:String: Void {

}

// Access Token Callback
oauthAPI.onAccessToken = function(response:String: Void {

}

// Request Token
oauthAPI.requestToken();

// Access Token
oauthAPI.accessToken(<oauth_verifier>);
 

Refer to LinkedInAPI.fx to get an idea on how we can extend the implementation to have fulll fledged support.

Please try it out and let me know your suggestions and feedback..

Follow

Get every new post delivered to your Inbox.

Join 41 other followers