refactored controller so class is smaller
This commit is contained in:
parent
3134fd2c89
commit
6401a75e0e
|
|
@ -0,0 +1,70 @@
|
|||
package com.r0r5chach;
|
||||
|
||||
import com.r0r5chach.r6.R6Attacker;
|
||||
import com.r0r5chach.r6.R6Defender;
|
||||
import com.r0r5chach.r6.R6Player;
|
||||
import com.r0r5chach.valorant.ValorantAgent;
|
||||
import com.r0r5chach.valorant.ValorantPlayer;
|
||||
|
||||
import javafx.scene.control.ChoiceBox;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.text.Text;
|
||||
|
||||
public class EditPage {
|
||||
public static void loadPlayer(Competitor player, TextField[] textFields, ChoiceBox<Rank> level) {
|
||||
textFields[0].setText(String.valueOf(player.getPlayerNumber()));
|
||||
textFields[1].setText(player.getPlayerName().getFullName());
|
||||
level.getSelectionModel().select(player.getPlayerLevel());;
|
||||
textFields[2].setText(String.valueOf(player.getOverallScore()));
|
||||
}
|
||||
|
||||
public static void loadFavoriteCharacters(Competitor player, ChoiceBox<R6Attacker> attacker, ChoiceBox<R6Defender> defender, ChoiceBox<ValorantAgent> agent, Text field) {
|
||||
if (player instanceof R6Player) {
|
||||
attacker.getSelectionModel().select(((R6Player) player).getFavoriteAttacker());
|
||||
defender.getSelectionModel().select((((R6Player) player).getFavoriteDefender()));
|
||||
agent.visibleProperty().set(false);
|
||||
attacker.visibleProperty().set(true);
|
||||
defender.visibleProperty().set(true);
|
||||
field.setText("Favorite Operators");
|
||||
}
|
||||
else if (player instanceof ValorantPlayer) {
|
||||
agent.getSelectionModel().select(((ValorantPlayer) player).getFavoriteAgent());
|
||||
agent.visibleProperty().set(true);
|
||||
attacker.visibleProperty().set(false);
|
||||
defender.visibleProperty().set(false);
|
||||
field.setText("Favorite Agent");
|
||||
}
|
||||
}
|
||||
|
||||
public static void loadScores(Competitor player, TextField[] fields) {
|
||||
int[] playerScores = player.getScores();
|
||||
for (int i = 0; i < playerScores.length; i++) {
|
||||
fields[i].setText(String.valueOf(playerScores[i]));
|
||||
}
|
||||
}
|
||||
|
||||
public static void updatePlayer(Competitor player, TextField[] fields, ChoiceBox<Rank> level) {
|
||||
player.setPlayerNumber(Integer.parseInt(fields[0].getText()));
|
||||
player.setPlayerName(new Name(fields[1].getText()));
|
||||
player.setPlayerLevel(level.getValue());
|
||||
}
|
||||
|
||||
public static void updateFavoriteCharacters(Competitor player, ChoiceBox<R6Attacker> attacker, ChoiceBox<R6Defender> defender, ChoiceBox<ValorantAgent> agent) {
|
||||
if (player instanceof R6Player) {
|
||||
((R6Player) player).setFavoriteAttacker(attacker.getValue());
|
||||
((R6Player) player).setFavoriteDefender(defender.getValue());
|
||||
}
|
||||
else if (player instanceof ValorantPlayer) {
|
||||
((ValorantPlayer) player).setFavoriteAgent(agent.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
public static void updateScores(Competitor player, TextField[] fields) {
|
||||
int[] newScores = new int[6];
|
||||
for (int i = 0; i < newScores.length; i++) {
|
||||
newScores[i] = Integer.parseInt(fields[i].getText());
|
||||
}
|
||||
player.setScores(newScores);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -7,22 +7,17 @@ import java.util.ResourceBundle;
|
|||
|
||||
import com.r0r5chach.r6.R6Attacker;
|
||||
import com.r0r5chach.r6.R6Defender;
|
||||
import com.r0r5chach.r6.R6Player;
|
||||
import com.r0r5chach.valorant.ValorantAgent;
|
||||
import com.r0r5chach.valorant.ValorantPlayer;
|
||||
|
||||
import javafx.application.Platform;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.ChoiceBox;
|
||||
import javafx.scene.control.ListView;
|
||||
import javafx.scene.control.TableColumn;
|
||||
import javafx.scene.control.TableView;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.control.cell.PropertyValueFactory;
|
||||
import javafx.scene.text.Text;
|
||||
|
||||
public class MainController implements Initializable {
|
||||
|
|
@ -76,18 +71,24 @@ public class MainController implements Initializable {
|
|||
|
||||
TextField[] scores;
|
||||
|
||||
TextField[] fields;
|
||||
|
||||
@FXML
|
||||
Button updateButton;
|
||||
|
||||
@FXML
|
||||
TableView<CompetitorRow> competitorTable;
|
||||
|
||||
@FXML
|
||||
Button filterButton;
|
||||
|
||||
@Override
|
||||
public void initialize(URL url, ResourceBundle rb) {
|
||||
Platform.runLater(() -> {
|
||||
this.scores = new TextField[]{scores0, scores1, scores2, scores3, scores4, scores5};
|
||||
scores = new TextField[]{scores0, scores1, scores2, scores3, scores4, scores5};
|
||||
fields = new TextField[]{playerNumber, playerName, overallScore};
|
||||
loadCompetitors();
|
||||
loadTable();
|
||||
ViewPage.generateTable(competitorTable);
|
||||
loadEdit();
|
||||
});
|
||||
|
||||
|
|
@ -99,18 +100,24 @@ public class MainController implements Initializable {
|
|||
|
||||
@FXML
|
||||
private void getCompetitor() {
|
||||
Competitor player = this.competitors.getCompetitors().get(this.competitorIds.indexOf(this.competitorsList.getSelectionModel().getSelectedItem()));
|
||||
loadPlayer(player);
|
||||
Competitor player = competitors.getCompetitors().get(competitorIds.indexOf(competitorsList.getSelectionModel().getSelectedItem()));
|
||||
EditPage.loadPlayer(player,fields, playerLevel);
|
||||
EditPage.loadFavoriteCharacters(player, favoriteAttacker, favoriteDefender, favoriteAgent, favoriteCharacters);
|
||||
EditPage.loadScores(player, scores);
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void updateCompetitor() {
|
||||
int playerIndex = this.competitorIds.indexOf(this.competitorsList.getSelectionModel().getSelectedItem());
|
||||
Competitor player = this.competitors.getCompetitors().get(playerIndex);
|
||||
updatePlayer(player);
|
||||
int playerIndex = competitorIds.indexOf(competitorsList.getSelectionModel().getSelectedItem());
|
||||
Competitor player = competitors.getCompetitors().get(playerIndex);
|
||||
EditPage.updatePlayer(player, fields, playerLevel);
|
||||
EditPage.updateFavoriteCharacters(player, favoriteAttacker, favoriteDefender, favoriteAgent);
|
||||
EditPage.updateScores(player, scores);
|
||||
competitorIds.set(playerIndex, player.getPlayerNumber());
|
||||
loadEdit();
|
||||
loadPlayer(player);
|
||||
EditPage.loadPlayer(player, fields, playerLevel);
|
||||
EditPage.loadFavoriteCharacters(player, favoriteAttacker, favoriteDefender, favoriteAgent, favoriteCharacters);
|
||||
EditPage.loadScores(player, scores);
|
||||
}
|
||||
|
||||
private void loadCompetitors(){
|
||||
|
|
@ -129,107 +136,8 @@ public class MainController implements Initializable {
|
|||
favoriteAgent.setItems(FXCollections.observableList(Arrays.asList(ValorantAgent.values())));
|
||||
}
|
||||
|
||||
private void loadTable() {
|
||||
TableColumn<CompetitorRow,Integer> playerNumCol = new TableColumn<CompetitorRow,Integer>("Player Number");
|
||||
TableColumn<CompetitorRow,String> playerNameCol = new TableColumn<CompetitorRow,String>("Player Name");
|
||||
TableColumn<CompetitorRow,Rank> playerLevelCol = new TableColumn<CompetitorRow,Rank>("Player Level");
|
||||
TableColumn<CompetitorRow,String> scoresCol = new TableColumn<CompetitorRow,String>("Player Scores");
|
||||
TableColumn<CompetitorRow,String> favoriteCharsCol = new TableColumn<CompetitorRow,String>("Favorite Characters");
|
||||
TableColumn<CompetitorRow,String> favoriteAgentCol = new TableColumn<CompetitorRow,String>("Agent");
|
||||
TableColumn<CompetitorRow,String> favoriteAttackerCol = new TableColumn<CompetitorRow,String>("Attacker");
|
||||
TableColumn<CompetitorRow,String> favoriteDefenderCol = new TableColumn<CompetitorRow,String>("Defender");
|
||||
playerNumCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,Integer>("playerNumber"));
|
||||
playerNameCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,String>("playerName"));
|
||||
playerLevelCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,Rank>("playerLevel"));
|
||||
scoresCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,String>("scores"));
|
||||
favoriteAgentCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,String>("favoriteAgent"));
|
||||
favoriteAttackerCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,String>("favoriteAttacker"));
|
||||
favoriteDefenderCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,String>("favoriteDefender"));
|
||||
competitorTable.getColumns().add(playerNumCol);
|
||||
competitorTable.getColumns().add(playerNameCol);
|
||||
competitorTable.getColumns().add(playerLevelCol);
|
||||
competitorTable.getColumns().add(scoresCol);
|
||||
favoriteCharsCol.getColumns().add(favoriteAgentCol);
|
||||
favoriteCharsCol.getColumns().add(favoriteAttackerCol);
|
||||
favoriteCharsCol.getColumns().add(favoriteDefenderCol);
|
||||
competitorTable.getColumns().add(favoriteCharsCol);
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void loadView() {
|
||||
competitorTable.setItems(generateTable());
|
||||
}
|
||||
|
||||
private void loadPlayer(Competitor player) {
|
||||
this.playerNumber.setText(String.valueOf(player.getPlayerNumber()));
|
||||
this.playerName.setText(player.getPlayerName().getFullName());
|
||||
this.playerLevel.getSelectionModel().select(player.getPlayerLevel());;
|
||||
loadFavoriteCharacters(player);
|
||||
loadScores(player);
|
||||
this.overallScore.setText(String.valueOf(player.getOverallScore()));
|
||||
}
|
||||
|
||||
private void loadFavoriteCharacters(Competitor player) {
|
||||
if (player instanceof R6Player) {
|
||||
this.favoriteAttacker.getSelectionModel().select(((R6Player) player).getFavoriteAttacker());
|
||||
this.favoriteDefender.getSelectionModel().select((((R6Player) player).getFavoriteDefender()));
|
||||
this.favoriteAgent.visibleProperty().set(false);
|
||||
this.favoriteAttacker.visibleProperty().set(true);
|
||||
this.favoriteDefender.visibleProperty().set(true);
|
||||
this.favoriteCharacters.setText("Favorite Operators");
|
||||
}
|
||||
else if (player instanceof ValorantPlayer) {
|
||||
this.favoriteAgent.getSelectionModel().select(((ValorantPlayer) player).getFavoriteAgent());
|
||||
this.favoriteAgent.visibleProperty().set(true);
|
||||
this.favoriteAttacker.visibleProperty().set(false);
|
||||
this.favoriteDefender.visibleProperty().set(false);
|
||||
this.favoriteCharacters.setText("Favorite Agent");
|
||||
}
|
||||
}
|
||||
|
||||
private void loadScores(Competitor player) {
|
||||
int[] playerScores = player.getScores();
|
||||
for (int i = 0; i < playerScores.length; i++) {
|
||||
this.scores[i].setText(String.valueOf(playerScores[i]));
|
||||
}
|
||||
}
|
||||
|
||||
private void updatePlayer(Competitor player) {
|
||||
player.setPlayerNumber(Integer.parseInt(this.playerNumber.getText()));
|
||||
player.setPlayerName(new Name(this.playerName.getText()));
|
||||
player.setPlayerLevel(this.playerLevel.getValue());
|
||||
updateFavoriteCharacters(player);
|
||||
updateScores(player);
|
||||
}
|
||||
|
||||
private void updateFavoriteCharacters(Competitor player) {
|
||||
if (player instanceof R6Player) {
|
||||
((R6Player) player).setFavoriteAttacker(this.favoriteAttacker.getValue());
|
||||
((R6Player) player).setFavoriteDefender(this.favoriteDefender.getValue());
|
||||
}
|
||||
else if (player instanceof ValorantPlayer) {
|
||||
((ValorantPlayer) player).setFavoriteAgent(this.favoriteAgent.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
private void updateScores(Competitor player) {
|
||||
int[] newScores = new int[6];
|
||||
for (int i = 0; i < newScores.length; i++) {
|
||||
newScores[i] = Integer.parseInt(this.scores[i].getText());
|
||||
}
|
||||
player.setScores(newScores);
|
||||
}
|
||||
|
||||
private ObservableList<CompetitorRow> generateTable() {
|
||||
ArrayList<CompetitorRow> list = new ArrayList<>();
|
||||
for(Competitor player: this.competitors.getCompetitors()) {
|
||||
if (player instanceof ValorantPlayer) {
|
||||
list.add(new CompetitorRow(player.getPlayerNumber(), player.getPlayerName(), player.getPlayerLevel(), player.getScores(), ((ValorantPlayer) player).getFavoriteAgent()));
|
||||
}
|
||||
if (player instanceof R6Player) {
|
||||
list.add(new CompetitorRow(player.getPlayerNumber(), player.getPlayerName(), player.getPlayerLevel(), player.getScores(), ((R6Player) player).getFavoriteAttacker(), ((R6Player) player).getFavoriteDefender()));
|
||||
}
|
||||
}
|
||||
return FXCollections.observableArrayList(list);
|
||||
competitorTable.setItems(ViewPage.loadTable(this.competitors.getCompetitors()));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
package com.r0r5chach;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.r0r5chach.r6.R6Player;
|
||||
import com.r0r5chach.valorant.ValorantPlayer;
|
||||
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.scene.control.TableColumn;
|
||||
import javafx.scene.control.TableView;
|
||||
import javafx.scene.control.cell.PropertyValueFactory;
|
||||
|
||||
public class ViewPage {
|
||||
|
||||
public static void generateTable(TableView<CompetitorRow> table) {
|
||||
TableColumn<CompetitorRow,Integer> playerNumCol = new TableColumn<CompetitorRow,Integer>("Player Number");
|
||||
TableColumn<CompetitorRow,String> playerNameCol = new TableColumn<CompetitorRow,String>("Player Name");
|
||||
TableColumn<CompetitorRow,Rank> playerLevelCol = new TableColumn<CompetitorRow,Rank>("Player Level");
|
||||
TableColumn<CompetitorRow,String> scoresCol = new TableColumn<CompetitorRow,String>("Player Scores");
|
||||
TableColumn<CompetitorRow,String> favoriteCharsCol = new TableColumn<CompetitorRow,String>("Favorite Characters");
|
||||
TableColumn<CompetitorRow,String> favoriteAgentCol = new TableColumn<CompetitorRow,String>("Agent");
|
||||
TableColumn<CompetitorRow,String> favoriteAttackerCol = new TableColumn<CompetitorRow,String>("Attacker");
|
||||
TableColumn<CompetitorRow,String> favoriteDefenderCol = new TableColumn<CompetitorRow,String>("Defender");
|
||||
playerNumCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,Integer>("playerNumber"));
|
||||
playerNameCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,String>("playerName"));
|
||||
playerLevelCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,Rank>("playerLevel"));
|
||||
scoresCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,String>("scores"));
|
||||
favoriteAgentCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,String>("favoriteAgent"));
|
||||
favoriteAttackerCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,String>("favoriteAttacker"));
|
||||
favoriteDefenderCol.setCellValueFactory(new PropertyValueFactory<CompetitorRow,String>("favoriteDefender"));
|
||||
table.getColumns().add(playerNumCol);
|
||||
table.getColumns().add(playerNameCol);
|
||||
table.getColumns().add(playerLevelCol);
|
||||
table.getColumns().add(scoresCol);
|
||||
favoriteCharsCol.getColumns().add(favoriteAgentCol);
|
||||
favoriteCharsCol.getColumns().add(favoriteAttackerCol);
|
||||
favoriteCharsCol.getColumns().add(favoriteDefenderCol);
|
||||
table.getColumns().add(favoriteCharsCol);
|
||||
}
|
||||
|
||||
public static ObservableList<CompetitorRow> loadTable(ArrayList<Competitor> list) {
|
||||
ArrayList<CompetitorRow> outputList = new ArrayList<>();
|
||||
for(Competitor player: list) {
|
||||
if (player instanceof ValorantPlayer) {
|
||||
outputList.add(new CompetitorRow(player.getPlayerNumber(), player.getPlayerName(), player.getPlayerLevel(), player.getScores(), ((ValorantPlayer) player).getFavoriteAgent()));
|
||||
}
|
||||
if (player instanceof R6Player) {
|
||||
outputList.add(new CompetitorRow(player.getPlayerNumber(), player.getPlayerName(), player.getPlayerLevel(), player.getScores(), ((R6Player) player).getFavoriteAttacker(), ((R6Player) player).getFavoriteDefender()));
|
||||
}
|
||||
}
|
||||
return FXCollections.observableArrayList(outputList);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
module com.r0r5chach {
|
||||
requires transitive javafx.graphics;
|
||||
|
||||
requires javafx.controls;
|
||||
requires transitive javafx.controls;
|
||||
requires javafx.fxml;
|
||||
|
||||
opens com.r0r5chach to javafx.fxml;
|
||||
|
|
|
|||
Loading…
Reference in New Issue