fix human/ai avatars switching on save/load and fix ai avatar in non-quest match appearing as the unknown icon

This commit is contained in:
myk
2013-03-28 17:36:10 +00:00
parent d7352524ec
commit 68e9c6b632
3 changed files with 10 additions and 42 deletions

View File

@@ -7,24 +7,14 @@ import forge.gui.framework.ICDoc;
/** /**
* Controls the avatars submenu in the home UI. * Controls the avatars submenu in the home UI.
*
* <br><br><i>(C at beginning of class name denotes a control class.)</i>
*
*/ */
public enum CSubmenuAvatars implements ICDoc { public enum CSubmenuAvatars implements ICDoc {
/** */
SINGLETON_INSTANCE; SINGLETON_INSTANCE;
/* (non-Javadoc)
* @see forge.control.home.IControlSubmenu#update()
*/
@Override @Override
public void initialize() { public void initialize() {
} }
/* (non-Javadoc)
* @see forge.control.home.IControlSubmenu#update()
*/
@Override @Override
public void update() { public void update() {
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
@@ -32,9 +22,6 @@ public enum CSubmenuAvatars implements ICDoc {
}); });
} }
/* (non-Javadoc)
* @see forge.gui.framework.ICDoc#getCommandOnSelect()
*/
@Override @Override
public Command getCommandOnSelect() { public Command getCommandOnSelect() {
return null; return null;

View File

@@ -25,18 +25,14 @@ import forge.properties.ForgePreferences.FPref;
/** /**
* Assembles Swing components of avatars submenu singleton. * Assembles Swing components of avatars submenu singleton.
*
* <br><br><i>(V at beginning of class name denotes a view class.)</i>
*/ */
public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> { public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
/** */
SINGLETON_INSTANCE; SINGLETON_INSTANCE;
// Fields used with interface IVDoc // Fields used with interface IVDoc
private DragCell parentCell; private DragCell parentCell;
private final DragTab tab = new DragTab("Avatars"); private final DragTab tab = new DragTab("Avatars");
/** */
private final JPanel pnlAvatars = new JPanel(); private final JPanel pnlAvatars = new JPanel();
private final FScrollPane scrContent = new FScrollPane(pnlAvatars, private final FScrollPane scrContent = new FScrollPane(pnlAvatars,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
@@ -47,9 +43,6 @@ public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
private final FLabel lblAvatarAI = new FLabel.Builder().hoverable(true).selectable(true) private final FLabel lblAvatarAI = new FLabel.Builder().hoverable(true).selectable(true)
.iconScaleFactor(0.99f).iconInBackground(true).build(); .iconScaleFactor(0.99f).iconInBackground(true).build();
/**
* Constructor.
*/
private VSubmenuAvatars() { private VSubmenuAvatars() {
populateAvatars(); populateAvatars();
scrContent.setBorder(null); scrContent.setBorder(null);
@@ -59,9 +52,6 @@ public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
lblAvatarHuman.requestFocusInWindow(); lblAvatarHuman.requestFocusInWindow();
} }
/* (non-Javadoc)
* @see forge.view.home.IViewSubmenu#populate()
*/
@Override @Override
public void populate() { public void populate() {
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().removeAll(); VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().removeAll();
@@ -73,25 +63,16 @@ public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().revalidate(); VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().revalidate();
} }
/* (non-Javadoc)
* @see forge.view.home.IViewSubmenu#getGroup()
*/
@Override @Override
public EMenuGroup getGroupEnum() { public EMenuGroup getGroupEnum() {
return EMenuGroup.SETTINGS; return EMenuGroup.SETTINGS;
} }
/* (non-Javadoc)
* @see forge.gui.home.IVSubmenu#getMenuTitle()
*/
@Override @Override
public String getMenuTitle() { public String getMenuTitle() {
return "Avatars"; return "Avatars";
} }
/* (non-Javadoc)
* @see forge.gui.home.IVSubmenu#getMenuName()
*/
@Override @Override
public EDocID getItemEnum() { public EDocID getItemEnum() {
return EDocID.HOME_AVATARS; return EDocID.HOME_AVATARS;
@@ -127,10 +108,10 @@ public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
"w 90%!, pushy, growy, gap 5% 0 0 0"); "w 90%!, pushy, growy, gap 5% 0 0 0");
final Command cmdHuman = new Command() { @Override final Command cmdHuman = new Command() { @Override
public void execute() { lblAvatarAI.setSelected(false); } }; public void execute() { lblAvatarAI.setSelected(false); lblAvatarHuman.requestFocusInWindow(); } };
final Command cmdAI = new Command() { @Override final Command cmdAI = new Command() { @Override
public void execute() { lblAvatarHuman.setSelected(false); } }; public void execute() { lblAvatarHuman.setSelected(false); lblAvatarAI.requestFocusInWindow(); } };
lblAvatarHuman.setCommand(cmdHuman); lblAvatarHuman.setCommand(cmdHuman);
lblAvatarAI.setCommand(cmdAI); lblAvatarAI.setCommand(cmdAI);
@@ -138,8 +119,8 @@ public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
lblAvatarHuman.setSelected(true); lblAvatarHuman.setSelected(true);
final String[] indexes = Singletons.getModel().getPreferences().getPref(FPref.UI_AVATARS).split(","); final String[] indexes = Singletons.getModel().getPreferences().getPref(FPref.UI_AVATARS).split(",");
int aiIndex = Integer.parseInt(indexes[0]); int humanIndex = Integer.parseInt(indexes[0]);
int humanIndex = Integer.parseInt(indexes[1]); int aiIndex = Integer.parseInt(indexes[1]);
if (humanIndex >= FSkin.getAvatars().size()) { humanIndex = 0; } if (humanIndex >= FSkin.getAvatars().size()) { humanIndex = 0; }
if (aiIndex >= FSkin.getAvatars().size()) { aiIndex = 0; } if (aiIndex >= FSkin.getAvatars().size()) { aiIndex = 0; }
@@ -147,7 +128,7 @@ public enum VSubmenuAvatars implements IVSubmenu<CSubmenuAvatars> {
lblAvatarAI.setIcon(new ImageIcon(FSkin.getAvatars().get(aiIndex))); lblAvatarAI.setIcon(new ImageIcon(FSkin.getAvatars().get(aiIndex)));
lblAvatarHuman.setIcon(new ImageIcon(FSkin.getAvatars().get(humanIndex))); lblAvatarHuman.setIcon(new ImageIcon(FSkin.getAvatars().get(humanIndex)));
Singletons.getModel().getPreferences().setPref(FPref.UI_AVATARS, aiIndex + "," + humanIndex); Singletons.getModel().getPreferences().setPref(FPref.UI_AVATARS, humanIndex + "," + aiIndex);
Singletons.getModel().getPreferences().save(); Singletons.getModel().getPreferences().save();
} }

View File

@@ -56,12 +56,12 @@ public enum CMatchUI {
private ImageIcon getPlayerAvatar(final Player p, final int defaultIndex) { private ImageIcon getPlayerAvatar(final Player p, final int defaultIndex) {
LobbyPlayer lp = p.getLobbyPlayer(); LobbyPlayer lp = p.getLobbyPlayer();
ImageIcon ret = ImageCache.getIcon(lp); if (null != lp.getIconImageKey()) {
if (null == ret) { return ImageCache.getIcon(lp);
int iAvatar = lp.getAvatarIndex();
return new ImageIcon(FSkin.getAvatars().get(iAvatar >= 0 ? iAvatar : defaultIndex));
} }
return ret;
int avatarIdx = lp.getAvatarIndex();
return new ImageIcon(FSkin.getAvatars().get(0 <= avatarIdx ? avatarIdx : defaultIndex));
} }