|
|
@@ -1,39 +1,64 @@
|
|
|
package org.leumasjaffe.recipe.view;
|
|
|
|
|
|
-import java.io.File;
|
|
|
-import java.io.IOException;
|
|
|
-
|
|
|
import javax.swing.JFrame;
|
|
|
import javax.swing.JTabbedPane;
|
|
|
|
|
|
+import org.leumasjaffe.recipe.controller.IOController;
|
|
|
import org.leumasjaffe.recipe.model.Product;
|
|
|
import org.leumasjaffe.recipe.model.Recipe;
|
|
|
-
|
|
|
-import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
-import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
|
|
|
+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")
|
|
|
public class RecipeFrame extends JFrame {
|
|
|
+
|
|
|
public RecipeFrame() {
|
|
|
+ final int MASK = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
|
|
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
|
|
|
|
+ JMenuBar menuBar = new JMenuBar();
|
|
|
+ setJMenuBar(menuBar);
|
|
|
+
|
|
|
+ JMenu mnFile = new JMenu("File");
|
|
|
+ menuBar.add(mnFile);
|
|
|
+
|
|
|
+ JMenuItem mntmNew = new JMenuItem("New");
|
|
|
+ mntmNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, MASK));
|
|
|
+ mnFile.add(mntmNew);
|
|
|
+
|
|
|
+ JMenuItem mntmOpen = new JMenuItem("Open");
|
|
|
+ mntmOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, MASK));
|
|
|
+ mnFile.add(mntmOpen);
|
|
|
+
|
|
|
+ JMenuItem mntmSave = new JMenuItem("Save");
|
|
|
+ mntmSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, MASK));
|
|
|
+ mnFile.add(mntmSave);
|
|
|
+
|
|
|
+ JMenuItem mntmSaveAs = new JMenuItem("Save As");
|
|
|
+ mntmSaveAs.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, MASK | InputEvent.SHIFT_MASK));
|
|
|
+ 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);
|
|
|
+
|
|
|
JTabbedPane tabbedPane = new JTabbedPane();
|
|
|
setContentPane(tabbedPane);
|
|
|
|
|
|
SummaryPanel summaryPanel = new SummaryPanel();
|
|
|
tabbedPane.addTab("Summary", summaryPanel);
|
|
|
|
|
|
- ObjectMapper mapper = new ObjectMapper();
|
|
|
- mapper.registerModule(new Jdk8Module());
|
|
|
- try {
|
|
|
- Recipe recipe = mapper.readValue(new File("src/test/resources/example.json"), Recipe.class);
|
|
|
- for (Product comp : recipe.getProducts()) {
|
|
|
- summaryPanel.addProduct(comp);
|
|
|
- tabbedPane.addTab(comp.getName(), new ProductPanel(comp));
|
|
|
- }
|
|
|
- } catch (IOException e) {
|
|
|
- // TODO Auto-generated catch block
|
|
|
- e.printStackTrace();
|
|
|
+ Recipe recipe = IOController.loadFromFile("src/test/resources/example.json");
|
|
|
+ for (Product comp : recipe.getProducts()) {
|
|
|
+ summaryPanel.addProduct(comp);
|
|
|
+ tabbedPane.addTab(comp.getName(), new ProductPanel(comp));
|
|
|
}
|
|
|
|
|
|
pack();
|