Переглянути джерело

Making it possible to view Info panel while interacting with Prepare Dialog

Sam Jaffe 8 роки тому
батько
коміт
cccff70951

+ 2 - 2
src/org/leumasjaffe/charsheet/view/D20Sheet.java

@@ -125,7 +125,7 @@ public class D20Sheet extends JFrame {
 			for (DDCharacterClass dclass : model.getClasses()) {
 				dclass.getSpellBook().ifPresent(sb -> {
 					if (sb.preparesSpells()) {
-						DialogBuilder.createPrepareSpellsDialog(model, dclass);
+						DialogBuilder.createPrepareSpellsDialog(this, model, dclass);
 					} else {
 						for (int i = 0; i < dclass.getHighestSpellLevel(); ++i) {
 							sb.prepareSpells(i, null);
@@ -138,7 +138,7 @@ public class D20Sheet extends JFrame {
 		});
 		mnSession.add(mntmTakeRest);
 		
-		developerMenu = new DeveloperMenu();
+		developerMenu = new DeveloperMenu(this);
 		menuBar.add(developerMenu);
 		
 		// Set up post-GUI dependencies

+ 10 - 7
src/org/leumasjaffe/charsheet/view/builders/DialogBuilder.java

@@ -1,6 +1,9 @@
 package org.leumasjaffe.charsheet.view.builders;
 
+import java.awt.Dialog.ModalityType;
+
 import javax.swing.JDialog;
+import javax.swing.JFrame;
 import javax.swing.JPanel;
 
 import org.leumasjaffe.charsheet.model.DDCharacter;
@@ -12,21 +15,21 @@ import lombok.experimental.UtilityClass;
 
 @UtilityClass
 public class DialogBuilder {
-	private void createDialogue(final String title, final JPanel panel) {
-		final JDialog dialog = new JDialog();
+	private void createDialogue(final JFrame parent, final String title, final JPanel panel) {
+		final JDialog dialog = new JDialog(parent);
 		dialog.setTitle(title);
-		dialog.setModalityType(JDialog.DEFAULT_MODALITY_TYPE);
+		dialog.setModalityType(ModalityType.DOCUMENT_MODAL);
 
 		dialog.setContentPane(panel);
 		dialog.pack();
 		dialog.setVisible(true);
 	}
 	
-	public void createSkillDialog(DDCharacter chara, DDCharacterClass dclass) {
-		createDialogue("Level Up - Skill Allocation", new SkillLevelUpDialog(chara, dclass));
+	public void createSkillDialog(final JFrame parent, DDCharacter chara, DDCharacterClass dclass) {
+		createDialogue(parent, "Level Up - Skill Allocation", new SkillLevelUpDialog(chara, dclass));
 	}
 	
-	public void createPrepareSpellsDialog(DDCharacter chara, DDCharacterClass dclass) {
-		createDialogue("Prepare Spells - " + dclass.getName(), new PrepareSpellsDialog(chara, dclass));
+	public void createPrepareSpellsDialog(final JFrame parent, DDCharacter chara, DDCharacterClass dclass) {
+		createDialogue(parent, "Prepare Spells - " + dclass.getName(), new PrepareSpellsDialog(chara, dclass));
 	}
 }

+ 3 - 2
src/org/leumasjaffe/charsheet/view/dev/DeveloperMenu.java

@@ -2,6 +2,7 @@ package org.leumasjaffe.charsheet.view.dev;
 
 import java.util.stream.Collectors;
 
+import javax.swing.JFrame;
 import javax.swing.JMenu;
 import javax.swing.JMenuItem;
 import javax.swing.JOptionPane;
@@ -17,7 +18,7 @@ public class DeveloperMenu extends JMenu {
 	private static final long serialVersionUID = 1L;
 	DDCharacter[] model = { null };
 	
-	public DeveloperMenu() {
+	public DeveloperMenu(final JFrame parent) {
 		super("Developer");
 		JMenuItem mntmLevelUp = new JMenuItem("Level Up - Skill");
 		mntmLevelUp.addActionListener( e -> {
@@ -25,7 +26,7 @@ public class DeveloperMenu extends JMenu {
 			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) {
-				DialogBuilder.createSkillDialog(model[0], model[0].getClasses().stream().filter(c -> c.getName().equals(clazz)).findFirst().get());
+				DialogBuilder.createSkillDialog(parent, model[0], model[0].getClasses().stream().filter(c -> c.getName().equals(clazz)).findFirst().get());
 			}
 		});
 		add(mntmLevelUp);