/**
  * Builds an list of components that are ordered in the focus order previously set by a user for a
  * given form. The form may have changed (components might have been deleted or moved), so we need
  * to delete those components from the focus order that don't match the current state of the form.
  */
 ArrayList buildStoredFocusList(FormComponent form) {
   ArrayList focus_list = new ArrayList();
   FocusPolicyMemento memento = form.getFocusPolicy();
   if (memento != null) {
     Collection fkeys = memento.getFocusPolicyKeys();
     Iterator iter = fkeys.iterator();
     while (iter.hasNext()) {
       FocusKey fkey = (FocusKey) iter.next();
       Component comp = fkey.getComponent(form);
       if (comp != null) {
         focus_list.add(comp);
       }
     }
   }
   return focus_list;
 }