mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
- Made player tabs in Vanguard setup more descriptive
This commit is contained in:
@@ -77,54 +77,51 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
|||||||
|
|
||||||
private final Iterable<CardPrinted> allAvatars = Iterables.filter(CardDb.instance().getAllNonTraditionalCards(), CardPrinted.Predicates.type("Vanguard"));
|
private final Iterable<CardPrinted> allAvatars = Iterables.filter(CardDb.instance().getAllNonTraditionalCards(), CardPrinted.Predicates.type("Vanguard"));
|
||||||
private final List<CardPrinted> allAiAvatars = new ArrayList<CardPrinted>();
|
private final List<CardPrinted> allAiAvatars = new ArrayList<CardPrinted>();
|
||||||
|
|
||||||
//////////////////////////////
|
//////////////////////////////
|
||||||
|
|
||||||
private final JTabbedPane tabPane = new JTabbedPane();
|
private final JTabbedPane tabPane = new JTabbedPane();
|
||||||
private final List<FPanel> playerPanels = new ArrayList<FPanel>();
|
private final List<FPanel> playerPanels = new ArrayList<FPanel>();
|
||||||
private final List<FDeckChooser> deckChoosers = new ArrayList<FDeckChooser>();
|
private final List<FDeckChooser> deckChoosers = new ArrayList<FDeckChooser>();
|
||||||
private final List<FList> avatarLists = new ArrayList<FList>();
|
private final List<FList> avatarLists = new ArrayList<FList>();
|
||||||
|
|
||||||
private final List<JRadioButton> fieldRadios = new ArrayList<JRadioButton>();
|
private final List<JRadioButton> fieldRadios = new ArrayList<JRadioButton>();
|
||||||
private final ButtonGroup grpFields = new ButtonGroup();
|
private final ButtonGroup grpFields = new ButtonGroup();
|
||||||
private int currentNumTabsShown = 8;
|
private int currentNumTabsShown = 8;
|
||||||
|
|
||||||
//////////////////////////////
|
//////////////////////////////
|
||||||
|
|
||||||
private VSubmenuVanguard() {
|
private VSubmenuVanguard() {
|
||||||
|
|
||||||
lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2));
|
lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2));
|
||||||
|
|
||||||
Vector<Object> humanListData = new Vector<Object>();
|
Vector<Object> humanListData = new Vector<Object>();
|
||||||
Vector<Object> aiListData = new Vector<Object>();
|
Vector<Object> aiListData = new Vector<Object>();
|
||||||
humanListData.add("Random");
|
humanListData.add("Random");
|
||||||
aiListData.add("Random");
|
aiListData.add("Random");
|
||||||
for(CardPrinted cp : allAvatars)
|
for (CardPrinted cp : allAvatars) {
|
||||||
{
|
|
||||||
humanListData.add(cp);
|
humanListData.add(cp);
|
||||||
if(!cp.getCard().getRemAIDecks())
|
if (!cp.getCard().getRemAIDecks()) {
|
||||||
{
|
|
||||||
aiListData.add(cp);
|
aiListData.add(cp);
|
||||||
allAiAvatars.add(cp);
|
allAiAvatars.add(cp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//This listener will look for any of the radio buttons being selected
|
//This listener will look for any of the radio buttons being selected
|
||||||
//and call the method that shows/hides tabs appropriately.
|
//and call the method that shows/hides tabs appropriately.
|
||||||
ItemListener iListener = new ItemListener() {
|
ItemListener iListener = new ItemListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void itemStateChanged(ItemEvent arg0) {
|
public void itemStateChanged(ItemEvent arg0) {
|
||||||
FRadioButton aButton = (FRadioButton)arg0.getSource();
|
FRadioButton aButton = (FRadioButton) arg0.getSource();
|
||||||
|
|
||||||
if(arg0.getStateChange() == ItemEvent.SELECTED)
|
if (arg0.getStateChange() == ItemEvent.SELECTED) {
|
||||||
{
|
|
||||||
changeTabs(Integer.parseInt(aButton.getText()));
|
changeTabs(Integer.parseInt(aButton.getText()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//Create all 8 player settings panel
|
//Create all 8 player settings panel
|
||||||
FRadioButton tempRadio = null;
|
FRadioButton tempRadio = null;
|
||||||
FPanel tempPanel;
|
FPanel tempPanel;
|
||||||
@@ -143,40 +140,44 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
|||||||
grpFields.add(tempRadio);
|
grpFields.add(tempRadio);
|
||||||
tempRadio.setSelected(true);
|
tempRadio.setSelected(true);
|
||||||
tempRadio.addItemListener(iListener);
|
tempRadio.addItemListener(iListener);
|
||||||
radioPane.add(tempRadio,"wrap");
|
radioPane.add(tempRadio, "wrap");
|
||||||
}
|
}
|
||||||
settingsPanel.add(radioPane);
|
settingsPanel.add(radioPane);
|
||||||
settingsPanel.add(new FLabel.Builder().text("Set number of opponents").build());
|
settingsPanel.add(new FLabel.Builder().text("Set number of opponents").build());
|
||||||
tabPane.add("Settings",settingsPanel);
|
tabPane.add("Settings", settingsPanel);
|
||||||
|
|
||||||
//Player panels (Human + 7 AIs)
|
//Player panels (Human + 7 AIs)
|
||||||
for (int i = 0; i < 8;i++) {
|
for (int i = 0; i < 8; i++) {
|
||||||
tempPanel = new FPanel();
|
tempPanel = new FPanel();
|
||||||
tempPanel.setLayout(new MigLayout("insets 0, gap 0 , wrap 2"));
|
tempPanel.setLayout(new MigLayout("insets 0, gap 0 , wrap 2"));
|
||||||
|
|
||||||
tempChooser = new FDeckChooser("Select deck:", i == 0 ? PlayerType.HUMAN : PlayerType.COMPUTER);
|
tempChooser = new FDeckChooser("Select deck:", i == 0 ? PlayerType.HUMAN : PlayerType.COMPUTER);
|
||||||
tempChooser.initialize();
|
tempChooser.initialize();
|
||||||
|
|
||||||
tempList = new FList();
|
tempList = new FList();
|
||||||
|
|
||||||
tempList.setListData(i == 0 ? humanListData : aiListData);
|
tempList.setListData(i == 0 ? humanListData : aiListData);
|
||||||
tempList.setSelectedIndex(0);
|
tempList.setSelectedIndex(0);
|
||||||
tempList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
|
tempList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
|
||||||
|
|
||||||
deckChoosers.add(tempChooser);
|
deckChoosers.add(tempChooser);
|
||||||
avatarLists.add(tempList);
|
avatarLists.add(tempList);
|
||||||
|
|
||||||
tempPanel.add(tempChooser,"span 1 2, w 44%!, gap 0 0 20px 20px, growy, pushy");
|
tempPanel.add(tempChooser, "span 1 2, w 44%!, gap 0 0 20px 20px, growy, pushy");
|
||||||
|
|
||||||
tempPanel.add(new FLabel.Builder().text("Select Avatar:").build());
|
tempPanel.add(new FLabel.Builder().text("Select Avatar:").build());
|
||||||
|
|
||||||
JScrollPane scrAvatar = new FScrollPane(tempList, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
|
JScrollPane scrAvatar = new FScrollPane(tempList, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
|
||||||
tempPanel.add(scrAvatar,"h 90%!");
|
tempPanel.add(scrAvatar, "h 90%!");
|
||||||
|
|
||||||
playerPanels.add(tempPanel);
|
playerPanels.add(tempPanel);
|
||||||
tabPane.add("Player " + (i+1), tempPanel);
|
if (i == 0) {
|
||||||
|
tabPane.add("Human", tempPanel);
|
||||||
|
} else {
|
||||||
|
tabPane.add("Opponent " + i, tempPanel);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final String strCheckboxConstraints = "w 200px!, h 30px!, gap 0 20px 0 0";
|
final String strCheckboxConstraints = "w 200px!, h 30px!, gap 0 20px 0 0";
|
||||||
pnlStart.setOpaque(false);
|
pnlStart.setOpaque(false);
|
||||||
pnlStart.add(cbSingletons, strCheckboxConstraints);
|
pnlStart.add(cbSingletons, strCheckboxConstraints);
|
||||||
@@ -184,24 +185,19 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
|||||||
pnlStart.add(cbArtifacts, strCheckboxConstraints);
|
pnlStart.add(cbArtifacts, strCheckboxConstraints);
|
||||||
pnlStart.add(cbRemoveSmall, strCheckboxConstraints);
|
pnlStart.add(cbRemoveSmall, strCheckboxConstraints);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void changeTabs(int toShow)
|
private void changeTabs(int toShow) {
|
||||||
{
|
if (toShow < currentNumTabsShown) {
|
||||||
if(toShow < currentNumTabsShown)
|
for (int i = currentNumTabsShown; i > toShow + 1; i--) {
|
||||||
{
|
|
||||||
for(int i=currentNumTabsShown;i>toShow+1;i--)
|
|
||||||
{
|
|
||||||
tabPane.remove(i);
|
tabPane.remove(i);
|
||||||
}
|
}
|
||||||
currentNumTabsShown = tabPane.getComponentCount()-1;
|
currentNumTabsShown = tabPane.getComponentCount() - 1;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
for (int i = currentNumTabsShown; i <= toShow; i++) {
|
||||||
for(int i=currentNumTabsShown;i<=toShow;i++)
|
tabPane.add("Player " + (i + 1), playerPanels.get(i));
|
||||||
{
|
|
||||||
tabPane.add("Player " + (i+1),playerPanels.get(i));
|
|
||||||
}
|
}
|
||||||
currentNumTabsShown = tabPane.getComponentCount()-1;
|
currentNumTabsShown = tabPane.getComponentCount() - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -211,8 +207,8 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
|||||||
@Override
|
@Override
|
||||||
public EMenuGroup getGroupEnum() {
|
public EMenuGroup getGroupEnum() {
|
||||||
return EMenuGroup.VARIANT;
|
return EMenuGroup.VARIANT;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see forge.gui.home.IVSubmenu#getMenuTitle()
|
* @see forge.gui.home.IVSubmenu#getMenuTitle()
|
||||||
*/
|
*/
|
||||||
@@ -238,19 +234,18 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
|||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().setLayout(new MigLayout("insets 0, gap 0, wrap 1, ax right"));
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().setLayout(new MigLayout("insets 0, gap 0, wrap 1, ax right"));
|
||||||
|
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(lblTitle, "w 80%!, h 40px!, gap 0 0 15px 15px, span 2, ax right");
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(lblTitle, "w 80%!, h 40px!, gap 0 0 15px 15px, span 2, ax right");
|
||||||
|
|
||||||
for(FDeckChooser fdc : deckChoosers)
|
for (FDeckChooser fdc : deckChoosers) {
|
||||||
{
|
|
||||||
fdc.populate();
|
fdc.populate();
|
||||||
}
|
}
|
||||||
|
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(tabPane, "gap 0 0 50px 50px, growx, growy");
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(tabPane, "gap 0 0 50px 50px, growx, growy");
|
||||||
|
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(pnlStart, "span 1, ax center");
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(pnlStart, "span 1, ax center");
|
||||||
|
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().revalidate();
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().revalidate();
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().repaintSelf();
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().repaintSelf();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -258,7 +253,7 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
|||||||
public JButton getBtnStart() {
|
public JButton getBtnStart() {
|
||||||
return this.btnStart;
|
return this.btnStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** @return {@link javax.swing.JCheckBox} */
|
/** @return {@link javax.swing.JCheckBox} */
|
||||||
public JCheckBox getCbSingletons() {
|
public JCheckBox getCbSingletons() {
|
||||||
@@ -316,23 +311,20 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
|||||||
public DragCell getParentCell() {
|
public DragCell getParentCell() {
|
||||||
return parentCell;
|
return parentCell;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return a deckchooser for every player
|
* @return a deckchooser for every player
|
||||||
*/
|
*/
|
||||||
public List<FDeckChooser> getDeckChoosers()
|
public List<FDeckChooser> getDeckChoosers() {
|
||||||
{
|
|
||||||
return deckChoosers;
|
return deckChoosers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<FList> getAvatarLists()
|
public List<FList> getAvatarLists() {
|
||||||
{
|
|
||||||
return avatarLists;
|
return avatarLists;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getNumPlayers()
|
public int getNumPlayers() {
|
||||||
{
|
|
||||||
return currentNumTabsShown;
|
return currentNumTabsShown;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user