1 /* 2 * Copyright (c) 2006 Stiftung Deutsches Elektronen-Synchroton, 3 * Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY. 4 * 5 * THIS SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "../AS IS" BASIS. 6 * WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED 7 * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND 8 * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE 9 * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 10 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR 11 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE 12 * IN ANY RESPECT, THE USER ASSUMES THE COST OF ANY NECESSARY SERVICING, REPAIR OR 13 * CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. 14 * NO USE OF ANY SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. 15 * DESY HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, 16 * OR MODIFICATIONS. 17 * THE FULL LICENSE SPECIFYING FOR THE SOFTWARE THE REDISTRIBUTION, MODIFICATION, 18 * USAGE AND OTHER RIGHTS AND OBLIGATIONS IS INCLUDED WITH THE DISTRIBUTION OF THIS 19 * PROJECT IN THE FILE LICENSE.HTML. IF THE LICENSE IS NOT INCLUDED YOU MAY FIND A COPY 20 * AT HTTP://WWW.DESY.DE/LEGAL/LICENSE.HTM 21 */ 22 23 package de.desy.acop.displayers.selector; 24 25 import java.awt.Component; 26 27 import javax.swing.JOptionPane; 28 29 /** 30 * This class offers a method that opens an input dialog with a list of 31 * Integers where an index can be selected and returned. 32 * 33 * @author tkusterle 34 * 35 */ 36 public class ChannelSelector { 37 38 /** 39 * Displays a JDialog, which allows user to choose a specific index from the list. 40 * 41 * @param c the owner of the dialog 42 * @param length the highest index number displayed (excluded) 43 * @param current default selected index 44 * @return the selected index 45 */ 46 public static int selectChannelDialog(Component c, int length, int current) { 47 if (length == 1) return 0; 48 Object[] possibilities = new Object[length]; 49 for (int i = 0; i < length; i++) { 50 possibilities[i] = new Integer(i); 51 } 52 Object selected = JOptionPane.showInputDialog( 53 c, 54 "Select Channel:", 55 "Select Index", 56 JOptionPane.PLAIN_MESSAGE, 57 null, 58 possibilities, 59 new Integer(current)); 60 if (selected == null) { 61 return -1; 62 } else { 63 return ((Integer) selected).intValue(); 64 } 65 } 66 67 }