2016-06-11 13 views
1

私はPrimeFaces 6.0を使用してJSFを持つJavaアプリケーションを持っています DeviceManagerは、オンラインとオフラインのデバイスとブロックされたデバイスのリストを含むBeanです。各デバイスには、クラスに2つのチャートモデルダイヤルとラインがあります。ここでは、関連するコードセクションはp:chartすべてのチャートを線グラフとしてレンダリング

private MeterGaugeChartModel Dial; 
public MeterGaugeChartModel getDial() 
{ 
    Dial = initMeterGaugeModel(); 
    Dial.setTitle("Device Dial"); 
    Dial.setGaugeLabel("°C"); 
    Dial.setSeriesColors("66cc66,93b75f,E7E658,cc6666"); 
    Dial.setGaugeLabelPosition("bottom"); 
    Dial.setShowTickLabels(false); 
    Dial.setLabelHeightAdjust(110); 
    Dial.setIntervalOuterRadius(100); 
    return Dial; 

} 

private MeterGaugeChartModel initMeterGaugeModel() 
{ 
    List<Number> intervals = new ArrayList<Number>() 
    { 
     private static final long serialVersionUID = -311244463402628794L; 

    { 
     add(20); 
     add(50); 
     add(120); 
     add(220); 
    }}; 

    return new MeterGaugeChartModel(140, intervals); 
} 

は今、この作品、およびプロットモデルにPrimefacesからコピーしたグラフモデルを含むデバイスクラスは、すべての問題を排除するために披露されたこの

<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:p="http://primefaces.org/ui"> 

<h:head> 
    <title><ui:insert name="title">Title</ui:insert></title> 
    <h:outputStylesheet library="css" name="primeui-all.min.css" /> 
    <h:outputStylesheet library="css" name="bootstrap.min.css" /> 
    <h:outputStylesheet library="css" name="jquery.jqplot.min.css" /> 
    <h:outputScript library="js" name="primeui-all.min.js" /> 
    <h:outputScript library="js" name="jquery.jqplot.min.js"/> 
</h:head> 



<p:dataTable id="OnlineDevices" var="device" value="#{DeviceManager.online}"> 
    <p:column headerText="Gauge Meter" class="col-md-4" > 
      <p:panel> 
       <p:chart type="metergauge" model="#{device.dial}" style="height:300px;"/> 
      </p:panel> 
    </p:column> 
</p:dataTable> 

あり、すべてのプロットだけが空の折れ線グラフとしてレンダリングされます。折れ線グラフは正しく動作し、プロットされますが、それ以外のものは空の線グラフとしてレンダリングされます。私は、グラフデータを更新するためにポーリングフォームを使用し、サーバーから送信されたデータを調べるためにfirebugを使用しました。だから、なぜ他のものと並んでレンダリングするのですか?おかげで多くの人とすべての提案は高く評価され、歓迎されています。

+0

したがって、PrimeFaces 5.3で動作しますか?そして、なぜあなたは手動でjqplotのCSSとjsをすべて含んでいますか?そしてなぜprimeui jsとcss?奇妙な組み合わせ。最初に削除してください。 – Kukeltje

+0

それは今働いています...それはテンプレートからのヘッダーでしたが、私はそれがなぜそうであったのか分からない...答えとして提出し、私は受け入れて感謝します。 –

+0

あなたは[mcve]の作成手順に従えば簡単にこれを見つけることができました。http://www.stackoverflow.com/tags/jsf/info – Kukeltje

答えて

1

自動インクルードのすべてのプライムインタフェースjs(チャートのjqplotを含む)と、手動でインクルードするjqplotおよびprimeui cssとjsの間に競合があります。それを取り除くと、うまくいくでしょう。

関連する問題