/*
* Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code 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 General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package javafx.scene.control;
import com.sun.javafx.scene.control.skin.resources.ControlResources;
import javafx.beans.NamedArg;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonBar.ButtonData;
The ButtonType class is used as part of the JavaFX Dialog
API (more specifically, the DialogPane
API) to specify which buttons should be shown to users in the dialogs. Refer to the DialogPane
class javadoc for more information on how to use this class. See Also: Since: JavaFX 8u40
/**
* The ButtonType class is used as part of the JavaFX {@link Dialog} API (more
* specifically, the {@link DialogPane} API) to specify which buttons should be
* shown to users in the dialogs. Refer to the {@link DialogPane} class javadoc
* for more information on how to use this class.
*
* @see Alert
* @see Dialog
* @see DialogPane
* @since JavaFX 8u40
*/
public final class ButtonType {
/**
* A pre-defined {@link ButtonType} that displays "Apply" and has a
* {@link ButtonData} of {@link ButtonData#APPLY}.
*/
public static final ButtonType APPLY = new ButtonType(
"Dialog.apply.button", null, ButtonData.APPLY);
/**
* A pre-defined {@link ButtonType} that displays "OK" and has a
* {@link ButtonData} of {@link ButtonData#OK_DONE}.
*/
public static final ButtonType OK = new ButtonType(
"Dialog.ok.button", null, ButtonData.OK_DONE);
/**
* A pre-defined {@link ButtonType} that displays "Cancel" and has a
* {@link ButtonData} of {@link ButtonData#CANCEL_CLOSE}.
*/
public static final ButtonType CANCEL = new ButtonType(
"Dialog.cancel.button", null, ButtonData.CANCEL_CLOSE);
/**
* A pre-defined {@link ButtonType} that displays "Close" and has a
* {@link ButtonData} of {@link ButtonData#CANCEL_CLOSE}.
*/
public static final ButtonType CLOSE = new ButtonType(
"Dialog.close.button", null, ButtonData.CANCEL_CLOSE);
/**
* A pre-defined {@link ButtonType} that displays "Yes" and has a
* {@link ButtonData} of {@link ButtonData#YES}.
*/
public static final ButtonType YES = new ButtonType(
"Dialog.yes.button", null, ButtonData.YES);
/**
* A pre-defined {@link ButtonType} that displays "No" and has a
* {@link ButtonData} of {@link ButtonData#NO}.
*/
public static final ButtonType NO = new ButtonType(
"Dialog.no.button", null, ButtonData.NO);
/**
* A pre-defined {@link ButtonType} that displays "Finish" and has a
* {@link ButtonData} of {@link ButtonData#FINISH}.
*/
public static final ButtonType FINISH = new ButtonType(
"Dialog.finish.button", null, ButtonData.FINISH);
/**
* A pre-defined {@link ButtonType} that displays "Next" and has a
* {@link ButtonData} of {@link ButtonData#NEXT_FORWARD}.
*/
public static final ButtonType NEXT = new ButtonType(
"Dialog.next.button", null, ButtonData.NEXT_FORWARD);
/**
* A pre-defined {@link ButtonType} that displays "Previous" and has a
* {@link ButtonData} of {@link ButtonData#BACK_PREVIOUS}.
*/
public static final ButtonType PREVIOUS = new ButtonType(
"Dialog.previous.button", null, ButtonData.BACK_PREVIOUS);
private final String key;
private final String text;
private final ButtonData buttonData;
Creates a ButtonType instance with the given text, and the ButtonData set as ButtonData.OTHER
. Params: - text – The string to display in the text property of controls such as
Button
.
/**
* Creates a ButtonType instance with the given text, and the ButtonData set
* as {@link ButtonData#OTHER}.
*
* @param text The string to display in the text property of controls such
* as {@link Button#textProperty() Button}.
*/
public ButtonType(@NamedArg("text") String text) {
this(text, ButtonData.OTHER);
}
Creates a ButtonType instance with the given text, and the ButtonData set
as specified.
Params: - text – The string to display in the text property of controls such as
Button
. - buttonData – The type of button that should be created from this ButtonType.
/**
* Creates a ButtonType instance with the given text, and the ButtonData set
* as specified.
*
* @param text The string to display in the text property of controls such
* as {@link Button#textProperty() Button}.
* @param buttonData The type of button that should be created from this ButtonType.
*/
public ButtonType(@NamedArg("text") String text,
@NamedArg("buttonData") ButtonData buttonData) {
this(null, text, buttonData);
}
Provide key or text. The other one should be null.
/**
* Provide key or text. The other one should be null.
*/
private ButtonType(String key, String text, ButtonData buttonData) {
this.key = key;
this.text = text;
this.buttonData = buttonData;
}
Returns the ButtonData specified for this ButtonType in the constructor.
Returns: the ButtonData specified for this ButtonType in the constructor
/**
* Returns the ButtonData specified for this ButtonType in the constructor.
* @return the ButtonData specified for this ButtonType in the constructor
*/
public final ButtonData getButtonData() { return this.buttonData; }
Returns the text specified for this ButtonType in the constructor.
Returns: the text specified for this ButtonType in the constructor
/**
* Returns the text specified for this ButtonType in the constructor.
* @return the text specified for this ButtonType in the constructor
*/
public final String getText() {
if (text == null && key != null) {
return ControlResources.getString(key);
} else {
return text;
}
}
{@inheritDoc} /** {@inheritDoc} */
@Override public String toString() {
return "ButtonType [text=" + getText() + ", buttonData=" + getButtonData() + "]";
}
}