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 }