package org.leumasjaffe.charsheet.view.dev; import java.util.stream.Collectors; import javax.swing.JDialog; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import org.leumasjaffe.charsheet.model.DDCharacter; import org.leumasjaffe.charsheet.model.DDCharacterClass; import org.leumasjaffe.charsheet.view.skills.SkillLevelUpDialogue; public class DeveloperMenu extends JMenu { /** * */ private static final long serialVersionUID = 1L; DDCharacter[] model = { null }; public DeveloperMenu() { super("Developer"); JMenuItem mntmLevelUp = new JMenuItem("Level Up - Skill"); mntmLevelUp.addActionListener( e -> { Object[] choices = model[0].getClasses().stream().map(DDCharacterClass::getName).collect(Collectors.toList()).toArray(); String clazz = (String) JOptionPane.showInputDialog(this.getParent(), "Which Class is Leveling Up?", "Level Up - Skill", JOptionPane.QUESTION_MESSAGE, null, choices, choices[0]); if (clazz != null) { final JDialog dialog = new JDialog(); dialog.setTitle("Level Up - Skill Allocation"); dialog.setModal(true); dialog.setSize(510, 600); dialog.setContentPane(new SkillLevelUpDialogue(model[0], model[0].getClasses().stream().filter(c -> c.getName().equals(clazz)).findFirst().get())); dialog.setVisible(true); dialog.pack(); } }); add(mntmLevelUp); } public void setModel(DDCharacter model) { this.model[0] = model; } }