Skip to content

Commit

Permalink
#108 LT Planner now acts like the other planners
Browse files Browse the repository at this point in the history
  • Loading branch information
The-Intelligent-One committed Apr 17, 2022
1 parent 8a305a2 commit f3b0e6e
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,15 @@ public void refreshAllData(List<Servant> servantList, List<UpgradeMaterial> mate
inventoryManagementService.refreshInventory(fileServiceFacade.loadInventory(), materials);
userServantManagementService.refreshPlannerServants(PlannerType.REGULAR, fileServiceFacade.loadPlannedServantData(), servantList);
userServantManagementService.refreshPlannerServants(PlannerType.PRIORITY, fileServiceFacade.loadPriorityServantData(), servantList);
userServantManagementService.refreshPlannerServants(PlannerType.LT, fileServiceFacade.loadLongTermPlannedServantData(), servantList);
}

public void saveUserState(String gameRegion) {
fileServiceFacade.saveRoster(userServantManagementService.getClearedUserServantList());
fileServiceFacade.saveInventory(inventoryManagementService.getExportInventory());
fileServiceFacade.savePlannerServants(userServantManagementService.getClearedPlannerServantList(PlannerType.REGULAR));
fileServiceFacade.savePriorityServants(userServantManagementService.getClearedPlannerServantList(PlannerType.PRIORITY));
fileServiceFacade.saveLongTermServants(userServantManagementService.getClearedPlannerServantList(PlannerType.LT));
fileServiceFacade.saveDarkMode(darkMode.getValue());
fileServiceFacade.saveGameRegion(gameRegion);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,15 @@ public class UserServantManagementService {
private ObservableList<UserServant> rosterServantList;
private ObservableList<UserServant> plannerServantList;
private ObservableList<UserServant> priorityPlannerServantList;
private ObservableList<UserServant> longTermPlannerServantList;


public void initDataLists() {
userServantList = new HashSet<>();
rosterServantList = FXCollections.observableArrayList();
plannerServantList = FXCollections.observableArrayList();
priorityPlannerServantList = FXCollections.observableArrayList();
longTermPlannerServantList = FXCollections.observableArrayList();
}

private List<UserServant> clearUnnecessaryEmptyUserRows(List<UserServant> servantList) {
Expand Down Expand Up @@ -91,7 +93,9 @@ public void saveImportedPlannerServants(PlannerType plannerType,
private List<UserServant> createNewListWithUserServants(List<UserServant> importedServants) {
List<UserServant> newRoster = new ArrayList<>();
importedServants.forEach(userServant -> {
Optional<UserServant> existingUserServant = userServantList.stream().filter(existingServant -> existingServant.getSvtId() == userServant.getSvtId()).findFirst();
Optional<UserServant> existingUserServant = userServantList.stream()
.filter(existingServant -> existingServant.getSvtId() == userServant.getSvtId())
.findFirst();
existingUserServant.ifPresentOrElse(oldServant -> {
copyNewValuesIfApplicable(oldServant, userServant);
newRoster.add(oldServant);
Expand Down Expand Up @@ -198,6 +202,9 @@ private ObservableList<UserServant> getPlannerServantList(PlannerType plannerTyp
case PRIORITY:
chosenPlannerList = priorityPlannerServantList;
break;
case LT:
chosenPlannerList = longTermPlannerServantList;
break;
default:
chosenPlannerList = FXCollections.observableArrayList();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@ public void savePriorityServants(List<UserServant> servants) {
userFileServiceFacade.savePriorityPlannerServants(servants);
}

public void saveLongTermServants(List<UserServant> servants) {
userFileServiceFacade.saveLongTermPlannerServants(servants);
}

public void saveInventory(Inventory inventory) {
userFileServiceFacade.saveInventory(inventory);
}
Expand Down Expand Up @@ -129,6 +133,10 @@ public List<UserServant> loadPriorityServantData() {
return userFileServiceFacade.loadPriorityPlanner();
}

public List<UserServant> loadLongTermPlannedServantData() {
return userFileServiceFacade.loadLongTermPlanner();
}

public Inventory loadInventory() {
return userFileServiceFacade.loadInventory();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
public class PlannerFileService {
private static final String PLANNER_SERVANT_FILE = "planned.json";
private static final String PRIORITY_SERVANT_FILE = "priority.json";
private static final String LT_SERVANT_FILE = "priority.json";

@Autowired
private FileService fileService;
Expand All @@ -26,6 +27,10 @@ public void savePriorityPlannerServants(List<UserServant> servants) {
save(servants, fileService, PRIORITY_SERVANT_FILE);
}

public void saveLongTermPlannerServants(List<UserServant> servants) {
save(servants, fileService, LT_SERVANT_FILE);
}

private void save(List<UserServant> servants, FileService fileService, String file) {
List<UserServant> servantsToSave = new ArrayList<>(servants);
servantsToSave.replaceAll(userServant -> userServant.getSvtId() == 0 ? null : userServant);
Expand All @@ -40,6 +45,10 @@ public List<UserServant> loadPriorityPlanner() {
return load(PRIORITY_SERVANT_FILE);
}

public List<UserServant> loadLongTermPlanner() {
return load(LT_SERVANT_FILE);
}

private List<UserServant> load(String file) {
List<UserServant> loadedServants = fileService.loadUserDataList(file, new TypeReference<>() {});
loadedServants.forEach(this::makeRosterValuesValid);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ public void savePriorityPlannerServants(List<UserServant> servants) {
plannerFileService.savePriorityPlannerServants(servants);
}

public void saveLongTermPlannerServants(List<UserServant> servants) {
plannerFileService.saveLongTermPlannerServants(servants);
}

public void saveInventory(Inventory inventory) {
inventoryFileService.saveInventory(inventory);
}
Expand All @@ -54,6 +58,10 @@ public List<UserServant> loadPriorityPlanner() {
return plannerFileService.loadPriorityPlanner();
}

public List<UserServant> loadLongTermPlanner() {
return plannerFileService.loadLongTermPlanner();
}

public Inventory loadInventory() {
return inventoryFileService.loadInventory();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,20 +114,14 @@ private void setupTables() {
}

private void setupTableData() {
if (PlannerType.LT == plannerElements.getPlannerType()) {
loadLTData();
} else {
plannerElements.getPlannerTable()
.setItems(dataManagementServiceFacade.getPaddedPlannerServantList(plannerElements.getPlannerType()));
}
plannerElements.getPlannerTable()
.setItems(dataManagementServiceFacade.getPaddedPlannerServantList(plannerElements.getPlannerType()));
}

private void setupPlannerTable() {
if (PlannerType.LT != plannerElements.getPlannerType()) {
plannerElements.getPlannerTable().setEditable(true);
plannerElements.getNameColumn()
.setCellFactory(AutoCompleteTextFieldTableCell.forTableColumn(dataManagementServiceFacade.getServantNameList()));
}
plannerElements.getPlannerTable().setEditable(true);
plannerElements.getNameColumn()
.setCellFactory(AutoCompleteTextFieldTableCell.forTableColumn(dataManagementServiceFacade.getServantNameList()));
plannerElements.getPlannerTable().getColumns().addAll(createColumnsForAllMats());
plannerElements.getPlannerTable().setRowFactory(param -> {
PseudoClass lastRow = PseudoClass.getPseudoClass("last-row");
Expand Down Expand Up @@ -289,10 +283,8 @@ private void createContextMenuForInventoryTableRow(TableRow<Inventory> row) {

private void createContextMenuForPlannerTableRow(TableRow<UserServant> row) {
ContextMenu menu = createBasicPlannerContextMenu();
if (PlannerType.LT != plannerElements.getPlannerType()) {
List<MenuItem> editableMenuItems = createEditablePlannerTableMenuItems(row);
menu.getItems().addAll(editableMenuItems);
}
List<MenuItem> editableMenuItems = createEditablePlannerTableMenuItems(row);
menu.getItems().addAll(editableMenuItems);
row.contextMenuProperty().bind(Bindings.when(row.emptyProperty()).then((ContextMenu) null).otherwise(menu));
}

Expand Down

0 comments on commit f3b0e6e

Please sign in to comment.