|
|
@@ -2,10 +2,10 @@ package org.leumasjaffe.charsheet.view.magic;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
-import java.util.Collection;
|
|
|
import java.util.List;
|
|
|
|
|
|
import javax.swing.JPanel;
|
|
|
+import javax.swing.JPopupMenu;
|
|
|
import javax.swing.JTable;
|
|
|
import javax.swing.ListSelectionModel;
|
|
|
|
|
|
@@ -14,6 +14,7 @@ import org.leumasjaffe.charsheet.model.magic.DDSpell;
|
|
|
import org.leumasjaffe.charsheet.model.magic.impl.Prepared;
|
|
|
import org.leumasjaffe.charsheet.model.observable.IntValue;
|
|
|
import org.leumasjaffe.charsheet.util.StringHelper;
|
|
|
+import org.leumasjaffe.graphics.SelectTableRowPopupMenuListener;
|
|
|
|
|
|
import lombok.AccessLevel;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
@@ -23,10 +24,13 @@ import java.awt.GridBagLayout;
|
|
|
import java.awt.Dimension;
|
|
|
import java.awt.GridBagConstraints;
|
|
|
import java.awt.Insets;
|
|
|
+
|
|
|
import javax.swing.border.BevelBorder;
|
|
|
import javax.swing.border.SoftBevelBorder;
|
|
|
import javax.swing.table.AbstractTableModel;
|
|
|
import javax.swing.JButton;
|
|
|
+import javax.swing.JFrame;
|
|
|
+import javax.swing.JMenuItem;
|
|
|
import javax.swing.JOptionPane;
|
|
|
import javax.swing.JScrollPane;
|
|
|
|
|
|
@@ -80,7 +84,7 @@ class SelectPreparedSpellsPanel extends JPanel {
|
|
|
putClientProperty(READY, true);
|
|
|
final Prepared spellBook = (Prepared) dclass.getSpellBook().get();
|
|
|
this.prepared = new ArrayList<>(spellBook.getSpellsPreparedPreviouslyForLevel(level));
|
|
|
- final Collection<DDSpell> known = spellBook.spellsKnownAtLevel(level);
|
|
|
+ final List<DDSpell> known = new ArrayList<>(spellBook.spellsKnownAtLevel(level));
|
|
|
this.modelPrepared = new SelectSpellModel(prepared.stream().map(DDSpell::getName).toArray());
|
|
|
this.modelKnown = new SelectSpellModel(known.stream().map(DDSpell::getName).toArray());
|
|
|
|
|
|
@@ -144,6 +148,19 @@ class SelectPreparedSpellsPanel extends JPanel {
|
|
|
scrollPane.setViewportView(tableKnown);
|
|
|
tableKnown.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
|
|
|
|
|
|
+ JPopupMenu popup = new JPopupMenu();
|
|
|
+ popup.addPopupMenuListener(new SelectTableRowPopupMenuListener(popup, tableKnown));
|
|
|
+ JMenuItem mntmInfo = new JMenuItem("Info");
|
|
|
+ mntmInfo.addActionListener( e -> {
|
|
|
+ DDSpell spell = known.get(tableKnown.getSelectedRow());
|
|
|
+ JFrame frame = new JFrame(spell.getName() + " (" + dclass.getName() + " " + level + ")");
|
|
|
+ frame.add(new SpellInfoPanel(dclass, spell));
|
|
|
+ frame.pack();
|
|
|
+ frame.setVisible(true);
|
|
|
+ });
|
|
|
+ popup.add(mntmInfo);
|
|
|
+ tableKnown.setComponentPopupMenu(popup);
|
|
|
+
|
|
|
JButton button = new JButton(">>");
|
|
|
button.setMargin(new Insets(2, 8, 2, 8));
|
|
|
GridBagConstraints gbc_button = new GridBagConstraints();
|