Quellcode durchsuchen

Provide error message if attempting to overfill spells prepared.

Sam Jaffe vor 8 Jahren
Ursprung
Commit
677cd20d1f

+ 8 - 1
src/org/leumasjaffe/charsheet/view/magic/SelectPreparedSpellsPanel.java

@@ -9,6 +9,7 @@ import javax.swing.JTable;
 import javax.swing.ListSelectionModel;
 
 import org.leumasjaffe.charsheet.model.magic.DDSpell;
+import org.leumasjaffe.charsheet.util.StringHelper;
 
 import lombok.AccessLevel;
 import lombok.AllArgsConstructor;
@@ -21,6 +22,7 @@ import javax.swing.border.BevelBorder;
 import javax.swing.border.SoftBevelBorder;
 import javax.swing.table.AbstractTableModel;
 import javax.swing.JButton;
+import javax.swing.JOptionPane;
 
 @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
 class SelectPreparedSpellsPanel extends JPanel {
@@ -133,6 +135,7 @@ class SelectPreparedSpellsPanel extends JPanel {
 			if (row != -1) {
 				modelPrepared.setValueAt("<none>", row, 0);
 			}
+			tablePrepared.getSelectionModel().clearSelection();
 			tablePrepared.repaint();
 		});
 		
@@ -153,8 +156,12 @@ class SelectPreparedSpellsPanel extends JPanel {
 			} else if (orows.length == 0 && countNone() >= rows.length) {
 				replace(rows);
 			} else {
-				// Error?
+				final String message = StringHelper.format("Unable to assign new spells, more spells were selected ({}) than were avaliable ({})", 
+						rows.length, orows.length == 0 ? countNone() : orows.length);
+				JOptionPane.showMessageDialog(this, message, "Error", JOptionPane.ERROR_MESSAGE);
 			}
+			tableKnown.getSelectionModel().clearSelection();
+			tablePrepared.getSelectionModel().clearSelection();
 			tablePrepared.repaint();
 		});
 	}