mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Support retaining selected draft deck and sealed deck
This commit is contained in:
@@ -18,6 +18,7 @@ import forge.deck.DeckProxy;
|
|||||||
import forge.deck.FDeckChooser;
|
import forge.deck.FDeckChooser;
|
||||||
import forge.deck.FDeckEditor;
|
import forge.deck.FDeckEditor;
|
||||||
import forge.deck.FDeckEditor.EditorType;
|
import forge.deck.FDeckEditor.EditorType;
|
||||||
|
import forge.deck.io.DeckPreferences;
|
||||||
import forge.game.GameType;
|
import forge.game.GameType;
|
||||||
import forge.game.player.RegisteredPlayer;
|
import forge.game.player.RegisteredPlayer;
|
||||||
import forge.itemmanager.DeckManager;
|
import forge.itemmanager.DeckManager;
|
||||||
@@ -84,12 +85,14 @@ public class DraftScreen extends LaunchScreen {
|
|||||||
@Override
|
@Override
|
||||||
public void onActivate() {
|
public void onActivate() {
|
||||||
lstDecks.setPool(DeckProxy.getDraftDecks(FModel.getDecks().getDraft()));
|
lstDecks.setPool(DeckProxy.getDraftDecks(FModel.getDecks().getDraft()));
|
||||||
|
lstDecks.setSelectedString(DeckPreferences.getDraftDeck());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void editSelectedDeck() {
|
private void editSelectedDeck() {
|
||||||
final DeckProxy deck = lstDecks.getSelectedItem();
|
final DeckProxy deck = lstDecks.getSelectedItem();
|
||||||
if (deck == null) { return; }
|
if (deck == null) { return; }
|
||||||
|
|
||||||
|
DeckPreferences.setDraftDeck(deck.getName());
|
||||||
Forge.openScreen(new FDeckEditor(EditorType.Draft, deck.getDeck()));
|
Forge.openScreen(new FDeckEditor(EditorType.Draft, deck.getDeck()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
import forge.deck.DeckGroup;
|
import forge.deck.DeckGroup;
|
||||||
import forge.deck.FDeckEditor;
|
import forge.deck.FDeckEditor;
|
||||||
|
import forge.deck.io.DeckPreferences;
|
||||||
import forge.limited.BoosterDraft;
|
import forge.limited.BoosterDraft;
|
||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
import forge.toolbox.FOptionPane;
|
import forge.toolbox.FOptionPane;
|
||||||
@@ -83,6 +84,7 @@ public class DraftingProcessScreen extends FDeckEditor {
|
|||||||
|
|
||||||
FModel.getDecks().getDraft().add(finishedDraft);
|
FModel.getDecks().getDraft().add(finishedDraft);
|
||||||
this.getEditorType().getController().setDeckBase(finishedDraft);
|
this.getEditorType().getController().setDeckBase(finishedDraft);
|
||||||
|
DeckPreferences.setDraftDeck(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import forge.deck.DeckProxy;
|
|||||||
import forge.deck.FDeckChooser;
|
import forge.deck.FDeckChooser;
|
||||||
import forge.deck.FDeckEditor;
|
import forge.deck.FDeckEditor;
|
||||||
import forge.deck.FDeckEditor.EditorType;
|
import forge.deck.FDeckEditor.EditorType;
|
||||||
|
import forge.deck.io.DeckPreferences;
|
||||||
import forge.game.GameType;
|
import forge.game.GameType;
|
||||||
import forge.itemmanager.DeckManager;
|
import forge.itemmanager.DeckManager;
|
||||||
import forge.itemmanager.ItemManagerConfig;
|
import forge.itemmanager.ItemManagerConfig;
|
||||||
@@ -51,6 +52,7 @@ public class SealedScreen extends LaunchScreen {
|
|||||||
FThreads.invokeInEdtLater(new Runnable() {
|
FThreads.invokeInEdtLater(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
DeckPreferences.setSealedDeck(sealed.getName());
|
||||||
Forge.openScreen(new FDeckEditor(EditorType.Sealed, sealed.getHumanDeck()));
|
Forge.openScreen(new FDeckEditor(EditorType.Sealed, sealed.getHumanDeck()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -70,12 +72,14 @@ public class SealedScreen extends LaunchScreen {
|
|||||||
@Override
|
@Override
|
||||||
public void onActivate() {
|
public void onActivate() {
|
||||||
lstDecks.setPool(DeckProxy.getAllSealedDecks(FModel.getDecks().getSealed()));
|
lstDecks.setPool(DeckProxy.getAllSealedDecks(FModel.getDecks().getSealed()));
|
||||||
|
lstDecks.setSelectedString(DeckPreferences.getSealedDeck());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void editSelectedDeck() {
|
private void editSelectedDeck() {
|
||||||
final DeckProxy deck = lstDecks.getSelectedItem();
|
final DeckProxy deck = lstDecks.getSelectedItem();
|
||||||
if (deck == null) { return; }
|
if (deck == null) { return; }
|
||||||
|
|
||||||
|
DeckPreferences.setSealedDeck(deck.getName());
|
||||||
Forge.openScreen(new FDeckEditor(EditorType.Sealed, deck.getDeck()));
|
Forge.openScreen(new FDeckEditor(EditorType.Sealed, deck.getDeck()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,19 +21,36 @@ import org.w3c.dom.NodeList;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class DeckPreferences {
|
public class DeckPreferences {
|
||||||
private static String currentDeck;
|
private static String currentDeck, draftDeck, sealedDeck;
|
||||||
private static Map<String, DeckPreferences> allPrefs = new HashMap<String, DeckPreferences>();
|
private static Map<String, DeckPreferences> allPrefs = new HashMap<String, DeckPreferences>();
|
||||||
|
|
||||||
public static String getCurrentDeck() {
|
public static String getCurrentDeck() {
|
||||||
return currentDeck;
|
return currentDeck;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setCurrentDeck(String currentDeck0) {
|
public static void setCurrentDeck(String currentDeck0) {
|
||||||
if (currentDeck != null && currentDeck.equals(currentDeck0)) { return; }
|
if (currentDeck != null && currentDeck.equals(currentDeck0)) { return; }
|
||||||
currentDeck = currentDeck0;
|
currentDeck = currentDeck0;
|
||||||
save();
|
save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getDraftDeck() {
|
||||||
|
return draftDeck;
|
||||||
|
}
|
||||||
|
public static void setDraftDeck(String draftDeck0) {
|
||||||
|
if (draftDeck != null && draftDeck.equals(draftDeck0)) { return; }
|
||||||
|
draftDeck = draftDeck0;
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getSealedDeck() {
|
||||||
|
return sealedDeck;
|
||||||
|
}
|
||||||
|
public static void setSealedDeck(String sealedDeck0) {
|
||||||
|
if (sealedDeck != null && sealedDeck.equals(sealedDeck0)) { return; }
|
||||||
|
sealedDeck = sealedDeck0;
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
public static DeckPreferences getPrefs(DeckProxy deck) {
|
public static DeckPreferences getPrefs(DeckProxy deck) {
|
||||||
String key = deck.getUniqueKey();
|
String key = deck.getUniqueKey();
|
||||||
DeckPreferences prefs = allPrefs.get(key);
|
DeckPreferences prefs = allPrefs.get(key);
|
||||||
@@ -53,6 +70,8 @@ public class DeckPreferences {
|
|||||||
|
|
||||||
final Element root = (Element)document.getElementsByTagName("preferences").item(0);
|
final Element root = (Element)document.getElementsByTagName("preferences").item(0);
|
||||||
currentDeck = root.getAttribute("currentDeck");
|
currentDeck = root.getAttribute("currentDeck");
|
||||||
|
draftDeck = root.getAttribute("draftDeck");
|
||||||
|
sealedDeck = root.getAttribute("sealedDeck");
|
||||||
|
|
||||||
final NodeList cards = document.getElementsByTagName("deck");
|
final NodeList cards = document.getElementsByTagName("deck");
|
||||||
for (int i = 0; i < cards.getLength(); i++) {
|
for (int i = 0; i < cards.getLength(); i++) {
|
||||||
@@ -80,6 +99,8 @@ public class DeckPreferences {
|
|||||||
Element root = document.createElement("preferences");
|
Element root = document.createElement("preferences");
|
||||||
root.setAttribute("type", "decks");
|
root.setAttribute("type", "decks");
|
||||||
root.setAttribute("currentDeck", currentDeck);
|
root.setAttribute("currentDeck", currentDeck);
|
||||||
|
root.setAttribute("draftDeck", draftDeck);
|
||||||
|
root.setAttribute("sealedDeck", sealedDeck);
|
||||||
document.appendChild(root);
|
document.appendChild(root);
|
||||||
|
|
||||||
for (Map.Entry<String, DeckPreferences> entry : allPrefs.entrySet()) {
|
for (Map.Entry<String, DeckPreferences> entry : allPrefs.entrySet()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user