CN1487446A - 服务器端应用为浏览器客户端提供用户界面的方法 - Google Patents
服务器端应用为浏览器客户端提供用户界面的方法 Download PDFInfo
- Publication number
- CN1487446A CN1487446A CNA031396135A CN03139613A CN1487446A CN 1487446 A CN1487446 A CN 1487446A CN A031396135 A CNA031396135 A CN A031396135A CN 03139613 A CN03139613 A CN 03139613A CN 1487446 A CN1487446 A CN 1487446A
- Authority
- CN
- China
- Prior art keywords
- assembly
- user interface
- event
- server end
- script
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
一种“服务器端应用”为浏览器客户端提供用户界面的方法,特别是该服务器端应用采用组件技术,即把用户界面元素封装成组件,把用户对界面元素的操作封装成组件事件,来实现在浏览器上显示用户界面,该应用所执行的步骤包括:i.接收浏览器提交的HTTP请求;ii.处理报文生成参列表;iii.从会话中获取当前窗口组件列表;iv.组件处理;v.生成XML文件;vi.通过XSL转换输出HTML文件。采用所述方法来构建基于Java的应用的用户界面,可以做到代码标准化程度高、界面丰富且操作简单、易于国际化应用,并且在不同浏览器平台间移植方便。
Description
技术领域
本发明涉及电数字数据处理方法中的文本处理方法,特别是涉及为浏览器产生HTML(超文本标记语言)文件的方法,尤其是涉及服务器端应用为浏览器客户端提供HTML文件的方法。
背景技术
运行于Internet(因特网)和/或Intranet(企业内部网)环境的应用程序,通常采用B/S(浏览器服务器)结构,即在服务器上安装应用程序(以下称“服务器端应用”),在用户终端(以下称“客户端”)运行浏览器程序来实现对该应用程序的使用。这就要求服务器端应用为客户端浏览器提供各种各样的用户界面。现有技术中,用户界面通常使用HTML(超文本标记语言)语言来构建,这种方法存在着一些缺陷:代码标准化程度低,代码冗余度高,不易复用或重用;用户界面简单,操作性差,不易开发复杂的界面;不易于进行服务器端应用的多语言国际化开发;在浏览器平台间的移植工作量大。
发明内容
本发明的要解决的技术问题在于避免上述现有技术的不足之处而提出一种服务器端应用为浏览器客户端提供HTML文件的方法。
本发明解决上述技术问题采用的技术方案是,提出一种服务器端应用为浏览器客户端提供用户界面的方法,特别是所述服务器端应用采用组件技术,即把用户界面元素封装成组件,把用户对界面元素的操作封装成组件事件,来实现在浏览器上显示用户界面,该应用所执行的步骤包括:
i.接收浏览器提交的HTTP(超文本传输协议)请求;
ii.处理报文生成参列表;
iii.从会话中获取当前窗口组件列表;
iv.组件处理;
v.生成XML(界面描述可扩展标记语言)文件;
vi.通过XSL(可扩展标记语言样式单)转换输出HTML(超文本标记语言)文件;
所述步骤iv中包括如下子步骤:
a.判断是否还有未处理的组件,是则进入下一步;否则,处理结束退出;
b.判断参数中是否有该待处理组件的信息,是则进入下一步;否则,返回步骤a;
c.更新组件数据;
d.判断该组件中是否有事件监听器,是则进入下一步;否则,返回步骤a;
e.触发组件事件,返回步骤a。
同现有技术相比较,采用本发明方法来构建服务器端应用的用户界面,可以做到:代码标准化程度高、界面丰富且操作简单、易于国际化应用,并且在不同浏览器平台间移植方便。
附图说明
图1为本发明服务器端应用为浏览器客户端提供用户界面的方法的流程图。
图2为图1所示组件处理步骤140的详细流程图。
图3为图2所示触发组件事件200引发的事件处理过程流程图。
图4为把XUS(可扩展标记语言用户截面定义脚本)源文件解释为组件过程流程图。
图5为用本发明方法构建用户界面例一的流程图。
图6为用本发明方法构建用户界面例二的流程图。
图7为用本发明方法构建用户界面例三的流程图。
图8为采用本发明方法构建的用户界面例一示意图。
图9为采用本发明方法构建的用户界面例二示意图。
图10为采用本发明方法构建的用户界面例三示意图。
具体实施方式
以下结合附图所示之最佳实施例作进一步详述。
本发明服务器端应用为浏览器客户端提供用户界面的方法,特别是该服务器端应用采用组件技术,即把用户界面元素封装成组件,把用户对界面元素的操作封装成组件事件,来实现在浏览器上显示用户界面,该应用所执行的步骤如图1所示,包括:
i.接收浏览器提交的HTTP(超文本传输协议)请求110;
ii.处理报文生成参数列表120;
iii.从会话中获取当前窗口组件列表130;
iv.组件处理140;
v.生成XML(界面描述可扩展标记语言)文件150;
vi.通过XSL(可扩展标记语言样式单)转换输出HTML(超文本标记语言)文件160;
所述步骤iv如图2所示,包括如下子步骤:
a.判断是否还有未处理的组件141,是则进入下一步;否则处理结束退出;
b.判断参数中是否有该待处理组件的信息142,是则进入下一步;否则返回步骤a;
c.更新组件数据143;
d.判断该组件中是否有事件监听器144,是则进入下一步;否则返回步骤a;
e.触发组件事件200,返回步骤a。
本发明服务器端应用为浏览器客户端提供用户界面的方法,具体的组件情况说明如下:Component是所有组件的基类,定义了组件的基本方法。
方法:
事件:
名称 | 说明 |
attach | 当控件加入到应用中被调用的方法,通常覆盖该方法来进行控件的初始化操作。 |
detach | 当控件从应用中移除时被调用的方法。 |
getApplication | 获取组件所在的应用。 |
getWindow | 获取组件所在的窗口。 |
getCaption | 获取组件的标题,组件的标题通常显示在组件的上方。 |
getIcon | 获取组件的图标,组件的图标通常显示在组件标题的左边。 |
getStyle | 获取组件的style(样式),部分组件支持不同的style。 |
setStyle | 设置组件的style。 |
getUserData | 获取组件的用户数据,用户数据是供程序使用的,同组件关联Object对象。 |
setUserData | 设置组件的用户数据。 |
isEnabled | 判断组件是否为禁用模式。 |
setEnabled | 设置组件的禁用模式。 |
isImmediate | 判断组件是否为立即模式。立即模式的组件,当用户改变了组件的属性后将立即触发事件。 |
isReadOnly | 判断组件是否为只读模式,只读模式组件的属性不能够被修改。 |
setReadOnly | 设置组件的只读模式。 |
isVisible | 判断组件是否可见。 |
setVisible | 设置组件是否可见。 |
名称 | 说明 |
无 |
ComponentContainer是所有组件容器的基类,定义了组件容器的基本方法。组件容器是可以包含其他组件的组件,最常用的就是各种Layout,Panel,TabSheet和Window。
方法:
名称 | 说明 |
addComponent | 向容器中添加一个新的组件。 |
moveComponentsFrom | 把其他组件容器中的组件移动到该容器中。 |
removeAllComponents | 删除组件容器中的所有组件。 |
removeComponent | 删除组件容器中的指定组件。 |
事件:
名称 | 说明 |
ComponentAttachListener | 当容器中添加新的组件触发的事件。 |
ComponentDetachListener | 当容器中删除组件触发的事件。 |
AbstractField是所有输入域组件的基类,WebUI中的输入域组件包括:Button,DateField,Select,TextField,Table和Tree。
方法:
名称 | 说明 |
addValidator | 添加一个Validator交验器到该组件,Validator可以用于校验用户输入的合法性。 |
getValidators | 获取该组件所有的Validator交验器。 |
removeValidator | 删除一个组件的Validator交验器。 |
focus | 设置当前控件为输入焦点。 |
getPropertyDataSource | 获取组件的Property数据源。 |
setPropertyDataSource | 设置组件的Property数据源。 |
getType | 获取组件的值的类型。组件的值是Object对象,通过getType方法来获取类型。 |
getValue | 获取组件的值,通常是String类型。 |
setValue | 设置组件的值。 |
isModified | 判断组件的值是否被修改过。 |
isValid | 判断用户的输入是否有效。该函数调用组件所有的Validator交验器进行校验。 |
事件:
名称 | 说明 |
ReadOnlyStatusChangeEvent | 组件readonly(只读)状态转换触发的事件。 |
ValueChangeEvent | 组件值改变触发的事件。该事件通常用于捕获用户在Select,Table和Tree组件中进行的操作。 |
TextField文字输入框组件用于让用户输入字符串。TextField有单行和多行的模式。通常,TextField组件配合Validator使用用于检验用户输入信息的有效性。
方法:
名称 | 说明 |
getColumns | 返回TextField输入框的列数。 |
setColumns | 设置TextField输入框的列数。 |
getRows | 返回TextField输入框的行数。 |
setRows | 设置TextField输入框的行数。 |
setSecret | 设置TextField输入框的密码模式。 |
isSecret | 判断TextField输入框是否为密码模式。 |
setWordwrap | 设置TextField输入框的自动折行。 |
isWordwrap | 判断TextField输入框是否自动折行。 |
事件:
名称 | 说明 |
无 |
DataField组件让用户输入日期和时间。
方法:
名称 | 说明 |
getResolution | 获取组件的时间精度,有以下的值:RESOLUTION_DAY:精确到日RESOLUTION_HOUR:精确到小时RESOLUTION_MIN:精确到分钟RESOLUTION_MONTH:精确到月RESOLUTION_MSEC:精确到毫秒RESOLUTION_SEC:精确到秒RESOLUTION_YEAR:精确到年 |
setResolution | 设置组件的时间精度。 |
事件:
名称 | 说明 |
无 |
Button组件用于显示一个按钮。
方法:
名称 | 说明 |
getConfirmnMessage | 获取组件的确认提示信息。如果确认提示不为空,那么当用户点击按钮时,会显示确认提示信息并要求用户确认。 |
setConfirmMessage | 设置组件的确认提示信息。 |
isSwitchMode | 判断组件是否为开关模式,开关模式的按钮现实为一个checkbox(选取框)。 |
setSwitchMode | 设置组件的开关模式。 |
事件:
名称 | 说明 |
无 |
Label组件用于显示一段文本。可以设置Label为XHTML内容模式来显示一段XHTML代码(XHTML必须符合XML语法,否则会产生错误)。
方法:
名称 | 说明 |
getContentMode | 获取组件的内容模式,有以下的选项:CONTENT_DEFAULT:默认纯文本模式CONTENT_PREFORMATTED:预先格式化模式 |
CONTENT_TEXT:文本模式CONTENT_UIDL:UIDL模式CONTENT_XHTML:XHTML模式CONTENT_XML:XML模式 | |
setContentMode | 设置组件的内容模式。 |
getPropertyDataSource | 获取组件的Property数据源。 |
setPropertyDataSource | 设置的Property数据源。 |
事件:
名称 | 说明 |
无 |
Link组件用于显示一个链接,可以连接到一个外部资源(例如:网站)。
方法:
名称 | 说明 |
getResource | 获取组件连接的资源,最常用的是ExternalResource。 |
setResource | 设置组件连接的资源。 |
getTargetBorder | 获取连接窗口的边框类型。 |
setTargetBorder | 设置连接窗口的边框类型。 |
getTargetHeight | 获取连接窗口的高度。 |
setTargetHeight | 设置连接窗口的高度。 |
getTargetName | 获取连接窗口的名称。 |
setTargetName | 设置连接窗口的名称。 |
getTargetWidth | 获取连接窗口的宽度。 |
setTargetWidth | 设置连接窗口的宽度。 |
事件:
名称 | 说明 |
无 |
Select组件用于让用户来选择一个选项。
方法:
名称 | 说明 |
getContainerDataSource | 获取组件的Container数据源。 |
setContainerDataSource | 设置组件的Container数据源。 |
addItem | 添加一个选项。 |
getItemIds | 获取所有的选项。 |
getItem | 获取指定的选项。 |
removeItem | 删除一个选项。 |
removeAllItems | 删除所有的选项。 |
getItemCaption | 获取选项的标题。 |
setItemCaption | 设置选项的标题。 |
getItemIcon | 获取选项的图标。 |
setItemIcon | 设置选项的图标。 |
isMultiSelect | 判断组件是否为多选模式。 |
setMultiSelect | 设置组件的多选模式。 |
isNewItemsAllowed | 判断组件是否允许添加新的选项。 |
setNewItemsAllowed | 设置组件是否允许添加新的选项。 |
isSelected | 判断指定的选项是否被选中。 |
select | 选中指定的选项。 |
unselect | 不选中指定的选项。 |
size | 获取选项的个数。 |
事件:
名称 | 说明 |
无 |
Table组件用于显示数据记录列表。
方法:
名称 | 说明 |
addActionHandler | 添加记录操作处理程序,可以为记录设置子操作。 |
removeActionHandler | 删除记录操作处理程序。 |
getColumnAlignments | 获取列的对齐方式。 |
setColumnAlignments | 设置列的对齐方式。 |
getColumnHeaders | 获取列的标题。 |
setColumnHeaders | 设置列的标题。 |
getColumnIcons | 获取列的图标。 |
setColumnIcons | 设置列的图标。 |
getCurrentPageFirstItemId | 获取当前页的第一项。 |
setCurrentPageFirstItemId | 设置当前页的第一项。 |
getCurrentPageFirstItemIndex | 获取当前页的第一项的索引。 |
setCurrentPageFirstItemIndex | 设置当前页的第一项的索引。 |
isSelectable | 判断当前的表格中的项是否可以选择。 |
setSelectable | 设置当前的表格中的项是否可以选择。 |
refreshCurrentPage | 刷新当前页的数据。 |
setPageLength | 设置每页显示的记录数。 |
事件:
名称 | 说明 |
无 |
Tree组件用于显示一个树型视图。
方法:
名称 | 说明 |
addActionHandler | 添加节点操作处理程序,可以为节点设置子操作。 |
removeActionHandler | 删除节点操作处理程序。 |
areChildrenAllowed | 判断某个节点是否允许拥有子节点。 |
setChildrenAllowed | 设置某个节点是否允许拥有子节点。 |
collapseItem | 关闭树的节点。 |
collapseItemsRecursively | 递归关闭树的节点。 |
expandItem | 展开树的节点。 |
expandItemsRecursively | 递归展开树的节点。 |
getChildren | 获取指定节点的子节点。 |
getParent | 获取指定节点的父节点。 |
setParent | 设置指定节点的父节点。 |
hasChildren | 判断指定节点是否包含子节点。 |
isExpanded | 判断指定节点是否展开。 |
isRoot | 判断指定节点是否为根节点。 |
rootItemIds | 获取树的所有子节点。 |
isSelectable | 判断树是否可以选择。 |
setSelectable | 设置树是否可以选择。 |
事件:
名称 | 说明 |
CollapseListener | 展开树的节点时触发的事件。 |
ExpandListener | 关闭树的节点时触发的事件。 |
MainMenu用于显示一个应用的主菜单。可以用CIResource工具类来从一个xml资源文件中载入菜单。
方法:
名称 | 说明 |
addMenuItem | 添加一个菜单项。 |
事件:
名称 | 说明 |
CommandListener | 用户选择菜单项触发的事件。 |
Toolbar组件用于显示一个工具条。可以用CIResource工具类来从一个xml资源文件中载入工具条。
方法:
名称 | 说明 |
addToolbarBar | 添加添加一个工具条。 |
getToolbarBar | 获取指定的工具条。 |
getToolbarBars | 获取所有的工具条。 |
addButton | 在指定的工具条上添加一个按钮。 |
addSeparator | 在指定的工具条上添加一个分隔条。 |
getToolbarWidth | 获取组件的宽度。 |
setToolbarWidth | 设置组件的宽度。 |
事件:
名称 | 说明 |
CommandListener | 用户选择菜单项触发的事件。 |
WebEditor组件用于在窗口中使用一个所见即所得的HTML编辑器。
方法:
名称 | 说明 |
getValue | 获取编辑器中的内容。 |
setValue | 设置编辑器中的内容。 |
事件:
名称 | 说明 |
无 |
Calendar组件用于显示一个日程安排的日历。
方法:
名称 | 说明 |
getDate | 获取日历的当前日期。 |
setDate | 设置日历的当前日期。 |
getTasksDataSource | 获取日历的日程数据源。 |
setTasksDataSource | 设置日历的日程数据源。 |
getTasksRows | 获取每日任务显示的条数。 |
setTasksRows | 设置每日任务显示的条数。 |
getTaskTextLimt | 获取任务显示的宽度。 |
setTaskTextLimt | 设置任务显示的宽度。 |
事件:
名称 | 说明 |
CalenderListener | 当用户点击了日程中的任务触发的事件。 |
OrderedLayout布局是将组件横向或纵向依次排列的布局。
方法:
名称 | 说明 |
getOrientation | 获取OrderedLayout布局的方向,有以下值:ORIENTATION_HORIZONTAL:横向ORIENTATION_VERTICAL:纵向 |
setOrientation | 设置OrderedLayout布局的方向。 |
GridLayout布局是将组件放置在网格中的布局。每个组件可以占据布局中的一个或多个连续的网格。
方法;
名称 | 说明 |
getCursorX | 获取当前游标的行。 |
getCursorY | 获取当前游标的列。 |
newLine | 将当前游标移到下一行。 |
space | 将当前游标移到下一列。 |
setWidth | 设置布局的列数。 |
getWidth | 获取布局的列数。 |
setHeight | 设置布局的行数。 |
getHeight | 获取布局的行数。 |
AlignmentLayout布局可以设置宽度,高度和对其方式,通常嵌套在其他的布局中使用。
方法:
名称 | 说明 |
getAlign | 获取横向对齐模式,有以下的值:ALIGN_center:居中对齐ALIGN_left:左对齐ALIGN_right:右对齐 |
setAlign | 设置横向对齐模式。 |
getValign | 获取纵向对齐模式,有以下的值:VALIGN_BASELINE:基线对齐VALIGN_bottom:底线对齐VALIGN_middle:中线对齐VALIGN_top:顶线对齐 |
setValign | 设置纵向对齐模式。 |
Panel组件拥有标题和边框,通常用于组合一系列功能相关的组件。
TabSheet用于显示一个属性页。
方法:
名称 | 说明 |
addTab | 添加一个属性页。 |
getSelectedTab | 获取当前选中的属性页。 |
setSelectedTab | 设置当前选中的属性页。 |
getTabIeon | 获取属性页的图标。 |
setTabIcon | 设置属性页的图标。 |
getTabCaption | 获取属性页的标题。 |
setTabCaption | 设置属性页的标题。 |
事件:
名称 | 说明 |
SelectedTabChangeListener | 用户切换属性页触发的事件。 |
Embedded组件用于在窗口中嵌入图片或对象。
方法:
名称 | 说明 |
getSouree | 获取图片的资源。 |
setSource | 设置图片的资源。 |
事件:
名称 | 说明 |
无 |
Upload组件用于上传文件。
方法:
名称 | 说明 |
setReceiver | 设置 |
getReceiver |
事件:
名称 | 说明 |
FailedListener | 上传文件失败触发的事件。 |
FinishedListener | 上传文件结束触发的事件。 |
SueceededListener | 上传文件成功触发的事件。 |
HtmlSegment用于在窗口中直接输出HTML代码片断。
方法:
名称 | 说明 |
setValue | 设置HTML代码片断的内容。 |
getValue | 获取HTML代码片断的内容。 |
事件:
名称 | 说明 |
无 |
以下通过几个具体的界面生成过程,对本发明方法的组件技术予以进一步说明,这些过程可以应用于各种基于Java Servlet(服务器端小程序)技术的B/S结构应用程序开发。
例一:
界面效果如图8所示,其生成过程如图5所示,包括的步骤有:创建日期输入域组件;添加日期输入域组件事件监听器;创建标签组件;获取用户选择的日期;触发日期输入域组件事件;设置标签组件显示用户所选择的日期。
例二:
界面效果如图9所示,其生成过程如图6所示,包括的步骤有:获取应用资源;从资源中载入菜单;从资源中工具条;创建标签组件;获取用户选择的菜单或工具条;触发命令事件;设置标签组件显示用户所选择的命令。
例三:
界面效果如图10所示,其生成过程如图7所示,包括的步骤有:创建网页编辑器组件;创建按钮组件;添加按钮组件事件监听器;创建HTML片段组件;获取用户对网页的设计和对按钮的点击;触发按钮组件事件;设置HTML片段组件,显示用户所设计的网页。
在本发明方法的组件处理过程中产生的触发组件事件,会引发服务器端应用进入组件处理,该过程所述应用执行如下步骤:
a.判断事件处理过程是否用BLS(业务逻辑脚本)编写,是则进入下一步;否则,
调用用户的事件处理过程,结束退出;
b.调用脚本系统的事件处理过程;
c.判断该事件的脚本是否在脚本系统中注册,是则进入下一步;否则,结束退出;
d.调用脚本;
e.判断是否有异常产生,是则进入下一步,否则,结束退出;
g.处理异常,结束退出;
本发明方法可以通过构建一个解释器来利用XUS(可扩展标记语言用户截面定义脚本)源文件解释生成有关的组件,这样用户在设计组件时,就只需编写XUS文件,大大简化了用户界面的生成过程,在该解释过程中,解释器所执行的步骤包括:
a.解析源文件,构造元素树;
b.判断是否有未处理的元素,是则进入下一步;否则,添加创建的组件到脚本变量环境,处理结束退出;
c.根据元素所属的类型,创建该类型,然后进入下一步;即:是资源,则创建资源;是变量,则创建变量;是函数,则创建函数;是脚本片段,则创建脚本片段;如果是界面对象,处理完该对象进入下一步,所述界面对象的处理包括步骤:
1.断是否有未处理的子元素,是则进入下一步,否则处理结束,退出;
2.创建子元素对应的组件,返回步骤1;
d.保存创建的对象到列表,返回步骤b。
本发明方法,可构建一用户界面风格管理程序模块,其功能是从各种数据源载入用户界面风格配方,该程序模块应用于通过XSL(可扩展标记语言样式单)转换输出HTML(超文本标记语言)文件的过程中,以生成应用的不同风格操作界面。这样,无需修改任何应用程序的情况下:
1.可以生成不同风格的操作界面,例如:Windows风格操作界面,Mac风格操作界面等。
2.可以生成对于不同终端的支持,除了可以支持IE,Netscape/Mozilla等PC浏览器外,还可以通过特定的XSL生成支持WAP手机的WML用户界面。
本发明方法,使用一种XUS(XML User interface Script)XML用户界面脚本语言,可以通过编写一个XML文件来制作出B/S结构应用的用户界面。使用支持XUS语言的集成开发环境,编程者就能够可视化设计用户界面,提高开发效率。使用XUS来开发用户界面还有一个非常显著的优势在于可以在应用发布后仅修改应用的XUS资源,而无需重新编写程序就能够完成对用户界面的重新定制。
本发明方法,使用一种BLS(业务逻辑脚本)语言。BLS语言是一种类Java语法的脚本语言,可以用于在XUS文件中来处理用户操作了界面组件后产生的事件。使用BLS语言,可以实现在应用的发布后通过修改脚本来订制应用的业务逻辑而不必重新编译源程序。BLS和XUS一起为应用系统的灵活定制提供了一种非常好的机制。
采用本发明方法,能够使软件开发分工更趋于明确和合理:
1.精通技术细节的高级程序员开发各种界面组件。
2.熟悉业务逻辑的程序员选取界面组件来处理业务逻辑,而不必了解界面组件内部实现的复杂技术。
3.美术人员独立编写Theme(界面风格配方),而不会涉及到任何程序。
采用本发明方法,能够大幅度提高基于Java的B/S结构应用程序用户界面的开发效率和质量。
Claims (10)
1.一种“服务器端应用”为浏览器客户端提供用户界面的方法,其特征在于:
所述服务器端应用采用组件技术,即把用户界面元素封装成组件,把用户对界面元素的操作封装成组件事件,来实现在浏览器上显示用户界面,该服务器端应用所执行的步骤包括:
i.接收浏览器提交的HTTP(超文本传输协议)请求;
ii.处理报文生成参列表;
iii.从会话中获取当前窗口组件列表;
iv.组件处理;
v.生成XML(界面描述可扩展标记语言)文件;
vi.通过XSL(可扩展标记语言样式单)转换输出HTML(超文本标记语言)文件;
所述步骤iv中包括如下子步骤:
a.判断是否还有未处理的组件,是则进入下一步;否则,处理结束退出;
b.判断参数中是否有该待处理组件的信息,是则进入下一步;否则,返回步骤a;
c.更新组件数据;
d.判断该组件中是否有事件监听器,是则进入下一步;否则,返回步骤a;
e.触发组件事件,返回步骤a。
2.如权利要求1所述服务器端应用为浏览器客户端提供用户界面的方法,其特征在于:
所有组件包括一基类,该基类定义了组件的基本方法,包括:
当组件加入到应用中被调用的方法;
当组件从应用中移除时被调用的方法;
获取组件所在的应用;
获取组件所在的窗口;
获取组件的标题;
获取组件的图标;
获取组件的风格;
设置组件的风格;
获取组件的用户数据;
判断组件是否为禁用模式;
设置组件的禁用模式;
判断组件是否为立即模式;
判断组件是否为只读模式;
设置组件的只读模式;
判断组件是否可见;
设置组件是否可见。
3.如权利要求2所述服务器端应用为浏览器客户端提供用户界面的方法,其特征在于:
所有组件容器,指可以包含其它组件的组件,包括一基类,该基类定义了组件容器的基本方法,包括:
向容器中添加一个新的组件;
把其他组件容器中的组件移动到该容器中;
删除组件容器中的所有组件
删除组件容器中的指定组件;
当容器中添加新的组件触发的事件;
当容器中删除组件触发的事件。
4.如权利要求2所述服务器端应用为浏览器客户端提供用户界面的方法,其特征在于:
所有输入域组件包括一基类,该基类定义了输入域组件的基本方法,包括:添加一个有效指示交验器到该组件,该交验器可以用于校验用户输入的合法性;获取该组件所有的有效指示交验器;删除一个组件的有效指示交验器;设置当前组件为输入焦点;获取组件的拥有的数据源;设置组件的拥有的数据源;获取组件的值的类型;获取组件的值;设置组件的值;判断组件的值是否被修改过;判断用户的输入是否有效;组件只读状态转换触发的事件;组件值改变触发的事件。
5.如权利要求1至4中任一项所述服务器端应用为浏览器客户端提供用户界面的方
法,其特征在于:所述组件,包括:文字输入框,用于让用户输入字符串;日期,让用户输入日期和时间;按钮,用于显示一个按钮;标签,用于显示一段文本;链接,用于显示一个链接,可以连接到一个外部资源;选择,用于让用户来选择一个选项;表格,用于显示数据记录列表;树,用于显示一个树型视图;主菜单,用于显示一个应用的主菜单;工具条,用于显示一个工具条;页面编辑器,用于在窗口中使用一个所见即所得的HTML编辑器;日历,用于显示一个日程安排的日历;排序布局,是将组件横向或纵向依次排列的布局;网格布局,是将组件放置在网格中的布局;对齐布局,可以设置宽度,高度和对齐方式,通常嵌套在其他的布局中使用;面板,拥有标题和边框,通常用于组合一系列功能相关的组件;表单,用于显示一个属性页;嵌入,用于在窗口中嵌入图片或对象;上传,用于上传文件;HTML代码片断,用于在窗口中直接输出HTML代码片断。
6.如权利要求1所述服务器端应用为浏览器客户端提供用户界面的方法,其特征在于:
所述子步骤e中的触发组件事件,引发服务器端应用执行如下步骤:
a.判断事件处理过程是否用BLS(业务逻辑脚本)编写,是则进入下一步;否则,调用用户的事件处理过程,结束退出;
b.调用脚本系统的事件处理过程;
c.判断该事件的脚本是否在脚本系统中注册,是则进入下一步;否则,结束退出;
d.调用脚本;
e.判断是否有异常产生,是则进入下一步,否则,结束退出;
f.处理异常,结束退出;
7.如权利要求1所述服务器端应用为浏览器客户端提供用户界面的方法,其特征在于:
可构建一个解释器,用于把XUS(可扩展标记语言用户截面定义脚本)源文件解释为所述的组件,该解释器所执行的步骤包括:
a.解析源文件,构造元素树;
b.判断是否有未处理的元素,是则进入下一步;否则,添加创建的组件到脚本变量环境,处理结束退出;
c.根据元素所属的类型,创建该类型,然后进入下一步;即:是资源,则创建资源;是变量,则创建变量;是函数,则创建函数;是脚本片段,则创建脚本片段;
如果是界面对象,处理完该对象进入下一步,所述界面对象的处理包括步骤:
1.判断是否有未处理的子元素,是则进入下一步,否则处理结束,退出;
2.创建子元素对应的组件,返回步骤1;
d.保存创建的对象到列表,返回步骤b。
8.如权利要求1所述服务器端应用为浏览器客户端提供用户界面的方法,其特征在于:
可构建用户界面风格管理程序模块,其功能是从各种数据源载入用户界面风格配方,该程序模块应用在所述步骤vi中,以生成应用的不同风格操作界面。
9.如权利要求6所述服务器端应用为浏览器客户端提供用户界面的方法,其特征在于:
所述BLS是一种类Java语法的脚本,用于在XUS文件中处理用户界面组件后产生的事件,可以实现服务器端应用发布后不必重新编译源程序而更改用户界面。
10.如权利要求1所述服务器端应用为浏览器客户端提供用户界面的方法,其特征在于:所述服务器端应用基于Java。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA031396135A CN1487446A (zh) | 2003-06-24 | 2003-06-24 | 服务器端应用为浏览器客户端提供用户界面的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA031396135A CN1487446A (zh) | 2003-06-24 | 2003-06-24 | 服务器端应用为浏览器客户端提供用户界面的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1487446A true CN1487446A (zh) | 2004-04-07 |
Family
ID=34155031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA031396135A Pending CN1487446A (zh) | 2003-06-24 | 2003-06-24 | 服务器端应用为浏览器客户端提供用户界面的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1487446A (zh) |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100340997C (zh) * | 2004-09-04 | 2007-10-03 | 华为技术有限公司 | 一种应用程序的自动测试方法 |
CN100343802C (zh) * | 2004-05-10 | 2007-10-17 | 华为技术有限公司 | 统一用户界面的方法及系统 |
CN100349490C (zh) * | 2004-09-13 | 2007-11-14 | 英华达(南京)科技有限公司 | 复制手持设备软件界面的方法 |
CN100390735C (zh) * | 2004-12-06 | 2008-05-28 | 国际商业机器公司 | 用于产生图形用户接口模型的方法和系统 |
CN100418055C (zh) * | 2005-10-04 | 2008-09-10 | 国际商业机器公司 | 用户界面窗口小部件单元共享的方法和系统 |
CN100481002C (zh) * | 2007-04-18 | 2009-04-22 | 杭州华三通信技术有限公司 | 一种Web界面扩展方法和装置 |
CN101080055B (zh) * | 2006-12-21 | 2010-06-16 | 腾讯科技(深圳)有限公司 | 一种基于手机浏览器快速浏览网页的方法、系统及设备 |
CN101078987B (zh) * | 2006-05-24 | 2010-06-23 | 国际商业机器公司 | 用于针对万维网应用创建定制的包装的方法、装置和系统 |
CN101924982A (zh) * | 2009-06-10 | 2010-12-22 | 中兴通讯股份有限公司 | 一种实现数据类业务的方法及系统 |
CN102170439A (zh) * | 2011-04-20 | 2011-08-31 | 深圳创维-Rgb电子有限公司 | 一种应用服务扩展系统 |
CN102207872A (zh) * | 2011-06-04 | 2011-10-05 | 中国移动通信集团内蒙古有限公司 | 按照用户需求定制Web UI控件的方法和系统 |
WO2012068885A1 (zh) * | 2010-11-23 | 2012-05-31 | 腾讯科技(深圳)有限公司 | 一种编辑应用网页的方法及应用网页编辑装置 |
CN102576283A (zh) * | 2009-09-24 | 2012-07-11 | 三星电子株式会社 | 用于提供可定制的远程用户界面页的装置和方法 |
CN102591647A (zh) * | 2010-12-27 | 2012-07-18 | 微软公司 | 将桌面应用转换成web应用 |
CN101876998B (zh) * | 2009-12-07 | 2012-11-28 | 金蝶软件(中国)有限公司 | 一种实现数据编辑的方法和系统 |
CN101645872B (zh) * | 2008-08-05 | 2012-12-19 | 北京大学 | 一种互联网大规模应用环境的商用服务系统及其工作方法 |
CN102981877A (zh) * | 2012-11-28 | 2013-03-20 | 北京奇虎科技有限公司 | 图片工具条加载方法和装置 |
CN103064609A (zh) * | 2011-10-21 | 2013-04-24 | 联想(北京)有限公司 | 一种扩展信息的显示方法和装置 |
CN103500190A (zh) * | 2012-03-31 | 2014-01-08 | 奇智软件(北京)有限公司 | 一种图标内容更新方法及更新装置 |
CN103617064A (zh) * | 2013-12-09 | 2014-03-05 | 五八同城信息技术有限公司 | 一种改进的移动客户端产品更新的方法 |
CN104020996A (zh) * | 2014-06-13 | 2014-09-03 | 中国民航信息网络股份有限公司 | 指令前端系统及相应的指令前端交互方法 |
CN104054050A (zh) * | 2011-10-28 | 2014-09-17 | 多若公司 | 用于移动通信终端的用户接口的改进的配置 |
CN101964949B (zh) * | 2006-03-27 | 2014-11-26 | 三星电子株式会社 | 用于管理无线一键通话箱服务的方法和系统 |
CN104598242A (zh) * | 2015-01-28 | 2015-05-06 | 贵州省邮电规划设计院有限公司 | 利用基于web端的自然式应用交互界面实现直观操作的方法 |
CN104683317A (zh) * | 2013-12-03 | 2015-06-03 | 腾讯科技(深圳)有限公司 | Ui数据的提取方法、客户端、服务器及系统 |
CN104756072A (zh) * | 2012-11-02 | 2015-07-01 | 微软公司 | 使用公共描述的跨平台数据可视化 |
CN105446710A (zh) * | 2014-08-06 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 界面提供系统及界面提供方法 |
CN105653750A (zh) * | 2014-12-03 | 2016-06-08 | 航天科工仿真技术有限责任公司 | 人机界面三维设计系统中组件布局的实现方法 |
CN106997298A (zh) * | 2016-01-22 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种应用资源获取方法及装置 |
CN107657420A (zh) * | 2016-07-25 | 2018-02-02 | 武汉票据交易中心有限公司 | 一种基于事件的流程处理方法及系统 |
CN111158645A (zh) * | 2019-12-10 | 2020-05-15 | 杭州中天微系统有限公司 | 提供集成开发环境的系统和方法 |
CN112926288A (zh) * | 2019-12-06 | 2021-06-08 | 北京阿博茨科技有限公司 | 一种商业智能数据可视化方法、系统、设备以及可读存储介质 |
-
2003
- 2003-06-24 CN CNA031396135A patent/CN1487446A/zh active Pending
Cited By (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100343802C (zh) * | 2004-05-10 | 2007-10-17 | 华为技术有限公司 | 统一用户界面的方法及系统 |
CN100340997C (zh) * | 2004-09-04 | 2007-10-03 | 华为技术有限公司 | 一种应用程序的自动测试方法 |
CN100349490C (zh) * | 2004-09-13 | 2007-11-14 | 英华达(南京)科技有限公司 | 复制手持设备软件界面的方法 |
CN100390735C (zh) * | 2004-12-06 | 2008-05-28 | 国际商业机器公司 | 用于产生图形用户接口模型的方法和系统 |
CN100418055C (zh) * | 2005-10-04 | 2008-09-10 | 国际商业机器公司 | 用户界面窗口小部件单元共享的方法和系统 |
CN101964949B (zh) * | 2006-03-27 | 2014-11-26 | 三星电子株式会社 | 用于管理无线一键通话箱服务的方法和系统 |
CN101078987B (zh) * | 2006-05-24 | 2010-06-23 | 国际商业机器公司 | 用于针对万维网应用创建定制的包装的方法、装置和系统 |
CN101080055B (zh) * | 2006-12-21 | 2010-06-16 | 腾讯科技(深圳)有限公司 | 一种基于手机浏览器快速浏览网页的方法、系统及设备 |
CN100481002C (zh) * | 2007-04-18 | 2009-04-22 | 杭州华三通信技术有限公司 | 一种Web界面扩展方法和装置 |
CN101645872B (zh) * | 2008-08-05 | 2012-12-19 | 北京大学 | 一种互联网大规模应用环境的商用服务系统及其工作方法 |
CN101924982A (zh) * | 2009-06-10 | 2010-12-22 | 中兴通讯股份有限公司 | 一种实现数据类业务的方法及系统 |
CN102576283A (zh) * | 2009-09-24 | 2012-07-11 | 三星电子株式会社 | 用于提供可定制的远程用户界面页的装置和方法 |
CN101876998B (zh) * | 2009-12-07 | 2012-11-28 | 金蝶软件(中国)有限公司 | 一种实现数据编辑的方法和系统 |
WO2012068885A1 (zh) * | 2010-11-23 | 2012-05-31 | 腾讯科技(深圳)有限公司 | 一种编辑应用网页的方法及应用网页编辑装置 |
TWI552075B (zh) * | 2010-12-27 | 2016-10-01 | 微軟技術授權有限責任公司 | 將桌面應用程式轉換成網路應用程式 |
CN102591647B (zh) * | 2010-12-27 | 2016-01-20 | 微软技术许可有限责任公司 | 将桌面应用转换成web应用 |
CN102591647A (zh) * | 2010-12-27 | 2012-07-18 | 微软公司 | 将桌面应用转换成web应用 |
US9176742B2 (en) | 2010-12-27 | 2015-11-03 | Microsoft Technology Licensing, Llc | Converting desktop applications to web applications |
CN102170439A (zh) * | 2011-04-20 | 2011-08-31 | 深圳创维-Rgb电子有限公司 | 一种应用服务扩展系统 |
CN102170439B (zh) * | 2011-04-20 | 2014-04-02 | 深圳创维-Rgb电子有限公司 | 一种应用服务扩展系统 |
CN102207872B (zh) * | 2011-06-04 | 2014-08-06 | 中国移动通信集团内蒙古有限公司 | 按照用户需求定制Web UI控件的方法和系统 |
CN102207872A (zh) * | 2011-06-04 | 2011-10-05 | 中国移动通信集团内蒙古有限公司 | 按照用户需求定制Web UI控件的方法和系统 |
CN103064609A (zh) * | 2011-10-21 | 2013-04-24 | 联想(北京)有限公司 | 一种扩展信息的显示方法和装置 |
CN104054050A (zh) * | 2011-10-28 | 2014-09-17 | 多若公司 | 用于移动通信终端的用户接口的改进的配置 |
CN103500190B (zh) * | 2012-03-31 | 2017-05-03 | 北京世界星辉科技有限责任公司 | 一种图标内容更新方法及更新装置 |
CN103500190A (zh) * | 2012-03-31 | 2014-01-08 | 奇智软件(北京)有限公司 | 一种图标内容更新方法及更新装置 |
CN104756072A (zh) * | 2012-11-02 | 2015-07-01 | 微软公司 | 使用公共描述的跨平台数据可视化 |
US10254848B2 (en) | 2012-11-02 | 2019-04-09 | Microsoft Technology Licensing, Llc | Cross-platform data visualizations using common descriptions |
CN104756072B (zh) * | 2012-11-02 | 2018-05-04 | 微软技术许可有限责任公司 | 用于使用公共描述的跨平台数据可视化的方法和系统 |
US9824473B2 (en) | 2012-11-02 | 2017-11-21 | Microsoft Technology Licensing, Llc | Cross-platform data visualizations using common descriptions |
CN102981877B (zh) * | 2012-11-28 | 2016-06-01 | 北京奇虎科技有限公司 | 图片工具条加载方法和装置 |
CN102981877A (zh) * | 2012-11-28 | 2013-03-20 | 北京奇虎科技有限公司 | 图片工具条加载方法和装置 |
CN104683317A (zh) * | 2013-12-03 | 2015-06-03 | 腾讯科技(深圳)有限公司 | Ui数据的提取方法、客户端、服务器及系统 |
CN103617064A (zh) * | 2013-12-09 | 2014-03-05 | 五八同城信息技术有限公司 | 一种改进的移动客户端产品更新的方法 |
CN104020996A (zh) * | 2014-06-13 | 2014-09-03 | 中国民航信息网络股份有限公司 | 指令前端系统及相应的指令前端交互方法 |
CN104020996B (zh) * | 2014-06-13 | 2017-05-10 | 中国民航信息网络股份有限公司 | 指令前端系统及相应的指令前端交互方法 |
CN105446710A (zh) * | 2014-08-06 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 界面提供系统及界面提供方法 |
CN105446710B (zh) * | 2014-08-06 | 2020-04-14 | 阿里巴巴集团控股有限公司 | 界面提供系统及界面提供方法 |
CN105653750A (zh) * | 2014-12-03 | 2016-06-08 | 航天科工仿真技术有限责任公司 | 人机界面三维设计系统中组件布局的实现方法 |
CN104598242A (zh) * | 2015-01-28 | 2015-05-06 | 贵州省邮电规划设计院有限公司 | 利用基于web端的自然式应用交互界面实现直观操作的方法 |
CN106997298A (zh) * | 2016-01-22 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种应用资源获取方法及装置 |
CN107657420A (zh) * | 2016-07-25 | 2018-02-02 | 武汉票据交易中心有限公司 | 一种基于事件的流程处理方法及系统 |
CN112926288A (zh) * | 2019-12-06 | 2021-06-08 | 北京阿博茨科技有限公司 | 一种商业智能数据可视化方法、系统、设备以及可读存储介质 |
CN112926288B (zh) * | 2019-12-06 | 2023-07-18 | 北京阿博茨科技有限公司 | 一种商业智能数据可视化方法、系统、设备以及可读存储介质 |
CN111158645A (zh) * | 2019-12-10 | 2020-05-15 | 杭州中天微系统有限公司 | 提供集成开发环境的系统和方法 |
CN111158645B (zh) * | 2019-12-10 | 2022-09-20 | 杭州中天微系统有限公司 | 提供集成开发环境的系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1487446A (zh) | 服务器端应用为浏览器客户端提供用户界面的方法 | |
CN1249577C (zh) | 用于遗留软件与屏幕朗读器程序之间的互操作的方法和装置 | |
CN1249605C (zh) | 信息提供服务器、终端装置及其控制方法以及信息提供系统 | |
CN1282335C (zh) | 浏览器测试系统及其方法 | |
CN101052948A (zh) | 对象过程图应用程序开发系统 | |
CN1811702A (zh) | 开发门户应用和自动部署门户应用的系统和方法 | |
US20160170712A1 (en) | Method for integrally implementing development and release of APP | |
CN1577263A (zh) | 支持多语言的用户界面实现方法及其装置 | |
CN101383871B (zh) | 一种网元配置的实现方法及装置 | |
CN1976352A (zh) | 用于提供远程软件应用的支持的方法和系统 | |
CN1627257A (zh) | 用于创建模块化web应用的框架 | |
CN1728094A (zh) | 智能ui记录和重放结构 | |
CN1875344A (zh) | 综合业务软件的导入运用支援系统 | |
US20120137270A1 (en) | System and methods for mobile application development using mobile devices | |
CN1220745A (zh) | 与传统主机系统操作持续相连的全球信息网/仿真器的服务器和全球信息网浏览器的终端仿真器 | |
CN1808377A (zh) | 由非专属语言驱动的通用序列图生成器 | |
CN1265208A (zh) | 数据通信 | |
CN1969272A (zh) | 自动生成内容的导入 | |
CN1695133A (zh) | 网络应用服务器支持程序及服务器 | |
US20030122867A1 (en) | Method and apparatus for assembling enterprise javabeans components | |
CN1781086A (zh) | 内容创建系统、内容创建方法、用于执行该内容创建方法的计算机可执行程序、包括该程序的计算机可读记录介质、图形用户接口系统、以及显示控制方法 | |
CN1614927A (zh) | 在b/s结构中实现树型结构的方法 | |
CN1581071A (zh) | 具有xml驱动的体系结构的信息处理方法、装置和程序 | |
CN1689004A (zh) | 基于增强网络的宣传跟踪系统 | |
CN1244057C (zh) | 内容服务器装置和内容提供方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |