Example usage for javafx.scene.layout Priority ALWAYS

List of usage examples for javafx.scene.layout Priority ALWAYS

Introduction

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

Prototype

Priority ALWAYS

To view the source code for javafx.scene.layout Priority ALWAYS.

Click Source Link

Document

Layout area will always try to grow (or shrink), sharing the increase (or decrease) in space with other layout areas that have a grow (or shrink) of ALWAYS.

Usage

From source file:net.sourceforge.msscodefactory.cfbam.v2_7.CFBamJavaFX.CFBamJavaFXBlobColAttrPane.java

public CFBamJavaFXBlobColAttrPane(ICFFormManager formManager, ICFBamJavaFXSchema argSchema,
        ICFBamBlobColObj argFocus) {//  w  w w. j  av  a  2  s  .  co m
    super();
    Control ctrl;
    CFLabel label;
    CFReferenceEditor reference;
    final String S_ProcName = "construct-schema-focus";
    if (formManager == null) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 1,
                "formManager");
    }
    cfFormManager = formManager;
    if (argSchema == null) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 2,
                "argSchema");
    }
    // argFocus is optional; focus may be set later during execution as
    // conditions of the runtime change.
    javafxSchema = argSchema;
    setJavaFXFocusAsBlobCol(argFocus);
    setPadding(new Insets(5));
    setHgap(5);
    setVgap(5);
    setAlignment(Pos.CENTER);
    ColumnConstraints column1 = new ColumnConstraints(125);
    ColumnConstraints column2 = new ColumnConstraints(125, 300, 500);
    column2.setHgrow(Priority.ALWAYS);
    getColumnConstraints().addAll(column1, column2);
    int gridRow = 0;
    label = getJavaFXLabelLookupDefSchema();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    reference = getJavaFXReferenceLookupDefSchema();
    setHalignment(reference, HPos.LEFT);
    add(reference, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelId();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorId();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelShortName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorShortName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelLabel();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorLabel();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelShortDescription();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorShortDescription();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDescription();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDescription();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelIsNullable();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorIsNullable();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelGenerateId();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorGenerateId();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDefaultVisibility();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDefaultVisibility();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDbName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDbName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelMaxLen();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorMaxLen();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    populateFields();
    adjustComponentEnableStates();
    javafxIsInitializing = false;
}

From source file:net.sourceforge.msscodefactory.cfbam.v2_7.CFBamJavaFX.CFBamJavaFXBlobDefAttrPane.java

public CFBamJavaFXBlobDefAttrPane(ICFFormManager formManager, ICFBamJavaFXSchema argSchema,
        ICFBamBlobDefObj argFocus) {/*from   w  w w .ja va 2s  .  c om*/
    super();
    Control ctrl;
    CFLabel label;
    CFReferenceEditor reference;
    final String S_ProcName = "construct-schema-focus";
    if (formManager == null) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 1,
                "formManager");
    }
    cfFormManager = formManager;
    if (argSchema == null) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 2,
                "argSchema");
    }
    // argFocus is optional; focus may be set later during execution as
    // conditions of the runtime change.
    javafxSchema = argSchema;
    setJavaFXFocusAsBlobDef(argFocus);
    setPadding(new Insets(5));
    setHgap(5);
    setVgap(5);
    setAlignment(Pos.CENTER);
    ColumnConstraints column1 = new ColumnConstraints(125);
    ColumnConstraints column2 = new ColumnConstraints(125, 300, 500);
    column2.setHgrow(Priority.ALWAYS);
    getColumnConstraints().addAll(column1, column2);
    int gridRow = 0;
    label = getJavaFXLabelLookupDefSchema();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    reference = getJavaFXReferenceLookupDefSchema();
    setHalignment(reference, HPos.LEFT);
    add(reference, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelId();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorId();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelShortName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorShortName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelLabel();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorLabel();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelShortDescription();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorShortDescription();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDescription();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDescription();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelIsNullable();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorIsNullable();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelGenerateId();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorGenerateId();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDefaultVisibility();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDefaultVisibility();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDbName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDbName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelMaxLen();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorMaxLen();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    populateFields();
    adjustComponentEnableStates();
    javafxIsInitializing = false;
}

From source file:net.sourceforge.msscodefactory.cfbam.v2_7.CFBamJavaFX.CFBamJavaFXBlobTypeAttrPane.java

public CFBamJavaFXBlobTypeAttrPane(ICFFormManager formManager, ICFBamJavaFXSchema argSchema,
        ICFBamBlobTypeObj argFocus) {// w  w w. j  av a  2  s .c o m
    super();
    Control ctrl;
    CFLabel label;
    CFReferenceEditor reference;
    final String S_ProcName = "construct-schema-focus";
    if (formManager == null) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 1,
                "formManager");
    }
    cfFormManager = formManager;
    if (argSchema == null) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 2,
                "argSchema");
    }
    // argFocus is optional; focus may be set later during execution as
    // conditions of the runtime change.
    javafxSchema = argSchema;
    setJavaFXFocusAsBlobType(argFocus);
    setPadding(new Insets(5));
    setHgap(5);
    setVgap(5);
    setAlignment(Pos.CENTER);
    ColumnConstraints column1 = new ColumnConstraints(125);
    ColumnConstraints column2 = new ColumnConstraints(125, 300, 500);
    column2.setHgrow(Priority.ALWAYS);
    getColumnConstraints().addAll(column1, column2);
    int gridRow = 0;
    label = getJavaFXLabelLookupDefSchema();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    reference = getJavaFXReferenceLookupDefSchema();
    setHalignment(reference, HPos.LEFT);
    add(reference, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelId();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorId();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelShortName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorShortName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelLabel();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorLabel();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelShortDescription();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorShortDescription();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDescription();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDescription();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelIsNullable();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorIsNullable();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelGenerateId();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorGenerateId();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDefaultVisibility();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDefaultVisibility();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDbName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDbName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelMaxLen();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorMaxLen();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    populateFields();
    adjustComponentEnableStates();
    javafxIsInitializing = false;
}

From source file:net.sourceforge.msscodefactory.cfbam.v2_7.CFBamJavaFX.CFBamJavaFXServerProcAttrPane.java

public CFBamJavaFXServerProcAttrPane(ICFFormManager formManager, ICFBamJavaFXSchema argSchema,
        ICFBamServerProcObj argFocus) {//from   w ww.  j  a v  a2  s .c o m
    super();
    Control ctrl;
    CFLabel label;
    CFReferenceEditor reference;
    final String S_ProcName = "construct-schema-focus";
    if (formManager == null) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 1,
                "formManager");
    }
    cfFormManager = formManager;
    if (argSchema == null) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 2,
                "argSchema");
    }
    // argFocus is optional; focus may be set later during execution as
    // conditions of the runtime change.
    javafxSchema = argSchema;
    setJavaFXFocusAsServerProc(argFocus);
    setPadding(new Insets(5));
    setHgap(5);
    setVgap(5);
    setAlignment(Pos.CENTER);
    ColumnConstraints column1 = new ColumnConstraints(125);
    ColumnConstraints column2 = new ColumnConstraints(125, 300, 500);
    column2.setHgrow(Priority.ALWAYS);
    getColumnConstraints().addAll(column1, column2);
    int gridRow = 0;
    label = getJavaFXLabelLookupDefSchema();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    reference = getJavaFXReferenceLookupDefSchema();
    setHalignment(reference, HPos.LEFT);
    add(reference, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelId();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorId();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelShortName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorShortName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelLabel();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorLabel();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelShortDescription();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorShortDescription();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDescription();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDescription();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelSuffix();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorSuffix();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDefaultVisibility();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDefaultVisibility();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelIsInstanceMethod();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorIsInstanceMethod();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelJMethodBody();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorJMethodBody();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDummy();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDummy();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    populateFields();
    adjustComponentEnableStates();
    javafxIsInitializing = false;
}

From source file:org.sleuthkit.autopsy.imagegallery.gui.GroupPane.java

/**
 * called automatically during constructor by FXMLConstructor.
 *
 * checks that FXML loading went ok and performs additional setup
 *///from w w w .j  a va 2  s  . c o  m
@FXML
void initialize() {
    assert gridView != null : "fx:id=\"tilePane\" was not injected: check your FXML file 'GroupPane.fxml'.";
    assert grpCatSplitMenu != null : "fx:id=\"grpCatSplitMenu\" was not injected: check your FXML file 'GroupHeader.fxml'.";
    assert grpTagSplitMenu != null : "fx:id=\"grpTagSplitMenu\" was not injected: check your FXML file 'GroupHeader.fxml'.";
    assert headerToolBar != null : "fx:id=\"headerToolBar\" was not injected: check your FXML file 'GroupHeader.fxml'.";
    assert segButton != null : "fx:id=\"previewList\" was not injected: check your FXML file 'GroupHeader.fxml'.";
    assert slideShowToggle != null : "fx:id=\"segButton\" was not injected: check your FXML file 'GroupHeader.fxml'.";
    assert tileToggle != null : "fx:id=\"tileToggle\" was not injected: check your FXML file 'GroupHeader.fxml'.";

    //configure flashing glow animation on next unseen group button
    flashAnimation.setCycleCount(Timeline.INDEFINITE);
    flashAnimation.setAutoReverse(true);

    //configure gridView cell properties
    gridView.cellHeightProperty().bind(Toolbar.getDefault().sizeSliderValue().add(75));
    gridView.cellWidthProperty().bind(Toolbar.getDefault().sizeSliderValue().add(75));
    gridView.setCellFactory((GridView<Long> param) -> new DrawableCell());

    //configure toolbar properties
    HBox.setHgrow(spacer, Priority.ALWAYS);
    spacer.setMinWidth(Region.USE_PREF_SIZE);

    try {
        grpTagSplitMenu.setText(TagUtils.getFollowUpTagName().getDisplayName());
        grpTagSplitMenu.setOnAction(createGrpTagMenuItem(TagUtils.getFollowUpTagName()).getOnAction());
    } catch (TskCoreException tskCoreException) {
        LOGGER.log(Level.WARNING, "failed to load FollowUpTagName", tskCoreException);
    }
    grpTagSplitMenu.setGraphic(new ImageView(DrawableAttribute.TAGS.getIcon()));
    grpTagSplitMenu.showingProperty()
            .addListener((ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) -> {
                if (t1) {
                    ArrayList<MenuItem> selTagMenues = new ArrayList<>();
                    for (final TagName tn : TagUtils.getNonCategoryTagNames()) {
                        MenuItem menuItem = TagUtils.createSelTagMenuItem(tn, grpTagSplitMenu);
                        selTagMenues.add(menuItem);
                    }
                    grpTagSplitMenu.getItems().setAll(selTagMenues);
                }
            });

    ArrayList<MenuItem> grpCategoryMenues = new ArrayList<>();
    for (final Category cat : Category.values()) {
        MenuItem menuItem = createGrpCatMenuItem(cat);
        grpCategoryMenues.add(menuItem);
    }
    grpCatSplitMenu.setText(Category.FIVE.getDisplayName());
    grpCatSplitMenu.setGraphic(new ImageView(DrawableAttribute.CATEGORY.getIcon()));
    grpCatSplitMenu.getItems().setAll(grpCategoryMenues);
    grpCatSplitMenu.setOnAction(createGrpCatMenuItem(Category.FIVE).getOnAction());

    Runnable syncMode = () -> {
        switch (groupViewMode.get()) {
        case SLIDE_SHOW:
            slideShowToggle.setSelected(true);
            break;
        case TILE:
            tileToggle.setSelected(true);
            break;
        }
    };
    syncMode.run();
    //make togle states match view state
    groupViewMode.addListener((o) -> {
        syncMode.run();
    });

    slideShowToggle.toggleGroupProperty().addListener((o) -> {
        slideShowToggle.getToggleGroup().selectedToggleProperty()
                .addListener((observable, oldToggle, newToggle) -> {
                    if (newToggle == null) {
                        oldToggle.setSelected(true);
                    }
                });
    });

    //listen to toggles and update view state
    slideShowToggle.setOnAction((ActionEvent t) -> {
        activateSlideShowViewer(globalSelectionModel.lastSelectedProperty().get());
    });

    tileToggle.setOnAction((ActionEvent t) -> {
        activateTileViewer();
    });

    controller.viewState().addListener((ObservableValue<? extends GroupViewState> observable,
            GroupViewState oldValue, GroupViewState newValue) -> {
        setViewState(newValue);
    });

    addEventFilter(KeyEvent.KEY_PRESSED, tileKeyboardNavigationHandler);
    gridView.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {

        private ContextMenu buildContextMenu() {
            ArrayList<MenuItem> menuItems = new ArrayList<>();

            menuItems.add(CategorizeAction.getPopupMenu());

            menuItems.add(AddDrawableTagAction.getInstance().getPopupMenu());

            Collection<? extends ContextMenuActionsProvider> menuProviders = Lookup.getDefault()
                    .lookupAll(ContextMenuActionsProvider.class);

            for (ContextMenuActionsProvider provider : menuProviders) {

                for (final Action act : provider.getActions()) {

                    if (act instanceof Presenter.Popup) {
                        Presenter.Popup aact = (Presenter.Popup) act;

                        menuItems.add(SwingMenuItemAdapter.create(aact.getPopupPresenter()));
                    }
                }
            }
            final MenuItem extractMenuItem = new MenuItem("Extract File(s)");
            extractMenuItem.setOnAction((ActionEvent t) -> {
                SwingUtilities.invokeLater(() -> {
                    TopComponent etc = WindowManager.getDefault()
                            .findTopComponent(ImageGalleryTopComponent.PREFERRED_ID);
                    ExtractAction.getInstance().actionPerformed(new java.awt.event.ActionEvent(etc, 0, null));
                });
            });
            menuItems.add(extractMenuItem);

            ContextMenu contextMenu = new ContextMenu(menuItems.toArray(new MenuItem[] {}));
            contextMenu.setAutoHide(true);
            return contextMenu;
        }

        @Override
        public void handle(MouseEvent t) {
            switch (t.getButton()) {
            case PRIMARY:
                if (t.getClickCount() == 1) {
                    globalSelectionModel.clearSelection();
                    if (contextMenu != null) {
                        contextMenu.hide();
                    }
                }
                t.consume();
                break;
            case SECONDARY:
                if (t.getClickCount() == 1) {
                    selectAllFiles();
                }
                if (globalSelectionModel.getSelected().isEmpty() == false) {
                    if (contextMenu == null) {
                        contextMenu = buildContextMenu();
                    }

                    contextMenu.hide();
                    contextMenu.show(GroupPane.this, t.getScreenX(), t.getScreenY());
                }
                t.consume();
                break;
            }
        }
    });

    ActionUtils.configureButton(nextGroupAction, nextButton);
    final EventHandler<ActionEvent> onAction = nextButton.getOnAction();
    nextButton.setOnAction((ActionEvent event) -> {
        flashAnimation.stop();
        nextButton.setEffect(null);
        onAction.handle(event);
    });

    ActionUtils.configureButton(forwardAction, forwardButton);
    ActionUtils.configureButton(backAction, backButton);

    nextGroupAction.disabledProperty().addListener(
            (ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) -> {
                nextButton.setEffect(newValue ? null : DROP_SHADOW);
                if (newValue == false) {
                    flashAnimation.play();
                } else {
                    flashAnimation.stop();
                }
            });

    //listen to tile selection and make sure it is visible in scroll area
    //TODO: make sure we are testing complete visability not just bounds intersection
    globalSelectionModel.lastSelectedProperty().addListener((observable, oldFileID, newFileId) -> {
        if (groupViewMode.get() == GroupViewMode.SLIDE_SHOW) {
            slideShowPane.setFile(newFileId);
        } else {

            scrollToFileID(newFileId);
        }
    });

    setViewState(controller.viewState().get());
}

From source file:net.sourceforge.msscodefactory.cfbamcustom.v2_7.CFBamCustomEditor.CFBamCustomEditorUuidTypeAttrPane.java

public CFBamCustomEditorUuidTypeAttrPane(ICFFormManager formManager, ICFBamJavaFXSchema argSchema,
        ICFBamUuidTypeObj argFocus) {/*from ww w  . j a v a 2s . c o  m*/
    super();
    Control ctrl;
    CFLabel label;
    CFReferenceEditor reference;
    final String S_ProcName = "construct-schema-focus";
    if (formManager == null) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 1,
                "formManager");
    }
    cfFormManager = formManager;
    if (argSchema == null) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 2,
                "argSchema");
    }
    // argFocus is optional; focus may be set later during execution as
    // conditions of the runtime change.
    javafxSchema = argSchema;
    setJavaFXFocusAsUuidType(argFocus);
    setPadding(new Insets(5));
    setHgap(5);
    setVgap(5);
    setAlignment(Pos.CENTER);
    ColumnConstraints column1 = new ColumnConstraints(125);
    ColumnConstraints column2 = new ColumnConstraints(125, 300, 500);
    column2.setHgrow(Priority.ALWAYS);
    getColumnConstraints().addAll(column1, column2);
    int gridRow = 0;

    label = getJavaFXLabelId();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorId();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelLookupDefSchema();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    reference = getJavaFXReferenceLookupDefSchema();
    setHalignment(reference, HPos.LEFT);
    add(reference, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelShortName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorShortName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDbName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDbName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDescription();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDescription();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelShortDescription();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorShortDescription();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelLabel();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorLabel();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDefaultVisibility();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDefaultVisibility();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelGenerateId();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorGenerateId();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelInitValue();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorInitValue();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDefaultValue();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDefaultValue();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelNullValue();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorNullValue();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelUnknownValue();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorUnknownValue();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    populateFields();
    adjustComponentEnableStates();
    javafxIsInitializing = false;
}

From source file:net.sourceforge.msscodefactory.cfbamcustom.v2_7.CFBamCustomEditor.CFBamCustomEditorTZTimeTypeAttrPane.java

public CFBamCustomEditorTZTimeTypeAttrPane(ICFFormManager formManager, ICFBamJavaFXSchema argSchema,
        ICFBamTZTimeTypeObj argFocus) {/*  w  w w  .j av  a 2s. c o m*/
    super();
    Control ctrl;
    CFLabel label;
    CFReferenceEditor reference;
    final String S_ProcName = "construct-schema-focus";
    if (formManager == null) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 1,
                "formManager");
    }
    cfFormManager = formManager;
    if (argSchema == null) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 2,
                "argSchema");
    }
    // argFocus is optional; focus may be set later during execution as
    // conditions of the runtime change.
    javafxSchema = argSchema;
    setJavaFXFocusAsTZTimeType(argFocus);
    setPadding(new Insets(5));
    setHgap(5);
    setVgap(5);
    setAlignment(Pos.CENTER);
    ColumnConstraints column1 = new ColumnConstraints(125);
    ColumnConstraints column2 = new ColumnConstraints(125, 300, 500);
    column2.setHgrow(Priority.ALWAYS);
    getColumnConstraints().addAll(column1, column2);
    int gridRow = 0;

    label = getJavaFXLabelId();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorId();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelLookupDefSchema();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    reference = getJavaFXReferenceLookupDefSchema();
    setHalignment(reference, HPos.LEFT);
    add(reference, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelShortName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorShortName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDbName();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDbName();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDescription();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDescription();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelShortDescription();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorShortDescription();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelLabel();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorLabel();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDefaultVisibility();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDefaultVisibility();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelGenerateId();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorGenerateId();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelInitValue();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorInitValue();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelDefaultValue();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorDefaultValue();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelNullValue();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorNullValue();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    label = getJavaFXLabelUnknownValue();
    setHalignment(label, HPos.LEFT);
    add(label, 0, gridRow);

    ctrl = getJavaFXEditorUnknownValue();
    setHalignment(ctrl, HPos.LEFT);
    add(ctrl, 1, gridRow);

    gridRow++;

    populateFields();
    adjustComponentEnableStates();
    javafxIsInitializing = false;
}

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

private AddSememePopup() {
    super();//  ww w.ja  v  a  2s.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();//from w  w w  .j  ava2s.co 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:com.github.drbookings.ui.controller.BookingDetailsController.java

private void addSeparator() {
    final HBox bb = new HBox();
    bb.setPrefHeight(20);/*from ww w.  j  a  va2 s  .  co  m*/
    bb.setAlignment(Pos.CENTER);
    final Separator s = new Separator();
    s.getStyleClass().add("large-separator");
    bb.getChildren().add(s);
    HBox.setHgrow(s, Priority.ALWAYS);
    content.getChildren().add(bb);
}