public void build(String headerText, Fact fact) {

    if (fact instanceof FactData) {
      FactData factData = (FactData) fact;
      widget.setWidget(0, ++col, new SmallLabel("[" + factData.getName() + "]"));
    } else {
      col++;
    }

    widget.setWidget(0, 0, new ClickableLabel(headerText, createAddFieldButton(fact)));

    // Sets row name and delete button.
    for (final Field field : fact.getFieldData()) {
      // Avoid duplicate field rows, only one for each name.
      if (rowIndexByFieldName.doesNotContain(field.getName())) {
        newRow(fact, field.getName());
      }

      // Sets row data
      int fieldRowIndex = rowIndexByFieldName.getRowIndex(field.getName());
      widget.setWidget(fieldRowIndex, col, editableCell(field, fact, fact.getType()));
    }

    if (fact instanceof FactData) {
      DeleteFactColumnButton deleteFactColumnButton = new DeleteFactColumnButton((FactData) fact);

      widget.setWidget(rowIndexByFieldName.amountOrRows() + 1, col, deleteFactColumnButton);
    }
  }
  private void doLayout() {
    layout.clear();

    for (int i = 0; i < model.fieldValues.length; i++) {
      ActionFieldValue val = model.fieldValues[i];

      layout.setWidget(i, 0, getSetterLabel());
      layout.setWidget(i, 1, fieldSelector(val));
      layout.setWidget(i, 2, valueEditor(val));
      final int idx = i;
      Image remove = DroolsGuvnorImages.INSTANCE.DeleteItemSmall();
      remove.addClickHandler(
          new ClickHandler() {

            public void onClick(ClickEvent event) {
              if (Window.confirm(Constants.INSTANCE.RemoveThisItem())) {
                model.removeField(idx);
                setModified(true);
                getModeller().refreshWidget();

                // Signal possible change in Template variables
                TemplateVariablesChangedEvent tvce =
                    new TemplateVariablesChangedEvent(getModeller().getModel());
                getEventBus().fireEventFromSource(tvce, getModeller().getModel());
              }
            }
          });
      if (!this.readOnly) {
        layout.setWidget(i, 3, remove);
      }
    }

    if (model.fieldValues.length == 0) {
      HorizontalPanel h = new HorizontalPanel();
      h.add(getSetterLabel());
      if (!this.readOnly) {
        Image image = GuvnorImages.INSTANCE.Edit();
        image.setAltText(Constants.INSTANCE.AddFirstNewField());
        image.setTitle(Constants.INSTANCE.AddFirstNewField());
        image.addClickHandler(
            new ClickHandler() {

              public void onClick(ClickEvent sender) {
                showAddFieldPopup(sender);
              }
            });
        h.add(image);
      }
      layout.setWidget(0, 0, h);
    }

    // layout.setWidget( 0, 1, inner );

  }
  private void newRow(final Fact fact, final String fieldName) {
    rowIndexByFieldName.addRow(fieldName);

    int rowIndex = rowIndexByFieldName.getRowIndex(fieldName);

    widget.setWidget(rowIndex, 0, createFieldNameWidget(fieldName));
    widget.setWidget(
        rowIndex, definitionList.size() + 1, new DeleteFieldRowButton(fact, fieldName));
    widget
        .getCellFormatter()
        .setHorizontalAlignment(rowIndex, 0, HasHorizontalAlignment.ALIGN_RIGHT);
  }
示例#4
0
  private void doLayout() {
    layout.clear();
    layout.setWidget(0, 0, getSetterLabel());
    DirtyableFlexTable inner = new DirtyableFlexTable();
    for (int i = 0; i < model.fieldValues.length; i++) {
      ActionFieldFunction val = model.getFieldValue(i);

      inner.setWidget(i, 0, fieldSelector(val));
      inner.setWidget(i, 1, valueEditor(val));
    }
    layout.setWidget(0, 1, inner);
  }
  private void doLayout() {
    layout.clear();

    for (int i = 0; i < model.fieldValues.length; i++) {
      ActionFieldValue val = model.fieldValues[i];

      layout.setWidget(i, 0, getSetterLabel());
      layout.setWidget(i, 1, fieldSelector(val));
      layout.setWidget(i, 2, valueEditor(val));
      final int idx = i;
      Image remove = new ImageButton(images.deleteItemSmall());
      remove.addClickHandler(
          new ClickHandler() {

            public void onClick(ClickEvent event) {
              if (Window.confirm(constants.RemoveThisItem())) {
                model.removeField(idx);
                setModified(true);
                getModeller().refreshWidget();
              }
            }
          });
      if (!this.readOnly) {
        layout.setWidget(i, 3, remove);
      }
    }

    if (model.fieldValues.length == 0) {
      HorizontalPanel h = new HorizontalPanel();
      h.add(getSetterLabel());
      if (!this.readOnly) {
        h.add(
            new ImageButton(
                images.editTiny(),
                constants.AddFirstNewField(),
                new ClickHandler() {

                  public void onClick(ClickEvent sender) {
                    showAddFieldPopup(sender);
                  }
                }));
      }
      layout.setWidget(0, 0, h);
    }

    // layout.setWidget( 0, 1, inner );

  }
示例#6
0
 private void resetBox() {
   list = new FlexTable();
   list.setStyleName("rule-List");
   layout.setWidget(0, 0, list);
   loadData(list);
   makeDirty();
 }
示例#7
0
  /**
   * @param d The meta data.
   * @param readOnly If it is to be non editable.
   */
  public AssetCategoryEditor(MetaData d, boolean readOnly) {
    this.data = d;

    list = new FlexTable();
    this.readOnly = readOnly;
    loadData(list);
    list.setStyleName("rule-List");
    layout.setWidget(0, 0, list);

    if (!readOnly) {
      doActions();
    }

    initWidget(layout);
  }
示例#8
0
  private void doActions() {
    VerticalPanel actions = new VerticalPanel();
    Image add = GuvnorImages.INSTANCE.NewItem();
    add.setAltText(ConstantsCore.INSTANCE.AssetCategoryEditorAddNewCategory());
    add.setTitle(constants.AddANewCategory());

    add.addClickHandler(
        new ClickHandler() {
          public void onClick(ClickEvent event) {
            doOKClick();
          }
        });

    actions.add(add);
    layout.setWidget(0, 1, actions);
  }