/*
* @(#)BooleanControl.java 1.16 05/11/17
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package javax.sound.sampled;
/**
* A <code>BooleanControl</code> provides the ability to switch between
* two possible settings that affect a line's audio. The settings are boolean
* values (<code>true</code> and <code>false</code>). A graphical user interface
* might represent the control by a two-state button, an on/off switch, two
* mutually exclusive buttons, or a checkbox (among other possibilities).
* For example, depressing a button might activate a
* <code>{@link BooleanControl.Type#MUTE MUTE}</code> control to silence
* the line's audio.
* <p>
* As with other <code>{@link Control}</code> subclasses, a method is
* provided that returns string labels for the values, suitable for
* display in the user interface.
*
* @author Kara Kytle
* @version 1.16, 05/11/17
* @since 1.3
*/
public abstract class BooleanControl extends Control {
// INSTANCE VARIABLES
/**
* The <code>true</code> state label, such as "true" or "on."
*/
private final String trueStateLabel;
/**
* The <code>false</code> state label, such as "false" or "off."
*/
private final String falseStateLabel;
/**
* The current value.
*/
private boolean value;
// CONSTRUCTORS
/**
* Constructs a new boolean control object with the given parameters.
*
* @param type the type of control represented this float control object
* @param initialValue the initial control value
* @param trueStateLabel the label for the state represented by <code>true</code>,
* such as "true" or "on."
* @param falseStateLabel the label for the state represented by <code>false</code>,
* such as "false" or "off."
*/
protected BooleanControl(Type type, boolean initialValue, String trueStateLabel, String falseStateLabel) {
super(type);
this.value = initialValue;
this.trueStateLabel = trueStateLabel;
this.falseStateLabel = falseStateLabel;
}
/**
* Constructs a new boolean control object with the given parameters.
* The labels for the <code>true</code> and <code>false</code> states
* default to "true" and "false."
*
* @param type the type of control represented by this float control object
* @param initialValue the initial control value
*/
protected BooleanControl(Type type, boolean initialValue) {
this(type, initialValue, "true", "false");
}
// METHODS
/**
* Sets the current value for the control. The default
* implementation simply sets the value as indicated.
* Some controls require that their line be open before they can be affected
* by setting a value.
* @param value desired new value.
*/
public void setValue(boolean value) {
this.value = value;
}
/**
=1= |