/**
  * Recursively reads the enable/disable state for the given window and disables all controls.
  *
  * @param control Control
  */
 private void readStateForAndDisable(Control control) {
   if ((exceptions != null && exceptions.contains(control))) {
     return;
   }
   if (control instanceof Composite) {
     Composite c = (Composite) control;
     Control[] children = c.getChildren();
     for (int i = 0; i < children.length; i++) {
       readStateForAndDisable(children[i]);
     }
   }
   // XXX: Workaround for 1G2Q8SS: ITPUI:Linux - Combo box is not enabled
   // in "File->New->Solution"
   states.add(new ItemState(control, control.getEnabled()));
   control.setEnabled(false);
 }
 private void saveEnableStateAndSet(Control w, Map h, String key, boolean enabled) {
   if (w != null) {
     h.put(key, Boolean.valueOf(w.getEnabled()));
     w.setEnabled(enabled);
   }
 }