在Java项目中使用模型

    XWorker是使用Java编写的,模型也可以集成到Java项目中。

1.引入动态模型引擎的依赖

    通过Maven可以引入X-Meta引擎,X-Meta引擎已经上传到Maven的中央库,要查看版本可以参看http://mvnrepository.com/artifact/org.x-meta/org.xmeta.engine

1.1.正式版

    目前最新的正式版1.4.2。

<dependency>
    <groupId>org.x-meta</groupId> 
    <artifactId>org.xmeta.engine</artifactId>
    <version>1.4.2</version>
</dependency> 

1.2.开发版

    目前的开发本是1.4.3-SNAPSHOT。

<dependency>
    <groupId>org.x-meta</groupId> 
    <artifactId>org.xmeta.engine</artifactId>
    <version>1.4.3-SNAPSHOT</version>
</dependency> 

1.3.SNAPSHOT版本依赖的设置

    使用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>

2.Java项目注意事项

2.1.模型文件的存放位置

2.1.1.放到源文件目录下

    模型可以随Java的class文件一起打包到Jar中,所以可以把模型文件放到src目录下。

2.1.2.放到resources目录下

    如果是Maven项目,建议把模型放到src/main/resources目录下,避免和Java代码混在一起,毕竟模型大部分时候是通过编辑器编辑的。

2.1.3.放到单独目录下

    也可以选择把模型放到单独目录下,比如创建一个名为things的目录,然后把模型放到该目录下。

2.2.启动编辑器

2.2.1.通过Java代码启动编译器便于调试

    X-Meta引擎是使用Java编写的,所以通过代码启动编辑器便于调试。因为如果使用外部的编辑器编辑,那么就不能调试项目中的Java代码了。

2.2.2.启动事物管理器

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();
		}
	}
}

2.2.3.启动简单事物编辑器

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();
		}
	}
}

3.打包和发布

    模型文件可以和Java类打包在一起,所以可以放到jar中,因此发布方式随Java项目的发布方式。

    关于打包和发布的内容可以参看应用打包和部署

 

 

Copyright ©  2007-2014 XWorker.org  版权所有

沪ICP备08000575号