Add title to avatar selector

Return focus to proper player after avatar selector closed
This commit is contained in:
drdev
2014-01-22 04:50:24 +00:00
parent 9f76a78b0a
commit 140e44a3bd
2 changed files with 8 additions and 9 deletions

View File

@@ -22,12 +22,9 @@ public class AvatarSelector extends FDialog {
private List<FLabel> selectables = new ArrayList<FLabel>(); private List<FLabel> selectables = new ArrayList<FLabel>();
private final Map<Integer, SkinImage> avatarMap = FSkin.getAvatars(); private final Map<Integer, SkinImage> avatarMap = FSkin.getAvatars();
public final void show(final AvatarSelector aSelector) { public AvatarSelector(final String playerName, final int currentIndex, final Collection<Integer> usedIndices) {
aSelector.setVisible(true); this.setTitle("Select avatar for " + playerName);
aSelector.dispose();
}
public AvatarSelector(final int currentIndex, final Collection<Integer> usedIndices) {
final JPanel pnlAvatarPics = new JPanel(new WrapLayout()); final JPanel pnlAvatarPics = new JPanel(new WrapLayout());
pnlAvatarPics.setOpaque(false); pnlAvatarPics.setOpaque(false);

View File

@@ -691,19 +691,21 @@ public enum VSubmenuConstructed implements IVSubmenu<CSubmenuConstructed> {
final int playerIndex = avatarList.indexOf(avatar); final int playerIndex = avatarList.indexOf(avatar);
changePlayerFocus(playerIndex); changePlayerFocus(playerIndex);
avatar.requestFocusInWindow();
final AvatarSelector aSel = new AvatarSelector(usedAvatars.get(playerIndex), usedAvatars.values()); final AvatarSelector aSel = new AvatarSelector(getPlayerName(playerIndex), usedAvatars.get(playerIndex), usedAvatars.values());
for (final FLabel lbl : aSel.getSelectables()) { for (final FLabel lbl : aSel.getSelectables()) {
lbl.setCommand(new Command() { lbl.setCommand(new Command() {
@Override @Override
public void run() { public void run() {
VSubmenuConstructed.this.setAvatar(avatar, playerIndex, Integer.valueOf(lbl.getName().substring(11))); VSubmenuConstructed.this.setAvatar(avatar, playerIndex, Integer.valueOf(lbl.getName().substring(11)));
aSel.setVisible(false); aSel.setVisible(false);
avatar.requestFocusInWindow();
} }
}); });
} }
aSel.show(aSel);
aSel.setVisible(true);
aSel.dispose();
if (playerIndex < 2) { updateAvatarPrefs(); } if (playerIndex < 2) { updateAvatarPrefs(); }
} }
@@ -713,9 +715,9 @@ public enum VSubmenuConstructed implements IVSubmenu<CSubmenuConstructed> {
int playerIndex = avatarList.indexOf(avatar); int playerIndex = avatarList.indexOf(avatar);
changePlayerFocus(playerIndex); changePlayerFocus(playerIndex);
avatar.requestFocusInWindow();
setRandomAvatar(avatar, playerIndex); setRandomAvatar(avatar, playerIndex);
avatar.requestFocusInWindow();
if (playerIndex < 2) { updateAvatarPrefs(); } if (playerIndex < 2) { updateAvatarPrefs(); }
} }