Package nl.topicus.wqplot.web.pages.examples.dist

Source Code of nl.topicus.wqplot.web.pages.examples.dist.BarTestPage

package nl.topicus.wqplot.web.pages.examples.dist;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import nl.topicus.wqplot.components.JQPlot;
import nl.topicus.wqplot.components.JQPlotEvent;
import nl.topicus.wqplot.components.plugins.JQPlotBarRenderer;
import nl.topicus.wqplot.components.plugins.JQPlotCategoryAxisRenderer;
import nl.topicus.wqplot.components.plugins.JQPlotPieRenderer;
import nl.topicus.wqplot.data.NumberSeries;
import nl.topicus.wqplot.data.SimpleNumberSeries;
import nl.topicus.wqplot.options.PlotBarDirection;
import nl.topicus.wqplot.options.PlotBarRendererOptions;
import nl.topicus.wqplot.options.PlotLegendLocation;
import nl.topicus.wqplot.options.PlotLegendPlacement;
import nl.topicus.wqplot.options.PlotOptions;
import nl.topicus.wqplot.options.PlotPointLabelLocation;
import nl.topicus.wqplot.web.pages.BasePage;

import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.util.ListModel;
import org.odlabs.wiquery.core.events.Event;
import org.odlabs.wiquery.core.events.WiQueryEventBehavior;
import org.odlabs.wiquery.core.javascript.JsScope;
import org.odlabs.wiquery.core.javascript.JsScopeContext;

public class BarTestPage extends BasePage
{
  private static final long serialVersionUID = 1L;

  public BarTestPage()
  {
    addChart1();
    addChart2();
    addChart2b();
    addChart3();
    addChart4();
    addChart5();
    addChart6();
  }

  @SuppressWarnings("unchecked")
  private void addChart1()
  {
    JQPlot chart1 =
      new JQPlot("chart1", new ListModel<SimpleNumberSeries<Integer>>(
        Arrays.asList(new SimpleNumberSeries<Integer>(2, 6, 7, 10))));

    PlotOptions chart1O = chart1.getOptions();
    chart1O.getSeriesDefaults().setRenderer(JQPlotBarRenderer.get());
    chart1O.getSeriesDefaults().getPointLabels().setShow(true);

    chart1O.getAxes().getXaxis().setRenderer(JQPlotCategoryAxisRenderer.get());
    chart1O.getAxes().getXaxis().setTicks("a", "b", "c", "d");

    chart1O.getHighlighter().setShow(false);

    add(chart1);

    final WebMarkupContainer info1 = new WebMarkupContainer("info1");
    info1.setOutputMarkupId(true);
    add(info1);

    chart1.add(new WiQueryEventBehavior(new Event(JQPlotEvent.DATA_CLICK)
    {
      private static final long serialVersionUID = 1L;

      @Override
      public JsScope callback()
      {
        return new JsScope("ev", "seriesIndex", "pointIndex", "data")
        {
          private static final long serialVersionUID = 1L;

          @Override
          protected void execute(JsScopeContext scopeContext)
          {
            StringBuilder body = new StringBuilder();
            body.append("$('#");
            body.append(info1.getMarkupId());
            body.append("').html("
              + "'series: '+seriesIndex+', point: '+pointIndex+', data: '+data);");
            scopeContext.append(body);
          }
        };
      }
    }));
  }

  @SuppressWarnings("unchecked")
  private void addChart2()
  {
    JQPlot chart2 =
      new JQPlot("chart2", new ListModel<SimpleNumberSeries<Integer>>(Arrays.asList(
        new SimpleNumberSeries<Integer>(2, 6, 7, 10), new SimpleNumberSeries<Integer>(7, 5,
          3, 2))));

    PlotOptions chart2O = chart2.getOptions();
    chart2O.getSeriesDefaults().setRenderer(JQPlotBarRenderer.get());
    chart2O.getSeriesDefaults().getPointLabels().setShow(true);

    chart2O.getAxes().getXaxis().setRenderer(JQPlotCategoryAxisRenderer.get());
    chart2O.getAxes().getXaxis().setTicks("a", "b", "c", "d");

    add(chart2);

    final WebMarkupContainer info2 = new WebMarkupContainer("info2");
    info2.setOutputMarkupId(true);
    add(info2);

    chart2.add(new WiQueryEventBehavior(new Event(JQPlotEvent.DATA_HIGHLIGHT)
    {
      private static final long serialVersionUID = 1L;

      @Override
      public JsScope callback()
      {
        return new JsScope("ev", "seriesIndex", "pointIndex", "data")
        {
          private static final long serialVersionUID = 1L;

          @Override
          protected void execute(JsScopeContext scopeContext)
          {
            StringBuilder body = new StringBuilder();
            body.append("$('#");
            body.append(info2.getMarkupId());
            body.append("').html("
              + "'series: '+seriesIndex+', point: '+pointIndex+', data: '+data);");
            scopeContext.append(body);
          }
        };
      }
    }));

    chart2.add(new WiQueryEventBehavior(new Event(JQPlotEvent.DATA_UNHIGHLIGHT)
    {
      private static final long serialVersionUID = 1L;

      @Override
      public JsScope callback()
      {
        return new JsScope("ev", "seriesIndex", "pointIndex", "data")
        {
          private static final long serialVersionUID = 1L;

          @Override
          protected void execute(JsScopeContext scopeContext)
          {
            StringBuilder body = new StringBuilder();
            body.append("$('#");
            body.append(info2.getMarkupId());
            body.append("').html('Nothing');");
            scopeContext.append(body);
          }
        };
      }
    }));
  }

  private void addChart2b()
  {
    List<NumberSeries<Integer, Integer>> series =
      new ArrayList<NumberSeries<Integer, Integer>>();
    NumberSeries<Integer, Integer> l1 = new NumberSeries<Integer, Integer>();
    l1.addEntry(2, 1).addEntry(4, 2).addEntry(6, 3).addEntry(3, 4);
    series.add(l1);
    NumberSeries<Integer, Integer> l2 = new NumberSeries<Integer, Integer>();
    l2.addEntry(5, 1).addEntry(1, 2).addEntry(3, 3).addEntry(4, 4);
    series.add(l2);
    NumberSeries<Integer, Integer> l3 = new NumberSeries<Integer, Integer>();
    l3.addEntry(4, 1).addEntry(7, 2).addEntry(1, 3).addEntry(2, 4);
    series.add(l3);

    JQPlot chart2b =
      new JQPlot("chart2b", new ListModel<NumberSeries<Integer, Integer>>(series));

    PlotOptions chart2bO = chart2b.getOptions();
    chart2bO.getSeriesDefaults().setRenderer(JQPlotBarRenderer.get());
    chart2bO.getSeriesDefaults().getPointLabels().setShow(true);
    chart2bO.getSeriesDefaults().getPointLabels().setLocation(PlotPointLabelLocation.e);
    chart2bO.getSeriesDefaults().getPointLabels().setEdgeTolerance(-15d);
    chart2bO.getSeriesDefaults().setShadowAngle(135d);
    chart2bO.getSeriesDefaults().setRendererOptions(
      new PlotBarRendererOptions().setBarDirection(PlotBarDirection.horizontal));

    chart2bO.getAxes().getYaxis().setRenderer(JQPlotCategoryAxisRenderer.get());

    add(chart2b);

    final WebMarkupContainer info2b = new WebMarkupContainer("info2b");
    info2b.setOutputMarkupId(true);
    add(info2b);

    final WebMarkupContainer info2c = new WebMarkupContainer("info2c");
    info2c.setOutputMarkupId(true);
    add(info2c);

    chart2b.add(new WiQueryEventBehavior(new Event(JQPlotEvent.DATA_HIGHLIGHT)
    {
      private static final long serialVersionUID = 1L;

      @Override
      public JsScope callback()
      {
        return new JsScope("ev", "seriesIndex", "pointIndex", "data")
        {
          private static final long serialVersionUID = 1L;

          @Override
          protected void execute(JsScopeContext scopeContext)
          {
            StringBuilder body = new StringBuilder();
            body.append("$('#");
            body.append(info2b.getMarkupId());
            body.append("').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data+ ', pageX: '+ev.pageX+', pageY: '+ev.pageY);");
            scopeContext.append(body);
          }
        };
      }
    }));

    chart2b.add(new WiQueryEventBehavior(new Event(JQPlotEvent.DATA_CLICK)
    {
      private static final long serialVersionUID = 1L;

      @Override
      public JsScope callback()
      {
        return new JsScope("ev", "seriesIndex", "pointIndex", "data")
        {
          private static final long serialVersionUID = 1L;

          @Override
          protected void execute(JsScopeContext scopeContext)
          {
            StringBuilder body = new StringBuilder();
            body.append("$('#");
            body.append(info2c.getMarkupId());
            body.append("').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data+ ', pageX: '+ev.pageX+', pageY: '+ev.pageY);");
            scopeContext.append(body);
          }
        };
      }
    }));

    chart2b.add(new WiQueryEventBehavior(new Event(JQPlotEvent.DATA_UNHIGHLIGHT)
    {
      private static final long serialVersionUID = 1L;

      @Override
      public JsScope callback()
      {
        return new JsScope("ev", "seriesIndex", "pointIndex", "data")
        {
          private static final long serialVersionUID = 1L;

          @Override
          protected void execute(JsScopeContext scopeContext)
          {
            StringBuilder body = new StringBuilder();
            body.append("$('#");
            body.append(info2b.getMarkupId());
            body.append("').html('Nothing');");
            scopeContext.append(body);
          }
        };
      }
    }));
  }

  @SuppressWarnings("unchecked")
  private void addChart3()
  {
    JQPlot chart3 =
      new JQPlot("chart3", new ListModel<SimpleNumberSeries<Integer>>(Arrays.asList(
        new SimpleNumberSeries<Integer>(2, 6, 7, 10), new SimpleNumberSeries<Integer>(7, 5,
          3, 2), new SimpleNumberSeries<Integer>(14, 9, 3, 8))));

    PlotOptions chart3O = chart3.getOptions();
    chart3O.setStackSeries(true);
    chart3O.setCaptureRightClick(true);

    chart3O.getSeriesDefaults().setRenderer(JQPlotBarRenderer.get());
    chart3O.getSeriesDefaults().setRendererOptions(
      new PlotBarRendererOptions().setHighlightMouseDown(true));
    chart3O.getSeriesDefaults().getPointLabels().setShow(true);

    chart3O.getLegend().setShow(true);
    chart3O.getLegend().setLocation(PlotLegendLocation.e);
    chart3O.getLegend().setPlacement(PlotLegendPlacement.outside);

    add(chart3);

    final WebMarkupContainer info3 = new WebMarkupContainer("info3");
    info3.setOutputMarkupId(true);
    add(info3);

    chart3.add(new WiQueryEventBehavior(new Event(JQPlotEvent.DATA_RIGHTCLICK)
    {
      private static final long serialVersionUID = 1L;

      @Override
      public JsScope callback()
      {
        return new JsScope("ev", "seriesIndex", "pointIndex", "data")
        {
          private static final long serialVersionUID = 1L;

          @Override
          protected void execute(JsScopeContext scopeContext)
          {
            StringBuilder body = new StringBuilder();
            body.append("$('#");
            body.append(info3.getMarkupId());
            body.append("').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);");
            scopeContext.append(body);
          }
        };
      }
    }));
  }

  private void addChart4()
  {
    List<NumberSeries<Integer, Integer>> series =
      new ArrayList<NumberSeries<Integer, Integer>>();
    NumberSeries<Integer, Integer> l1 = new NumberSeries<Integer, Integer>();
    l1.addEntry(2, 1).addEntry(6, 2).addEntry(7, 3).addEntry(10, 4);
    series.add(l1);
    NumberSeries<Integer, Integer> l2 = new NumberSeries<Integer, Integer>();
    l2.addEntry(7, 1).addEntry(5, 2).addEntry(3, 3).addEntry(2, 4);
    series.add(l2);
    NumberSeries<Integer, Integer> l3 = new NumberSeries<Integer, Integer>();
    l3.addEntry(14, 1).addEntry(9, 2).addEntry(9, 3).addEntry(8, 4);
    series.add(l3);

    JQPlot chart4 = new JQPlot("chart4", new ListModel<NumberSeries<Integer, Integer>>(series));

    PlotOptions chart4O = chart4.getOptions();
    chart4O.setStackSeries(true);
    chart4O.setCaptureRightClick(true);

    chart4O.getSeriesDefaults().setRenderer(JQPlotBarRenderer.get());
    chart4O.getSeriesDefaults().setShadowAngle(135d);
    chart4O.getSeriesDefaults().setRendererOptions(
      new PlotBarRendererOptions().setHighlightMouseDown(true).setBarDirection(
        PlotBarDirection.horizontal));
    chart4O.getSeriesDefaults().getPointLabels().setShow(true);
    chart4O.getSeriesDefaults().getPointLabels().setFormatString("%d");

    chart4O.getLegend().setShow(true);
    chart4O.getLegend().setLocation(PlotLegendLocation.e);
    chart4O.getLegend().setPlacement(PlotLegendPlacement.outside);

    chart4O.getAxes().getYaxis().setRenderer(JQPlotCategoryAxisRenderer.get());

    add(chart4);
  }

  private void addChart5()
  {
    List<NumberSeries<Integer, Integer>> series =
      new ArrayList<NumberSeries<Integer, Integer>>();
    NumberSeries<Integer, Integer> l1 = new NumberSeries<Integer, Integer>();
    l1.addEntry(2, 1).addEntry(null, 2).addEntry(7, 3).addEntry(10, 4);
    series.add(l1);

    JQPlot chart5 = new JQPlot("chart5", new ListModel<NumberSeries<Integer, Integer>>(series));

    PlotOptions chart5O = chart5.getOptions();
    chart5O.setCaptureRightClick(true);

    chart5O.getSeriesDefaults().setRenderer(JQPlotBarRenderer.get());
    chart5O.getSeriesDefaults().setShadowAngle(135d);
    chart5O.getSeriesDefaults().setRendererOptions(
      new PlotBarRendererOptions().setHighlightMouseDown(true).setBarDirection(
        PlotBarDirection.horizontal));
    chart5O.getSeriesDefaults().getPointLabels().setShow(true);
    chart5O.getSeriesDefaults().getPointLabels().setFormatString("%d");

    chart5O.getLegend().setShow(true);
    chart5O.getLegend().setLocation(PlotLegendLocation.e);
    chart5O.getLegend().setPlacement(PlotLegendPlacement.outside);

    chart5O.getAxes().getYaxis().setRenderer(JQPlotCategoryAxisRenderer.get());

    add(chart5);
  }

  @SuppressWarnings("unchecked")
  private void addChart6()
  {
    JQPlot chart6 =
      new JQPlot("chart6", new ListModel<SimpleNumberSeries<Integer>>(
        Arrays.asList(new SimpleNumberSeries<Integer>(1, 2, 3, 4))));

    PlotOptions chart6O = chart6.getOptions();

    chart6O.getSeriesDefaults().setRenderer(JQPlotPieRenderer.get());

    add(chart6);
  }
}
TOP

Related Classes of nl.topicus.wqplot.web.pages.examples.dist.BarTestPage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.