View Javadoc
1   /**
2    * Copyright By Grandsoft Company Limited.  
3    * 2012-10-10 下午04:49:11
4    */
5   package gboat2.web.service;
6   
7   import gboat2.base.bridge.model.UserSession;
8   import net.sf.json.JSONArray;
9   import net.sf.json.JSONObject;
10  
11  /**
12   * 桌面小控件服务接口,各个实现本接口
13   * @author tanxw
14   * @since jdk1.6
15   * @date 2012-10-10
16   *
17   */
18  public interface IWidgetService {
19  
20  	/**
21  	 * 取得标记本服务的唯一(不能与本服务的其他实现类返回的id重复)标识,本标识是可持久化的,如:可以用类名作为类的唯一标识
22  	 * @return 本服务的id
23  	 */
24  	public String getId();
25  
26  	/**
27  	 * 是否有消息需要显示
28  	 * @return true,如果有消息
29  	 */
30  	public boolean hasMsg(UserSession session);
31  
32  	/**
33  	 * 获取显示本服务消息的前端widget组件配置信息
34  	 * @param session 当前用户
35  	 * @return JSONObject实例,如果返回null,表示采用widget的默认配置,对象格式为:
36  	 * <pre>
37  	 * {
38  	 * 	 component : '前端widget组件名称,如Gboat2.desktop.widget.Info', //默认值为前端默认的widget
39  	 * 	 url : 'widget消息数据的url地址', //默认值为WidgetAction.widgetMsgs()的url
40  	 *   title : 'widget的标题', //为空表示无标题
41  	 *   params : {请求url时,附加的参数}
42  	 * }
43  	 * </pre>
44  	 */
45  	public JSONObject getWidgetConfig(UserSession session);
46  
47  	/**
48  	 * 
49  	 * 获取桌面控件的显示消息
50  	 * @param session
51  	 * @param count 请求的消息记录条数的最大值,-1表示不限制记录条数
52  	 * @return JsonArray,格式为:
53  	 * <pre>
54  	 * [{
55  	 * 	url : '打开模块的路径',
56  	 * 	text : '显示的标题',
57  	 *  params : {url中的参数}
58  	 * },
59  	 * ...
60  	 * ]
61  	 * </pre>
62  	 */
63  	public JSONArray fetchMsgs(UserSession session, int count);
64  
65  	/**
66  	 * widget服务标题
67  	 * @return
68  	 */
69  	public String getTitle();
70  }