* Client memory - Some more changes to maximize objects for gc.

This commit is contained in:
LevelX2 2014-02-14 15:15:04 +01:00
parent b10ad8e663
commit f2cf060b21
4 changed files with 41 additions and 10 deletions

View file

@ -47,12 +47,13 @@ import mage.view.AbilityView;
import mage.view.CardView;
import mage.view.CardsView;
import mage.view.SimpleCardsView;
import org.mage.card.arcane.CardPanel;
public class CardArea extends JPanel {
private boolean reloaded = false;
private javax.swing.JLayeredPane cardArea;
private javax.swing.JScrollPane scrollPane;
private final javax.swing.JLayeredPane cardArea;
private final javax.swing.JScrollPane scrollPane;
/**
* Create the panel.
@ -68,6 +69,15 @@ public class CardArea extends JPanel {
}
public void cleanUp() {
for(Component comp: cardArea.getComponents()) {
if (comp instanceof CardPanel) {
((CardPanel) comp).cleanUp();
cardArea.remove(comp);
}
}
}
public void loadCards(SimpleCardsView showCards, BigCard bigCard, CardDimensions dimension, UUID gameId, MouseListener listener) {
loadCards(CardsViewUtil.convertSimple(showCards), bigCard, dimension, gameId, listener);
}

View file

@ -41,6 +41,7 @@ import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.UUID;
import org.mage.card.arcane.CardPanel;
/**
*
@ -48,8 +49,8 @@ import java.util.UUID;
*/
public class PickPileDialog extends MageDialog {
private CardArea pile1;
private CardArea pile2;
private final CardArea pile1;
private final CardArea pile2;
private boolean pickedPile1 = false;
@ -68,6 +69,7 @@ public class PickPileDialog extends MageDialog {
JButton btnChoosePile1 = new JButton("Pile 1");
btnChoosePile1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
btnPile1ActionPerformed(e);
}
@ -83,6 +85,7 @@ public class PickPileDialog extends MageDialog {
JButton btnChoosePile2 = new JButton("Pile 2");
btnChoosePile2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
btnPile2ActionPerformed(e);
}
@ -90,6 +93,21 @@ public class PickPileDialog extends MageDialog {
panel_1.add(btnChoosePile2, BorderLayout.NORTH);
}
public void cleanUp() {
for(Component comp: pile1.getComponents()) {
if (comp instanceof CardPanel) {
((CardPanel) comp).cleanUp();
pile1.remove(comp);
}
}
for(Component comp: pile2.getComponents()) {
if (comp instanceof CardPanel) {
((CardPanel) comp).cleanUp();
pile2.remove(comp);
}
}
}
public void loadCards(String name, CardsView pile1, CardsView pile2, BigCard bigCard, CardDimensions dimension, UUID gameId) {
this.title = name;
this.pile1.loadCardsNarrow(pile1, bigCard, dimension, gameId, null);

View file

@ -71,7 +71,8 @@ public class ShowCardsDialog extends MageDialog implements MouseListener {
}
public void cleanUp() {
for(Component comp: cardArea.getComponents()) {
cardArea.cleanUp();
for (Component comp : cardArea.getComponents()) {
if (comp instanceof CardPanel) {
((CardPanel) comp).cleanUp();
cardArea.remove(comp);

View file

@ -764,6 +764,8 @@ public final class GamePanel extends javax.swing.JPanel {
PickPileDialog pickPileDialog = new PickPileDialog();
pickPileDialog.loadCards(message, pile1, pile2, bigCard, Config.dimensions, gameId);
session.sendPlayerBoolean(gameId, pickPileDialog.isPickedPile1());
pickPileDialog.cleanUp();
pickPileDialog.removeDialog();
}
public Map<UUID, PlayAreaPanel> getPlayers() {