private void bind() { // Displays the file selector, and then saves the package description to the given file. view.getSaveButton() .setOnAction( arg0 -> { if (view.getArtifactDetailsWindow() != null && view.getArtifactDetailsWindow().isShowing()) { view.getArtifactDetailsWindow().hide(); } try { getController().savePackageStateFile(); } catch (IOException | RDFTransformException e) { view.getErrorLabel().setText(TextFactory.getText(Errors.ErrorKey.IO_CREATE_ERROR)); } }); // Cancels the property popup, which closes the popup with out saving any changes. view.getCancelPopupHyperlink() .setOnAction( arg0 -> { if (view.getArtifactDetailsWindow() != null && view.getArtifactDetailsWindow().isShowing()) { view.getArtifactDetailsWindow().hide(); } }); if (view.getArtifactDetailsWindow() != null) { view.getArtifactDetailsWindow().setOnCloseRequest(event -> saveCurrentNode()); } // Saves any changes made in the package artifact property popup view.getApplyPopupButton() .setOnAction( arg0 -> { saveCurrentNode(); if (view.getArtifactDetailsWindow() != null && view.getArtifactDetailsWindow().isShowing()) { view.getArtifactDetailsWindow().hide(); } }); // Gets the button that's used to dismiss validation error popup. view.getReenableWarningsButton() .setOnAction( actionEvent -> preferences.putBoolean( internalProperties.get( InternalProperties.InternalPropertyKey.HIDE_PROPERTY_WARNING_PREFERENCE), false)); view.getRefreshPopupPositiveButton() .setOnAction( event -> { ipmService.mergeTree(controller.getPackageTree(), view.getRefreshResult()); List<Node> currentlyIgnoredNodes = new ArrayList<>(); getIgnoredNodes(view.getRoot().getValue(), currentlyIgnoredNodes); // To assign node types from the refresh we must unignore nodes so all nodes are // considered for (Node node : currentlyIgnoredNodes) { ipmService.ignoreNode(node, false); } controller .getDomainProfileService() .assignNodeTypes( controller.getPrimaryDomainProfile(), controller.getPackageTree()); // Once we're done assigning types we'll reignore whatever was previously ignored for (Node node : currentlyIgnoredNodes) { ipmService.ignoreNode(node, true); } displayPackageTree(); view.getRefreshPopup().hide(); }); view.getRefreshPopupNegativeButton().setOnAction(event -> view.getRefreshPopup().hide()); }