CN116107575A - 窗口管理器 - Google Patents
窗口管理器 Download PDFInfo
- Publication number
- CN116107575A CN116107575A CN202310391870.5A CN202310391870A CN116107575A CN 116107575 A CN116107575 A CN 116107575A CN 202310391870 A CN202310391870 A CN 202310391870A CN 116107575 A CN116107575 A CN 116107575A
- Authority
- CN
- China
- Prior art keywords
- window
- management
- event
- application
- windows
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
窗口管理器,包括系统主体窗口、系统组件窗口、应用窗口、窗口管理核心模块及窗口样式管理模块,系统主体窗口指Web系统运行的主体后台窗口,作为其它窗口的父窗口,用于加载窗口管理核心模块、窗口样式管理模块、系统组件窗口及应用窗口;窗口管理核心模块用于基于JAVASCRIPT技术构建窗口管理脚本,实现对各类窗口进行管理的业务逻辑;窗口样式管理模块用于基于CSS技术,规定各类窗口的样式属性及相关UI元素的布局和动画;系统组件窗口指Web操作系统中常见的系统组件窗口;应用窗口指应用程序所在的窗口,提供独立的应用运行环境并获取应用相关信息供系统主体窗口进行管理。
Description
技术领域
本发明涉及窗口管理技术领域,具体涉及一种基于HTML技术和Web系统的窗口管理器。
背景技术
HTML5是构建网页内容的一种语言描述方式,是互联网的最新一代技术标准,具有成熟,完善的国际通用规范,专门为承载丰富的 web 内容而设计,其具有跨平台的特性,可以在PC,平板,手机,电视,车载等不同类型的硬件上运行。
HTML5与脚本描述语言Javascript,层叠样式表CSS共同构建Web操作系统。
窗口管理器是操作系统提供的系统级应用程序,用于控制操作系统内窗口的外表,位置,大小并提供用户去操作窗口的方法,为操作系统提供了一个较为完整的图形操作界面。
目前市面上主流的操作系统包括Windows、Android、Linux,其中Windows的窗口管理器是基于微软的C#语言与系统高度耦合的操作系统组件,Android的窗口管理器是基于Java语言与系统高度耦合的操作系统组件,以上两个系统的窗口管理器均是单一且独特的。Linux的窗口管理器最为丰富,包括GNOME,KDE等,均采用C/C++语言编写。但基于浏览器引擎开发的Web操作系统具有其规范化与通用的W3C的WebAPI,其系统架构与软件编写语言与其他操作系统并不相同,无法使用其他操作系统上的窗口管理软件。
发明内容
为解决已有技术存在的不足,本发明提供了一种窗口管理器,包括系统主体窗口、系统组件窗口、应用窗口、窗口管理核心模块及窗口样式管理模块,其中,
系统主体窗口指Web系统运行的主体后台窗口,作为其它窗口的父窗口,用于加载窗口管理核心模块、窗口样式管理模块、系统组件窗口及应用窗口;
窗口管理核心模块用于基于JAVASCRIPT技术构建窗口管理脚本,实现对各类窗口进行如下管理的业务逻辑:生命周期管理、层级管理、方向控制、事件管理及响应事件队列;
窗口样式管理模块用于基于CSS技术,规定各类窗口的样式属性及相关UI元素的布局和动画;
系统组件窗口指Web操作系统中常见的系统组件窗口;
应用窗口指应用程序所在的窗口,提供独立的应用运行环境并获取应用相关信息供系统主体窗口进行管理。
其中,窗口管理器基于HTML5技术,扩展新HTML5标签作为各类窗口的载体,以系统主体窗口作为父类,扩展系统组件窗口、应用窗口以及系统组件窗口和应用窗口特有的子类标签,使得系统组件窗口及应用窗口能够继承系统主体窗口的属性和方法,并派生其特异性窗口属性和方法,窗口管理核心模块基于各窗口的属性及方法实现粒度化窗口属性管理策略。
其中,所述新HTML标签是指继承自浏览器引擎基本标签页HTMLELEMENT的新实例system-view,提供通用的窗口方法和窗口属性。
其中,所述窗口属性包括但不限于窗口的地址、高度、宽度、名称、创建时间、活动性、可见性及前后窗;所述活动性是指窗口是否是当前活跃的应用窗口或系统组件窗口;所述可见性是指窗口是否是显示在前台的用户可见的窗口,所述前后窗是指当前窗口的前一个已打开窗口或当前已打开窗口的后一个窗口,用于提供窗口顺序的属性;
所述窗口方法包括但不限于窗口的创建、关闭、放大及缩小。
其中,所述窗口管理脚本,是指在HTML5窗口中引入JAVASCRIPT编写的Web脚本,通过调用函数的方式,实现对包括生命周期管理、层级管理、方向控制、事件管理及响应事件队列在内的整体的窗口属性管理策略,并将上述窗口管理策略作为父类提供给所有窗口,使不同类型的系统组件窗口及应用窗口派生新的HTML5标签,粒度化窗口属性管理策略,形成各窗口的特异性窗口属性管理模块。
其中,窗口的层级管理指管理不同窗口的上下层级关系,通过CSS的层级属性进行确定;
窗口方向控制指对不同窗口根据其对应设备方向与应用方向进行窗口调整;
窗口事件管理指窗口根据对应的事件触发,发送对应的信号至SYSTEM的对应窗口管理层叠脚本,并进行粒度化管理的过程;
响应事件队列是指对窗口交互基本事件进行响应,完成对相关事件的管理。
其中,具体的窗口交互基本事件包括但不限于窗口显示事件、窗口关闭事件、窗口销毁事件、窗口缩放事件、窗口可见性变化事件及窗口地址变更事件;
窗口管理核心模块通过如下方法完成上述窗口交互基本事件中的具体的事件队列响应:
窗口打开事件:通过JS脚本,生成对应窗口的HTML标签页,插入系统主体窗口的DOM树内,通用的APP窗口生成应用窗口,系统组件窗口生成对应的标签页;
窗口关闭事件:通过JS脚本,删除DOM树上的节点,保留DOM数上的窗口,用于下次打开窗口;
窗口缩放事件:通过JS脚本与CSS布局修改窗口大小进行缩放;
窗口可见性变化事件:通过JS脚本与CSS布局修改窗口的显示隐藏;
窗口地址变更:通过JS脚本控制同一应用窗口内不同标签页的切换。
其中,窗口管理核心模块在粒度化窗口属性管理策略时,所实现的窗口属性管理涉及前台应用事件响应及引擎事件响应;
前台应用事件响应包括UI刷新事件响应和窗口状态变化事件响应;UI刷新事件响应是指通过监听各类涉及UI变化的事件,事件发生时,调用引擎的接口或窗口样式管理模块的控件更新UI,改变窗口样式;窗口状态变化事件响应,是指通过监听窗口自身的状态变化事件,发生事件时,重构并转发事件至对应模块进行处理;
引擎事件响应管理是指当引擎提供的接口被调用后,引擎发送给窗口管理器的事件,用于同步正确的状态,返回接口的结果至窗口管理器中进行处理。
其中,所述UI元素的布局是指窗口基本控件的布局,包括窗口高度及宽度在内的基础属性;所述的动画指窗口的基础动画,包括开启、关闭、淡入淡出,放大、缩小及切换至后台。
其中,所述系统组件窗口及应用窗口内部能够设置模块化组件,按需加载子模块,用于处理相应的系统组件窗口及应用窗口的业务逻辑,包括层级管理、动画管理及事件管理。
本发明通过自定义系统view标签,可以实现更便捷简单的子类扩展,子类窗口继承父类窗口并派生出其特异属性,同时为窗口管理器新增类型更便捷
附图说明
图1为本发明提供的窗口管理器的逻辑框架图。
图2为基于本发明的窗口构建方法所构建的窗口类型结构图。
图3为基于本发明的窗口管理器所构建的窗口的层级管理图。
图4为基于本发明的窗口管理器所构建的窗口的层级的切换图。
图5为基于本发明的窗口管理器所构建的窗口的状态转换示意图。
图6为基于本发明的窗口管理器中Web应用开启流程图。
图7为基于本发明的窗口管理器管理所创建的窗口的流程示意图。
图8为基于本发明的窗口管理器的输入法拉起流程示意图。
具体实施方式
为了对本发明的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本发明的技术方案及其产生的有益效果。
本发明提供的窗口管理器,基于Web操作系统及HTML5技术实现,可以实现在符合标准WebAPI下的Web操作系统的窗口管理,提升用户体验。
图1为本发明提供的窗口管理器的逻辑框架图,如图1所示,本发明提供的窗口管理器,运行于Web应用和Web引擎之间,包括系统主体窗口、系统组件窗口、应用窗口、窗口管理核心模块及窗口样式管理模块,其中,
系统主体窗口指Web系统运行的主体后台窗口system-view,作为其它窗口的父窗口,用于加载窗口管理核心模块、窗口样式管理模块、系统组件窗口及应用窗口;
窗口管理核心模块用于基于JAVASCRIPT技术构建窗口管理脚本,实现对各类窗口进行如下管理的业务逻辑:生命周期管理、层级管理、方向控制、事件管理及响应事件队列;
窗口样式管理模块用于基于CSS技术,规定各类窗口的样式属性(如窗口大小、标题栏、状态栏样式)及相关UI元素的布局和动画(如处理过渡动画,打开关闭等操作的UI效果);所述UI元素的布局是指窗口基本控件的布局,包括窗口高度及宽度在内的基础属性;所述的动画指窗口的基础动画,包括开启、关闭、淡入淡出,放大、缩小及切换至后台。
系统组件窗口指Web操作系统中常见的系统组件窗口;如系统状态栏status-view,系统下拉菜单栏,系统提示窗、通知窗口notice-view、警告窗口attention-view、活动窗口activity-view等,其根据系统特异性组件加载特异性功能。
应用窗口指应用程序所在的窗口app-view,还包括特殊的应用窗口,如输入法窗口input-view,锁屏窗口lock-view,桌面主窗口home-view。其提供独立的应用运行环境并获取应用相关信息供系统主体窗口进行管理。
本发明所述窗口管理器,通过如下方法完成构建:
1、系统主体窗口首先加载窗口管理核心模块、应用窗口、系统组件窗口,然后窗口管理核心模块基于HTML5技术,扩展新HTML5标签作为各类窗口的载体,以系统主体窗口作为父类,扩展系统组件窗口、应用窗口以及系统组件窗口和应用窗口特有的子类标签,使得系统组件窗口及应用窗口能够继承系统主体窗口的属性和方法,并派生其特异性窗口属性和方法(根据不同类型的窗口添加其特有的属性),最后窗口管理核心模块再将这些特异性的属性和方法加载给相应的应用窗口和系统组件窗口;新HTML标签是指继承自浏览器引擎基本标签页HTMLELEMENT的新实例system-view,提供通用的窗口方法和窗口属性。
2、基于JAVASCRIPT技术构建窗口管理脚本,实现对各类窗口进行如下管理的业务逻辑:生命周期管理、层级管理、方向控制、事件管理及响应事件队列。
具体的,针对子窗口所派生的特异性窗口属性和方法, HTML5窗口(即系统主体窗口)有其统一的窗口属性管理策略,窗口管理核心模块在系统主体窗口中引入JAVASCRIPT编写的Web脚本,通过调用函数的方式,根据子窗口派生的特异性窗口属性和方法来粒度化其窗口属性管理策略,使不同类型的系统组件窗口及应用窗口派生新的HTML5标签,形成各子窗口特异性的窗口属性管理策略,并将各特异性的窗口属性管理策略提供给所有子窗口,从而针对子窗口,实现包括生命周期管理、层级管理、方向控制、事件管理及响应事件队列在内的整体的窗口属性管理策略。
举例而言,窗口关闭及缩放等属于窗口的方法,这个方法分配到子窗口后,最终的实现由窗口管理核心模块基于脚本控制实现:需要能够让系统主体窗口或者其它代码执行(如用户打开窗口时,需要通知系统从引擎内读取数据并显示),此时需要发送有关窗口交互事件的窗口属性管理策略,引擎监听到该策略中所涉及到的事件后生成数据并传输。
3、最后基于CSS技术,构建相关UI元素的布局和动画。
基于此,如图2所示,为基于上述方法所构建的窗口类型结构图,如图2所示:本发明通过CustomElements.define方法(通用元素定义接口方法)实例化引擎内的HtmlElement(文档元素基类)为system-view类,在继承引擎原有的属性外,添加窗口信息、焦点、可见性等属性,扩展事件发送、重载、窗口截图等函数。并将SYSTEM应用运行在系统主体窗口<system-view>中。
在本发明的实施例中,如图2所示,应用窗口<app-view>与系统组件窗口<utils-view>继承了父类<system-view>通用的属性与方法,同时分别添加了其Class-list属性(图未示),此属性用于实现将不同类型窗口发送的同类事件添加对应标签,使得脚本能够正常处理对应事件。
通用的窗口属性包括但不限于窗口的地址、高度、宽度、名称、创建时间、活动性、可见性及前后窗;所述活动性是指窗口是否是当前活跃的应用窗口或系统组件窗口;所述可见性是指窗口是否是显示在前台的用户可见的窗口,所述前后窗是指当前窗口的前一个已打开窗口或当前已打开窗口的后一个窗口,用于提供窗口顺序的属性;通用的窗口方法包括但不限于窗口的创建、关闭、放大及缩小。
本发明中,窗口的层级管理指管理不同窗口的上下层级关系,通过CSS的层级属性进行确定;窗口方向控制指对不同窗口根据其对应设备方向与应用方向进行窗口调整;窗口事件管理指窗口根据对应的事件触发,发送对应的信号至SYSTEM(即系统主体窗口)的对应窗口管理层叠脚本,并进行粒度化管理的过程;响应事件队列是指对窗口交互基本事件进行响应,完成对相关事件的管理。
具体的窗口交互基本事件包括但不限于窗口打开事件、窗口关闭事件、窗口销毁事件、窗口缩放事件、窗口可见性变化事件及窗口地址变更事件;
窗口管理核心模块通过如下方法完成上述窗口交互基本事件中的具体的事件队列响应:窗口显示事件:通过JS脚本,生成对应窗口的HTML标签页,插入SYSTEM父窗口(即系统主体窗口)的DOM树内,通用的APP窗口生成app-view(即应用窗口),其他窗口(即系统组件窗口)生成对应的标签页;窗口关闭事件:通过JS脚本,删除DOM树上的节点,保留DOM数上的窗口,用于下次打开窗口;窗口缩放事件:通过JS脚本与CSS布局修改窗口大小进行缩放;窗口可见性变化事件:通过JS脚本与CSS布局修改窗口的显示隐藏;窗口地址变更:通过JS脚本控制同一应用窗口内不同标签页的切换。
另一个角度来看,窗口管理核心模块在实现窗口属性管理策略时,所能够响应的各类事件涉及前台应用事件响应及引擎事件响应;前台应用事件响应包括UI刷新事件响应和窗口状态变化事件响应;UI刷新事件响应是指通过监听各类涉及UI变化的事件,事件发生时,调用引擎的接口或窗口样式管理模块的控件更新UI,改变窗口样式;窗口状态变化事件响应,是指通过监听窗口自身的状态变化事件,发生事件时,重构并转发事件至对应模块进行处理;引擎事件响应管理是指当引擎提供的接口被调用后,引擎发送给窗口管理器的事件,用于同步正确的状态,返回接口的结果至窗口管理器中进行处理。
图3为基于本发明的窗口管理器所构建的窗口的层级管理图,如图3所示,在本发明的实施例中,各个窗口具有其对应的层级,其中系统主体窗口层级位于最底层且不可改变,剩余应用窗口与组件窗口及特殊系统窗口的默认层级为:应用窗口>应用组件窗口>系统级特殊窗口(具体包括输入法窗口和锁屏窗口)。
图4为基于本发明的窗口管理器所构建的窗口的层级的切换图,以输入法窗口所在的层级为例,其原本位于系统级特殊窗口所在层级,当输入法唤醒时,其层级上升。也即,当应用窗口、系统组件窗口或系统级特殊窗口被唤醒时,相应窗口的层级上升为最高。
图4中,“css控制indexZ值变化”的含义如下: CSS代码中,可以通过编写indexZ的规则,控制层级变化,例如两个重叠的元素块,一个的indexZ为1,一个的indexZ为2,那么indexZ为2的元素会覆盖在index为1的元素上。
图5为基于本发明的窗口管理器所构建的窗口的状态转换示意图,在本发明的实施例中,窗口具有其完整的生命周期,窗口的生命周期管理是指窗口从创建到消亡的全过程,也即如图5所示的窗口状态转换,包括窗口的创建、窗口的显示、窗口的退出、窗口的关闭、窗口的销毁。其中,窗口的创建包括点击图标触发,点击某链接触发,应用内触发打开其他窗口等。窗口的显示即窗口被创建后,根据层级管理器的控制,显示到前台并活跃的过程,对应图5中“窗口活跃(层级上升)”。窗口的退出即窗口显示到后台并层级下降的过程,包括开启其他新应用覆盖当前窗口,点击最小化按钮缩小,触发其他窗口组件如锁屏等,WEB移动设备具有单窗口显示的特性,除非触发分屏显示,一般设备上的显示会伴随其他窗口的打开而关闭。窗口的销毁即指应用彻底退出(包括正常关闭应用或异常退出)后,对应窗口在系统的窗口管理器中彻底消失的过程。在窗口的整个生命周期的管理中,窗口管理核心模块会通过引擎建立事件监听,以实现对生命周期的管理。
在实现窗口生命周期管理和响应事件队列时,生命周期管理属于发送方所执行的工作,而响应事件队列属于接收方所执行的工作,在生命周期的过程中,每个过程都会发出若干事件,响应事件队列会接收这些事件并分发事件或触发另外的模块来执行相关操作。
如:某完整的A窗口的生命周期中,创建A,同时发送一个创建A的事件,那么响应事件队列会接受这个创建A事件,并触发包括:1、底层送显填充A窗口,2、调整其他窗口的位置和大小。3、触发系统截图模块截取窗口快照填充。
所以响应事件队列是做的接收并分发的工作,而生命周期管理只管理其所负责的窗口。
图6为基于本发明的窗口管理器中Web应用开启流程图:示例性的,应用开启与其对应窗口创建的流程如图6所示:
1.桌面点击某应用图标后(对应图6中“点击桌面A应用图标”),桌面调用open接口,引擎创建应用对象。
2.引擎发送窗口事件,具体为app-open事件,窗口管理器接收事件,实例化一对应的view,即图6所示“创建应用对应窗口”。
3.应用对象对应的应用资源加载,脚本运行,应用对象添加至此窗口的DOM上,此DOM添加至SYSTEM父窗上,同时,加载此窗口的子模块和相关控件。
4.应用对象所在窗口的层级上升,即图6所示“应用层级上升”。
5.窗口样式管理模块基于窗口动画脚本的层叠样式表,添加窗口创建的动画,并覆盖桌面区域。
图7为基于本发明的窗口管理器管理所创建的窗口的流程示意图:窗口首次开启创建后,将会根据其定义的窗口类型,根据其所需要的组件加载子模块。例如一普通外部应用在实例化窗口A后需要的子模块(后文详述)包括动画控制与通知组件<notice-view>,同时需添加以A为标头的特殊事件监听,一内部重要应用在实例化窗口C后需要的子模块还包含警告组件<attetion-view>,同时需添加以C为标头的特殊事件监听;除此之外,通用应用实例化窗口B后也需添加通用事件监听,上述所有的事件监听均需挂载至系统主体窗口的DOM树上(即图7中的“挂载至system DOM树”)。
其次,窗口运行过程中针对窗口内应用的内部事件或引擎给窗口本身的内部事件,均需要进行窗口事件流的处理。当屏幕上出现分屏的两个应用,其中一个应用的宽度增加后,引擎将会发送Resize事件,窗口管理核心模块响应事件队列的管理机制需要监听此Resize事件并针对窗口进行事件分类,系统主体窗口第一个监听到此事件后根据其不同的窗口属性管理策略发出不同的事件,使各子窗口改变其显示大小。
例如手机应用分屏,A B两个窗口同时在屏幕上,如果拖动A放大则B必然需要缩小,即这个resize事件会被窗口管理器进行新的封装和转发,例如重新发出事件名为”A-RESIZE”,”B-RESIZE”,其中一个宽度增加,一个宽度减小。示例性的,以输入法窗口接受到输入的事件流为,如图8所示:
1、输入法应用在首次开机后即被拉起,其窗口一直位于后台且保活(此时,应用A运行处于运行中。
2、当使用者点击某A应用的输入框需要输入文字时,引擎对输入焦点变化进行处理(对应图8中“引擎处理”),发送输入变化事件至窗口管理器。
3、窗口管理器的事件流管理器收到输入变化事件后,先触发层级管理器,控制位于后台的输入法窗口B上升至顶层,覆盖某A应用所在的窗口。
4、窗口管理器的事件流管理器同时分发A-Resize事件,压缩当前活动应用的窗口大小(对应图8中“窗口A压缩,应用A压缩”)。随后分发B-Resize事件,通知位于后台且保活的输入法应用弹出显示,填充至已位于顶层的输入法窗口内(对应图8中“触发拉起事件→输入法后台保活→输入法弹出→输入法前台显示”)。
关于图7中提到的“根据其所需要的组件加载子模块”,本发明中,系统组件窗口及应用窗口是可扩展的,内部组件是模块化的,可按需加载,内部组件中处理窗口业务逻辑的子模块包括但不限于层级管理模块、动画管理模块及事件管理模块,层级管理模块及动画管理模块是基于CSS构建的,使用通用的WebApi并添加特异性属性,使不同模块的相同功能得到有效划分;事件管理模块是基于JAVASCRIPT构建的,其添加事件的特异性标头,使不同窗口收到引擎的相同事件时可以高效分发。
本发明的窗口管理器基于HTML5技术结合Web操作系统与Web技术进行对应的优化,实现了如下技术效果:
1、本发明通过将不同类型窗口发送的同类事件添加对应标签,内部及外部窗口细粒度管理,流程清晰明确,事件分发响应迅速。
2、本发明舍弃传统的浏览器标签页<iframe>,通过自定义系统的分类 view标签,具有页面结构少,减少http请求,移动设备适配性好的优点。
3、 本发明通过自定义系统view标签,可以实现更便捷简单的子类扩展,子类窗口继承父类窗口并派生出其特异属性,同时为窗口管理器新增类型更便捷。
虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。
Claims (10)
1.一种窗口管理器,其特征在于:包括系统主体窗口、系统组件窗口、应用窗口、窗口管理核心模块及窗口样式管理模块,其中,
系统主体窗口指Web系统运行的主体后台窗口,作为其它窗口的父窗口,用于加载窗口管理核心模块、窗口样式管理模块、系统组件窗口及应用窗口;
窗口管理核心模块用于基于JAVASCRIPT技术构建窗口管理脚本,实现对各类窗口进行如下管理的业务逻辑:生命周期管理、层级管理、方向控制、事件管理及响应事件队列;
窗口样式管理模块用于基于CSS技术,规定各类窗口的样式属性及相关UI元素的布局和动画;
系统组件窗口指Web操作系统中常见的系统组件窗口;
应用窗口指应用程序所在的窗口,提供独立的应用运行环境并获取应用相关信息供系统主体窗口进行管理。
2.如权利要求1所述的窗口管理器,其特征在于:窗口管理器基于HTML5技术,扩展新HTML5标签作为各类窗口的载体,以系统主体窗口作为父类,扩展系统组件窗口、应用窗口以及系统组件窗口和应用窗口特有的子类标签,使得系统组件窗口及应用窗口能够继承系统主体窗口的属性和方法,并派生其特异性窗口属性和方法,窗口管理核心模块基于各窗口的属性及方法实现粒度化窗口属性管理策略。
3.如权利要求2所述的窗口管理器,其特征在于:所述新HTML5标签是指继承自浏览器引擎基本标签页HTMLELEMENT的新实例system-view,提供通用的窗口方法和窗口属性。
4.如权利要求3所述的窗口管理器,其特征在于:
所述窗口属性包括但不限于窗口的地址、高度、宽度、名称、创建时间、活动性、可见性及前后窗;所述活动性是指窗口是否是当前活跃的应用窗口或系统组件窗口;所述可见性是指窗口是否是显示在前台的用户可见的窗口,所述前后窗是指当前窗口的前一个已打开窗口或当前已打开窗口的后一个窗口,用于提供窗口顺序的属性;
所述窗口方法包括但不限于窗口的创建、关闭、放大及缩小。
5.如权利要求2所述的窗口管理器,其特征在于:所述窗口管理脚本,是指在HTML5窗口中引入JAVASCRIPT编写的Web脚本,通过调用函数的方式,实现对包括生命周期管理、层级管理、方向控制、事件管理及响应事件队列在内的整体的窗口属性管理策略,并将上述窗口管理策略作为父类提供给所有窗口,使不同类型的系统组件窗口及应用窗口派生新的HTML5标签,粒度化窗口属性管理策略,形成各窗口的特异性窗口属性管理模块。
6.如权利要求5所述的窗口管理器,其特征在于:
窗口的层级管理指管理不同窗口的上下层级关系,通过CSS的层级属性进行确定;
窗口方向控制指对不同窗口根据其对应设备方向与应用方向进行窗口调整;
窗口事件管理指窗口根据对应的事件触发,发送对应的信号至SYSTEM的对应窗口管理层叠脚本,并进行粒度化管理的过程;
响应事件队列是指对窗口交互基本事件进行响应,完成对相关事件的管理。
7.如权利要求6所述的窗口管理器,其特征在于:
具体的窗口交互基本事件包括但不限于窗口显示事件、窗口关闭事件、窗口销毁事件、窗口缩放事件、窗口可见性变化事件及窗口地址变更事件;
窗口管理核心模块通过如下方法完成上述窗口交互基本事件中的具体的事件队列响应:
窗口打开事件:通过JS脚本,生成对应窗口的HTML标签页,插入系统主体窗口的DOM树内,通用的APP窗口生成应用窗口,系统组件窗口生成对应的标签页;
窗口关闭事件:通过JS脚本,删除DOM树上的节点,保留DOM数上的窗口,用于下次打开窗口;
窗口缩放事件:通过JS脚本与CSS布局修改窗口大小进行缩放;
窗口可见性变化事件:通过JS脚本与CSS布局修改窗口的显示隐藏;
窗口地址变更:通过JS脚本控制同一应用窗口内不同标签页的切换。
8.如权利要求5所述的窗口管理器,其特征在于:
窗口管理核心模块在粒度化窗口属性管理策略时,所实现的窗口属性管理涉及前台应用事件响应及引擎事件响应;
前台应用事件响应包括UI刷新事件响应和窗口状态变化事件响应;UI刷新事件响应是指通过监听各类涉及UI变化的事件,事件发生时,调用引擎的接口或窗口样式管理模块的控件更新UI,改变窗口样式;窗口状态变化事件响应,是指通过监听窗口自身的状态变化事件,发生事件时,重构并转发事件至对应模块进行处理;
引擎事件响应管理是指当引擎提供的接口被调用后,引擎发送给窗口管理器的事件,用于同步正确的状态,返回接口的结果至窗口管理器中进行处理。
9.如权利要求1所述的窗口管理器,其特征在于:
所述UI元素的布局是指窗口基本控件的布局,包括窗口高度及宽度在内的基础属性;所述的动画指窗口的基础动画,包括开启、关闭、淡入淡出,放大、缩小及切换至后台。
10.如权利要求1所述的窗口管理器,其特征在于:所述系统组件窗口及应用窗口内部能够设置模块化组件,按需加载子模块,用于处理相应的系统组件窗口及应用窗口的业务逻辑,包括层级管理、动画管理及事件管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310391870.5A CN116107575B (zh) | 2023-04-13 | 2023-04-13 | 一种窗口管理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310391870.5A CN116107575B (zh) | 2023-04-13 | 2023-04-13 | 一种窗口管理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116107575A true CN116107575A (zh) | 2023-05-12 |
CN116107575B CN116107575B (zh) | 2023-07-04 |
Family
ID=86256542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310391870.5A Active CN116107575B (zh) | 2023-04-13 | 2023-04-13 | 一种窗口管理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116107575B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256510A (zh) * | 2008-04-11 | 2008-09-03 | 中兴通讯股份有限公司 | 一种集群系统及实现其集中管理的方法 |
CN102768624A (zh) * | 2011-05-04 | 2012-11-07 | 北京积木恒硕科技有限公司 | 一种基于Web标准构建终端操作系统的方法 |
CN103064677A (zh) * | 2012-12-24 | 2013-04-24 | 广东威创视讯科技股份有限公司 | 一种web多文档子窗口的管理方法及装置 |
CN109101298A (zh) * | 2017-06-20 | 2018-12-28 | 武汉斗鱼网络科技有限公司 | Windows跨进程窗口管理方法、存储介质、电子设备及系统 |
US20190238559A1 (en) * | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Content management system connect |
CN113407293A (zh) * | 2021-08-19 | 2021-09-17 | 北京鲸鲮信息系统技术有限公司 | 窗口管理方法、装置、设备和存储介质 |
CN114327712A (zh) * | 2021-12-24 | 2022-04-12 | 阿里巴巴(中国)有限公司 | 云应用系统、窗口管理方法及设备 |
CN115562771A (zh) * | 2022-01-18 | 2023-01-03 | 荣耀终端有限公司 | 应用窗口管理方法、电子设备和计算机可读取存储介质 |
-
2023
- 2023-04-13 CN CN202310391870.5A patent/CN116107575B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256510A (zh) * | 2008-04-11 | 2008-09-03 | 中兴通讯股份有限公司 | 一种集群系统及实现其集中管理的方法 |
CN102768624A (zh) * | 2011-05-04 | 2012-11-07 | 北京积木恒硕科技有限公司 | 一种基于Web标准构建终端操作系统的方法 |
CN103064677A (zh) * | 2012-12-24 | 2013-04-24 | 广东威创视讯科技股份有限公司 | 一种web多文档子窗口的管理方法及装置 |
CN109101298A (zh) * | 2017-06-20 | 2018-12-28 | 武汉斗鱼网络科技有限公司 | Windows跨进程窗口管理方法、存储介质、电子设备及系统 |
US20190238559A1 (en) * | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Content management system connect |
CN113407293A (zh) * | 2021-08-19 | 2021-09-17 | 北京鲸鲮信息系统技术有限公司 | 窗口管理方法、装置、设备和存储介质 |
CN114327712A (zh) * | 2021-12-24 | 2022-04-12 | 阿里巴巴(中国)有限公司 | 云应用系统、窗口管理方法及设备 |
CN115562771A (zh) * | 2022-01-18 | 2023-01-03 | 荣耀终端有限公司 | 应用窗口管理方法、电子设备和计算机可读取存储介质 |
Non-Patent Citations (1)
Title |
---|
王鹏: ""Heterosis:一种基于XCB的新型窗口管理器"", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 04, pages 138 - 614 * |
Also Published As
Publication number | Publication date |
---|---|
CN116107575B (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5793368A (en) | Method for dynamically switching between visual styles | |
US7665032B2 (en) | Sidebar engine, object model and schema | |
US5307086A (en) | Method of implementing a preview window in an object oriented programming system | |
KR101201274B1 (ko) | 그래픽 사용자 인터페이스에서 스크랩된 웹 페이지들을 제공하는 방법 및 장치 | |
US7644391B2 (en) | Sidebar engine, object model and schema | |
US7908550B1 (en) | Dynamic tree control system | |
JP4920161B2 (ja) | 情報の周辺アウェアネスを自動的に提供するシステムおよび動的オブジェクトを提供する方法 | |
US7793232B2 (en) | Unified interest layer for user interface | |
EP2390796A1 (en) | Method and system for realizing message interaction in multi-tabs application | |
US5852436A (en) | Notes facility for receiving notes while the computer system is in a screen mode | |
US20080229280A1 (en) | Systems and methods for composing custom applications from software components | |
US20050091611A1 (en) | Responsive user interface to manage a non-responsive application | |
US20110258534A1 (en) | Declarative definition of complex user interface state changes | |
US20110154286A1 (en) | .net ribbon model for a ribbon user interface | |
CN108304234B (zh) | 一种页面展示方法及装置 | |
US9558014B2 (en) | System, method and apparatus for transparently enabling software applications with adaptive user interfaces | |
US11886678B2 (en) | Multiple windows for a group-based communication system | |
Feske et al. | Dope-a window server for real-time and embedded systems | |
CN116107575B (zh) | 一种窗口管理器 | |
JPH04313118A (ja) | 属性データ管理方法 | |
CN103902727A (zh) | 网络搜索方法和装置 | |
US20220156088A1 (en) | Simulated Visual Hierarchy While Facilitating Cross-Extension Communication | |
CN115146198A (zh) | 一种基于Electron的简易浏览器实现方法及系统 | |
Pavlidis | Fundamentals of X programming: graphical user interfaces and beyond | |
CN115687831A (zh) | web页面的定制方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |