コード例 #1
0
ファイル: StatusComponent.java プロジェクト: omusico/siga
  /**
   * Guarda el estado de un componente. Este proceso es recursivo. El estado se guarda en un array y
   * este array no es vaciado inicialmente. La idea es guardar en un disabled y recuperar en un
   * enabled y asegurarse que no puede ocurrir un disabled o un enabled dos veces.
   *
   * @param component
   */
  private void saveComponentsStatus(JComponent component) {
    // Guardar estado
    StatusComponentStruct auxStatus = new StatusComponentStruct();
    auxStatus.setEnabled(component.isEnabled());
    auxStatus.setObject(component);
    statusList.add(auxStatus);

    for (int i = 0; i < component.getComponentCount(); i++)
      if (component.getComponent(i) instanceof JComponent)
        saveComponentsStatus((JComponent) component.getComponent(i));
  }
コード例 #2
0
ファイル: StatusComponent.java プロジェクト: omusico/siga
  /**
   * Recupera el estado de un componente y todos sus hijos, vaciando la pila de estados. Eso quiere
   * decir que no se podra volver a recuperar su estado sin haberlo guardado previamente.
   *
   * @param component
   */
  private void restoreStatus(JComponent component) {
    boolean auxEnabled = false;
    boolean finded = false;
    // Buscar estado de dicho componente
    for (int i = 0; i < statusList.size(); i++) {
      StatusComponentStruct auxStatus = (StatusComponentStruct) statusList.get(i);
      if (auxStatus.getObject() == component) {
        auxEnabled = auxStatus.isEnabled();
        statusList.remove(i);
        finded = true;
        break;
      }
    }

    // Asignar su estado
    if (finded) component.setEnabled(auxEnabled);

    for (int i = 0; i < component.getComponentCount(); i++)
      if (component.getComponent(i) instanceof JComponent)
        restoreStatus((JComponent) component.getComponent(i));
  }