예제 #1
0
  private void updateColumns() {
    int tableVersion = attributeTable.getVersion();
    if (rowVersion < tableVersion) {

      // Need to update
      AttributeColumnImpl[] columns = attributeTable.getColumns();
      AttributeValueImpl[] oldValues = values;

      values = new AttributeValueImpl[columns.length];

      for (int i = 0; i < columns.length; i++) {
        AttributeColumnImpl tableCol = columns[i];
        boolean found = false;
        int j = 0;
        while (j < oldValues.length) {
          AttributeValueImpl val = oldValues[j++];
          if (val.getColumn() == tableCol) {
            values[i] = val;
            found = true;
            break;
          }
        }

        if (!found) {
          setValue(i, tableCol.defaultValue, false);
        }
      }

      // Upd version
      rowVersion = tableVersion;
    }
  }
예제 #2
0
  private void setValue(int index, AttributeValueImpl value, boolean doUpdateColumns) {
    if (doUpdateColumns) {
      updateColumns();
    }

    AttributeValueImpl oldValue = this.values[index];

    this.values[index] = value;

    if (!(oldValue != null && oldValue.equals(value))
        && index > 0
        && !value
            .getColumn()
            .getOrigin()
            .equals(
                AttributeOrigin
                    .COMPUTED)) { // 0 is the index of node id and edge id cols, not useful to send
                                  // these events
      if (oldValue != null) {
        attributeTable.model.fireAttributeEvent(
            new ValueEvent(EventType.UNSET_VALUE, attributeTable, object, oldValue));
      }
      attributeTable.model.fireAttributeEvent(
          new ValueEvent(EventType.SET_VALUE, attributeTable, object, value));
    }
  }