Example usage for javafx.scene.layout ColumnConstraints ColumnConstraints

List of usage examples for javafx.scene.layout ColumnConstraints ColumnConstraints

Introduction

In this page you can find the example usage for javafx.scene.layout ColumnConstraints ColumnConstraints.

Prototype

public ColumnConstraints() 

Source Link

Document

Create a column constraint object with no properties set.

Usage

From source file:dsfixgui.view.DSPWPane.java

private void initialize() {

    //Basic layout
    this.setFitToWidth(true);

    spacerColumn = new ColumnConstraints();
    spacerColumn.setFillWidth(true);//from   w  ww.j  a v a 2 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 w  w  w .j  a v  a  2  s  .c  o  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(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:de.pixida.logtest.designer.testrun.TestRunEditor.java

public TitledPane createPanelForConfiguration() {
    final GridPane gp = new GridPane();
    gp.setAlignment(Pos.BASELINE_LEFT);//from   w  w w  . j a  v a  2  s . c o m
    final double hGapOfGridPane = 10d;
    gp.setHgap(hGapOfGridPane);
    final double vGapOfGridPane = 15d;
    gp.setVgap(vGapOfGridPane);
    final double paddingOfGridPane = 5d;
    gp.setPadding(new Insets(paddingOfGridPane));
    final ColumnConstraints column1 = new ColumnConstraints();
    final ColumnConstraints column2 = new ColumnConstraints();
    column1.setHgrow(Priority.NEVER);
    column2.setHgrow(Priority.SOMETIMES);
    gp.getColumnConstraints().addAll(column1, column2);
    this.insertConfigItemsIntoGrid(gp, this.createConfigurationForm());
    final TitledPane configPane = new TitledPane("Edit Configuration", gp);
    configPane.setGraphic(Icons.getIconGraphics("pencil"));
    configPane.setCollapsible(false);
    return configPane;
}

From source file:io.bitsquare.gui.main.overlays.Overlay.java

protected void createGridPane() {
    gridPane = new GridPane();
    gridPane.setHgap(5);//from   w  w  w .  j  ava2 s  .  c  om
    gridPane.setVgap(5);
    gridPane.setPadding(new Insets(30, 30, 30, 30));
    gridPane.setPrefWidth(width);

    ColumnConstraints columnConstraints1 = new ColumnConstraints();
    columnConstraints1.setHalignment(HPos.RIGHT);
    columnConstraints1.setHgrow(Priority.SOMETIMES);
    ColumnConstraints columnConstraints2 = new ColumnConstraints();
    columnConstraints2.setHgrow(Priority.ALWAYS);
    gridPane.getColumnConstraints().addAll(columnConstraints1, columnConstraints2);
}

From source file:de.pixida.logtest.designer.automaton.AutomatonEdge.java

private void createTimeIntervalInput(final ConfigFrame cf, final TimeIntervalForEditing timeInterval) {
    final GridPane gp = new GridPane();
    final ColumnConstraints column1 = new ColumnConstraints();
    final ColumnConstraints column2 = new ColumnConstraints();
    final ColumnConstraints column3 = new ColumnConstraints();
    column3.setHgrow(Priority.SOMETIMES);
    final ColumnConstraints column4 = new ColumnConstraints();
    gp.getColumnConstraints().addAll(column1, column2, column3, column4);
    this.createDurationInput(gp, true, timeInterval);
    this.createDurationInput(gp, false, timeInterval);
    cf.addOption(timeInterval.getName(), gp);
}

From source file:gov.va.isaac.gui.refexViews.refexEdit.AddSememePopup.java

private AddSememePopup() {
    super();//from  w  w  w .  jav  a2  s . c  om
    BorderPane root = new BorderPane();

    VBox topItems = new VBox();
    topItems.setFillWidth(true);

    title_ = new Label("Create new sememe instance");
    title_.getStyleClass().add("titleLabel");
    title_.setAlignment(Pos.CENTER);
    title_.prefWidthProperty().bind(topItems.widthProperty());
    topItems.getChildren().add(title_);
    VBox.setMargin(title_, new Insets(10, 10, 10, 10));

    gp_ = new GridPane();
    gp_.setHgap(10.0);
    gp_.setVgap(10.0);
    VBox.setMargin(gp_, new Insets(5, 5, 5, 5));
    topItems.getChildren().add(gp_);

    Label referencedComponent = new Label("Referenced Component");
    referencedComponent.getStyleClass().add("boldLabel");
    gp_.add(referencedComponent, 0, 0);

    unselectableComponentLabel_ = new CopyableLabel();
    unselectableComponentLabel_.setWrapText(true);
    AppContext.getService(DragRegistry.class).setupDragOnly(unselectableComponentLabel_, () -> {
        if (editRefex_ == null) {
            return focusNid_ + "";
        } else {
            return Get.identifierService().getConceptNid(editRefex_.getSememe().getAssemblageSequence()) + "";
        }
    });
    //delay adding till we know which row

    Label assemblageConceptLabel = new Label("Assemblage Concept");
    assemblageConceptLabel.getStyleClass().add("boldLabel");
    gp_.add(assemblageConceptLabel, 0, 1);

    selectableConcept_ = new ConceptNode(null, true, refexDropDownOptions, null);

    selectableConcept_.getConceptProperty().addListener(new ChangeListener<ConceptSnapshot>() {
        @Override
        public void changed(ObservableValue<? extends ConceptSnapshot> observable, ConceptSnapshot oldValue,
                ConceptSnapshot newValue) {
            if (createRefexFocus_ != null && createRefexFocus_ == ViewFocus.REFERENCED_COMPONENT) {
                if (selectableConcept_.isValid().get()) {
                    //Its a valid concept, but is it a valid assemblage concept?
                    try {
                        assemblageInfo_ = DynamicSememeUsageDescription
                                .read(selectableConcept_.getConceptNoWait().getNid());
                        assemblageIsValid_.set(true);
                        if (assemblageInfo_.getReferencedComponentTypeRestriction() != null) {
                            String result = DynamicSememeValidatorType.COMPONENT_TYPE
                                    .passesValidatorStringReturn(new DynamicSememeNid(focusNid_),
                                            new DynamicSememeString(assemblageInfo_
                                                    .getReferencedComponentTypeRestriction().name()),
                                            null, null); //don't need coordinates for component type validator
                            if (result.length() > 0) {
                                selectableConcept_.isValid()
                                        .setInvalid("The selected assemblage requires the component type to be "
                                                + assemblageInfo_.getReferencedComponentTypeRestriction()
                                                        .toString()
                                                + ", which doesn't match the referenced component.");
                                logger_.info("The selected assemblage requires the component type to be "
                                        + assemblageInfo_.getReferencedComponentTypeRestriction().toString()
                                        + ", which doesn't match the referenced component.");
                                assemblageIsValid_.set(false);
                            }
                        }
                    } catch (Exception e) {
                        selectableConcept_.isValid().setInvalid(
                                "The selected concept is not properly constructed for use as an Assemblage concept");
                        logger_.info("Concept not a valid concept for a sememe assemblage", e);
                        assemblageIsValid_.set(false);
                    }
                } else {
                    assemblageInfo_ = null;
                    assemblageIsValid_.set(false);
                }
                buildDataFields(assemblageIsValid_.get(), null);
            }
        }
    });

    selectableComponent_ = new TextField();

    selectableComponentNodeValid_ = new ValidBooleanBinding() {
        {
            setComputeOnInvalidate(true);
            bind(selectableComponent_.textProperty());
            invalidate();
        }

        @Override
        protected boolean computeValue() {
            if (createRefexFocus_ != null && createRefexFocus_ == ViewFocus.ASSEMBLAGE
                    && !conceptNodeIsConceptType_) {
                //If the assembly nid was what was set - the component node may vary - validate if we are using the text field 
                String value = selectableComponent_.getText().trim();
                if (value.length() > 0) {
                    try {
                        if (Utility.isUUID(value)) {
                            String result = DynamicSememeValidatorType.COMPONENT_TYPE
                                    .passesValidatorStringReturn(new DynamicSememeUUID(UUID.fromString(value)),
                                            new DynamicSememeString(assemblageInfo_
                                                    .getReferencedComponentTypeRestriction().name()),
                                            null, null); //component type validator doesn't use vc, so null is ok
                            if (result.length() > 0) {
                                setInvalidReason(result);
                                logger_.info(result);
                                return false;
                            }
                        } else if (Utility.isInt(value)) {
                            String result = DynamicSememeValidatorType.COMPONENT_TYPE
                                    .passesValidatorStringReturn(new DynamicSememeNid(Integer.parseInt(value)),
                                            new DynamicSememeString(assemblageInfo_
                                                    .getReferencedComponentTypeRestriction().name()),
                                            null, null); //component type validator doesn't use vc, so null is ok
                            if (result.length() > 0) {
                                setInvalidReason(result);
                                logger_.info(result);
                                return false;
                            }
                        } else {
                            setInvalidReason(
                                    "Value cannot be parsed as a component identifier.  Must be a UUID or a valid NID");
                            return false;
                        }
                    } catch (Exception e) {
                        logger_.error("Error checking component type validation", e);
                        setInvalidReason("Unexpected error validating entry");
                        return false;
                    }
                } else {
                    setInvalidReason("Component identifier is required");
                    return false;
                }
            }
            clearInvalidReason();
            return true;
        }
    };

    selectableComponentNode_ = ErrorMarkerUtils.setupErrorMarker(selectableComponent_, null,
            selectableComponentNodeValid_);

    //delay adding concept / component till we know if / where
    ColumnConstraints cc = new ColumnConstraints();
    cc.setHgrow(Priority.NEVER);
    cc.setMinWidth(FxUtils.calculateNecessaryWidthOfBoldLabel(referencedComponent));
    gp_.getColumnConstraints().add(cc);

    cc = new ColumnConstraints();
    cc.setHgrow(Priority.ALWAYS);
    gp_.getColumnConstraints().add(cc);

    Label l = new Label("Data Fields");
    l.getStyleClass().add("boldLabel");
    VBox.setMargin(l, new Insets(5, 5, 5, 5));
    topItems.getChildren().add(l);

    root.setTop(topItems);

    sp_ = new ScrollPane();
    sp_.visibleProperty().bind(assemblageIsValid_);
    sp_.setFitToHeight(true);
    sp_.setFitToWidth(true);
    root.setCenter(sp_);

    allValid_ = new UpdateableBooleanBinding() {
        {
            addBinding(assemblageIsValid_, selectableConcept_.isValid(), selectableComponentNodeValid_);
        }

        @Override
        protected boolean computeValue() {
            if (assemblageIsValid_.get() && (conceptNodeIsConceptType_ ? selectableConcept_.isValid().get()
                    : selectableComponentNodeValid_.get())) {
                boolean allDataValid = true;
                for (ReadOnlyStringProperty ssp : currentDataFieldWarnings_) {
                    if (ssp.get().length() > 0) {
                        allDataValid = false;
                        break;
                    }
                }
                if (allDataValid) {
                    clearInvalidReason();
                    return true;
                }
            }
            setInvalidReason("All errors must be corrected before save is allowed");
            return false;
        }
    };

    GridPane bottomRow = new GridPane();
    //spacer col
    bottomRow.add(new Region(), 0, 0);

    Button cancelButton = new Button("Cancel");
    cancelButton.setOnAction((action) -> {
        close();
    });
    GridPane.setMargin(cancelButton, new Insets(5, 20, 5, 0));
    GridPane.setHalignment(cancelButton, HPos.RIGHT);
    bottomRow.add(cancelButton, 1, 0);

    Button saveButton = new Button("Save");
    saveButton.disableProperty().bind(allValid_.not());
    saveButton.setOnAction((action) -> {
        doSave();
    });
    Node wrappedSave = ErrorMarkerUtils.setupDisabledInfoMarker(saveButton, allValid_.getReasonWhyInvalid());
    GridPane.setMargin(wrappedSave, new Insets(5, 0, 5, 20));
    bottomRow.add(wrappedSave, 2, 0);

    //spacer col
    bottomRow.add(new Region(), 3, 0);

    cc = new ColumnConstraints();
    cc.setHgrow(Priority.SOMETIMES);
    cc.setFillWidth(true);
    bottomRow.getColumnConstraints().add(cc);
    cc = new ColumnConstraints();
    cc.setHgrow(Priority.NEVER);
    bottomRow.getColumnConstraints().add(cc);
    cc = new ColumnConstraints();
    cc.setHgrow(Priority.NEVER);
    bottomRow.getColumnConstraints().add(cc);
    cc = new ColumnConstraints();
    cc.setHgrow(Priority.SOMETIMES);
    cc.setFillWidth(true);
    bottomRow.getColumnConstraints().add(cc);
    root.setBottom(bottomRow);

    Scene scene = new Scene(root);
    scene.getStylesheets().add(AddSememePopup.class.getResource("/isaac-shared-styles.css").toString());
    setScene(scene);
}

From source file:gov.va.isaac.gui.refexViews.refexEdit.AddRefexPopup.java

private AddRefexPopup() {
    super();/*w  ww  .  j a v  a 2s  .  c o  m*/
    BorderPane root = new BorderPane();

    VBox topItems = new VBox();
    topItems.setFillWidth(true);

    title_ = new Label("Create new sememe instance");
    title_.getStyleClass().add("titleLabel");
    title_.setAlignment(Pos.CENTER);
    title_.prefWidthProperty().bind(topItems.widthProperty());
    topItems.getChildren().add(title_);
    VBox.setMargin(title_, new Insets(10, 10, 10, 10));

    gp_ = new GridPane();
    gp_.setHgap(10.0);
    gp_.setVgap(10.0);
    VBox.setMargin(gp_, new Insets(5, 5, 5, 5));
    topItems.getChildren().add(gp_);

    Label referencedComponent = new Label("Referenced Component");
    referencedComponent.getStyleClass().add("boldLabel");
    gp_.add(referencedComponent, 0, 0);

    unselectableComponentLabel_ = new CopyableLabel();
    unselectableComponentLabel_.setWrapText(true);
    AppContext.getService(DragRegistry.class).setupDragOnly(unselectableComponentLabel_, () -> {
        if (editRefex_ == null) {
            if (createRefexFocus_.getComponentNid() != null) {
                return createRefexFocus_.getComponentNid() + "";
            } else {
                return createRefexFocus_.getAssemblyNid() + "";
            }
        } else {
            return editRefex_.getRefex().getAssemblageNid() + "";
        }
    });
    //delay adding till we know which row

    Label assemblageConceptLabel = new Label("Assemblage Concept");
    assemblageConceptLabel.getStyleClass().add("boldLabel");
    gp_.add(assemblageConceptLabel, 0, 1);

    selectableConcept_ = new ConceptNode(null, true, refexDropDownOptions, null);

    selectableConcept_.getConceptProperty().addListener(new ChangeListener<ConceptVersionBI>() {
        @Override
        public void changed(ObservableValue<? extends ConceptVersionBI> observable, ConceptVersionBI oldValue,
                ConceptVersionBI newValue) {
            if (createRefexFocus_ != null && createRefexFocus_.getComponentNid() != null) {
                if (selectableConcept_.isValid().get()) {
                    //Its a valid concept, but is it a valid assemblage concept?
                    try {
                        assemblageInfo_ = RefexDynamicUsageDescriptionBuilder
                                .readRefexDynamicUsageDescriptionConcept(
                                        selectableConcept_.getConceptNoWait().getNid());
                        assemblageIsValid_.set(true);
                        if (assemblageInfo_.getReferencedComponentTypeRestriction() != null) {
                            String result = RefexDynamicValidatorType.COMPONENT_TYPE
                                    .passesValidatorStringReturn(
                                            new RefexDynamicNid(createRefexFocus_.getComponentNid()),
                                            new RefexDynamicString(assemblageInfo_
                                                    .getReferencedComponentTypeRestriction().name()),
                                            null); //component type validator doesn't use vc, so null is ok
                            if (result.length() > 0) {
                                selectableConcept_.isValid()
                                        .setInvalid("The selected assemblage requires the component type to be "
                                                + assemblageInfo_.getReferencedComponentTypeRestriction()
                                                        .toString()
                                                + ", which doesn't match the referenced component.");
                                logger_.info("The selected assemblage requires the component type to be "
                                        + assemblageInfo_.getReferencedComponentTypeRestriction().toString()
                                        + ", which doesn't match the referenced component.");
                                assemblageIsValid_.set(false);
                            }
                        }
                    } catch (Exception e) {
                        selectableConcept_.isValid().setInvalid(
                                "The selected concept is not properly constructed for use as an Assemblage concept");
                        logger_.info("Concept not a valid concept for a sememe assemblage", e);
                        assemblageIsValid_.set(false);
                    }
                } else {
                    assemblageInfo_ = null;
                    assemblageIsValid_.set(false);
                }
                buildDataFields(assemblageIsValid_.get(), null);
            }
        }
    });

    selectableComponent_ = new TextField();

    selectableComponentNodeValid_ = new ValidBooleanBinding() {
        {
            setComputeOnInvalidate(true);
            bind(selectableComponent_.textProperty());
            invalidate();
        }

        @Override
        protected boolean computeValue() {
            if (createRefexFocus_ != null && createRefexFocus_.getAssemblyNid() != null
                    && !conceptNodeIsConceptType_) {
                //If the assembly nid was what was set - the component node may vary - validate if we are using the text field 
                String value = selectableComponent_.getText().trim();
                if (value.length() > 0) {
                    try {
                        if (Utility.isUUID(value)) {
                            String result = RefexDynamicValidatorType.COMPONENT_TYPE
                                    .passesValidatorStringReturn(new RefexDynamicUUID(UUID.fromString(value)),
                                            new RefexDynamicString(assemblageInfo_
                                                    .getReferencedComponentTypeRestriction().name()),
                                            null); //component type validator doesn't use vc, so null is ok
                            if (result.length() > 0) {
                                setInvalidReason(result);
                                logger_.info(result);
                                return false;
                            }
                        } else if (Utility.isInt(value)) {
                            String result = RefexDynamicValidatorType.COMPONENT_TYPE
                                    .passesValidatorStringReturn(new RefexDynamicNid(Integer.parseInt(value)),
                                            new RefexDynamicString(assemblageInfo_
                                                    .getReferencedComponentTypeRestriction().name()),
                                            null); //component type validator doesn't use vc, so null is ok
                            if (result.length() > 0) {
                                setInvalidReason(result);
                                logger_.info(result);
                                return false;
                            }
                        } else {
                            setInvalidReason(
                                    "Value cannot be parsed as a component identifier.  Must be a UUID or a valid NID");
                            return false;
                        }
                    } catch (Exception e) {
                        logger_.error("Error checking component type validation", e);
                        setInvalidReason("Unexpected error validating entry");
                        return false;
                    }
                } else {
                    setInvalidReason("Component identifier is required");
                    return false;
                }
            }
            clearInvalidReason();
            return true;
        }
    };

    selectableComponentNode_ = ErrorMarkerUtils.setupErrorMarker(selectableComponent_, null,
            selectableComponentNodeValid_);

    //delay adding concept / component till we know if / where
    ColumnConstraints cc = new ColumnConstraints();
    cc.setHgrow(Priority.NEVER);
    cc.setMinWidth(FxUtils.calculateNecessaryWidthOfBoldLabel(referencedComponent));
    gp_.getColumnConstraints().add(cc);

    cc = new ColumnConstraints();
    cc.setHgrow(Priority.ALWAYS);
    gp_.getColumnConstraints().add(cc);

    Label l = new Label("Data Fields");
    l.getStyleClass().add("boldLabel");
    VBox.setMargin(l, new Insets(5, 5, 5, 5));
    topItems.getChildren().add(l);

    root.setTop(topItems);

    sp_ = new ScrollPane();
    sp_.visibleProperty().bind(assemblageIsValid_);
    sp_.setFitToHeight(true);
    sp_.setFitToWidth(true);
    root.setCenter(sp_);

    allValid_ = new UpdateableBooleanBinding() {
        {
            addBinding(assemblageIsValid_, selectableConcept_.isValid(), selectableComponentNodeValid_);
        }

        @Override
        protected boolean computeValue() {
            if (assemblageIsValid_.get() && (conceptNodeIsConceptType_ ? selectableConcept_.isValid().get()
                    : selectableComponentNodeValid_.get())) {
                boolean allDataValid = true;
                for (ReadOnlyStringProperty ssp : currentDataFieldWarnings_) {
                    if (ssp.get().length() > 0) {
                        allDataValid = false;
                        break;
                    }
                }
                if (allDataValid) {
                    clearInvalidReason();
                    return true;
                }
            }
            setInvalidReason("All errors must be corrected before save is allowed");
            return false;
        }
    };

    GridPane bottomRow = new GridPane();
    //spacer col
    bottomRow.add(new Region(), 0, 0);

    Button cancelButton = new Button("Cancel");
    cancelButton.setOnAction((action) -> {
        close();
    });
    GridPane.setMargin(cancelButton, new Insets(5, 20, 5, 0));
    GridPane.setHalignment(cancelButton, HPos.RIGHT);
    bottomRow.add(cancelButton, 1, 0);

    Button saveButton = new Button("Save");
    saveButton.disableProperty().bind(allValid_.not());
    saveButton.setOnAction((action) -> {
        doSave();
    });
    Node wrappedSave = ErrorMarkerUtils.setupDisabledInfoMarker(saveButton, allValid_.getReasonWhyInvalid());
    GridPane.setMargin(wrappedSave, new Insets(5, 0, 5, 20));
    bottomRow.add(wrappedSave, 2, 0);

    //spacer col
    bottomRow.add(new Region(), 3, 0);

    cc = new ColumnConstraints();
    cc.setHgrow(Priority.SOMETIMES);
    cc.setFillWidth(true);
    bottomRow.getColumnConstraints().add(cc);
    cc = new ColumnConstraints();
    cc.setHgrow(Priority.NEVER);
    bottomRow.getColumnConstraints().add(cc);
    cc = new ColumnConstraints();
    cc.setHgrow(Priority.NEVER);
    bottomRow.getColumnConstraints().add(cc);
    cc = new ColumnConstraints();
    cc.setHgrow(Priority.SOMETIMES);
    cc.setFillWidth(true);
    bottomRow.getColumnConstraints().add(cc);
    root.setBottom(bottomRow);

    Scene scene = new Scene(root);
    scene.getStylesheets().add(AddRefexPopup.class.getResource("/isaac-shared-styles.css").toString());
    setScene(scene);
}

From source file:gov.va.isaac.gui.refexViews.refexEdit.AddSememePopup.java

private void buildDataFields(boolean assemblageValid, DynamicSememeDataBI[] currentValues) {
    if (assemblageValid) {
        for (ReadOnlyStringProperty ssp : currentDataFieldWarnings_) {
            allValid_.removeBinding(ssp);
        }/*from  w w  w  . ja va 2  s  .  c  o  m*/
        currentDataFieldWarnings_.clear();
        for (SememeGUIDataTypeNodeDetails nd : currentDataFields_) {
            nd.cleanupListener();
        }
        currentDataFields_.clear();

        GridPane gp = new GridPane();
        gp.setHgap(10.0);
        gp.setVgap(10.0);
        gp.setStyle("-fx-padding: 5;");
        int row = 0;
        boolean extraInfoColumnIsRequired = false;
        for (DynamicSememeColumnInfo ci : assemblageInfo_.getColumnInfo()) {
            SimpleStringProperty valueIsRequired = (ci.isColumnRequired() ? new SimpleStringProperty("")
                    : null);
            SimpleStringProperty defaultValueTooltip = ((ci.getDefaultColumnValue() == null
                    && ci.getValidator() == null) ? null : new SimpleStringProperty());
            ComboBox<DynamicSememeDataType> polymorphicType = null;

            Label l = new Label(ci.getColumnName());
            l.getStyleClass().add("boldLabel");
            l.setMinWidth(FxUtils.calculateNecessaryWidthOfBoldLabel(l));
            Tooltip.install(l, new Tooltip(ci.getColumnDescription()));
            int col = 0;
            gp.add(l, col++, row);

            if (ci.getColumnDataType() == DynamicSememeDataType.POLYMORPHIC) {
                polymorphicType = new ComboBox<>();
                polymorphicType.setEditable(false);
                polymorphicType.setConverter(new StringConverter<DynamicSememeDataType>() {

                    @Override
                    public String toString(DynamicSememeDataType object) {
                        return object.getDisplayName();
                    }

                    @Override
                    public DynamicSememeDataType fromString(String string) {
                        throw new RuntimeException("unecessary");
                    }
                });
                for (DynamicSememeDataType type : DynamicSememeDataType.values()) {
                    if (type == DynamicSememeDataType.POLYMORPHIC || type == DynamicSememeDataType.UNKNOWN) {
                        continue;
                    } else {
                        polymorphicType.getItems().add(type);
                    }
                }
                polymorphicType.getSelectionModel()
                        .select((currentValues == null ? DynamicSememeDataType.STRING
                                : (currentValues[row] == null ? DynamicSememeDataType.STRING
                                        : currentValues[row].getDynamicSememeDataType())));
            }

            SememeGUIDataTypeNodeDetails nd = SememeGUIDataTypeFXNodeBuilder.buildNodeForType(
                    ci.getColumnDataType(), ci.getDefaultColumnValue(),
                    (currentValues == null ? null : currentValues[row]), valueIsRequired, defaultValueTooltip,
                    (polymorphicType == null ? null
                            : polymorphicType.getSelectionModel().selectedItemProperty()),
                    allValid_, ci.getValidator(), ci.getValidatorData());

            currentDataFieldWarnings_.addAll(nd.getBoundToAllValid());
            if (ci.getColumnDataType() == DynamicSememeDataType.POLYMORPHIC) {
                nd.addUpdateParentListListener(currentDataFieldWarnings_);
            }

            currentDataFields_.add(nd);

            gp.add(nd.getNodeForDisplay(), col++, row);

            Label colType = new Label(ci.getColumnDataType().getDisplayName());
            colType.setMinWidth(FxUtils.calculateNecessaryWidthOfLabel(colType));
            gp.add((polymorphicType == null ? colType : polymorphicType), col++, row);

            if (ci.isColumnRequired() || ci.getDefaultColumnValue() != null || ci.getValidator() != null) {
                extraInfoColumnIsRequired = true;

                StackPane stackPane = new StackPane();
                stackPane.setMaxWidth(Double.MAX_VALUE);

                if (ci.getDefaultColumnValue() != null || ci.getValidator() != null) {
                    ImageView information = Images.INFORMATION.createImageView();
                    Tooltip tooltip = new Tooltip();
                    tooltip.textProperty().bind(defaultValueTooltip);
                    Tooltip.install(information, tooltip);
                    tooltip.setAutoHide(true);
                    information.setOnMouseClicked(
                            event -> tooltip.show(information, event.getScreenX(), event.getScreenY()));
                    stackPane.getChildren().add(information);
                }

                if (ci.isColumnRequired()) {
                    ImageView exclamation = Images.EXCLAMATION.createImageView();

                    final BooleanProperty showExclamation = new SimpleBooleanProperty(
                            StringUtils.isNotBlank(valueIsRequired.get()));
                    valueIsRequired.addListener((ChangeListener<String>) (observable, oldValue,
                            newValue) -> showExclamation.set(StringUtils.isNotBlank(newValue)));

                    exclamation.visibleProperty().bind(showExclamation);
                    Tooltip tooltip = new Tooltip();
                    tooltip.textProperty().bind(valueIsRequired);
                    Tooltip.install(exclamation, tooltip);
                    tooltip.setAutoHide(true);

                    exclamation.setOnMouseClicked(
                            event -> tooltip.show(exclamation, event.getScreenX(), event.getScreenY()));
                    stackPane.getChildren().add(exclamation);
                }

                gp.add(stackPane, col++, row);
            }
            row++;
        }

        ColumnConstraints cc = new ColumnConstraints();
        cc.setHgrow(Priority.NEVER);
        gp.getColumnConstraints().add(cc);

        cc = new ColumnConstraints();
        cc.setHgrow(Priority.ALWAYS);
        gp.getColumnConstraints().add(cc);

        cc = new ColumnConstraints();
        cc.setHgrow(Priority.NEVER);
        gp.getColumnConstraints().add(cc);

        if (extraInfoColumnIsRequired) {
            cc = new ColumnConstraints();
            cc.setHgrow(Priority.NEVER);
            gp.getColumnConstraints().add(cc);
        }

        if (row == 0) {
            sp_.setContent(new Label("This assemblage does not allow data fields"));
        } else {
            sp_.setContent(gp);
        }
        allValid_.invalidate();
    } else {
        sp_.setContent(null);
    }
}

From source file:gov.va.isaac.gui.refexViews.refexEdit.AddRefexPopup.java

private void buildDataFields(boolean assemblageValid, RefexDynamicDataBI[] currentValues) {
    if (assemblageValid) {
        for (ReadOnlyStringProperty ssp : currentDataFieldWarnings_) {
            allValid_.removeBinding(ssp);
        }/*from  ww w .j a va  2 s .  c om*/
        currentDataFieldWarnings_.clear();
        for (RefexDataTypeNodeDetails nd : currentDataFields_) {
            nd.cleanupListener();
        }
        currentDataFields_.clear();

        GridPane gp = new GridPane();
        gp.setHgap(10.0);
        gp.setVgap(10.0);
        gp.setStyle("-fx-padding: 5;");
        int row = 0;
        boolean extraInfoColumnIsRequired = false;
        for (RefexDynamicColumnInfo ci : assemblageInfo_.getColumnInfo()) {
            SimpleStringProperty valueIsRequired = (ci.isColumnRequired() ? new SimpleStringProperty("")
                    : null);
            SimpleStringProperty defaultValueTooltip = ((ci.getDefaultColumnValue() == null
                    && ci.getValidator() == null) ? null : new SimpleStringProperty());
            ComboBox<RefexDynamicDataType> polymorphicType = null;

            Label l = new Label(ci.getColumnName());
            l.getStyleClass().add("boldLabel");
            l.setMinWidth(FxUtils.calculateNecessaryWidthOfBoldLabel(l));
            Tooltip.install(l, new Tooltip(ci.getColumnDescription()));
            int col = 0;
            gp.add(l, col++, row);

            if (ci.getColumnDataType() == RefexDynamicDataType.POLYMORPHIC) {
                polymorphicType = new ComboBox<>();
                polymorphicType.setEditable(false);
                polymorphicType.setConverter(new StringConverter<RefexDynamicDataType>() {

                    @Override
                    public String toString(RefexDynamicDataType object) {
                        return object.getDisplayName();
                    }

                    @Override
                    public RefexDynamicDataType fromString(String string) {
                        throw new RuntimeException("unecessary");
                    }
                });
                for (RefexDynamicDataType type : RefexDynamicDataType.values()) {
                    if (type == RefexDynamicDataType.POLYMORPHIC || type == RefexDynamicDataType.UNKNOWN) {
                        continue;
                    } else {
                        polymorphicType.getItems().add(type);
                    }
                }
                polymorphicType.getSelectionModel()
                        .select((currentValues == null ? RefexDynamicDataType.STRING
                                : (currentValues[row] == null ? RefexDynamicDataType.STRING
                                        : currentValues[row].getRefexDataType())));
            }

            RefexDataTypeNodeDetails nd = RefexDataTypeFXNodeBuilder.buildNodeForType(ci.getColumnDataType(),
                    ci.getDefaultColumnValue(), (currentValues == null ? null : currentValues[row]),
                    valueIsRequired, defaultValueTooltip,
                    (polymorphicType == null ? null
                            : polymorphicType.getSelectionModel().selectedItemProperty()),
                    allValid_, new SimpleObjectProperty<>(ci.getValidator()),
                    new SimpleObjectProperty<>(ci.getValidatorData()));

            currentDataFieldWarnings_.addAll(nd.getBoundToAllValid());
            if (ci.getColumnDataType() == RefexDynamicDataType.POLYMORPHIC) {
                nd.addUpdateParentListListener(currentDataFieldWarnings_);
            }

            currentDataFields_.add(nd);

            gp.add(nd.getNodeForDisplay(), col++, row);

            Label colType = new Label(ci.getColumnDataType().getDisplayName());
            colType.setMinWidth(FxUtils.calculateNecessaryWidthOfLabel(colType));
            gp.add((polymorphicType == null ? colType : polymorphicType), col++, row);

            if (ci.isColumnRequired() || ci.getDefaultColumnValue() != null || ci.getValidator() != null) {
                extraInfoColumnIsRequired = true;

                StackPane stackPane = new StackPane();
                stackPane.setMaxWidth(Double.MAX_VALUE);

                if (ci.getDefaultColumnValue() != null || ci.getValidator() != null) {
                    ImageView information = Images.INFORMATION.createImageView();
                    Tooltip tooltip = new Tooltip();
                    tooltip.textProperty().bind(defaultValueTooltip);
                    Tooltip.install(information, tooltip);
                    tooltip.setAutoHide(true);
                    information.setOnMouseClicked(
                            event -> tooltip.show(information, event.getScreenX(), event.getScreenY()));
                    stackPane.getChildren().add(information);
                }

                if (ci.isColumnRequired()) {
                    ImageView exclamation = Images.EXCLAMATION.createImageView();

                    final BooleanProperty showExclamation = new SimpleBooleanProperty(
                            StringUtils.isNotBlank(valueIsRequired.get()));
                    valueIsRequired.addListener((ChangeListener<String>) (observable, oldValue,
                            newValue) -> showExclamation.set(StringUtils.isNotBlank(newValue)));

                    exclamation.visibleProperty().bind(showExclamation);
                    Tooltip tooltip = new Tooltip();
                    tooltip.textProperty().bind(valueIsRequired);
                    Tooltip.install(exclamation, tooltip);
                    tooltip.setAutoHide(true);

                    exclamation.setOnMouseClicked(
                            event -> tooltip.show(exclamation, event.getScreenX(), event.getScreenY()));
                    stackPane.getChildren().add(exclamation);
                }

                gp.add(stackPane, col++, row);
            }
            row++;
        }

        ColumnConstraints cc = new ColumnConstraints();
        cc.setHgrow(Priority.NEVER);
        gp.getColumnConstraints().add(cc);

        cc = new ColumnConstraints();
        cc.setHgrow(Priority.ALWAYS);
        gp.getColumnConstraints().add(cc);

        cc = new ColumnConstraints();
        cc.setHgrow(Priority.NEVER);
        gp.getColumnConstraints().add(cc);

        if (extraInfoColumnIsRequired) {
            cc = new ColumnConstraints();
            cc.setHgrow(Priority.NEVER);
            gp.getColumnConstraints().add(cc);
        }

        if (row == 0) {
            sp_.setContent(new Label("This assemblage does not allow data fields"));
        } else {
            sp_.setContent(gp);
        }
        allValid_.invalidate();
    } else {
        sp_.setContent(null);
    }
}