Package com.sencha.gxt.chart.client.draw.sprite

Examples of com.sencha.gxt.chart.client.draw.sprite.Sprite


    if (index == 0) {
      if (surfaceElement.getChildIndex(element) != 2) {
        surfaceElement.insertChild(element, 2);
      }
    } else {
      Sprite previousSprite = sprites.get(index - 1);
      XElement previousSpriteElement = getElement(previousSprite);
      if (previousSpriteElement == null) {
        previousSprite.redraw();
        previousSpriteElement = getElement(previousSprite);
      }
      if (previousElement != previousSpriteElement) {
        surfaceElement.insertAfter(element, previousSpriteElement);
      }
View Full Code Here


    if (labelConfig != null) {
      LabelPosition labelPosition = labelConfig.getLabelPosition();
      if (labelPosition == LabelPosition.OUTSIDE) {
        int top = areasCommands.size() - 1;
        for (int i = 0; i < chart.getCurrentStore().size(); i++) {
          final Sprite sprite;
          if (labels.get(i) != null) {
            sprite = labels.get(i);
          } else {
            sprite = labelConfig.getSpriteConfig().copy();
            labels.put(i, sprite);
            chart.addSprite(sprite);
          }
          setLabelText(sprite, i);
          sprite.redraw();
          double offsetY = sprite.getBBox().getHeight() / 2.0;
          PrecisePoint point = getPointFromCommand(areasCommands.get(top).get(i));
          if (chart.isAnimated() && sprite.getTranslation() != null) {
            DrawFx.createTranslationAnimator(sprite, point.getX(), point.getY() - offsetY).run(
                chart.getAnimationDuration(), chart.getAnimationEasing());
          } else {
            sprite.setTranslation(point.getX(), point.getY() - offsetY);
            sprite.redraw();
          }
        }
      } else if (labelPosition == LabelPosition.END || labelPosition == LabelPosition.START) {
        for (int i = 0; i < yValues.size(); i++) {
          double[] values = yValues.get(i);
          for (int j = 0; j < values.length; j++) {
            final Sprite sprite;
            if (labels.get(i * values.length + j) != null) {
              sprite = labels.get(i * values.length + j);
            } else {
              sprite = labelConfig.getSpriteConfig().copy();
              labels.put(i * values.length + j, sprite);
              chart.addSprite(sprite);
            }
            if (sprite instanceof TextSprite) {
              TextSprite text = (TextSprite) sprite;
              if (labelConfig.getLabelProvider() != null) {
                text.setText(labelConfig.getLabelProvider().getLabel(chart.getCurrentStore().get(j),
                    getValueProvider(j)));
              }
              text.redraw();
            }
            double offsetY = sprite.getBBox().getHeight() / 2.0;
            PrecisePoint point = getPointFromCommand(areasCommands.get(j).get(i));
            if (chart.isAnimated() && sprite.getTranslation() != null) {
              DrawFx.createTranslationAnimator(sprite, point.getX(), point.getY() - offsetY).run(
                  chart.getAnimationDuration(), chart.getAnimationEasing());
            } else {
              sprite.setTranslation(point.getX(), point.getY() - offsetY);
              sprite.redraw();
            }
          }
        }
      }
    }
View Full Code Here

   * Creates a radar series.
   */
  public RadarSeries() {
    // setup shadow attributes
    shadowAttributes = new ArrayList<Sprite>();
    Sprite config = new PathSprite();
    config.setStrokeWidth(6);
    config.setStrokeOpacity(0.05);
    config.setStroke(RGB.BLACK);
    config.setTranslation(1, 1);
    shadowAttributes.add(config);
    config = new PathSprite();
    config.setStrokeWidth(4);
    config.setStrokeOpacity(0.1);
    config.setStroke(RGB.BLACK);
    config.setTranslation(1, 1);
    shadowAttributes.add(config);
    config = new PathSprite();
    config.setStrokeWidth(2);
    config.setStrokeOpacity(0.15);
    config.setStroke(RGB.BLACK);
    config.setTranslation(1, 1);
    shadowAttributes.add(config);

    // initialize shadow groups
    if (shadowGroups.size() == 0) {
      for (int i = 0; i < shadowAttributes.size(); i++) {
View Full Code Here

      chart.addSprite(radar);
      if (chart.hasShadows()) {
        // create shadows
        for (int i = 0; i < shadowGroups.size(); i++) {
          PathSprite shadow = new PathSprite();
          Sprite shadowAttr = shadowAttributes.get(i);
          shadow.setStrokeWidth(shadowAttr.getStrokeWidth());
          shadow.setStrokeOpacity(shadowAttr.getStrokeOpacity());
          shadow.setStroke(shadowAttr.getStroke());
          shadow.setTranslation(new Translation(shadowAttr.getTranslation()));
          shadow.setFill(Color.NONE);
          shadow.setCommands(radar.getCommands());
          chart.addSprite(shadow);
          radarShadows.add(shadow);
        }
View Full Code Here

  private void toggle(boolean hide) {
    if (radar != null) {
      radar.setHidden(hide);
      radar.redraw();
      for (int i = 0; i < radarShadows.size(); i++) {
        Sprite shadow = radarShadows.get(i);
        shadow.setHidden(hide);
        shadow.redraw();
      }
    }
    for (int i = 0; i < sprites.size(); i++) {
      sprites.get(i).setHidden(hide);
      sprites.get(i).redraw();
View Full Code Here

  public void onMouseDown(Event event) {
    if (handlerManager != null && handlerManager.getHandlerCount(SpriteSelectionEvent.getType()) > 0) {
      PrecisePoint point = getEventXY(event);
      SpriteList<Sprite> sprites = surface.sprites;
      for (int i = sprites.size() - 1; i >= 0; i--) {
        Sprite sprite = sprites.get(i);
        if (sprite.getBBox().contains(point)) {
          ensureHandler().fireEvent(new SpriteSelectionEvent(sprite, event));
          break;
        }
      }
    }
View Full Code Here

  public void onMouseMove(Event event) {
    if (handlerManager != null && handlerManager.getHandlerCount(SpriteOverEvent.getType()) > 0) {
      PrecisePoint point = getEventXY(event);
      SpriteList<Sprite> sprites = surface.sprites;
      for (int i = sprites.size() - 1; i >= 0; i--) {
        Sprite sprite = sprites.get(i);
        if (sprite.getBBox().contains(point)) {
          ensureHandler().fireEvent(new SpriteOverEvent(sprite, event));
          lastSprite = sprite;
          return;
        }
      }
View Full Code Here

          slice.setMargin(margin);
          slice.setStartRho(rhoAcum + (deltaRho * donut / 100));
          slice.setEndRho(rhoAcum + deltaRho);
          // create shadows
          for (int shindex = 0; shindex < shadowGroups.size(); shindex++) {
            Sprite shadowAttr = shadowAttributes.get(shindex);
            SpriteList<Sprite> shadows = shadowGroups.get(shindex);
            final PathSprite shadow;

            commands = calculateSegment(slice);
            if (i < shadows.size()) {
              shadow = (PathSprite) shadows.get(i);
              shadow.setHidden(false);
            } else {
              shadow = (PathSprite) shadowAttr.copy();
              shadow.setFill(Color.NONE);
              chart.addSprite(shadow);
              shadows.add(shadow);
            }

View Full Code Here

      for (int i = 0; i < chart.getCurrentStore().size(); i++) {
        if (exclude.contains(i)) {
          continue;
        }

        final Sprite sprite;
        if (labels.get(i) != null) {
          sprite = labels.get(i);
          sprite.setHidden(false);
        } else {
          sprite = labelConfig.getSpriteConfig().copy();
          labels.put(i, sprite);
          chart.addSprite(sprite);
        }
        setLabelText(sprite, i);
        PrecisePoint middle = middlePoints.get(i);
        double x = middle.getX() - center.getX();
        double y = middle.getY() - center.getY();
        double rho = 1;
        double theta = Math.atan2(y, x == 0 ? 1 : x);
        double degrees = Math.toDegrees(theta);
        LabelPosition labelPosition = labelConfig.getLabelPosition();
        if (labelPosition == LabelPosition.OUTSIDE) {
          Slice slice = slices.get(i);
          rho = slice.getEndRho() + 20;
          double rhoCenter = (slice.endRho + slice.startRho) / 2.0 + (slice.endRho - slice.startRho) / 3.0;
          PrecisePoint calloutPoint = new PrecisePoint(rho * Math.cos(theta) + center.getX(), rho * Math.sin(theta)
              + center.getY());
          x = rhoCenter * Math.cos(theta);
          y = rhoCenter * Math.sin(theta);

          final PathSprite line;
          if (calloutLines.get(i) != null) {
            line = calloutLines.get(i);
            line.setHidden(false);
          } else {
            line = new PathSprite();
            line.setStrokeWidth(1);
            line.setStroke(RGB.BLACK);
            line.setFill(Color.NONE);
            calloutLines.put(i, line);
            chart.addSprite(line);
          }

          final RectangleSprite box;
          if (calloutBoxes.get(i) != null) {
            box = calloutBoxes.get(i);
            box.setHidden(false);
          } else {
            box = new RectangleSprite();
            box.setStroke(RGB.BLACK);
            box.setStrokeWidth(1);
            box.setFill(Color.NONE);
            calloutBoxes.put(i, box);
            chart.addSprite(box);
          }

          sprite.redraw();
          PreciseRectangle bbox = sprite.getBBox();

          List<PathCommand> commands = new ArrayList<PathCommand>();
          commands.add(new MoveTo(x + center.getX(), y + center.getY()));
          commands.add(new LineTo(calloutPoint.getX(), calloutPoint.getY()));
          commands.add(new LineTo(x > 0 ? 10 : -10, 0, true));

          PreciseRectangle rect = new PreciseRectangle(calloutPoint.getX() + (x > 0 ? 10 : -(bbox.getWidth() + 30)),
              calloutPoint.getY() + (y > 0 ? (-(bbox.getHeight() - 5)) : (-(bbox.getHeight() - 5))),
              bbox.getWidth() + 20, bbox.getHeight() + 20);

          PrecisePoint labelPoint = new PrecisePoint(calloutPoint.getX() + (x > 0 ? 20 : -(20 + bbox.getWidth())),
              calloutPoint.getY() + (y > 0 ? -bbox.getHeight() / 4.0 : -bbox.getHeight() / 4.0));

          if (chart.isAnimated() && line.size() > 0 && !Double.isNaN(box.getX()) && sprite.getTranslation() != null) {
            DrawFx.createCommandsAnimator(line, commands).run(chart.getAnimationDuration(), chart.getAnimationEasing());
            DrawFx.createRectangleAnimator(box, rect).run(chart.getAnimationDuration(), chart.getAnimationEasing());
            DrawFx.createTranslationAnimator(sprite, labelPoint.getX(), labelPoint.getY()).run(
                chart.getAnimationDuration(), chart.getAnimationEasing());
          } else {
            line.setCommands(commands);
            line.redraw();
            box.setX(rect.getX());
            box.setY(rect.getY());
            box.setWidth(rect.getWidth());
            box.setHeight(rect.getHeight());
            box.redraw();
            sprite.setTranslation(labelPoint.getX(), labelPoint.getY());
            sprite.redraw();
          }
        } else if (labelPosition == LabelPosition.END) {
          rho = Math.sqrt(x * x + y * y) * 2.0;
          x = rho * Math.cos(theta) + center.getX();
          y = rho * Math.sin(theta) + center.getY();
          if (chart.isAnimated() && sprite.getTranslation() != null) {
            DrawFx.createTranslationAnimator(sprite, x, y).run(chart.getAnimationDuration(), chart.getAnimationEasing());
          } else {
            sprite.setTranslation(x, y);
          }
          labelPoints.put(i, new PrecisePoint(x, y));
        } else if (labelPosition == LabelPosition.START) {
          degrees = fixAngle(degrees);
          if (degrees > 90 && degrees < 270) {
            degrees += 180;
          }
          if (!Double.isNaN(previousDegrees) && Math.abs(previousDegrees - degrees) > 180) {
            if (degrees > previousDegrees) {
              degrees -= 360;
            } else {
              degrees += 360;
            }
            degrees %= 360;
          } else {
            degrees = fixAngle(degrees);
          }
          if (labelConfig.isLabelContrast()) {
            final Sprite back = sprites.get(i);
            if (chart.isAnimated()) {
              Scheduler.get().scheduleDeferred(new ScheduledCommand() {
                @Override
                public void execute() {
                  setLabelContrast(sprite, labelConfig, back);
View Full Code Here

   * Removes all the sprites of the series from the surface.
   */
  public void clear() {
    sprites.clear();
    for (Integer integer : labels.keySet()) {
      Sprite sprite = labels.get(integer);
      if (sprite != null) {
        labels.put(integer, null);
        sprite.remove();
      }
    }
  }
View Full Code Here

TOP

Related Classes of com.sencha.gxt.chart.client.draw.sprite.Sprite

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.