Ejemplo n.º 1
0
  private void doLoad() {
    setExpressionProvider();

    if (!outputDescriptorProvider.isEnabled()) {
      hideCheckbox.setSelection(false);
      hideCheckbox.setEnabled(false);
      setOutputEnable(false);
      return;
    } else hideCheckbox.setEnabled(true);

    if (needResetUI()) {
      hideCheckbox.setEnabled(true);

      Iterator visibilities = outputDescriptorProvider.getVisibilityRulesIterator();

      hideCheckbox.setSelection((visibilities != null) && visibilities.hasNext());
      setOutputEnable(hideCheckbox.getSelection());

      if (visibilities == null) return;

      while (visibilities.hasNext()) {
        Object obj = visibilities.next();
        String format = outputDescriptorProvider.getFormat(obj);
        Expression expression = outputDescriptorProvider.getExpression(obj);
        if (expression == null)
          expression = new Expression(null, UIUtil.getDefaultScriptType()); // $NON-NLS-1$
        if (outputDescriptorProvider.isFormatTypeAll(format)) {
          allRadio.setSelection(true);
          allExpression.setExpression(expression);
          specRadio.setSelection(false);
          break;
        }
        allRadio.setSelection(false);
        specRadio.setSelection(true);

        if (specCheckButtons.containsKey(format))
          ((Button) specCheckButtons.get(format)).setSelection(true);
        if (specExpressions.containsKey(format))
          ((ExpressionComposite) specExpressions.get(format)).setExpression(expression);
      }

      setOutputInfo();
      setOutputEnable(hideCheckbox.getSelection());

      for (int i = 0; i < outputDescriptorProvider.getTypeInfo().length; i++) {
        ExpressionComposite expr =
            (ExpressionComposite) specExpressions.get(outputDescriptorProvider.getTypeInfo()[i]);
        Button check = (Button) specCheckButtons.get(outputDescriptorProvider.getTypeInfo()[i]);
        expr.setEnabled(check.getEnabled() && check.getSelection() && hideCheckbox.getSelection());
      }
    } else {
      for (int i = 0; i < outputDescriptorProvider.getTypeInfo().length; i++) {
        ((Button) specCheckButtons.get(outputDescriptorProvider.getTypeInfo()[i]))
            .setSelection(false);
        ((ExpressionComposite) specExpressions.get(outputDescriptorProvider.getTypeInfo()[i]))
            .setExpression(new Expression("true", UIUtil.getDefaultScriptType())); // $NON-NLS-1$
      }

      Iterator visibilities = outputDescriptorProvider.getVisibilityRulesIterator();
      while (visibilities.hasNext()) {
        Object obj = visibilities.next();
        String format = outputDescriptorProvider.getFormat(obj);
        Expression expression = outputDescriptorProvider.getExpression(obj);
        if (expression == null) expression = new Expression(null, UIUtil.getDefaultScriptType());
        if (specCheckButtons.containsKey(format))
          ((Button) specCheckButtons.get(format)).setSelection(true);
        if (specExpressions.containsKey(format))
          ((ExpressionComposite) specExpressions.get(format)).setExpression(expression);
      }

      for (int i = 0; i < outputDescriptorProvider.getTypeInfo().length; i++) {
        ExpressionComposite expr =
            (ExpressionComposite) specExpressions.get(outputDescriptorProvider.getTypeInfo()[i]);
        Button check = (Button) specCheckButtons.get(outputDescriptorProvider.getTypeInfo()[i]);
        expr.setEnabled(check.getEnabled() && check.getSelection() && hideCheckbox.getSelection());
      }
    }
  }