Merge commit 'b95d7ca705' into Network_Upgrade
Conflicts: .gitignore Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java Mage.Server/src/main/java/mage/server/Session.java
|
|
@ -1,6 +1,6 @@
|
|||
XMage.de 1 (Europe/Germany) fast :xmage.de:17171
|
||||
woogerworks (North America/USA) :xmage.woogerworks.info:17171
|
||||
XMage.info 1 (Europe/France) new network code -> see forum :176.31.186.181:17171
|
||||
IceMage (Europe/Netherlands) :ring0.cc:17171
|
||||
XMage BR (South America/Brazil) :ec2-54-233-67-0.sa-east-1.compute.amazonaws.com:17171
|
||||
Seedds Server (Asia) :115.29.203.80:17171
|
||||
localhost -> connect to your local server (must be started):localhost:17171
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
|
|
@ -31,7 +31,6 @@
|
|||
*
|
||||
* Created on 30-Mar-2010, 9:25:40 PM
|
||||
*/
|
||||
|
||||
package mage.client.cards;
|
||||
|
||||
import java.awt.Component;
|
||||
|
|
@ -54,6 +53,7 @@ import mage.client.plugins.impl.Plugins;
|
|||
import mage.client.util.Config;
|
||||
import mage.client.util.Event;
|
||||
import mage.client.util.Listener;
|
||||
import mage.utils.CardUtil;
|
||||
import mage.view.CardView;
|
||||
import mage.view.CardsView;
|
||||
import org.mage.card.arcane.CardPanel;
|
||||
|
|
@ -82,7 +82,7 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
}
|
||||
|
||||
public void clear() {
|
||||
for(MouseListener ml: this.getMouseListeners()) {
|
||||
for (MouseListener ml : this.getMouseListeners()) {
|
||||
this.removeMouseListener(ml);
|
||||
}
|
||||
this.clearCardEventListeners();
|
||||
|
|
@ -101,7 +101,7 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
this.bigCard = bigCard;
|
||||
this.gameId = gameId;
|
||||
if (merge) {
|
||||
for (CardView card: showCards.values()) {
|
||||
for (CardView card : showCards.values()) {
|
||||
if (!cards.containsKey(card.getId())) {
|
||||
addCard(card, bigCard, gameId, drawImage);
|
||||
}
|
||||
|
|
@ -115,7 +115,7 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
}
|
||||
} else {
|
||||
this.clearCards();
|
||||
for (CardView card: showCards.values()) {
|
||||
for (CardView card : showCards.values()) {
|
||||
addCard(card, bigCard, gameId, drawImage);
|
||||
}
|
||||
}
|
||||
|
|
@ -144,7 +144,7 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
int curRow = 0;
|
||||
if (cards.size() > 0) {
|
||||
Rectangle rectangle = new Rectangle(Config.dimensions.frameWidth, Config.dimensions.frameHeight);
|
||||
List<MageCard> sortedCards = new ArrayList<MageCard>(cards.values());
|
||||
List<MageCard> sortedCards = new ArrayList<>(cards.values());
|
||||
switch (sortSetting.getSortBy()) {
|
||||
case NAME:
|
||||
Collections.sort(sortedCards, new CardNameComparator());
|
||||
|
|
@ -155,15 +155,16 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
case COLOR:
|
||||
Collections.sort(sortedCards, new CardColorComparator());
|
||||
break;
|
||||
case COLOR_DETAILED:
|
||||
Collections.sort(sortedCards, new CardColorDetailedComparator());
|
||||
case COLOR_IDENTITY:
|
||||
Collections.sort(sortedCards, new CardColorDetailedIdentity());
|
||||
break;
|
||||
case CASTING_COST:
|
||||
Collections.sort(sortedCards, new CardCostComparator());
|
||||
break;
|
||||
|
||||
}
|
||||
MageCard lastCard = null;
|
||||
for (MageCard cardImg: sortedCards) {
|
||||
for (MageCard cardImg : sortedCards) {
|
||||
if (sortSetting.isPilesToggle()) {
|
||||
if (lastCard == null) {
|
||||
lastCard = cardImg;
|
||||
|
|
@ -187,8 +188,9 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
curRow = 0;
|
||||
}
|
||||
break;
|
||||
case COLOR_DETAILED:
|
||||
if (cardImg.getOriginal().getColor().hashCode() != lastCard.getOriginal().getColor().hashCode()) {
|
||||
case COLOR_IDENTITY:
|
||||
if (CardUtil.getColorIdentitySortValue(cardImg.getOriginal().getManaCost(), cardImg.getOriginal().getColor(), cardImg.getOriginal().getRules())
|
||||
!= CardUtil.getColorIdentitySortValue(lastCard.getOriginal().getManaCost(), lastCard.getOriginal().getColor(), lastCard.getOriginal().getRules())) {
|
||||
curColumn++;
|
||||
curRow = 0;
|
||||
}
|
||||
|
|
@ -206,8 +208,7 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
moveToFront(cardImg);
|
||||
curRow++;
|
||||
lastCard = cardImg;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
rectangle.setLocation(curColumn * Config.dimensions.frameWidth, curRow * 20);
|
||||
cardImg.setBounds(rectangle);
|
||||
cardImg.setCardBounds(rectangle.x, rectangle.y, Config.dimensions.frameWidth, Config.dimensions.frameHeight);
|
||||
|
|
@ -221,15 +222,15 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
}
|
||||
}
|
||||
resizeArea();
|
||||
revalidate();
|
||||
repaint();
|
||||
revalidate();
|
||||
repaint();
|
||||
}
|
||||
|
||||
private void clearCards() {
|
||||
// remove possible mouse listeners, preventing gc
|
||||
for (MageCard mageCard: cards.values()) {
|
||||
for (MageCard mageCard : cards.values()) {
|
||||
if (mageCard instanceof CardPanel) {
|
||||
((CardPanel)mageCard).cleanUp();
|
||||
((CardPanel) mageCard).cleanUp();
|
||||
}
|
||||
}
|
||||
this.cards.clear();
|
||||
|
|
@ -237,7 +238,7 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
}
|
||||
|
||||
private void removeAllCardImg() {
|
||||
for (Component comp: getComponents()) {
|
||||
for (Component comp : getComponents()) {
|
||||
if (comp instanceof Card || comp instanceof MageCard) {
|
||||
remove(comp);
|
||||
}
|
||||
|
|
@ -245,14 +246,14 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
}
|
||||
|
||||
private void removeCardImg(UUID cardId) {
|
||||
for (Component comp: getComponents()) {
|
||||
for (Component comp : getComponents()) {
|
||||
if (comp instanceof Card) {
|
||||
if (((Card)comp).getCardId().equals(cardId)) {
|
||||
if (((Card) comp).getCardId().equals(cardId)) {
|
||||
remove(comp);
|
||||
comp = null;
|
||||
}
|
||||
} else if (comp instanceof MageCard) {
|
||||
if (((MageCard)comp).getOriginal().getId().equals(cardId)) {
|
||||
if (((MageCard) comp).getOriginal().getId().equals(cardId)) {
|
||||
remove(comp);
|
||||
comp = null;
|
||||
}
|
||||
|
|
@ -275,10 +276,10 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
cardEventSource.clearListeners();
|
||||
}
|
||||
|
||||
/** This method is called from within the constructor to
|
||||
* initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is
|
||||
* always regenerated by the Form Editor.
|
||||
/**
|
||||
* This method is called from within the constructor to initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is always
|
||||
* regenerated by the Form Editor.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
|
|
@ -296,10 +297,8 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
);
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
// End of variables declaration//GEN-END:variables
|
||||
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
if (e.getClickCount() == 2 && !e.isConsumed()) {
|
||||
|
|
@ -322,22 +321,26 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener,
|
|||
}
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e) {}
|
||||
public void mousePressed(MouseEvent e) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseReleased(MouseEvent e) {}
|
||||
public void mouseReleased(MouseEvent e) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent e) {}
|
||||
public void mouseEntered(MouseEvent e) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent e) {}
|
||||
public void mouseExited(MouseEvent e) {
|
||||
}
|
||||
|
||||
private void resizeArea() {
|
||||
Dimension area = new Dimension(0, 0);
|
||||
Dimension size = getPreferredSize();
|
||||
|
||||
for (Component comp: getComponents()) {
|
||||
for (Component comp : getComponents()) {
|
||||
Rectangle r = comp.getBounds();
|
||||
if (r.x + r.width > area.width) {
|
||||
area.width = r.x + r.width;
|
||||
|
|
@ -348,13 +351,13 @@ 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();
|
||||
repaint();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -379,8 +382,7 @@ class CardRarityComparator implements Comparator<MageCard> {
|
|||
int val = o1.getOriginal().getRarity().compareTo(o2.getOriginal().getRarity());
|
||||
if (val == 0) {
|
||||
return o1.getOriginal().getName().compareTo(o2.getOriginal().getName());
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
|
@ -394,8 +396,7 @@ class CardCostComparator implements Comparator<MageCard> {
|
|||
int val = Integer.valueOf(o1.getOriginal().getConvertedManaCost()).compareTo(Integer.valueOf(o2.getOriginal().getConvertedManaCost()));
|
||||
if (val == 0) {
|
||||
return o1.getOriginal().getName().compareTo(o2.getOriginal().getName());
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
|
@ -409,23 +410,22 @@ class CardColorComparator implements Comparator<MageCard> {
|
|||
int val = o1.getOriginal().getColor().compareTo(o2.getOriginal().getColor());
|
||||
if (val == 0) {
|
||||
return o1.getOriginal().getName().compareTo(o2.getOriginal().getName());
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class CardColorDetailedComparator implements Comparator<MageCard> {
|
||||
class CardColorDetailedIdentity implements Comparator<MageCard> {
|
||||
|
||||
@Override
|
||||
public int compare(MageCard o1, MageCard o2) {
|
||||
int val = o1.getOriginal().getColor().hashCode() - o2.getOriginal().getColor().hashCode();
|
||||
int val = CardUtil.getColorIdentitySortValue(o1.getOriginal().getManaCost(), o1.getOriginal().getColor(), o1.getOriginal().getRules())
|
||||
- CardUtil.getColorIdentitySortValue(o2.getOriginal().getManaCost(), o2.getOriginal().getColor(), o2.getOriginal().getRules());
|
||||
if (val == 0) {
|
||||
return o1.getOriginal().getName().compareTo(o2.getOriginal().getName());
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,37 +1,36 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
/*
|
||||
* CardsList.java
|
||||
*
|
||||
* Created on Dec 18, 2009, 10:40:12 AM
|
||||
*/
|
||||
|
||||
package mage.client.cards;
|
||||
|
||||
import java.awt.Color;
|
||||
|
|
@ -59,7 +58,7 @@ import mage.client.constants.Constants.DeckEditorMode;
|
|||
import mage.client.constants.Constants.SortBy;
|
||||
import static mage.client.constants.Constants.SortBy.CASTING_COST;
|
||||
import static mage.client.constants.Constants.SortBy.COLOR;
|
||||
import static mage.client.constants.Constants.SortBy.COLOR_DETAILED;
|
||||
import static mage.client.constants.Constants.SortBy.COLOR_IDENTITY;
|
||||
import static mage.client.constants.Constants.SortBy.RARITY;
|
||||
import mage.client.deckeditor.SortSetting;
|
||||
import mage.client.deckeditor.table.TableModel;
|
||||
|
|
@ -67,7 +66,7 @@ import mage.client.deckeditor.table.UpdateCountsCallback;
|
|||
import mage.client.dialog.PreferencesDialog;
|
||||
import mage.client.plugins.impl.Plugins;
|
||||
import mage.client.util.CardViewColorComparator;
|
||||
import mage.client.util.CardViewColorDetailedComparator;
|
||||
import mage.client.util.CardViewColorIdentityComparator;
|
||||
import mage.client.util.CardViewCostComparator;
|
||||
import mage.client.util.CardViewNameComparator;
|
||||
import mage.client.util.CardViewRarityComparator;
|
||||
|
|
@ -86,7 +85,7 @@ import org.mage.card.arcane.CardPanel;
|
|||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public class CardsList extends javax.swing.JPanel implements MouseListener, ICardGrid {
|
||||
|
||||
|
||||
protected CardEventSource cardEventSource = new CardEventSource();
|
||||
private Dimension cardDimension;
|
||||
private CardsView cards;
|
||||
|
|
@ -98,8 +97,10 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
private TableModel mainModel;
|
||||
private JTable mainTable;
|
||||
private ICardGrid currentView;
|
||||
|
||||
/** Creates new form Cards */
|
||||
|
||||
/**
|
||||
* Creates new form Cards
|
||||
*/
|
||||
public CardsList() {
|
||||
initComponents();
|
||||
makeTransparent();
|
||||
|
|
@ -115,22 +116,22 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
mainModel.removeTableModelListener(mainTable);
|
||||
mainModel.clear();
|
||||
}
|
||||
if(cardArea != null) {
|
||||
for(MouseListener ml: cardArea.getMouseListeners()) {
|
||||
if (cardArea != null) {
|
||||
for (MouseListener ml : cardArea.getMouseListeners()) {
|
||||
cardArea.removeMouseListener(ml);
|
||||
}
|
||||
}
|
||||
if(mainTable != null) {
|
||||
for(MouseListener ml: mainTable.getMouseListeners()) {
|
||||
if (mainTable != null) {
|
||||
for (MouseListener ml : mainTable.getMouseListeners()) {
|
||||
mainTable.removeMouseListener(ml);
|
||||
}
|
||||
}
|
||||
if (currentView != null) {
|
||||
currentView.clearCardEventListeners();
|
||||
}
|
||||
for (Component comp :cardArea.getComponents()) {
|
||||
if (comp instanceof CardPanel) {
|
||||
((CardPanel)comp).cleanUp();
|
||||
for (Component comp : cardArea.getComponents()) {
|
||||
if (comp instanceof CardPanel) {
|
||||
((CardPanel) comp).cleanUp();
|
||||
}
|
||||
}
|
||||
mageCards.clear();
|
||||
|
|
@ -208,20 +209,20 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
// activate spinner for card number change
|
||||
mainModel.setNumberEditable(true);
|
||||
TableColumnModel tcm = mainTable.getColumnModel();
|
||||
TableColumn tc = tcm.getColumn(0);
|
||||
TableColumn tc = tcm.getColumn(0);
|
||||
tc.setMaxWidth(55);
|
||||
tc.setMinWidth(55);
|
||||
tc.setPreferredWidth(55);
|
||||
tc.setCellEditor(new TableSpinnerEditor(this));
|
||||
tc.setCellEditor(new TableSpinnerEditor(this));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void handleSetNumber(int number) {
|
||||
if (mainTable.getSelectedRowCount() == 1) {
|
||||
mainModel.setNumber(mainTable.getSelectedRow(), number);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void handleDoubleClick() {
|
||||
if (mainTable.getSelectedRowCount() > 0) {
|
||||
int[] n = mainTable.getSelectedRows();
|
||||
|
|
@ -232,7 +233,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void handleAltDoubleClick() {
|
||||
if (mainTable.getSelectedRowCount() > 0) {
|
||||
int[] n = mainTable.getSelectedRows();
|
||||
|
|
@ -243,7 +244,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public ICardGrid getMainModel() {
|
||||
return mainModel;
|
||||
}
|
||||
|
|
@ -256,7 +257,6 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
return list;
|
||||
}
|
||||
|
||||
|
||||
public void loadCards(CardsView showCards, BigCard bigCard, UUID gameId) {
|
||||
int selectedRow = -1;
|
||||
if (currentView.equals(mainModel)) {
|
||||
|
|
@ -270,7 +270,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
chkPiles.setSelected(sortSetting.isPilesToggle());
|
||||
currentView.loadCards(showCards, sortSetting, bigCard, gameId);
|
||||
if (selectedRow >= 0) {
|
||||
selectedRow = Math.min(selectedRow, mainTable.getRowCount()-1);
|
||||
selectedRow = Math.min(selectedRow, mainTable.getRowCount() - 1);
|
||||
if (selectedRow >= 0) {
|
||||
mainTable.setRowSelectionInterval(selectedRow, selectedRow);
|
||||
}
|
||||
|
|
@ -281,7 +281,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
if (cards == null) {
|
||||
cards = new CardsView();
|
||||
}
|
||||
currentView.loadCards(cards, sortSetting, bigCard, gameId);
|
||||
currentView.loadCards(cards, sortSetting, bigCard, gameId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -295,22 +295,21 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
Comparator<CardView> comparator = null;
|
||||
Map<UUID, MageCard> oldMageCards = mageCards;
|
||||
mageCards = new LinkedHashMap<>();
|
||||
|
||||
|
||||
//Find card view
|
||||
for(UUID uuid : cards.keySet()){
|
||||
if(oldMageCards.containsKey(uuid)){
|
||||
for (UUID uuid : cards.keySet()) {
|
||||
if (oldMageCards.containsKey(uuid)) {
|
||||
mageCards.put(uuid, oldMageCards.get(uuid));
|
||||
oldMageCards.remove(uuid);
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
mageCards.put(uuid, addCard(cards.get(uuid), bigCard, gameId));
|
||||
}
|
||||
}
|
||||
//Remove unused cards
|
||||
for(MageCard card : oldMageCards.values()){
|
||||
for (MageCard card : oldMageCards.values()) {
|
||||
cardArea.remove(card);
|
||||
}
|
||||
|
||||
|
||||
if (cards != null && cards.size() > 0) {
|
||||
Rectangle rectangle = new Rectangle(Config.dimensions.frameWidth, Config.dimensions.frameHeight);
|
||||
List<CardView> sortedCards = new ArrayList<>(cards.values());
|
||||
|
|
@ -324,25 +323,25 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
case COLOR:
|
||||
comparator = new CardViewColorComparator();
|
||||
break;
|
||||
case COLOR_DETAILED:
|
||||
comparator = new CardViewColorDetailedComparator();
|
||||
case COLOR_IDENTITY:
|
||||
comparator = new CardViewColorIdentityComparator();
|
||||
break;
|
||||
case CASTING_COST:
|
||||
comparator = new CardViewCostComparator();
|
||||
break;
|
||||
}
|
||||
if(comparator != null){
|
||||
if (comparator != null) {
|
||||
Collections.sort(sortedCards, new CardViewNameComparator());
|
||||
Collections.sort(sortedCards, comparator);
|
||||
}
|
||||
CardView lastCard = null;
|
||||
for (CardView card: sortedCards) {
|
||||
for (CardView card : sortedCards) {
|
||||
if (sortSetting.isPilesToggle()) {
|
||||
if (lastCard == null) {
|
||||
lastCard = card;
|
||||
}
|
||||
if(comparator != null){
|
||||
if(comparator.compare(card, lastCard) > 0){
|
||||
if (comparator != null) {
|
||||
if (comparator.compare(card, lastCard) > 0) {
|
||||
curColumn++;
|
||||
maxRow = Math.max(maxRow, curRow);
|
||||
curRow = 0;
|
||||
|
|
@ -350,7 +349,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
}
|
||||
rectangle.setLocation(curColumn * Config.dimensions.frameWidth, curRow * 20);
|
||||
setCardBounds(mageCards.get(card.getId()), rectangle);
|
||||
|
||||
|
||||
curRow++;
|
||||
lastCard = card;
|
||||
} else {
|
||||
|
|
@ -368,21 +367,21 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
maxRow = Math.max(maxRow, curRow);
|
||||
maxColumn = Math.max(maxColumn, curColumn);
|
||||
updateCounts();
|
||||
cardArea.setPreferredSize(new Dimension((maxColumn+1) * Config.dimensions.frameWidth, Config.dimensions.frameHeight + maxRow*20));
|
||||
cardArea.setPreferredSize(new Dimension((maxColumn + 1) * Config.dimensions.frameWidth, Config.dimensions.frameHeight + maxRow * 20));
|
||||
cardArea.revalidate();
|
||||
this.revalidate();
|
||||
this.repaint();
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
private void updateCounts(){
|
||||
|
||||
private void updateCounts() {
|
||||
int landCount = 0;
|
||||
int creatureCount = 0;
|
||||
int sorceryCount = 0;
|
||||
int instantCount = 0;
|
||||
int enchantmentCount = 0;
|
||||
for (CardView card: cards.values()) {
|
||||
if (card.getCardTypes().contains(CardType.LAND)) {
|
||||
for (CardView card : cards.values()) {
|
||||
if (card.getCardTypes().contains(CardType.LAND)) {
|
||||
landCount++;
|
||||
}
|
||||
if (card.getCardTypes().contains(CardType.CREATURE)) {
|
||||
|
|
@ -398,7 +397,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
enchantmentCount++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int count = cards != null ? cards.size() : 0;
|
||||
this.lblCount.setText(Integer.toString(count));
|
||||
this.lblCreatureCount.setText(Integer.toString(creatureCount));
|
||||
|
|
@ -418,7 +417,6 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
cardImg.addMouseListener(this);
|
||||
return cardImg;
|
||||
}
|
||||
|
||||
|
||||
private void setCardBounds(MageCard card, Rectangle rectangle) {
|
||||
card.setBounds(rectangle);
|
||||
|
|
@ -456,10 +454,10 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
mainModel.clearCardEventListeners();
|
||||
}
|
||||
|
||||
/** This method is called from within the constructor to
|
||||
* initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is
|
||||
* always regenerated by the Form Editor.
|
||||
/**
|
||||
* This method is called from within the constructor to initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is always
|
||||
* regenerated by the Form Editor.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
|
|
@ -678,9 +676,9 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
currentView = mainModel;
|
||||
panelCardArea.setViewportView(mainTable);
|
||||
cbSortBy.setEnabled(false);
|
||||
chkPiles.setEnabled(false);
|
||||
chkPiles.setEnabled(false);
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_DRAFT_VIEW, "listView");
|
||||
redrawCards();
|
||||
redrawCards();
|
||||
}//GEN-LAST:event_jToggleListViewActionPerformed
|
||||
|
||||
private void cbSortByActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSortByActionPerformed
|
||||
|
|
@ -698,8 +696,8 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
panelCardArea.setViewportView(cardArea);
|
||||
cbSortBy.setEnabled(true);
|
||||
chkPiles.setEnabled(true);
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_DRAFT_VIEW, "cardView");
|
||||
redrawCards();
|
||||
PreferencesDialog.saveValue(PreferencesDialog.KEY_DRAFT_VIEW, "cardView");
|
||||
redrawCards();
|
||||
}//GEN-LAST:event_jToggleCardViewActionPerformed
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
|
|
@ -725,28 +723,26 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e) {
|
||||
if (e.getClickCount() >= 1 && !e.isConsumed()) {
|
||||
if (e.getClickCount() >= 1 && !e.isConsumed()) {
|
||||
Object obj = e.getSource();
|
||||
if (e.getClickCount() == 2) {
|
||||
e.consume();
|
||||
if (obj instanceof Card) {
|
||||
if (e.isAltDown()) {
|
||||
cardEventSource.altDoubleClick(((Card)obj).getOriginal(), "alt-double-click");
|
||||
}
|
||||
else {
|
||||
cardEventSource.doubleClick(((Card)obj).getOriginal(), "double-click");
|
||||
cardEventSource.altDoubleClick(((Card) obj).getOriginal(), "alt-double-click");
|
||||
} else {
|
||||
cardEventSource.doubleClick(((Card) obj).getOriginal(), "double-click");
|
||||
}
|
||||
} else if (obj instanceof MageCard) {
|
||||
if (e.isAltDown()) {
|
||||
cardEventSource.altDoubleClick(((MageCard)obj).getOriginal(), "alt-double-click");
|
||||
}
|
||||
else {
|
||||
cardEventSource.doubleClick(((MageCard)obj).getOriginal(), "double-click");
|
||||
cardEventSource.altDoubleClick(((MageCard) obj).getOriginal(), "alt-double-click");
|
||||
} else {
|
||||
cardEventSource.doubleClick(((MageCard) obj).getOriginal(), "double-click");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (obj instanceof MageCard) {
|
||||
checkMenu(e, ((MageCard)obj).getOriginal());
|
||||
checkMenu(e, ((MageCard) obj).getOriginal());
|
||||
} else {
|
||||
checkMenu(e, null);
|
||||
}
|
||||
|
|
@ -758,14 +754,14 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
|
|||
if (!e.isConsumed()) {
|
||||
Object obj = e.getSource();
|
||||
if (obj instanceof MageCard) {
|
||||
checkMenu(e, ((MageCard)obj).getOriginal());
|
||||
checkMenu(e, ((MageCard) obj).getOriginal());
|
||||
} else {
|
||||
checkMenu(e, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void checkMenu(MouseEvent Me, SimpleCardView card){
|
||||
private void checkMenu(MouseEvent Me, SimpleCardView card) {
|
||||
if (Me.isPopupTrigger()) {
|
||||
Me.consume();
|
||||
cardEventSource.showPopupMenuEvent(card, Me.getComponent(), Me.getX(), Me.getY(), "show-popup-menu");
|
||||
|
|
|
|||
|
|
@ -1,31 +1,30 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.client.constants;
|
||||
|
||||
import java.io.File;
|
||||
|
|
@ -37,6 +36,7 @@ import javax.swing.border.Border;
|
|||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public final class Constants {
|
||||
|
||||
private Constants() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
|
@ -69,7 +69,7 @@ public final class Constants {
|
|||
public static final int POWBOX_TEXT_MAX_LEFT = 212;
|
||||
public static final int DAMAGE_MAX_LEFT = 180;
|
||||
|
||||
public static final Border EMPTY_BORDER = BorderFactory.createEmptyBorder(2,2,2,2);
|
||||
public static final Border EMPTY_BORDER = BorderFactory.createEmptyBorder(2, 2, 2, 2);
|
||||
|
||||
public static final double SCALE_FACTOR = 0.5;
|
||||
|
||||
|
|
@ -80,26 +80,29 @@ public final class Constants {
|
|||
public static final String RESOURCE_PATH_SET = IO.imageBaseDir + "sets" + File.separator;
|
||||
public static final String RESOURCE_PATH_SET_SMALL = RESOURCE_PATH_SET + File.separator + "small" + File.separator;
|
||||
public static final String BASE_SOUND_PATH = "sounds" + File.separator;
|
||||
public static final String BASE_MUSICS_PATH = "music" + File.separator ;
|
||||
|
||||
public static final String BASE_MUSICS_PATH = "music" + File.separator;
|
||||
|
||||
public interface IO {
|
||||
|
||||
String imageBaseDir = "plugins" + File.separator + "images" + File.separator;
|
||||
String IMAGE_PROPERTIES_FILE = "image.url.properties";
|
||||
}
|
||||
|
||||
public enum DeckEditorMode {
|
||||
|
||||
FREE_BUILDING,
|
||||
LIMITED_BUILDING,
|
||||
SIDEBOARDING
|
||||
}
|
||||
|
||||
public enum SortBy {
|
||||
CASTING_COST ("Casting Cost"),
|
||||
RARITY ("Rarity"),
|
||||
COLOR ("Color"),
|
||||
COLOR_DETAILED ("Color Detailed"),
|
||||
NAME ("Name"),
|
||||
UNSORTED ("Unsorted");
|
||||
|
||||
CASTING_COST("Casting Cost"),
|
||||
RARITY("Rarity"),
|
||||
COLOR("Color"),
|
||||
COLOR_IDENTITY("Color Identity"),
|
||||
NAME("Name"),
|
||||
UNSORTED("Unsorted");
|
||||
|
||||
private final String text;
|
||||
|
||||
|
|
@ -120,8 +123,8 @@ public final class Constants {
|
|||
return RARITY;
|
||||
case "Color":
|
||||
return COLOR;
|
||||
case "Color Detailed":
|
||||
return COLOR_DETAILED;
|
||||
case "Color Identity":
|
||||
return COLOR_IDENTITY;
|
||||
case "Name":
|
||||
return NAME;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -42,9 +42,7 @@ import java.awt.event.MouseEvent;
|
|||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.prefs.BackingStoreException;
|
||||
import java.util.prefs.Preferences;
|
||||
import javax.swing.BorderFactory;
|
||||
|
|
@ -63,6 +61,10 @@ import mage.client.MageFrame;
|
|||
import mage.client.util.Config;
|
||||
import mage.client.util.ImageHelper;
|
||||
import mage.client.util.gui.BufferedImageBuilder;
|
||||
import static mage.constants.Constants.DEFAULT_AVATAR_ID;
|
||||
import static mage.constants.Constants.MAX_AVATAR_ID;
|
||||
import static mage.constants.Constants.MIN_AVATAR_ID;
|
||||
import mage.players.net.UserData;
|
||||
import mage.players.net.UserGroup;
|
||||
import mage.players.net.UserSkipPrioritySteps;
|
||||
import mage.remote.Connection;
|
||||
|
|
@ -264,29 +266,12 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
public static String PHASE_ON = "on";
|
||||
public static String PHASE_OFF = "off";
|
||||
|
||||
public static final int DEFAULT_AVATAR_ID = 51;
|
||||
private static int selectedAvatarId = DEFAULT_AVATAR_ID;
|
||||
private static final Set<Integer> available_avatars = new HashSet<>();
|
||||
private static final Map<Integer, JPanel> panels = new HashMap<>();
|
||||
|
||||
private static final Border GREEN_BORDER = BorderFactory.createLineBorder(Color.GREEN, 3);
|
||||
private static final Border BLACK_BORDER = BorderFactory.createLineBorder(Color.BLACK, 3);
|
||||
|
||||
static {
|
||||
available_avatars.add(51);
|
||||
available_avatars.add(13);
|
||||
available_avatars.add(9);
|
||||
available_avatars.add(53);
|
||||
available_avatars.add(10);
|
||||
available_avatars.add(39);
|
||||
available_avatars.add(19);
|
||||
available_avatars.add(30);
|
||||
available_avatars.add(25);
|
||||
|
||||
available_avatars.add(22);
|
||||
available_avatars.add(77);
|
||||
available_avatars.add(62);
|
||||
}
|
||||
private static int selectedAvatarId = DEFAULT_AVATAR_ID;
|
||||
|
||||
private final JFileChooser fc = new JFileChooser();
|
||||
|
||||
|
|
@ -433,20 +418,30 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
tabAvatars = new javax.swing.JPanel();
|
||||
avatarPane = new javax.swing.JScrollPane();
|
||||
avatarPanel = new javax.swing.JPanel();
|
||||
jLabel12 = new javax.swing.JLabel();
|
||||
jPanel10 = new javax.swing.JPanel();
|
||||
jPanel13 = new javax.swing.JPanel();
|
||||
jPanel11 = new javax.swing.JPanel();
|
||||
jPanel12 = new javax.swing.JPanel();
|
||||
jPanel13 = new javax.swing.JPanel();
|
||||
jPanel14 = new javax.swing.JPanel();
|
||||
jPanel15 = new javax.swing.JPanel();
|
||||
jLabel13 = new javax.swing.JLabel();
|
||||
jPanel16 = new javax.swing.JPanel();
|
||||
jPanel17 = new javax.swing.JPanel();
|
||||
jPanel18 = new javax.swing.JPanel();
|
||||
jPanel19 = new javax.swing.JPanel();
|
||||
jPanel20 = new javax.swing.JPanel();
|
||||
jPanel21 = new javax.swing.JPanel();
|
||||
jPanel22 = new javax.swing.JPanel();
|
||||
jPanel23 = new javax.swing.JPanel();
|
||||
jPanel24 = new javax.swing.JPanel();
|
||||
jPanel25 = new javax.swing.JPanel();
|
||||
jPanel26 = new javax.swing.JPanel();
|
||||
jPanel27 = new javax.swing.JPanel();
|
||||
jPanel28 = new javax.swing.JPanel();
|
||||
jPanel29 = new javax.swing.JPanel();
|
||||
jPanel30 = new javax.swing.JPanel();
|
||||
jPanel31 = new javax.swing.JPanel();
|
||||
jPanel32 = new javax.swing.JPanel();
|
||||
jPanel33 = new javax.swing.JPanel();
|
||||
tabConnection = new javax.swing.JPanel();
|
||||
lblProxyType = new javax.swing.JLabel();
|
||||
cbProxyType = new javax.swing.JComboBox<ProxyType>();
|
||||
|
|
@ -608,16 +603,16 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
main_gameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(main_gameLayout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(main_gameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(cbAllowRequestToShowHandCards, javax.swing.GroupLayout.PREFERRED_SIZE, 546, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGroup(main_gameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||
.addGroup(main_gameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
||||
.addComponent(showPlayerNamesPermanently, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(nonLandPermanentsInOnePile, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(showAbilityPickerForced, javax.swing.GroupLayout.Alignment.LEADING))
|
||||
.addComponent(cbShowStormCounter, javax.swing.GroupLayout.PREFERRED_SIZE, 546, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(cbConfirmEmptyManaPool, javax.swing.GroupLayout.PREFERRED_SIZE, 546, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(cbAskMoveToGraveOrder, javax.swing.GroupLayout.PREFERRED_SIZE, 546, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addComponent(cbConfirmEmptyManaPool, javax.swing.GroupLayout.DEFAULT_SIZE, 485, Short.MAX_VALUE)
|
||||
.addComponent(cbAllowRequestToShowHandCards, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(cbShowStormCounter, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(cbAskMoveToGraveOrder, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addContainerGap(7, Short.MAX_VALUE))
|
||||
);
|
||||
main_gameLayout.setVerticalGroup(
|
||||
main_gameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
|
|
@ -666,9 +661,9 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
main_gamelogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(main_gamelogLayout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(main_gamelogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(cbGameLogAutoSave, javax.swing.GroupLayout.PREFERRED_SIZE, 528, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(cbDraftLogAutoSave, javax.swing.GroupLayout.PREFERRED_SIZE, 528, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGroup(main_gamelogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||
.addComponent(cbDraftLogAutoSave, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(cbGameLogAutoSave, javax.swing.GroupLayout.DEFAULT_SIZE, 473, Short.MAX_VALUE))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
main_gamelogLayout.setVerticalGroup(
|
||||
|
|
@ -687,8 +682,10 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
.addContainerGap()
|
||||
.addGroup(tabMainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(main_card, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(main_game, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(main_gamelog, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addComponent(main_gamelog, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(tabMainLayout.createSequentialGroup()
|
||||
.addComponent(main_game, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(0, 0, Short.MAX_VALUE)))
|
||||
.addContainerGap())
|
||||
);
|
||||
tabMainLayout.setVerticalGroup(
|
||||
|
|
@ -915,7 +912,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
.addComponent(jLabelEndOfTurn)
|
||||
.addComponent(checkBoxEndTurnOthers))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(phases_stopSettings, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(phases_stopSettings, javax.swing.GroupLayout.DEFAULT_SIZE, 183, Short.MAX_VALUE)
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
|
|
@ -962,24 +959,27 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
panelCardImages.setLayout(panelCardImagesLayout);
|
||||
panelCardImagesLayout.setHorizontalGroup(
|
||||
panelCardImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(panelCardImagesLayout.createSequentialGroup()
|
||||
.addGap(24, 24, 24)
|
||||
.addComponent(txtImageFolderPath)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(btnBrowseImageLocation))
|
||||
.addGroup(panelCardImagesLayout.createSequentialGroup()
|
||||
.addGroup(panelCardImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(cbUseDefaultImageFolder)
|
||||
.addComponent(cbCheckForNewImages)
|
||||
.addGroup(panelCardImagesLayout.createSequentialGroup()
|
||||
.addGroup(panelCardImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, panelCardImagesLayout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(labelPreferedImageLanguage))
|
||||
.addComponent(cbSaveToZipFiles, javax.swing.GroupLayout.Alignment.LEADING))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(cbPreferedImageLanguage, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||
.addGap(0, 0, Short.MAX_VALUE))
|
||||
.addGroup(panelCardImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(cbUseDefaultImageFolder)
|
||||
.addComponent(cbCheckForNewImages)
|
||||
.addGroup(panelCardImagesLayout.createSequentialGroup()
|
||||
.addGroup(panelCardImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, panelCardImagesLayout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(labelPreferedImageLanguage))
|
||||
.addComponent(cbSaveToZipFiles, javax.swing.GroupLayout.Alignment.LEADING))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(cbPreferedImageLanguage, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||
.addGap(0, 190, Short.MAX_VALUE))
|
||||
.addGroup(panelCardImagesLayout.createSequentialGroup()
|
||||
.addGap(24, 24, 24)
|
||||
.addComponent(txtImageFolderPath)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(btnBrowseImageLocation)))
|
||||
.addContainerGap())
|
||||
);
|
||||
panelCardImagesLayout.setVerticalGroup(
|
||||
panelCardImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
|
|
@ -1061,32 +1061,29 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
.addGroup(panelBackgroundImagesLayout.createSequentialGroup()
|
||||
.addGroup(panelBackgroundImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(panelBackgroundImagesLayout.createSequentialGroup()
|
||||
.addGap(19, 19, 19)
|
||||
.addComponent(jLabel14))
|
||||
.addGroup(panelBackgroundImagesLayout.createSequentialGroup()
|
||||
.addGap(25, 25, 25)
|
||||
.addComponent(jLabel15)))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(panelBackgroundImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(panelBackgroundImagesLayout.createSequentialGroup()
|
||||
.addComponent(txtBattlefieldImagePath, javax.swing.GroupLayout.PREFERRED_SIZE, 336, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGroup(panelBackgroundImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(panelBackgroundImagesLayout.createSequentialGroup()
|
||||
.addGap(19, 19, 19)
|
||||
.addComponent(jLabel14))
|
||||
.addGroup(panelBackgroundImagesLayout.createSequentialGroup()
|
||||
.addGap(25, 25, 25)
|
||||
.addComponent(jLabel15)))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(btnBrowseBattlefieldImage))
|
||||
.addGroup(panelBackgroundImagesLayout.createSequentialGroup()
|
||||
.addComponent(txtBackgroundImagePath, javax.swing.GroupLayout.PREFERRED_SIZE, 332, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGroup(panelBackgroundImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(txtBackgroundImagePath)
|
||||
.addComponent(txtBattlefieldImagePath))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(btnBrowseBackgroundImage)))
|
||||
.addGap(0, 0, Short.MAX_VALUE))
|
||||
.addGroup(panelBackgroundImagesLayout.createSequentialGroup()
|
||||
.addGroup(panelBackgroundImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(cbUseRandomBattleImage)
|
||||
.addComponent(cbUseDefaultBattleImage)
|
||||
.addComponent(cbUseDefaultBackground))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addGroup(panelBackgroundImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(btnBrowseBackgroundImage, javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(btnBrowseBattlefieldImage, javax.swing.GroupLayout.Alignment.TRAILING)))
|
||||
.addGroup(panelBackgroundImagesLayout.createSequentialGroup()
|
||||
.addGroup(panelBackgroundImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(cbUseRandomBattleImage)
|
||||
.addComponent(cbUseDefaultBattleImage)
|
||||
.addComponent(cbUseDefaultBackground))
|
||||
.addGap(0, 0, Short.MAX_VALUE)))
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
panelBackgroundImagesLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {txtBackgroundImagePath, txtBattlefieldImagePath});
|
||||
|
||||
panelBackgroundImagesLayout.setVerticalGroup(
|
||||
panelBackgroundImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(panelBackgroundImagesLayout.createSequentialGroup()
|
||||
|
|
@ -1115,8 +1112,8 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
.addGroup(tabImagesLayout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(tabImagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(panelCardImages, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(panelBackgroundImages, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addComponent(panelCardImages, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(panelBackgroundImages, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addContainerGap())
|
||||
);
|
||||
tabImagesLayout.setVerticalGroup(
|
||||
|
|
@ -1248,249 +1245,459 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
|
||||
tabsPanel.addTab("Sounds", tabSounds);
|
||||
|
||||
jLabel12.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
|
||||
jLabel12.setText("Choose your avatar:");
|
||||
avatarPane.setMaximumSize(new java.awt.Dimension(508, 772));
|
||||
avatarPane.setMinimumSize(new java.awt.Dimension(508, 772));
|
||||
avatarPane.setPreferredSize(new java.awt.Dimension(508, 772));
|
||||
|
||||
avatarPanel.setMaximumSize(new java.awt.Dimension(508, 772));
|
||||
avatarPanel.setMinimumSize(new java.awt.Dimension(508, 772));
|
||||
avatarPanel.setPreferredSize(new java.awt.Dimension(508, 772));
|
||||
avatarPanel.setLayout(new java.awt.GridLayout(6, 4, 20, 20));
|
||||
|
||||
jPanel10.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel10.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel10.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel10.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
|
||||
jPanel10.setLayout(jPanel10Layout);
|
||||
jPanel10Layout.setHorizontalGroup(
|
||||
jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel10Layout.setVerticalGroup(
|
||||
jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
jPanel13.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
|
||||
javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13);
|
||||
jPanel13.setLayout(jPanel13Layout);
|
||||
jPanel13Layout.setHorizontalGroup(
|
||||
jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel13Layout.setVerticalGroup(
|
||||
jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
);
|
||||
avatarPanel.add(jPanel10);
|
||||
|
||||
jPanel11.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel11.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel11.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel11.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11);
|
||||
jPanel11.setLayout(jPanel11Layout);
|
||||
jPanel11Layout.setHorizontalGroup(
|
||||
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel11Layout.setVerticalGroup(
|
||||
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel11);
|
||||
|
||||
jPanel12.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel12.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel12.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel12.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12);
|
||||
jPanel12.setLayout(jPanel12Layout);
|
||||
jPanel12Layout.setHorizontalGroup(
|
||||
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel12Layout.setVerticalGroup(
|
||||
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel12);
|
||||
|
||||
jPanel13.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel13.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel13.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel13.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13);
|
||||
jPanel13.setLayout(jPanel13Layout);
|
||||
jPanel13Layout.setHorizontalGroup(
|
||||
jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel13Layout.setVerticalGroup(
|
||||
jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 0, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel13);
|
||||
|
||||
jPanel14.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel14.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel14.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel14.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel14Layout = new javax.swing.GroupLayout(jPanel14);
|
||||
jPanel14.setLayout(jPanel14Layout);
|
||||
jPanel14Layout.setHorizontalGroup(
|
||||
jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel14Layout.setVerticalGroup(
|
||||
jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel14);
|
||||
|
||||
jPanel15.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel15.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel15.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel15.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel15Layout = new javax.swing.GroupLayout(jPanel15);
|
||||
jPanel15.setLayout(jPanel15Layout);
|
||||
jPanel15Layout.setHorizontalGroup(
|
||||
jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel15Layout.setVerticalGroup(
|
||||
jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
jLabel13.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
|
||||
jLabel13.setText("New avatars:");
|
||||
avatarPanel.add(jPanel15);
|
||||
|
||||
jPanel16.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel16.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel16.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel16.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel16Layout = new javax.swing.GroupLayout(jPanel16);
|
||||
jPanel16.setLayout(jPanel16Layout);
|
||||
jPanel16Layout.setHorizontalGroup(
|
||||
jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel16Layout.setVerticalGroup(
|
||||
jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel16);
|
||||
|
||||
jPanel17.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel17.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel17.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel17.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel17Layout = new javax.swing.GroupLayout(jPanel17);
|
||||
jPanel17.setLayout(jPanel17Layout);
|
||||
jPanel17Layout.setHorizontalGroup(
|
||||
jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel17Layout.setVerticalGroup(
|
||||
jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel17);
|
||||
|
||||
jPanel18.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel18.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel18.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel18.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel18Layout = new javax.swing.GroupLayout(jPanel18);
|
||||
jPanel18.setLayout(jPanel18Layout);
|
||||
jPanel18Layout.setHorizontalGroup(
|
||||
jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel18Layout.setVerticalGroup(
|
||||
jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel18);
|
||||
|
||||
jPanel19.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel19.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel19.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel19.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel19Layout = new javax.swing.GroupLayout(jPanel19);
|
||||
jPanel19.setLayout(jPanel19Layout);
|
||||
jPanel19Layout.setHorizontalGroup(
|
||||
jPanel19Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel19Layout.setVerticalGroup(
|
||||
jPanel19Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel19);
|
||||
|
||||
jPanel20.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel20.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel20.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel20.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel20Layout = new javax.swing.GroupLayout(jPanel20);
|
||||
jPanel20.setLayout(jPanel20Layout);
|
||||
jPanel20Layout.setHorizontalGroup(
|
||||
jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel20Layout.setVerticalGroup(
|
||||
jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel20);
|
||||
|
||||
jPanel21.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel21.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel21.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel21.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel21Layout = new javax.swing.GroupLayout(jPanel21);
|
||||
jPanel21.setLayout(jPanel21Layout);
|
||||
jPanel21Layout.setHorizontalGroup(
|
||||
jPanel21Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel21Layout.setVerticalGroup(
|
||||
jPanel21Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 100, Short.MAX_VALUE)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
javax.swing.GroupLayout avatarPanelLayout = new javax.swing.GroupLayout(avatarPanel);
|
||||
avatarPanel.setLayout(avatarPanelLayout);
|
||||
avatarPanelLayout.setHorizontalGroup(
|
||||
avatarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(avatarPanelLayout.createSequentialGroup()
|
||||
.addGroup(avatarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(avatarPanelLayout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(jLabel12))
|
||||
.addGroup(avatarPanelLayout.createSequentialGroup()
|
||||
.addGroup(avatarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(avatarPanelLayout.createSequentialGroup()
|
||||
.addGap(30, 30, 30)
|
||||
.addGroup(avatarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(jPanel12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel19, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGap(33, 33, 33)
|
||||
.addGroup(avatarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jPanel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel14, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel20, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||
.addGroup(avatarPanelLayout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(avatarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(avatarPanelLayout.createSequentialGroup()
|
||||
.addGap(20, 20, 20)
|
||||
.addComponent(jPanel16, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(33, 33, 33)
|
||||
.addComponent(jPanel17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addComponent(jLabel13))))
|
||||
.addGap(32, 32, 32)
|
||||
.addGroup(avatarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jPanel18, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
avatarPanel.add(jPanel21);
|
||||
|
||||
jPanel22.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel22.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel22.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel22.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel22Layout = new javax.swing.GroupLayout(jPanel22);
|
||||
jPanel22.setLayout(jPanel22Layout);
|
||||
jPanel22Layout.setHorizontalGroup(
|
||||
jPanel22Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
avatarPanelLayout.setVerticalGroup(
|
||||
avatarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(avatarPanelLayout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(jLabel12)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addGroup(avatarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGap(26, 26, 26)
|
||||
.addGroup(avatarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jPanel15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel14, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGap(23, 23, 23)
|
||||
.addGroup(avatarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(jPanel19, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel20, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGap(18, 18, 18)
|
||||
.addGroup(avatarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addGroup(avatarPanelLayout.createSequentialGroup()
|
||||
.addComponent(jLabel13)
|
||||
.addGap(18, 18, 18)
|
||||
.addComponent(jPanel16, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addComponent(jPanel17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jPanel18, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGap(25, 25, 25))
|
||||
jPanel22Layout.setVerticalGroup(
|
||||
jPanel22Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel22);
|
||||
|
||||
jPanel23.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel23.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel23.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel23.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel23Layout = new javax.swing.GroupLayout(jPanel23);
|
||||
jPanel23.setLayout(jPanel23Layout);
|
||||
jPanel23Layout.setHorizontalGroup(
|
||||
jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel23Layout.setVerticalGroup(
|
||||
jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel23);
|
||||
|
||||
jPanel24.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel24.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel24.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel24.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel24Layout = new javax.swing.GroupLayout(jPanel24);
|
||||
jPanel24.setLayout(jPanel24Layout);
|
||||
jPanel24Layout.setHorizontalGroup(
|
||||
jPanel24Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel24Layout.setVerticalGroup(
|
||||
jPanel24Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel24);
|
||||
|
||||
jPanel25.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel25.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel25.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel25.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel25Layout = new javax.swing.GroupLayout(jPanel25);
|
||||
jPanel25.setLayout(jPanel25Layout);
|
||||
jPanel25Layout.setHorizontalGroup(
|
||||
jPanel25Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel25Layout.setVerticalGroup(
|
||||
jPanel25Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel25);
|
||||
|
||||
jPanel26.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel26.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel26.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel26.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel26Layout = new javax.swing.GroupLayout(jPanel26);
|
||||
jPanel26.setLayout(jPanel26Layout);
|
||||
jPanel26Layout.setHorizontalGroup(
|
||||
jPanel26Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel26Layout.setVerticalGroup(
|
||||
jPanel26Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel26);
|
||||
|
||||
jPanel27.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel27.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel27.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel27.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel27Layout = new javax.swing.GroupLayout(jPanel27);
|
||||
jPanel27.setLayout(jPanel27Layout);
|
||||
jPanel27Layout.setHorizontalGroup(
|
||||
jPanel27Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel27Layout.setVerticalGroup(
|
||||
jPanel27Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel27);
|
||||
|
||||
jPanel28.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel28.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel28.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel28.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel28Layout = new javax.swing.GroupLayout(jPanel28);
|
||||
jPanel28.setLayout(jPanel28Layout);
|
||||
jPanel28Layout.setHorizontalGroup(
|
||||
jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel28Layout.setVerticalGroup(
|
||||
jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel28);
|
||||
|
||||
jPanel29.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel29.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel29.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel29.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel29Layout = new javax.swing.GroupLayout(jPanel29);
|
||||
jPanel29.setLayout(jPanel29Layout);
|
||||
jPanel29Layout.setHorizontalGroup(
|
||||
jPanel29Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel29Layout.setVerticalGroup(
|
||||
jPanel29Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel29);
|
||||
|
||||
jPanel30.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel30.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel30.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel30.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel30Layout = new javax.swing.GroupLayout(jPanel30);
|
||||
jPanel30.setLayout(jPanel30Layout);
|
||||
jPanel30Layout.setHorizontalGroup(
|
||||
jPanel30Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel30Layout.setVerticalGroup(
|
||||
jPanel30Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel30);
|
||||
|
||||
jPanel31.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel31.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel31.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel31.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel31Layout = new javax.swing.GroupLayout(jPanel31);
|
||||
jPanel31.setLayout(jPanel31Layout);
|
||||
jPanel31Layout.setHorizontalGroup(
|
||||
jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel31Layout.setVerticalGroup(
|
||||
jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel31);
|
||||
|
||||
jPanel32.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel32.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel32.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel32.setPreferredSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel32Layout = new javax.swing.GroupLayout(jPanel32);
|
||||
jPanel32.setLayout(jPanel32Layout);
|
||||
jPanel32Layout.setHorizontalGroup(
|
||||
jPanel32Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel32Layout.setVerticalGroup(
|
||||
jPanel32Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel32);
|
||||
|
||||
jPanel33.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true));
|
||||
jPanel33.setMaximumSize(new java.awt.Dimension(102, 102));
|
||||
jPanel33.setMinimumSize(new java.awt.Dimension(102, 102));
|
||||
|
||||
javax.swing.GroupLayout jPanel33Layout = new javax.swing.GroupLayout(jPanel33);
|
||||
jPanel33.setLayout(jPanel33Layout);
|
||||
jPanel33Layout.setHorizontalGroup(
|
||||
jPanel33Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel33Layout.setVerticalGroup(
|
||||
jPanel33Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 110, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
avatarPanel.add(jPanel33);
|
||||
|
||||
avatarPane.setViewportView(avatarPanel);
|
||||
|
||||
javax.swing.GroupLayout tabAvatarsLayout = new javax.swing.GroupLayout(tabAvatars);
|
||||
tabAvatars.setLayout(tabAvatarsLayout);
|
||||
tabAvatarsLayout.setHorizontalGroup(
|
||||
tabAvatarsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(avatarPane, javax.swing.GroupLayout.DEFAULT_SIZE, 590, Short.MAX_VALUE)
|
||||
.addGroup(tabAvatarsLayout.createSequentialGroup()
|
||||
.addComponent(avatarPane, javax.swing.GroupLayout.PREFERRED_SIZE, 527, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(0, 0, Short.MAX_VALUE))
|
||||
);
|
||||
tabAvatarsLayout.setVerticalGroup(
|
||||
tabAvatarsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(avatarPane, javax.swing.GroupLayout.DEFAULT_SIZE, 432, Short.MAX_VALUE)
|
||||
.addComponent(avatarPane, javax.swing.GroupLayout.PREFERRED_SIZE, 418, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
tabsPanel.addTab("Avatars", tabAvatars);
|
||||
|
|
@ -1629,7 +1836,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
.addContainerGap()
|
||||
.addComponent(lblURLServerList, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(txtURLServerList, javax.swing.GroupLayout.PREFERRED_SIZE, 421, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addComponent(txtURLServerList, javax.swing.GroupLayout.PREFERRED_SIZE, 370, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGroup(connection_serversLayout.createSequentialGroup()
|
||||
.addGap(141, 141, 141)
|
||||
.addComponent(jLabel17)))
|
||||
|
|
@ -1651,15 +1858,14 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
tabConnectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(tabConnectionLayout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(tabConnectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(tabConnectionLayout.createSequentialGroup()
|
||||
.addGroup(tabConnectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
||||
.addComponent(pnlProxySettings, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, tabConnectionLayout.createSequentialGroup()
|
||||
.addComponent(lblProxyType)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(cbProxyType, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(0, 0, Short.MAX_VALUE))
|
||||
.addComponent(pnlProxySettings, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(cbProxyType, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addComponent(connection_servers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addContainerGap())
|
||||
.addContainerGap(16, Short.MAX_VALUE))
|
||||
);
|
||||
tabConnectionLayout.setVerticalGroup(
|
||||
tabConnectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
|
|
@ -1672,7 +1878,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
.addComponent(cbProxyType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGap(18, 18, 18)
|
||||
.addComponent(pnlProxySettings, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addContainerGap(90, Short.MAX_VALUE))
|
||||
.addContainerGap(107, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
pnlProxySettings.getAccessibleContext().setAccessibleDescription("");
|
||||
|
|
@ -1700,12 +1906,12 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addContainerGap(405, Short.MAX_VALUE)
|
||||
.addComponent(saveButton)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(exitButton, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addContainerGap())
|
||||
.addComponent(tabsPanel)
|
||||
.addComponent(tabsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
|
|
@ -1795,10 +2001,11 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
save(prefs, dialog.txtURLServerList, KEY_CONNECTION_URL_SERVER_LIST);
|
||||
|
||||
// Avatar
|
||||
if (available_avatars.contains(selectedAvatarId)) {
|
||||
prefs.put(KEY_AVATAR, String.valueOf(selectedAvatarId));
|
||||
updateCache(KEY_AVATAR, String.valueOf(selectedAvatarId));
|
||||
if (selectedAvatarId < MIN_AVATAR_ID || selectedAvatarId > MAX_AVATAR_ID) {
|
||||
selectedAvatarId = DEFAULT_AVATAR_ID;
|
||||
}
|
||||
prefs.put(KEY_AVATAR, String.valueOf(selectedAvatarId));
|
||||
updateCache(KEY_AVATAR, String.valueOf(selectedAvatarId));
|
||||
|
||||
try {
|
||||
MageFrame.getClient().setPreferences(getUserData());
|
||||
|
|
@ -2275,7 +2482,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
} catch (NumberFormatException n) {
|
||||
selectedAvatarId = DEFAULT_AVATAR_ID;
|
||||
} finally {
|
||||
if (!available_avatars.contains(selectedAvatarId)) {
|
||||
if (selectedAvatarId < MIN_AVATAR_ID || selectedAvatarId > MAX_AVATAR_ID) {
|
||||
selectedAvatarId = DEFAULT_AVATAR_ID;
|
||||
}
|
||||
}
|
||||
|
|
@ -2441,26 +2648,37 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
|
||||
private void addAvatars() {
|
||||
try {
|
||||
addAvatar(jPanel10, 51, true, false);
|
||||
addAvatar(jPanel10, 10, true, false);
|
||||
addAvatar(jPanel11, 11, false, false);
|
||||
addAvatar(jPanel12, 12, false, false);
|
||||
addAvatar(jPanel13, 13, false, false);
|
||||
addAvatar(jPanel11, 9, false, false);
|
||||
addAvatar(jPanel12, 53, false, false);
|
||||
addAvatar(jPanel14, 10, false, false);
|
||||
addAvatar(jPanel15, 39, false, false);
|
||||
addAvatar(jPanel14, 14, false, false);
|
||||
addAvatar(jPanel15, 15, false, false);
|
||||
addAvatar(jPanel16, 16, false, false);
|
||||
addAvatar(jPanel17, 17, false, false);
|
||||
addAvatar(jPanel18, 18, false, false);
|
||||
addAvatar(jPanel19, 19, false, false);
|
||||
addAvatar(jPanel20, 30, false, false);
|
||||
addAvatar(jPanel21, 25, false, false);
|
||||
addAvatar(jPanel20, 20, false, false);
|
||||
addAvatar(jPanel21, 21, false, false);
|
||||
addAvatar(jPanel22, 22, false, false);
|
||||
addAvatar(jPanel23, 23, false, false);
|
||||
addAvatar(jPanel24, 24, false, false);
|
||||
addAvatar(jPanel25, 25, false, false);
|
||||
addAvatar(jPanel26, 26, false, false);
|
||||
addAvatar(jPanel27, 27, false, false);
|
||||
addAvatar(jPanel28, 28, false, false);
|
||||
addAvatar(jPanel29, 29, false, false);
|
||||
addAvatar(jPanel30, 30, false, false);
|
||||
addAvatar(jPanel31, 31, false, false);
|
||||
addAvatar(jPanel32, 32, false, false);
|
||||
|
||||
addAvatar(jPanel16, 22, false, false);
|
||||
addAvatar(jPanel17, 77, false, false);
|
||||
addAvatar(jPanel18, 62, false, false);
|
||||
} catch (Exception e) {
|
||||
log.error(e, e);
|
||||
}
|
||||
}
|
||||
|
||||
public void setSelectedId(int id) {
|
||||
if (available_avatars.contains(id)) {
|
||||
if (id >= MIN_AVATAR_ID && id <= MAX_AVATAR_ID) {
|
||||
for (JPanel panel : panels.values()) {
|
||||
panel.setBorder(BLACK_BORDER);
|
||||
}
|
||||
|
|
@ -2473,7 +2691,8 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
String path = "/avatars/" + String.valueOf(id) + ".jpg";
|
||||
panels.put(id, jPanel);
|
||||
Image image = ImageHelper.getImageFromResources(path);
|
||||
Rectangle r = new Rectangle(90, 90);
|
||||
|
||||
Rectangle r = new Rectangle(jPanel.getWidth() - 5, jPanel.getHeight() - 5);
|
||||
BufferedImage bufferedImage;
|
||||
if (!locked) {
|
||||
bufferedImage = BufferedImageBuilder.bufferImage(image, BufferedImage.TYPE_INT_ARGB);
|
||||
|
|
@ -2571,8 +2790,6 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
private javax.swing.JCheckBox displayBigCardsInHand;
|
||||
private javax.swing.JButton exitButton;
|
||||
private javax.swing.JLabel jLabel11;
|
||||
private javax.swing.JLabel jLabel12;
|
||||
private javax.swing.JLabel jLabel13;
|
||||
private javax.swing.JLabel jLabel14;
|
||||
private javax.swing.JLabel jLabel15;
|
||||
private javax.swing.JLabel jLabel16;
|
||||
|
|
@ -2599,6 +2816,18 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
|||
private javax.swing.JPanel jPanel19;
|
||||
private javax.swing.JPanel jPanel20;
|
||||
private javax.swing.JPanel jPanel21;
|
||||
private javax.swing.JPanel jPanel22;
|
||||
private javax.swing.JPanel jPanel23;
|
||||
private javax.swing.JPanel jPanel24;
|
||||
private javax.swing.JPanel jPanel25;
|
||||
private javax.swing.JPanel jPanel26;
|
||||
private javax.swing.JPanel jPanel27;
|
||||
private javax.swing.JPanel jPanel28;
|
||||
private javax.swing.JPanel jPanel29;
|
||||
private javax.swing.JPanel jPanel30;
|
||||
private javax.swing.JPanel jPanel31;
|
||||
private javax.swing.JPanel jPanel32;
|
||||
private javax.swing.JPanel jPanel33;
|
||||
private javax.swing.JLabel labelPreferedImageLanguage;
|
||||
private javax.swing.JLabel lblProxyPassword;
|
||||
private javax.swing.JLabel lblProxyPort;
|
||||
|
|
|
|||
|
|
@ -59,6 +59,9 @@ import mage.client.util.ImageHelper;
|
|||
import mage.client.util.gui.BufferedImageBuilder;
|
||||
import mage.client.util.gui.countryBox.CountryUtil;
|
||||
import mage.components.ImagePanel;
|
||||
import static mage.constants.Constants.DEFAULT_AVATAR_ID;
|
||||
import static mage.constants.Constants.MAX_AVATAR_ID;
|
||||
import static mage.constants.Constants.MIN_AVATAR_ID;
|
||||
import mage.constants.ManaType;
|
||||
import mage.utils.timer.PriorityTimer;
|
||||
import mage.view.ManaPoolView;
|
||||
|
|
@ -91,7 +94,7 @@ public class PlayerPanelExt extends javax.swing.JPanel {
|
|||
|
||||
private static final int AVATAR_COUNT = 77;
|
||||
|
||||
private static final String DEFAULT_AVATAR_PATH = "/avatars/51.jpg";
|
||||
private static final String DEFAULT_AVATAR_PATH = "/avatars/" + DEFAULT_AVATAR_ID + ".jpg";
|
||||
|
||||
private static final int PANEL_WIDTH = 94;
|
||||
private static final int PANEL_HEIGHT = 242;
|
||||
|
|
@ -236,8 +239,8 @@ public class PlayerPanelExt extends javax.swing.JPanel {
|
|||
|
||||
if (!MageFrame.isLite()) {
|
||||
int id = player.getUserData().getAvatarId();
|
||||
if (id <= 0) {
|
||||
id = PreferencesDialog.DEFAULT_AVATAR_ID;
|
||||
if (!(id >= 1000) && (id <= 0 || (id <= MIN_AVATAR_ID && id > MAX_AVATAR_ID))) {
|
||||
id = DEFAULT_AVATAR_ID;
|
||||
}
|
||||
if (id != avatarId) {
|
||||
avatarId = id;
|
||||
|
|
|
|||
|
|
@ -25,21 +25,21 @@
|
|||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
package mage.client.util;
|
||||
|
||||
import java.util.Comparator;
|
||||
import mage.utils.CardUtil;
|
||||
import mage.view.CardView;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public class CardViewColorDetailedComparator implements Comparator<CardView> {
|
||||
public class CardViewColorIdentityComparator implements Comparator<CardView> {
|
||||
|
||||
@Override
|
||||
public int compare(CardView o1, CardView o2) {
|
||||
return o1.getColor().hashCode() - o2.getColor().hashCode();
|
||||
return CardUtil.getColorIdentitySortValue(o1.getManaCost(), o1.getColor(), o1.getRules())
|
||||
- CardUtil.getColorIdentitySortValue(o2.getManaCost(), o2.getColor(), o2.getRules());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
/*
|
||||
* Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
|
|
@ -20,12 +20,11 @@
|
|||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
package mage.client.util;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
|
@ -39,7 +38,7 @@ public class CardViewCostComparator implements Comparator<CardView> {
|
|||
|
||||
@Override
|
||||
public int compare(CardView o1, CardView o2) {
|
||||
return Integer.valueOf(o1.getConvertedManaCost()).compareTo(Integer.valueOf(o2.getConvertedManaCost()));
|
||||
return Integer.valueOf(o1.getConvertedManaCost()).compareTo(o2.getConvertedManaCost());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ public class GathererSets implements Iterable<DownloadJob> {
|
|||
"THS", "BNG", "JOU",
|
||||
"CNS", "VMA", "TPR",
|
||||
"KTK", "FRF", "DTK",
|
||||
"BFZ"};
|
||||
"BFZ", "EXP", "OGW"};
|
||||
private static final HashMap<String, String> symbolsReplacements = new HashMap<>();
|
||||
|
||||
static {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ public class MagicCardsImageSource implements CardImageSource {
|
|||
|
||||
private static final Map<String, String> setNameTokenReplacement = new HashMap<String, String>() {
|
||||
{
|
||||
put("ORG", "oath-of-the-gatewatch");
|
||||
put("EXP", "zendikar-expeditions");
|
||||
put("BFZ", "battle-for-zendikar");
|
||||
put("FVL", "from-the-vault-legends");
|
||||
put("FVD", "from-the-vault-dragons");
|
||||
|
|
|
|||
|
|
@ -36,7 +36,10 @@ import java.net.Proxy;
|
|||
import java.net.URL;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.prefs.Preferences;
|
||||
import mage.client.MageFrame;
|
||||
import mage.remote.Connection;
|
||||
|
|
@ -56,6 +59,7 @@ public class MythicspoilerComSource implements CardImageSource {
|
|||
private static CardImageSource instance;
|
||||
private static Map<String, String> setsAliases;
|
||||
private static Map<String, String> cardNameAliases;
|
||||
private static Map<String, Set<String>> cardNameAliasesStart;
|
||||
private final Map<String, Map<String, String>> sets;
|
||||
|
||||
public static CardImageSource getInstance() {
|
||||
|
|
@ -71,8 +75,9 @@ public class MythicspoilerComSource implements CardImageSource {
|
|||
}
|
||||
|
||||
public MythicspoilerComSource() {
|
||||
sets = new HashMap<>();
|
||||
sets = new LinkedHashMap<>();
|
||||
setsAliases = new HashMap<>();
|
||||
setsAliases.put("exp", "bfz");
|
||||
cardNameAliases = new HashMap<>();
|
||||
// set+wrong name from web side => correct card name
|
||||
cardNameAliases.put("MM2-otherwordlyjourney", "otherworldlyjourney");
|
||||
|
|
@ -81,12 +86,21 @@ public class MythicspoilerComSource implements CardImageSource {
|
|||
cardNameAliases.put("THS-soldierofpantheon", "soldierofthepantheon");
|
||||
cardNameAliases.put("THS-vulpinegolaith", "vulpinegoliath");
|
||||
cardNameAliases.put("ORI-kothopedhoarderofsouls", "kothophedsoulhoarder");
|
||||
cardNameAliases.put("BFZ-unisonstrike", "tandemtactics");
|
||||
cardNameAliases.put("BFZ-eldrazidevastator", "eldrazidevastator");
|
||||
cardNameAliases.put("BFZ-kozliekschanneler", "kozilekschanneler");
|
||||
|
||||
cardNameAliasesStart = new HashMap<>();
|
||||
HashSet<String> names = new HashSet<>();
|
||||
names.add("eldrazidevastator.jpg");
|
||||
cardNameAliasesStart.put("BFZ", names);
|
||||
}
|
||||
|
||||
private Map<String, String> getSetLinks(String cardSet) {
|
||||
Map<String, String> setLinks = new HashMap<>();
|
||||
try {
|
||||
String setNames = setsAliases.get(cardSet.toLowerCase());
|
||||
Set<String> aliasesStart = cardNameAliasesStart.get(cardSet);
|
||||
if (setNames == null) {
|
||||
setNames = cardSet.toLowerCase();
|
||||
}
|
||||
|
|
@ -119,33 +133,42 @@ public class MythicspoilerComSource implements CardImageSource {
|
|||
}
|
||||
|
||||
Elements cardsImages = doc.select("img[src^=cards/]"); // starts with cards/
|
||||
if (!aliasesStart.isEmpty()) {
|
||||
for (String text : aliasesStart) {
|
||||
cardsImages.addAll(doc.select("img[src^=" + text + "]"));
|
||||
}
|
||||
}
|
||||
if (cardsImages.isEmpty()) {
|
||||
break;
|
||||
}
|
||||
|
||||
for (Element cardsImage : cardsImages) {
|
||||
String cardLink = cardsImage.attr("src");
|
||||
String cardName = null;
|
||||
if (cardLink.startsWith("cards/") && cardLink.endsWith(".jpg")) {
|
||||
String cardName = cardLink.substring(6, cardLink.length() - 4);
|
||||
if (cardName != null && !cardName.isEmpty()) {
|
||||
if (cardNameAliases.containsKey(cardSet + "-" + cardName)) {
|
||||
cardName = cardNameAliases.get(cardSet + "-" + cardName);
|
||||
}
|
||||
if (cardName.endsWith("1") || cardName.endsWith("2") || cardName.endsWith("3") || cardName.endsWith("4") || cardName.endsWith("5")) {
|
||||
if (!cardName.startsWith("forest")
|
||||
&& !cardName.startsWith("swamp")
|
||||
&& !cardName.startsWith("mountain")
|
||||
&& !cardName.startsWith("island")
|
||||
&& !cardName.startsWith("plains")) {
|
||||
cardName = cardName.substring(0, cardName.length() - 1);
|
||||
}
|
||||
}
|
||||
setLinks.put(cardName, baseUrl + cardLink);
|
||||
}
|
||||
cardName = cardLink.substring(6, cardLink.length() - 4);
|
||||
} else if (aliasesStart.contains(cardLink)) {
|
||||
cardName = cardLink.substring(0, cardLink.length() - 4);;
|
||||
}
|
||||
if (cardName != null && !cardName.isEmpty()) {
|
||||
if (cardNameAliases.containsKey(cardSet + "-" + cardName)) {
|
||||
cardName = cardNameAliases.get(cardSet + "-" + cardName);
|
||||
}
|
||||
if (cardName.endsWith("1") || cardName.endsWith("2") || cardName.endsWith("3") || cardName.endsWith("4") || cardName.endsWith("5")) {
|
||||
if (!cardName.startsWith("forest")
|
||||
&& !cardName.startsWith("swamp")
|
||||
&& !cardName.startsWith("mountain")
|
||||
&& !cardName.startsWith("island")
|
||||
&& !cardName.startsWith("plains")) {
|
||||
cardName = cardName.substring(0, cardName.length() - 1);
|
||||
}
|
||||
}
|
||||
setLinks.put(cardName, baseUrl + cardLink);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} catch (IOException ex) {
|
||||
System.out.println("Exception when parsing the mythicspoiler page: " + ex.getMessage());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@ import org.mage.plugins.card.utils.CardImageUtils;
|
|||
|
||||
/**
|
||||
* This class stores ALL card images in a cache with soft values. this means
|
||||
* that the images may be garbage collected when they are not needed any more, but will
|
||||
* be kept as long as possible.
|
||||
* that the images may be garbage collected when they are not needed any more,
|
||||
* but will be kept as long as possible.
|
||||
*
|
||||
* Key format: "<cardname>#<setname>#<type>#<collectorID>#<param>"
|
||||
*
|
||||
|
|
@ -46,8 +46,7 @@ public class ImageCache {
|
|||
private static final Map<String, BufferedImage> imageCache;
|
||||
|
||||
/**
|
||||
* Common pattern for keys.
|
||||
* Format: "<cardname>#<setname>#<collectorID>"
|
||||
* Common pattern for keys. Format: "<cardname>#<setname>#<collectorID>"
|
||||
*/
|
||||
private static final Pattern KEY_PATTERN = Pattern.compile("(.*)#(.*)#(.*)#(.*)#(.*)");
|
||||
|
||||
|
|
@ -104,16 +103,16 @@ public class ImageCache {
|
|||
thumbnailFile = new TFile(thumbnailPath);
|
||||
} catch (Exception ex) {
|
||||
}
|
||||
boolean exists =false;
|
||||
boolean exists = false;
|
||||
if (thumbnailFile != null) {
|
||||
try {
|
||||
exists = thumbnailFile.exists();
|
||||
} catch(Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
exists = false;
|
||||
}
|
||||
}
|
||||
if (exists) {
|
||||
log.debug("loading thumbnail for " + key + ", path="+thumbnailPath);
|
||||
log.debug("loading thumbnail for " + key + ", path=" + thumbnailPath);
|
||||
return loadImage(thumbnailFile);
|
||||
} else {
|
||||
BufferedImage image = loadImage(file);
|
||||
|
|
@ -187,30 +186,15 @@ public class ImageCache {
|
|||
}
|
||||
|
||||
public static BufferedImage getThumbnail(CardView card) {
|
||||
String key = getKey(card) + "#thumb";
|
||||
if (card.getUsesVariousArt()) {
|
||||
key += "#usesVariousArt";
|
||||
}
|
||||
// log.debug("#key: " + key);
|
||||
return getImage(key);
|
||||
return getImage(getKey(card, card.getName(), "#thumb"));
|
||||
}
|
||||
|
||||
public static BufferedImage getImageOriginal(CardView card) {
|
||||
String key = getKey(card);
|
||||
if (card.getUsesVariousArt()) {
|
||||
key += "#usesVariousArt";
|
||||
}
|
||||
// log.warn("#key: " + key);
|
||||
return getImage(key);
|
||||
return getImage(getKey(card, card.getName(), ""));
|
||||
}
|
||||
|
||||
public static BufferedImage getImageOriginalAlternateName(CardView card) {
|
||||
String key = getKeyAlternateName(card, card.getAlternateName());
|
||||
if (card.getUsesVariousArt()) {
|
||||
key += "#usesVariousArt";
|
||||
}
|
||||
// log.warn("#key: " + key);
|
||||
return getImage(key);
|
||||
return getImage(getKey(card, card.getAlternateName(), ""));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -230,7 +214,7 @@ public class ImageCache {
|
|||
if (ex.getCause() instanceof NullPointerException) {
|
||||
return null;
|
||||
}
|
||||
log.error(ex,ex);
|
||||
log.error(ex, ex);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -238,32 +222,25 @@ public class ImageCache {
|
|||
/**
|
||||
* Returns the map key for a card, without any suffixes for the image size.
|
||||
*/
|
||||
private static String getKey(CardView card) {
|
||||
StringBuilder sb = new StringBuilder(card.getName()).append("#");
|
||||
sb.append(card.getExpansionSetCode()).append("#");
|
||||
sb.append(card.getType()).append("#");
|
||||
sb.append(card.getCardNumber()).append("#");
|
||||
sb.append(card.getTokenSetCode() == null ? "":card.getTokenSetCode());
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the map key for the flip image of a card, without any suffixes for the image size.
|
||||
*/
|
||||
private static String getKeyAlternateName(CardView card, String alternateName) {
|
||||
StringBuilder sb = new StringBuilder(alternateName).append("#");
|
||||
sb.append(card.getExpansionSetCode()).append("#");
|
||||
sb.append(card.getType()).append("#");
|
||||
sb.append(card.getCardNumber()).append("#");
|
||||
sb.append(card.getTokenSetCode() == null ? "":card.getTokenSetCode());
|
||||
return sb.toString();
|
||||
private static String getKey(CardView card, String name, String suffix) {
|
||||
return name + "#" + card.getExpansionSetCode() + "#" + card.getType() + "#" + card.getCardNumber() + "#"
|
||||
+ (card.getTokenSetCode() == null ? "" : card.getTokenSetCode())
|
||||
+ suffix
|
||||
+ (card.getUsesVariousArt() ? "#usesVariousArt" : "");
|
||||
|
||||
}
|
||||
|
||||
// /**
|
||||
// * Returns the map key for the flip image of a card, without any suffixes for the image size.
|
||||
// */
|
||||
// private static String getKeyAlternateName(CardView card, String alternateName) {
|
||||
// return alternateName + "#" + card.getExpansionSetCode() + "#" +card.getType()+ "#" + card.getCardNumber() + "#"
|
||||
// + (card.getTokenSetCode() == null ? "":card.getTokenSetCode());
|
||||
// }
|
||||
/**
|
||||
* Load image from file
|
||||
*
|
||||
* @param file
|
||||
* file to load image from
|
||||
* @param file file to load image from
|
||||
* @return {@link BufferedImage}
|
||||
*/
|
||||
public static BufferedImage loadImage(TFile file) {
|
||||
|
|
@ -297,7 +274,7 @@ public class ImageCache {
|
|||
ImageIO.write(image, "jpg", outputStream);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
log.error(e,e);
|
||||
log.error(e, e);
|
||||
imageFile.delete();
|
||||
}
|
||||
return image;
|
||||
|
|
@ -305,6 +282,7 @@ public class ImageCache {
|
|||
|
||||
/**
|
||||
* Returns an image scaled to the size given
|
||||
*
|
||||
* @param original
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -344,6 +322,7 @@ public class ImageCache {
|
|||
/**
|
||||
* Returns an image scaled to the size appropriate for the card picture
|
||||
* panel
|
||||
*
|
||||
* @param original
|
||||
* @param sizeNeed
|
||||
* @return
|
||||
|
|
@ -356,6 +335,7 @@ public class ImageCache {
|
|||
|
||||
/**
|
||||
* Returns the image appropriate to display the card in the picture panel
|
||||
*
|
||||
* @param card
|
||||
* @param width
|
||||
* @param height
|
||||
|
|
@ -365,11 +345,7 @@ public class ImageCache {
|
|||
if (Constants.THUMBNAIL_SIZE_FULL.width + 10 > width) {
|
||||
return getThumbnail(card);
|
||||
}
|
||||
String key = getKey(card);
|
||||
if (card.getUsesVariousArt()) {
|
||||
key += "#usesVariousArt";
|
||||
}
|
||||
// log.warn("getImage: " + key);
|
||||
String key = getKey(card, card.getName(), "");
|
||||
BufferedImage original = getImage(key);
|
||||
if (original == null) {
|
||||
log.debug(key + " not found");
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 6.3 KiB |
BIN
Mage.Client/src/main/resources/avatars/11.jpg
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
Mage.Client/src/main/resources/avatars/12.jpg
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.4 KiB |
BIN
Mage.Client/src/main/resources/avatars/15.jpg
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
Mage.Client/src/main/resources/avatars/16.jpg
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
Mage.Client/src/main/resources/avatars/17.jpg
Normal file
|
After Width: | Height: | Size: 7 KiB |
BIN
Mage.Client/src/main/resources/avatars/18.jpg
Normal file
|
After Width: | Height: | Size: 9 KiB |
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 7 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
BIN
Mage.Client/src/main/resources/avatars/21.jpg
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 6 KiB After Width: | Height: | Size: 6 KiB |
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 7 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 9 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 7 KiB |
|
Before Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 10 KiB |
BIN
Mage.Client/src/main/resources/avatars/special/21.gif
Normal file
|
After Width: | Height: | Size: 23 KiB |
|
|
@ -1,5 +1,17 @@
|
|||
#Generate|TOK:BFZ|Eldrazi Scion|
|
||||
#Generate|TOK:BFZ|Elemental|
|
||||
#Generate|TOK:BFZ|Dragon|
|
||||
#Generate|TOK:BFZ|Eldrazi|
|
||||
#Generate|TOK:BFZ|Eldrazi Scion 1|
|
||||
#Generate|TOK:BFZ|Eldrazi Scion 2|
|
||||
#Generate|TOK:BFZ|Eldrazi Scion 3|
|
||||
#Generate|TOK:BFZ|Elemental 1|
|
||||
#Generate|TOK:BFZ|Elemental 2|
|
||||
#Generate|TOK:BFZ|Knight Ally|
|
||||
#Generate|TOK:BFZ|Kor Ally|
|
||||
#Generate|TOK:BFZ|Octopus|
|
||||
#Generate|TOK:BFZ|Plant|
|
||||
#|Generate|EMBLEM!:BFZ|Emblem Gideon, Ally of Zendikar|
|
||||
#|Generate|EMBLEM!:BFZ|Emblem Kiora, Master of the Depths|
|
||||
#|Generate|EMBLEM!:BFZ|Emblem Ob Nixilis Reignited|
|
||||
|
||||
#Generate|TOK:DDP|Eldrazi Spawn 1|
|
||||
#Generate|TOK:DDP|Eldrazi Spawn 2|
|
||||
|
|
|
|||
|
|
@ -64,6 +64,6 @@ ddd=gvl
|
|||
unh=uh
|
||||
dde=pvc
|
||||
# Remove setname as soon as the images can be downloaded
|
||||
ignore.urls=TOK,V15,DDP
|
||||
ignore.urls=TOK, OGW
|
||||
# sets ordered by release time (newest goes first)
|
||||
token.lookup.order=DDP,BFZ,FVD,FVE,FVL,FVR,V12,V13,V14,V15,TPR,MPRP,DD3,DDO,ORI,MM2,PTC,DTK,FRF,KTK,M15,VMA,CNS,JOU,BNG,THS,DDL,M14,MMA,DGM,GTC,RTR,M13,AVR,DDI,DKA,ISD,M12,NPH,MBS,SOM,M11,ROE,DDE,WWK,ZEN,M10,GVL,ARB,DVD,CFX,JVC,ALA,EVE,SHM,EVG,MOR,LRW,10E,CLS,CHK,GRC
|
||||
token.lookup.order=OGW,EXP,DDP,BFZ,FVD,FVE,FVL,FVR,V12,V13,V14,V15,TPR,MPRP,DD3,DDO,ORI,MM2,PTC,DTK,FRF,KTK,M15,VMA,CNS,JOU,BNG,THS,DDL,M14,MMA,DGM,GTC,RTR,M13,AVR,DDI,DKA,ISD,M12,NPH,MBS,SOM,M11,ROE,DDE,WWK,ZEN,M10,GVL,ARB,DVD,CFX,JVC,ALA,EVE,SHM,EVG,MOR,LRW,10E,CLS,CHK,GRC
|
||||