/* * $Id$ * * Copyright (c) 2000-2008 by Rodney Kinney * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License (LGPL) as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, copies are available * at http://www.opensource.org. */ package VASSAL.build.module.properties; import java.awt.Component; import javax.swing.JOptionPane; /** * Prompts for an integer value * @author rkinney * */ public class NumericPropertyPrompt extends PropertyPrompt { private int min; private int max; private Component dialogParent; public NumericPropertyPrompt(Component dialogParent, String prompt, int minValue, int maxValue) { super(null, prompt); min = minValue; max = maxValue; this.dialogParent = dialogParent; } public String getNewValue(String oldValue) { String s = null; do { s = (String) JOptionPane.showInputDialog(dialogParent, promptText, null, JOptionPane.QUESTION_MESSAGE, null, null, oldValue); } while (s != null && !isValidValue(s)); return s; } private boolean isValidValue(String s) { try { final int value = Integer.parseInt(s); return value <= max && value >= min; } catch (NumberFormatException e) { return false; } } }