GWT meets  Flex:  Java API  for Flex

Hello people,
I m  somedays away to release the  version 2.1 of gwt4air. gwt4air is an open source project  based on  gwt (http://code.google.com/webtoolkit/)  and provides a Java API to different platform where Java is not the primary language.
Version 2.0 added among other features  support for Adobe AIR, Alive PDF, Pure PDF, Aswing and other GWT based  UI libraries like  EXT-GWT
With version 2.1  i added support for Flex(AIR and Browser). The goal of this approach is to make it easy for Java Developers to switch  to Flex be leveraging  a swing like API. But also to  present an alternative to the classical Flex developement. The overall idea behind this is described here:
http://code.google.com/p/gwt4air/wiki/Beginn
A demo application ca be found here: http://gwt4air.appspot.com/
The application contains around 100 demos with source code illustrating the use of the api.
I ve tried to keep the API similar to the AS3 api  so one could easely  switch from AS3 to Java and vice versa
Note that this  flex applicaton is entirely written in Java using gwt4air. No AS3 no MXML.
The application is still in alpha stage so please expect some errors.
The project home is located at:
http://code.google.com/p/gwt4air/
I m looking forward to hear what you think about this idea. Any inputs (good or bad)  is really welcome
Help me make this an even better tool.
It s about time that  Flex rocks the GWT world
cheers,
Alain

It looks like those genius @google are also thinking about a Java(GWT) API for Flash .
http://www.youtube.com/watch?v=F_sbusEUz5w&t=1718
Glad to see  that i m not a fool
Or alteast not the only fool that believe  combining  Java and Flash/Flex is a potent mix.

Similar Messages

  • Java API for Adobe Flex(AIR and Browser)

    Hello Community,
    Sometime ago i started the project located at: : http://code.google.com/p/gwt4air/ , wich primary goal was to bring another approach on writing AIR application by providing a Java API for the AIR API. On top of that i added support for PDF and Excel generation using Java.
    I m glad to announce that  the project  will now add support for the Flex Framework
    I wrote a post about it on the main page.
    The Idea behind it is to give Java Developers a more simple way to write Flex Application by leaveraing a swing like API.
    I hope this project will be a good alternative to the MXML+ ActionScript approach and looking for people willing to join the project.
    Regards,
    Alain

    Good question, I'd like to know this myself. 4.5 has a huge number of changes since 4.0.

  • 'Public' Flex Java API licensing

    Hi all,
    I would like to use the MessageBroker and AsyncMessage classes from Flex Java API to publish messages to a Flex destination from Java classes.
    The library with this API comes in the LiveCycle Data Services release but when i look at this API, it says clear is 'Public'.
    How public is it? Can i use those classes freely for my production application? Is there any license restriction? Same license as for Live Cycle Services?
    I need to know to decide what design i will use to connect or Flex client with our java server, so is really urgent.
    Thanks,
    Dani.

    Looks like things have changed a bit since last week when I posted.
    With the announcement yesterday of BlazeDS (scheduled for release 2008), it seems the libraries mentioned will be available under the LGPL v3, so I believe you may be able to redistribute them (unmodified and probably as a separate installer/archive) under the terms of the LGPL.
    http://labs.adobe.com/technologies/blazeds/
    It sounds like there will be some features not included in the OSS version of Data Services, but from reading the FAQ it seems that the messaging API you mentioned will be included in the LGPL licenced version.

  • Java API for running entire ".sql" files on a remote DB ( mySQL or Oracle)?

    Hi,
    Would anyone happen to know if there's a java API for executing entire ".sql" files (containing several different SQL commands), on a remote database server ?
    It's enough if the API works with MySQL and/or Oracle.
    Just to demonstrate what i'm looking for:
    Suppose you've created sql file "c:/test.sql" with several script lines:
    -- test.sql:
    insert into TABLE1 values(3,3);
    insert into TABLE1 values(5,5);
    create table TABLE2 (name VARCHER) ENGINE innoDB; -- MYSQL specific
    Then the java API should look something like:
    // Dummy java code:
    String driver="com.mysql.jdbc.Driver";
    String url= "jdbc:mysql://localhost:3306/myDb";
    SomeAPI.executeScriptFile( "c:/test.sql", driver, url);
    Thanks.

    No such a API, but it's easy to parse all sqls in a file, then run those command:
    For instance:
    import java.sql.*;
    import java.util.Properties;
    /* A demo show how to load some sql statements. */
    public class testSQL {
    private final static Object[] getSQLStatements(java.util.Vector v) {
    Object[] statements = new Object[v.size()];
    Object temp;
    for (int i = 0; i < v.size(); i++) {
    temp = v.elementAt(i);
    if (temp instanceof java.util.Vector)
    statements[i] = getSQLStatements( (java.util.Vector) temp);
    else
    statements[i] = temp;
    return statements;
    public final static Object[] getSQLStatements(String sqlFile) throws java.
    io.IOException {
    java.util.Vector v = new java.util.Vector(1000);
    try {
    java.io.BufferedReader br = new java.io.BufferedReader(new java.io.
    FileReader(sqlFile));
    java.util.Vector batchs = new java.util.Vector(10);
    String temp;
    while ( (temp = br.readLine()) != null) {
    temp = temp.trim();
    if (temp.length() == 0)
    continue;
    switch (temp.charAt(0)) {
    case '*':
    case '"':
    case '\'':
    // System.out.println(temp);
    break; //Ignore any line which begin with the above character
    case '#': //Used to begin a new sql statement
    if (batchs.size() > 0) {
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    break;
    case 'S':
    case 's':
    case '?':
    if (batchs.size() > 0) {
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    v.addElement(temp);
    break;
    case '!': //Use it to get a large number of simple update statements
    if (batchs.size() > 0) {
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    String part1 = temp.substring(1);
    String part2 = br.readLine();
    for (int i = -2890; i < 1388; i += 39)
    batchs.addElement(part1 + i + part2);
    for (int i = 1890; i < 2388; i += 53) {
    batchs.addElement(part1 + i + part2);
    batchs.addElement(part1 + i + part2);
    for (int i = 4320; i > 4268; i--) {
    batchs.addElement(part1 + i + part2);
    batchs.addElement(part1 + i + part2);
    for (int i = 9389; i > 7388; i -= 83)
    batchs.addElement(part1 + i + part2);
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    break;
    default:
    batchs.addElement(temp);
    break;
    if (batchs.size() > 0) {
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    br.close();
    br = null;
    catch (java.io.FileNotFoundException fnfe) {
    v.addElement(sqlFile); //sqlFile is a sql command, not a file Name
    Object[] statements = new Object[v.size()];
    for (int i = 0; i < v.size(); i++)
    statements[i] = v.elementAt(i);
    return statements;
    public static void main(String argv[]) {
    try {
    String url;
    Object[] statements;
    switch (argv.length) {
    case 0: //Use it for the simplest test
    case 1:
    url = "jdbc:dbf:/.";
    if (argv.length == 0) {
    statements = new String[1];
    statements[0] = "select * from test";
    else
    statements = argv;
    break;
    case 2:
    url = argv[0];
    statements = getSQLStatements(argv[1]);
    break;
    default:
    throw new Exception(
    "Syntax Error: java testSQL url sqlfile");
    Class.forName("com.hxtt.sql.dbf.DBFDriver").newInstance();
    //Please see Connecting to the Database section of Chapter 2. Installation in Development Document
    Properties properties = new Properties();
    Connection con = DriverManager.getConnection(url, properties);
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
    //Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    // stmt.setMaxRows(0);
    stmt.setFetchSize(10);
    final boolean serializeFlag = false;//A test switch to serialize/deserialize the resultSet
    ResultSet rs;
    for (int i = 0; i < statements.length; i++) {
    if (statements[i] instanceof java.lang.String) {
    String temp = (java.lang.String) statements;
    switch (temp.charAt(0)) {
    case 'S':
    case 's':
    case '?':
    System.out.println(temp);
    rs = stmt.executeQuery(temp);
    if (serializeFlag) {
    // serialize the resultSet
    try {
    java.io.FileOutputStream fileOutputStream = new
    java.io.FileOutputStream("testrs.tmp");
    java.io.ObjectOutputStream
    objectOutputStream = new java.io.
    ObjectOutputStream(fileOutputStream);
    objectOutputStream.writeObject(rs);
    objectOutputStream.flush();
    objectOutputStream.close();
    fileOutputStream.close();
    catch (Exception e) {
    System.out.println(e);
    e.printStackTrace();
    System.exit(1);
    rs.close(); //Let the CONCUR_UPDATABLE resultSet release its open files at once.
    rs = null;
    // deserialize the resultSet
    try {
    java.io.FileInputStream fileInputStream = new
    java.io.FileInputStream("testrs.tmp");
    java.io.ObjectInputStream objectInputStream = new
    java.io.ObjectInputStream(
    fileInputStream);
    rs = (ResultSet) objectInputStream.
    readObject();
    objectInputStream.close();
    fileInputStream.close();
    catch (Exception e) {
    System.out.println(e);
    e.printStackTrace();
    System.exit(1);
    ResultSetMetaData resultSetMetaData = rs.
    getMetaData();
    int iNumCols = resultSetMetaData.getColumnCount();
    for (int j = 1; j <= iNumCols; j++) {
    // System.out.println(resultSetMetaData.getColumnName(j));
    /* System.out.println(resultSetMetaData.getColumnType(j));
    System.out.println(resultSetMetaData.getColumnDisplaySize(j));
    System.out.println(resultSetMetaData.getPrecision(j));
    System.out.println(resultSetMetaData.getScale(j));
    System.out.println(resultSetMetaData.
    getColumnLabel(j)
    + " " +
    resultSetMetaData.getColumnTypeName(j));
    Object colval;
    rs.beforeFirst();
    long ncount = 0;
    while (rs.next()) {
    // System.out.print(rs.rowDeleted()+" ");
    ncount++;
    for (int j = 1; j <= iNumCols; j++) {
    colval = rs.getObject(j);
    System.out.print(colval + " ");
    System.out.println();
    rs.close(); //Let the resultSet release its open tables at once.
    rs = null;
    System.out.println(
    "The total row number of resultset: " + ncount);
    System.out.println();
    break;
    default:
    int updateCount = stmt.executeUpdate(temp);
    System.out.println(temp + " : " + updateCount);
    System.out.println();
    else if (statements[i] instanceof java.lang.Object[]) {
    int[] updateCounts;
    Object[] temp = (java.lang.Object[]) statements[i];
    try {
    for (int j = 0; j < temp.length; j++){
    System.out.println( temp[j]);
    stmt.addBatch( (java.lang.String) temp[j]);
    updateCounts = stmt.executeBatch();
    for (int j = 0; j < temp.length; j++)
    System.out.println((j+1)+":"+temp[j]);
    for (int j = 0; j < updateCounts.length; j++)
    System.out.println((j+1)+":" +updateCounts[j]);
    catch (java.sql.BatchUpdateException e) {
    updateCounts = e.getUpdateCounts();
    for (int j = 0; j < updateCounts.length; j++)
    System.out.println((j+1)+":"+updateCounts[j]);
    java.sql.SQLException sqle = e;
    do {
    System.out.println(sqle.getMessage());
    System.out.println("Error Code:" +
    sqle.getErrorCode());
    System.out.println("SQL State:" + sqle.getSQLState());
    sqle.printStackTrace();
    while ( (sqle = sqle.getNextException()) != null);
    catch (java.sql.SQLException sqle) {
    do {
    System.out.println(sqle.getMessage());
    System.out.println("Error Code:" +
    sqle.getErrorCode());
    System.out.println("SQL State:" + sqle.getSQLState());
    sqle.printStackTrace();
    while ( (sqle = sqle.getNextException()) != null);
    stmt.clearBatch();
    System.out.println();
    stmt.close();
    con.close();
    catch (SQLException sqle) {
    do {
    System.out.println(sqle.getMessage());
    System.out.println("Error Code:" + sqle.getErrorCode());
    System.out.println("SQL State:" + sqle.getSQLState());
    sqle.printStackTrace();
    while ( (sqle = sqle.getNextException()) != null);
    catch (Exception e) {
    System.out.println(e.getMessage());
    e.printStackTrace();

  • Image not displayed in pdf generated using Java API for Forms service

    Hi,
    I am creating a pdf document using Java API for Forms Service.
    I am able to generate the pdf but the images are not visible in the generated pdf.
    The image relative path is coming in the xml as defined below. The images are stored dynamically in the Livecycle repository each time a request is fired with unique name before the xml is generated.
    <imageURI xfa:contentType="image/png" href="../Images/logo.png"></imageURI>
    Not sure if I need to specify specify specific URI values that are required to render a form with image.
    The same thing is working when I generate pdf document using Java API for Output Service.
    As, I need to generate interactive form, I have to use Forms service to generate pdfs.
    Any help will be highly appreciated.
    Thanks.

    Below is the code snippet:
                //Create a FormsServiceClient object
                FormsServiceClient formsClient = new FormsServiceClient(myFactory);
                //Specify URI values that are required to render a form
                URLSpec uriValues = new URLSpec();
                                  // Template location contains the whole rpository path for the form
                uriValues.setContentRootURI(templateLocation);
               // The base URL where form resources such as images and scripts are located.  Whole Image path is passed in BaseUrl in the http format.
                      String baseLocation = repositoryPath.concat(serviceName).concat(imagesPath);   
                                  uriValues.setBaseURL(baseLocation);                                        
                // Set run-time options using a PDFFormRenderSpec instance
                PDFFormRenderSpec pdfFormRenderSpec = new PDFFormRenderSpec();
                pdfFormRenderSpec.setCacheEnabled(new Boolean(true));           
                pdfFormRenderSpec.setAcrobatVersion(com.adobe.livecycle.formsservice.client.AcrobatVersio n.Acrobat_8);
                                  //Invoke the renderPDFForm method and write the
                //results to a client web browser
                String tempTemplateName =templateName;
                FormsResult formOut = formsClient.renderPDFForm(tempTemplateName,
                                              inXMDataTransformed,pdfFormRenderSpec,uriValues,null);
                //Create a Document object that stores form data
                Document outputDocument = formOut.getOutputContent();
                InputStream inputStream = outputDocument.getInputStream();

  • EWS JAVA API for availability is giving only 10 suggested times in a particular day

    I'm using EWS JAVA API for seeing the availability of contacts who had shared their calender with me. Here in the suggested timings, I can able to see only 10 suggested timings even though there can be more than 10 suggested slots. 
    I would like to check is there any limit  on suggested times ? 
    API is also giving quality of timing like "Good", "Excellent" on what basis this is decided ?

    You can specify the maximum number of suggestions per day using the MaximumResultsByDay parameter (http://msdn.microsoft.com/en-us/library/office/aa565641(v=exchg.150).aspx).
    The quality is determined based on how many attendees are available and is influenced by the GoodThreshold:
    http://msdn.microsoft.com/en-us/library/office/aa563485(v=exchg.150).aspx.

  • How to use java api for function activity in embed oracle workflow?

    because i can't install standalone oracle workflow successfully.
    pls tell me how to use java api for function activity in embed oracle workflow?
    are there some patch or pulg-in package?
    ths a lot...........

    The Java Function Activity Agent is not certified for Oracle Workflow embedded in Oracle Applications. Installing standalone workflow should be a lot easier than what you have found, although it looks like you did hit a Pentium 4 issue with the Oracle Universal Installer. I suggest you contact Oracle Support or Oracle Consulting for assistance.
    because i can't install standalone oracle workflow successfully.
    pls tell me how to use java api for function activity in embed oracle workflow?
    are there some patch or pulg-in package?
    ths a lot...........

  • Java API for Webchannel 7.0

    Hello,
    for the ISA 4.0 we had the API of the java classes. Is there something like this for CRM 7.0.
    Best regards,
    Nils

    Hi Nils,
    Follow below steps.
    Yes you can get it from service market place.
    Follow below steps.
    1) Log in to service market place.
    2) Click on "Download" Tab
    3) On Left side click on SAP Software Distribution Center -->Download > Support Packages and Patches> Entry By Application Group.
    4) On Right side. Support Packages and Patches>SAP Application Components> SAP CRM> SAP CRM 2007> Entry by Component--> CRM Application Server Java
    5) Click on "SAP SHARED JAVA COMPONENTS"
    6) From Below screen click on "Download" tab and Download "SAPSHRJAVxx_x-xxxxxxxx.SCA" file.
    7) Open "SAPSHRJAVxx_x-xxxxxxxx.SCA" file by "WINRAR" and unzip on your local laptop.
    8) After unzip you will get several zip files under folder "BUILDARCHIVES"
    9) Find "crmshrjavadoc" file inside folder "BUILDARCHIVES"
    10) Unzip "crmshrjavadoc" file and you will get "javadoc.ppa" file
    11) Rename "Javadoc.ppa" file to "Javadoc.zip"
    12) Unzip "Javadoc.zip" file which we just rename in step 11.
    13) you will get folder "Docs". This folder contain actual "javadoc.zip" file
    14) Unzip above file and you will get Java API Documents for ISA 5.0 or ISA 6.0 or ISA 7.0 depends on "SAPSHRJAVxx_x-xxxxxxxx.SCA" version and SP level.
    I just got ISA Java Doc by following above steps. It looks 14 step but once you download SCA file it will take only 2-3 minutes.
    I am sure you will get Standard Java API for ISA just like ISA 4.0
    Please let me know if you face any problem.
    Also Visit this ECmmerce 6.0 Java API needed
    Let me know if you face any error or problem.
    Regards.
    Ecommerce Developer.

  • Java API for images retriveal, Create and update in New Java API for SP05 ?

    Hello Everyone,
        Does any one know Which Java API Can be used to Display an Image in main table & API to add an image to Image table and link to Main Table in new release of Java API for MDM SP05.
    Really Appreciate all help.
    Thanks
    Vinita

    Hello Everyone,
        Does any one know Which Java API Can be used to Display an Image in main table & API to add an image to Image table and link to Main Table in new release of Java API for MDM SP05.
    Really Appreciate all help.
    Thanks
    Vinita

  • Newbie who want to use Java API for OLAP

    Hi all,
    I'm trying to learn how to use Java API for Oracle 10.2 OLAP. I went through the Java OLAP API user guide and I'm getting even more confused. Can somebody guide me to some good online materials?
    Many thanks!
    - Andrew

    Hi there,
    Did you see the examples in the Reference doc? :- http://download.oracle.com/docs/cd/B19306_01/olap.102/b14348/toc.htm
    Thanks,
    Stuart Bunby
    OLAP Blog: http://oracleOLAP.blogspot.com
    OLAP Wiki: http://wiki.oracle.com/page/Oracle+OLAP+Option
    OLAP on OTN: http://www.oracle.com/technology/products/bi/olap/index.html
    DW on OTN : http://www.oracle.com/technology/products/bi/db/11g/index.html

  • Any Java API for dumping database?

    As far as I know, the normal way to dump a database is to execute some command on the console.
    Is there any Java API for dumping a database, so that the operation can be wrapped in the code?
    The database system that I'm using is MySQL. Please help. Thanks!

    By "dumping a database" I mean exporting data in the database into a text file, as a backup, that can be used when restoring the database. For example, in MySQL, I can run "mysqldump" on the command line to dump the database into a file.
    So far I still have no idea how to do this using JDBC or any other Java API. Please help!

  • Question about Java API for XML schema?

    Hello, everyone!
    I am looking for a java api for XML schema. I hope the API is capable for parsing the structure of element
    or complextype declarations in XML schema. So for example, if I specify a name of an element or
    complextype defined in a schema, the name, dataype and other constraints of contained child elements can be returned.
    Does anyone know if there exists such a paser?
    Thanks very much!

    An implementation of DOM Level 3.

  • Java API for Primavera p6 Web services

    Hi All,
           - Anyone can please suggest me how to create the Java API for primavera p6 web services ?.
           -if is this inbuild then from where we can download please suggest me or give me some link ?.
    Thanks & Regards
    Dharmendra

    You can review P6 Professional Project Management 7.0 Documentation Library for documentation on API and how to use it.
    API are available and can be downloaded from edelivery.oracle.com.

  • Essbase Java Api for Filters

    Hi all,I am using Java Apis for Essbase 7.1. I am using following Api for Database Filters to get the "Access Level". IEssCube.IEssSecurityFilter.getAccess()Gets the default filter access level. However the doumentation does not provide any information about the value returned by this Api and its meaning.Please can you tell what each integer value returned by this Api represents..Thanks.

    I believe the values are documented in IEssCube.EEssCubeAccess.Be aware the security filter class is marked 'for future use' in the docs:The IEssSecurityFilter is cube security filter. (FOR FUTURE USE). That may mean it is not fully tested or perhaps not even fully implemented.Tim TowApplied OLAP, Inc

  • Paint Tools API For flex

    Hello Flex Friends! I was wondering if anyone knew of a good
    (free preferably ) API that has the basic paint options that you
    could find in MS Paint (or more). I know how to make a rectangle,
    and circle, and draw lines and all that jazz, I am looking more on
    how to create spray paint cans, and complex erasing etc.
    I have seen
    http://www.flexibleexperiments.com/Flex/PrimitiveExplorer/Flex2PrimitiveExplorer.html
    and that has been the best so far. Any additional thoughts would be
    greatly appreciated. Thanks!

    Thanks JeffHourser this looks really cool and is deffineatly
    a resource I will keep in my bag, however this is a bit complex for
    our current needs. What I am really interested in is an API that
    can do:
    Lines
    Basic Shapes
    fills
    spray paint (like mspaints)
    other basic art tools
    I know i can do most of these using flex's built in API for
    drawing, however, it seems that there is no point in recreating the
    wheel if someone else has already done it.
    Thanks!
    -A

Maybe you are looking for

  • Can not add videos to library

    Hi, i am having trouble adding vidoes to the itunes library. i have added 9 with no dramas, all play perfect on the iPod, but i can no longer add any more. i click on add files, the top of itunes quicky flashes teh tranfer bar, then nothing?? i have

  • Ssrs 2008 query question regarding in statement

    I am no sql expert, so any help would be greatly appreciated.  Thank you in advance.  I want the user to enter in loan numbers they would like to reflect on a report in ssrs 2008.  The loan number field is a text field. My sql looks like this, and th

  • How to set a default colour & thickness  for rectangle in preview?

    How to set a default colour & thickness for rectangle(annotation) in preview ? Because every time that I choose for example red and thickness 1 it reverts to orange and 3 next time .

  • System should not allow to do the changes in PO once the ID created.

    Hi All, Once the Inbound Delivery is Created based on the Purchse Order, System should not allow to do the changes in the Purchase Order like Deletion of Item, etc.. Any Configuration Changes is avaliable. ? Regards, Sudhakar

  • Video and Photos shot on 4s are not populating in iMovie

    Am I doing something wrong?  I've installed it twice and it still doesn't work.  Is it b/c of iOS6?  If I cant even use the media shot on my phone then the app is worthless!