public MavenDialogController()

in kit/src/main/java/com/oracle/javafx/scenebuilder/kit/editor/panel/library/maven/MavenDialogController.java [113:208]


    public MavenDialogController(EditorController editorController, String userM2Repository,
            String tempM2Repository, PreferencesControllerBase preferencesControllerBase, Stage owner) {
        super(LibraryPanelController.class.getResource("MavenDialog.fxml"), I18N.getBundle(), owner); //NOI18N
        this.userLibrary = (UserLibrary) editorController.getLibrary();
        this.owner = owner;
        this.editorController = editorController;
        this.preferencesControllerBase = preferencesControllerBase;
        
        maven = new MavenRepositorySystem(false, userM2Repository, tempM2Repository,
                preferencesControllerBase.getRepositoryPreferences());
        
        versionsService = new Service<ObservableList<Version>>() {
            @Override
            protected Task<ObservableList<Version>> createTask() {
                return new Task<ObservableList<Version>>() {
                    @Override
                    protected ObservableList<Version> call() throws Exception {
                        return FXCollections.observableArrayList(getVersions());
                    }
                };
            }
        };
        
        versionsService.stateProperty().addListener((obs, ov, nv) -> {
            if (nv.equals(Worker.State.SUCCEEDED)) {
                versionsCombo.getItems().setAll(versionsService.getValue()
                        .sorted((v1, v2) -> v2.compareTo(v1)));
                versionsCombo.setCellFactory(p -> new ListCell<Version>() {
                    @Override
                    protected void updateItem(Version item, boolean empty) {
                        super.updateItem(item, empty); 
                        if (item != null && !empty) {
                            final RemoteRepository remote = maven.getRemoteRepository(item);
                            setText(item + " [" + remote.getId() + "]");
                        } else {
                            setText(null);
                        }
                    }
                    
                });
                versionsCombo.getSelectionModel().selectedItemProperty().addListener(comboBoxListener);
                versionsCombo.setDisable(false);
            } else if (nv.equals(Worker.State.CANCELLED) || nv.equals(Worker.State.FAILED)) {
                versionsCombo.setDisable(false);
            }
        });
        
        installService = new Service<MavenArtifact>() {
            @Override
            protected Task<MavenArtifact> createTask() {
                return new Task<MavenArtifact>() {
                    @Override
                    protected MavenArtifact call() throws Exception {
                        return resolveArtifacts();
                    }
                };
            }
        };
        
        installService.stateProperty().addListener((obs, ov, nv) -> {
            if (nv.equals(Worker.State.SUCCEEDED)) {
                final MavenArtifact mavenArtifact = installService.getValue();
                if (mavenArtifact == null || mavenArtifact.getPath().isEmpty() || 
                        !new File(mavenArtifact.getPath()).exists()) {
                    logInfoMessage("log.user.maven.failed", getArtifactCoordinates());
                } else {
                    List<File> files = new ArrayList<>();
                    files.add(new File(mavenArtifact.getPath()));
                    if (!mavenArtifact.getDependencies().isEmpty()) {
                        files.addAll(Stream
                                .of(mavenArtifact.getDependencies().split(File.pathSeparator))
                                .map(File::new)
                                .collect(Collectors.toList()));
                    }

                    final ImportWindowController iwc
                            = new ImportWindowController(
                            new LibraryPanelController(editorController, preferencesControllerBase.getMavenPreferences()),
                            files, preferencesControllerBase.getMavenPreferences(),
                            (Stage)installButton.getScene().getWindow(), false,
                                preferencesControllerBase.getMavenPreferences().getArtifactsFilter());
                    iwc.setToolStylesheet(editorController.getToolStylesheet());
                    ButtonID userChoice = iwc.showAndWait();
                    if (userChoice == ButtonID.OK) {
                        mavenArtifact.setFilter(iwc.getNewExcludedItems());
                        updatePreferences(mavenArtifact);
                        logInfoMessage("log.user.maven.installed", getArtifactCoordinates());
                    }
                    this.onCloseRequest(null);
                }
            } else if (nv.equals(Worker.State.CANCELLED) || nv.equals(Worker.State.FAILED)) {
                logInfoMessage("log.user.maven.failed", getArtifactCoordinates());
            }
        });
        
    }