mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
try to do fewer layout calculations when moving cards
This commit is contained in:
@@ -291,6 +291,9 @@ public abstract class CardPanelContainer extends SkinnedPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final void removeCardPanel(final CardPanel fromPanel) {
|
public final void removeCardPanel(final CardPanel fromPanel) {
|
||||||
|
removeCardPanel(fromPanel,true);
|
||||||
|
}
|
||||||
|
public final void removeCardPanel(final CardPanel fromPanel, final boolean repaint) {
|
||||||
FThreads.assertExecutedByEdt(true);
|
FThreads.assertExecutedByEdt(true);
|
||||||
if (getMouseDragPanel() != null) {
|
if (getMouseDragPanel() != null) {
|
||||||
CardPanel.getDragAnimationPanel().setVisible(false);
|
CardPanel.getDragAnimationPanel().setVisible(false);
|
||||||
@@ -303,9 +306,11 @@ public abstract class CardPanelContainer extends SkinnedPanel {
|
|||||||
fromPanel.dispose();
|
fromPanel.dispose();
|
||||||
getCardPanels().remove(fromPanel);
|
getCardPanels().remove(fromPanel);
|
||||||
remove(fromPanel);
|
remove(fromPanel);
|
||||||
invalidate();
|
if ( repaint ) {
|
||||||
repaint();
|
invalidate();
|
||||||
doingLayout();
|
repaint();
|
||||||
|
doingLayout();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void setCardPanels(final List<CardPanel> cardPanels) {
|
public final void setCardPanels(final List<CardPanel> cardPanels) {
|
||||||
@@ -332,16 +337,21 @@ public abstract class CardPanelContainer extends SkinnedPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final void clear() {
|
public final void clear() {
|
||||||
|
clear(true);
|
||||||
|
}
|
||||||
|
public final void clear(final boolean repaint) {
|
||||||
FThreads.assertExecutedByEdt(true);
|
FThreads.assertExecutedByEdt(true);
|
||||||
for (final CardPanel p : getCardPanels()) {
|
for (final CardPanel p : getCardPanels()) {
|
||||||
p.dispose();
|
p.dispose();
|
||||||
}
|
}
|
||||||
getCardPanels().clear();
|
getCardPanels().clear();
|
||||||
removeAll();
|
removeAll();
|
||||||
setPreferredSize(new Dimension(0, 0));
|
if ( repaint ) {
|
||||||
invalidate();
|
setPreferredSize(new Dimension(0, 0));
|
||||||
getParent().validate();
|
invalidate();
|
||||||
repaint();
|
getParent().validate();
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public final FScrollPane getScrollPane() {
|
public final FScrollPane getScrollPane() {
|
||||||
|
|||||||
@@ -620,11 +620,11 @@ public class PlayArea extends CardPanelContainer implements CardPanelMouseListen
|
|||||||
toDelete.removeAll(notToDelete);
|
toDelete.removeAll(notToDelete);
|
||||||
|
|
||||||
if (toDelete.size() == getCardPanels().size()) {
|
if (toDelete.size() == getCardPanels().size()) {
|
||||||
clear();
|
clear(false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (final CardView card : toDelete) {
|
for (final CardView card : toDelete) {
|
||||||
removeCardPanel(getCardPanel(card.getId()));
|
removeCardPanel(getCardPanel(card.getId()),false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -646,19 +646,21 @@ public class PlayArea extends CardPanelContainer implements CardPanelMouseListen
|
|||||||
needLayoutRefresh = true;
|
needLayoutRefresh = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (needLayoutRefresh) {
|
if (needLayoutRefresh) {
|
||||||
doLayout();
|
doLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
invalidate(); //pfps do the extra invalidate before any scrolling
|
||||||
if (!newPanels.isEmpty()) {
|
if (!newPanels.isEmpty()) {
|
||||||
|
int i = newPanels.size();
|
||||||
for (final CardPanel toPanel : newPanels) {
|
for (final CardPanel toPanel : newPanels) {
|
||||||
scrollRectToVisible(new Rectangle(toPanel.getCardX(), toPanel.getCardY(), toPanel.getCardWidth(), toPanel.getCardHeight()));
|
if ( --i == 0 ) { // only scroll to last panel to be added
|
||||||
|
scrollRectToVisible(new Rectangle(toPanel.getCardX(), toPanel.getCardY(), toPanel.getCardWidth(), toPanel.getCardHeight()));
|
||||||
|
}
|
||||||
Animation.moveCard(toPanel);
|
Animation.moveCard(toPanel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
repaint();
|
||||||
invalidate();
|
|
||||||
repaint();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean updateCard(final CardView card, boolean fromRefresh) {
|
public boolean updateCard(final CardView card, boolean fromRefresh) {
|
||||||
|
|||||||
Reference in New Issue
Block a user