/**
  * Returns the <code>String</code> representation of the given <code>{@link Component}</code>,
  * which should be a <code>{@link JOptionPane}</code> (or subclass.)
  *
  * @param c the given <code>Component</code>.
  * @return the <code>String</code> representation of the given <code>JOptionPane</code>.
  */
 protected String doFormat(Component c) {
   JOptionPane optionPane = (JOptionPane) c;
   return concat(
       optionPane.getClass().getName(),
       "[",
       "message=",
       quote(optionPane.getMessage()),
       ", ",
       "messageType=",
       MESSAGE_TYPES.get(optionPane.getMessageType()),
       ", ",
       "optionType=",
       OPTION_TYPES.get(optionPane.getOptionType()),
       ", ",
       "enabled=",
       valueOf(optionPane.isEnabled()),
       ", ",
       "visible=",
       valueOf(optionPane.isVisible()),
       ", ",
       "showing=",
       valueOf(optionPane.isShowing()),
       "]");
 }