XWorker是使用Java编写的,模型也可以集成到Java项目中。
通过Maven可以引入X-Meta引擎,X-Meta引擎已经上传到Maven的中央库,要查看版本可以参看http://mvnrepository.com/artifact/org.x-meta/org.xmeta.engine。
目前最新的正式版1.4.2。
<dependency>
<groupId>org.x-meta</groupId>
<artifactId>org.xmeta.engine</artifactId>
<version>1.4.2</version>
</dependency>
目前的开发本是1.4.3-SNAPSHOT。
<dependency>
<groupId>org.x-meta</groupId>
<artifactId>org.xmeta.engine</artifactId>
<version>1.4.3-SNAPSHOT</version>
</dependency>
使用SNAPSHOT版本的话在Maven的pom文件中加入Sonatype的仓库。
<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/xsd/maven-4.0.0.xsd">
.......
<dependencies>
<dependency>
<groupId>org.xworker</groupId>
<artifactId>xworker_swt</artifactId>
<version>1.4.3-SNAPSHOT</version>
</dependency>
.......
</dependencies>
<repositories>
<repository>
<id>sonatype</id>
<name>sonatype Repository</name>
<url>https://oss.sonatype.org/content/groups/public/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<layout>default</layout>
</repository>
</repositories>
</project>
模型可以随Java的class文件一起打包到Jar中,所以可以把模型文件放到src目录下。
如果是Maven项目,建议把模型放到src/main/resources目录下,避免和Java代码混在一起,毕竟模型大部分时候是通过编辑器编辑的。
也可以选择把模型放到单独目录下,比如创建一个名为things的目录,然后把模型放到该目录下。
X-Meta引擎是使用Java编写的,所以通过代码启动编辑器便于调试。因为如果使用外部的编辑器编辑,那么就不能调试项目中的Java代码了。
import java.io.File;
import org.xmeta.Thing;
import org.xmeta.World;
public class RunThingExplorer {
public static void main(String[] args){
try{
//X-Meta引擎是单实例的
World world = World.getInstance();
//初始化引擎,参数是模型库的目录,如果为null那么通过XMETA_HOME或XWORKER_HOME环境变量获取模型库的位置
world.init(null);
//事物管理器是用项目的方式编辑模型的,所以需要把模型所在的目录作为项目加入
//参数分别为:
//1.项目名称,不要和XWorker中已有的项目名相同
//2.事物模型所在的目录。
//3.是否包含things目录,即模型实际是放在things子目录下的。
//4.是否把项目添加到最前端,一般设为true。
world.addFileThingManager("myproject", new File("./src/main/resources/"), false, true);
//启动事物管理器
Thing worldExplorer = World.getInstance().getThing("xworker.ide.worldExplorer.swt.SimpleExplorerRunner");
worldExplorer.doAction("run");
}catch(Exception e){
e.printStackTrace();
}
}
}
import org.xmeta.ActionContext;
import org.xmeta.Thing;
import org.xmeta.World;
public class RunEditor {
public static void main(String args[]){
try{
//X-Meta引擎是单实例的
World world = World.getInstance();
//初始化引擎,参数是模型库的目录,如果为null那么通过XMETA_HOME或XWORKER_HOME环境变量获取模型库的位置
world.init(null);
//导入要编辑的项目
world.addFileThingManager("myproject", new File("./src/main/resources/"), false, true);
//获取简单事物编辑器,简单事物编辑器
Thing thingEditor = world.getThing("xworker.swt.xwidgets.prototypes.SimpleThingEditor");
ActionContext actionContext = new ActionContext();
//执行简单事物编辑器
thingEditor.doAction("run", actionContext);
}catch(Exception e){
e.printStackTrace();
}
}
}
模型文件可以和Java类打包在一起,所以可以放到jar中,因此发布方式随Java项目的发布方式。
关于打包和发布的内容可以参看应用打包和部署。
Copyright © 2007-2014 XWorker.org 版权所有