From d051cb7b42666586bd14dfd88bcc21c4a67197a1 Mon Sep 17 00:00:00 2001 From: "ludwig.hirth" Date: Fri, 2 Dec 2016 16:06:34 +0100 Subject: [PATCH] * Some client menu changes. --- .../src/main/java/mage/client/MageFrame.form | 112 ++++++--- .../src/main/java/mage/client/MageFrame.java | 229 +++++++++--------- .../mage/client/components/tray/MageTray.java | 11 +- .../card/dl/beans/EventListenerList.java | 71 +++--- Mage.Client/src/main/resources/menu/about.png | Bin 0 -> 860 bytes .../src/main/resources/menu/collection.png | Bin 0 -> 366 bytes .../src/main/resources/menu/connect.png | Bin 0 -> 636 bytes .../src/main/resources/menu/deck_editor.png | Bin 0 -> 271 bytes .../src/main/resources/menu/feedback.png | Bin 0 -> 547 bytes .../src/main/resources/menu/images.png | Bin 0 -> 811 bytes .../src/main/resources/menu/memory.png | Bin 0 -> 675 bytes .../src/main/resources/menu/preferences.png | Bin 0 -> 512 bytes .../src/main/resources/menu/symbol.png | Bin 0 -> 376 bytes 13 files changed, 226 insertions(+), 197 deletions(-) create mode 100644 Mage.Client/src/main/resources/menu/about.png create mode 100644 Mage.Client/src/main/resources/menu/collection.png create mode 100644 Mage.Client/src/main/resources/menu/connect.png create mode 100644 Mage.Client/src/main/resources/menu/deck_editor.png create mode 100644 Mage.Client/src/main/resources/menu/feedback.png create mode 100644 Mage.Client/src/main/resources/menu/images.png create mode 100644 Mage.Client/src/main/resources/menu/memory.png create mode 100644 Mage.Client/src/main/resources/menu/preferences.png create mode 100644 Mage.Client/src/main/resources/menu/symbol.png diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.form b/Mage.Client/src/main/java/mage/client/MageFrame.form index f0741e20828..de5ca825483 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.form +++ b/Mage.Client/src/main/java/mage/client/MageFrame.form @@ -26,8 +26,8 @@ - - + + @@ -78,9 +78,12 @@ + + + - + @@ -91,35 +94,36 @@ - + + + + - + - - - + - - + + - + - - - + + + - + @@ -130,9 +134,12 @@ - + + + + - + @@ -143,9 +150,12 @@ + + + - + @@ -154,11 +164,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -167,30 +214,15 @@ - - - - - - - - - - - + + + + - - - - - - - - - - + + diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index 5b91c2b29b8..c6eec4f6d83 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -63,7 +63,6 @@ import java.util.concurrent.TimeUnit; import java.util.prefs.Preferences; import javax.imageio.ImageIO; import javax.swing.AbstractButton; -import javax.swing.Box; import javax.swing.ImageIcon; import javax.swing.InputMap; import javax.swing.JButton; @@ -79,7 +78,6 @@ import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JToggleButton; -import javax.swing.JToolBar.Separator; import javax.swing.KeyStroke; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; @@ -357,41 +355,8 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { balloonTip.setPositioner(new LeftAbovePositioner(0, 0)); balloonTip.setVisible(false); - mageToolbar.add(new javax.swing.JToolBar.Separator()); - mageToolbar.add(createWindowsButton()); - - //TODO: move to plugin impl - if (Plugins.getInstance().isCardPluginLoaded()) { - Separator separator = new javax.swing.JToolBar.Separator(); - mageToolbar.add(separator); - - JButton btnDownloadSymbols = new JButton("Symbols"); - btnDownloadSymbols.setFocusable(false); - btnDownloadSymbols.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnDownloadSymbols.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnDownloadSymbols.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSymbolsActionPerformed(evt); - } - }); - mageToolbar.add(btnDownloadSymbols); - - separator = new javax.swing.JToolBar.Separator(); - mageToolbar.add(separator); - - JButton btnDownload = new JButton("Images"); - btnDownload.setFocusable(false); - btnDownload.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnDownload.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnDownload.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnImagesActionPerformed(evt); - } - }); - mageToolbar.add(btnDownload); - } + mageToolbar.add(createSwitchPanelsButton(), 0); + mageToolbar.add(new javax.swing.JToolBar.Separator(), 1); if (Plugins.getInstance().isCounterPluginLoaded()) { int i = Plugins.getInstance().getGamesPlayed(); @@ -402,8 +367,6 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { label.setBounds(0, 0, 180, 30); } - UI.addButton(MageComponents.TABLES_MENU_BUTTON, btnGames); - setGUISize(); SwingUtilities.invokeLater(new Runnable() { @@ -567,22 +530,22 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { setIconImage(image); } - private AbstractButton createWindowsButton() { - final JToggleButton windowButton = new JToggleButton("Windows"); - windowButton.addItemListener(new ItemListener() { + private AbstractButton createSwitchPanelsButton() { + final JToggleButton switchPanelsButton = new JToggleButton("Switch panels"); + switchPanelsButton.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { - createAndShowMenu((JComponent) e.getSource(), windowButton); + createAndShowSwitchPanelsMenu((JComponent) e.getSource(), switchPanelsButton); } } }); - windowButton.setFocusable(false); - windowButton.setHorizontalTextPosition(SwingConstants.LEADING); - return windowButton; + switchPanelsButton.setFocusable(false); + switchPanelsButton.setHorizontalTextPosition(SwingConstants.LEADING); + return switchPanelsButton; } - private void createAndShowMenu(final JComponent component, final AbstractButton windowButton) { + private void createAndShowSwitchPanelsMenu(final JComponent component, final AbstractButton windowButton) { JPopupMenu menu = new JPopupMenu(); JInternalFrame[] windows = desktopPane.getAllFramesInLayer(javax.swing.JLayeredPane.DEFAULT_LAYER); MagePaneMenuItem menuItem; @@ -641,18 +604,16 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { } } - public void btnImagesActionPerformed(java.awt.event.ActionEvent evt) { - List cards = CardRepository.instance.findCards(new CardCriteria()); - DownloadPictures.startDownload(null, cards); - } - - public void btnSymbolsActionPerformed(java.awt.event.ActionEvent evt) { - UserRequestMessage message = new UserRequestMessage("Download additional resources", "Do you want to download game symbols and additional image files?"); - message.setButton1("No", null); - message.setButton2("Yes", PlayerAction.CLIENT_DOWNLOAD_SYMBOLS); - showUserRequestDialog(message); - } - +// public void btnImagesActionPerformed(java.awt.event.ActionEvent evt) { +// List cards = CardRepository.instance.findCards(new CardCriteria()); +// DownloadPictures.startDownload(null, cards); +// } +// public void btnSymbolsActionPerformed(java.awt.event.ActionEvent evt) { +// UserRequestMessage message = new UserRequestMessage("Download additional resources", "Do you want to download game symbols and additional image files?"); +// message.setButton1("No", null); +// message.setButton2("Yes", PlayerAction.CLIENT_DOWNLOAD_SYMBOLS); +// showUserRequestDialog(message); +// } public static void setActive(MagePane frame) { if (frame == null) { activeFrame = null; @@ -888,8 +849,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { btnPreferences = new javax.swing.JButton(); jSeparator4 = new javax.swing.JToolBar.Separator(); btnConnect = new javax.swing.JButton(); - jSeparator3 = new javax.swing.JToolBar.Separator(); - btnGames = new javax.swing.JButton(); + lblStatus = new javax.swing.JLabel(); jSeparator1 = new javax.swing.JToolBar.Separator(); btnDeckEditor = new javax.swing.JButton(); jSeparator2 = new javax.swing.JToolBar.Separator(); @@ -897,12 +857,13 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { jSeparator5 = new javax.swing.JToolBar.Separator(); btnSendFeedback = new javax.swing.JButton(); jSeparator6 = new javax.swing.JToolBar.Separator(); + btnSymbols = new javax.swing.JButton(); + jSeparatorSymbols = new javax.swing.JToolBar.Separator(); + btnImages = new javax.swing.JButton(); + jSeparatorImages = new javax.swing.JToolBar.Separator(); btnAbout = new javax.swing.JButton(); jSeparator7 = new javax.swing.JToolBar.Separator(); - btnExit = new javax.swing.JButton(); jMemUsageLabel = new javax.swing.JLabel(); - jSeparator8 = new javax.swing.JToolBar.Separator(); - lblStatus = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); setMinimumSize(new java.awt.Dimension(1024, 768)); @@ -916,9 +877,10 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { mageToolbar.setMinimumSize(new java.awt.Dimension(566, 60)); mageToolbar.setPreferredSize(new java.awt.Dimension(614, 60)); + btnPreferences.setIcon(new javax.swing.ImageIcon(getClass().getResource("/menu/preferences.png"))); // NOI18N btnPreferences.setText("Preferences"); btnPreferences.setFocusable(false); - btnPreferences.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnPreferences.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnPreferences.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnPreferences.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -928,9 +890,10 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { mageToolbar.add(btnPreferences); mageToolbar.add(jSeparator4); - btnConnect.setText("Connect"); + btnConnect.setIcon(new javax.swing.ImageIcon(getClass().getResource("/menu/connect.png"))); // NOI18N + btnConnect.setToolTipText("Connect to or disconnect from a XMage server."); btnConnect.setFocusable(false); - btnConnect.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnConnect.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnConnect.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnConnect.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -938,23 +901,18 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { } }); mageToolbar.add(btnConnect); - mageToolbar.add(jSeparator3); - btnGames.setText("Games"); - btnGames.setFocusable(false); - btnGames.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnGames.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnGames.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnGamesActionPerformed(evt); - } - }); - mageToolbar.add(btnGames); + lblStatus.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); + lblStatus.setText("Not connected"); + lblStatus.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + lblStatus.setInheritsPopupMenu(false); + mageToolbar.add(lblStatus); mageToolbar.add(jSeparator1); + btnDeckEditor.setIcon(new javax.swing.ImageIcon(getClass().getResource("/menu/deck_editor.png"))); // NOI18N btnDeckEditor.setText("Deck Editor"); btnDeckEditor.setFocusable(false); - btnDeckEditor.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnDeckEditor.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnDeckEditor.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnDeckEditor.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -964,9 +922,10 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { mageToolbar.add(btnDeckEditor); mageToolbar.add(jSeparator2); - btnCollectionViewer.setText("Collection Viewer"); + btnCollectionViewer.setIcon(new javax.swing.ImageIcon(getClass().getResource("/menu/collection.png"))); // NOI18N + btnCollectionViewer.setText("Viewer"); btnCollectionViewer.setFocusable(false); - btnCollectionViewer.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnCollectionViewer.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnCollectionViewer.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnCollectionViewer.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -976,9 +935,10 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { mageToolbar.add(btnCollectionViewer); mageToolbar.add(jSeparator5); + btnSendFeedback.setIcon(new javax.swing.ImageIcon(getClass().getResource("/menu/feedback.png"))); // NOI18N btnSendFeedback.setText("Feedback"); btnSendFeedback.setFocusable(false); - btnSendFeedback.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnSendFeedback.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnSendFeedback.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnSendFeedback.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -988,9 +948,38 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { mageToolbar.add(btnSendFeedback); mageToolbar.add(jSeparator6); + btnSymbols.setIcon(new javax.swing.ImageIcon(getClass().getResource("/menu/symbol.png"))); // NOI18N + btnSymbols.setText("Symbols"); + btnSymbols.setToolTipText("Load symbols from the internet.
\nYou need to do that only once."); + btnSymbols.setFocusable(false); + btnSymbols.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); + btnSymbols.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + btnSymbols.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnSymbolsActionPerformed(evt); + } + }); + mageToolbar.add(btnSymbols); + mageToolbar.add(jSeparatorSymbols); + + btnImages.setIcon(new javax.swing.ImageIcon(getClass().getResource("/menu/images.png"))); // NOI18N + btnImages.setText("Images"); + btnImages.setToolTipText("Load card images from external sources."); + btnImages.setFocusable(false); + btnImages.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); + btnImages.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + btnImages.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnImagesActionPerformed(evt); + } + }); + mageToolbar.add(btnImages); + mageToolbar.add(jSeparatorImages); + + btnAbout.setIcon(new javax.swing.ImageIcon(getClass().getResource("/menu/about.png"))); // NOI18N btnAbout.setText("About"); btnAbout.setFocusable(false); - btnAbout.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnAbout.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnAbout.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnAbout.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -1000,31 +989,19 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { mageToolbar.add(btnAbout); mageToolbar.add(jSeparator7); - btnExit.setText("Exit"); - btnExit.setFocusable(false); - btnExit.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnExit.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExit.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExitActionPerformed(evt); - } - }); - mageToolbar.add(btnExit); - + jMemUsageLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); + jMemUsageLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/menu/memory.png"))); // NOI18N jMemUsageLabel.setText("100% Free mem"); - mageToolbar.add(Box.createHorizontalGlue()); + jMemUsageLabel.setFocusable(false); + jMemUsageLabel.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); mageToolbar.add(jMemUsageLabel); - mageToolbar.add(jSeparator8); - - lblStatus.setText("Not connected "); - mageToolbar.add(lblStatus); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(desktopPane) - .addComponent(mageToolbar, javax.swing.GroupLayout.DEFAULT_SIZE, 697, Short.MAX_VALUE) + .addComponent(desktopPane, javax.swing.GroupLayout.DEFAULT_SIZE, 769, Short.MAX_VALUE) + .addComponent(mageToolbar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -1041,14 +1018,6 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { showDeckEditor(DeckEditorMode.FREE_BUILDING, null, null, 0); }//GEN-LAST:event_btnDeckEditorActionPerformed - private void btnGamesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnGamesActionPerformed - this.showGames(true); - }//GEN-LAST:event_btnGamesActionPerformed - - private void btnExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExitActionPerformed - exitApp(); - }//GEN-LAST:event_btnExitActionPerformed - private void btnConnectActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnConnectActionPerformed if (SessionHandler.isConnected()) { UserRequestMessage message = new UserRequestMessage("Confirm disconnect", "Are you sure you want to disconnect?"); @@ -1090,6 +1059,26 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { FeedbackDialog.main(new String[]{}); }//GEN-LAST:event_btnSendFeedbackActionPerformed + private void btnSymbolsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSymbolsActionPerformed + downloadAdditionalResources(); + }//GEN-LAST:event_btnSymbolsActionPerformed + + public void downloadAdditionalResources() { + UserRequestMessage message = new UserRequestMessage("Download additional resources", "Do you want to download game symbols and additional image files?"); + message.setButton1("No", null); + message.setButton2("Yes", PlayerAction.CLIENT_DOWNLOAD_SYMBOLS); + showUserRequestDialog(message); + } + + private void btnImagesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnImagesActionPerformed + downloadImages(); + }//GEN-LAST:event_btnImagesActionPerformed + + public void downloadImages() { + List cards = CardRepository.instance.findCards(new CardCriteria()); + DownloadPictures.startDownload(null, cards); + } + public void exitApp() { if (SessionHandler.isConnected()) { UserRequestMessage message = new UserRequestMessage("Confirm disconnect", "You are currently connected. Are you sure you want to disconnect?"); @@ -1106,15 +1095,11 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { public void enableButtons() { btnConnect.setEnabled(true); - btnConnect.setText("Disconnect"); - btnGames.setEnabled(true); btnDeckEditor.setEnabled(true); } public void disableButtons() { btnConnect.setEnabled(true); - btnConnect.setText("Connect"); - btnGames.setEnabled(false); btnDeckEditor.setEnabled(true); } @@ -1131,9 +1116,9 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { if (setActive) { setActive(tablesPane); } else // if other panel was already shown, mamke sure it's topmost again - if (topPanebefore != null) { - setActive(topPanebefore); - } + if (topPanebefore != null) { + setActive(topPanebefore); + } } public void hideGames() { @@ -1305,20 +1290,20 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { private javax.swing.JButton btnCollectionViewer; private javax.swing.JButton btnConnect; private javax.swing.JButton btnDeckEditor; - private javax.swing.JButton btnExit; - private javax.swing.JButton btnGames; + private javax.swing.JButton btnImages; private javax.swing.JButton btnPreferences; private javax.swing.JButton btnSendFeedback; + private javax.swing.JButton btnSymbols; private static javax.swing.JDesktopPane desktopPane; private javax.swing.JLabel jMemUsageLabel; private javax.swing.JToolBar.Separator jSeparator1; private javax.swing.JToolBar.Separator jSeparator2; - private javax.swing.JToolBar.Separator jSeparator3; private javax.swing.JToolBar.Separator jSeparator4; private javax.swing.JToolBar.Separator jSeparator5; private javax.swing.JToolBar.Separator jSeparator6; private javax.swing.JToolBar.Separator jSeparator7; - private javax.swing.JToolBar.Separator jSeparator8; + private javax.swing.JToolBar.Separator jSeparatorImages; + private javax.swing.JToolBar.Separator jSeparatorSymbols; private javax.swing.JLabel lblStatus; private javax.swing.JToolBar mageToolbar; // End of variables declaration//GEN-END:variables @@ -1330,7 +1315,9 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { public void setStatusText(String status) { this.lblStatus.setText(status); - changeGUISize(); // Needed to layout the tooltbar after text length chnage + changeGUISize(); // Needed to layout the tooltbar after text length change + this.lblStatus.repaint(); + this.lblStatus.revalidate(); } public static MageUI getUI() { diff --git a/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java b/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java index 85079256e2b..f016f0edd24 100644 --- a/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java +++ b/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java @@ -1,12 +1,11 @@ package mage.client.components.tray; -import mage.client.MageFrame; -import org.apache.log4j.Logger; -import org.mage.plugins.card.utils.impl.ImageManagerImpl; - import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import mage.client.MageFrame; +import org.apache.log4j.Logger; +import org.mage.plugins.card.utils.impl.ImageManagerImpl; /** * @author noxx @@ -63,14 +62,14 @@ public class MageTray { imagesItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - MageFrame.getInstance().btnImagesActionPerformed(null); + MageFrame.getInstance().downloadImages(); } }); iconsItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - MageFrame.getInstance().btnSymbolsActionPerformed(null); + MageFrame.getInstance().downloadAdditionalResources(); } }); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/EventListenerList.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/EventListenerList.java index e17eee6e69d..aaf87ff37f6 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/EventListenerList.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/EventListenerList.java @@ -1,39 +1,37 @@ /** * EventListenerList.java - * + * * Created on 08.04.2010 */ - package org.mage.plugins.card.dl.beans; - -import static java.util.Arrays.*; - -import java.util.ArrayList; -import java.util.EventListener; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; - import com.google.common.base.Function; import com.google.common.collect.AbstractIterator; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; - +import java.util.ArrayList; +import static java.util.Arrays.*; +import java.util.EventListener; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; /** * The class EventListenerList. - * + * * @version V0.0 08.04.2010 * @author Clemens Koza */ public class EventListenerList extends javax.swing.event.EventListenerList { + private static final long serialVersionUID = -7545754245081842909L; /** - * Returns an iterable over all listeners for the specified classes. the listener classes are in the specified - * order. for every class, listeners are in the reverse order of registering. A listener contained multiple - * times (for a single or multiple classes) is only returned the first time it occurs. + * Returns an iterable over all listeners for the specified classes. the + * listener classes are in the specified order. for every class, listeners + * are in the reverse order of registering. A listener contained multiple + * times (for a single or multiple classes) is only returned the first time + * it occurs. */ public Iterable getIterable(final Class... listenerClass) { //transform class -> iterable @@ -51,22 +49,30 @@ public class EventListenerList extends javax.swing.event.EventListenerList { } /** - * Returns an iterator over all listeners for the specified classes. the listener classes are in the specified - * order. for every class, listeners are in the reverse order of registering. A listener contained multiple - * times (for a single or multiple classes) is only returned the first time it occurs. + * Returns an iterator over all listeners for the specified classes. the + * listener classes are in the specified order. for every class, listeners + * are in the reverse order of registering. A listener contained multiple + * times (for a single or multiple classes) is only returned the first time + * it occurs. + * + * @param + * @param listenerClass + * @return */ public Iterator getIterator(Class... listenerClass) { return getIterable(listenerClass).iterator(); } /** - * Iterates backwards over the listeners registered for a class by using the original array. The Listener runs - * backwards, just as listener notification usually works. + * Iterates backwards over the listeners registered for a class by using the + * original array. The Listener runs backwards, just as listener + * notification usually works. */ private class ListenerIterator extends AbstractIterator { + private final Class listenerClass; - private Object[] listeners = listenerList; - private int index = listeners.length; + private Object[] listeners = listenerList; + private int index = listeners.length; private ListenerIterator(Class listenerClass) { this.listenerClass = listenerClass; @@ -75,8 +81,10 @@ public class EventListenerList extends javax.swing.event.EventListenerList { @Override @SuppressWarnings("unchecked") protected T computeNext() { - for(index -= 2; index >= 0; index -= 2) { - if(listenerClass == listeners[index]) return (T) listeners[index + 1]; + for (index -= 2; index >= 0; index -= 2) { + if (listenerClass == listeners[index]) { + return (T) listeners[index + 1]; + } } return endOfData(); } @@ -98,22 +106,25 @@ public class EventListenerList extends javax.swing.event.EventListenerList { } /** - * Filters the delegate iterator so that every but the first occurrence of every element is ignored. + * Filters the delegate iterator so that every but the first occurrence of + * every element is ignored. */ private static class SingletonIterator extends AbstractIterator { + private Iterator it; - private HashSet previous = new HashSet(); + private HashSet previous = new HashSet(); public SingletonIterator(Iterator it) { this.it = it; } - @Override protected T computeNext() { - while(it.hasNext()) { + while (it.hasNext()) { T next = it.next(); - if(previous.add(next)) return next; + if (previous.add(next)) { + return next; + } } return endOfData(); } diff --git a/Mage.Client/src/main/resources/menu/about.png b/Mage.Client/src/main/resources/menu/about.png new file mode 100644 index 0000000000000000000000000000000000000000..f05319ae1775414f65c14f1c2c8ebf2f6470ce16 GIT binary patch literal 860 zcmV-i1Ec(jP)ei-AHpJuh@@V^>}3TXZ=lsrp{_}mne+KvG z{jLLzwYGx>L6EkHl;(3BCs?LAl}@L^oQ+OC>D=k-yPI4DsH#6!%5(g!wd;$^DmRs* za8(}sssaYUf}Y0s#57)o-yj@*Gie&BQ@x?vkA4C6G&JqfvU583?XC5#DJ<}s+~Z=X zAEsrawQduGQP_@yFH&7lI1K3K=U5VV z`adD2+bAmxV2LJq0GUcCDk|beKaN$cE-vZeOUf&+Z{5CgYyQeyriXYFQ)v@~Ve*&w zupvJOt8*wUW{jJzI-c(G51qIMe3&w)s6}W|0?>z>kvZtovXbpoq zNVA$`iopr6JP-g?)SZMC1(-6VjBgMG0jeS+J5$4zrrn6@9Oi85J=2(>nootQ%AR$u zQc)08K@#{G*0_Q&ER`fkk_br@p~?z$NH86V6^ii5JX6M+c-}MEvMh*%OcFy+KS|9e zel&}M*X*7}mX4&t7F7r$&&;Eqfo@VZ7UoWHU02-W-J&F%f{$+i0000OUv)Pd114?^w=ga+$cDRkfH|T|!U7k@Lzoc4 zLWLb+76=2`OJ2^WwBVyGdP`2vsuUF*9^>4AOVP? zh_WmZks-vf^;Z$VzJ=eq4#am`xZQ4u2%hIrRh2aZ$8l(y2Cemc3w2!+h9R!&0+6QZ zWTYSnx{htz3BEdb*LD1Dd`qnv7-KNTptVM8Jv@)eHvHvp{Nlg(2Cr76iZUI>SO5S3 M07*qoM6N<$f_9&r#sB~S literal 0 HcmV?d00001 diff --git a/Mage.Client/src/main/resources/menu/connect.png b/Mage.Client/src/main/resources/menu/connect.png new file mode 100644 index 0000000000000000000000000000000000000000..830f2a0e5c6c3e587c9ed519ba16c7f4d72aa305 GIT binary patch literal 636 zcmV-?0)zdDP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ;0!c(cRCwBqlCf?RK@f)jncF*OSGLcblM@mm??45jfC7akf)@E5kdP=43J?hb z=^_+~M+iIsC=DhB>8N-FDilONuBfzL8TN;36)|IGaV(B9sA0DyB2tyT-n zjI+vn4*)DuJt&HDbawZDU|rW>=6lBILu1S}X8y_-1&L_A+wFcy)AVB$wZ3_eCjh4E zEYN!oW?pZ%+mCv^-kMShO=Q%_w)U|^mB6#l+MbV8o?(W2K@21uoL<9g35gZ*Iz031_ z)7lc=10q$kCD<4PV+@ky((g1)54F}m7vh45z*>8^D5e`Ca(R}-JnmpH7ytmmFdS*E z4~XakfDwSJ0Q$^~PN&m1#@z891LtJLx%$Vf2fXNka}FmbC%=x5kGIRR{7gh3B7|Xx ze!q{^)zvG@%PY5nfYZMV5|p(TOG`@-5oB2g5kVA1uR5L1LjWKmIOkARc34%_u2O2h z@n@bwbI=L_GKA)E~@}c#|Z_Mi4Nj)5*}<1|%#_JtZ)M zcj7pHEFuS!N%{6Xa4z7z*I^jG)LLIJisF7ZVN*pyFj-=0HX-Q$4Z4b#v}7JO)XeD-ZO7xnX=xo^Pri-ADJu;D+jY1 zZ4!q~7PQ?I5EQX#;bE?PZ+K<*5jIvohD~p+1fB~>is=5RImmRRePN@oPk_LePgx3a zJ}E#(5$lySPNk+M4Snqgp7AFf9VbmMRE>!UnDFGOjLGzaJpXu)>~4%;XrErl6cZQL zDAjiMG|!P|0!e#(1SUL6UBs|4PEGQ`XCqgJyQg({LYTCUi1-^YFw9);GdE@JaTlOx O7(8A5T-G@yGywpD4qKxD literal 0 HcmV?d00001 diff --git a/Mage.Client/src/main/resources/menu/feedback.png b/Mage.Client/src/main/resources/menu/feedback.png new file mode 100644 index 0000000000000000000000000000000000000000..449bb13db21512076dd94680c8966a38f1c390bd GIT binary patch literal 547 zcmV+;0^I$HP)pF7<5HgbW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$BHmT?0B>(^cp-DtRR5(wylgmp2Q51)#KgC_{tA%a~T7~o=2rD5WG_nXGD+od; z$)FZt8MO$CG$z7G(H_!>r9StQhjk74e)_d9dvo+YU@|#2=0YdCL47bM*CK$x2)e2Ur#G+iDt`g*OIaHE; zVBmL;fu^?*j&Lx~&Vh5gF|5^|R0%SfOev$tE$71dVF!3tg$O%|ndwP*kB&jsN!~&{ z9*0QuipB}uh78w>^i>~rR~tb)*S_PD0+wY#2nDv`bGG6>rUiG_4d;piKG#AiCL$?d z7~#C$P5AekaTo4JG@!?uG002ovPDHLkV1jRD<$C}C literal 0 HcmV?d00001 diff --git a/Mage.Client/src/main/resources/menu/images.png b/Mage.Client/src/main/resources/menu/images.png new file mode 100644 index 0000000000000000000000000000000000000000..91b5df72437b06c5b4ada44f3ad15d575d990975 GIT binary patch literal 811 zcmV+`1JwM9P)dt$&e zjrM(U#uyaE=1xmv9h#<(Qo3H|Y~1#O-EAus7jJY!Q*}gQ3~&1TAbIWAuD~=CT@(dy zyB?Ad(9n7rDJcR6(>R{G9)Zg)+HM5i*N>4^(SbAPx*+?mu4?d2J+lPzt6OpQe3upP z1T?IB+&Iy636jery6}WUdZijB`Lzuk!I)L}L$8H@gIlq_xB@31w_?9hhrI{`aS$ag zv2g6pg_4Ep<`x8eOK7<@RQ0c+4c%^;&de{t)bJ2`2bW5jtMmA3Jf`Q?HZ@}Ni-)dn zV?{YZti)>IUrKa6Tv7|?fk}M(nND*yM0Rl{CSJV-w{y2*nj*KehpzQ~6x)6kJ6l1_ zcuB^lSkt#QK=J&NKtv59w5uY#Jc_pNIvTQQS7Zkfk5Xr5VV|(<9Y-v#AWB%C9seyT zYvjHSJ(}1MB{m11Oe4FX48?^E#Yc%m>twV$rpWzEC644D-wDQHXNkhXJZ2G_dkV+^$^V2i3_tK8 z9A((u15`p>STm^S(w-^_q}s_0E*%nKOO~FaSS&Qx-uuGV=fc002ovPDHLkV1jKZZJPi9 literal 0 HcmV?d00001 diff --git a/Mage.Client/src/main/resources/menu/memory.png b/Mage.Client/src/main/resources/menu/memory.png new file mode 100644 index 0000000000000000000000000000000000000000..0088a2e46de776ae3019f8bc2f46b917d2a07ad2 GIT binary patch literal 675 zcmV;U0$lxxP)8NE-%3osy)qU&Y3 zf$<5()!Aj7sxKsyN44TC43=WQ=)9oc9B9yEwEg=fgK0}1j9ktBf}CQDsH?WF>AIFt zQuJ}i;w2$ZUU#3SZ6RY0Gw;kZ&ol1~2ky^QZ(fom$=jNJZt!z7w_pH~wdQ;R)Gh%BbQFCx+Nm!4SuS-vkr`vhhrX zM*>w%e+v~?m@q~ImPAgtLkR_3U<2F8LP3W5=LJ*ZN|S5p#sf4YFr$p~Q~Z*0Ngxf2 zjk#J#<7EAlhzlrV53~GF&pIzcCN_lz9@05UeoUXiK%N z#x+4o*i_c|6_Uu1+&TIho?3@y4k-#b8Y_o94zW*B3a1ne2-Y5s0uke$$|@=}OP-i= zNYZQA=>PrZu0MfSL=b8UhD_={W4IY1{b{)U)*gc45xtL%IYLY&hF;d`@GzI&7H&D# zh;z_BX$#hqh@q?AY3sJTod2%*Yd)_>YM0#q&ixGuh+PQsneK)F0000K-N!J41?214AqH?8C16#X zuTYOBd|?DzQ3484fLENMMaTEijqh9mQsv0v616%eVQu&b3y5PH)hI)cuSeG3i{t+S zSUmjV|vkETBj??84a7S!L{}{#Bm7UfdBNN4pg#Xg2omd