`

集成Flex的JSF扩展框架Exadel Fiji简介

阅读更多

Exadel Fiji 是对JSF一个扩展框架,用于对Flex进行完全封装.

 

该框架通过在JSF页面内集成JSF组件和Flex组件来扩展JSF. 程序员可以采用类似于JSF组件的方式来调用Fiji Felx组件.

 

例如以下效果:

 

其JSF代码如下

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:fiji="http://exadel.com/fiji">

        <h:panelGrid columns="2">
        <fiji:barChart id="barChartMulti" value="#{BBeanMulti.commonData}"
            title="Multi-series Bar Chart" subtitle="Beijing 2008 Olympic Games"
            legendCaption="Medals" legendPosition="top" captionX="Medals Number"
            captionY="Countries" barColors="#{BBeanMulti.totalColors}" width="350"
            height="350" onitemclick="moveItem(event.x);return false;"
            barCaption="none">
            <fiji:chartData type="name" value="Total Medals Count" />
            <fiji:chartData type="y" value="#{BBeanMulti.dataTotals}" />
        </fiji:barChart>
        <fiji:barChart id="selectedItemsChart" value="#{BBeanMulti.selectedData}"
            title="Multi-series Bar Chart" subtitle="Results for Selected Country"
            legendCaption="Medals" legendPosition="top" captionX="Medals Number"
            captionY="Countries" barColors="#{BBeanMulti.colors}" width="350"
            height="350" rulersValuesHighlight="none">
            <fiji:chartData type="name" value="#{BBeanMulti.names}" />
        </fiji:barChart>
        </h:panelGrid>
        <h:form> 
            <a4j:jsFunction action="#{BBeanMulti.showDetails}"
                name="moveItem" ajaxSingle="true" oncomplete="$('selectedItemsChart:component').update();">
                <a4j:actionparam name="param1"
                    assignTo="#{BBeanMulti.currentCountry}"></a4j:actionparam>
            </a4j:jsFunction>
        </h:form>

</ui:composition>

 

 Bean代码如下

package com.exadel.fiji.demo.barChart;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.Map;


public class BeanMulti {

    private String currentCountry;
    private String currentMedalType;
    private Integer currentMedalsCount;
    
    private ArrayList<Medal> currentCountryMedals = new ArrayList<Medal>(); 
    private ArrayList<Medal> currentMedalsByType = new ArrayList<Medal>();  
    
    private  Map<String, Integer> commonData = new LinkedHashMap<String,Integer>();
    private  Map<String, Integer[]> selectedData = new LinkedHashMap<String,Integer[]>();
    private  Map<String, Integer[]> data = new LinkedHashMap<String,Integer[]>();
    private  ArrayList<String> colors = new ArrayList<String>();
    private  ArrayList<String> totalColors = new ArrayList<String>();
    private  ArrayList<String> names = new ArrayList<String>();
    private  ArrayList<String> countries = new ArrayList<String>();
    
    private Integer[] dataChn = new Integer[]{51, 21, 28};
    private Integer[] dataUSA = new Integer[]{36, 38, 36};
    private Integer[] dataRus = new Integer[]{23, 21, 28};
    private Integer[] dataTotal = new Integer[]{0, 0, 0};
    
    public BeanMulti() {
        super();
        generateData();
    }

    private void generateData() {
        data.put("Russia", dataRus);
        data.put("USA", dataUSA);
        data.put("China", dataChn);
        
        for (int i = 0; i < dataRus.length; i++) {
            dataTotal[0]+=dataRus[i];
            dataTotal[1]+=dataUSA[i];
            dataTotal[2]+=dataChn[i];
        }
        
        commonData.put("Russia", dataTotal[0]);
        commonData.put("USA", dataTotal[1]);
        commonData.put("China", dataTotal[2]);
        
        countries.add("Russia");
        countries.add("USA");
        countries.add("China");
        
        names.add("Gold");
        names.add("Silver");
        names.add("Bronze");
        
        colors.add("#DAA520");
        colors.add("#C0C0C0");
    
        colors.add("#B87333");
        totalColors.add("51476B");

    }

    
    public Integer[] getMedalCountsByCountry(String currentCountry) {
        if ("china".equals(currentCountry.toLowerCase())){
            return  dataChn;
        }else if ("usa".equals(currentCountry.toLowerCase())){
            return  dataUSA;
        }else if ("russia".equals(currentCountry.toLowerCase())){
            return  dataRus;
        }
        
        return null;
    }
    
    public void showDetails(){
        Integer[] currentMedals = getMedalCountsByCountry(currentCountry);
        selectedData.clear();
        selectedData.put(currentCountry, currentMedals);
    }
    
        //Getters setters and other metods here
}

 

Exadel Fiji的开发参考请参考,今后再抽时间汉化过来:

http://www.exadel.com/fiji/guide

 

 

 

0
0
分享到:
评论

相关推荐

    fiji框架,jsf与flex交互。。

    JSF处理业务逻辑和数据管理,Flex负责前端展示,Fiji作为整个架构的支撑,提供模块化的服务和集成环境。这种混合开发模式可以充分利用各自技术的优势,提高开发效率并提供高质量的Web应用。 总结来说,Fiji框架与...

    MyEclipse8.5 集成 Flex4.5

    在IT行业中,集成开发环境(IDE)的扩展和配置是开发者日常工作中不可或缺的一部分。本文将详细介绍如何在MyEclipse 8.5中集成Flex 4.5,这是一款强大的Java EE开发工具与富互联网应用程序(RIA)开发框架的结合。 ...

    JSF Java Server Faces (JSF)框架

    JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...

    jsf框架

    - JBoss Seam是一个用于构建企业级应用程序的框架,可与JSF和RichFaces集成。 - 配置Seam以支持RichFaces组件。 #### Portlet支持 - 富客户端组件可以在Portlet容器中运行。 - 需要确保服务器支持portlet模式,并...

    JSF框架的demo项目

    **JSF(JavaServer Faces)框架是Java平台上用于构建用户界面的一个强大工具,尤其适合企业级Web应用开发。本项目“JSF框架的demo项目”是一个简易的示例,旨在帮助初学者理解并掌握JSF的基本概念和用法。** 在JSF...

    jsf框架搭建

    JSF可以与各种持久化框架如Hibernate或JPA集成,处理数据库交互。你可以创建DAO(数据访问对象)类来封装数据库操作,然后在Managed Bean中调用这些方法。 九、JSF实战 在JSF_27这个项目中,你可能会看到一个简单的...

    JSF框架入门教程和JSF的jar包

    **JSF框架入门教程** JavaServer Faces(JSF)是Java平台上的一种用于构建Web应用程序的MVC(模型-视图-控制器)框架。它由Oracle公司维护,是Java EE的一部分,旨在简化用户界面开发,提供组件化开发方式,并且与...

    JSF框架及其简单的实例

    **JSF框架详解** JavaServer Faces(JSF)是Java平台上的一个标准的、用于构建Web应用程序的MVC(Model-View-Controller)框架。它为开发者提供了丰富的组件库和事件处理机制,使得开发人员可以更高效地创建交互式...

    JSF框架中使用的设计模式介绍

    JSF框架利用了多种设计模式来提高其灵活性和可扩展性。 #### 三、详细设计模式分析 ##### 3.1 Singleton模式 Singleton模式的主要目标是确保一个类只有一个实例,并提供一个全局访问点。在JSF中,当支持Web应用...

    jboss selectManyCheckbox jsf扩展

    在JavaServer Faces (JSF)框架中,`selectManyCheckbox`是用于创建多选框组件的一个核心组件。这篇名为“jboss selectManyCheckbox jsf扩展”的博文主要探讨了如何在JBoss环境中对这个组件进行自定义扩展,以满足...

    JSF框架使用入门(初学jsf必备)

    JSF(JavaServer Faces)框架是一个用于构建Web应用程序的组件模型框架,由Oracle公司维护,是Java EE的一部分。本教程将引导初学者了解如何入门JSF框架,通过一个简单的伪登录界面实例,学习JSF的基本组件、受管...

    基于J2EE下的JSF与Struts框架比较分析

    ### 基于J2EE下的JSF与Struts框架比较分析 #### 一、引言 随着互联网技术的发展,企业级应用的需求日益增长,Java 2 Platform, Enterprise Edition (J2EE)作为一套全面的企业级Java应用开发平台,凭借其开放性、...

    京东jsf中间件简介!.pdf

    ### 京东JSF中间件简介 #### 一、概述 京东JSF(杰夫服务框架)是一款由京东自主研发的中间件产品,旨在解决大规模分布式系统中的服务治理和服务通信问题。随着业务规模的增长和技术发展的需求,京东原有的服务...

    介绍JSF框架的PPT

    - **强大的扩展能力**:JSF框架可以方便地扩展,例如通过Shale这样的扩展框架来增加更多功能。 - **全面的集成**:JSF可以与其他Java EE组件如Spring和JPA进行集成。 ##### 市场和商业特性 - **广泛的采用**:JSF...

    jsf的框架在企业级的应用

    **JSF(JavaServer Faces)框架在企业级应用中的详解** JSF,全称为JavaServer Faces,是Java EE平台上的一个MVC(Model-View-Controller)框架,用于构建用户界面,尤其适用于企业级Web应用程序的开发。它提供了一...

    JSF+RichFaces(Ajax4jsf)框架示例

    **Ajax4jsf** 是RichFaces的一个早期版本,它是针对JSF的AJAX扩展,使得开发者可以轻松地在JSF应用中集成AJAX功能。Ajax4jsf提供了一套预定义的组件和行为,可以方便地在JSF页面上添加AJAX交互性,无需深入理解底层...

    Jsf整合三大框架及Spring Security

    **JSF(JavaServer Faces)整合三大框架及Spring Security** JavaServer Faces (JSF) 是一个用于构建Web应用程序的Java EE组件模型和渲染框架。它为开发者提供了丰富的UI组件、事件处理机制和生命周期管理,使得...

    JSF技术框架整合JSF代码

    JSF 结构JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。由于由Java ...

Global site tag (gtag.js) - Google Analytics