主题切换及其管理

2013-09-30  来源:本站原创  分类:Tiny框架  人气:1 

想做一个更换主题的功能

第一步,做主题管理:

<entity-model id="theme" name="theme" title="主题"
    enable-delete="true" enable-modity="true" version="2.0" cache-enabled="true">
    <operations>
        <operation id="thememodelopadduuid" name="addTheme" title="新增"
            enable-delete="true" enable-modity="true" type="add" fixed-size="false"
            modal="true">
            <condition-fields>
                <condition-field editable="false" hidden="false"
                    field-id="theme_id" connect-mode="AND" />
            </condition-fields>
            <operation-group id="addopbasicgroup" name="basicgroup"
                title="操作字段" enable-delete="true" enable-modity="true">
                <operation-fields>
                    <operation-field editable="false" hidden="true"
                        field-id="theme_id" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_code" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_title" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_css_path">
                        <input-mode type="textWholeLineMode"></input-mode>
                    </operation-field>
                    <operation-field editable="true" hidden="false"
                        field-id="theme_thumbnail">
                        <input-mode type="textWholeLineMode"></input-mode>
                    </operation-field>
                </operation-fields>
            </operation-group>
        </operation>
        <operation id="thememodelopupdateuuid" name="modifyTheme"
            title="修改" enable-delete="true" enable-modity="true" type="modify"
            fixed-size="false" modal="true">
            <condition-fields>
                <condition-field editable="false" hidden="false"
                    field-id="theme_id" connect-mode="AND" />
            </condition-fields>
            <operation-group id="modifyopbasicgroup" name="basicgroup"
                title="操作字段" enable-delete="true" enable-modity="true">
                <operation-fields>
                    <operation-field editable="false" hidden="true"
                        field-id="theme_id" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_code" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_title" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_css_path">
                        <input-mode type="textWholeLineMode"></input-mode>
                    </operation-field>
                    <operation-field editable="true" hidden="false"
                        field-id="theme_thumbnail">
                        <input-mode type="textWholeLineMode"></input-mode>
                    </operation-field>
                </operation-fields>
            </operation-group>
        </operation>
        <operation id="thememodelopdeleteuuid" name="deleteTheme"
            title="删除" enable-delete="true" enable-modity="true" type="delete"
            fixed-size="false" modal="true">
            <condition-fields>
                <condition-field editable="false" hidden="false"
                    field-id="theme_id" connect-mode="AND" />
            </condition-fields>
            <operation-group id="deleteopbasicgroup" name="basicgroup"
                title="操作字段" enable-delete="true" enable-modity="true">
                <operation-fields>
                    <operation-field editable="false" hidden="true"
                        field-id="theme_id" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_code" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_title" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_css_path" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_thumbnail" />
                </operation-fields>
            </operation-group>
        </operation>
        <operation id="thememodelopqueryuuid" name="viewTheme"
            title="查看" enable-delete="true" enable-modity="true" type="view"
            fixed-size="false" modal="true">
            <condition-fields>
                <condition-field editable="false" hidden="false"
                    field-id="theme_id" connect-mode="AND" />
            </condition-fields>
            <operation-group id="viewopbasicgroup" name="basicgroup"
                title="操作字段" enable-delete="true" enable-modity="true">
                <operation-fields>
                    <operation-field editable="false" hidden="true"
                        field-id="theme_id" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_code" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_title" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_css_path">
                        <input-mode type="labelWholeLineMode"></input-mode>
                    </operation-field>
                    <operation-field editable="true" hidden="false"
                        field-id="theme_thumbnail">
                        <input-mode type="labelWholeLineMode"></input-mode>
                    </operation-field>
                </operation-fields>
            </operation-group>
        </operation>
        <operation id="thememodelopaddcopyuuid" name="copyAddTheme"
            title="拷贝新增" enable-delete="true" enable-modity="true" type="copyAdd"
            fixed-size="false" modal="true">
            <condition-fields>
                <condition-field editable="false" hidden="false"
                    field-id="theme_id" connect-mode="AND" />
            </condition-fields>
            <operation-group id="copyAddopbasicgroup" name="basicgroup"
                title="操作字段" enable-delete="true" enable-modity="true">
                <operation-fields>
                    <operation-field editable="true" hidden="false"
                        field-id="theme_code" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_title" />
                    <operation-field editable="true" hidden="false"
                        field-id="theme_css_path">
                        <input-mode type="textWholeLineMode"></input-mode>
                    </operation-field>
                    <operation-field editable="true" hidden="false"
                        field-id="theme_thumbnail">
                        <input-mode type="textWholeLineMode"></input-mode>
                    </operation-field>
                </operation-fields>
            </operation-group>
        </operation>
    </operations>
    <views>
        <view id="thememodeloptableuuid" name="tabletheme" title="主题管理"
            enable-delete="true" enable-modity="true" type="table" page-size="10"
            allow-edit="false" allow-filter-front="false" fixed-size="false"
            modal="false" front-paging="false">
            <view-groups>
                <view-group id="viewbasicgroup" name="basicgroup" title="基本信息"
                    enable-delete="true" enable-modity="true">
                    <display-field editable="false" hidden="true"
                        field-id="theme_id" aggregate-by-view="false" />
                    <display-field editable="false" hidden="false"
                        field-id="theme_code" aggregate-by-view="false" />
                    <display-field editable="false" hidden="false"
                        field-id="theme_title" aggregate-by-view="false" />
                </view-group>
            </view-groups>
            <references>
                <operation-reference type="operation" id="thememodelopadduuid" />
                <operation-reference type="operation"
                    id="thememodelopaddcopyuuid" />
                <operation-reference type="operation"
                    id="thememodelopdeleteuuid" />
                <operation-reference type="operation"
                    id="thememodelopupdateuuid" />
                <operation-reference type="operation"
                    id="thememodelopqueryuuid" />
            </references>
        </view>
    </views>
    <groups>
        <group id="basicgroup" name="basicgroup" title="基本字段"
            enable-delete="true" enable-modity="true">
            <field standard-field-id="theme_id" primary="true" unique="true"
                display="false" not-null="false" auto-increase="false" editable="false"
                hidden="false" table-field="true" id="theme_id" />
            <field standard-field-id="theme_code" primary="false" unique="false"
                display="false" not-null="false" auto-increase="false" editable="false"
                hidden="false" table-field="true" id="theme_code" />
            <field standard-field-id="theme_title" primary="false" unique="false"
                display="false" not-null="false" auto-increase="false" editable="false"
                hidden="false" table-field="true" id="theme_title" />
            <field standard-field-id="theme_css_path" primary="false"
                unique="false" display="false" not-null="false" auto-increase="false"
                editable="false" hidden="false" table-field="true" id="theme_css_path" />
            <field standard-field-id="theme_thumbnail" primary="false"
                unique="false" display="false" not-null="false" auto-increase="false"
                editable="false" hidden="false" table-field="true" id="theme_thumbnail" />
        </group>
    </groups>
</entity-model>

OK,管理功能就算开发完毕了。

主窗口如下:

主题切换及其管理

新增窗口如下:

主题切换及其管理

复制新增如下:

主题切换及其管理

修改窗口:

主题切换及其管理

查看窗口:

主题切换及其管理

删除确认窗口:

主题切换及其管理

至此,通过配置xml,主题的管理功能开发完毕。

于是,增加数据,由于有拷贝新增,因此增加起来还是比较快速的。

第二步,做主题选择对话框:

增加一个新的view

<view id="thememodelopcarduuid" name="cardtheme" title="主题选择"
    enable-delete="true" enable-modity="true" type="card" page-size="0"
    allow-edit="false" allow-filter-front="true" fixed-size="false"
    modal="false" front-paging="false">
    <customize-stage-configs>
        <customize-stage-config stage-name="card"
            view-path="/biz/theme/theme_card.page">
        </customize-stage-config>
    </customize-stage-configs>
    <condition-fields>
    </condition-fields>
    <view-groups>
        <view-group id="viewbasicgroup" name="basicgroup" title="基本信息"
            enable-delete="true" enable-modity="true">
            <display-field editable="false" hidden="true"
                field-id="theme_id" aggregate-by-view="false" />
            <display-field editable="false" hidden="false"
                field-id="theme_code" aggregate-by-view="false" />
            <display-field editable="false" hidden="false"
                field-id="theme_title" aggregate-by-view="false" />
            <display-field editable="false" hidden="false"
                field-id="theme_css_path" aggregate-by-view="false" />
            <display-field editable="false" hidden="false"
                field-id="theme_thumbnail" aggregate-by-view="false" />
        </view-group>
    </view-groups>
</view>

编写视图中指定的模板文件:

#@wijDialog("${modelDefine.id}_${operationDefine.id}" "${operationDefine.title}")
#foreach($bean in $modelProcessResult.beans)
    <a href="javascript:doChangeTheme('${TINY_CONTEXT_PATH}$bean.themeCssPath')"><img title="$bean.themeTitle" style="float:left;border:1px solid;margin:5px 5px;width:50pt;" src="${TINY_CONTEXT_PATH}$bean.themeThumbnail" /></a>
#end
#end

<script>
    function doChangeTheme(path){
        var list=$("link");
        for(var i=0;i<list.length;i++){
            var link=list.get(i);
            var pos=link.href.indexOf("/themes/");
            if(pos>0){
                pos=link.href.indexOf(contextPath+"/");
                link.href=link.href.substr(0,pos)+ path;
                return;
            }
        }
    }

</script>

至此开发任务完成,看一下模板选择界面

主题切换及其管理

第三步,验证实际效果:

主题切换及其管理

主题切换及其管理

主题切换及其管理

OK,收工。

操作录像:

http://sourceforge.net/projects/tinyorg/files/demo.mp4/download

相关文章
  • 主题切换及其管理 2013-09-30

    想做一个更换主题的功能 第一步,做主题管理: <entity-model id="theme" name="theme" title="主题" enable-delete="true" enable-modity="true" version="2.0" cache-enabled="true"> <operations> <operat

  • Linux双显卡切换及管理 2013-06-06

    linux在默认情况下是两个显卡都开启,且电源管理极差,导致电脑温度超高,如果在BIOS里面强行切换为一个显卡,当然也可以解决这个问题,但是在双系统的情况下,就极为不便.如果需要切换显卡还要重启电脑,那实在是太落后了. linux kernel 2.6.38以上的内核开始支持双显卡的切换. 在linux3.06下切换显卡的模块仍然处于debug状态,首先就要加载这些模块 Step1: mount -t debugfs debugfs /sys/kernel/debug 注:需要在root权限下执

  • Spread for Windows Forms高级主题(6)---数据绑定管理 2014-06-11

    自定义列和区域的数据绑定 当表单被绑定到一个数据集时,表单中的列就会相继的被分配到数据集的区域上.例如,第一个数据域分配给列A,第二个数据区域分配给列B,等等.你也可以改变分配顺序,将任意域分配给任意列. 默认情况下,绑定的表单继承数据库中列的宽度.如果你想要设置你自己的列宽,你可以在绑定Spread控件之后设置列宽,或者将DataAutoSizeColumns属性设置为false并设置列宽. 如果你将多个Spread控件绑定到了一个单一的数据集,你可以将每一个Spread控件中表单的AutoG

  • Ubuntu切换登录管理器gdm, lightdm 2013-07-25

    终端下输入 sudo dpkg-reconfigure gdm 选择后回车,重启后生效

  • 基于实体模型开发主题管理简析 2013-10-05

    实体模型主要实现单表操作(insert, update, delete, select),凡是需要这4条SQL语句要完成的功能,基本上都可以完成.多表处理的,需要用到关系模型,后续专门讲述. 前面写过一篇文章叫"主题切换及其管理",连接地址为http://my.codeweblog.com/u/1245989/blog/165402. 里面有详细的模型配置文件,但只是一个结果而已,接下来,对其进行详细剖析,讲述如何进进行配置. <entity-model id="the

  • 使用TinySpider实战抓取自己博客中的内容 2014-05-28

    因为做官网,没有内容,因此就想办法从codeweblog.com中写的博客里弄点内容,这就要用到爬虫了. 然后就花了几分钟搞了一下,步骤如下: 第一步,写个方法抓目录: public static void processCategory(String categoryId) { Watcher watcher = new WatcherImpl(); Spider spider = new SpiderImpl(); watcher.addProcessor(new codeweblog.co

  • FoxTab:酷炫Firefox Tabs管理切换以及预览插件 2014-10-20

    FoxTab 是一款新近发布的 Firefox 扩展插件,可以装点你的Tabs,并以酷炫的幻灯片效果显示给用户. FoxTab 是一款新近发布.能够流畅运行在Mozilla Firefox 平台上的扩展插件,使用它不仅可以方便切换和管理你正在打开的Tabs,同时还能够以令人难以置信的酷炫幻灯片效果显示给用户当前Tabs.目前 FoxTab 提供了Stack (栈重叠).Wall(平滑墙).Grid (层次网络).Row (水平行)以及Circle (三维环绕)五种Tab预览效果.你可以点击这里直

  • js实现网页随机切换背景图片的方法 2013-12-31

    这篇文章主要介绍了js实现网页随机切换背景图片的方法,涉及数组.随机函数与css样式的调用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了js实现网页随机切换背景图片的方法.分享给大家供大家参考.具体实现方法如下: 首先要准备一些图像,图像的大小(无论是尺寸大小还是数据大小)要控制好,如果太大,会使用户等不及查看全图就跳出了,如果太小,又会影响页面质量 在script中将这些图像编为一个数组,便于调用.数组的长度当然就是图像的数量. var bodyBgs = []; //创建一个数

  • 您的企业需要SOA管理吗? 2014-07-07

    [IT专家网独家]SOA管理是我经常谈论的一个话题,得到的反馈也是好坏参半,这是因为对愿意以及方式缺乏了解.不管你的组织开始SOA多长时间,SOA管理都是需要多加注意的.我将首先解释一下SOA管理需要注意的原因,而后再谈一下需要注意的方面. 但在我开始之前,我首先要澄清SOA管理与SOA治理的区别.对于我来说,SOA管理是SOA治理的一部分.SOA治理是由流程.标准以及政策来治理SOA实施的.一个完整的SOA治理解决方案设计注册表.存储.管理变革.服务控制.服务质量.安全等等. 在此我将只谈SO

  • 15个免费WordPress主题无缝兼容移动设备 2014-11-21

    网页设计师最近讨论的热点话题之一就是如何让网站更好的去兼容移动设备包括Android.iPhone.iPad.随着平面电脑和移动手机的不断更新换代,越来越多的移动性能被附属在移动终端上,让所有人都可以随时随地的去浏览网页,聊天,视频,发邮件,还有更多便捷的应用程序.对于网页设计师来说如何让网站更好的兼容移动设备是很多人都在探讨的新问题.下面分享给大家的是15个免费的wordpress主题,你可以通过这些主题来让你的网站无缝的兼容于移动终端! Ari WordPress Theme Ari 是一个

  • WordPress主题结构分析和图文解释 2012-09-25

    基于WordPress平台的强大系统,我们可以创建任何主题,例如企业主题.内容管理主题.视频主题,音乐主题.购物主题等,利用这些主题搭配 WordPress强大的技术,即可创建各式各样的站点.这对于WordPress主题开发者而言,不仅要精通CSS.PHP.HTML等技术,更主要的 还是要掌握和精通WordPress主题框架,就像服装设计师,知道如何设计和装饰衣服,但是不知道衣服的结构,把袖子当成裤腿,岂不是要闹大笑话? 今天,我们以图文结合方式向大家讲述WordPress主题的结构,讲述顺序按

  • Android多主题调研之Overlay机制 2013-09-09

    Miui的多主题效果非常cool,但应该如何实现呢?有些人可能会想到使用Android系统提供的Overlay机制.但是Overlay机制能否实现多主题呢?通过调研,我的答案是:部分实现. 为何是部分实现?究竟什么是部分实现? 部分实现指的是Overlay机制可以实现framework资源的多主题替换,但是无法做到App的多主题.Overlay机制本身的目的是为OEM厂商提供一种替换原生系统资源的机制.通过阅读framework的AssetManager.cpp代码(addAssetPath)可

  • Spread for Windows Forms高级主题(7)---自定义打印的外观 2014-06-11

    表单打印的多个部分都可以进行自定义,大多数的自定义选项存在于PrintInfo对象中.大多数打印选项是在PrintInfo对象上进行设置,并在表单级别上应用.当你执行打印操作时,你将一个特定的表单发送给使用这些设置的打印机.如果你想为不同的表单使用不同的打印设置,那么你可能需要重置PrintInfo对象,然后在表单打印的间隔内做必要的修改. 深入理解打印选项 你可以通过设置PrintInfo对象的 属性,并将表单的PrintInfo属性值设置为该对象,来自定义打印设置.PrintInfo对象提供

  • Spread for Windows Forms高级主题(8)---通过暂停布局提高性能 2014-06-11

    一种改善控件性能的方法是,当需要对许多单元格进行变动时,可以先保持或挂起重画,直到所有的变动都完成时再进行.通过在对单元格修改和重算时保持重画(挂起布局),然后再恢复布局并重画所有单元格控件能够节省很多时间,并且仍然能为用户展现一个全新的界面. 布局对象 布局是一个对象,它保存了计算后的值(像单元格的宽度和高度,合并,以及视图),用来绘制控件的当前状态.这些值可能包括到底有多少视图,每一个视图左上方的单元格是什么,每一行及每一列有多大以及每一个视图有多少单元格是当前可见的,等等.使用布局对象的目

  • magento手机移动设备模板切换的应用和支持 2015-03-03

    如何在magento上实现对手机或移动设备的支持呢,我这篇文章将详细介绍. 一.官方手机移动设备的支持 官方magento从1.5中,已经内置了手机和移动设备应用的支持,这个功能主要是根据官方定义好的结构,将指定的信息提交好,然后到magento上购买指定的服务,并获取Activation Key... 如何在magento上实现对手机或移动设备的支持呢,我这篇文章将详细介绍. 一.官方手机移动设备的支持 官方magento从1.5中,已经内置了手机和移动设备应用的支持,这个功能主要是根据官方定

  • MRCMS 蘑菇内容管理系统 MRCMS 2013-06-23

    MRCMS 网站 : http://cms.yl-blog.com 如果你觉得此项目可以,欢迎你收藏! MRCMS简介 MR 代表的是mushroom,翻译中文为蘑菇.名称灵感来源于七采蘑菇这么一个说法,根据MRCMS自身的一些特点,因此命名为蘑菇内容管理系统.后台采用Java语言和与Java无缝集成的Groovy脚本语言作为支撑,实现系统热部署扩展功能. 项目背景 在开放.自由的中国互联网中,CMS领域做的公司或者个人很多,其中使用PHP.ASP.JSP等语言开发的为主流语言.PHP.ASP.

  • Web在线文件管理 KodExplorer 2013-09-07

    KodExplorer 网站 : http://kalcaddle.com/ KodExplorer是款开源的Web在线文件管理.代码编辑器.它提供了类windows经典用户界面,一整套在线文件管理.文件预览.编辑.上传下载.在线解压缩.音乐播放功能.让你直接在浏览器端实现web开发.源码文件预览.网站部署的同时拥有与本地操作一样方便.快捷.安全的体验. 完美取代落后的FTP工具:客户端软件等复杂的安装配置.kod一键安装随处使用.可用于服务器文件管理,支持图片.音乐.视频预览,在线解压缩,文件

  • 小书匠编辑器 2014-01-30

    小书匠编辑器 网站 : http://markdown.xiaoshujiang.com 小书匠编辑器 小书匠编辑器(以下简称小书编)是一个在线的markdown编辑器,并提供对evernote的支持. 小书编前身为小书匠上的一个文章输入模块,后来在dillinger的基础上,将小书匠原有的代码进行分离再整合,成为现在单独的一个小书编,并一直做为单独功能进行开发维护. 为什么使用javascript做为后台,而不是使用小书匠系统原来使用的python开发?主要是感觉拿python当后台仅仅开发个

  • 开源网店系统 TinyShop 2014-06-17

    TinyShop 网站 : http://www.tinyrise.com TinyShop一款电子商务系统(网店系统),适合企业及个人快速构建个性化网上商店.系统是基于Tiny(自主研发)框架开发的,使系统更加的安全.快捷.稳定.高性能. 演示地址:http://shop.tinyrise.com/ TinyShop简介 软件名称:TinyShop 开发语言:PHP+MySQL 环境要求:PHP 5.x + MySQL 5.x 以上 是否开源:是 系统充分发挥PHP与MySQL的性能,采取MV

  • Google搜索从入门到精通 2014-05-07

    ■ 1.前言 我是在2000年上半年知道Google的.在这之前,我搜索英文信息通常用AltaVista,而搜索中文信息则常用Sina.但自使用了Google之后,它便成为我的Favorite Search engine了.这也得感谢新浪网友曹溪,因为当初正是因为他的大力推介,才使我识得了Google. 记得1996年夏季的时候,当我第一次接触Internet,便被扑面而来的魔力征服了.那种天涯咫尺的感觉,真是妙不可言.在经历了疯狂的WWW冲浪和如痴如醉的BBS沉迷之后,我意识到Internet