Example usage for javafx.scene.control Tooltip Tooltip

List of usage examples for javafx.scene.control Tooltip Tooltip

Introduction

In this page you can find the example usage for javafx.scene.control Tooltip Tooltip.

Prototype

public Tooltip(String text) 

Source Link

Document

Creates a tooltip with the specified text.

Usage

From source file:dsfixgui.view.DSPWPane.java

private void initialize() {

    //Basic layout
    this.setFitToWidth(true);

    spacerColumn = new ColumnConstraints();
    spacerColumn.setFillWidth(true);//from  ww  w .  j a va2 s.co  m
    spacerColumn.setPercentWidth(3.0);
    primaryColumn = new ColumnConstraints();
    primaryColumn.setFillWidth(true);
    primaryColumn.setPercentWidth(95.0);
    primaryPane = new GridPane();
    primaryPane.getColumnConstraints().addAll(spacerColumn, primaryColumn);
    primaryVBox = new VBox();
    primaryVBox.getStyleClass().add("spacing_15");
    primaryPane.add(primaryVBox, 1, 0);
    titleLabel = new Label(DSPW_SHORT.toUpperCase() + " " + SETTINGS.toUpperCase());
    titleLabel.getStyleClass().add("settings_title");
    titleBar = new HBox();
    titleBar.setAlignment(Pos.CENTER);
    titleBar.getChildren().add(titleLabel);
    restoreDefaultsBar = new HBox();
    restoreDefaultsBar.setAlignment(Pos.CENTER);
    restoreDefaultsBar.setSpacing(5.0);
    applySettingsButton = new Button(APPLY_SETTINGS);
    restoreDefaultsButton = new Button(RESTORE_DEFAULTS);
    applySettingsButton.getStyleClass().add("translate_y_4");
    restoreDefaultsButton.getStyleClass().add("translate_y_4");
    restoreDefaultsBar.getChildren().addAll(applySettingsButton, restoreDefaultsButton);
    spacerHBox = new HBox();
    spacerHBox.setMinHeight(10.0);
    bottomSpacerHBox = new HBox();
    bottomSpacerHBox.setMinHeight(10.0);

    /////////////////////SETTINGS PANES/////////////////////
    //
    //
    //Version Banner
    versionBannerPane = new FlowPane();
    versionBannerPane.getStyleClass().add("settings_pane");
    versionBannerLabel = new Label(VERSION_LABEL);
    versionBannerLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    versionBannerLabel.setTooltip(new Tooltip(VERSION_TT));
    versionBannerChoice = new ToggleGroup();
    versionBannerOn = new RadioButton(ON_OFF[0] + "   ");
    versionBannerOn.setToggleGroup(versionBannerChoice);
    versionBannerOff = new RadioButton(ON_OFF[1]);
    versionBannerOff.setToggleGroup(versionBannerChoice);
    if (config.ShowVersionBanner.toString().equals(TRUE_FALSE[0])) {
        versionBannerOn.setSelected(true);
    } else {
        versionBannerOff.setSelected(true);
    }
    versionBannerPane.getChildren().addAll(versionBannerLabel, versionBannerOn, versionBannerOff);
    //
    //Toggle Overlay
    overlayPane = new FlowPane();
    overlayPane.getStyleClass().add("settings_pane");
    overlayLabel = new Label(OVERLAY_LABEL);
    overlayLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    overlayLabel.setTooltip(new Tooltip(OVERLAY_TT));
    overlayChoice = new ToggleGroup();
    overlayOn = new RadioButton(ON_OFF[0] + "   ");
    overlayOn.setToggleGroup(overlayChoice);
    overlayOff = new RadioButton(ON_OFF[1]);
    overlayOff.setToggleGroup(overlayChoice);
    if (config.ShowOverlay.toString().equals(TRUE_FALSE[0])) {
        overlayOn.setSelected(true);
    } else {
        overlayOff.setSelected(true);
    }
    overlayPane.getChildren().addAll(overlayLabel, overlayOn, overlayOff);
    //
    //Text Alignment
    textAlignmentPane = new FlowPane();
    textAlignmentPane.getStyleClass().add("settings_pane");
    textAlignmentLabel = new Label(TEXT_ALIGNMENT_LABEL);
    textAlignmentLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    textAlignmentLabel.setTooltip(new Tooltip(TEXT_ALIGNMENT_TT));
    textAlignmentChoice = new ToggleGroup();
    textAlignmentLeft = new RadioButton(DSPW_TEXT_ALIGNMENT_OPTIONS[0] + "   ");
    textAlignmentLeft.setToggleGroup(textAlignmentChoice);
    textAlignmentCenter = new RadioButton(DSPW_TEXT_ALIGNMENT_OPTIONS[1]);
    textAlignmentCenter.setToggleGroup(textAlignmentChoice);
    textAlignmentRight = new RadioButton(DSPW_TEXT_ALIGNMENT_OPTIONS[2]);
    textAlignmentRight.setToggleGroup(textAlignmentChoice);
    if (config.TextAlignment.toString().equals(DSPW_TEXT_ALIGNMENT_OPTIONS[0])) {
        textAlignmentLeft.setSelected(true);
    } else if (config.TextAlignment.toString().equals(DSPW_TEXT_ALIGNMENT_OPTIONS[1])) {
        textAlignmentCenter.setSelected(true);
    } else {
        textAlignmentRight.setSelected(true);
    }
    textAlignmentPane.getChildren().addAll(textAlignmentLabel, textAlignmentLeft, textAlignmentCenter,
            textAlignmentRight);
    //
    //Invasion Notification Sound
    invasionNotifPane = new FlowPane();
    invasionNotifPane.getStyleClass().add("settings_pane");
    invasionNotifLabel = new Label(INVASION_NOTIF_LABEL);
    invasionNotifLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    invasionNotifLabel.setTooltip(new Tooltip(INVASION_NOTIF_TT));
    invasionNotifChoice = new ToggleGroup();
    invasionNotifOn = new RadioButton(ON_OFF[0] + "   ");
    invasionNotifOn.setToggleGroup(invasionNotifChoice);
    invasionNotifOff = new RadioButton(ON_OFF[1]);
    invasionNotifOff.setToggleGroup(invasionNotifChoice);
    if (config.InvasionSoundNotification.toString().equals(TRUE_FALSE[0])) {
        invasionNotifOn.setSelected(true);
    } else {
        invasionNotifOff.setSelected(true);
    }
    invasionNotifPane.getChildren().addAll(invasionNotifLabel, invasionNotifOn, invasionNotifOff);
    //
    //Cheater Notification Sound
    cheaterNotifPane = new FlowPane();
    cheaterNotifPane.getStyleClass().add("settings_pane");
    cheaterNotifLabel = new Label(CHEATER_NOTIF_LABEL);
    cheaterNotifLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    cheaterNotifLabel.setTooltip(new Tooltip(CHEATER_NOTIF_TT));
    cheaterNotifChoice = new ToggleGroup();
    cheaterNotifOn = new RadioButton(ON_OFF[0] + "   ");
    cheaterNotifOn.setToggleGroup(cheaterNotifChoice);
    cheaterNotifOff = new RadioButton(ON_OFF[1]);
    cheaterNotifOff.setToggleGroup(cheaterNotifChoice);
    if (config.CheaterSoundNotification.toString().equals(TRUE_FALSE[0])) {
        cheaterNotifOn.setSelected(true);
    } else {
        cheaterNotifOff.setSelected(true);
    }
    cheaterNotifPane.getChildren().addAll(cheaterNotifLabel, cheaterNotifOn, cheaterNotifOff);
    //
    //Block Arena Freeze
    blockArenaFreezePane = new FlowPane();
    blockArenaFreezePane.getStyleClass().add("settings_pane");
    blockArenaFreezeLabel = new Label(BLOCK_ARENA_FREEZE_LABEL);
    blockArenaFreezeLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    blockArenaFreezeLabel.setTooltip(new Tooltip(BLOCK_ARENA_FREEZE_TT));
    blockArenaFreezeChoice = new ToggleGroup();
    blockArenaFreezeOn = new RadioButton(BLOCK_FREEZE_CHOICES[0] + "   ");
    blockArenaFreezeOn.setToggleGroup(blockArenaFreezeChoice);
    blockArenaFreezeOff = new RadioButton(BLOCK_FREEZE_CHOICES[1]);
    blockArenaFreezeOff.setToggleGroup(blockArenaFreezeChoice);
    if (config.BlockArenaFreeze.toString().equals(TRUE_FALSE[0])) {
        blockArenaFreezeOn.setSelected(true);
    } else {
        blockArenaFreezeOff.setSelected(true);
    }
    blockArenaFreezePane.getChildren().addAll(blockArenaFreezeLabel, blockArenaFreezeOn, blockArenaFreezeOff);
    //
    //Show Node Count
    nodeCountPane = new FlowPane();
    nodeCountPane.getStyleClass().add("settings_pane");
    nodeCountLabel = new Label(NODE_COUNT_LABEL);
    nodeCountLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    nodeCountLabel.setTooltip(new Tooltip(NODE_COUNT_TT));
    nodeCountChoice = new ToggleGroup();
    nodeCountOn = new RadioButton(ON_OFF[0] + "   ");
    nodeCountOn.setToggleGroup(nodeCountChoice);
    nodeCountOff = new RadioButton(ON_OFF[1]);
    nodeCountOff.setToggleGroup(nodeCountChoice);
    if (config.ShowNodeDbCount.toString().equals(TRUE_FALSE[0])) {
        nodeCountOn.setSelected(true);
    } else {
        nodeCountOff.setSelected(true);
    }
    nodeCountPane.getChildren().addAll(nodeCountLabel, nodeCountOn, nodeCountOff);
    //
    //Increase Node Limit
    increaseNodesPane = new FlowPane();
    increaseNodesPane.getStyleClass().add("settings_pane");
    increaseNodesLabel = new Label(INCREASE_NODES_LABEL);
    increaseNodesLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    increaseNodesLabel.setTooltip(new Tooltip(INCREASE_NODES_TT));
    increaseNodesChoice = new ToggleGroup();
    increaseNodesOn = new RadioButton(ON_OFF[0] + "   ");
    increaseNodesOn.setToggleGroup(increaseNodesChoice);
    increaseNodesOff = new RadioButton(ON_OFF[1]);
    increaseNodesOff.setToggleGroup(increaseNodesChoice);
    if (config.IncreaseNodeDbLimit.toString().equals(TRUE_FALSE[0])) {
        increaseNodesOn.setSelected(true);
    } else {
        increaseNodesOff.setSelected(true);
    }
    increaseNodesPane.getChildren().addAll(increaseNodesLabel, increaseNodesOn, increaseNodesOff);
    //
    //Font Size
    fontSizePane = new FlowPane();
    fontSizePane.getStyleClass().add("settings_pane");
    fontSizeLabel = new Label(FONT_SIZE_LABEL + " ");
    fontSizeLabel.setTooltip(new Tooltip(FONT_SIZE_TT));
    fontSizeLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    fontSizeField = new TextField("" + config.FontSize.toString());
    fontSizeField.getStyleClass().add("settings_text_field");
    fontSizeField.setTooltip(new Tooltip(FONT_SIZE_FIELD_TT));
    fontSizePane.getChildren().addAll(fontSizeLabel, fontSizeField);
    //
    //Toggle Date
    datePane = new FlowPane();
    datePane.getStyleClass().add("settings_pane");
    dateLabel = new Label(DATE_LABEL);
    dateLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    dateLabel.setTooltip(new Tooltip(DATE_TT));
    dateChoice = new ToggleGroup();
    dateOn = new RadioButton(ON_OFF[0] + "   ");
    dateOn.setToggleGroup(dateChoice);
    dateOff = new RadioButton(ON_OFF[1]);
    dateOff.setToggleGroup(dateChoice);
    if (config.DisplayDate.toString().equals(TRUE_FALSE[0])) {
        dateOn.setSelected(true);
    } else {
        dateOff.setSelected(true);
    }
    datePane.getChildren().addAll(dateLabel, dateOn, dateOff);
    //
    //Toggle Time
    timePane = new FlowPane();
    timePane.getStyleClass().add("settings_pane");
    timeLabel = new Label(TIME_LABEL);
    timeLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    timeLabel.setTooltip(new Tooltip(TIME_TT));
    timeChoice = new ToggleGroup();
    timeOn = new RadioButton(ON_OFF[0] + "   ");
    timeOn.setToggleGroup(timeChoice);
    timeOff = new RadioButton(ON_OFF[1]);
    timeOff.setToggleGroup(timeChoice);
    if (config.DisplayClock.toString().equals(TRUE_FALSE[0])) {
        timeOn.setSelected(true);
    } else {
        timeOff.setSelected(true);
    }
    timePane.getChildren().addAll(timeLabel, timeOn, timeOff);
    //
    //Check for Updates
    updatePane = new FlowPane();
    updatePane.getStyleClass().add("settings_pane");
    updateLabel = new Label(UPDATE_LABEL);
    updateLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    updateLabel.setTooltip(new Tooltip(UPDATE_TT));
    updateChoice = new ToggleGroup();
    updateOn = new RadioButton(ON_OFF[0] + "   ");
    updateOn.setToggleGroup(updateChoice);
    updateOff = new RadioButton(ON_OFF[1]);
    updateOff.setToggleGroup(updateChoice);
    if (config.CheckForUpdates.toString().equals(TRUE_FALSE[0])) {
        updateOn.setSelected(true);
    } else {
        updateOff.setSelected(true);
    }
    updatePane.getChildren().addAll(updateLabel, updateOn, updateOff);
    //
    //DLL Chaining
    dllChainPane = new FlowPane();
    dllChainPane.getStyleClass().add("settings_pane");
    dllChainLabel = new Label(DLL_CHAIN_LABEL + " ");
    dllChainLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    dllChainLabel.setTooltip(new Tooltip(DSPW_DLL_CHAIN_TT));
    dllChainField = new TextField();
    dllChainField.setEditable(false);
    dllChainButton = new Button("...");
    dllChainButton.setTooltip(new Tooltip(DLL_CHAIN_TOOLTIP));
    noChainButton = new Button(NO_CHAIN_BT);
    if (config.d3d9dllWrapper.toString().equals(NONE)) {
        noChainButton.setDisable(true);
        dllChainField.setStyle("-fx-text-fill: gray;");
    } else {
        noChainButton.setDisable(false);
    }
    dllChainField.setText(config.d3d9dllWrapper.toString());
    dllChainPane.getChildren().addAll(dllChainLabel, dllChainField, dllChainButton, noChainButton);
    //
    //
    //
    //////////////////////////////////
    ///////////Key Bindings///////////
    //////////////////////////////////
    //
    //
    //Keybinds Parent Label
    keybindsPane = new FlowPane();
    keybindsPane.getStyleClass().add("settings_pane");
    keybindsLabel = new Label(KEYBINDS_LABEL);
    keybindsLabel.getStyleClass().addAll("bold_text", "font_14_pt");
    keybindsPane.getChildren().add(keybindsLabel);
    //
    //Ban Phantom
    banPane = new FlowPane();
    banPane.getStyleClass().add("settings_pane");
    banLabel = new Label(BAN_LABEL + "  ");
    banLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    banPicker = new ComboBox(keybinds);
    banPicker.setValue(keybinds.get(keybindsHex.indexOf(config.key_BanPhantom.toString())));
    banPane.getChildren().addAll(banLabel, banPicker);
    //
    //Ignore Phantom
    ignorePane = new FlowPane();
    ignorePane.getStyleClass().add("settings_pane");
    ignoreLabel = new Label(IGNORE_LABEL + "  ");
    ignoreLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    ignorePicker = new ComboBox(keybinds);
    ignorePicker.setValue(keybinds.get(keybindsHex.indexOf(config.key_IgnorePhantom.toString())));
    ignorePane.getChildren().addAll(ignoreLabel, ignorePicker);
    //
    //Toggle Overlay
    toggleOverlayPane = new FlowPane();
    toggleOverlayPane.getStyleClass().add("settings_pane");
    toggleOverlayLabel = new Label(TOGGLE_OVERLAY_LABEL + "  ");
    toggleOverlayLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    toggleOverlayPicker = new ComboBox(keybinds);
    toggleOverlayPicker.setValue(keybinds.get(keybindsHex.indexOf(config.key_HideOverlay.toString())));
    toggleOverlayPane.getChildren().addAll(toggleOverlayLabel, toggleOverlayPicker);
    //
    //About Dark Souls PvP Watchdog
    aboutPane = new FlowPane();
    aboutPane.getStyleClass().add("settings_pane");
    aboutLabel = new Label(ABOUT_DSPW_LABEL + "  ");
    aboutLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    aboutPicker = new ComboBox(keybinds);
    aboutPicker.setValue(keybinds.get(keybindsHex.indexOf(config.key_AboutDSPW.toString())));
    aboutPane.getChildren().addAll(aboutLabel, aboutPicker);

    primaryVBox.getChildren().addAll(titleBar, restoreDefaultsBar, spacerHBox, versionBannerPane, overlayPane,
            textAlignmentPane, invasionNotifPane, cheaterNotifPane, blockArenaFreezePane, nodeCountPane,
            increaseNodesPane, fontSizePane, datePane, timePane, updatePane, dllChainPane, keybindsPane,
            banPane, ignorePane, toggleOverlayPane, aboutPane, bottomSpacerHBox);

    initializeEventHandlers();

    this.setContent(primaryPane);
}

From source file:dsfixgui.view.DSFGraphicsPane.java

private void initialize() {

    //Basic layout
    this.setFitToWidth(true);

    spacerColumn = new ColumnConstraints();
    spacerColumn.setFillWidth(true);//from ww  w  . j  a  v  a2 s .com
    spacerColumn.setPercentWidth(3.0);
    primaryColumn = new ColumnConstraints();
    primaryColumn.setFillWidth(true);
    primaryColumn.setPercentWidth(95.0);
    primaryPane = new GridPane();
    primaryPane.getColumnConstraints().addAll(spacerColumn, primaryColumn);
    primaryVBox = new VBox();
    primaryVBox.getStyleClass().add("spacing_15");
    primaryPane.add(primaryVBox, 1, 0);
    titleLabel = new Label(GRAPHICS.toUpperCase() + " " + SETTINGS.toUpperCase());
    titleLabel.getStyleClass().add("settings_title");
    titleBar = new HBox();
    titleBar.setAlignment(Pos.CENTER);
    titleBar.getChildren().add(titleLabel);
    restoreDefaultsBar = new HBox();
    restoreDefaultsBar.setAlignment(Pos.CENTER);
    restoreDefaultsBar.setSpacing(5.0);
    applySettingsButton = new Button(APPLY_SETTINGS);
    restoreDefaultsButton = new Button(RESTORE_DEFAULTS);
    applySettingsButton.getStyleClass().add("translate_y_4");
    restoreDefaultsButton.getStyleClass().add("translate_y_4");
    restoreDefaultsBar.getChildren().addAll(applySettingsButton, restoreDefaultsButton);
    spacerHBox = new HBox();
    spacerHBox.setMinHeight(10.0);
    bottomSpacerHBox = new HBox();
    bottomSpacerHBox.setMinHeight(10.0);

    /////////////////////SETTINGS PANES/////////////////////
    //
    //
    //
    //MAIN GRAPHICS OPTIONS
    //
    //Render resolution
    renderResPane = new FlowPane();
    renderResPane.getStyleClass().add("settings_pane");
    renderResLabel = new Label(RENDER_RES_LABEL + "   ");
    renderResLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    renderResLabel.setTooltip(new Tooltip(RENDER_RES_TT));
    renderWidthLabel = new Label(WIDTH_HEIGHT[0] + ":");
    renderWidthField = new TextField("");
    renderWidthField.appendText("" + config.getRenderWidth());
    renderWidthField.getStyleClass().add("settings_text_field");
    renderHeightLabel = new Label("  " + WIDTH_HEIGHT[1] + ":");
    renderHeightField = new TextField("");
    renderHeightField.appendText("" + config.getRenderHeight());
    renderHeightField.getStyleClass().add("settings_text_field");
    setWindowsRenderRes = new Button(USE_WINDOWS_RES);
    renderResPane.getChildren().addAll(renderResLabel, renderWidthLabel, renderWidthField, renderHeightLabel,
            renderHeightField, setWindowsRenderRes);
    //
    //Present Resolution
    presentResPane = new FlowPane();
    presentResPane.getStyleClass().add("settings_pane");
    presentResLabel = new Label(PRESENT_RES_LABEL + "  ");
    presentResLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    presentResLabel.setTooltip(new Tooltip(PRESENT_RES_TT));
    presentResSpacer = new HBox();
    presentResSpacer.setMinWidth(3);
    presentWidthLabel = new Label(WIDTH_HEIGHT[0] + ":");
    presentWidthField = new TextField("");
    presentWidthField.appendText(config.getPresentWidth() + "");
    presentRes[0] = config.getPresentWidth() + "";
    presentWidthField.getStyleClass().add("settings_text_field");
    presentHeightLabel = new Label("  " + WIDTH_HEIGHT[1] + ":");
    presentHeightField = new TextField("");
    presentHeightField.appendText(config.getPresentHeight() + "");
    presentRes[1] = config.getPresentHeight() + "";
    presentHeightField.getStyleClass().add("settings_text_field");
    setWindowsPresentRes = new Button(USE_WINDOWS_RES);
    presentResSpacer2 = new HBox();
    presentResSpacer2.setMinWidth(5);
    presentResChoice = new ToggleGroup();
    usePresentRes = new RadioButton(USE_PRESENT_RES + "   ");
    usePresentRes.setToggleGroup(presentResChoice);
    dontUsePresentRes = new RadioButton(DONT_USE_PRES_RES);
    dontUsePresentRes.setToggleGroup(presentResChoice);
    //Check if presentRes is off
    if (config.getPresentWidth() == 0 && config.getPresentHeight() == 0) {
        presentWidthField.setDisable(true);
        presentHeightField.setDisable(true);
        setWindowsPresentRes.setDisable(true);
        dontUsePresentRes.setSelected(true);
    } else {
        presentWidthField.setDisable(false);
        presentWidthField.setText("" + config.getPresentWidth());
        presentHeightField.setDisable(false);
        presentHeightField.setText("" + config.getPresentHeight());
        setWindowsPresentRes.setDisable(false);
        usePresentRes.setSelected(true);
        recheckTextInput(presentWidthField);
        recheckTextInput(presentHeightField);
    }
    presentResPane.getChildren().addAll(presentResLabel, presentResSpacer, presentWidthLabel, presentWidthField,
            presentHeightLabel, presentHeightField, setWindowsPresentRes, presentResSpacer2, usePresentRes,
            dontUsePresentRes);
    //
    //
    //
    //ANTIALIASING OPTIONS
    //
    //AA Quality
    aaQualityPane = new FlowPane();
    aaQualityPane.getStyleClass().add("settings_pane");
    aaQualityLabel = new Label(AA_QUALITY_LABEL + "  ");
    aaQualityLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    aaQualityLabel.setTooltip(new Tooltip(AA_QUALITY_TT));
    aaQualityPicker = new ComboBox(FXCollections.observableArrayList(AAQUALITIES));
    aaQualityPicker.setValue(AAQUALITIES[config.aaQuality.get()]);
    aaQualityPane.getChildren().addAll(aaQualityLabel, aaQualityPicker);
    //
    //AA Type
    aaTypePane = new FlowPane();
    aaTypePane.getStyleClass().add("settings_pane");
    aaTypeLabel = new Label(AA_TYPE_LABEL + "  ");
    aaTypeLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    aaTypeLabel.setTooltip(new Tooltip(AA_TYPE_TT));
    aaTypePicker = new ComboBox(FXCollections.observableArrayList(AATYPES));
    aaTypePicker.setValue(config.aaType.toString());
    if (config.aaQuality.get() == 0) {
        aaTypePicker.setDisable(true);
    }
    aaTypePane.getChildren().addAll(aaTypeLabel, aaTypePicker);
    //
    //
    //
    //AMBIENT OCCLUSION OPTIONS
    //
    //SSAO Strength
    ssaoStrengthPane = new FlowPane();
    ssaoStrengthPane.getStyleClass().add("settings_pane");
    ssaoStrengthLabel = new Label(SSAO_STRENGTH_LABEL + "  ");
    ssaoStrengthLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    ssaoStrengthLabel.setTooltip(new Tooltip(SSAO_STRENGTH_TT));
    ssaoStrengthPicker = new ComboBox(FXCollections.observableArrayList(SSAOSTRENGTHS));
    ssaoStrengthPicker.setValue(SSAOSTRENGTHS[config.ssaoStrength.get()]);
    ssaoStrengthPane.getChildren().addAll(ssaoStrengthLabel, ssaoStrengthPicker);
    //
    //SSAO Scale
    ssaoScalePane = new FlowPane();
    ssaoScalePane.getStyleClass().add("settings_pane");
    ssaoScaleLabel = new Label(SSAO_SCALE_LABEL + "  ");
    ssaoScaleLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    ssaoScaleLabel.setTooltip(new Tooltip(SSAO_SCALE_TT));
    ssaoScalePicker = new ComboBox(FXCollections.observableArrayList(SSAOSCALES));
    ssaoScalePicker.setValue(SSAOSCALES[config.ssaoScale.get() - 1]);
    if (config.ssaoStrength.get() == 0) {
        ssaoScalePicker.setDisable(true);
    }
    ssaoScalePane.getChildren().addAll(ssaoScaleLabel, ssaoScalePicker);
    //
    //SSAO Type
    ssaoTypePane = new FlowPane();
    ssaoTypePane.getStyleClass().add("settings_pane");
    ssaoTypeLabel = new Label(SSAO_TYPE_LABEL + "  ");
    ssaoTypeLabel.setTooltip(new Tooltip(SSAO_TYPE_TT));
    ssaoTypeLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    ssaoTypePicker = new ComboBox(FXCollections.observableArrayList(SSAOTYPES));
    ssaoTypePicker.setValue(config.ssaoType.toString());
    if (config.ssaoStrength.get() == 0) {
        ssaoTypePicker.setDisable(true);
    }
    ssaoTypePane.getChildren().addAll(ssaoTypeLabel, ssaoTypePicker);
    //
    //
    //
    //DEPTH OF FIELD OPTIONS
    //
    //DOF Override Resolution
    dofOverridePane = new FlowPane();
    dofOverridePane.getStyleClass().add("settings_pane");
    dofOverrideLabel = new Label(DOF_OVERRIDE_LABEL + "  ");
    dofOverrideLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    dofOverrideLabel.setTooltip(new Tooltip(DOF_OVERRIDE_TT));
    dofOverridePicker = new ComboBox(FXCollections.observableArrayList(DOFOVERRIDERESOLUTIONS));
    for (int i = 0; i < DOF_OVERRIDE_OPTIONS.length; i++) {
        if (config.getDOFOverride() == DOF_OVERRIDE_OPTIONS[i]) {
            dofOverridePicker.setValue(DOFOVERRIDERESOLUTIONS[i]);
        }
    }
    dofOverridePane.getChildren().addAll(dofOverrideLabel, dofOverridePicker);
    //
    //DOF Scaling
    dofScalingPane = new FlowPane();
    dofScalingPane.getStyleClass().add("settings_pane");
    dofScalingLabel = new Label(DOF_SCALING_LABEL + "  ");
    dofScalingLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    dofScalingLabel.setTooltip(new Tooltip(DOF_SCALING_OR_TT));
    dofScalingChoice = new ToggleGroup();
    dofScalingEnabled = new RadioButton(ENABLE_DISABLE[0] + "   ");
    dofScalingEnabled.setToggleGroup(dofScalingChoice);
    dofScalingDisabled = new RadioButton(ENABLE_DISABLE[1]);
    dofScalingDisabled.setToggleGroup(dofScalingChoice);
    if (config.disableDofScaling.get() == 0) {
        dofScalingEnabled.setSelected(true);
    } else {
        dofScalingDisabled.setSelected(true);
    }
    dofScalingPane.getChildren().addAll(dofScalingLabel, dofScalingEnabled, dofScalingDisabled);
    //
    //DOF Additional Blur
    dofAddPane = new FlowPane();
    dofAddPane.getStyleClass().add("settings_pane");
    dofAddLabel = new Label(DOF_ADD_BLUR_LABEL + "  ");
    dofAddLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    dofAddLabel.setTooltip(new Tooltip(DOF_ADD_BLUR_TT));
    dofAddPicker = new ComboBox(FXCollections.observableArrayList(DOF_ADDITIONAL_BLUR));
    for (int i = 0; i < DOF_ADDITIONAL_BLUR_OPTIONS.length; i++) {
        if (config.dofBlurAmount.toString().equals(DOF_ADDITIONAL_BLUR_OPTIONS[i])) {
            dofAddPicker.setValue(DOF_ADDITIONAL_BLUR[i]);
        }
    }
    dofAddPane.getChildren().addAll(dofAddLabel, dofAddPicker);
    if (config.disableDOF) {
        dofScalingEnabled.setDisable(true);
        dofScalingDisabled.setDisable(true);
        dofAddPicker.setDisable(true);
        dofOverridePicker.setValue(DOFOVERRIDERESOLUTIONS[5]);
        setWindowsPresentRes.setDisable(true);
        presentWidthField.setDisable(true);
        presentHeightField.setDisable(true);
        usePresentRes.setDisable(true);
        dontUsePresentRes.setDisable(true);
    }
    //
    //
    //
    //FRAMERATE OPTIONS
    //
    //Unlock Framerate
    unlockFPSPane = new FlowPane();
    unlockFPSPane.getStyleClass().add("settings_pane");
    unlockFPSLabel = new Label(UNLOCK_FPS_LABEL + "  ");
    unlockFPSLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    unlockFPSLabel.setTooltip(new Tooltip(UNLOCK_FPS_TT));
    unlockFPSChoice = new ToggleGroup();
    fpsLocked = new RadioButton(LOCK_UNLOCK[0] + "   ");
    fpsLocked.setToggleGroup(unlockFPSChoice);
    fpsUnlocked = new RadioButton(LOCK_UNLOCK[1]);
    fpsUnlocked.setToggleGroup(unlockFPSChoice);
    if (config.unlockFPS.get() == 0) {
        fpsLocked.setSelected(true);
    } else {
        fpsUnlocked.setSelected(true);
    }
    unlockFPSPane.getChildren().addAll(unlockFPSLabel, fpsLocked, fpsUnlocked);
    //
    //Bonfire FPSFix Keybind
    fpsFixKeyPane = new FlowPane();
    fpsFixKeyPane.getStyleClass().add("settings_pane");
    fpsFixKeyLabel = new Label(FPS_FIX_KEY_LABEL + "  ");
    fpsFixKeyLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    fpsFixKeyLabel.setTooltip(new Tooltip(FPS_FIX_TT));

    fpsFixKeyPicker = new ComboBox(FPS_FIX_KEYS_ARRAY_LIST);
    fpsFixKeyPicker.setTooltip(new Tooltip(FPS_FIX_TT));
    fpsFixKeyPane.getChildren().addAll(fpsFixKeyLabel, fpsFixKeyPicker);
    //
    fpsFixKey = getFPSFixKey();
    if (fpsFixKey != null) {
        fpsFixKeyPicker.setValue(FPS_FIX_KEYS[FPS_FIX_KEYS_HEX_ARRAY_LIST.indexOf("0x" + fpsFixKey)]);
    } else {
        fpsFixKeyPicker.setValue(FPS_FIX_KEYS[4]);
        fpsFixKeyPicker.setDisable(true);
    }
    //
    //FPS Limit
    fpsLimitPane = new FlowPane();
    fpsLimitPane.getStyleClass().add("settings_pane");
    fpsLimitLabel = new Label(FPS_LIMIT_LABEL + "         ");
    fpsLimitLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    fpsLimitLabel.setTooltip(new Tooltip(FPS_LIMIT_TT));
    fpsLimitField = new TextField("" + config.FPSlimit);
    fpsLimitField.getStyleClass().add("settings_small_text_field");
    fpsLimitPane.getChildren().addAll(fpsLimitLabel, fpsLimitField);
    //
    if (config.unlockFPS.get() == 0) {
        fpsLimitField.setDisable(true);
    }
    //
    //FPS Threshold (for automatic disabling of AA)
    fpsThresholdPane = new FlowPane();
    fpsThresholdPane.getStyleClass().add("settings_pane");
    fpsThresholdLabel = new Label(FPS_THRESHOLD_LABEL + " ");
    fpsThresholdLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    fpsThresholdLabel.setTooltip(new Tooltip(FPS_THRESHOLD_TT));
    fpsThresholdField = new TextField("" + config.FPSthreshold);
    fpsThresholdField.getStyleClass().add("settings_small_text_field");
    fpsThresholdPane.getChildren().addAll(fpsThresholdLabel, fpsThresholdField);
    //
    //
    //
    //TEXTURE FILTERING OPTIONS
    //
    //Texture Filtering Override
    texOverridePane = new FlowPane();
    texOverridePane.getStyleClass().add("settings_pane");
    texOverrideLabel = new Label(TEX_FILTERING_OVERRIDE_LABEL + "  ");
    texOverrideLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    texOverrideLabel.setTooltip(new Tooltip(TEX_FILT_OR_TT));
    texOverridePicker = new ComboBox(FXCollections.observableArrayList(FILTERINGOVERRIDES));
    for (int i = 0; i < FILTERING_OVERRIDE_OPTIONS.length; i++) {
        if (config.filteringOverride.get() == i) {
            texOverridePicker.setValue(FILTERINGOVERRIDES[i]);
        }
    }
    texOverridePane.getChildren().addAll(texOverrideLabel, texOverridePicker);

    primaryVBox.getChildren().addAll(titleBar, restoreDefaultsBar, spacerHBox, renderResPane, presentResPane,
            aaQualityPane, aaTypePane, ssaoStrengthPane, ssaoScalePane, ssaoTypePane, dofOverridePane,
            dofScalingPane, dofAddPane, fpsFixKeyPane, unlockFPSPane, fpsLimitPane, fpsThresholdPane,
            texOverridePane, bottomSpacerHBox);

    if (config.disableDOF) {
        dofScalingEnabled.setDisable(true);
        dofScalingDisabled.setDisable(true);
        dofAddPicker.setDisable(true);
        presentWidthField.setDisable(true);
        presentHeightField.setDisable(true);
        setWindowsPresentRes.setDisable(true);
        usePresentRes.setDisable(true);
        dontUsePresentRes.setDisable(true);
        dofScalingDisabled.setSelected(true);
        dofAddPicker.setValue(dofAddPicker.getItems().get(0));
        if (usePresentRes.isSelected()) {
            presentRes[0] = presentWidthField.getText();
            presentRes[1] = presentHeightField.getText();
        }
        presentWidthField.setText("0");
        presentHeightField.setText("0");
    }

    recheckTextInput(presentWidthField);
    recheckTextInput(presentHeightField);
    recheckTextInput(renderWidthField);
    recheckTextInput(renderHeightField);

    initializeEventHandlers();
    this.setContent(primaryPane);
}

From source file:dpfmanager.shell.interfaces.gui.component.dessign.DessignView.java

public void addConfigFile(String text, String description, boolean selected) {
    RadioButton radio = new RadioButton();
    radio.setId("radioConfig" + vBoxConfig.getChildren().size());
    radio.setText(text);/*from   w w w.  j a  v a2s .c  om*/
    radio.setToggleGroup(group);
    radio.setSelected(selected);
    if (description != null && !description.isEmpty()) {
        radio.setTooltip(new Tooltip(description));
    }
    radio.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            selectedButton = radio;
        }
    });
    vBoxConfig.getChildren().add(radio);
    if (selected) {
        selectedButton = radio;
    }
}

From source file:gov.va.isaac.gui.ConceptNode.java

private void updateGUI() {
    logger.debug("update gui - is concept null? {}", c_ == null);
    if (c_ == null) {
        //Keep the user entry, if it was invalid, so they can edit it.
        codeSetComboBoxConcept_ = new SimpleDisplayConcept(
                (cb_.getValue() != null ? cb_.getValue().getDescription() : ""), 0, true);
        cb_.setTooltip(null);/*from  w ww. ja v  a 2s .  c o  m*/
    } else {
        codeSetComboBoxConcept_ = new SimpleDisplayConcept(descriptionReader_.apply(c_), c_.getNid(), true);

        //In case the description is too long, also put it in a tooltip
        Tooltip t = new Tooltip(codeSetComboBoxConcept_.getDescription());
        cb_.setTooltip(t);
    }
    cb_.setValue(codeSetComboBoxConcept_);
}

From source file:dsfixgui.view.DSFHudPane.java

private void initializeEventHandlers() {

    applySettingsButton.setOnAction(e -> {
        ui.applyDSFConfig();/* w w w  .j  ava 2 s  .  c o m*/
    });

    restoreDefaultsButton.setOnAction(e -> {
        ContinueDialog cD = new ContinueDialog(300.0, 80.0, DIALOG_TITLE_RESET, DIALOG_MSG_RESTORE_SETTINGS,
                DIALOG_BUTTON_TEXTS[2], DIALOG_BUTTON_TEXTS[1]);

        if (cD.show()) {
            config.restoreDefaultHUDOptions();
            ui.refreshUI();
        }
    });

    hudModsPicker.setOnAction(e -> {
        if (hudModsPicker.getValue().equals(DISABLE_ENABLE[0])) {
            minimalHUDPicker.setDisable(true);
            hudScaleField.setDisable(true);
            topLeftHUDOpField.setDisable(true);
            bottomLeftHUDOpField.setDisable(true);
            bottomRightHUDOpField.setDisable(true);
            config.enableHudMod.set(0);
        } else {
            minimalHUDPicker.setDisable(false);
            hudScaleField.setDisable(false);
            topLeftHUDOpField.setDisable(false);
            bottomLeftHUDOpField.setDisable(false);
            bottomRightHUDOpField.setDisable(false);
            config.enableHudMod.set(1);
        }
    });

    minimalHUDPicker.setOnAction(e -> {
        if (minimalHUDPicker.getValue().equals(DISABLE_ENABLE[0])) {
            config.enableMinimalHud.set(0);
        } else {
            config.enableMinimalHud.set(1);
        }
    });

    hudScaleField.textProperty().addListener(new ChangeListener<String>() {
        @Override
        public void changed(ObservableValue<? extends String> observable, String oldText, String newText) {
            try {
                if (!NumberUtils.isParsable(newText) || Double.parseDouble(newText) < 0.0
                        || Double.parseDouble(newText) > 1.0) {
                    hudScaleField.pseudoClassStateChanged(INVALID_INPUT, true);
                    hudScaleField.setTooltip(new Tooltip(INVALID_DOUBLE_0_1));
                } else {
                    hudScaleField.pseudoClassStateChanged(INVALID_INPUT, false);
                    hudScaleField.setTooltip(new Tooltip(""));
                    config.hudScaleFactor.replace(0, config.hudScaleFactor.length(),
                            Double.parseDouble(decimalFormat.format(Double.parseDouble(newText))) + "");
                }
            } catch (NumberFormatException nFE) {
                ui.printConsole(INPUT_TOO_LARGE);
                hudScaleField.setText("");
            }
        }
    });

    topLeftHUDOpField.textProperty().addListener(new ChangeListener<String>() {
        @Override
        public void changed(ObservableValue<? extends String> observable, String oldText, String newText) {
            try {
                if (!NumberUtils.isParsable(newText) || Double.parseDouble(newText) < 0.0
                        || Double.parseDouble(newText) > 1.0) {
                    topLeftHUDOpField.pseudoClassStateChanged(INVALID_INPUT, true);
                    topLeftHUDOpField.setTooltip(new Tooltip(INVALID_DOUBLE_0_1));
                } else {
                    topLeftHUDOpField.pseudoClassStateChanged(INVALID_INPUT, false);
                    topLeftHUDOpField.setTooltip(new Tooltip(""));
                    config.hudTopLeftOpacity.replace(0, config.hudTopLeftOpacity.length(),
                            decimalFormat.format(Double.parseDouble(newText)) + "f");
                }
            } catch (NumberFormatException nFE) {
                ui.printConsole(INPUT_TOO_LARGE);
                topLeftHUDOpField.setText("");
            }
        }
    });

    bottomLeftHUDOpField.textProperty().addListener(new ChangeListener<String>() {
        @Override
        public void changed(ObservableValue<? extends String> observable, String oldText, String newText) {
            try {
                if (!NumberUtils.isParsable(newText) || Double.parseDouble(newText) < 0.0
                        || Double.parseDouble(newText) > 1.0) {
                    bottomLeftHUDOpField.pseudoClassStateChanged(INVALID_INPUT, true);
                    bottomLeftHUDOpField.setTooltip(new Tooltip(INVALID_DOUBLE_0_1));
                } else {
                    bottomLeftHUDOpField.pseudoClassStateChanged(INVALID_INPUT, false);
                    bottomLeftHUDOpField.setTooltip(new Tooltip(""));
                    config.hudBottomLeftOpacity.replace(0, config.hudBottomLeftOpacity.length(),
                            decimalFormat.format(Double.parseDouble(newText)) + "f");
                }
            } catch (NumberFormatException nFE) {
                ui.printConsole(INPUT_TOO_LARGE);
                bottomLeftHUDOpField.setText("");
            }
        }
    });

    bottomRightHUDOpField.textProperty().addListener(new ChangeListener<String>() {
        @Override
        public void changed(ObservableValue<? extends String> observable, String oldText, String newText) {
            try {
                if (!NumberUtils.isParsable(newText) || Double.parseDouble(newText) < 0.0
                        || Double.parseDouble(newText) > 1.0) {
                    bottomRightHUDOpField.pseudoClassStateChanged(INVALID_INPUT, true);
                    bottomRightHUDOpField.setTooltip(new Tooltip(INVALID_DOUBLE_0_1));
                } else {
                    bottomRightHUDOpField.pseudoClassStateChanged(INVALID_INPUT, false);
                    bottomRightHUDOpField.setTooltip(new Tooltip(""));
                    config.hudBottomRightOpacity.replace(0, config.hudBottomRightOpacity.length(),
                            decimalFormat.format(Double.parseDouble(newText)) + "f");
                }
            } catch (NumberFormatException nFE) {
                ui.printConsole(INPUT_TOO_LARGE);
                bottomRightHUDOpField.setText("");
            }
        }
    });
}

From source file:gov.va.isaac.gui.preferences.plugins.ViewCoordinatePreferencesPluginViewController.java

private void initializeDatePicker() {
    datePicker.valueProperty().addListener((observable, oldValue, newValue) -> {
        if (dateSelectionMethodComboBox.getSelectionModel().getSelectedItem() == DateSelectionMethod.SPECIFY) {
            setCurrentTimePropertyFromDatePicker();
        }/* www .j  a  v  a 2 s . c o m*/
    });
    //      datePicker.valueProperty().addListener((observable, oldValue, newValue) -> {
    //         log.debug("datePicker value changed from {} to {} while DateSelectionMethod={}", oldValue, newValue, dateSelectionMethodComboBox.getSelectionModel().getSelectedItem());
    //      });
    //      datePicker.setOnAction((event) -> {
    //         log.debug("DatePicker activated with value=" + datePicker.getValue() + ", selectionMode=" + dateSelectionMethodComboBox.getSelectionModel().getSelectedItem() + " and current time=" + currentTimeProperty.get());
    //      });
    datePicker.setTooltip(new Tooltip(
            "Enter valid date or click to select date from calendar representing\nan historical snapshot version of the database"));
}

From source file:com.esri.geoevent.test.performance.ui.FixtureController.java

private void setEditNameState(boolean newState) {
    if (newState != isEditingName) {
        isEditingName = newState;//from ww  w  . j  a  v a2  s.  c  om
        if (isEditingName) {
            editNameBtn.setTooltip(new Tooltip(UIMessages.getMessage("UI_FIXTURE_SAVE_NAME_DESC")));
            editNameBtn.setGraphic(
                    new ImageView(new Image(FixtureController.class.getResourceAsStream(SAVE_IMAGE_SOURCE))));
            nameField.setEditable(true);
        } else {
            editNameBtn.setTooltip(new Tooltip(UIMessages.getMessage("UI_FIXTURE_EDIT_NAME_DESC")));
            editNameBtn.setGraphic(
                    new ImageView(new Image(FixtureController.class.getResourceAsStream(EDIT_IMAGE_SOURCE))));
            nameField.setEditable(false);
        }
    }
}

From source file:de.hs.mannheim.modUro.controller.diagram.fx.ChartCanvas.java

/**
 * Sets the tooltip text, with the (x, y) location being used for the
 * anchor.  If the text is {@code null}, no tooltip will be displayed.
 * This method is intended for calling by the {@link TooltipHandlerFX}
 * class, you won't normally call it directly.
 * //from   www  . j  ava2 s.c  om
 * @param text  the text ({@code null} permitted).
 * @param x  the x-coordinate of the mouse pointer.
 * @param y  the y-coordinate of the mouse pointer.
 */
public void setTooltip(String text, double x, double y) {
    if (text != null) {
        if (this.tooltip == null) {
            this.tooltip = new Tooltip(text);
            Tooltip.install(this, this.tooltip);
        } else {
            this.tooltip.setText(text);
            this.tooltip.setAnchorX(x);
            this.tooltip.setAnchorY(y);
        }
    } else {
        Tooltip.uninstall(this, this.tooltip);
        this.tooltip = null;
    }
}

From source file:io.bitsquare.gui.components.paymentmethods.SepaForm.java

@Override
public void addFormForDisplayAccount() {
    gridRowFrom = gridRow;//from w ww  .j a  v  a 2  s.  c om
    addLabelTextField(gridPane, gridRow, "Account name:", sepaAccount.getAccountName(),
            Layout.FIRST_ROW_AND_GROUP_DISTANCE);
    addLabelTextField(gridPane, ++gridRow, "Payment method:",
            BSResources.get(sepaAccount.getPaymentMethod().getId()));
    addLabelTextField(gridPane, ++gridRow, "Account holder name:", sepaAccount.getHolderName());
    addLabelTextField(gridPane, ++gridRow, "IBAN:", sepaAccount.getIban()).second.setMouseTransparent(false);
    addLabelTextField(gridPane, ++gridRow, "BIC:", sepaAccount.getBic()).second.setMouseTransparent(false);
    addLabelTextField(gridPane, ++gridRow, "Country of Bank:",
            sepaAccount.getCountry() != null ? sepaAccount.getCountry().name : "");
    addLabelTextField(gridPane, ++gridRow, "Currency:", sepaAccount.getSingleTradeCurrency().getNameAndCode());
    String countries;
    Tooltip tooltip = null;
    if (CountryUtil.containsAllSepaEuroCountries(sepaAccount.getAcceptedCountryCodes())) {
        countries = "All Euro countries";
    } else {
        countries = CountryUtil.getCodesString(sepaAccount.getAcceptedCountryCodes());
        tooltip = new Tooltip(CountryUtil.getNamesByCodesString(sepaAccount.getAcceptedCountryCodes()));
    }
    TextField acceptedCountries = addLabelTextField(gridPane, ++gridRow, "Accepted countries:",
            countries).second;
    if (tooltip != null) {
        acceptedCountries.setMouseTransparent(false);
        acceptedCountries.setTooltip(tooltip);
    }
    addAllowedPeriod();
}

From source file:gov.va.isaac.gui.preferences.plugins.ViewCoordinatePreferencesPluginViewController.java

private void initializeDateSelectionMethodComboBox() {
    dateSelectionMethodComboBox.setCellFactory((param) -> {
        final ListCell<DateSelectionMethod> cell = new ListCell<DateSelectionMethod>() {
            @Override/*  www . j  a v  a2 s  .co  m*/
            protected void updateItem(DateSelectionMethod selectionMethod, boolean emptyRow) {
                super.updateItem(selectionMethod, emptyRow);
                if (selectionMethod == null) {
                    setText(null);
                } else {
                    setText(selectionMethod.getDisplayName());
                }
            }
        };
        return cell;
    });

    dateSelectionMethodComboBox.setButtonCell(new ListCell<DateSelectionMethod>() {
        @Override
        protected void updateItem(DateSelectionMethod selectionMethod, boolean emptyRow) {
            super.updateItem(selectionMethod, emptyRow);
            if (emptyRow) {
                setText("");
            } else {
                switch (selectionMethod) {
                case SPECIFY:
                    runLaterIfNotFXApplicationThread(() -> datePicker.setVisible(true));
                    setText(selectionMethod.getDisplayName());
                    //                  log.debug("dateSelectorComboBox button cell set to " + getText() + ", datePicker has value=" + datePicker.getValue() + ", selectionMode=" + dateSelectionMethodComboBox.getSelectionModel().getSelectedItem() + " and current time=" + currentTimeProperty.get());

                    // This should change if default time ever changes
                    runLaterIfNotFXApplicationThread(
                            () -> dateSelectionMethodComboBox.setTooltip(new Tooltip(getText()
                                    + " is selected.  Use date picker control to specify a date\nin the past representing an historical snapshot version of the database\nor click and select "
                                    + DateSelectionMethod.USE_LATEST.getDisplayName()
                                    + " to always use latest.\nDefault is "
                                    + DateSelectionMethod.USE_LATEST.getDisplayName() + ".")));
                    break;
                case USE_LATEST:
                    runLaterIfNotFXApplicationThread(() -> datePicker.setVisible(false));
                    setText(selectionMethod.getDisplayName());
                    //                  log.debug("dateSelectorComboBox button cell set to " + getText() + ", datePicker has value=" + datePicker.getValue() + ", selectionMode=" + dateSelectionMethodComboBox.getSelectionModel().getSelectedItem() + " and current time=" + currentTimeProperty.get());

                    runLaterIfNotFXApplicationThread(
                            () -> dateSelectionMethodComboBox.setTooltip(new Tooltip(getText()
                                    + " is selected, so latest (most recent) date will always be used.\nClick and select "
                                    + DateSelectionMethod.SPECIFY.getDisplayName()
                                    + " to use date picker control to specify a date\nin the past representing an historical snapshot version of the database.\nDefault is "
                                    + DateSelectionMethod.USE_LATEST.getDisplayName() + ".")));
                    break;
                default:
                    // Should never happen
                    throw new IllegalArgumentException(
                            "Failed setting dateSelectorComboBox ButtonCell. Unsupported "
                                    + selectionMethod.getClass().getName() + " value " + selectionMethod.name()
                                    + ".  Must be " + DateSelectionMethod.SPECIFY.name() + " or "
                                    + DateSelectionMethod.USE_LATEST.name() + ".");
                }
            }
        }
    });
    dateSelectionMethodComboBox.setOnAction((event) -> {
        //         log.debug("dateSelectorComboBox activated. datePicker has value=" + datePicker.getValue() + ", selectionMode=" + dateSelectionMethodComboBox.getSelectionModel().getSelectedItem() + " and current time=" + currentTimeProperty.get());

        switch (dateSelectionMethodComboBox.getSelectionModel().getSelectedItem()) {
        case SPECIFY:
            if (currentTimeProperty.get() == Long.MAX_VALUE) {
                setCurrentTimePropertyFromDatePicker();
            } else {
                setDatePickerFromCurrentTimeProperty();
            }
            break;
        case USE_LATEST:
            currentTimeProperty.set(Long.MAX_VALUE);
            break;
        default:
            // Should never happen
            throw new IllegalArgumentException("Unsupported "
                    + dateSelectionMethodComboBox.getSelectionModel().getSelectedItem().getClass().getName()
                    + " value " + dateSelectionMethodComboBox.getSelectionModel().getSelectedItem().name()
                    + ".  Must be " + DateSelectionMethod.SPECIFY.name() + " or "
                    + DateSelectionMethod.USE_LATEST.name() + ".");
        }
    });
    dateSelectionMethodComboBox.getItems().addAll(DateSelectionMethod.values());
    dateSelectionMethodComboBox.getSelectionModel().select(DateSelectionMethod.USE_LATEST);
}