private void fillValue(StandardItemProperty value) {
   isRefresh = true;
   if (isMandatory) cprop.setEnabled(false);
   evalue.setExpressionContext(expContext);
   cprop.setText(Misc.nvl(value.getName()));
   if (value.getValueExpression() != null) {
     buseexpr.setSelection(true);
     evalue.setExpression((JRDesignExpression) value.getValueExpression());
   } else {
     buseexpr.setSelection(false);
     tvalue.setText(Misc.nvl(value.getValue()));
   }
   changeValueOrExpression();
   isRefresh = false;
 }
 public void changeValueOrExpression() {
   stackLayout.topControl = buseexpr.getSelection() ? vexp : vcmp;
   stackComposite.layout();
   if (buseexpr.getSelection()) {
     value.setValueExpression(evalue.getExpression());
   } else value.setValue(tvalue.getText());
 }
  private Composite createValueExpressionControl(Composite cmp) {
    Composite composite = new Composite(cmp, SWT.NONE);
    composite.setLayout(new GridLayout());

    Label label = new Label(composite, SWT.NONE);
    label.setText(Messages.MarkerPropertyDialog_ValueExpression);

    evalue = new WTextExpression(composite, SWT.NONE, 1);
    evalue.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
    evalue.addModifyListener(
        new ExpressionModifiedListener() {
          @Override
          public void expressionModified(ExpressionModifiedEvent event) {
            if (!isRefresh) value.setValueExpression(evalue.getExpression());
          }
        });

    return composite;
  }