Fixed redrawing during limited construction in deck editor (card didn't disappear).

This commit is contained in:
magenoxx 2011-08-16 21:42:39 +04:00
parent 251be500aa
commit 9a458ae9f2
6 changed files with 27 additions and 0 deletions

View file

@ -288,7 +288,12 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
if (size.height != area.height || size.width != area.width) {
setPreferredSize(area);
}
}
@Override
public void refresh() {
revalidate();
repaint();
}
}

View file

@ -281,6 +281,11 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
drawCards((SortBy) cbSortBy.getSelectedItem());
}
@Override
public void refresh() {
redrawCards();
}
public void clearCardEventListeners() {
cardEventSource.clearListeners();
mainModel.clearCardEventListeners();

View file

@ -46,4 +46,5 @@ public interface ICardGrid {
void addCardEventListener(Listener<Event> listener);
void drawCards(Constants.SortBy sortBy, boolean piles);
void loadCards(CardsView showCards, Constants.SortBy sortBy, boolean piles, BigCard bigCard, UUID gameId);
void refresh();
}

View file

@ -798,6 +798,15 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
return list;
}
public void refresh() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
currentView.refresh();
}
});
}
private TableModel mainModel;
private JTable mainTable;
private ICardGrid currentView;

View file

@ -169,6 +169,8 @@ public class DeckEditorPanel extends javax.swing.JPanel {
if (mode == DeckEditorMode.Sideboard || mode == DeckEditorMode.Limited) {
deck.getSideboard().remove(card);
cardSelector.removeCard(card.getId());
cardSelector.refresh();
}
if (cardInfoPane instanceof CardInfoPane) {
((CardInfoPane)cardInfoPane).setCard(new CardView(card));

View file

@ -152,6 +152,11 @@ public class TableModel extends AbstractTableModel implements ICardGrid {
drawCards(sortBy, piles);
}
@Override
public void refresh() {
fireTableDataChanged();
}
public void clear() {
view.clear();
cards.clear();