Prós SWT:
- utiliza elementos nativos, quando possível, de modo que o comportamento sempre nativa
- suportado pelo eclipse
- grande número de exemplos, tem uma ponte AWT / SWT integrada para permitir o uso de componentes AWT e Swing
Contras SWT:
- requer bibliotecas nativas para cada sistema suportado
- podem não suportar todos os comportamentos em todos os sistemas por causa de recursos nativos utilizados (opções dica)
- gestão dos recursos nativos muitas vezes podem ser eliminado ou registrado como ouvinte.
Origem
Usando Maven
Criar o projeto, não encontrei um plug-in especifico para criar um projeto SWT, entao vai um padrao mesmo.
mvn archetype:generate -DgroupId=br.eng.eliseu.swt.olaMundo -DartifactId=OlaMundo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Este generate cria um projeto maven bem basico que voce vai ter que completar com algumas coisas mais, por exemplo.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.eng.eliseu.swt.olaMundo</groupId>
<artifactId>OlaMundo</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>OlaMundo</name>
<url>http://maven.apache.org</url>
<properties>
<swt.groupId>org.eclipse.swt</swt.groupId>
<swt.version>4.4</swt.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<profiles>
<profile>
<id>linux64</id>
<activation>
<os>
<!--use "mvn -version" para descobrir estes parametro -->
<name>linux</name>
<family>unix</family>
<arch>amd64</arch>
<version>3.11.10-17-desktop</version>
</os>
</activation>
<properties>
<swt.artifactId>org.eclipse.swt.gtk.linux.x86_64</swt.artifactId>
<swt.finalName>olaMundo-linux-x86_64</swt.finalName>
</properties>
</profile>
<profile>
<id>win</id>
<activation>
<os>
<name>Windows 8.1</name>
<family>dos</family>
<arch>amd64</arch>
<version>6.3</version>
</os>
</activation>
<properties>
<swt.artifactId>org.eclipse.swt.win32.win32.x86_64</swt.artifactId>
<swt.finalName>olaMundo-win-64</swt.finalName>
</properties>
</profile>
</profiles>
<repositories>
<repository>
<id>swt-repo</id>
<url>https://swt-repo.googlecode.com/svn/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${swt.groupId}</groupId>
<artifactId>${swt.artifactId}</artifactId>
<version>${swt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.ui</groupId>
<artifactId>org.eclipse.ui.workbench</artifactId>
<version>3.7.1.v20120104-1859</version>
</dependency>
</dependencies>
<build>
<finalName>${swt.finalName}</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>${groupId}.App</Main-Class>
</manifestEntries>
</transformer>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>META-INF/*.inf</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
<!--
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>br.eng.eliseu.swt.olaMundo.App</mainClass>
</configuration>
</execution>
</executions>
</plugin>
-->
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.7.1</version>
</plugin>
</plugins>
</reporting>
</project>
Este pom pode substituir por completo o que foi gerado pelo generate. Claro que alguns parâmetros devem ser substituídos , como nome do projeto e versão do sistema operacional que você esta usando.
Feito isto, crie o projeto eclipse
mvn eclipse:clean eclipse:eclipse
Feito isto, faca:
mvn clean intall
Usando o profile voce pode especificar qual perfil vai ser usado, ex:
mvn clean intall -P linux64 ( para usar o perfil linux64 )
mvn clean intall -P win ( para usar o perfil win )
Quando nao informar -P o default é o perfil ue estiver em primeiro lugar no xml
Vai ser criado um jar dentro da pasta target, para executala, faca:
java -jar olaMundo.jar
"Hello World!" vai aparecer.. :)
Paginas que pode te auxiliar daqui para frente.. :)
http://www.eclipse.org/swt/
http://www.eclipse.org/swt/examples.php
http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/CatalogSWT-JFace-Eclipse.htm
http://www.vogella.com/tutorials/EclipseJFaceTable/article.html
Nenhum comentário:
Postar um comentário