Category: API

JVx SwingUI extensions

Post to Twitter

JVx defines a technology independent User Interface, with Interfaces. Each technology has to implement this interfaces for its components and controls, to be compatible with JVx. We have implemented all this interfaces for Swing.

In addition we have created some swing components with special features for business applications. This components are simple extensions to existing swing components and are supported from any Look and Feel. They can be used in any swing application with or without the whole JVx framework.

We will show here some of this components:

  • DesktopPane with tab or frame mode

    Switch between tab and frame view, Closable tabs (works with java 1.5 and is LaF independent), Drag and Drop Tabs, Tab navigation with keyboard, Modal frames, Background image.

    Frames

    Frame mode

    Tab mode

    Tab mode

    Desktop Background

    Desktop Background

  • ComboBoxes with user-defined popup components

    A base implementation of a ComboBox called ComboBase. With this combo you can build your own ComboBox for e.g. input first and last name in separate fields. We implemented a date chooser and a table selector (header is:

    Date Combo

    Date Combo

    Table Combo

    Table Combo

  • Table with load-on-demand model and ready-to-use cell editors/renderers

    A table which uses an IDataBook implementation as model (e.g. MemDataBook) and shows cell editors and renderers dependent of the cell data types, e.g. a table with image renderer and multiple choice editor/renderer

    Table with renderer and editor

    Table with renderer and editor

    Following editors/renderer are available: Text, Number (only numbers are allowed), Date, Multiple Choice, Image
  • Button

    A standard button and a toggle button with support for mouse-over borders.

  • Icon

    A special icon which supports image stretching and alignment.


Our implementation includes not only Swing components. It also contains some useful layouts:

  • FormLayout

    Anchor based layouting. Supports margins, stretching, gaps, … It is designed for simple and complex forms.

  • BorderLayout

    Supports margins.

  • SequenceLayout

    Supports component stretching, component orientation, intelligent wrapping.

If you are interested in JVx, leave a comment or join our community.
You are welcome!

JVx 0.8 Beta 2 is verfügbar

Post to Twitter

Seit wenigen Minuten steht die 2. Beta Version von JVx 0.8 zum Download bereit. Die Änderungsliste ist diesmal etwas kürzer ausgefallen, doch unter der Haube wurde kräftig geschraubt.

Diese Version enthält vor allem im Hinblick auf das kommende WebUI einiges an Erweiterungen. Doch nähere Details dazu in einem der kommenden Posts

Was kann man von der Beta 2 erwarten?

  • Erhöhte Sicherheit

    Die Session steuert ab sofort den Zugriff auf Lifecycle Objekte und delegiert dies an den Security Managers. Sollten spezielle Zugrifssbeschränkungen existieren, wird der Zugriff nicht eingeschränkt.

    Weiters ist die Passwort Verschlüsselung nun konfigurierbar, wahlweise MD5, SHA 512 oder eine Standard Java Security konforme Implementierung.

  • Neue Utility Klassen (com.sibvisions.util)

    Siehe Javadoc

  • Performance Optimierung

    Durch die Vermeidung von Instanz Erzeugung beim Zugriff auf die Datenbank und bei der Behandlung der Metadaten wird einerseits Speicher und andererseits Zeit eingespart. Abhängig von der Anzahl der Datensätze ist der Unterschied deutlich merkbar.

  • Bugfixing

    Datenbanzugriff mit HyperSQL und Oracle, Bildbibliothek laden aus unterschiedlichen Threads, Serialisierung, Layouting, XML Security Manager uvm.

Die Release 0.8 von JVx wird zusammen mit der WebUI und QT Implementierung im Laufe des 3. Quartals 2010 verfügbar sein. Der Showcase unserer WebUI Implementierung wird bereits in den nächsten Wochen online sein.

Ein erster Blick auf unseren Silverlight Showcase

Post to Twitter

Unsere .NET bzw. MONO Anbindungen an JVx befindet sich bereits auf der Zielgeraden. Und frei nach dem Motto “ein Bild sagt mehr als tausend Worte” präsentieren wir Ihnen die ersten Screenshots von unserem Silverlight Showcase.

Die Anwendung befindet sich zwar noch in der Entwicklung, sowohl am Design als auch Funktional wird sich noch das eine oder andere Detail ändern, aber sehen Sie selbst:

Silverlight Login

Silverlight Login

Die Anmeldung

Die Anmeldung an die Applikation erfolgt durch die Eingabe von Benutzername und Passwort. Selbstverständlich können die gleichen Benutzerdaten wie auch in der Java Applikation verwendet werden.

Der Silverlight Client unterscheidet sich zwar optisch vom Java Client, doch die Business Logik wird ohne Souce Code oder Konfigurations- Anpassungen wiederverwendet.

Ein wesentliches Ziel bei der Entwicklung ist, die Vorteile der jeweiligen Technologie ideal zu nutzen!

 
Die Kontaktverwaltung

Das Foto kann bequem per Drag and Drop vom Desktop in die Anwendung gezogen werden. Und weiters ermöglichen wir die Adress Auswahl über das Map Control (siehe nachfolgenden Screenshot).

Ein nicht gleich auf den ersten Blick ersichtlicher Knüller ist das Data Binding. Die Daten werden nämlich nicht via Webservice oder JSON geladen, sondern direkt von der JVx Business Logik. Und für sämtliche CRUD Anweisungen werden die selben Server Objekte verwendet wie auch für den Java Client.

Silverlight Contacts

Silverlight Contacts

 
Silverlight Map

Silverlight Map

Die Adressauswahl

Eine Adresse einzugeben ist nur halb so viel Spaß wie die Adresse auf einer Karte zu suchen. Aus diesem Grunde haben wir das komfortable Map Control integriert.

Da macht das ganze doch gleich viel mehr Spaß!

 

Den Silverlight Showcase werden wir demnächst veröffentlichen. Bleiben Sie also am laufenden!

iPhone Anwendungen mit jQTouch erstellen

Post to Twitter

Eine native iPhone Anwendung setzt nicht nur Objective-C Know How voraus sondern auch eine spezielle Entwicklungsumgebung sowie Mac OS. Doch nicht immer muss es eine native App sein. Wenn auf die Kamera und die Hardware Beschleunigung verzichtet werden kann, stehen sehr gute JavaScript APIs zur Verfügung.

Ein brandneues API steht mit jQTouch bereit.

Fundtruhe – APIs

Post to Twitter

Zum Wochenausklang einige interessante Links für mobile Anwendungen:

  • JSON Serializer

    Ein noch recht junges Projekt für die Objektserialisierung mit JSON.

  • JFXtras

    Im Rahmen des Projektes werden Erweiterungen für Java FX entwickelt. Unter anderem neue Komponenten und Effekte.

  • AiCharts (Kommerziell)

    Eine mächtige Bibliothek für die Erstellung von Charts unter Android.

JVx 0.8 Beta 1

Post to Twitter

Seit heute steht die Beta 1 von JVx 0.8 bereit. Die Versionsnummer deutet auf eher geringe Änderungen zum Vorgänger hin. Doch der Schein trügt. Wir haben extrem hohe Ansprüche in die Release 1.0 und erst wenn alle in unserem Team zustimmen, wird der Schritt gewagt. Auf dem Weg zu 1.0 warten also noch spannende und Feature geladene Versionen.

Was ist nun alles neu und warum lohnt sich der Umstieg?

Neben kleineren und notwendigen Bugfixes lag das Hauptaugenmerk auf

  • Datenbankfeatures
  • Technologie Unabhängige Kommunikation (C#, MONO)
  • Erweiterungen im Bereich des Handling von Business Objekten
  • Minimierung der Requests
  • Code reviews

Wie bereits in einem meiner letzten Beiträge angedeutet, ist es mit JVx nun möglich die Business Logik für .NET/C# bzw. MONO Anwendungen anzubieten. Doch nicht nur die Business Logik an sich sondern im speziellen der Zugriff auf Datenbanken wird auf einfachste Art und weise ermöglicht. Sowohl mit Java als auch mit C# wird wie gewohnt gearbeitet. Die übliche IDE, die gewohnten Frameworks, die bekannten UI Komponenten. Vor allem mit Silverlight ist die Anbindung an JVx ein enormer Gewinn.

Zu den interessanten Datenbankfeatures zählen sicherlich die automatische Übernahme der Default Werte von Spalten und die Berücksichtigung von Check Constraints.
Die Default Werte werden wirksam wenn am Client ein neuer Datensatz erstellt wird. Dann werden die Default Werte vollautomatisch vorbelegt und die Eingabe wird für den Anwender um einiges einfacher und vor allem passieren weniger Fehler.
Die Check Constraints verwandeln einzelne Spalten automatisch in Choice Editoren, sprich der Anwender kann nur die erlaubten Werte eingeben. Im Falle von Ja/Nein Feldern müsste ansonsten immer und immer wieder ein J/N Choice Cell Editor definiert werden. Das erledigt nun JVx. Die einzige Bedingung ist ein sauberes Datenmodell.

Aber unabhängig von der Datenbank, stehen alle diese Features auch als API Funktionen zur Verfügung. Die Default Werte und die erlaubten Eingabewerte sind über Funktionen setzbar und können einfach in der Middleware festgelegt werden. Denn nicht jeder Java Entwickler ist zugleich ein Datenbank Spezialist.

Das wertvollste neue Feature ist aber unangefochten die Performancesteigerung bei der Übertragung der Meta Daten zwischen RemoteDataBook und DBStorage. Die Meta Daten werden nun Standardmässig pro RemoteDataSource gecached (im Normalfall existiert eine RemoteDataSource pro WorkScreen). Sollte ein WorkScreen z.B. 10 RemoteDataBooks enthalten, so wurden bisher 10 einzelne Requests benötigt. Nun reduzieren sich die Requests auf einen einzigen! Doch selbst dieser Request ist im produktiven Betrieb nicht nötig, da die Meta Daten im Normalfall nicht mehr geändert werden.
Aus diesem Grund wurde eine Cache Role eingeführt, die Wahlweise auf Global, DataSource oder Off gesetzt werden kann. Im Entwicklungsstadium verzichtet man auch gerne auf Caching.

Im Bereich der Business Logik wurde die Abhängigkeit zu GenericBean gelockert. Nun ist ein Lifecycle Objekt vom Typ Map ausreichend um die Server Objekte zu verwalten. Natürlich erhält man nur mit GenericBean den vollen Komfort, aber bei der Integration der JVx Lifecycle Objekte in z.B JSF oder Spring, verzichtet man schon mal auf diesen Komfort.

JSF, Spring und JVx? Mit der Beta 1 von JVx 0.8 wird die Integration möglich.

Eine genaue Übersicht der Änderungen finden sie in unserem Support System und der Roadmap zu JVx 0.8.

Fundtruhe

Post to Twitter

Schon länger im Gespräch, nun ist es da. Ein Java API für Amazon’s Could: AWS SDK for Java

Weiters gibt es die Berkley DB ab 11g R2, von Oracle, nun auch für Android und die DB bietet zusätzlich ein neues SQL API, basierend nun auf SQLite 3.