Ver Fonte

Move LoadoutMenu to its own File

Sam Jaffe há 8 anos atrás
pai
commit
04b4dc8e6d

+ 4 - 7
src/main/lombok/org/leumasjaffe/charsheet/view/inventory/EquipmentInfoMenu.java

@@ -5,8 +5,6 @@ import javax.swing.JPopupMenu;
 import org.leumasjaffe.charsheet.model.inventory.DDItem;
 import org.leumasjaffe.function.VoidVoidFunction;
 
-import java.util.function.Consumer;
-
 import javax.swing.JMenuItem;
 import javax.swing.JOptionPane;
 
@@ -15,7 +13,6 @@ class EquipmentInfoMenu extends JPopupMenu {
 	 * 
 	 */
 	private static final long serialVersionUID = 1L;
-	public Consumer<Void> example;
 	
 	public EquipmentInfoMenu(DDItem item, VoidVoidFunction unequipAction) {
 		
@@ -23,15 +20,15 @@ class EquipmentInfoMenu extends JPopupMenu {
 		add(mntmInfo);
 		
 		JMenuItem mntmEquip = new JMenuItem("Unequip");
-		mntmEquip.addActionListener( e -> {
-			if ( JOptionPane.showConfirmDialog(null, 
+		mntmEquip.addActionListener(e -> {
+			if (JOptionPane.showConfirmDialog(null, 
 					"Are you sure you want to unequip your " + item.getName(), 
 					"Unequip", JOptionPane.YES_NO_OPTION) 
-					== JOptionPane.YES_OPTION ) {
+					== JOptionPane.YES_OPTION) {
 				unequipAction.apply();
 				System.out.println("Unequiping " + item.getName());
 			}
-		} );
+		});
 		add(mntmEquip);
 	}
 

+ 0 - 65
src/main/lombok/org/leumasjaffe/charsheet/view/inventory/EquipmentPanel.java

@@ -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();
-		}
-	}
-	
 	/**
 	 * 
 	 */

+ 74 - 0
src/main/lombok/org/leumasjaffe/charsheet/view/inventory/LoadoutMenu.java

@@ -0,0 +1,74 @@
+package org.leumasjaffe.charsheet.view.inventory;
+
+import java.util.Optional;
+import java.util.stream.Stream;
+
+import javax.swing.JComboBox;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPopupMenu;
+
+import org.leumasjaffe.charsheet.config.Constants;
+import org.leumasjaffe.charsheet.model.inventory.DDInventory;
+import org.leumasjaffe.observer.ObserverDispatch;
+
+import lombok.AccessLevel;
+import lombok.Getter;
+import lombok.Setter;
+
+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);
+					ObserverDispatch.notifySubscribers(getModel(), null);
+				} 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();
+	}
+}