Package org.timepedia.chronoscope.client.axis

Examples of org.timepedia.chronoscope.client.axis.RangeAxis$UserTickLabelNumberFormatter


   * data points. If pointIdx == -1, then the range value is omitted.
   */
  public static String createDatasetLabel(XYPlot<?> plot, int datasetIdx,
      int pointIdx, int dimension, boolean valueVisible) {
    Dataset<?> ds = plot.getDatasets().get(datasetIdx);
    RangeAxis rangeAxis = plot.getRangeAxis(datasetIdx);
    @SuppressWarnings({"rawtypes", "unchecked"})
    ArrayList<Dataset> sdatasets = (ArrayList<Dataset>) ds.getUserData("datasets");
    String rlabel = ds.getRangeLabel();
    if (sdatasets != null && dimension < sdatasets.size()) {
      Dataset<?> dataset = sdatasets.get(dimension);
      if (dataset != null) {
        rlabel = dataset.getRangeLabel();
      }
    }
    String lbl = rlabel; // + rangeAxis.getLabelSuffix();

    final boolean doShowRangeValue = (pointIdx > -1);
    if (doShowRangeValue && valueVisible) {
      double yData = rangeAxis.isCalcRangeAsPercent() ? plot.calcDisplayY(
          datasetIdx, pointIdx, dimension) : plot.getDataCoord(datasetIdx,
          pointIdx, dimension);
      lbl += " (" + rangeAxis.getFormattedLabel(yData) + ")";
    }
    return lbl;
  }
View Full Code Here


    for (int i = 0; i < datasets.size(); i++) {
      Dataset dataset = datasets.get(i);

      final String rangeAxisId = dataset.getAxisId(0);
      RangeAxis rangeAxis = id2rangeAxis.get(rangeAxisId);

      // Determine if the rangeAxis should be added to the left or right range panel
      int numLeftAxes = leftPanel.getChildCount();
      int numRightAxes = rightPanel.getChildCount();
      boolean useLeftPanel = (numLeftAxes <= numRightAxes);
      CompositeAxisPanel compositePanel = useLeftPanel || !plot.isMultiaxis() ? leftPanel : rightPanel;

      if (rangeAxis == null) {
        rangeAxis = new RangeAxis(dataset.getRangeLabel(), rangeAxisId);
        rangeAxis.setPlot(plot);
        rangeAxis.setView(view);
        rangeAxis.setAxisIndex(i);
        id2rangeAxis.put(rangeAxisId, rangeAxis);
      }

      if (!localRangeAxisIds.contains(rangeAxisId)) {
        if (axisPanel == null || plot.isMultiaxis()) {
          axisPanel = new RangeAxisPanel();
          axisPanel.setValueAxis(rangeAxis);
          compositePanel.add(axisPanel);
        }
        rangeAxis.setAxisPanel(axisPanel);
        double tickLabelHeight = Math.min(axisPanel.getMaxLabelHeight(), 12);
        rangeAxis.setTickLabelHeight(tickLabelHeight);
        localRangeAxisIds.add(rangeAxisId);
        double h = getBounds().height;
        double rangeAxisHeight = h  < 20 ? view.getHeight()*0.75 : h;
        rangeAxisHeight -= rangeAxisHeight > tickLabelHeight*2 ? tickLabelHeight : 0;
        rangeAxis.setRangeAxisHeight(rangeAxisHeight);
      }

      rangeAxis.adjustAbsRange(dataset);
      rangeAxes.add(rangeAxis);
    }

    clearDrawCaches();
    return rangeAxes.toArray(new RangeAxis[rangeAxes.size()]);
View Full Code Here

      domainEndIdx = Math.min(domainEndIdx, dataSet.getNumSamples()-1);

      drawableDataset.visDomainStartIndex = domainStartIdx;
      drawableDataset.visDomainEndIndex = domainEndIdx;

      RangeAxis rangeAxis = plot.getRangeAxis(datasetIdx);
      Interval visRange = calcVisibleRange(bestMipMap, domainStartIdx,
       domainEndIdx, drawableDataset.getRenderer());

      if (rangeAxis.isCalcRangeAsPercent()) {
        DatasetRenderer dr = plot.getDatasetRenderer(datasetIdx);
        Interval rangeExtrema = dr.getRangeExtrema(drawableDataset.currMipMap);

        double refY = calcReferenceY(rangeAxis, drawableDataset);
        double pmin = rangeExtrema.getPercentChange(refY, visRange.getStart());
        double pmax = rangeExtrema.getPercentChange(refY, visRange.getEnd());

        rangeAxis.setVisibleRange(pmin, pmax);
      }

      rangeAxis.adjustVisibleRange(
          overviewMode ? rangeAxis.getRangeInterval() : visRange);
    }
  }
View Full Code Here

    MipMap currMipMap = dds.currMipMap;
    final int domainStartIdx = dds.visDomainStartIndex;
    final int domainEndIdx = dds.visDomainEndIndex;

    RangeAxis rangeAxis = plot.getRangeAxis(datasetIndex);
    final boolean calcRangeAsPercent = rangeAxis.isCalcRangeAsPercent();

    // Render the curve

    double refY = calcReferenceY(rangeAxis, dds);
View Full Code Here

      final int hoverPoint = hoverPoints[i];
      if (hoverPoint != -1) {
        Dataset<T> dataset = dds.dataset;
        // TODO: add generics to MipMap class to remove this cast
        T dataPt = (T) dds.currMipMap.getTuple(hoverPoint);
        RangeAxis rangeAxis = plot.getRangeAxis(i);

        if (rangeAxis.isCalcRangeAsPercent()) {
          // Need to store domain/range values from the flyweight dataPt object
          // in tmp variables, because currMipMap.getTuple() overwrites the
          // dataPt object's state
          final double hoverX = dataPt.getDomain();
          final double hoverY = dataPt.getRange0();
View Full Code Here

    animateTo(destDomainOrigin, destCurrentDomain, eventType, continuation, true);
  }

  public double calcDisplayY(int datasetIdx, int pointIdx, int dimension) {
    DrawableDataset dds = plotRenderer.getDrawableDataset(datasetIdx);
    RangeAxis ra = getRangeAxis(datasetIdx);
    double y = dds.getRenderer().getRangeValue(dds.currMipMap.getTuple(pointIdx), dimension);
    if (ra.isCalcRangeAsPercent()) {
      double refY = plotRenderer.calcReferenceY(ra, dds);
      // Interval rangeExtrema = dds.currMipMap.getRangeExtrema(dimension);
      Interval rangeExtrema = ra.getExtrema();
      return rangeExtrema.getPercentChange(refY, y);
    }

    return y;
  }
View Full Code Here

              if (nearestPt != NO_SELECTION && i != nearestSer) {
                continue;
              }
              if (hoverPoint > -1) {
                Dataset d = getDatasets().get(i);
                RangeAxis ra = getRangeAxis(i);
                DatasetRenderer r = getDatasetRenderer(i);
                for (int dim  : r.getLegendEntries(d)) {
                  if (nearestPt != NO_SELECTION && dim != nearestDim) {
                    continue;
                  }
                  // Tuple2D tuple = d.getFlyweightTuple(hoverPoint);
                  double realY = getDataCoord(i, hoverPoints[i], dim);
                  double y = r.getRangeValue(getDataTuple(i, hoverPoints[i]), dim);
                  double dy = Math.max(19, rangeToScreenY(y, i)); // FIXME 2xlabelheight
                  String rLabel = "";
                  if (crosshairLabelsProperties.labelVisible) {
                      rLabel = DatasetLegendPanel.createDatasetLabel(this, i, -1, dim, true);
                  }
                  if (crosshairLabelsProperties.valueVisible) {
                      rLabel = ra.getFormattedLabel(realY) + " " + rLabel;
                  }
                  RenderState rs = new RenderState();
                  rs.setPassNumber(dim);
                  // GssProperties props = r.getLegendProperties(dim, rs);
View Full Code Here

  private void setFocusAndNotifyView(int datasetIndex, int pointIndex, int nearestDim) {

    boolean damage = false;
    if (!multiaxis) {
      if (focus == null || focus.getDatasetIndex() != datasetIndex) {
        RangeAxis ra = getRangeAxis(datasetIndex);
        ra.getAxisPanel().setValueAxis(ra);
        damage = true;
      }
    }
    if (this.focus == null) {
      this.focus = new Focus();
View Full Code Here

          });

          view.getChart().reloadStyles();
          if ("maximum".equals(scaleType)) {
            for (int i = 0; i < ds.length; i++) {
              RangeAxis ax = view.getChart().getPlot().getRangeAxis(i);
              ax.setAutoZoomVisibleRange(true);
            }
          }

          view.getChart().redraw();
        }
View Full Code Here

TOP

Related Classes of org.timepedia.chronoscope.client.axis.RangeAxis$UserTickLabelNumberFormatter

Copyright © 2018 www.massapicom. 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.