in kit/src/main/java/com/oracle/javafx/scenebuilder/kit/editor/panel/library/maven/search/SearchMavenDialogController.java [112:191]
public SearchMavenDialogController(EditorController editorController, String userM2Repository,
String tempM2Repository, PreferencesControllerBase preferencesControllerBase,
Stage owner) {
super(LibraryPanelController.class.getResource("SearchMavenDialog.fxml"), I18N.getBundle(), owner); //NOI18N
this.userLibrary = (UserLibrary) editorController.getLibrary();
this.owner = owner;
this.editorController = editorController;
this.preferencesControllerBase = preferencesControllerBase;
maven = new MavenRepositorySystem(true, userM2Repository, tempM2Repository,
preferencesControllerBase.getRepositoryPreferences()); // only releases
searchService = new SearchService(userM2Repository);
searchService.getResult().addListener((ListChangeListener.Change<? extends Artifact> c) -> {
while (c.next()) {
resultsListView.getItems().setAll(searchService.getResult()
.stream()
.sorted((a1, a2) -> a1.toString().compareTo(a2.toString()))
.collect(Collectors.toList()));
}
});
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 (ov.equals(Worker.State.RUNNING)) {
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());
}
installButton.setDisable(false);
searchButton.setDisable(false);
resultsListView.setDisable(false);
searchTextfield.setDisable(false);
installLabel.setVisible(false);
}
});
}