diff --git a/Mage.Client/plugins/mage-card-plugin.jar b/Mage.Client/plugins/mage-card-plugin.jar
index d9a51b70fd..71349b30d8 100644
Binary files a/Mage.Client/plugins/mage-card-plugin.jar and b/Mage.Client/plugins/mage-card-plugin.jar differ
diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.form b/Mage.Client/src/main/java/mage/client/MageFrame.form
index ca8d3dcd5c..1b50b9288c 100644
--- a/Mage.Client/src/main/java/mage/client/MageFrame.form
+++ b/Mage.Client/src/main/java/mage/client/MageFrame.form
@@ -47,6 +47,7 @@
+
@@ -80,7 +81,7 @@
-
+
@@ -114,6 +115,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java
index 8234dd6ad1..2b5aa4e61f 100644
--- a/Mage.Client/src/main/java/mage/client/MageFrame.java
+++ b/Mage.Client/src/main/java/mage/client/MageFrame.java
@@ -100,6 +100,7 @@ import org.apache.log4j.Logger;
public class MageFrame extends javax.swing.JFrame implements MageClient {
private final static Logger logger = Logger.getLogger(MageFrame.class);
+ private final static String liteModeArg = "-lite";
private static Session session;
private ConnectDialog connectDialog;
@@ -110,6 +111,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
private final static MageVersion version = new MageVersion(0, 7, 4, "beta-2");
private UUID clientId;
private static MagePane activeFrame;
+ private static boolean liteMode = false;
private static Map chats = new HashMap();
private static Map games = new HashMap();
@@ -131,6 +133,10 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
public static Preferences getPreferences() {
return prefs;
}
+
+ public static boolean isLite() {
+ return liteMode;
+ }
@Override
public MageVersion getVersion() {
@@ -205,7 +211,8 @@ 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();
- backgroundPane.setSize(width, height);
+ if (!liteMode)
+ backgroundPane.setSize(width, height);
JPanel arrowsPanel = ArrowBuilder.getArrowsPanelRef();
if (arrowsPanel != null) arrowsPanel.setSize(width, height);
if (title != null) {
@@ -297,6 +304,8 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
}
private void setBackground() {
+ if (liteMode)
+ return;
String filename = "/background.jpg";
try {
if (Plugins.getInstance().isThemePluginLoaded()) {
@@ -315,6 +324,8 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
}
private void addMageLabel() {
+ if (liteMode)
+ return;
String filename = "/label-mage.png";
try {
InputStream is = this.getClass().getResourceAsStream(filename);
@@ -557,24 +568,24 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
desktopPane = new MageJDesktop();
mageToolbar = new javax.swing.JToolBar();
btnConnect = new javax.swing.JButton();
- jSeparator5 = new javax.swing.JToolBar.Separator();
- btnGames = new javax.swing.JButton();
jSeparator4 = new javax.swing.JToolBar.Separator();
- btnDeckEditor = new javax.swing.JButton();
+ btnGames = new javax.swing.JButton();
jSeparator3 = new javax.swing.JToolBar.Separator();
- btnPreferences = new javax.swing.JButton();
+ btnDeckEditor = new javax.swing.JButton();
jSeparator2 = new javax.swing.JToolBar.Separator();
+ btnCollectionViewer = new javax.swing.JButton();
+ jSeparator5 = new javax.swing.JToolBar.Separator();
+ btnPreferences = new javax.swing.JButton();
+ jSeparator6 = new javax.swing.JToolBar.Separator();
btnAbout = new javax.swing.JButton();
jSeparator1 = new javax.swing.JToolBar.Separator();
btnExit = new javax.swing.JButton();
lblStatus = new javax.swing.JLabel();
- jSeparator6 = new javax.swing.JToolBar.Separator();
- btnCollectionViewer = new JButton();
- jSeparator7 = new javax.swing.JToolBar.Separator();
- btnChallenges = new JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
- //setMinimumSize(new java.awt.Dimension(1024, 768));
+ setMinimumSize(new java.awt.Dimension(1024, 768));
+
+ desktopPane.setBackground(new java.awt.Color(204, 204, 204));
mageToolbar.setFloatable(false);
mageToolbar.setRollover(true);
@@ -592,7 +603,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
mageToolbar.add(btnConnect);
mageToolbar.add(jSeparator4);
- btnGames.setText("Tables");
+ btnGames.setText("Games");
btnGames.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
btnGames.setFocusable(false);
btnGames.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
@@ -619,7 +630,6 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
mageToolbar.add(jSeparator2);
btnCollectionViewer.setText("Collection Viewer");
- btnCollectionViewer.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
btnCollectionViewer.setFocusable(false);
btnCollectionViewer.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
btnCollectionViewer.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
@@ -629,23 +639,9 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
}
});
mageToolbar.add(btnCollectionViewer);
- mageToolbar.add(jSeparator6);
-
- /*btnChallenges.setText("Challenges");
- btnChallenges.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
- btnChallenges.setFocusable(false);
- btnChallenges.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
- btnChallenges.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
- btnChallenges.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- btnChallengesActionPerformed(evt);
- }
- });
- mageToolbar.add(btnChallenges);
- mageToolbar.add(jSeparator7);*/
+ mageToolbar.add(jSeparator5);
btnPreferences.setText("Preferences");
- btnPreferences.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
btnPreferences.setFocusable(false);
btnPreferences.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
btnPreferences.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
@@ -655,7 +651,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
}
});
mageToolbar.add(btnPreferences);
- mageToolbar.add(jSeparator5);
+ mageToolbar.add(jSeparator6);
btnAbout.setText("About");
btnAbout.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
@@ -689,16 +685,16 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(desktopPane, javax.swing.GroupLayout.DEFAULT_SIZE, 1144, Short.MAX_VALUE)
- .addComponent(mageToolbar, javax.swing.GroupLayout.DEFAULT_SIZE, 1144, Short.MAX_VALUE)
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(desktopPane, javax.swing.GroupLayout.DEFAULT_SIZE, 1144, Short.MAX_VALUE)
+ .addComponent(mageToolbar, javax.swing.GroupLayout.DEFAULT_SIZE, 1144, Short.MAX_VALUE)
);
layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(mageToolbar, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(0, 0, 0)
- .addComponent(desktopPane, javax.swing.GroupLayout.DEFAULT_SIZE, 880, Short.MAX_VALUE))
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(mageToolbar, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(0, 0, 0)
+ .addComponent(desktopPane, javax.swing.GroupLayout.DEFAULT_SIZE, 880, Short.MAX_VALUE))
);
pack();
@@ -708,10 +704,6 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
showDeckEditor(DeckEditorMode.Constructed, null, null, 0);
}//GEN-LAST:event_btnDeckEditorActionPerformed
- private void btnCollectionViewerActionPerformed(java.awt.event.ActionEvent evt) {
- showCollectionViewer();
- }
-
private void btnChallengesActionPerformed(java.awt.event.ActionEvent evt) {
TableView table;
try {
@@ -737,10 +729,6 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
}
}
- private void btnPreferencesActionPerformed(java.awt.event.ActionEvent evt) {
- PhasesDialog.main(new String[]{});
- }
-
private void btnGamesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnGamesActionPerformed
this.tablesPane.setVisible(true);
this.tablesPane.showTables();
@@ -768,6 +756,14 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
aboutDialog.showDialog(version);
}//GEN-LAST:event_btnAboutActionPerformed
+ private void btnCollectionViewerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCollectionViewerActionPerformed
+ showCollectionViewer();
+ }//GEN-LAST:event_btnCollectionViewerActionPerformed
+
+ private void btnPreferencesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPreferencesActionPerformed
+ PhasesDialog.main(new String[]{});
+ }//GEN-LAST:event_btnPreferencesActionPerformed
+
public void exitApp() {
session.disconnect(false);
Plugins.getInstance().shutdown();
@@ -832,7 +828,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
/**
* @param args the command line arguments
*/
- public static void main(String args[]) {
+ public static void main(final String args[]) {
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
public void uncaughtException(Thread t, Throwable e) {
@@ -841,13 +837,20 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
});
SwingUtilities.invokeLater(new Runnable() {
public void run() {
- final SplashScreen splash = SplashScreen.getSplashScreen();
- if (splash != null) {
- Graphics2D g = splash.createGraphics();
- if (g != null) {
- renderSplashFrame(g);
+ for (String arg: args) {
+ if (arg.startsWith(liteModeArg)) {
+ liteMode = true;
+ }
+ }
+ if (!liteMode) {
+ final SplashScreen splash = SplashScreen.getSplashScreen();
+ if (splash != null) {
+ Graphics2D g = splash.createGraphics();
+ if (g != null) {
+ renderSplashFrame(g);
+ }
+ splash.update();
}
- splash.update();
}
new MageFrame().setVisible(true);
}
@@ -856,21 +859,19 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnAbout;
+ private javax.swing.JButton btnCollectionViewer;
private javax.swing.JButton btnConnect;
private javax.swing.JButton btnDeckEditor;
- private javax.swing.JButton btnCollectionViewer;
- private javax.swing.JButton btnChallenges;
- private javax.swing.JButton btnPreferences;
private javax.swing.JButton btnExit;
private javax.swing.JButton btnGames;
- private static MageJDesktop desktopPane;
+ private javax.swing.JButton btnPreferences;
+ private static javax.swing.JDesktopPane desktopPane;
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.JLabel lblStatus;
private javax.swing.JToolBar mageToolbar;
// End of variables declaration//GEN-END:variables
diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java
index f130dc5dfe..ad6ef2ab1b 100644
--- a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java
+++ b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java
@@ -50,6 +50,9 @@ import java.awt.image.BufferedImage;
import java.util.*;
import java.util.List;
import java.util.Map.Entry;
+import mage.client.MageFrame;
+import mage.client.util.gui.GuiDisplayUtil;
+import org.jdesktop.swingx.JXPanel;
/**
* Table Model for card list.
@@ -244,15 +247,28 @@ public class TableModel extends AbstractTableModel implements ICardGrid {
private void showImage(int row) {
CardView card = view.get(row);
if (!card.getId().equals(bigCard.getCardId())) {
- Image image = Plugins.getInstance().getOriginalImage(card);
- if (image != null && image instanceof BufferedImage) {
- // XXX: scaled to fit width
- image = ImageHelper.getResizedImage((BufferedImage) image, bigCard.getWidth());
- bigCard.setCard(card.getId(), image, new ArrayList(), false);
+ if (!MageFrame.isLite()) {
+ Image image = Plugins.getInstance().getOriginalImage(card);
+ if (image != null && image instanceof BufferedImage) {
+ // XXX: scaled to fit width
+ image = ImageHelper.getResizedImage((BufferedImage) image, bigCard.getWidth());
+ bigCard.setCard(card.getId(), image, new ArrayList(), false);
+ } else {
+ drawCardText(card);
+ }
+ } else {
+ drawCardText(card);
}
}
}
+ private void drawCardText(CardView card) {
+ JXPanel panel = GuiDisplayUtil.getDescription(card, bigCard.getWidth(), bigCard.getHeight());
+ panel.setVisible(true);
+ bigCard.hideTextComponent();
+ bigCard.addJXPanel(card.getId(), panel);
+ }
+
public List getCardsView() {
return view;
}
diff --git a/Mage.Client/src/main/java/mage/client/plugins/impl/Plugins.java b/Mage.Client/src/main/java/mage/client/plugins/impl/Plugins.java
index 6c492cb427..89986ce920 100644
--- a/Mage.Client/src/main/java/mage/client/plugins/impl/Plugins.java
+++ b/Mage.Client/src/main/java/mage/client/plugins/impl/Plugins.java
@@ -13,6 +13,7 @@ import javax.swing.JComponent;
import mage.cards.MageCard;
import mage.cards.MagePermanent;
import mage.cards.action.impl.EmptyCallback;
+import mage.client.MageFrame;
import mage.client.cards.BigCard;
import mage.client.cards.Card;
import mage.client.cards.Permanent;
@@ -67,13 +68,13 @@ public class Plugins implements MagePlugins {
@Override
public void updateGamePanel(Map ui) {
- if (themePlugin == null) return;
+ if (MageFrame.isLite() || themePlugin == null) return;
themePlugin.applyInGame(ui);
}
@Override
public JComponent updateTablePanel(Map ui) {
- if (themePlugin == null) return null;
+ if (MageFrame.isLite() || themePlugin == null) return null;
return themePlugin.updateTable(ui);
}
@@ -82,7 +83,7 @@ public class Plugins implements MagePlugins {
if (cardPlugin != null) {
mageActionCallback.refreshSession();
mageActionCallback.setCardPreviewComponent(bigCard);
- return cardPlugin.getMagePermanent(card, dimension, gameId, mageActionCallback, canBeFoil);
+ return cardPlugin.getMagePermanent(card, dimension, gameId, mageActionCallback, canBeFoil, !MageFrame.isLite());
} else {
return new Permanent(card, bigCard, Config.dimensions, gameId);
}
@@ -93,7 +94,7 @@ public class Plugins implements MagePlugins {
if (cardPlugin != null) {
mageActionCallback.refreshSession();
mageActionCallback.setCardPreviewComponent(bigCard);
- return cardPlugin.getMageCard(card, dimension, gameId, mageActionCallback, canBeFoil);
+ return cardPlugin.getMageCard(card, dimension, gameId, mageActionCallback, canBeFoil, !MageFrame.isLite());
} else {
return new Card(card, bigCard, Config.dimensions, gameId);
}
diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java
index f73fe53feb..bee4ea62ee 100644
--- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java
+++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java
@@ -56,6 +56,8 @@ import javax.swing.table.AbstractTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.beans.PropertyVetoException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
import java.util.concurrent.CancellationException;
@@ -97,10 +99,10 @@ public class TablesPanel extends javax.swing.JPanel {
public void actionPerformed(ActionEvent e)
{
int modelRow = Integer.valueOf( e.getActionCommand() );
- UUID tableId = (UUID)tableModel.getValueAt(modelRow, 8);
- UUID gameId = (UUID)tableModel.getValueAt(modelRow, 7);
+ UUID tableId = (UUID)tableModel.getValueAt(modelRow, 9);
+ UUID gameId = (UUID)tableModel.getValueAt(modelRow, 8);
String state = (String)tableModel.getValueAt(modelRow, 5);
- boolean isTournament = (Boolean)tableModel.getValueAt(modelRow, 6);
+ boolean isTournament = (Boolean)tableModel.getValueAt(modelRow, 7);
String owner = (String)tableModel.getValueAt(modelRow, 1);
if (state.equals("Join")) {
@@ -148,7 +150,7 @@ public class TablesPanel extends javax.swing.JPanel {
}
};
- ButtonColumn buttonColumn = new ButtonColumn(tableTables, join, 5);
+ ButtonColumn buttonColumn = new ButtonColumn(tableTables, join, 6);
jSplitPane1.setOpaque(false);
jScrollPane1.setOpaque(false);
@@ -394,9 +396,9 @@ public class TablesPanel extends javax.swing.JPanel {
}
class TableTableModel extends AbstractTableModel {
- private String[] columnNames = new String[]{"Table Name", "Owner", "Game Type", "Deck Type", "Status", "Action"};
+ private String[] columnNames = new String[]{"Match Name", "Owner", "Game Type", "Deck Type", "Status", "Created", "Action"};
private TableView[] tables = new TableView[0];
-
+ private static final DateFormat timeFormatter = SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT);
public void loadData(Collection tables) throws MageRemoteException {
this.tables = tables.toArray(new TableView[0]);
@@ -427,6 +429,8 @@ class TableTableModel extends AbstractTableModel {
case 4:
return tables[arg0].getTableState().toString();
case 5:
+ return timeFormatter.format(tables[arg0].getCreateTime());
+ case 6:
switch (tables[arg0].getTableState()) {
case WAITING:
return "Join";
@@ -437,13 +441,13 @@ class TableTableModel extends AbstractTableModel {
default:
return "";
}
- case 6:
- return tables[arg0].isTournament();
case 7:
+ return tables[arg0].isTournament();
+ case 8:
if (!tables[arg0].getGames().isEmpty())
return tables[arg0].getGames().get(0);
return null;
- case 8:
+ case 9:
return tables[arg0].getTableId();
}
return "";
@@ -466,7 +470,7 @@ class TableTableModel extends AbstractTableModel {
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
- if (columnIndex != 5)
+ if (columnIndex != 6)
return false;
return true;
}
diff --git a/Mage.Common/src/mage/interfaces/plugin/CardPlugin.java b/Mage.Common/src/mage/interfaces/plugin/CardPlugin.java
index d1092eeb9c..9a9ab5878a 100644
--- a/Mage.Common/src/mage/interfaces/plugin/CardPlugin.java
+++ b/Mage.Common/src/mage/interfaces/plugin/CardPlugin.java
@@ -26,8 +26,8 @@ import net.xeoh.plugins.base.Plugin;
* @author nantuko
*/
public interface CardPlugin extends Plugin {
- MagePermanent getMagePermanent(PermanentView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil);
- MagePermanent getMageCard(CardView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil);
+ MagePermanent getMagePermanent(PermanentView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil, boolean loadImage);
+ MagePermanent getMageCard(CardView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil, boolean loadImage);
void sortPermanents(Map ui, Collection cards);
void downloadImages(Set allCards);
void downloadSymbols();
diff --git a/Mage.Common/src/mage/view/TableView.java b/Mage.Common/src/mage/view/TableView.java
index f877c3247e..971172a129 100644
--- a/Mage.Common/src/mage/view/TableView.java
+++ b/Mage.Common/src/mage/view/TableView.java
@@ -30,6 +30,7 @@ package mage.view;
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.UUID;
import mage.Constants.TableState;
@@ -49,6 +50,7 @@ public class TableView implements Serializable {
private String deckType;
private String tableName;
private String controllerName;
+ private Date createTime;
private TableState tableState;
private boolean isTournament;
private List seats = new ArrayList();
@@ -59,6 +61,7 @@ public class TableView implements Serializable {
this.gameType = table.getGameType();
this.tableName = table.getName();
this.controllerName = table.getControllerName();
+ this.createTime = table.getCreateTime();
this.deckType = table.getDeckType();
this.tableState = table.getState();
this.isTournament = table.isTournament();
@@ -91,6 +94,10 @@ public class TableView implements Serializable {
public String getDeckType() {
return deckType;
}
+
+ public Date getCreateTime() {
+ return createTime;
+ }
public TableState getTableState() {
return tableState;
diff --git a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/card/arcane/CardPanel.java b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/card/arcane/CardPanel.java
index 982ab1f624..ab716041ea 100644
--- a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/card/arcane/CardPanel.java
+++ b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/card/arcane/CardPanel.java
@@ -592,7 +592,9 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
@Override
public Image getImage() {
- return ImageCache.getImageOriginal(gameCard);
+ if (this.hasImage)
+ return ImageCache.getImageOriginal(gameCard);
+ return null;
}
@Override
diff --git a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/CardPluginImpl.java b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/CardPluginImpl.java
index c210f4e5b5..b61e938b5c 100644
--- a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/CardPluginImpl.java
+++ b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/CardPluginImpl.java
@@ -79,9 +79,9 @@ public class CardPluginImpl implements CardPlugin {
}
@Override
- public MagePermanent getMagePermanent(PermanentView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil) {
+ public MagePermanent getMagePermanent(PermanentView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil, boolean loadImage) {
boolean foil = canBeFoil && (new Random()).nextInt(5) == 0;
- CardPanel cardPanel = new CardPanel(permanent, gameId, true, callback, foil);
+ CardPanel cardPanel = new CardPanel(permanent, gameId, loadImage, callback, foil);
cardPanel.setCardBounds(0, 0, dimension.width, dimension.height);
boolean implemented = !permanent.getRarity().equals(mage.Constants.Rarity.NA);
cardPanel.setShowCastingCost(implemented);
@@ -89,9 +89,9 @@ public class CardPluginImpl implements CardPlugin {
}
@Override
- public MagePermanent getMageCard(CardView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil) {
+ public MagePermanent getMageCard(CardView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil, boolean loadImage) {
boolean foil = canBeFoil && (new Random()).nextInt(5) == 0;
- CardPanel cardPanel = new CardPanel(permanent, gameId, true, callback, foil);
+ CardPanel cardPanel = new CardPanel(permanent, gameId, loadImage, callback, foil);
cardPanel.setCardBounds(0, 0, dimension.width, dimension.height);
boolean implemented = !permanent.getRarity().equals(mage.Constants.Rarity.NA);
cardPanel.setShowCastingCost(implemented);
diff --git a/Mage.Plugins/Mage.Rating.Plugin/src/main/java/org/mage/plugins/rating/RateThread.java b/Mage.Plugins/Mage.Rating.Plugin/src/main/java/org/mage/plugins/rating/RateThread.java
index a64868277c..2af02d33fc 100644
--- a/Mage.Plugins/Mage.Rating.Plugin/src/main/java/org/mage/plugins/rating/RateThread.java
+++ b/Mage.Plugins/Mage.Rating.Plugin/src/main/java/org/mage/plugins/rating/RateThread.java
@@ -52,11 +52,11 @@ public class RateThread extends Thread {
Card card1 = getRandomUniqueNonLandCard(null);
Card card2 = getRandomUniqueNonLandCard(card1);
- mageCard1 = impl.getMageCard(new CardView(card1), cardDimension, UUID.randomUUID(), new RateCallback(card1, card2, this, bigCard), false);
+ mageCard1 = impl.getMageCard(new CardView(card1), cardDimension, UUID.randomUUID(), new RateCallback(card1, card2, this, bigCard), false, true);
mageCard1.setCardBounds(bigCardDimension.frameWidth + 80, 10, dimensions.frameWidth, dimensions.frameHeight);
frame.add(mageCard1);
- mageCard2 = impl.getMageCard(new CardView(card2), cardDimension, UUID.randomUUID(), new RateCallback(card2, card1, this, bigCard), false);
+ mageCard2 = impl.getMageCard(new CardView(card2), cardDimension, UUID.randomUUID(), new RateCallback(card2, card1, this, bigCard), false, true);
mageCard2.setCardBounds(bigCardDimension.frameWidth + 80 + dimensions.frameWidth + 30, 10, dimensions.frameWidth, dimensions.frameHeight);
frame.add(mageCard2);
diff --git a/Mage/src/mage/game/Table.java b/Mage/src/mage/game/Table.java
index 4d12ff1462..a6452a9a77 100644
--- a/Mage/src/mage/game/Table.java
+++ b/Mage/src/mage/game/Table.java
@@ -29,6 +29,7 @@
package mage.game;
import java.io.Serializable;
+import java.util.Date;
import java.util.List;
import java.util.UUID;
import mage.Constants.TableState;
@@ -51,6 +52,7 @@ public class Table implements Serializable {
private String name;
private String controllerName;
private String gameType;
+ private Date createTime;
private Seat[] seats;
private int numSeats;
private boolean isTournament;
@@ -80,6 +82,7 @@ public class Table implements Serializable {
this.gameType = gameType;
this.name = name;
this.controllerName = controllerName;
+ this.createTime = new Date();
createSeats(playerTypes);
this.validator = validator;
}
@@ -129,6 +132,10 @@ public class Table implements Serializable {
return validator.getName();
}
+ public Date getCreateTime() {
+ return createTime;
+ }
+
public boolean isTournament() {
return this.isTournament;
}