Exemplo n.º 1
0
  private void refreshList() {
    if (getComponent().getItemCount() > 0) getComponent().removeAllItems();

    if (isReadWrite()) {
      if (lookup != null) {
        int size = lookup.getSize();

        boolean found = false;
        for (int i = 0; i < size; i++) {
          Object obj = lookup.getElementAt(i);
          if (obj instanceof KeyNamePair) {
            KeyNamePair lookupKNPair = (KeyNamePair) obj;
            getComponent().appendItem(lookupKNPair.getName(), lookupKNPair.getKey());
            if (!found
                && oldValue != null
                && oldValue instanceof Integer
                && lookupKNPair.getKey() == (Integer) oldValue) {
              found = true;
            }
          } else if (obj instanceof ValueNamePair) {
            ValueNamePair lookupKNPair = (ValueNamePair) obj;
            getComponent().appendItem(lookupKNPair.getName(), lookupKNPair.getValue());
            if (!found && oldValue != null && lookupKNPair.getValue().equals(oldValue.toString())) {
              found = true;
            }
          }
        }
        if (!found && oldValue != null) {
          NamePair pair = lookup.getDirect(oldValue, false, false);
          if (pair != null) {
            if (pair instanceof KeyNamePair) {
              int key = ((KeyNamePair) pair).getKey();
              getComponent().appendItem(pair.getName(), key);
            } else if (pair instanceof ValueNamePair) {
              ValueNamePair valueNamePair = (ValueNamePair) pair;
              getComponent().appendItem(valueNamePair.getName(), valueNamePair.getValue());
            }
          }
        }
      }
    } else {
      if (lookup != null) {
        NamePair pair = lookup.getDirect(oldValue, false, false);
        if (pair != null) {
          if (pair instanceof KeyNamePair) {
            int key = ((KeyNamePair) pair).getKey();
            getComponent().appendItem(pair.getName(), key);
          } else if (pair instanceof ValueNamePair) {
            ValueNamePair valueNamePair = (ValueNamePair) pair;
            getComponent().appendItem(valueNamePair.getName(), valueNamePair.getValue());
          }
        }
      }
    }
    getComponent().setValue(oldValue);
  }