2.2.6. Der Swt Starter

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:

org.jowidgets.spi.impl.common

Gemeinsamer Code der von allen SPI Implementierungen genutzt wird.

org.jowidgets.spi.impl.swt.common

Die Swt SPI Implementierung.

org.jowidgets.spi.impl.swt

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:

Abbildung 6. Hello World Swt

Hello World Swt


Siehe auch PDF Version dieses Dokuments, Jowidgets API Spezifikation