2017-04-13 8 views
0

Primefaceチャートを使用していますが、jqPlotの詳細を知りたいので、より柔軟なカスタマイズを行うことができます。たとえば、コンビネーションチャート(棒グラフとラインコンボ)を作成したいとします。jqPlot Java arraylistとJSF beansからチャートを作成する方法

私はチャートがXHTMLページからjQueryの機能を焼成することにより作成することにしたい。

<button type="button" class="button" onclick="comboChart()">Combo Chart</button> 

機能は次のとおりです。

  function comboChart() { 

      var line1 = [#{chartDataBean.comboChartMapList}]; 
      var line2 = [#{chartDataBean.linePartChartMap}]; 

      var plot2 = $.jqplot('testchart', [line1, line2], { 
         series: [{renderer: $.jqplot.BarRenderer}, {xaxis: 'x2axis', yaxis: 'y2axis'}], 
      axesDefaults: { 
      tickRenderer: $.jqplot.CanvasAxisTickRenderer, 
      tickOptions: { 
           angle: 30 
          } 
         }, 
         axes: { 
          xaxis: { 
           renderer: $.jqplot.CategoryAxisRenderer 
          }, 
          x2axis: { 
           renderer: $.jqplot.CategoryAxisRenderer 
          }, 
          yaxis: { 
           autoscale: true 
          }, 
          y2axis: { 
           autoscale: true 
          } 
         } 
        }); 
       }; 

JSF Beanがどこ各地図のアレイリストが含まれています地図はシリーズになります:

public List<HashMap<Object, Double>> getComboChartMapList() { 
    List<List<Endatapoint>> modbinholder = new ArrayList<List<Endatapoint>> 
(); 
    modbinholder = anBean.getModelBinList(); 
    comboChartMap = new HashMap<>(); 
    comboChartMapList = new ArrayList<>(); 

    for (List<Endatapoint> cList : modbinholder) { 
     List<Endatapoint> pholder = new ArrayList<>(); 
     pholder = cList; 
     for (Endatapoint p : pholder) { 

      Date lDate = p.getPointdate(); 
      String pnits = p.getRecords().getSnipunit(); 

      Double aNum = p.getActualnum(); 
      comboChartMap.put(pnits, aNum); 
      comboChartMapList.add(comboChartMap); 
     } 
    } 
    return comboChartMapList; 
} 

上記の情報だけでは、データがない空白のグラフが生成されます。 ChromeとFFでJSコンソール(Firebugの)を見て、私はリストの値がこのように生成される構文エラーに気づく:

var line1 = [[{Million Dollars=54.7}, {Million Dollars=54.7}]]; 

しかしjqplotのドキュメントは、次のように生成される値を必要とします。

var line1 = [['Million Dollars', 54], ['Million Dollars', 54.7]]; 

私の質問は以下のとおりです。

  1. 私は上記のコードで間違って何をしているのですか?
  2. 上記のコードを使用して正しい値を渡すことができますか、またはJSONのような追加のメソッドを使用する必要がありますか?

私がここで読んでいる例と質問のほとんどは、動的値をjplotに渡す際にJSONが関与しているようです。可能であればJavaオブジェクトを使用することに固執したいと思います。

+1

を必要とされないゲッターを作成し、それが舞台裏PrimeFacesがあなたのために何をするかであるということです – Kukeltje

答えて

0

JSONは、PrimeFacesを必要、または注釈付きRESTインターフェース、あなたのためだけにJSONを変換

関連する問題