`
liyixing1
  • 浏览: 957402 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

screen widget

 
阅读更多
org.ofbiz.widget.screen.ScreenWidgetViewHandler
我们在使用screen widgets(小窗口)的时候是使用这个处理器处理的。
因此需要在controller.xml文件加入handler
<handler name="screen" type="view" class="org.ofbiz.widget.screen.ScreenWidgetViewHandler" />
这里的name决定了
view-map的type
这里可以在RequestHandler类得代码中看出来,ofbiz10大概是
841行,代码
ViewHandler vh = viewFactory.getViewHandler(viewMap.type);
这里根据viewMap.type(这个是type值=<view-map name="SimplestScreen" type="screen"设置的type),
它从viewFactory的handers(一个map,将hander的name作为key,实例作为value)中取出处理器,handers有一个默认指是
default=org.ofbiz.webapp.view.JspViewHandler@8202f7
如上的配置,那么还有一个就是
screen=org.ofbiz.widget.screen.ScreenWidgetViewHandler@13018ca

try {
            if (Debug.verboseOn()) Debug.logVerbose("Rendering view [" + nextPage + "] of type [" + viewMap.type + "]", module);
            ViewHandler vh = viewFactory.getViewHandler(viewMap.type);
            vh.render(view, nextPage, viewMap.info, contentType, charset, req, resp);
        } catch (ViewHandlerException e) {
            Throwable throwable = e.getNested() != null ? e.getNested() : e;

            throw new RequestHandlerException(e.getNonNestedMessage(), throwable);
        }

现在写我们的screen了
<?xml version="1.0" encoding="UTF-8"?>

<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/widget-screen.xsd">

    <screen name="SimplestScreen">

         <section>

             <widgets>

                 <label text="Simplest Screen possible in OFBiz!" />

             </widgets>

         </section>

    </screen>

</screens>

根节点是screens
可以包含多个screen,每个screen都有name。

在controller.xml文件的handler之后写入

<!-- Request Mappings -->

    <request-map uri="SimplestScreen">

         <response name="success" type="view" value="SimplestScreen" />

    </request-map>

    <!-- end of request mappings -->

request-map 的uri决定当访问的资源(资源的解析方式在ControlServlet解释)。
当返回成功(success)的时候,就转到view,需要处理的view是叫做SimplestScreen

配置view在controller.xml
<!--这里的type就是handler 的name-->
<view-map name="SimplestScreen" type="screen"
page="component://learning/widget/LearningScreens.xml#MyScreen"></view-map>
另外这里有一个组件引用的例子,就是
page="component://learning/widget/LearningScreens.xml#MyScreen"
这里指定了资源路径是component://learning learning组件下面开始的

widget或者fail-widgets可以再包含section元素
这个时候,包含的内部的section和外部的screen使用的是同一个似有容器空间。


<include-screen name="SimplestScreen" />
使用的是两个不同的容器空间。
但是外部的空间在内部(include)中可以访问,如果内部空间覆盖了外部的值(这里的覆盖不是值得覆盖,而是说在内部的空间也定义了同一个名字的变量),它就访问自己的空间的变量。如果没有覆盖,它会层层往上寻找,直到找到你要访问的名字的变量,如果没找到,就是空内容了。

分享到:
评论

相关推荐

    扩展你的web app以screen-widget, decorator, and actions

    标题中的“扩展你的web app以screen-widget, decorator, and actions”指的是在Web应用程序开发中,通过使用特定的技术和设计模式来增强用户界面和交互性的方法。以下是对这些概念的详细解释: 1. Screen Widget...

    Pro Android学习:widget小例子

    本教程基于“Pro Android学习”系列,重点讲解如何创建一个简单的Home Screen Widget。我们将参考提供的链接:http://blog.csdn.net/flowingflying/article/details/6212512,该链接可能包含更详细的步骤和源代码...

    Android代码-NWS Weather Alerts Widget

    Android home screen widget to display current weather alerts from the US National Weather Service I created this because I wanted a tablet on the wall in my kitchen to display weather alerts on the ...

    Android代码-24h Analog Clock

    This is a homescreen widget and Android Wear watch face that displays a 12-at-the-top 24 hour analog clock. Noon is at the top, so that the hour hand mimics the path of the sun. In addition to the ...

    WidgetDemo.zip

    Android桌面Widget,也称为Home Screen Widget,允许开发者在用户的主屏幕上放置可自定义的小部件,展示实时信息,如天气、新闻标题或音乐控制。Widget通过AppWidgetProvider类与系统进行交互,并可以利用...

    屏幕截图.zip

    4. **screenwidget.h**:这是screenwidget类的头文件,定义了类的结构和接口。 5. **frmscreenwidget.h**:对应frmscreenwidget类的头文件,可能包含了UI类的定义,如窗口布局、控件声明等。 6. **screenwidget.pro*...

    Android代码-Widget for Trello?

    Widget for Trello is an android home screen widget. Choose and display lists from your Trello boards on your home screen for a quick glance at your cards. Tools and Tech Trello's API Volley - ...

    Android代码-Calendar Widget

    Todo Agenda is a home screen widget for your Android device. It displays a list of upcoming calendar events so that you can easily have a glimpse at your appointments. Want to contribute to the ...

    ofbiz架构图

    1. **View Handler和Screen Widget Context**:这是MVC模式中的View层,负责处理用户界面和交互。View Handler解析请求,创建Screen Widget Context,用于在视图中传递数据和控制流。 2. **Service Engine**:服务...

    ofbiz 开发顺序图

    9. **Screen Widget: Definition**:屏幕组件定义,用于构建用户界面。 10. **Screen Section Condition**:屏幕组件的条件部分,用于控制显示逻辑。 11. **Screen Section Actions**:屏幕组件的动作部分,用于执行...

    OFBiz Framework Quick Reference Book

    - **ScreenWidget**:屏幕布局定义,在 ***Screens.xml** 文件中定义。 - **FormWidget**:表单定义,在 ***Forms.xml** 文件中定义。 - **TreeWidget**:树状结构布局定义,在 ***Trees.xml** 文件中定义。 - *...

    qt5制作的屏幕截图控件,方便好用,可扩展

    开发者可以基于提供的screenwidget文件进行二次开发,根据项目需求添加更多功能,比如支持拖放保存、截图编辑等。对于那些需要在资源有限的环境中实现截图功能的项目来说,这是一个非常实用的工具。

    OFBiz经典入门教程加速度编写

    4. **界面设计**:使用Screen Widget和Form Widget等工具,开发者可以构建基于Web的用户界面,实现业务流程的可视化操作。 5. **国际化与本地化**:OFBiz支持多语言环境,通过资源文件管理翻译内容,满足全球化需求...

    ofbiz程序结构.txt

    - **Screen Widget**:屏幕小部件主要用于界面展示,它们可以组合成复杂的用户界面。通过定义屏幕小部件,开发者可以轻松地构建出直观且交互性强的用户界面。 #### 四、总结 通过对OFBiz程序结构的详细解析,我们...

    Android App Widget 开发

    android:widgetCategory="home_screen"&gt; &lt;/appwidget-provider&gt; ``` 接着,在`res/layout`目录下创建`widget_layout.xml`,设计你的小部件布局。在这个音乐播放器示例中,可能包含播放/暂停按钮、上一曲/下一曲...

    AndroidStudio简单实现单击Widget打开Activity

    android:widgetCategory="home_screen"&gt; &lt;/appwidget-provider&gt; ``` 然后,在res/layout目录下创建Widget的布局文件(如:widget_layout.xml)。这里定义了Widget在桌面上显示的UI元素,可以包含Button或其他View...

    LockScreen:Android锁屏可实现完美音调

    可以注册`BroadcastReceiver`监听系统广播,如`ACTION_SCREEN_ON`和`ACTION_SCREEN_OFF`,以便在屏幕开启和关闭时做出相应反应。同时,要处理`Intent.ACTION_HEADSET_PLUG`广播,检测耳机插入状态,以提供适当的音效...

    创建appWidget

    android:widgetCategory="home_screen"&gt; &lt;/appwidget-provider&gt; ``` 这里设置了AppWidget的最小尺寸、更新周期等属性。 4. **实现AppWidget提供者** 创建一个继承自`AppWidgetProvider`的类,例如`...

    AppWidget_FlashLight

    android:widgetCategory="home_screen"&gt; &lt;/appwidget-provider&gt; ``` 接下来,我们创建`app_widget_layout.xml`布局文件,设计AppWidget的外观。对于"FlashLight" AppWidget,我们可能只需要一个按钮,点击后开启或...

Global site tag (gtag.js) - Google Analytics