From c0e7e2f63a3003ef0bbb11d003dd2cd46c2cb566 Mon Sep 17 00:00:00 2001 From: leriomaggio Date: Sun, 31 Oct 2021 08:54:05 +0000 Subject: [PATCH] FIXING same bug for Commander editor too --- .../controllers/CCommanderDecks.java | 20 ++++++++++++++++++- .../deckeditor/views/VCommanderDecks.java | 7 ++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CCommanderDecks.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CCommanderDecks.java index 6f0c22469ee..08e7c5e6d52 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CCommanderDecks.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CCommanderDecks.java @@ -1,8 +1,12 @@ package forge.screens.deckeditor.controllers; +import forge.deck.DeckBase; import forge.deck.DeckProxy; import forge.gui.framework.ICDoc; +import forge.item.InventoryItem; +import forge.itemmanager.DeckManager; import forge.itemmanager.ItemManagerConfig; +import forge.screens.deckeditor.CDeckEditorUI; import forge.screens.deckeditor.views.VCommanderDecks; /** @@ -39,6 +43,20 @@ public enum CCommanderDecks implements ICDoc { */ @Override public void update() { - view.getLstDecks().setup(ItemManagerConfig.CONSTRUCTED_DECKS); + DeckManager deckManager = view.getLstDecks(); + deckManager.setup(ItemManagerConfig.CONSTRUCTED_DECKS); + if (deckManager.getSelectedIndex() == 0) { + // This may be default and so requiring potential update! + ACEditorBase editorCtrl = + CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController(); + if (editorCtrl != null) { + String currentDeckName = editorCtrl.getDeckController().getModelName(); + if (currentDeckName != null && currentDeckName.length() > 0) { + DeckProxy deckProxy = deckManager.stringToItem(currentDeckName); + if (deckProxy != null && !deckManager.getSelectedItem().equals(deckProxy)) + view.getLstDecks().setSelectedItem(deckProxy); + } + } + } } } diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VCommanderDecks.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VCommanderDecks.java index cddfddf5bf8..292cdb02ac8 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VCommanderDecks.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VCommanderDecks.java @@ -2,6 +2,7 @@ package forge.screens.deckeditor.views; import javax.swing.JPanel; +import forge.deck.DeckProxy; import forge.deck.io.DeckPreferences; import forge.game.GameType; import forge.gui.framework.DragCell; @@ -84,7 +85,11 @@ public enum VCommanderDecks implements IVDoc { parentBody.setLayout(new MigLayout("insets 5, gap 0, wrap, hidemode 3")); parentBody.add(new ItemManagerContainer(lstDecks), "push, grow"); String preferredDeck = DeckPreferences.getCommanderDeck(); - lstDecks.editDeck(lstDecks.stringToItem(preferredDeck)); + DeckProxy deckProxy = lstDecks.stringToItem(preferredDeck); + if (deckProxy != null) { + lstDecks.editDeck(deckProxy); + lstDecks.setSelectedItem(deckProxy); + } } //========== Retrieval methods