Package org.jfree.report.expressions

Examples of org.jfree.report.expressions.Expression


      final Iterator attributeExIt = attrEx.entrySet().iterator();
      while (attributeExIt.hasNext())
      {
        final Map.Entry entry = (Map.Entry) attributeExIt.next();
        final String name = (String) entry.getKey();
        final Expression expression = (Expression) entry.getValue();
        try
        {
          expression.setRuntime(runtime);
          final Object value = expression.computeValue();
          attributes.setAttribute(namespace, name, value);
        }
        finally
        {
          expression.setRuntime(null);
        }
      }
    }
    return attributes;
  }
View Full Code Here


      final StaticExpressionRuntimeData runtimeData =
          LayoutControllerUtil.getStaticExpressionRuntime(fc, element);

      for (int i = 0; i < expressions.length; i++)
      {
        final Expression expression = expressions[i];
        if (isPrecomputing() == false && expression.isPrecompute())
        {
          // ok, we have to precompute the expression's value. For that
          // we fork a new layout process, compute the value and then come
          // back with the result.
          final Object value = LayoutControllerUtil.performPrecompute
              (i, new ElementPrecomputeKey(element),
                  this, getFlowController());
          slots[i] = new PrecomputedExpressionSlot(expression.getName(), value,
              expression.isPreserve());
        }
        else
        {
          // thats a bit easier; we dont have to do anything special ..
          slots[i] = new RunningExpressionSlot(expression, runtimeData,
View Full Code Here

    final Node node = getElement();
    final FlowController flowController = getFlowController();
    final LayoutExpressionRuntime er =
        LayoutControllerUtil.getExpressionRuntime(flowController, node);
    final ContentElement element = (ContentElement) node;
    final Expression ex = element.getValueExpression();
    final Object value;

    if (ex != null)
    {
      try
      {
        ex.setRuntime(er);
        value = ex.computeValue();
      }
      finally
      {
        ex.setRuntime(null);
      }
    }
    else
    {
      value = null;
    }

    // This should be a very rare case indeed ..
    if (value instanceof DataFlags)
    {
      target.processContent((DataFlags) value);

      final ContentElementLayoutController derived = (ContentElementLayoutController) clone();
      derived.setProcessingState(ElementLayoutController.FINISHING);
      derived.setFlowController(flowController);
      return derived;
    }

    if (value instanceof Node)
    {
      // we explictly allow structural content here.
      // As this might be a very expensive thing, if we
      // keep it in a single state, we continue on a separate state.
      final Node valueNode = (Node) value;
      valueNode.updateParent(node.getParent());
      final ReportContext reportContext = flowController.getReportContext();
      final LayoutControllerFactory layoutControllerFactory =
          reportContext.getLayoutControllerFactory();

      // actually, this is the same as if the element were a
      // child element of a section. The only difference is
      // that there can be only one child, and that there is no
      // direct parent-child direction.

      final ContentElementLayoutController derived =
          (ContentElementLayoutController) clone();
      derived.setProcessingState(ElementLayoutController.WAITING_FOR_JOIN);
      derived.setFlowController(flowController);

      return layoutControllerFactory.create
          (flowController, valueNode, derived);
    }

    if (ex != null)
    {
      target.processContent (new DefaultDataFlags(ex.getName(), value, true));
    }

    final ContentElementLayoutController derived = (ContentElementLayoutController) clone();
    derived.setProcessingState(ElementLayoutController.FINISHING);
    derived.setFlowController(flowController);
View Full Code Here

        final Iterator it =
            attrsNs.entrySet().iterator();
        while (it.hasNext())
        {
          final Map.Entry entry = (Map.Entry) it.next();
          final Expression exp = (Expression) entry.getValue();
          entry.setValue(exp.clone());
        }
      }
    }

    if (expressions != null)
    {
      element.expressions = (ArrayList) expressions.clone();
      element.expressions.clear();
      for (int i = 0; i < expressions.size(); i++)
      {
        final Expression expression = (Expression) expressions.get(i);
        element.expressions.add(expression.clone());
      }
    }
    if (styleExpressions != null)
    {
      element.styleExpressions = (HashMap) styleExpressions.clone();
      final Iterator styleExpressionsIt =
          element.styleExpressions.entrySet().iterator();
      while (styleExpressionsIt.hasNext())
      {
        final Map.Entry entry = (Map.Entry) styleExpressionsIt.next();
        final Expression exp = (Expression) entry.getValue();
        entry.setValue(exp.clone());
      }
    }

    if (displayCondition != null)
    {
View Full Code Here

    if (node.isEnabled() == false)
    {
      return false;
    }

    final Expression expression = node.getDisplayCondition();
    if (expression == null)
    {
      return true;
    }
View Full Code Here

      final StaticExpressionRuntimeData runtimeData =
          LayoutControllerUtil.getStaticExpressionRuntime(fc, element);

      for (int i = 0; i < expressions.length; i++)
      {
        final Expression expression = expressions[i];
        if (isPrecomputing() == false && expression.isPrecompute())
        {
          // ok, we have to precompute the expression's value. For that
          // we fork a new layout process, compute the value and then come
          // back with the result.
          final Object value = LayoutControllerUtil.performPrecompute
              (i, new ElementPrecomputeKey(element),
                  this, getFlowController());
          slots[i] = new PrecomputedExpressionSlot(expression.getName(), value,
              expression.isPreserve());
        }
        else
        {
          // thats a bit easier; we dont have to do anything special ..
          slots[i] = new RunningExpressionSlot(expression, runtimeData,
View Full Code Here

    final Node node = getElement();
    final FlowController flowController = getFlowController();
    final LayoutExpressionRuntime er =
        LayoutControllerUtil.getExpressionRuntime(flowController, node);
    final ContentElement element = (ContentElement) node;
    final Expression ex = element.getValueExpression();
    final Object value;

    if (ex != null)
    {
      try
      {
        ex.setRuntime(er);
        value = ex.computeValue();
      }
      finally
      {
        ex.setRuntime(null);
      }
    }
    else
    {
      value = null;
    }

    // This should be a very rare case indeed ..
    if (value instanceof DataFlags)
    {
      target.processContent((DataFlags) value);

      final ContentElementLayoutController derived = (ContentElementLayoutController) clone();
      derived.setProcessingState(ElementLayoutController.FINISHING);
      derived.setFlowController(flowController);
      return derived;
    }

    if (value instanceof Node)
    {
      // we explictly allow structural content here.
      // As this might be a very expensive thing, if we
      // keep it in a single state, we continue on a separate state.
      final Node valueNode = (Node) value;
      valueNode.updateParent(node.getParent());
      final ReportContext reportContext = flowController.getReportContext();
      final LayoutControllerFactory layoutControllerFactory =
          reportContext.getLayoutControllerFactory();

      // actually, this is the same as if the element were a
      // child element of a section. The only difference is
      // that there can be only one child, and that there is no
      // direct parent-child direction.

      final ContentElementLayoutController derived =
          (ContentElementLayoutController) clone();
      derived.setProcessingState(ElementLayoutController.WAITING_FOR_JOIN);
      derived.setFlowController(flowController);

      return layoutControllerFactory.create
          (flowController, valueNode, derived);
    }

    if (ex != null)
    {
      target.processContent (new DefaultDataFlags(ex.getName(), value, true));
    }

    final ContentElementLayoutController derived = (ContentElementLayoutController) clone();
    derived.setProcessingState(ElementLayoutController.FINISHING);
    derived.setFlowController(flowController);
View Full Code Here

    if (node.isEnabled() == false)
    {
      return false;
    }

    final Expression expression = node.getDisplayCondition();
    if (expression == null)
    {
      return true;
    }
View Full Code Here

        ler = getExpressionRuntime(fc, node);
      }

      ler.setDeclaringParent(group);

      final Expression groupingExpression = group.getGroupingExpression();
      if (groupingExpression != null)
      {
        groupingExpression.setRuntime(ler);
        final Object groupFinished;
        try
        {
          groupFinished = groupingExpression.computeValue();
        }
        finally
        {
          groupingExpression.setRuntime(null);
        }

        if (Boolean.TRUE.equals(groupFinished))
        {
          // If the group expression returns true, we should pack our belongings
View Full Code Here

    while (styleExIt.hasNext())
    {
      final Map.Entry entry = (Map.Entry) styleExIt.next();
      final String name = (String) entry.getKey();
      final Expression expression = (Expression) entry.getValue();
      try
      {
        expression.setRuntime(runtime);
        final Object value = expression.computeValue();
        if (value instanceof CSSValue)
        {
          final CSSValue cssvalue = (CSSValue) value;
          final StyleKey keyByName =
              StyleKeyRegistry.getRegistry().findKeyByName(name);
          if (keyByName != null)
          {
            targetRule.setPropertyValue(keyByName, cssvalue);
          }
          else
          {
            targetRule.setPropertyValueAsString(name, cssvalue.getCSSText());
          }
        }
        else if (value != null)
        {
          targetRule.setPropertyValueAsString(name, String.valueOf(value));
        }
      }
      finally
      {
        expression.setRuntime(null);
      }
    }
    return targetRule;
  }
View Full Code Here

TOP

Related Classes of org.jfree.report.expressions.Expression

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.