use of org.phoenicis.javafx.dialogs.ErrorDialog in project POL-POM-5 by PhoenicisOrg.
the class ContainersFeaturePanel method changeEngineVersion.
/**
* Opens a dialog to change the engine version used for a given container
*
* @param container The container
*/
public void changeEngineVersion(final ContainerDTO container) {
EnginesManager enginesManager = getEnginesManager();
if (enginesManager != null) {
final String engineId = container.getEngine().toLowerCase();
enginesManager.getEngine(engineId, engine -> engine.changeVersion(container.getName()), exception -> Platform.runLater(() -> {
final ErrorDialog errorDialog = ErrorDialog.builder().withMessage(tr("Error during engine version change")).withException(exception).withOwner(getScene().getWindow()).build();
errorDialog.showAndWait();
}));
}
}
use of org.phoenicis.javafx.dialogs.ErrorDialog in project POL-POM-5 by PhoenicisOrg.
the class ContainersFeaturePanel method openFileBrowser.
/**
* Opens the given container in a file browser
*
* @param container The container
*/
public void openFileBrowser(final ContainerDTO container) {
try {
final File containerDir = new File(container.getPath());
EventQueue.invokeLater(() -> {
try {
Desktop.getDesktop().open(containerDir);
} catch (IOException e) {
Platform.runLater(() -> {
final ErrorDialog errorDialog = ErrorDialog.builder().withMessage(tr("Cannot open container {0} in file browser", container.getPath())).withException(e).withOwner(getScene().getWindow()).build();
errorDialog.showAndWait();
});
}
});
} catch (IllegalArgumentException e) {
Platform.runLater(() -> {
final ErrorDialog errorDialog = ErrorDialog.builder().withMessage(tr("Cannot open container {0} in file browser", container.getPath())).withException(e).withOwner(getScene().getWindow()).build();
errorDialog.showAndWait();
});
}
}
use of org.phoenicis.javafx.dialogs.ErrorDialog in project POL-POM-5 by PhoenicisOrg.
the class ContainersFeaturePanel method deleteContainer.
/**
* Deletes a given container
*
* @param container The container
*/
public void deleteContainer(final ContainerDTO container) {
final SimpleConfirmDialog confirmMessage = SimpleConfirmDialog.builder().withTitle(tr("Delete {0} container", container.getName())).withMessage(tr("Are you sure you want to delete the {0} container?", container.getName())).withOwner(getScene().getWindow()).withYesCallback(() -> {
getContainersManager().deleteContainer(container, unused -> Platform.runLater(() -> setSelectedContainer(null)), e -> Platform.runLater(() -> {
final ErrorDialog errorDialog = ErrorDialog.builder().withMessage(tr("Error")).withException(e).withOwner(getScene().getWindow()).build();
errorDialog.showAndWait();
}));
getContainersManager().fetchContainers(containerCategories -> Platform.runLater(() -> categories.setAll(containerCategories)), e -> Platform.runLater(() -> {
final ErrorDialog errorDialog = ErrorDialog.builder().withMessage(tr("Loading containers failed.")).withException(e).withOwner(getScene().getWindow()).build();
errorDialog.showAndWait();
}));
}).build();
confirmMessage.showAndCallback();
}
use of org.phoenicis.javafx.dialogs.ErrorDialog in project POL-POM-5 by PhoenicisOrg.
the class ContainerVerbsPanelSkin method createVerbManagementButtons.
/**
* Creates a container with the buttons for the verb selection management. These buttons consist of:
* - a button to install all selected verbs
* - a button to clear/reset the selection
*
* @param verbs The {@link GridPane} containing the visual verb installation components
* @return A container with the buttons for the verb selection management
*/
private HBox createVerbManagementButtons(final GridPane verbs) {
final Button installButton = new Button(tr("Install selected"));
installButton.disableProperty().bind(getControl().lockVerbsProperty());
installButton.setOnAction(event -> {
getControl().setLockVerbs(true);
final ContainerDTO container = getControl().getContainer();
// find the ids of all selected verbs
final List<ScriptDTO> installationVerbs = verbs.getChildren().stream().filter(element -> element instanceof CheckBox && ((CheckBox) element).isSelected()).map(GridPane::getRowIndex).map(getControl().getVerbScripts()::get).collect(Collectors.toList());
final List<String> verbNames = installationVerbs.stream().map(ScriptDTO::getScriptName).collect(Collectors.toList());
final ListConfirmDialog confirmDialog = ListConfirmDialog.builder().withTitle(tr("Install Verbs")).withMessage(tr("Are you sure you want to install the following Verbs:")).withConfirmItems(verbNames).withOwner(getControl().getScene().getWindow()).withYesCallback(() -> {
final List<String> verbIds = installationVerbs.stream().map(ScriptDTO::getId).collect(Collectors.toList());
// install the selected verbs
getControl().getVerbsManager().installVerbs(container.getEngine().toLowerCase(), container.getName(), verbIds, () -> getControl().setLockVerbs(false), e -> Platform.runLater(() -> {
final ErrorDialog errorDialog = ErrorDialog.builder().withMessage(tr("Error installing Verbs")).withException(e).build();
errorDialog.showAndWait();
}));
}).build();
confirmDialog.showAndCallback();
// after the dialog has been closed unlock the verb buttons
getControl().setLockVerbs(false);
});
final Button clearButton = new Button(tr("Clear selection"));
clearButton.disableProperty().bind(getControl().lockVerbsProperty());
clearButton.setOnAction(event -> verbs.getChildren().stream().filter(element -> element instanceof CheckBox).map(element -> (CheckBox) element).forEach(verbCheckBox -> verbCheckBox.setSelected(false)));
return new HBox(installButton, clearButton);
}
use of org.phoenicis.javafx.dialogs.ErrorDialog in project POL-POM-5 by PlayOnLinux.
the class ContainerVerbsPanelSkin method createVerbManagementButtons.
/**
* Creates a container with the buttons for the verb selection management. These buttons consist of:
* - a button to install all selected verbs
* - a button to clear/reset the selection
*
* @param verbs The {@link GridPane} containing the visual verb installation components
* @return A container with the buttons for the verb selection management
*/
private HBox createVerbManagementButtons(final GridPane verbs) {
final Button installButton = new Button(tr("Install selected"));
installButton.disableProperty().bind(getControl().lockVerbsProperty());
installButton.setOnAction(event -> {
getControl().setLockVerbs(true);
final ContainerDTO container = getControl().getContainer();
// find the ids of all selected verbs
final List<ScriptDTO> installationVerbs = verbs.getChildren().stream().filter(element -> element instanceof CheckBox && ((CheckBox) element).isSelected()).map(GridPane::getRowIndex).map(getControl().getVerbScripts()::get).collect(Collectors.toList());
final List<String> verbNames = installationVerbs.stream().map(ScriptDTO::getScriptName).collect(Collectors.toList());
final ListConfirmDialog confirmDialog = ListConfirmDialog.builder().withTitle(tr("Install Verbs")).withMessage(tr("Are you sure you want to install the following Verbs:")).withConfirmItems(verbNames).withOwner(getControl().getScene().getWindow()).withYesCallback(() -> {
final List<String> verbIds = installationVerbs.stream().map(ScriptDTO::getId).collect(Collectors.toList());
// install the selected verbs
getControl().getVerbsManager().installVerbs(container.getEngine().toLowerCase(), container.getName(), verbIds, () -> getControl().setLockVerbs(false), e -> Platform.runLater(() -> {
final ErrorDialog errorDialog = ErrorDialog.builder().withMessage(tr("Error installing Verbs")).withException(e).build();
errorDialog.showAndWait();
}));
}).build();
confirmDialog.showAndCallback();
// after the dialog has been closed unlock the verb buttons
getControl().setLockVerbs(false);
});
final Button clearButton = new Button(tr("Clear selection"));
clearButton.disableProperty().bind(getControl().lockVerbsProperty());
clearButton.setOnAction(event -> verbs.getChildren().stream().filter(element -> element instanceof CheckBox).map(element -> (CheckBox) element).forEach(verbCheckBox -> verbCheckBox.setSelected(false)));
return new HBox(installButton, clearButton);
}
Aggregations