|
|
@@ -12,12 +12,7 @@ import lombok.experimental.FieldDefaults;
|
|
|
|
|
|
import javax.swing.JMenuBar;
|
|
|
import javax.swing.JMenu;
|
|
|
-import javax.swing.JMenuItem;
|
|
|
-import javax.swing.KeyStroke;
|
|
|
-import java.awt.event.KeyEvent;
|
|
|
-import java.awt.event.WindowEvent;
|
|
|
import java.awt.Toolkit;
|
|
|
-import java.awt.event.InputEvent;
|
|
|
|
|
|
@SuppressWarnings("serial")
|
|
|
@FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
|
|
|
@@ -28,40 +23,14 @@ public class RecipeFrame extends JFrame implements FileController.ViewModel {
|
|
|
public RecipeFrame() {
|
|
|
FileController fileController = new FileController(this);
|
|
|
|
|
|
- final int MASK = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
|
|
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
|
|
|
|
JMenuBar menuBar = new JMenuBar();
|
|
|
setJMenuBar(menuBar);
|
|
|
|
|
|
- JMenu mnFile = new JMenu("File");
|
|
|
+ JMenu mnFile = new FileMenu(this, fileController);
|
|
|
menuBar.add(mnFile);
|
|
|
-
|
|
|
- JMenuItem mntmNew = new JMenuItem("New");
|
|
|
- mntmNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, MASK));
|
|
|
- mntmNew.addActionListener(e -> fileController.create());
|
|
|
- mnFile.add(mntmNew);
|
|
|
-
|
|
|
- JMenuItem mntmOpen = new JMenuItem("Open");
|
|
|
- mntmOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, MASK));
|
|
|
- mntmNew.addActionListener(e -> fileController.open());
|
|
|
- mnFile.add(mntmOpen);
|
|
|
-
|
|
|
- JMenuItem mntmSave = new JMenuItem("Save");
|
|
|
- mntmSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, MASK));
|
|
|
- mntmNew.addActionListener(e -> fileController.save());
|
|
|
- mnFile.add(mntmSave);
|
|
|
-
|
|
|
- JMenuItem mntmSaveAs = new JMenuItem("Save As");
|
|
|
- mntmSaveAs.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, MASK | InputEvent.SHIFT_MASK));
|
|
|
- mntmNew.addActionListener(e -> fileController.saveAs());
|
|
|
- mnFile.add(mntmSaveAs);
|
|
|
-
|
|
|
- JMenuItem mntmQuit = new JMenuItem("Quit");
|
|
|
- mntmQuit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, MASK));
|
|
|
- mntmQuit.addActionListener( e -> { this.dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING)); } );
|
|
|
- mnFile.add(mntmQuit);
|
|
|
-
|
|
|
+
|
|
|
tabbedPane = new JTabbedPane();
|
|
|
setContentPane(tabbedPane);
|
|
|
|
|
|
@@ -79,9 +48,11 @@ public class RecipeFrame extends JFrame implements FileController.ViewModel {
|
|
|
@Override
|
|
|
public void setModel(final Recipe recipe) {
|
|
|
// TODO Clear underlying panels
|
|
|
- for (Product comp : recipe.getProducts()) {
|
|
|
- summaryPanel.addProduct(comp);
|
|
|
- tabbedPane.addTab(comp.getName(), new ProductPanel(comp));
|
|
|
- }
|
|
|
+ recipe.getProducts().forEach(this::addProduct);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void addProduct(final Product comp) {
|
|
|
+ summaryPanel.addProduct(comp);
|
|
|
+ tabbedPane.addTab(comp.getName(), new ProductPanel(comp));
|
|
|
}
|
|
|
}
|