首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

SmartGwt 之原生 Desktop(与gxt无干)

2012-10-31 
SmartGwt 之原生 Desktop(与gxt无关)在前几天尝试了一下将 extjs的gwt封装即gxt的desktop与Smartgwt绑定在

SmartGwt 之原生 Desktop(与gxt无关)

在前几天尝试了一下将 extjs的gwt封装即gxt的desktop与Smartgwt绑定在一起,

效果还不错,不过有几个问题:

?

    引入两个gwt的扩展,相互之间的js/css可能会有冲突如果在项目中使用,会增加学习成本。在gxt里面添加smartgwt的控件,有可能会出现问题。gxt 的 desktop 扩展起来麻烦。我的需求是要增加一个搜索框,就比较难实现。换肤的话,要同时换两套,会比较麻烦,而且风格不一致
基于这些原因,我还是想自己搞一套desktop。其实也简单,模仿gxt的desktop,搞出这么几个类:Desktop, Shortcut, TaskBar其中还曾经试图模仿mac os的fisheye效果,做出了一个dock,不过发现很丑,就放弃了。还是走了老路子,感觉还凑合。使用的方式也差不多,创建一个Desktop实例,就会自动添加到RootPanel上去了。
    public void onModuleLoad() {        initDebugConsole();        initErrorHandler();        desktop = new Desktop();        createMenuAndShortcut(desktop.getTaskBar());    }    private void createMenuAndShortcut(TaskBar taskBar) {        DesktopWindow contactWindow = new ContactPersonSubPanel();        DesktopWindow documentWindow = new DocumentManagePanel();        DesktopWindow notesWindow = new NotesSubPanel();        DesktopWindow calendarWindow = new CalendarManagePanel();        ToolStrip quickBar = taskBar.getQuickStartBar();        createMenuAndShortcut(contactWindow, quickBar);        createMenuAndShortcut(documentWindow, quickBar);        createMenuAndShortcut(notesWindow, quickBar);        createMenuAndShortcut(calendarWindow, quickBar);        quickBar.addSeparator();        DynamicForm form = createSimpleForm();        form.setAlign( Alignment.CENTER);        form.setLayoutAlign( VerticalAlignment.CENTER);        form.setFields(createSearchItem(), createStyleSelectItem());        quickBar.addMember( form);                quickBar.addSeparator();        createSystemButtons(quickBar);        quickBar.addSeparator();    }
?之所以有一个DesktopWindow,是为了增加一些window状态管理的控制,区别不大。和gxt的desktop的区别在于,没有做StartMenu,感觉我的应用没有那么多入口,只有几个快捷方式,然后在taskbar 上增加了一些系统配置的按钮,以及搜索框和换肤选择框。效果如下图所示:
SmartGwt 之原生 Desktop(与gxt无干)
?源码见附件,不保证能用,不提供技术支持。

?

热点排行