示例#1
0
  /**
   * Descripción de Método
   *
   * @param col
   */
  public void dynamicDisplay(int col) {

    // log.config( "GridController.dynamicDisplay (" + m_mTab.toString() + ") SingleRow=" +
    // isSingleRow() + ", OnlyMultiRow=" + m_onlyMultiRow);
    // Don't update if multi-row

    if (!isSingleRow() || m_onlyMultiRow) {
      return;
    }

    if (!m_mTab.isOpen()) {
      return;
    }

    // Selective

    if (col != 0) {
      MField changedField = m_mTab.getField(col);
      String columnName = changedField.getColumnName();
      ArrayList dependants = m_mTab.getDependantList(columnName);

      log.config(
          "(" + m_mTab.toString() + ") " + columnName + " - Dependents=" + dependants.size());

      // No Dependents and no Callout - Set just Background

      if ((dependants.size() == 0) && (changedField.getCallout().length() > 0)) {
        Component[] comp = vPanel.getComponents();

        for (int i = 0; i < comp.length; i++) {
          if (columnName.equals(comp[i].getName()) && (comp[i] instanceof VEditor)) {
            VEditor ve = (VEditor) comp[i];
            boolean manMissing = false;
            boolean noValue =
                (changedField.getValue() == null)
                    || (changedField.getValue().toString().length() == 0);

            if (noValue
                && changedField.isEditable(true)
                && changedField.isMandatory(true)) { // check context
              manMissing = true;
            }

            ve.setBackground(manMissing || changedField.isError());

            break;
          }
        }

        return;
      }
    } // selective

    // complete single row re-display

    log.config("(" + m_mTab.toString() + ")");

    // All Components in vPanel (Single Row)

    updateComponents(vPanel.getComponents(), m_mTab.getMapFields(), true, true);

    log.config("(" + m_mTab.toString() + ") - fini - " + ((col == 0) ? "complete" : "seletive"));
  } // dynamicDisplay