Ejemplo n.º 1
0
 /**
  * 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()),
       "]");
 }
Ejemplo n.º 2
0
  /**
   * Returns the message to display from the JOptionPane the receiver is providing the look and feel
   * for.
   */
  protected Object getMessage() {
    inputComponent = null;
    if (optionPane != null) {
      if (optionPane.getWantsInput()) {
        /* Create a user component to capture the input. If the
        selectionValues are non null the component and there
        are < 20 values it'll be a combobox, if non null and
        >= 20, it'll be a list, otherwise it'll be a textfield. */
        Object message = optionPane.getMessage();
        Object[] sValues = optionPane.getSelectionValues();
        Object inputValue = optionPane.getInitialSelectionValue();
        JComponent toAdd;

        if (sValues != null) {
          if (sValues.length < 20) {
            JComboBox cBox = new JComboBox();

            cBox.setName("OptionPane.comboBox");
            for (int counter = 0, maxCounter = sValues.length; counter < maxCounter; counter++) {
              cBox.addItem(sValues[counter]);
            }
            if (inputValue != null) {
              cBox.setSelectedItem(inputValue);
            }
            inputComponent = cBox;
            toAdd = cBox;

          } else {
            JList list = new JList(sValues);
            JScrollPane sp = new JScrollPane(list);

            sp.setName("OptionPane.scrollPane");
            list.setName("OptionPane.list");
            list.setVisibleRowCount(10);
            list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            if (inputValue != null) list.setSelectedValue(inputValue, true);
            list.addMouseListener(getHandler());
            toAdd = sp;
            inputComponent = list;
          }

        } else {
          MultiplexingTextField tf = new MultiplexingTextField(20);

          tf.setName("OptionPane.textField");
          tf.setKeyStrokes(new KeyStroke[] {KeyStroke.getKeyStroke("ENTER")});
          if (inputValue != null) {
            String inputString = inputValue.toString();
            tf.setText(inputString);
            tf.setSelectionStart(0);
            tf.setSelectionEnd(inputString.length());
          }
          tf.addActionListener(getHandler());
          toAdd = inputComponent = tf;
        }

        Object[] newMessage;

        if (message == null) {
          newMessage = new Object[1];
          newMessage[0] = toAdd;

        } else {
          newMessage = new Object[2];
          newMessage[0] = message;
          newMessage[1] = toAdd;
        }
        return newMessage;
      }
      return optionPane.getMessage();
    }
    return null;
  }