package bluej.groupwork.ui;
import bluej.groupwork.TeamSettings;
import bluej.groupwork.TeamSettingsController;
import bluej.utility.DialogManager;
import bluej.utility.javafx.FXCustomizedDialog;
import bluej.utility.javafx.JavaFXUtil;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.stage.Window;
import threadchecker.OnThread;
import threadchecker.Tag;
| A dialog for teamwork settings.
|
| @author fisker
| @author bquig
| @author Amjad Altadmri
|
@OnThread(Tag.FXPlatform)
public class TeamSettingsDialog extends FXCustomizedDialog<TeamSettings>{
private TeamSettingsController teamSettingsController;
private TeamSettingsPanel teamSettingsPanel;
private Button okButton;
| Create a team settings dialog with a reference to the team settings
| controller that it manipulates.
|
public TeamSettingsDialog(Window owner, TeamSettingsController controller)
{
super(owner, "team.settings.title", "team-settings");
setResizable(false);
teamSettingsController = controller;
if (teamSettingsController.hasProject()) {
setTitle(getTitle() + " - " + teamSettingsController.getProject().getProjectName());
}
setHeaderText(null);
prepareButtonPane();
teamSettingsPanel = new TeamSettingsPanel(teamSettingsController, this, getDialogPane().getStyleClass());
getDialogPane().setContent(teamSettingsPanel);
DialogManager.centreDialog(this);
setOnShown(e -> {
JavaFXUtil.runAfterCurrent(() -> teamSettingsPanel.doRequestFocus());
});
setResultConverter(bt -> bt == ButtonType.OK ? getSettings() : null);
}
| Set up the buttons panel to contain ok and cancel buttons, and associate their actions.
|
private void prepareButtonPane()
{
getDialogPane().getButtonTypes().setAll(ButtonType.OK, ButtonType.CANCEL);
|
| Write the data from the teamSettingsPanel to the project's team.defs file.
| If checkbox in teamSettingsPanel is checked, the data is also stored in bluej.properties
|
okButton = (Button) getDialogPane().lookupButton(ButtonType.OK);
okButton.setOnAction(event -> {
TeamSettings settings = teamSettingsPanel.getSettings();
teamSettingsController.updateSettings(settings, teamSettingsPanel.getUseAsDefault());
if (teamSettingsController.hasProject()) {
teamSettingsController.writeToProject();
}
});
}
| Disable the fields used to specify the repository:
| group, prefix, server and protocol. Called when the team settings
| dialog is connected to a project already.
|
public void disableRepositorySettings()
{
teamSettingsPanel.disableRepositorySettings();
}
| Get the settings specified by the user
|
public TeamSettings getSettings()
{
return teamSettingsPanel.getSettings();
}
public Button getOkButton()
{
return okButton;
}
}
. TeamSettingsDialog
. prepareButtonPane
. disableRepositorySettings
. getSettings
. getOkButton
91 neLoCode
+ 14 LoComm