`
yutiansky
  • 浏览: 197474 次
  • 性别: Icon_minigender_1
  • 来自: 本溪
社区版块
存档分类
最新评论

Wicket生成ExtJS的组件(DateField)

阅读更多

一,组件代码

 

DateField.java

package dncsoft.wicket.datepicker;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

import org.apache.wicket.markup.html.form.FormComponentPanel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.util.resource.IResourceStream;
import org.apache.wicket.util.resource.PackageResourceStream;
import org.apache.wicket.velocity.markup.html.VelocityPanel;

public class DateField extends FormComponentPanel<String> {

    private static final long serialVersionUID = 1L;
    private Map<String, Object> map = new HashMap<String, Object>();

    public DateField(final String id, IModel<String> model) {
        super(id, model);
        init();
    }

    private void init() {
        map.put("value", getModel().getObject());
        map.put("id", getInputName());
        map.put("target", getInputName() + random());

        add(new VelocityPanel("javascript", Model.ofMap(map)) {
            private static final long serialVersionUID = 1L;

            @Override
            protected IResourceStream getTemplateResource() {
                return new PackageResourceStream(DateField.class, "DateField.js");
            }
        });
    }

    private String random() {
        Random rnd = new Random(System.currentTimeMillis());
        return Integer.toString(rnd.nextInt());
    }

    @Override
    protected void convertInput() {
        super.convertInput();
        String str = this.getConvertedInput();

        map.put("value", str);
    }
}

 

DateField.html

<wicket:panel><wicket:fragment wicket:id="javascript"></wicket:fragment></wicket:panel>

 

DateField.js

<span id="${target}"></span><script type="text/javascript">
new Ext.form.DateField(
  {id:'${id}', 
    vtype:'daterange', 
    format:'Y/m/d', 
    allowBlank:false, 
    anchor:'32%', 
    value:'${value}'}).render('${target}');
</script>
 

二,Page代码

DatePickerPage.java

package dncsoft.wicket.page;

import dncsoft.wicket.datepicker.DateField;

import org.apache.wicket.IClusterable;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;

public class DatePickerPage extends WebPage {

    private static final long serialVersionUID = 1L;

    private class MyFormData implements IClusterable {
        private static final long serialVersionUID = 1L;

        private String startDate = "2011-12-12";

        @SuppressWarnings("unused")
        public void setStartDate(String startDate) {
            this.startDate = startDate;
        }

        @SuppressWarnings("unused")
        public String getStartDate() {
            return startDate;
        }
    }

    private class MyForm extends Form<MyFormData> {
        private static final long serialVersionUID = 1L;

        public MyForm(String id, IModel<MyFormData> model) {
            super(id, model);
            add(new DateField("startDate", new PropertyModel<String>(model, "startDate")));
        }
    }

    public DatePickerPage() {
        MyFormData bean = new MyFormData();
        CompoundPropertyModel<MyFormData> model = new CompoundPropertyModel<MyFormData>(bean);
        MyForm form = new MyForm("form", model);

        add(form);
    }

}

 

DatePickerPage.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Portal Example</title>
<link rel="stylesheet" type="text/css" href="/wicket/html/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="/wicket/html/css/Portal.css" />
<script type="text/javascript" src="/wicket/html/js/ext-base.js"></script>
<script type="text/javascript" src="/wicket/html/js/ext-all.js"></script>
</head>
<body>

<div>
<form wicket:id="form">
<wicket:fragment wicket:id="startDate">[startDate]</wicket:fragment>
<input type="submit" value="set" />
</form>
</div>

</body>
</html>
 

 

 

// END

分享到:
评论

相关推荐

    Wicket 8.X开发文档(中文翻译+英文原版)

    Wicket与其他面向组件的框架相比 威克特说“你好世界!” 4.1。Wicket分发和模块 4.2。Wicket应用程序的配置 4.3。HomePage类 4.4。Wicket链接 4.5。摘要 5. Wicket作为页面布局管理器 5.1。页眉,页脚,左侧菜单,...

    wicket简单实例

    Wicket是一款开源的Java Web应用程序框架,它强调组件化和模型-视图-控制器(MVC)的设计模式。这个“wicket简单实例”是为了帮助初学者理解Wicket的工作原理和基本操作,通过运行这些示例,你可以深入学习Wicket的...

    wicket例子和开发指南

    Wicket是一个开源的Java Web应用程序框架,它提供了一种组件化的开发方式,使得Web应用的构建更为简单和直观。这个压缩包包含了一个Wicket的开发指南PDF文档以及一些示例项目,这些都是学习和掌握Wicket框架的重要...

    wicket开发指南 pdf

    Wicket 是一个开源的、基于Java的Web应用程序框架,它以其组件化、模型-视图-控制器(MVC)架构和轻量级特性而受到开发者们的青睐。本指南将深入探讨Wicket的核心概念、工作原理以及如何有效地利用它来构建动态、...

    wicket开发指南

    - **添加(Addition)**:组件被添加到其父组件时,Wicket会为其生成HTML标记。 - **绑定(Mounting)**:将URL与页面或组件关联,使得可以通过URL访问。 - **渲染(Rendering)**:生成并发送HTML到客户端浏览器。 ...

    wicket指南

    Wicket 是一个开源的、基于组件的 Java Web 开发框架,它提供了一种简单而强大的方式来构建动态、交互性强的Web 应用程序。Wicket 的设计哲学是将Web 页面的视图与业务逻辑解耦,使得开发者可以专注于应用的业务需求...

    wicket7教程

    整体来看,Wicket 7教程详细介绍了Wicket框架的使用,从基础概念到高级特性,涵盖了组件导向设计、页面布局、生命周期管理、请求处理机制、链接和URL生成、表单和模型处理等多个方面。通过学习本教程,Java开发者...

    WIComponents:apache wicket的UI组件-开源

    “ wicket组件”项目是apache wicket网络框架的组件库。 wicket组件引用了桌面应用程序的经典组件库(例如Microsoft Foundation Classes,QT Library或wxWindows),为wicket Web应用程序提供了图形用户界面组件。 ...

    Wicket.pdf(Wicket开发指南)

    - **组件化:** Wicket 强调组件的概念,将 Web 页面视为组件树,每个组件负责显示部分视图或处理用户交互。 - **HTML 和业务逻辑分离:** Wicket 允许开发者使用标准 HTML 来构建界面,而将复杂的业务逻辑封装在 ...

    wicket1.4的jar文件

    Wicket 1.4 是一个基于Java的开源Web应用程序框架,它强调了组件化和页面的可重用性。这个框架允许开发者创建高度交互式的、动态的网页应用,而无需深入学习复杂的JavaScript或HTML。Wicket 1.4 版本是该框架的一个...

    wicket+spring

    1. **组件驱动**:Wicket的组件可以绑定到模型,自动处理渲染和更新,这使得开发者可以专注于业务逻辑,而不是页面的呈现细节。 2. **无状态与有状态组件**:Wicket组件可以是有状态的(Stateful),这意味着它们会...

    Wicket中文开发指南

    Wicket是一款开源的Java Web应用程序框架,它强调组件化和模型-视图-控制器(MVC)的设计模式。本指南将深入探讨如何使用Wicket进行中文开发,帮助开发者更好地理解和应用这个强大的框架。 **一、Wicket框架概述** ...

    apache-wicket

    Apache Wicket是一个开源的、面向组件的Java Web应用框架。它允许开发者使用Java编写Web应用程序,同时利用了面向对象编程的特性来简化和加速Web开发过程。Wicket的重点是能够创建可重用、可维护的组件,并且提供了...

    danhaywood-isis-wicket-excel-1.4.0.zip

    而isis-wicket-excel组件则是对Wicket Viewer的一个扩展,它添加了将数据导出为Excel文件的能力,这对于数据分析、报告生成和数据共享非常有用。 在isis-wicket-excel-master目录中,你可能会找到以下关键组成部分...

    wicket 官方JAVA教程

    Wicket的组件库非常丰富,包含大量预建的UI组件,同时也支持自定义组件开发,满足各种需求。此外,还可以通过插件和扩展来增强框架的功能。 8. **源码阅读** 作为开源项目,Wicket的源码对于开发者来说是一份宝贵...

    wicket-menu-6.5.0.zip

    总结起来,"wicket-menu-6.5.0.zip"是一个展示Wicket框架构建菜单系统的实例,它涵盖了菜单组件的创建、数据绑定、动态更新以及用户交互等方面的知识,对于想要深入了解Wicket或者提高Web应用开发能力的开发者来说,...

    wicket:Apache Wicket-基于组件的Java Web框架

    Apache Wicket是一个开源的,基于Java,基于组件的Web应用程序框架。 通过适当的标记/逻辑分离,POJO数据模型以及令人耳目一新的XML缺乏,Apache Wicket使开发Web应用程序变得简单而又愉快。 交换样板,复杂的调试...

    apacke-wicket-mvn编译

    Apache Wicket是一款开源的Java Web应用框架,它以组件为基础,提供了丰富的功能来帮助开发者创建动态、交互式的Web应用程序。 【描述】:“自用,在线转移资源,使用带mvn插件的eclipse直接导入即可。”这说明这个...

Global site tag (gtag.js) - Google Analytics