View Javadoc

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  }