1 /* 2 Copyright (C) 2000 - 2007 Grid Systems, S.A. 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License, version 2, as 6 published by the Free Software Foundation. 7 8 This program is distributed in the hope that it will be useful, 9 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 GNU General Public License for more details. 12 13 You should have received a copy of the GNU General Public License 14 along with this program; if not, write to the Free Software 15 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 */ 17 18 /* 19 * Project: KernelConfigurator 20 * Created on 03-mar-2004 21 * 22 * Copyright (c)2003 Grid Systems 23 */ 24 package com.gridsystems.config.tools.console; 25 26 import java.util.ResourceBundle; 27 28 import com.gridsystems.config.ConsoleConfiguratorView; 29 30 /** 31 * Specialized field for boolean values. Its execute method switches its value 32 * without extra edition. 33 * 34 * @author <a href="mailto:rruiz@gridsystems.com">Rodrigo Ruiz Aguayo</a> 35 * @version 1.0 36 */ 37 public class BoolField extends ValueField { 38 39 /** String representation of true value. */ 40 public static final String TRUE = "X"; 41 42 /** String representation of true value. */ 43 public static final String FALSE = " "; 44 45 /** 46 * Creates a new instance with the specified bundle and pattern. 47 * 48 * @param bundle The resource bundle 49 * @param linePattern The pattern for field display 50 */ 51 public BoolField(ResourceBundle bundle, String linePattern) { 52 super(bundle, linePattern, null); 53 } 54 55 /** 56 * {@inheritDoc} 57 */ 58 public void setValue(Object value) { 59 if (value == null) { 60 this.value = Boolean.FALSE; 61 } else { 62 boolean b = (value instanceof Boolean) ? ((Boolean)value).booleanValue() 63 : "true".equalsIgnoreCase(value.toString()); 64 65 this.value = b ? Boolean.TRUE : Boolean.FALSE; 66 } 67 } 68 69 /** 70 * Sets the value of this field. 71 * 72 * @param b The new value 73 */ 74 public void setValue(boolean b) { 75 this.value = b ? Boolean.TRUE : Boolean.FALSE; 76 } 77 78 /** 79 * {@inheritDoc} 80 */ 81 public String getStringValue() { 82 return getBooleanValue() ? TRUE : FALSE; 83 } 84 85 /** 86 * Obtains boolean value of this Field. 87 * @return boolean value of this field. 88 */ 89 public boolean getBooleanValue() { 90 // null is equivalent to false 91 if (value == null) { 92 return false; 93 } else { 94 return ((Boolean)value).booleanValue(); 95 } 96 } 97 98 99 /** 100 * Switches the boolean value to its negative. 101 *{@inheritDoc} 102 */ 103 public boolean execute(ConsoleConfiguratorView view) { 104 if (value == null) { 105 value = Boolean.TRUE; 106 } else { 107 Boolean b = (Boolean)value; 108 value = b.booleanValue() ? Boolean.FALSE : Boolean.TRUE; 109 } 110 return true; 111 } 112 }