Net Deck Archive Vintage (Desktop implementation)

This commit is contained in:
Churrufli
2021-03-02 09:24:10 +01:00
parent 043e767c79
commit f02a3c8786
12 changed files with 1544 additions and 9 deletions

View File

@@ -47,6 +47,7 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
private NetDeckArchivePioneer NetDeckArchivePioneer;
private NetDeckArchiveModern NetDeckArchiveModern;
private NetDeckArchiveLegacy NetDeckArchiveLegacy;
private NetDeckArchiveVintage NetDeckArchiveVintage;
private boolean refreshingDeckType;
private boolean isForCommander;
@@ -295,6 +296,13 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
updateDecks(DeckProxy.getNetArchiveLegacyDecks(NetDeckArchiveLegacy), ItemManagerConfig.NET_DECKS);
}
private void updateNetArchiveVintageDecks() {
if (NetDeckArchiveVintage != null) {
decksComboBox.setText(NetDeckArchiveVintage.getDeckType());
}
updateDecks(DeckProxy.getNetArchiveVintageDecks(NetDeckArchiveVintage), ItemManagerConfig.NET_DECKS);
}
public Deck getDeck() {
final DeckProxy proxy = lstDecks.getSelectedItem();
if (proxy == null) {
@@ -453,7 +461,31 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
}); }
});
return;
//
} else if (ev.getDeckType() == DeckType.NET_ARCHIVE_VINTAGE_DECK&& !refreshingDeckType) {
if(lstDecks.getGameType() != GameType.Constructed)
return;
FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks
@Override
public void run() {
final NetDeckArchiveVintage category = NetDeckArchiveVintage.selectAndLoad(lstDecks.getGameType());
FThreads.invokeInEdtLater(new Runnable() {
@Override
public void run() {
if (category == null) {
decksComboBox.setDeckType(selectedDeckType); //restore old selection if user cancels
if (selectedDeckType == DeckType.NET_ARCHIVE_VINTAGE_DECK && NetDeckArchiveVintage != null) {
decksComboBox.setText(NetDeckArchiveVintage.getDeckType());
}
return;
}
NetDeckArchiveVintage = category;
refreshDecksList(ev.getDeckType(), true, ev);
}
}); }
});
return;
} else if ((ev.getDeckType() == DeckType.NET_DECK || ev.getDeckType() == DeckType.NET_COMMANDER_DECK) && !refreshingDeckType) {
FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks
@@ -584,6 +616,9 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
case NET_ARCHIVE_LEGACY_DECK:
updateNetArchiveLegacyDecks();
break;
case NET_ARCHIVE_VINTAGE_DECK:
updateNetArchiveVintageDecks();
break;
default:
break; //other deck types not currently supported here
}
@@ -611,6 +646,8 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
state.append(NetDeckArchivePioneer.PREFIX).append(NetDeckArchivePioneer.getName());
} else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_LEGACY_DECK) {
state.append(NetDeckArchiveLegacy.PREFIX).append(NetDeckArchiveLegacy.getName());
} else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_VINTAGE_DECK) {
state.append(NetDeckArchiveVintage.PREFIX).append(NetDeckArchiveVintage.getName());
} else if (decksComboBox.getDeckType() == null || decksComboBox.getDeckType() == DeckType.NET_DECK) {
//handle special case of net decks
if (netDeckCategory == null) { return ""; }
@@ -677,6 +714,9 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
} else if (deckType.startsWith(NetDeckArchiveLegacy.PREFIX)) {
NetDeckArchiveLegacy = NetDeckArchiveLegacy.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveLegacy.PREFIX.length()));
return DeckType.NET_ARCHIVE_LEGACY_DECK;
} else if (deckType.startsWith(NetDeckArchiveVintage.PREFIX)) {
NetDeckArchiveVintage = NetDeckArchiveVintage.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveVintage.PREFIX.length()));
return DeckType.NET_ARCHIVE_VINTAGE_DECK;
}
return DeckType.valueOf(deckType);
}