`

组件,页面和桌面

    博客分类:
  • ZK
阅读更多

组件,页面和桌面

组件

组件即一个用户界面(UI)对象,如标签,按钮和树。它用来定义 一个特定用户界面的视觉表现和行为。通过操纵他们, 开发 人员来控制如何在客户端展示一个应用程序。

组件必须实现 org.zkoss.zk.ui.Component接口。

页面

页面(org.zkoss.zk.ui.Page)是一系列组件的集合,一个页面限制属于它的组件,这样它们会被展示在浏览器的特定部分。一个页面被自动创建当ZK 加载器(ZK loader)解释完一个ZUML页面时。

页面标题

每个页面都可以有一个标题,这个标题将被作为浏览器窗口标题(window caption)的一部分。请参考ZK用户界面标记语言一章中进程指令一节。

<?page title="My Page Title"?>

桌面

一个ZUML可以直接或间接包含另外一个ZUML页面。由于这些页面是为服务同样的URL请求而创建的,它们被统称为桌面(org.zkoss.zk.ui.Desktop)。换句话说,桌面是页面的集合,这些 页面服务于同样的URL请求。

为了实现Zk应用程序与用户的交互,更多的页面需要被加到桌面,而另一些需要从桌面移除。类似的,一个组件可能被加到页面或从页面移除。

createComponents 方法

请注意创建移除页面和桌面都是在背后达成的。并没有关于此的API。每次ZUML加载一个页面时,这个页面就被创建。当ZK发现某个页面不再被用到时这个页面就会被移除。当第一个ZUML页面被加载时桌面被创建。当太多的桌面为特定的会话而创建时桌面会被移除。

org.zkoss.zk.ui.Executions类中的CreateComponents方法仅能创建组件,而不是页面,即使它装载一个ZUML页面(亦=page)。

组件树的森林

一个组件至多有一个父组件,而可能有多个子组件。一些组件只能接受某些类型的组件作为子组件,一些组件必须为某些类型组件的子组件,一些组件根本不允许有子组件。例如,XUL中的Listbox接受Listcols 和 Listitem 。没有任何父组件的组件称为根组件(root component)。一个页面可能有多个根组件,这些组件可以由getRoots 方法获得。

组件:视觉部分和Java对象

除了在服务器端的Java对象,组件在浏览器端有一个可视部分[22] ,并且当且仅当它属于一个页面时。当一个组件附加到一个页面时,其视觉部分就会被创建[23]。当一个组件从一个页面脱离时,其视觉部分被移除。

有两种方法将一个组件附加到一个页面。第一种,你可以调用setPage方法使一个组件成为指定页面的根组件。第二中,你可以调用setParentinsertBeforeappendChild方法来使其成为另外一个的子组件,那么属于同一页面的子组件将会属于父组件所属于的页面。

同样,你可以通过调用setPage方法并将其参数设为null将一个根组件从页面卸载。当一个子组件从父 组件被卸载或其父组件从页面被卸载时,此组件被卸载。

标识

每个组件都有一个标识(可利用getId方法获得),当一个组件被创建时它被自动创建。开发人员可以在任何时候改变它。对于标识如何命名并没有限制。但是,如果一个字母标识(alphabetical identifier)被指定之后,开发人员可以通过Java代码或 嵌入到ZUML页面的EL表达式直接读取到它。

<window title="Vote" border="normal">
   Do you like ZK? <label id="label"/>
   <separator/>
   <button label="Yes" onClick="label.value = self.label"/>
   <button label="No" onClick="label.value = self.label"/>
</window>

UUID

一个组件有另外一个称为UUID的标识,但应用程序开发人员很少用到它。

UUID是被组件和客户端引擎用来操纵浏览器端的DOM以及和服务器进行通信的。更确切地说,客户端DOM元素的id属性就是UUID。

当一个组件被创建时,UUID会自动产生。除了用以呈现HTML标签的组件标识,它是一成不变的。

相关的HTML组件处理UUID的方式不同于其他的一套组件:UUID就像ID一样。如果你改变一个HTML相关组件的ID,UUID就会跟着改变。因此原来的JavaScript 代码和servlets 将会继续工作,而无需任何修改。

 

分享到:
评论

相关推荐

    XCUI是基于Vue20的桌面端组件库

    XCUI与Vue.js的结合,使得开发者可以利用Vue的强大力量和XCUI的成熟组件,快速搭建出美观且功能丰富的桌面应用程序。此外,由于XCUI是基于Vue 2.0,因此它兼容大部分Vue生态系统中的插件和工具,如Vuex用于状态管理...

    使用 ElementUI 组件构建 Window 桌面应用探索与实践(WPF)

    在本文中,我们将深入探讨如何利用ElementUI组件库在Windows桌面应用程序开发中,特别是WPF(Windows Presentation Foundation)平台上进行实践。ElementUI是一款基于Vue.js的现代化UI组件库,广泛应用于Web开发,其...

    android桌面多页面滑动效果

    总的来说,实现"android桌面多页面滑动效果"需要结合Android的基础组件和高级特性,如ViewPager、Adapter、动画和手势识别等。通过对这些知识点的理解和运用,开发者可以构建出功能强大且用户体验良好的多页面滑动...

    使用 ElementUI 组件构建 Window 桌面应用探索与实践(WinForm)

    我们将 ElementUI 的 CSS 和 JavaScript 文件引入到 WinForm 项目中,然后在 WebBrowser 控件中显示由 ElementUI 组件构建的页面。这样,我们可以在 WinForm 应用中享受到 ElementUI 的强大功能。 接下来,我们需要...

    使用 ElementUI 组件构建无边框 Window 桌面应用(WinForm/WPF)

    本篇将详细介绍如何利用 ElementUI 的组件在 WinForm 和 WPF 平台上创建无边框的桌面应用。 首先,我们从 WinForm 开始。在 WinForm 中,我们需要自定义一个无边框窗口,并引入 HTML 和 JavaScript 运行环境,例如...

    Ext组件说明 Ext组件概述

    TabPanel组件允许在一个界面上展示多个不同页面,每个页面由一个标签表示,用户可以通过点击标签来切换页面。 ##### 3. **TreePanel(树状面板)** TreePanel组件提供了一个层次化的数据展示方式,适用于显示目录...

    ExtJS桌面化(desktop)插件Demo项目

    这个Demo项目的核心在于对"desktop"插件的定制和应用,该插件提供了构建桌面样式的应用程序所需的各种组件和功能。 首先,让我们深入了解一下"desktop"插件。此插件通常包括一个主屏幕,用户可以在此屏幕上添加、...

    AxureWeb组件库.zip

    "PC组件库"则包含适用于桌面应用的组件,例如窗口、菜单栏、工具栏、对话框等,这些元素更符合桌面应用的操作习惯和视觉风格。PC组件库的设计通常更加注重功能性和效率,以提供良好的用户体验。 在" AxureWeb组件库...

    基于 Vue3.0 框架的模拟Windows 桌面效果,后台管理UI

    - **Suspense**:Suspense组件用于处理异步组件的加载状态,提供了一个优雅的方式来处理组件的预加载和显示占位符。 - **Ref和Reactivity**:Vue3.0的响应式系统进行了重构,使用`ref`和`reactive`来创建响应式...

    android 桌面源代码

    在Android系统中,桌面(Launcher)是用户与操作系统交互的核心组件之一,它负责展示应用程序的图标、快捷方式以及壁纸等。本主题将深入探讨“Android桌面源代码”,重点关注`EyeRoom`这一特定的桌面应用,以及如何...

    android桌面,支持左右滑动

    标题"android桌面,支持左右滑动"所涉及的核心技术是Android的视图容器(ViewGroup)以及页面滑动组件ViewPager。 ViewGroup是Android UI框架中的一个关键类,它是所有视图容器的基类,负责管理其子视图的布局、...

    (兼容Axure9)ElementUI元件库+后台模板页面+官网组件pc元件库.zip_elementaxure兼容axure9

    在给定的压缩包文件中,"(兼容Axure9)ElementUI元件库+后台模板页面+官网组件pc元件库.zip_elementaxure兼容axure9" 提供了与ElementUI相关的Axure元件库和后台模板页面,这对于原型设计人员来说是一个极其宝贵的...

    200+套Axure元件库(小程序+可视化组件+iPhone+iPad+web)超全.zip

    页面布局 桌面软件 Axure7元件库大合集 标签滑块.rplib 表格元素_Y!DSK.rplib 菜单和按钮_Y!DSK.rplib 操作系统元素_Y!DSK.rplib 窗体和容器_Y!DSK.rplib 弹出窗口Axure部件库.rplib 导航和分页_Y!DSK.rplib 电子...

    Android类似桌面应用拖动的GridView

    总之,"Android类似桌面应用拖动的GridView"是一种增强用户体验的高级用法,涉及到触摸事件处理、多页滑动、数据模型管理和视图更新等多个Android开发的核心知识点。通过掌握这些技术,开发者能够为用户提供更加灵活...

    WPF远程桌面AxInterop.MSTSCLib.dll Interop.MSTSCLib.dll 一个demo

    在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 应用程序中实现远程桌面功能,重点是使用AxInterop.MSTSCLib.dll和Interop.MSTSCLib.dll这两个组件。这两个组件是Microsoft Terminal ...

    图形用户界面设计组件分类

    Applet和JApplet主要用于Web页面中嵌入的交互式程序,而Dialog和JDialog则用于创建弹出窗口,如警告或确认对话框。Frame和JFrame是独立的应用程序窗口,是大多数桌面应用的核心部分。 接下来,我们有两类容器组件:...

    svelte组件:svelte3自定义桌面PC端对话框组件svelte-layer.doc

    在需要使用该组件的页面中,通过`import`语句导入`Layer`和`svelteLayer`,之后便可以使用标签式或函数式调用方式。例如,标签式调用可以创建一个带有确认按钮的确认框,而函数式调用则允许开发者动态创建并配置弹窗...

    3D桌面win7

    从标签“3D”我们可以推测,这个3D桌面不仅限于Aero Peek功能,可能还包括其他增强3D效果的组件,比如3D任务切换(Flip 3D),这是一种在多个打开的应用之间快速切换的方式,通过按住Win+Tab键,用户可以看到立体的...

    基于EasyUI实现windows桌面

    EasyUI是一个基于jQuery的轻量级框架,它提供了丰富的组件和UI设计工具,使得开发者能够快速构建出类似桌面操作系统的网页应用。本项目以"基于EasyUI实现windows桌面"为主题,旨在为用户在非IE8以下的所有现代浏览器...

Global site tag (gtag.js) - Google Analytics