网站首页
网站导航
Ctrl+D收藏
首 页
代码段
源码包
文档库
工具箱
代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
JS
】
ExtJS快速开发平台-代码自动生成
作者:
chenjiewb
/ 发布于
2013/3/1
/
1909
package com.webbuilder.controls; import java.util.Iterator; import com.webbuilder.utils.StringUtil; import com.webbuilder.utils.WebUtil; public class ExtControl extends FrontControl { private StringBuilder propertiesBuffer = new StringBuilder(); private StringBuilder eventsBuffer = new StringBuilder(); private StringBuilder stylesBuffer = new StringBuilder(); private StringBuilder objectsBuffer = new StringBuilder(); protected boolean listenersPrefix = true; protected boolean setRender = true; public void create() throws Exception { createScript(); } protected void createScript() throws Exception { if (hasParent) { String xtype = getMeta("xwlXtype"); if (StringUtil.isEmpty(xtype)) xtype = ""; else xtype = StringUtil.concat("xtype:\"", xtype, "\""); headerScript(StringUtil.concat(getComma(), "{", getJson(xtype))); footerScript("}"); if (hasChild) { headerScriptNL(",items:["); footerScript("]"); } } else { String id = gs("id"); headerScript(StringUtil.concat("Wd.", id, "=new ", getMeta("xwlType"), "({")); footerScript("});"); if (setRender) headerScript(getJson("renderTo:Ext.getBody()")); else headerScript(getJson(null)); if (hasChild) { headerScriptNL(",items:["); footerScript("]"); } } } protected String getJson(String moreProperties) throws Exception { StringBuilder buf = new StringBuilder(), event = new StringBuilder(); Iterator<?> names = xwlObject.keys(); String n, val; boolean addComma = false; String meta, tagProperties = null, tagEvents = null, metaType; String reserved[] = getReservedKeys(), tp, te; String expTypes[] = { "boolean", "bind", "express", "object", "date" }; while (names.hasNext()) { n = (String) names.next(); if (n.equals("xwlMeta") || n.equals("children") || reserved != null && StringUtil.indexOf(reserved, n) != -1) continue; val = gs(n); if (StringUtil.isEmpty(val)) continue; if (n.equals("tagProperties")) { tagProperties = val; continue; } if (n.equals("tagEvents")) { tagEvents = val; continue; } meta = getMeta(n); if (StringUtil.isEmpty(meta)) meta = "string"; metaType = StringUtil.getNamePart(meta); if (StringUtil.isSame(metaType, "js")) { if (isProperty(n)) { if (addComma) buf.append(','); else addComma = true; buf.append(n + ":function(" + StringUtil.replace(StringUtil.getValuePart(meta), " ", "") + "){\n"); buf.append(val); buf.append("\n}"); } else { if (event.length() > 0) event.append(','); event.append(n + ":function(" + StringUtil.replace(StringUtil.getValuePart(meta), " ", "") + "){\n"); event.append(val); event.append("\n}"); } } else { if (addComma) buf.append(','); else addComma = true; buf.append(n); buf.append(':'); if (val.startsWith("@")) buf.append(val.substring(1)); else if (StringUtil.indexOf(expTypes, metaType) != -1) buf.append(val); else { if (StringUtil.isEqual(metaType, "url")) val = WebUtil.getUrl(val, false); buf.append(StringUtil.quote(val)); } } } if (!StringUtil.isEmpty(moreProperties)) { if (buf.length() > 0) buf.append(','); buf.append(moreProperties); } tp = getTagProperties(); if (!StringUtil.isEmpty(tp)) { if (buf.length() > 0) buf.append(','); buf.append(tp); } if (!StringUtil.isEmpty(tagProperties)) { if (buf.length() > 0) buf.append(','); buf.append(tagProperties); } te = getTagEvents(); if (!StringUtil.isEmpty(te)) { if (event.length() > 0) event.append(','); event.append(te); } if (!StringUtil.isEmpty(tagEvents)) { if (event.length() > 0) event.append(','); event.append(tagEvents); } if (event.length() > 0) { if (listenersPrefix) { buf.append(",listeners:{"); buf.append(event.toString()); buf.append('}'); } else { buf.append(','); buf.append(event.toString()); } } return buf.toString(); } protected String[] getReservedKeys() throws Exception { return null; } protected String getTagProperties() throws Exception { return ""; } protected String getTagEvents() throws Exception { return ""; } protected void addText(String key, String value) { if (StringUtil.isEmpty(value)) return; if (propertiesBuffer.length() > 0) propertiesBuffer.append(','); propertiesBuffer.append(key); propertiesBuffer.append(':'); if (value.startsWith("@")) propertiesBuffer.append(value.substring(1)); else propertiesBuffer.append(StringUtil.quote(value)); } protected void addExpress(String key, String value) { if (StringUtil.isEmpty(value)) return; if (propertiesBuffer.length() > 0) propertiesBuffer.append(','); propertiesBuffer.append(key); propertiesBuffer.append(':'); if (value.startsWith("@")) propertiesBuffer.append(value.substring(1)); else propertiesBuffer.append(value); } protected void addEvent(String name, String script) { if (StringUtil.isEmpty(script)) return; if (eventsBuffer.length() > 0) eventsBuffer.append(','); eventsBuffer.append(name); eventsBuffer.append(':'); eventsBuffer.append(script); } protected void setStyles(String styles) { if (StringUtil.isEmpty(styles)) return; if (stylesBuffer.length() > 0) stylesBuffer.append(';'); stylesBuffer.append(styles); } protected void addStyle(String key, String value) { if (StringUtil.isEmpty(value)) return; if (stylesBuffer.length() > 0) stylesBuffer.append(';'); stylesBuffer.append(key); stylesBuffer.append(':'); stylesBuffer.append(value); } protected void setObjects(String objects) { if (objects != null && objects.startsWith("{")) objects = objects.substring(1, objects.length() - 1); if (StringUtil.isEmpty(objects)) return; if (objectsBuffer.length() > 0) objectsBuffer.append(','); objectsBuffer.append(objects); } protected void addObject(String key, String value) { if (StringUtil.isEmpty(value)) return; if (objectsBuffer.length() > 0) objectsBuffer.append(','); objectsBuffer.append(key); objectsBuffer.append(':'); if (value.startsWith("@")) objectsBuffer.append(value.substring(1)); else objectsBuffer.append(value); } protected String getPBuffer() { return propertiesBuffer.toString(); } protected String getEBuffer() { return eventsBuffer.toString(); } protected String getOBuffer() { String s = objectsBuffer.toString(); if (StringUtil.isEmpty(s)) return ""; else return StringUtil.concat("{", objectsBuffer.toString(), "}"); } protected String getSBuffer() { return stylesBuffer.toString(); } protected void resetSBuffer() { stylesBuffer.delete(0, stylesBuffer.length()); } protected void resetPBuffer() { propertiesBuffer.delete(0, propertiesBuffer.length()); } protected void resetEBuffer() { eventsBuffer.delete(0, eventsBuffer.length()); } }
评论列表
本站所提供的代码,版权归原作者所有,若有侵犯作者版权,请与我们联系,我们将立即删除或修改。谢谢!
本站所有代码发布及提供者。
试试其它关键字
ExtJS快
同语言下
.
Jquery搜索框获取回车事件
.
H5页面添加倒计时,然后自动跳转
.
通过user-agent判断h5页面是在哪个手机App(QQ、微信
.
nginx 禁止未绑定的域名访问
.
JavaScript 获取按键,并屏蔽系统 Window 事件
.
H5之只允许微信浏览器打开,禁止从外部浏览器访问
.
微信打开网址添加在浏览器中打开提示的办法
.
实现JS复制、粘贴,Chrome/Firefox下可用
.
video视频播放,play()、pause()、duration时长、onen
.
HTML5实现MP3上传前的预览和播放时长的获取
可能有用的
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
判断用户输入的是否为IP地址
chenjiewb
贡献的其它代码
(
3
)
.
给ExtJS Grid增加记录的导航功能
.
高效率的文件复制的Java代码
.
ExtJS快速开发平台-代码自动生成
地图
本站
我们
服务
版权
联系
回馈
博客