WebOS中的应用程序的开发

在WebOS中开发应用程序

认识抽象类Application
操作系统接受实现了Application的类,
通过调用install()方法来安装应用程序
调用uninstall()方法来卸载应用程序
package com.single.os.core.client;


public abstract class Application {
	
	protected boolean installed=false;
	protected String prefix;
	
	public String getPrefix() {
		return prefix;
	}


	public Application(String prefix){
		this.prefix=prefix;
	}
	
	
	public boolean isInstalled() {
		return installed;
	}
	/**
	 * 安装程序
	 * @return
	 */
	abstract boolean install();
	/**
	 * 卸载程序
	 * @return
	 */
	abstract boolean uninstall();
}



对于简单的应用程序,我们提供了SimapleApplication类
里面包括了主要的几个属性,
包括控制器,程序菜单项,命令集
你只需要创建一个类继承SimpleApplication
覆写initial()方法,在里面赋值controller,appMenuItem以及用过addCommand方法添加命令即可
其中controller是控制器,使用此对象,你需要先了解GXT的MVC架构
appMenuItem是你的程序菜单,会加在:开始->程序  里面。
addCommand方法则是在系统中注册你的命令,详见Command介绍的相关文章
package com.single.os.core.client;

import java.util.HashMap;

import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.mvc.Controller;
import com.extjs.gxt.ui.client.mvc.Dispatcher;
import com.extjs.gxt.ui.client.widget.menu.MenuItem;
import com.single.os.core.client.ui.desktop.Desktop;

public class SimpleApplication extends Application{

	public SimpleApplication(String prefix) {
		super(prefix);
	}
	private static int increase=1;
	protected String baseStyle="module"+increase++;
	/**
	 * 控制器
	 */
	protected Controller controller;
	/**
	 * 向开始菜单->程序->中添加的菜单项
	 */
	protected MenuItem appMenuItem;
	/**
	 * 在系统中注册命令集
	 */
	private HashMap<String, CommandExecute> commands=new HashMap<String, CommandExecute>();

	public void addCommand(String command,CommandExecute execute){
		commands.put(command, execute);
	}
	//需要你覆写的方法,在此方法中设置你的配置
	protected void initial(){
		
	}
	@Override
	boolean install() {
		
		if(installed){
			return false;
		}
		
		initial();
		
		//加载控制器
		if(controller!=null){
			Dispatcher.get().addController(controller);
		}
		//加载开始菜单
		if(appMenuItem!=null){
			Desktop desktop=Registry.get(OS.DESKTOP);
			desktop.getStartMenu().addApplicationMenuItem(appMenuItem);
		}
		//加载命令
		if(commands.size()>0){
			for(String command:commands.keySet()){
				CommandCollection.add(command, commands.get(command));
			}
		}
		
		installed=true;
		
		return true;
	}
	@Override
	boolean uninstall() {
		if(!installed){
			return false;
		}
		//卸载控制器
		if(controller!=null){
			Dispatcher.get().removeController(controller);
		}
		//卸载命令
		if(commands.size()>0){
			for(String command:commands.keySet()){
				CommandCollection.remove(command);
			}
		}
		
		installed=false;
		
		return true;
	}
	
}



你可以建一个类YourApplication继承SimpleApplication
然后在initial()方法中设置相关内容后,
在OS系统中添加该应用程序即可
OS.addApplication(new YourApplication());



如何创建一个格式良好的应用程序
所谓格式良好的应用程序,是指该程序独立,模块化程度好,依赖关系简单清晰。
即只要被人在gwt.xml中继承你这个模块,你的系统就能自动安装并生效。

一般的,一个应用程序对应一个模块。
新建一个模块,然后对应该模块创建一个入口EntryPoint
其中的方法onMouldeLoad就是程序进入你这个模块时会调用的方法。
你可以在这里面初始化你的模块或应用程序。
比如创建自己的Application,
然后调用OS.addApplication(new YourApplication());
向系统添加你的应用程序。

你可能感兴趣的:(UI,mvc,OS,gwt,webos)