2023-01-31 17:19:32 +00:00
|
|
|
package com.r0r5chach;
|
|
|
|
|
|
2023-01-31 18:14:21 +00:00
|
|
|
import java.net.URL;
|
|
|
|
|
import java.util.ArrayList;
|
2023-02-01 14:28:41 +00:00
|
|
|
import java.util.Arrays;
|
2023-01-31 18:14:21 +00:00
|
|
|
import java.util.ResourceBundle;
|
2023-02-01 14:28:41 +00:00
|
|
|
import com.r0r5chach.r6.R6Attacker;
|
|
|
|
|
import com.r0r5chach.r6.R6Defender;
|
|
|
|
|
import com.r0r5chach.valorant.ValorantAgent;
|
2023-02-01 15:33:30 +00:00
|
|
|
import javafx.application.Platform;
|
2023-01-31 17:19:32 +00:00
|
|
|
import javafx.collections.FXCollections;
|
|
|
|
|
import javafx.fxml.FXML;
|
2023-01-31 18:14:21 +00:00
|
|
|
import javafx.fxml.Initializable;
|
2023-02-01 14:28:41 +00:00
|
|
|
import javafx.scene.control.Button;
|
|
|
|
|
import javafx.scene.control.ChoiceBox;
|
2023-01-31 17:19:32 +00:00
|
|
|
import javafx.scene.control.ListView;
|
2023-02-01 19:26:01 +00:00
|
|
|
import javafx.scene.control.TableView;
|
2023-01-31 18:14:21 +00:00
|
|
|
import javafx.scene.control.TextField;
|
|
|
|
|
import javafx.scene.text.Text;
|
2023-01-31 17:19:32 +00:00
|
|
|
|
2023-01-31 18:14:21 +00:00
|
|
|
public class MainController implements Initializable {
|
2023-01-31 17:19:32 +00:00
|
|
|
private CompetitorList competitors;
|
2023-01-31 18:14:21 +00:00
|
|
|
private ArrayList<Integer> competitorIds;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
ListView<Integer> competitorsList;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
TextField playerNumber;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
TextField playerName;
|
|
|
|
|
|
|
|
|
|
@FXML
|
2023-02-01 14:28:41 +00:00
|
|
|
ChoiceBox<Rank> playerLevel;
|
2023-01-31 18:14:21 +00:00
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
Text favoriteCharacters;
|
|
|
|
|
|
|
|
|
|
@FXML
|
2023-02-01 14:28:41 +00:00
|
|
|
ChoiceBox<R6Attacker> favoriteAttacker;
|
2023-01-31 17:19:32 +00:00
|
|
|
|
|
|
|
|
@FXML
|
2023-02-01 14:28:41 +00:00
|
|
|
ChoiceBox<ValorantAgent> favoriteAgent;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
ChoiceBox<R6Defender> favoriteDefender;
|
2023-01-31 18:14:21 +00:00
|
|
|
|
2023-02-01 13:51:13 +00:00
|
|
|
@FXML
|
|
|
|
|
TextField scores0;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
TextField scores1;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
TextField scores2;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
TextField scores3;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
TextField scores4;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
TextField scores5;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
TextField overallScore;
|
|
|
|
|
|
|
|
|
|
TextField[] scores;
|
|
|
|
|
|
2023-02-01 20:26:47 +00:00
|
|
|
TextField[] fields;
|
|
|
|
|
|
2023-02-01 14:28:41 +00:00
|
|
|
@FXML
|
|
|
|
|
Button updateButton;
|
|
|
|
|
|
2023-02-01 19:26:01 +00:00
|
|
|
@FXML
|
|
|
|
|
TableView<CompetitorRow> competitorTable;
|
2023-02-01 15:33:30 +00:00
|
|
|
|
2023-02-01 20:26:47 +00:00
|
|
|
@FXML
|
|
|
|
|
Button filterButton;
|
|
|
|
|
|
2023-01-31 18:14:21 +00:00
|
|
|
@Override
|
|
|
|
|
public void initialize(URL url, ResourceBundle rb) {
|
2023-02-01 15:33:30 +00:00
|
|
|
Platform.runLater(() -> {
|
2023-02-01 20:26:47 +00:00
|
|
|
scores = new TextField[]{scores0, scores1, scores2, scores3, scores4, scores5};
|
|
|
|
|
fields = new TextField[]{playerNumber, playerName, overallScore};
|
2023-02-01 15:33:30 +00:00
|
|
|
loadCompetitors();
|
2023-02-01 20:26:47 +00:00
|
|
|
ViewPage.generateTable(competitorTable);
|
2023-02-01 15:33:30 +00:00
|
|
|
loadEdit();
|
|
|
|
|
});
|
|
|
|
|
|
2023-02-01 14:28:41 +00:00
|
|
|
}
|
2023-02-01 14:45:52 +00:00
|
|
|
|
|
|
|
|
public void setCompetitors(CompetitorList list) {
|
|
|
|
|
this.competitors = list;
|
|
|
|
|
}
|
2023-02-01 14:28:41 +00:00
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private void getCompetitor() {
|
2023-02-01 20:26:47 +00:00
|
|
|
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);
|
2023-02-01 14:28:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private void updateCompetitor() {
|
2023-02-01 20:26:47 +00:00
|
|
|
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);
|
2023-02-01 14:28:41 +00:00
|
|
|
competitorIds.set(playerIndex, player.getPlayerNumber());
|
2023-02-01 15:33:30 +00:00
|
|
|
loadEdit();
|
2023-02-01 20:26:47 +00:00
|
|
|
EditPage.loadPlayer(player, fields, playerLevel);
|
|
|
|
|
EditPage.loadFavoriteCharacters(player, favoriteAttacker, favoriteDefender, favoriteAgent, favoriteCharacters);
|
|
|
|
|
EditPage.loadScores(player, scores);
|
2023-02-01 14:28:41 +00:00
|
|
|
}
|
2023-01-31 17:19:32 +00:00
|
|
|
|
|
|
|
|
private void loadCompetitors(){
|
2023-01-31 18:14:21 +00:00
|
|
|
this.competitorIds = new ArrayList<Integer>();
|
|
|
|
|
for (Competitor player : this.competitors.getCompetitors()) {
|
|
|
|
|
this.competitorIds.add(player.getPlayerNumber());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-01 15:33:30 +00:00
|
|
|
@FXML
|
|
|
|
|
private void loadEdit() {
|
|
|
|
|
competitorsList.setItems(FXCollections.observableList(this.competitorIds));
|
2023-02-01 14:28:41 +00:00
|
|
|
playerLevel.setItems(FXCollections.observableList(Arrays.asList(Rank.values())));
|
|
|
|
|
favoriteAttacker.setItems(FXCollections.observableList(Arrays.asList(R6Attacker.values())));
|
|
|
|
|
favoriteDefender.setItems(FXCollections.observableList(Arrays.asList(R6Defender.values())));
|
|
|
|
|
favoriteAgent.setItems(FXCollections.observableList(Arrays.asList(ValorantAgent.values())));
|
2023-01-31 18:14:21 +00:00
|
|
|
}
|
|
|
|
|
|
2023-02-01 19:27:50 +00:00
|
|
|
@FXML
|
|
|
|
|
private void loadView() {
|
2023-02-01 20:26:47 +00:00
|
|
|
competitorTable.setItems(ViewPage.loadTable(this.competitors.getCompetitors()));
|
2023-02-01 19:26:01 +00:00
|
|
|
}
|
2023-01-31 18:25:23 +00:00
|
|
|
}
|