|
|
@@ -1,17 +1,12 @@
|
|
|
package org.leumasjaffe.charsheet.view.inventory;
|
|
|
|
|
|
-import javax.swing.JComboBox;
|
|
|
import javax.swing.JLabel;
|
|
|
-import javax.swing.JMenuItem;
|
|
|
-import javax.swing.JOptionPane;
|
|
|
import javax.swing.JPanel;
|
|
|
-import javax.swing.JPopupMenu;
|
|
|
import javax.swing.JScrollPane;
|
|
|
import javax.swing.SwingConstants;
|
|
|
import javax.swing.border.MatteBorder;
|
|
|
|
|
|
import org.jdesktop.swingx.VerticalLayout;
|
|
|
-import org.leumasjaffe.charsheet.config.Constants;
|
|
|
import org.leumasjaffe.charsheet.model.DDCharacter;
|
|
|
import org.leumasjaffe.charsheet.model.inventory.DDInventory;
|
|
|
import org.leumasjaffe.charsheet.model.inventory.DDItem;
|
|
|
@@ -21,8 +16,6 @@ import org.leumasjaffe.observer.ObservableListener;
|
|
|
import org.leumasjaffe.observer.ObserverDispatch;
|
|
|
|
|
|
import lombok.AccessLevel;
|
|
|
-import lombok.Getter;
|
|
|
-import lombok.Setter;
|
|
|
import lombok.experimental.FieldDefaults;
|
|
|
|
|
|
import java.awt.Color;
|
|
|
@@ -34,70 +27,12 @@ import java.util.EnumSet;
|
|
|
import java.util.Optional;
|
|
|
import java.util.Set;
|
|
|
import java.util.function.Function;
|
|
|
-import java.util.stream.Stream;
|
|
|
|
|
|
import static org.leumasjaffe.charsheet.model.inventory.EquipmentSlot.*;
|
|
|
|
|
|
@FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
|
|
|
public class EquipmentPanel extends JPanel {
|
|
|
|
|
|
- private class LoadoutMenu extends JPopupMenu {
|
|
|
-
|
|
|
- /**
|
|
|
- *
|
|
|
- */
|
|
|
- private static final long serialVersionUID = 1L;
|
|
|
-
|
|
|
- @Getter(AccessLevel.PRIVATE) @Setter DDInventory model = null;
|
|
|
-
|
|
|
- public LoadoutMenu() {
|
|
|
- JMenuItem mntmSaveAs = new JMenuItem("Save As");
|
|
|
- add(mntmSaveAs);
|
|
|
- mntmSaveAs.addActionListener(e -> {
|
|
|
- showSaveDialog().ifPresent(name -> getModel().save(name));
|
|
|
- });
|
|
|
-
|
|
|
- JMenuItem mntmLoad = new JMenuItem("Load");
|
|
|
- add(mntmLoad);
|
|
|
- mntmLoad.addActionListener(e -> {
|
|
|
- showLoadDialog().ifPresent(name -> {
|
|
|
- try {
|
|
|
- getModel().load(name);
|
|
|
- EquipmentPanel.this.updateModel(getModel());
|
|
|
- } catch (NullPointerException except) {
|
|
|
- JOptionPane.showMessageDialog(this, "Unable to load equipment, some items are missing",
|
|
|
- "Error", JOptionPane.ERROR_MESSAGE);
|
|
|
- }
|
|
|
- });
|
|
|
- });
|
|
|
-
|
|
|
- JMenuItem mntmViewLoadouts = new JMenuItem("View Loadouts");
|
|
|
- add(mntmViewLoadouts);
|
|
|
- mntmViewLoadouts.addActionListener(e -> {
|
|
|
-
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- private Optional<String> showSaveDialog() {
|
|
|
- return showSaveLoadDialog("Save Equipment Loadout As...", Stream.empty(), true);
|
|
|
- }
|
|
|
-
|
|
|
- private Optional<String> showLoadDialog() {
|
|
|
- return showSaveLoadDialog("Select Equipment Loadout", Stream.of(Constants.PREVIOUS_LOADOUT), false);
|
|
|
- }
|
|
|
-
|
|
|
- private Optional<String> showSaveLoadDialog(String message, Stream<String> base, boolean edit) {
|
|
|
- final String[] options = Stream.concat(base, getModel().getFavorites().keySet().stream()).toArray(String[]::new);
|
|
|
- final JComboBox<String> comboBox = new JComboBox<>(options);
|
|
|
- comboBox.setEditable(edit);
|
|
|
- if (JOptionPane.showConfirmDialog(this, comboBox, message,
|
|
|
- JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) {
|
|
|
- return Optional.of(comboBox.getSelectedItem().toString());
|
|
|
- }
|
|
|
- return Optional.empty();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
*
|
|
|
*/
|