diff --git a/Mage.Client/src/main/java/mage/client/components/HoverButton.java b/Mage.Client/src/main/java/mage/client/components/HoverButton.java index fa4ee28ce6..4c47db80d9 100644 --- a/Mage.Client/src/main/java/mage/client/components/HoverButton.java +++ b/Mage.Client/src/main/java/mage/client/components/HoverButton.java @@ -219,4 +219,10 @@ public class HoverButton extends JPanel implements MouseListener { this.text = text; repaint(); } + + public void execute() { + if (isEnabled() && observer != null) { + observer.execute(); + } + } } diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPanel.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPanel.java index f946b465ab..a0ef1cb1f8 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPanel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPanel.java @@ -27,7 +27,6 @@ */ package mage.client.deckeditor.collection.viewer; -import mage.cards.decks.Constructed; import mage.client.cards.BigCard; import mage.client.util.sets.ConstructedFormats; @@ -35,7 +34,6 @@ import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.io.Console; /** * Pane with big card and mage book. @@ -95,6 +93,35 @@ public final class CollectionViewerPanel extends JPanel { }); jPanel1.add(big4x4); + JLabel label3 = new JLabel("Switch tabs:"); + label3.setAlignmentX(Component.LEFT_ALIGNMENT); + jPanel1.add(label3); + + JPanel buttonPanel = new JPanel(); + buttonPanel.setPreferredSize(new Dimension(200, 100)); + buttonPanel.setMaximumSize(new Dimension(Integer.MAX_VALUE, 100)); + //buttonPanel.setBorder(BorderFactory.createLineBorder(Color.RED)); + buttonPanel.setAlignmentX(Component.LEFT_ALIGNMENT); + jPanel1.add(buttonPanel); + + JButton prev = new JButton("Prev"); + prev.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + mageBook.prev(); + } + }); + buttonPanel.add(prev); + + JButton next = new JButton("Next"); + next.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + mageBook.next(); + } + }); + buttonPanel.add(next); + formats.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java index c41e41b35d..934de18963 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java @@ -52,7 +52,9 @@ import java.awt.*; import java.awt.image.BufferedImage; import java.io.FileNotFoundException; import java.io.InputStream; +import java.lang.reflect.Array; import java.util.ArrayList; +import java.util.Arrays; import java.util.UUID; /** @@ -167,11 +169,15 @@ public class MageBook extends JComponent { tab.setSet(set); tab.setBounds(0, y, 39, 120); final String _set = set; + final int _index = count; tab.setObserver(new Command() { @Override public void execute() { if (!currentSet.equals(_set) || currentPage != 0) { AudioManager.playAnotherTab(); + synchronized (this) { + selectedTab = _index; + } currentPage = 0; currentSet = _set; pageLeft.setVisible(false); @@ -181,12 +187,14 @@ public class MageBook extends JComponent { } } }); + tabs.add(tab); currentPanel.add(tab, JLayeredPane.DEFAULT_LAYER + count++, 0); y += dy; if (set.equals(currentSet)) { currentPanel = jPanelRight; image = imageRight; currentTab = tab; + selectedTab = count-1; } } jPanelLeft.revalidate(); @@ -287,6 +295,26 @@ public class MageBook extends JComponent { addSetTabs(); } + public void next() { + synchronized (this) { + selectedTab++; + if (selectedTab >= tabs.size()) { + selectedTab = 0; + } + tabs.get(selectedTab).execute(); + } + } + + public void prev() { + synchronized (this) { + selectedTab--; + if (selectedTab < 0) { + selectedTab = tabs.size() - 1; + } + tabs.get(selectedTab).execute(); + } + } + public void updateSize(String size) { if (size.equals("small")) { this.conf = new _3x3Configuration(); @@ -372,6 +400,8 @@ public class MageBook extends JComponent { private static final Logger log = Logger.getLogger(MageBook.class); private Dimension cardDimension; private java.util.List<String> setsToDisplay = new ArrayList<String>(); + private java.util.List<HoverButton> tabs = new ArrayList<HoverButton>(); + private int selectedTab; static private final String CENTER_PANEL_IMAGE_PATH = "/book_bg.jpg"; static private final String RIGHT_PANEL_IMAGE_PATH = "/book_right.jpg";