Um die Applikation mit Swt zu starten, betrachten wir das Modul
org.jowidgets.helloworld.starter.swt
und dort
zunächst das folgende pom.xml.
1 <project 2 xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 5 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 6 <modelVersion>4.0.0</modelVersion> 7 8 <artifactId>org.jowidgets.helloworld.starter.swt</artifactId> 9 10 <parent> 11 <groupId>org.jowidgets.helloworld</groupId> 12 <artifactId>org.jowidgets.helloworld.parent</artifactId> 13 <version>0.0.1-SNAPSHOT</version> 14 <relativePath>../parent/pom.xml</relativePath> 15 </parent> 16 17 <dependencies> 18 19 <!-- The ui technology independend hello world module --> 20 <dependency> 21 <groupId>org.jowidgets.helloworld</groupId> 22 <artifactId>org.jowidgets.helloworld.common</artifactId> 23 <version>0.0.1-SNAPSHOT</version> 24 </dependency> 25 26 <!-- The default implementation of the jowidgets api --> 27 <dependency> 28 <groupId>org.jowidgets</groupId> 29 <artifactId>org.jowidgets.impl</artifactId> 30 <version>${jowidgets.version}</version> 31 </dependency> 32 33 <!-- The SWT implementation of the jowidgets spi --> 34 <dependency> 35 <groupId>org.jowidgets</groupId> 36 <artifactId>org.jowidgets.spi.impl.swt</artifactId> 37 <version>${jowidgets.version}</version> 38 </dependency> 39 40 <!-- The SWT implementation for win32 --> 41 <dependency> 42 <groupId>org.eclipse</groupId> 43 <artifactId>swt-win32-win32-x86</artifactId> 44 <version>4.3</version> 45 </dependency> 46 47 </dependencies> 48 49 </project>
Ab Zeile 20 wird das common Modul der HelloWorld Applikation hinzugefügt. Ab Zeile 27 folgt die Defaultimplementierung der jowidgtes API und ab Zeile 34 wird die SPI Implementierung für Swt hinzugefügt.
Dadurch ergeben sich die folgenden (jowidgets internen) transienten Modulabhängigkeiten:
Gemeinsamer Code der von allen SPI Implementierungen genutzt wird.
Die Swt SPI Implementierung.
Die Swt SPI Implementierung als ServiceLoader Plugin
Selbstverständlich wird auch eine externe Abhängigkeit auf Swt benötigt (ab Zeile 41).
Die Swt SPI Implementierung hat zudem eine externe Abhängigkeit auf MigLayout für Swt.
Hinweis: Bei der Verwendung von 64Bit Java unter Windows ist die SWT Abhängigkeit wie folgt auszutauschen
1 <!-- The SWT implementation for win64 --> 2 <dependency> 3 <groupId>org.eclipse</groupId> 4 <artifactId>swt-win32-win32-x86_64</artifactId> 5 <version>4.3</version> 6 </dependency>
Weitere SWT Maven Artefakte für andere Betriebsysteme finden sich unter anderem hier: http://www.jowidgets.org/maven2/org/eclipse/
Die Klasse HelloWorldStarterSwt
ist für das
Starten der Applikation zuständig.
1 package org.jowidgets.helloworld.starter.swt;
2
3 import org.jowidgets.api.toolkit.Toolkit;
4 import org.jowidgets.helloworld.common.HelloWorldApplication;
5
6 public final class HelloWorldStarterSwt {
7
8 private HelloWorldStarterSwt() {}
9
10 public static void main(final String[] args) throws Exception {
11 Toolkit.getApplicationRunner().run(new HelloWorldApplication());
12 System.exit(0);
13 }
14 }
Das Starten verhält sich analog zum Hello World Swing Starter
Die folgende Abbildung zeigt das Hello World Fenster für die Swt SPI Implementierung: