diff --git a/Mage.Client/pom.xml b/Mage.Client/pom.xml
index b67dc5058df..425594b43fe 100644
--- a/Mage.Client/pom.xml
+++ b/Mage.Client/pom.xml
@@ -102,6 +102,11 @@
beansbinding
1.2.1
+
+ org.swinglabs
+ swing-layout
+ 1.0.3
+
diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java
index 82c7da2a6a5..1d06f912e9c 100644
--- a/Mage.Client/src/main/java/mage/client/MageFrame.java
+++ b/Mage.Client/src/main/java/mage/client/MageFrame.java
@@ -82,6 +82,7 @@ import mage.client.remote.CallbackClientImpl;
import mage.client.table.TablesPane;
import mage.client.tournament.TournamentPane;
import mage.client.tournament.TournamentPanel;
+import mage.client.util.SettingsManager;
import mage.game.match.MatchOptions;
import mage.interfaces.MageClient;
import mage.interfaces.callback.CallbackClient;
@@ -173,7 +174,8 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
initComponents();
setSize(1024, 768);
- this.setExtendedState(JFrame.MAXIMIZED_BOTH);
+ SettingsManager.getInstance().setScreenWidthAndHeight(1024, 768);
+ this.setExtendedState(JFrame.MAXIMIZED_BOTH);
session = new Session(this);
callbackClient = new CallbackClientImpl(this);
@@ -211,8 +213,10 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
public void componentResized(ComponentEvent e) {
int width = ((JComponent) e.getSource()).getWidth();
int height = ((JComponent) e.getSource()).getHeight();
- if (!liteMode)
- backgroundPane.setSize(width, height);
+ SettingsManager.getInstance().setScreenWidthAndHeight(width, height);
+ if (!liteMode) {
+ backgroundPane.setSize(width, height);
+ }
JPanel arrowsPanel = ArrowBuilder.getArrowsPanelRef();
if (arrowsPanel != null) arrowsPanel.setSize(width, height);
if (title != null) {
@@ -761,7 +765,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
}//GEN-LAST:event_btnCollectionViewerActionPerformed
private void btnPreferencesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPreferencesActionPerformed
- PhasesDialog.main(new String[]{});
+ PreferencesDialog.main(new String[]{});
}//GEN-LAST:event_btnPreferencesActionPerformed
public void exitApp() {
diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java
index 07d68ca4369..cff953ec959 100644
--- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java
+++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java
@@ -173,6 +173,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
if (cardInfoPane instanceof CardInfoPane) {
((CardInfoPane)cardInfoPane).setCard(new CardView(card));
}
+ hidePopup();
}
} else if (event.getEventName().equals("shift-double-click") && mode == DeckEditorMode.Constructed) {
@@ -181,6 +182,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
if (cardInfoPane instanceof CardInfoPane) {
((CardInfoPane)cardInfoPane).setCard(new CardView(card));
}
+ hidePopup();
}
refreshDeck();
}
@@ -194,7 +196,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
public void event(Event event) {
if (event.getEventName().equals("double-click")) {
for (Card card: deck.getCards()) {
- if (card.getId().equals((UUID)event.getSource())) {
+ if (card.getId().equals(event.getSource())) {
deck.getCards().remove(card);
if (mode == DeckEditorMode.Limited || mode == DeckEditorMode.Sideboard) {
deck.getSideboard().add(card);
@@ -203,16 +205,18 @@ public class DeckEditorPanel extends javax.swing.JPanel {
break;
}
}
+ hidePopup();
refreshDeck();
}
else if (event.getEventName().equals("shift-double-click") && mode == DeckEditorMode.Constructed) {
for (Card card: deck.getCards()) {
- if (card.getId().equals((UUID)event.getSource())) {
+ if (card.getId().equals(event.getSource())) {
deck.getCards().remove(card);
deck.getSideboard().add(card);
break;
}
}
+ hidePopup();
refreshDeck();
}
}
@@ -225,7 +229,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
if (event.getEventName().equals("double-click")) {
//boolean isListView = cardSelector.getCardsList() instanceof TableModel;
for (Card card: deck.getSideboard()) {
- if (card.getId().equals((UUID)event.getSource())) {
+ if (card.getId().equals(event.getSource())) {
deck.getSideboard().remove(card);
//if (!isListView) {
deck.getCards().add(card);
@@ -233,6 +237,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
break;
}
}
+ hidePopup();
refreshDeck();
}
}
@@ -243,6 +248,10 @@ public class DeckEditorPanel extends javax.swing.JPanel {
this.repaint();
}
+ private void hidePopup() {
+ Plugins.getInstance().getActionCallback().mouseExited(null, null);
+ }
+
public void hideDeckEditor() {
Component c = this.getParent();
while (c != null && !(c instanceof DeckEditorPane)) {
@@ -579,27 +588,26 @@ public class DeckEditorPanel extends javax.swing.JPanel {
int ret = fcImportDeck.showOpenDialog(this);
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fcImportDeck.getSelectedFile();
- if (file != null) {
- try {
- setCursor(new Cursor(Cursor.WAIT_CURSOR));
- DeckImporter importer = getDeckImporter(file.getPath());
- if (importer != null) {
- deck = Deck.load(importer.importDeck(file.getPath()));
- }
- else {
- JOptionPane.showMessageDialog(MageFrame.getDesktop(), "Unknown deck format", "Error importing deck", JOptionPane.ERROR_MESSAGE);
- }
- } catch (Exception ex) {
- Logger.getLogger(DeckEditorPanel.class.getName()).log(Level.SEVERE, null, ex);
+ try {
+ setCursor(new Cursor(Cursor.WAIT_CURSOR));
+ DeckImporter importer = getDeckImporter(file.getPath());
+ if (importer != null) {
+ deck = Deck.load(importer.importDeck(file.getPath()));
}
- finally {
- setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
+ else {
+ JOptionPane.showMessageDialog(MageFrame.getDesktop(), "Unknown deck format", "Error importing deck", JOptionPane.ERROR_MESSAGE);
}
- refreshDeck();
- try {
- MageFrame.getPreferences().put("lastImportFolder", file.getCanonicalPath());
- } catch (IOException ex) { }
+ } catch (Exception ex) {
+ Logger.getLogger(DeckEditorPanel.class.getName()).log(Level.SEVERE, null, ex);
}
+ finally {
+ setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
+ }
+ refreshDeck();
+ try {
+ if (file != null)
+ MageFrame.getPreferences().put("lastImportFolder", file.getCanonicalPath());
+ } catch (IOException ex) { }
}
fcImportDeck.setSelectedFile(null);
}//GEN-LAST:event_btnImportActionPerformed
diff --git a/Mage.Plugins/Mage.Card.Plugin/pom.xml b/Mage.Plugins/Mage.Card.Plugin/pom.xml
index c1fdc2bc3a5..9cbcfb5df56 100644
--- a/Mage.Plugins/Mage.Card.Plugin/pom.xml
+++ b/Mage.Plugins/Mage.Card.Plugin/pom.xml
@@ -76,7 +76,7 @@
- 0.5
+ 0.6
0.9.1