Home » 2010 » 2010 » Februar

Tom Schindl: It’s release time – QxWT 1.0.1.0 and GRaphael 1.3.1.0

QxWT 1.0.1.0

At the start of the year I promised to release Version 1.0.1.0 of QxWT at the end of Febuary and doing releases on time is one of the most important things so that people can start to trust into your project. You can download the released code from the project release website or directly through this link.

This release comes with the following major features:

  • Full support for Qooxdoo-Databinding
  • Advanced GWT-Features to e.g. Subclass JSNI-Wrappers and overload JavaScript methods in Java
  • Integration into the qooxdoo-Toolchain to create optimized JavaScript
  • Many bugfixes and not wrapped methods in 1.0.0.1
  • Integration of GRaphael to create advanced graphics, animations and charts ontop of SVG and VML using Raphael

The following features beside bugfixes are planned for the next release due in the end of April:

  • Wrapper:
    • Integrate into GWT-UI-Binder by allowing to adapt QxWT-Widgets
    • Integrate into GWT-RPC-Services
  • Eclipse-Tooling
    • Add Project Creation Support to easy setup a QxWT-Project
    • Add Support to control qooxdoo-Toolchain and create a deployable Application

GRaphael 1.3.1.0

To get support for advanced grapics and animation support I started writing a JSNI-Wrapper for Raphael. QxWT comes with an addon module which provides direct integration of GRaphael into QxWT-Applications. The wrapper is in it’s early stage and the API in the flow.

The current usage in QxWT looks like this:

QxRaphaelWidget widget = new QxRaphaelWidget(200, 200) {
  @Override
  protected void init(RPaper paper) {
    RElement el = paper.image("/image.png", 50, 50, 100, 100);
    el.attr( new RAttribute("opacity", "0"));
    el.animate(1000, new RAttribute("opacity", "1.0"));
  }
};

Which creates an image whose opacity attribute is animated from 0 – 1.0 in 1 second, advanced transitions, gradients and much more are possible as well. You can download the released code from the project release website or or directly through this link.

A real world example

To show the potential of all this technologies I’m working on a real world example which simply allows a user to manage Photos, create Online-Presentations and in future also create printable PDF-Files (e.g. a calender, photo-album, …).

Die Glocken schweigen zum Glück – Nürnberger Zeitung

Die Glocken schweigen zum Glück
Nürnberger Zeitung
Und bauten vom Jahr 780 an auf Java in Indonesien «Borobudur», eine Tempelanlage, wie sie die Welt noch nicht gesehen hatte. Der architektonische Clou waren

/localhost » Blog Archive » Sun Java 6 auf Hardy 64 Bit

Was hab ich mir nicht einen abgebrochen mit Symlinks setzen, bis Suns Java auch im Firefox unter Ubuntu Hardy 64 Bit lief – und am Ende war es ganz einfach und klappte ohne Gefummel in den Untiefen des Systems: …

Podcast: JavaScript (The Hot Strudel)

Ich kann mich noch gut an die Zeit erinnern, als Leute Java und JavaScript verwechselt hatten. PLs oder KAMs oder gerne auch Kreative (ups, man beachte die Unterscheidung :) haben beim Kunden irgendwas von Java erzählt, meinten aber JavaScript, oder umgekehrt – war immer lustig. Diese Zeiten sind nun schon lange vorbei… (lange Pause) …aber JavaScript gibt es noch immer. Da kommt diese sehr…

OpenStreetMap aktualisiert Karten von Chile

Um die Hilfsmaßnahmen für die Opfer des schweren Erdbebens in Chile zu unterstützen bereitet das Open-Source-Projekt OpenStreetMap die detaillierte Erfassung von ländlichen Regionen und Erdbebenschäden vor. Sofort nach dem Beben haben Funkamateure dort ein Notfunknetz aufgebaut.

c++ lib unter linux in java einbinden – Enterprise Java (JEE, J2EE

Hallo Forum, steh mal wieder vor einem ganz neuen Thema wobei ich eure Hilfe brauche. Um auf eine USB-device zuzugreifen muss ich eine lib geschrieben.

Thomas Kratz: Eclipse Enterprise: Not so optimistic locking – a simple approach with XMPP

We work an a rather small enterprise app with a “Plain Old” Eclipse RCP Client. Due to some constraints our domain model is based on Pojos (Java Beans) that are persisted with a hibernate backend. In the meantime I look on those who use EMF/CDO/Riena with somehow jealous eyes, because of all the nice things they can do, but we cant do so easily. Since we don’t have much concurrency, we rely on hibernates optimistic locking strategies to avoid conflicts. That means if two users work on the same entity, the one who saves early wins, the other one looses his changes and gets an OptimisticLock Exception. Thats sometimes annoying for the users. So I did a simple “not so optimistic” locking approach today that cost me less than half a day to implement for the whole thing. Our server communication -in terms of services- relies on Spring’s HttpInvoker so far (keep it simple) but we cannot do callbacks to the client with that technology. We tried different ideas to solve that issue starting from JMS to finally ending with an XMPP based messaging solution. Every client sets up a permanent XMPP connection to the server over wich we can send messages to whatever party we want. With XMPP we can even see who is online for free. Now every time we open an editor we send a simple XMPP Message to the server that stores a unique id and the userId of the entity in a simple HashMap. If two users open the same entity, they both get a warning message about a potential conflict. With a simple PartListener on the client we know when an editor gets closed, send an unlock message and notify the other user(s) about the unlock. Thats what we get with about three hours of work. Never thought it would that simple. I become more and more a fan of XMPP Messaging.

Outlook:
What we could do now is register an hibernate “onPersist” event listener and send a message to the other parties that the object has changed on the server, so that they could refresh their editor content. Maybe thats something for the next weekend session.

PS: Some hours later…

I build an abstract base class for my Editors that does the following:

public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
super.init(site, input);
Object entityFromInput = getEntityFromInput(input);
EntityPacketFilter filter = new EntityPacketFilter(entityFromInput);
Activator.getDefault().getXmppConnection().addPacketListener(this,filter);
LockHelper.sendLockMessage(entityFromInput, true);
site.getPage().addPartListener(LockPartListener.instance);


}


The Editor sends a lock message on init, and registers a Partlistener to send an unlock on close; It adds itself as a PacketListener to the XMPP Connection. The hibernate PostUpdateEvenListener sends an Update Stanza which goes to:



EntityChangedDialog dlg = 
new EntityChangedDialog(AbstractLockingFormEditor.this);
int ret = dlg.open();
if (ret == Dialog.CANCEL) {
 PlatformUI.getWorkbench().getActiveWorkbenchWindow()
  .getActivePage().closeEditor(AbstractLockingFormEditor.this,   
  false);
  return;
}
// reload from db
IEditorInput newInput = EntityEditorManager.getInstance()
 .createInputForEntity(dlg.getEntityClass(),dlg.getEntityId());
setInput(newInput);
rebind() // rebuild databinding;
firePropertyChange(EditorPart.PROP_INPUT);
dirty = false;
setDirty(false);
firePropertyChange(EditorPart.PROP_DIRTY);


That’s it. No more Optimistic Lock Exceptions from today.

Praktikanten im Bereich Webentwicklung Frontend (m/w) – deutsche-startups.de (Blog)

Praktikanten im Bereich Webentwicklung Frontend (m/w)
deutsche-startups.de (Blog)
Sie programmieren interaktive Benutzeroberfächen (HTML, CSS, Java-Script, php…) Dabei gilt es, Designvorlagen mit einem sinnvollen Maß an Codequalität und

SCO vs. Linux: Darl McBride will Mobilsparte von SCO kaufen

Für gerade mal 35.000 US-Dollar soll der ehemalige SCO-Geschäftsführer die Mobilfunksparte des Unternehmens übernehmen.

Snaptu – Webdienste auf Symbian und Java-Handies bündeln

Snaptu ist eine Software für Symbian S60 Geräte der 3. Generation und Java-Handies. Mit Snaptu werden viele Webdienste wie Facebook, Twitter, verschiedene News Reader, Picasa oder Flickr in einer Software gebündelt. …

Tutorium Analysis 1 und Lineare Algebra 1 | download free java

Dieses Buch soll Ihnen als Mathematik-Erstsemester den Einstieg und Umstieg von der Schulmathematik in die Hochschulmathematik erleichtern und Ihnen somit helfen, viele der ublichen Erstsemester-Fehler zu vermeiden.

Prozessabfrage – Java @ tutorials.de: Forum & Hilfe

Hallo, ich habe folgendes Problem. Ich habe mit Hilfe von Runtime.getRuntime().exec(…) einen Prozesss gestartet und möchte nun gerne wissen ob es.

SemperVideo.de » Einführung in die Objektorientierung (Java 1-042)

28 Feb, 2010 Linux, Profis, Programmierung, Windows. In diesem Tutorial wird Ihnen ein weiteres Java Tutorial gezeigt. In diesem hier beschäftigen wir uns mit den Grundsätzen der Objektorientierung in JAVA. …

Firmwire S5230MMIG2 –> Java apps?? – Handy Forum

Firmwire S5230MMIG2 –> Java apps?? Samsung S5230 Forum.

Java 6 | news365.ch

Java 6. Written by admin Digital Feb 27, 2010. Jeden Tag bieten wir Ihnen bei TecChannel ein Fachbuch aus dem EDV-Bereich als eBook zum Sonderpreis von nur 2,99 Euro zum Download an. Einzige Einschränkung: Die Bücher können nicht …

Tom Schindl: QxWT 1.0.1.0 – Realworld Demo

Tomorrow I’ll release QxWT 1.0.1.0 as I promised at the start of the year. To show people the power of QxWT and what can be achieved by using it, in conjunction with Eclipse-Tools like EMF and Teneo, I wrote an example application on the last 2 weekends.

First of all using all those OpenSource-Technologies together to create an application is simply fun. It’s been a long time since i worked with Hibernate but with Teneo, I really only needed know EMF and learn to use 2 or 3 JPA-APIs to query for stuff. This shows something I told many people already. EMF is not only useable in RCP-Application, it doesn’t even depend on OSGi. I used it at the backend for the Hibernate integration in an ordinary Jetty-Servlet-Container.

The application looks like this:

  • Open a Image-Album
  • Overview of images in the album
  • Editing meta data to images
  • Creating a custom Online-Presentation
  • Running Presentation

The whole application is not completely ready, I hoped to be further but you can try it out:

The application uses the following opensource libs:

  • Frontend
    • QxWT (EPL/LPGL)/qooxdoo (EPL/LPGL)
    • GRaphael (LGPL/EPL)/Rapael (MIT)
  • Backend:
    • EMF+Teneo (EPL)
    • Hibernate (LGPL)
    • PostgreSQL (MIT)

I have not tested this thoroughly (I only took a look on Firefox, Safari, Chrome and Opera on Mac OS X – Opera seems to have issues with images) so please don’t expect to run everything 100%. The code of the example-application is part of my SVN-Repository but NOT released under an OSS-License! Still you can take a look and learn how to use the QxWT-API.

Things I plan to add in the weeks to come:

  • Finish current features and fixing bugs
  • Adding more presentation features (Image-Transition, Drop-Shadows, Animation, …) using more Features of Raphael
  • Print support to create printable Versions for Calendars, Photo-Books, …

So stay tuned for the release announcement of QxWT 1.0.1.0 tomorrow where I’ll explain features coming with this release and features I plan to add in the next releases.

Raja Kannappan: Automating Eclipse Help Generation

This article assumes that you are familiar with Eclipse Help. If you are not, you can refer to my earlier blog entry to learn more about it.

Some of the common formats used to author Eclipse Help are DocBook and DITA. Both of these formats use XML as source. The main benefits of using XML (instead of binary files) as source are, you can use your version control to maintain history (and see diffs) and can publish the source to multiple formats (PDF, HTML, EclipseHelp etc.,), using the same consistent formatting.

We used to use DocBook, but transitioned to use DITA since Adobe FrameMaker had good support for DITA and our technical writer was comfortable with using FrameMaker as well. Here is an article on how to author DITA topics using FrameMaker.

The next step is to transform DITA to EclipseHelp. You could use DITA open toolkit directly to produce help files. Better way is to use DITA maven plugin, which can be found here. If your Eclipse Help plugin does not have a POM, create one first. Then, all you need to do is to make sure that your POM follows this usage explained here. Look at the executions where Eclipse Help generation is bind to generate-sources phase.

output.dir specifies the directory where Eclipse Help will be generated.
args.input specifies the location of the ditamap. ditamap is where DITA topics are mapped. See here if you want to know what a ditamap is. ditamap supports both top-down and bottom-up composition. Make sure to use bottom-up composition and if you are not sure about the difference, you can see it from my earlier blog entry.
transtype specifies the output format and can be “pdf”, “htmlhelp”, “xhtml” or “eclipsehelp”.

If you use style sheets to format your help, you could use args.css, args.csspath and args.copycss parameters to specify information about your css. Finally, make sure you have all the dependencies listed are in your maven repository.

That’s it. Now, all you have to do is type “mvn generate-sources” (or any build lifecycle phase greater than generate-sources. For more info on maven lifecycles and it’s phases, refer here) in command-line to generate Eclipse Help. You still need to maintain plugin.xml of your Help Plugin and make sure that toc and index files are referenced properly. But, this is easy and the hard work of creating html files and toc files are done by the maven plugin.


Fachbücher zum Sonderpreis – tecChannel


tecChannel
Fachbücher zum Sonderpreis
tecChannel
Heute ist das eBook "Java 6" an der Reihe. Aus der Beschreibung des Verlages: Java hat sich als die Programmiersprache für den Businessbereich etabliert.
Access 2003 – MAGNUMPC-Welt

Alle 14 Artikel »

Java-Applets funktionieren nicht (hinter Squid) – Firewall

Auf diesem ist die Filtersoftware Time for Kids installiert, die als Proxy den SquidNT mitbringt. Installiert ist hier 3.0.STABLE20. Besucht ein Nutzer eine Seite mit Java-Applets, so kommt immer.

JavaServer Faces und Hibernate Einsteigerproblem (JSF und

Hallo an Alle, ich bin absoluter Neuling hier und wage gerade meine ersten Schritte mit JSF und Hibernate. JSF Bibs funktionieren wunderbar und auch.

SemperVideo.de » Objekteigenschaften von Arrays (Java 1-041)

27 Feb, 2010 Linux, Profis, Programmierung, Windows. In diesem Tutorial wird Ihnen ein weiteres Java Tutorial gezeigt. In diesem hier beschäftigen wir uns mit den Objekteigenschaften von Arrays. …

Objektorientierte Programmierung spielend gelernt: mit dem Java

EAN Kurzbeschreibung Bei der Entwicklung von Computerprogrammen haben sich inzwischen sowohl im Ausbildungsbereich als auch in der Industrie objektorientierte Programmiersprachen 188274.

Firmwire S5230MMIG2 –> Java apps?? – Handy Forum

Firmwire S5230MMIG2 –> Java apps?? Samsung S5230 Forum.

blogdoch.net — jetzt wird zurückgeblogt – Dem ist nichts

Dienstag, Dezember 15, 2009, 08:25 blogdoch.net — jetzt wird… Das Video zum Tweet vom Freitag ;) Montag, Dezember 14, 2009, 17:06 blogdoch.net — jetzt wird… Dem ist nichts hinzuzufügen. #Java #Drecksupdate #FAIL …

Dem ist nichts hinzuzufügen. #Java #Drecksupdate #FAIL (blogdoch.net — jetzt wird zurückgeblogt)

(Blogged via flickr) Ja, Windows XP. BTW, und JFTR, rennt auf dem akoya Mini E1210 so stabil wie die Titanic … (Linux hingegen *ist* da stable.) Kamera: Motorola Milestone (f/2.8)