| /******************************************************************************* |
| * Copyright (c) 2007 Oracle. All rights reserved. |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v1.0, which accompanies this distribution |
| * and is available at http://www.eclipse.org/legal/epl-v10.html. |
| * |
| * Contributors: |
| * Oracle - initial API and implementation |
| ******************************************************************************/ |
| package org.eclipse.jpt.utility.internal.swing; |
| |
| import javax.swing.Icon; |
| import javax.swing.JComboBox; |
| import javax.swing.JOptionPane; |
| import javax.swing.ListModel; |
| |
| /** |
| * This implementation of ListChooser.Browser uses a |
| * JOptionPane to prompt the user for the selection. Subclasses |
| * can change the dialog's title, message, and/or icon. |
| */ |
| public class SimpleListBrowser |
| implements ListChooser.ListBrowser |
| { |
| /** Default constructor */ |
| protected SimpleListBrowser() { |
| super(); |
| } |
| |
| /** |
| * Prompt the user using a JOptionPane. |
| */ |
| public void browse(ListChooser chooser) { |
| Object selection = |
| JOptionPane.showInputDialog( |
| chooser, |
| this.message(chooser), |
| this.title(chooser), |
| this.messageType(chooser), |
| this.icon(chooser), |
| this.selectionValues(chooser), |
| this.initialSelectionValue(chooser) |
| ); |
| |
| if (selection != null) { |
| chooser.getModel().setSelectedItem(selection); |
| } |
| } |
| |
| protected Object message(JComboBox comboBox) { |
| return null; |
| } |
| |
| protected String title(JComboBox comboBox) { |
| return null; |
| } |
| |
| protected int messageType(JComboBox comboBox) { |
| return JOptionPane.QUESTION_MESSAGE; |
| } |
| |
| protected Icon icon(JComboBox comboBox) { |
| return null; |
| } |
| |
| protected Object[] selectionValues(JComboBox comboBox) { |
| return this.convertToArray(comboBox.getModel()); |
| } |
| |
| protected Object initialSelectionValue(JComboBox comboBox) { |
| return comboBox.getModel().getSelectedItem(); |
| } |
| |
| /** |
| * Convert the list of objects in the specified list model |
| * into an array. |
| */ |
| protected Object[] convertToArray(ListModel model) { |
| int size = model.getSize(); |
| Object[] result = new Object[size]; |
| for (int i = 0; i < size; i++) { |
| result[i] = model.getElementAt(i); |
| } |
| return result; |
| } |
| } |