diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..db6c0b9
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/../../../../../../:\Users\Nitta\IdeaProjects\StockManagement\.idea/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..ac216bc
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..80e72b2
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..611e7c8
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..fdc392f
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..c608721
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/StockManagement/.classpath b/StockManagement/.classpath
deleted file mode 100644
index 51a8bba..0000000
--- a/StockManagement/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/StockManagement/.gitignore b/StockManagement/.gitignore
deleted file mode 100644
index ae3c172..0000000
--- a/StockManagement/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/StockManagement/.project b/StockManagement/.project
deleted file mode 100644
index 57c78d2..0000000
--- a/StockManagement/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- StockManagement
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
-
-
diff --git a/StockManagement/.settings/org.eclipse.jdt.core.prefs b/StockManagement/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ec1937b..0000000
--- a/StockManagement/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/StockManagement/src/Main.java b/StockManagement/src/Main.java
deleted file mode 100644
index 95fb4b6..0000000
--- a/StockManagement/src/Main.java
+++ /dev/null
@@ -1,13 +0,0 @@
-import javax.swing.JFrame;
-
-import views.MainFrame;
-
-public class Main {
-
- public static void main(String[] args) {
- // generate window
- JFrame mainFrame = new MainFrame();
- mainFrame.setVisible(true);
- }
-
-}
diff --git a/StockManagement/src/resources/Arrival.java b/StockManagement/src/resources/Arrival.java
deleted file mode 100644
index 8db95fc..0000000
--- a/StockManagement/src/resources/Arrival.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package resources;
-import java.util.*;
-
-public class Arrival {
- private Available available;
- private Stock stock;
- private Map.Entry value;
- public Arrival(Available available, Stock stock) {
- this.available = available;
- this.stock = stock;
- }
- public void arrive(int num, String item) {
- this.value = new AbstractMap.SimpleEntry<>(item, num);
- Map stock = this.stock.getValue();
- this.available.updateArrival(value, stock);
- }
- public Map.Entry getValue() {
- return new AbstractMap.SimpleEntry<>(value);
- }
-}
\ No newline at end of file
diff --git a/StockManagement/src/resources/Available.java b/StockManagement/src/resources/Available.java
deleted file mode 100644
index 37e60ec..0000000
--- a/StockManagement/src/resources/Available.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package resources;
-import java.util.*;
-
-public class Available {
- private Shortage shortage;
- private Deriver deriver;
- private Map.Entry value;
- public void updateArrival(Map.Entry arrival, Map stock) {
- Map shortage = this.shortage.getValue();
- int temp_get3;
- if (stock.get(arrival.getKey()) != null) {
- temp_get3 = stock.get(arrival.getKey());
- } else {
- temp_get3 = 0;
- }
- value = new AbstractMap.SimpleEntry<>(arrival.getKey(), (arrival.getValue()+temp_get3));
- this.shortage.updateAvailable(value);
- this.deriver.updateAvailable(value, shortage);
- }
- public Available(Shortage shortage, Deriver deriver) {
- this.shortage = shortage;
- this.deriver = deriver;
- }
- public Map.Entry getValue() {
- return new AbstractMap.SimpleEntry<>(value);
- }
-}
\ No newline at end of file
diff --git a/StockManagement/src/resources/Deriver.java b/StockManagement/src/resources/Deriver.java
deleted file mode 100644
index b4ed5ec..0000000
--- a/StockManagement/src/resources/Deriver.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package resources;
-import java.util.*;
-
-public class Deriver {
- private Map.Entry available;
- private Map.Entry request;
- private Stock stock;
- private Map.Entry> value;
- public void updateAvailable(Map.Entry available, Map shortage) {
- this.available = available;
- Map.Entry> temp_if2;
- int temp_get4;
- if (shortage.get(available.getKey()) != null) {
- temp_get4 = shortage.get(available.getKey());
- } else {
- temp_get4 = 0;
- }
- if ((available.getValue()>=temp_get4)) {
- int temp_get5;
- if (shortage.get(available.getKey()) != null) {
- temp_get5 = shortage.get(available.getKey());
- } else {
- temp_get5 = 0;
- }
- int temp_get6;
- if (shortage.get(available.getKey()) != null) {
- temp_get6 = shortage.get(available.getKey());
- } else {
- temp_get6 = 0;
- }
- temp_if2 = new AbstractMap.SimpleEntry<>(available.getKey(), new AbstractMap.SimpleEntry<>(temp_get5, (available.getValue()-temp_get6)));
- } else {
- temp_if2 = new AbstractMap.SimpleEntry<>(available.getKey(), new AbstractMap.SimpleEntry<>(0, available.getValue()));
- }
- value = temp_if2;
- this.stock.updateDeriver(value);
- }
- public void updateRequest(Map.Entry request, Map stock) {
- this.request = request;
- Map.Entry> temp_if3;
- int temp_get7;
- if (stock.get(request.getKey()) != null) {
- temp_get7 = stock.get(request.getKey());
- } else {
- temp_get7 = 0;
- }
- if ((temp_get7>=request.getValue())) {
- int temp_get8;
- if (stock.get(request.getKey()) != null) {
- temp_get8 = stock.get(request.getKey());
- } else {
- temp_get8 = 0;
- }
- temp_if3 = new AbstractMap.SimpleEntry<>(request.getKey(), new AbstractMap.SimpleEntry<>(request.getValue(), (temp_get8-request.getValue())));
- } else {
- int temp_get9;
- if (stock.get(request.getKey()) != null) {
- temp_get9 = stock.get(request.getKey());
- } else {
- temp_get9 = 0;
- }
- temp_if3 = new AbstractMap.SimpleEntry<>(request.getKey(), new AbstractMap.SimpleEntry<>(0, temp_get9));
- }
- value = temp_if3;
- this.stock.updateDeriver(value);
- }
- public Deriver(Stock stock) {
- this.stock = stock;
- }
- public Map.Entry> getValue() {
- return new AbstractMap.SimpleEntry<>(value);
- }
-}
\ No newline at end of file
diff --git a/StockManagement/src/resources/Request.java b/StockManagement/src/resources/Request.java
deleted file mode 100644
index b5bd53e..0000000
--- a/StockManagement/src/resources/Request.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package resources;
-import java.util.*;
-
-public class Request {
- private Shortage shortage;
- private Deriver deriver;
- private Stock stock;
- private Map.Entry value;
- public Request(Shortage shortage, Deriver deriver, Stock stock) {
- this.shortage = shortage;
- this.deriver = deriver;
- this.stock = stock;
- }
- public void req(int num, String item) {
- this.value = new AbstractMap.SimpleEntry<>(item, num);
- Map stock = this.stock.getValue();
- this.shortage.updateRequest(value, stock);
- this.deriver.updateRequest(value, stock);
- }
- public Map.Entry getValue() {
- return new AbstractMap.SimpleEntry<>(value);
- }
-}
\ No newline at end of file
diff --git a/StockManagement/src/resources/Shipping.java b/StockManagement/src/resources/Shipping.java
deleted file mode 100644
index 97e6dd2..0000000
--- a/StockManagement/src/resources/Shipping.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package resources;
-import java.util.*;
-
-public class Shipping {
- private Deriver deriver;
- public Shipping(Deriver deriver) {
- this.deriver = deriver;
- }
- public Map.Entry getValue() {
- return new AbstractMap.SimpleEntry<>(this.deriver.getValue().getKey(), this.deriver.getValue().getValue().getKey());
- }
-}
\ No newline at end of file
diff --git a/StockManagement/src/resources/Shortage.java b/StockManagement/src/resources/Shortage.java
deleted file mode 100644
index 3df25e8..0000000
--- a/StockManagement/src/resources/Shortage.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package resources;
-import java.util.*;
-
-public class Shortage {
- private Map.Entry request;
- private Map.Entry available;
- private Map value = new HashMap();
- public void updateRequest(Map.Entry request, Map stock) {
- this.request = request;
- Map temp_if0;
- int temp_get0;
- if (stock.get(request.getKey()) != null) {
- temp_get0 = stock.get(request.getKey());
- } else {
- temp_get0 = 0;
- }
- if ((temp_get0>=request.getValue())) {
- temp_if0 = this.value;
- } else {
- int temp_get1;
- if (this.value.get(request.getKey()) != null) {
- temp_get1 = this.value.get(request.getKey());
- } else {
- temp_get1 = 0;
- }
- this.value.put(request.getKey(),(temp_get1+request.getValue()));
- temp_if0 = this.value;
- }
- value = temp_if0;
- }
- public void updateAvailable(Map.Entry available) {
- this.available = available;
- Map temp_if1;
- int temp_get2;
- if (this.value.get(available.getKey()) != null) {
- temp_get2 = this.value.get(available.getKey());
- } else {
- temp_get2 = 0;
- }
- if ((available.getValue()>=temp_get2)) {
- this.value.put(available.getKey(),0);
- temp_if1 = this.value;
- } else {
- temp_if1 = this.value;
- }
- value = temp_if1;
- }
- public Map getValue() {
- return new HashMap<>(value);
- }
-}
\ No newline at end of file
diff --git a/StockManagement/src/resources/Stock.java b/StockManagement/src/resources/Stock.java
deleted file mode 100644
index cb5976d..0000000
--- a/StockManagement/src/resources/Stock.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package resources;
-import java.util.*;
-
-public class Stock {
- private Map value = new HashMap();
- public void updateDeriver(Map.Entry> deriver) {
- this.value.put(deriver.getKey(),deriver.getValue().getValue());
- }
- public Map getValue() {
- return new HashMap<>(value);
- }
-}
\ No newline at end of file
diff --git a/StockManagement/src/resources/StockManagement.java b/StockManagement/src/resources/StockManagement.java
deleted file mode 100644
index 7de5ab0..0000000
--- a/StockManagement/src/resources/StockManagement.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package resources;
-import java.util.*;
-
-public class StockManagement {
- private Stock stock;
- private Deriver deriver;
- private Shortage shortage;
- private Available available;
- private Arrival arrival;
- private Shipping shipping;
- private Request request;
- public StockManagement() {
- stock = new Stock();
- deriver = new Deriver(stock);
- shortage = new Shortage();
- available = new Available(shortage,deriver);
- arrival = new Arrival(available,stock);
- shipping = new Shipping(deriver);
- request = new Request(shortage,deriver,stock);
- }
- public void arrive(int num, String item) {
- this.arrival.arrive(num, item);
- }
- public void req(int num, String item) {
- this.request.req(num, item);
- }
- public Map.Entry getRequest() {
- return request.getValue();
- }
- public Map.Entry getShipping() {
- return shipping.getValue();
- }
- public Map.Entry getArrival() {
- return arrival.getValue();
- }
- public Map getShortage() {
- return shortage.getValue();
- }
- public Map.Entry getAvailable() {
- return available.getValue();
- }
- public Map.Entry> getDeriver() {
- return deriver.getValue();
- }
- public Map getStock() {
- return stock.getValue();
- }
-}
\ No newline at end of file
diff --git a/StockManagement/src/tests/TestMain.java b/StockManagement/src/tests/TestMain.java
deleted file mode 100644
index 511445d..0000000
--- a/StockManagement/src/tests/TestMain.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package tests;
-import java.util.Map;
-
-import resources.StockManagement;
-
-public class TestMain {
-
- public static void main(String[] args) {
- StockManagement stockMan = new StockManagement();
- stockMan.arrive(10, "A");
- System.out.println("Arrive A: 10");
- stockMan.arrive(20, "B");
- System.out.println("Arrive B: 20");
-
- Map stock1 = stockMan.getStock();
- Map shortage1 = stockMan.getShortage();
- Map.Entry shipping1 = stockMan.getShipping();
- System.out.println("stock:");
- System.out.println("A: " + stock1.get("A"));
- System.out.println("B: " + stock1.get("B"));
- System.out.println("shotage:");
- System.out.println("A: " + shortage1.get("A"));
- System.out.println("B: " + shortage1.get("B"));
- System.out.println("shipping:");
- if (shipping1 != null) System.out.println(shipping1.getKey() +": " + shipping1.getValue());
-
-
- stockMan.req(5, "A");
- System.out.println("Request A: 5");
-
- Map stock2 = stockMan.getStock();
- Map shortage2 = stockMan.getShortage();
- Map.Entry shipping2 = stockMan.getShipping();
- System.out.println("stock:");
- System.out.println("A: " + stock2.get("A"));
- System.out.println("B: " + stock2.get("B"));
- System.out.println("shotage:");
- System.out.println("A: " + shortage2.get("A"));
- System.out.println("B: " + shortage2.get("B"));
- System.out.println("shipping:");
- if (shipping2 != null) System.out.println(shipping2.getKey() +": " + shipping2.getValue());
-
- stockMan.req(10, "A");
- System.out.println("Request A: 10");
-
- Map stock3 = stockMan.getStock();
- Map shortage3 = stockMan.getShortage();
- Map.Entry shipping3 = stockMan.getShipping();
- System.out.println("stock:");
- System.out.println("A: " + stock3.get("A"));
- System.out.println("B: " + stock3.get("B"));
- System.out.println("shotage:");
- System.out.println("A: " + shortage3.get("A"));
- System.out.println("B: " + shortage3.get("B"));
- System.out.println("shipping:");
- if (shipping3 != null) System.out.println(shipping3.getKey() +": " + shipping3.getValue());
-
- stockMan.arrive(10, "A");
- System.out.println("Arrive A: 10");
-
- Map stock4 = stockMan.getStock();
- Map shortage4 = stockMan.getShortage();
- Map.Entry shipping4 = stockMan.getShipping();
- System.out.println("stock:");
- System.out.println("A: " + stock4.get("A"));
- System.out.println("B: " + stock4.get("B"));
- System.out.println("shotage:");
- System.out.println("A: " + shortage4.get("A"));
- System.out.println("B: " + shortage4.get("B"));
- System.out.println("shipping:");
- if (shipping4 != null) System.out.println(shipping4.getKey() +": " + shipping4.getValue());
- }
-
-}
diff --git a/StockManagement/src/views/InputPanel.java b/StockManagement/src/views/InputPanel.java
deleted file mode 100644
index 4fd3aff..0000000
--- a/StockManagement/src/views/InputPanel.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package views;
-
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-import javax.swing.border.Border;
-import javax.swing.border.TitledBorder;
-
-public class InputPanel extends JPanel {
- private JTextField itemNameField;
- private JTextField itemNumField;
-
- public InputPanel(String title, JButton button) {
- GridBagLayout gbl = new GridBagLayout();
- setLayout(gbl);
-
- itemNameField = new JTextField(5);
- itemNumField = new JTextField(5);
- addComponent(gbl, new JLabel("����"), 0, 0, 1, 1);
- addComponent(gbl, itemNameField, 1, 0, 1, 1);
- addComponent(gbl, new JLabel("��:"), 0, 1, 1, 1);
- addComponent(gbl, itemNumField, 1, 1, 1, 1);
- addComponent(gbl, button, 2, 1, 1, 1);
- Border lineBorder = BorderFactory.createLineBorder(Color.LIGHT_GRAY);
- TitledBorder titledBorder = BorderFactory.createTitledBorder(lineBorder, title);
- setBorder(titledBorder);
- }
-
- public void addComponent(GridBagLayout gbl, Component comp, int x, int y, int w, int h) {
- GridBagConstraints gbc = new GridBagConstraints();
- setLayout(gbl);
- gbc.fill = GridBagConstraints.BOTH;
- gbc.gridx = x;
- gbc.gridy = y;
- gbc.gridwidth = w;
- gbc.gridheight = h;
- gbl.setConstraints(comp, gbc);
- add(comp);
- }
-
- public String getItemName() {
- return itemNameField.getText();
- }
-
- public int getItemNum() {
- if (itemNumField.getText() == null) return 0;
- int itemNum = Integer.parseInt(itemNumField.getText());
- return itemNum;
- }
-
- public void clearValues() {
- itemNameField.setText("");
- itemNumField.setText("");
- }
-}
diff --git a/StockManagement/src/views/MainFrame.java b/StockManagement/src/views/MainFrame.java
deleted file mode 100644
index 219ad7e..0000000
--- a/StockManagement/src/views/MainFrame.java
+++ /dev/null
@@ -1,157 +0,0 @@
-package views;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.util.Map;
-
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.border.Border;
-import javax.swing.border.TitledBorder;
-
-import resources.StockManagement;
-
-public class MainFrame extends JFrame {
- private StockManagement stockManager;
-
- private InputPanel arrivePanel;
- private InputPanel requestPanel;
- private TablePanel stockPanel;
- private TablePanel shortagePanel;
-
- private JLabel shippingNameLbl;
- private JLabel shippingNumLbl;
-
- public MainFrame() {
- super("Stock Manager");
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
- // initialize model
- stockManager = new StockManagement();
-
- JButton arriveBtn = new JButton("����");
- JButton requestBtn = new JButton("�o�Ɉ˗�");
- arriveBtn.addMouseListener(new ArriveButtonListener());
- requestBtn.addMouseListener(new RequestButtonListener());
- shippingNameLbl = new JLabel("");
- shippingNumLbl = new JLabel("");
-
- arrivePanel = new InputPanel("����", arriveBtn);
- requestPanel = new InputPanel("�o�Ɉ˗�", requestBtn);
- JPanel shippingPanel = new JPanel();
- shippingPanel.setLayout(new GridLayout(2, 2));
- shippingPanel.add(new JLabel("����:"));
- shippingPanel.add(shippingNameLbl);
- shippingPanel.add(new JLabel("��:"));
- shippingPanel.add(shippingNumLbl);
- Border lineBorder = BorderFactory.createLineBorder(Color.LIGHT_GRAY);
- TitledBorder titledBorder = BorderFactory.createTitledBorder(lineBorder, "�o��");
- shippingPanel.setBorder(titledBorder);
-
- JPanel ioPanel = new JPanel();
- ioPanel.setLayout(new GridLayout(1, 3));
- ioPanel.add(arrivePanel);
- ioPanel.add(requestPanel);
- ioPanel.add(shippingPanel);
- add(ioPanel, BorderLayout.NORTH);
-
- JPanel dbPanel = new JPanel();
- ioPanel.setLayout(new GridLayout(1, 2));
- stockPanel = new TablePanel("��", stockManager.getStock());
- shortagePanel = new TablePanel("�ɕs�����X�g", stockManager.getShortage());
- dbPanel.add(stockPanel);
- dbPanel.add(shortagePanel);
- add(dbPanel, BorderLayout.SOUTH);
- pack();
- }
-
- private class ArriveButtonListener implements MouseListener {
-
- @Override
- public void mouseClicked(MouseEvent event) {
- String itemName = arrivePanel.getItemName();
- int itemNum = arrivePanel.getItemNum();
- stockManager.arrive(itemNum, itemName);
- arrivePanel.clearValues();
- stockPanel.update(stockManager.getStock());
- shortagePanel.update(stockManager.getShortage());
- Map.Entry shipping = stockManager.getShipping();
- if (shipping.getKey() != null && shipping.getValue() > 0) {
- shippingNameLbl.setText(shipping.getKey());
- shippingNumLbl.setText("" + shipping.getValue());
- } else {
- shippingNameLbl.setText("");
- shippingNumLbl.setText("");
- }
- MainFrame.this.validate();
- MainFrame.this.repaint();
- }
-
- @Override
- public void mouseEntered(MouseEvent event) {
- }
-
- @Override
- public void mouseExited(MouseEvent event) {
- }
-
- @Override
- public void mousePressed(MouseEvent event) {
- }
-
- @Override
- public void mouseReleased(MouseEvent event) {
- }
-
- }
-
- private class RequestButtonListener implements MouseListener {
-
- @Override
- public void mouseClicked(MouseEvent event) {
- String itemName = requestPanel.getItemName();
- int itemNum = requestPanel.getItemNum();
- stockManager.req(itemNum, itemName);
- requestPanel.clearValues();
- stockPanel.update(stockManager.getStock());
- shortagePanel.update(stockManager.getShortage());
- Map.Entry shipping = stockManager.getShipping();
- if (shipping.getKey() != null && shipping.getValue() > 0) {
- shippingNameLbl.setText(shipping.getKey());
- shippingNumLbl.setText("" + shipping.getValue());
- } else {
- shippingNameLbl.setText("");
- shippingNumLbl.setText("");
- }
- MainFrame.this.validate();
- MainFrame.this.repaint();
- }
-
- @Override
- public void mouseEntered(MouseEvent event) {
- }
-
- @Override
- public void mouseExited(MouseEvent event) {
- }
-
- @Override
- public void mousePressed(MouseEvent event) {
- }
-
- @Override
- public void mouseReleased(MouseEvent event) {
- }
-
- }
-
-}
diff --git a/StockManagement/src/views/TablePanel.java b/StockManagement/src/views/TablePanel.java
deleted file mode 100644
index 58a6f10..0000000
--- a/StockManagement/src/views/TablePanel.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package views;
-
-import java.awt.Color;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.util.Map;
-
-import javax.swing.BorderFactory;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.border.Border;
-import javax.swing.border.TitledBorder;
-
-public class TablePanel extends JPanel {
- public TablePanel(String title, Map table) {
-
- update(table);
-
- Border lineBorder = BorderFactory.createLineBorder(Color.LIGHT_GRAY);
- TitledBorder titledBorder = BorderFactory.createTitledBorder(lineBorder, title);
- setBorder(titledBorder);
- }
-
- public void update(Map table) {
- this.removeAll();
- setLayout(new GridLayout(table.size() + 1, 2));
- add(new JLabel("���� "));
- add(new JLabel("�� "));
- for (Map.Entry entry: table.entrySet()) {
- add(new JLabel(entry.getKey()));
- add(new JLabel("" + entry.getValue()));
- }
- }
-}
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..95df5f5
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,14 @@
+plugins {
+ id 'java'
+}
+
+group 'org.example'
+version '1.0-SNAPSHOT'
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ testCompile group: 'junit', name: 'junit', version: '4.12'
+}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..62d4c05
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..a4b4429
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100644
index 0000000..fbd7c51
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..5093609
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,104 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..75ae497
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,2 @@
+rootProject.name = 'StockManagement'
+
diff --git a/src/main/java/Main.java b/src/main/java/Main.java
new file mode 100644
index 0000000..95fb4b6
--- /dev/null
+++ b/src/main/java/Main.java
@@ -0,0 +1,13 @@
+import javax.swing.JFrame;
+
+import views.MainFrame;
+
+public class Main {
+
+ public static void main(String[] args) {
+ // generate window
+ JFrame mainFrame = new MainFrame();
+ mainFrame.setVisible(true);
+ }
+
+}
diff --git a/src/main/java/resources/Arrival.java b/src/main/java/resources/Arrival.java
new file mode 100644
index 0000000..8db95fc
--- /dev/null
+++ b/src/main/java/resources/Arrival.java
@@ -0,0 +1,20 @@
+package resources;
+import java.util.*;
+
+public class Arrival {
+ private Available available;
+ private Stock stock;
+ private Map.Entry value;
+ public Arrival(Available available, Stock stock) {
+ this.available = available;
+ this.stock = stock;
+ }
+ public void arrive(int num, String item) {
+ this.value = new AbstractMap.SimpleEntry<>(item, num);
+ Map stock = this.stock.getValue();
+ this.available.updateArrival(value, stock);
+ }
+ public Map.Entry getValue() {
+ return new AbstractMap.SimpleEntry<>(value);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/resources/Available.java b/src/main/java/resources/Available.java
new file mode 100644
index 0000000..37e60ec
--- /dev/null
+++ b/src/main/java/resources/Available.java
@@ -0,0 +1,27 @@
+package resources;
+import java.util.*;
+
+public class Available {
+ private Shortage shortage;
+ private Deriver deriver;
+ private Map.Entry value;
+ public void updateArrival(Map.Entry arrival, Map stock) {
+ Map shortage = this.shortage.getValue();
+ int temp_get3;
+ if (stock.get(arrival.getKey()) != null) {
+ temp_get3 = stock.get(arrival.getKey());
+ } else {
+ temp_get3 = 0;
+ }
+ value = new AbstractMap.SimpleEntry<>(arrival.getKey(), (arrival.getValue()+temp_get3));
+ this.shortage.updateAvailable(value);
+ this.deriver.updateAvailable(value, shortage);
+ }
+ public Available(Shortage shortage, Deriver deriver) {
+ this.shortage = shortage;
+ this.deriver = deriver;
+ }
+ public Map.Entry getValue() {
+ return new AbstractMap.SimpleEntry<>(value);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/resources/Deriver.java b/src/main/java/resources/Deriver.java
new file mode 100644
index 0000000..b4ed5ec
--- /dev/null
+++ b/src/main/java/resources/Deriver.java
@@ -0,0 +1,73 @@
+package resources;
+import java.util.*;
+
+public class Deriver {
+ private Map.Entry available;
+ private Map.Entry request;
+ private Stock stock;
+ private Map.Entry> value;
+ public void updateAvailable(Map.Entry available, Map shortage) {
+ this.available = available;
+ Map.Entry> temp_if2;
+ int temp_get4;
+ if (shortage.get(available.getKey()) != null) {
+ temp_get4 = shortage.get(available.getKey());
+ } else {
+ temp_get4 = 0;
+ }
+ if ((available.getValue()>=temp_get4)) {
+ int temp_get5;
+ if (shortage.get(available.getKey()) != null) {
+ temp_get5 = shortage.get(available.getKey());
+ } else {
+ temp_get5 = 0;
+ }
+ int temp_get6;
+ if (shortage.get(available.getKey()) != null) {
+ temp_get6 = shortage.get(available.getKey());
+ } else {
+ temp_get6 = 0;
+ }
+ temp_if2 = new AbstractMap.SimpleEntry<>(available.getKey(), new AbstractMap.SimpleEntry<>(temp_get5, (available.getValue()-temp_get6)));
+ } else {
+ temp_if2 = new AbstractMap.SimpleEntry<>(available.getKey(), new AbstractMap.SimpleEntry<>(0, available.getValue()));
+ }
+ value = temp_if2;
+ this.stock.updateDeriver(value);
+ }
+ public void updateRequest(Map.Entry request, Map stock) {
+ this.request = request;
+ Map.Entry> temp_if3;
+ int temp_get7;
+ if (stock.get(request.getKey()) != null) {
+ temp_get7 = stock.get(request.getKey());
+ } else {
+ temp_get7 = 0;
+ }
+ if ((temp_get7>=request.getValue())) {
+ int temp_get8;
+ if (stock.get(request.getKey()) != null) {
+ temp_get8 = stock.get(request.getKey());
+ } else {
+ temp_get8 = 0;
+ }
+ temp_if3 = new AbstractMap.SimpleEntry<>(request.getKey(), new AbstractMap.SimpleEntry<>(request.getValue(), (temp_get8-request.getValue())));
+ } else {
+ int temp_get9;
+ if (stock.get(request.getKey()) != null) {
+ temp_get9 = stock.get(request.getKey());
+ } else {
+ temp_get9 = 0;
+ }
+ temp_if3 = new AbstractMap.SimpleEntry<>(request.getKey(), new AbstractMap.SimpleEntry<>(0, temp_get9));
+ }
+ value = temp_if3;
+ this.stock.updateDeriver(value);
+ }
+ public Deriver(Stock stock) {
+ this.stock = stock;
+ }
+ public Map.Entry> getValue() {
+ return new AbstractMap.SimpleEntry<>(value);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/resources/Request.java b/src/main/java/resources/Request.java
new file mode 100644
index 0000000..b5bd53e
--- /dev/null
+++ b/src/main/java/resources/Request.java
@@ -0,0 +1,23 @@
+package resources;
+import java.util.*;
+
+public class Request {
+ private Shortage shortage;
+ private Deriver deriver;
+ private Stock stock;
+ private Map.Entry value;
+ public Request(Shortage shortage, Deriver deriver, Stock stock) {
+ this.shortage = shortage;
+ this.deriver = deriver;
+ this.stock = stock;
+ }
+ public void req(int num, String item) {
+ this.value = new AbstractMap.SimpleEntry<>(item, num);
+ Map stock = this.stock.getValue();
+ this.shortage.updateRequest(value, stock);
+ this.deriver.updateRequest(value, stock);
+ }
+ public Map.Entry getValue() {
+ return new AbstractMap.SimpleEntry<>(value);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/resources/Shipping.java b/src/main/java/resources/Shipping.java
new file mode 100644
index 0000000..97e6dd2
--- /dev/null
+++ b/src/main/java/resources/Shipping.java
@@ -0,0 +1,12 @@
+package resources;
+import java.util.*;
+
+public class Shipping {
+ private Deriver deriver;
+ public Shipping(Deriver deriver) {
+ this.deriver = deriver;
+ }
+ public Map.Entry getValue() {
+ return new AbstractMap.SimpleEntry<>(this.deriver.getValue().getKey(), this.deriver.getValue().getValue().getKey());
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/resources/Shortage.java b/src/main/java/resources/Shortage.java
new file mode 100644
index 0000000..3df25e8
--- /dev/null
+++ b/src/main/java/resources/Shortage.java
@@ -0,0 +1,51 @@
+package resources;
+import java.util.*;
+
+public class Shortage {
+ private Map.Entry request;
+ private Map.Entry available;
+ private Map value = new HashMap();
+ public void updateRequest(Map.Entry request, Map stock) {
+ this.request = request;
+ Map temp_if0;
+ int temp_get0;
+ if (stock.get(request.getKey()) != null) {
+ temp_get0 = stock.get(request.getKey());
+ } else {
+ temp_get0 = 0;
+ }
+ if ((temp_get0>=request.getValue())) {
+ temp_if0 = this.value;
+ } else {
+ int temp_get1;
+ if (this.value.get(request.getKey()) != null) {
+ temp_get1 = this.value.get(request.getKey());
+ } else {
+ temp_get1 = 0;
+ }
+ this.value.put(request.getKey(),(temp_get1+request.getValue()));
+ temp_if0 = this.value;
+ }
+ value = temp_if0;
+ }
+ public void updateAvailable(Map.Entry available) {
+ this.available = available;
+ Map temp_if1;
+ int temp_get2;
+ if (this.value.get(available.getKey()) != null) {
+ temp_get2 = this.value.get(available.getKey());
+ } else {
+ temp_get2 = 0;
+ }
+ if ((available.getValue()>=temp_get2)) {
+ this.value.put(available.getKey(),0);
+ temp_if1 = this.value;
+ } else {
+ temp_if1 = this.value;
+ }
+ value = temp_if1;
+ }
+ public Map getValue() {
+ return new HashMap<>(value);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/resources/Stock.java b/src/main/java/resources/Stock.java
new file mode 100644
index 0000000..cb5976d
--- /dev/null
+++ b/src/main/java/resources/Stock.java
@@ -0,0 +1,12 @@
+package resources;
+import java.util.*;
+
+public class Stock {
+ private Map value = new HashMap();
+ public void updateDeriver(Map.Entry> deriver) {
+ this.value.put(deriver.getKey(),deriver.getValue().getValue());
+ }
+ public Map getValue() {
+ return new HashMap<>(value);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/resources/StockManagement.java b/src/main/java/resources/StockManagement.java
new file mode 100644
index 0000000..7de5ab0
--- /dev/null
+++ b/src/main/java/resources/StockManagement.java
@@ -0,0 +1,48 @@
+package resources;
+import java.util.*;
+
+public class StockManagement {
+ private Stock stock;
+ private Deriver deriver;
+ private Shortage shortage;
+ private Available available;
+ private Arrival arrival;
+ private Shipping shipping;
+ private Request request;
+ public StockManagement() {
+ stock = new Stock();
+ deriver = new Deriver(stock);
+ shortage = new Shortage();
+ available = new Available(shortage,deriver);
+ arrival = new Arrival(available,stock);
+ shipping = new Shipping(deriver);
+ request = new Request(shortage,deriver,stock);
+ }
+ public void arrive(int num, String item) {
+ this.arrival.arrive(num, item);
+ }
+ public void req(int num, String item) {
+ this.request.req(num, item);
+ }
+ public Map.Entry getRequest() {
+ return request.getValue();
+ }
+ public Map.Entry getShipping() {
+ return shipping.getValue();
+ }
+ public Map.Entry getArrival() {
+ return arrival.getValue();
+ }
+ public Map getShortage() {
+ return shortage.getValue();
+ }
+ public Map.Entry getAvailable() {
+ return available.getValue();
+ }
+ public Map.Entry> getDeriver() {
+ return deriver.getValue();
+ }
+ public Map getStock() {
+ return stock.getValue();
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/views/InputPanel.java b/src/main/java/views/InputPanel.java
new file mode 100644
index 0000000..4fd3aff
--- /dev/null
+++ b/src/main/java/views/InputPanel.java
@@ -0,0 +1,62 @@
+package views;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.border.Border;
+import javax.swing.border.TitledBorder;
+
+public class InputPanel extends JPanel {
+ private JTextField itemNameField;
+ private JTextField itemNumField;
+
+ public InputPanel(String title, JButton button) {
+ GridBagLayout gbl = new GridBagLayout();
+ setLayout(gbl);
+
+ itemNameField = new JTextField(5);
+ itemNumField = new JTextField(5);
+ addComponent(gbl, new JLabel("����"), 0, 0, 1, 1);
+ addComponent(gbl, itemNameField, 1, 0, 1, 1);
+ addComponent(gbl, new JLabel("��:"), 0, 1, 1, 1);
+ addComponent(gbl, itemNumField, 1, 1, 1, 1);
+ addComponent(gbl, button, 2, 1, 1, 1);
+ Border lineBorder = BorderFactory.createLineBorder(Color.LIGHT_GRAY);
+ TitledBorder titledBorder = BorderFactory.createTitledBorder(lineBorder, title);
+ setBorder(titledBorder);
+ }
+
+ public void addComponent(GridBagLayout gbl, Component comp, int x, int y, int w, int h) {
+ GridBagConstraints gbc = new GridBagConstraints();
+ setLayout(gbl);
+ gbc.fill = GridBagConstraints.BOTH;
+ gbc.gridx = x;
+ gbc.gridy = y;
+ gbc.gridwidth = w;
+ gbc.gridheight = h;
+ gbl.setConstraints(comp, gbc);
+ add(comp);
+ }
+
+ public String getItemName() {
+ return itemNameField.getText();
+ }
+
+ public int getItemNum() {
+ if (itemNumField.getText() == null) return 0;
+ int itemNum = Integer.parseInt(itemNumField.getText());
+ return itemNum;
+ }
+
+ public void clearValues() {
+ itemNameField.setText("");
+ itemNumField.setText("");
+ }
+}
diff --git a/src/main/java/views/MainFrame.java b/src/main/java/views/MainFrame.java
new file mode 100644
index 0000000..219ad7e
--- /dev/null
+++ b/src/main/java/views/MainFrame.java
@@ -0,0 +1,157 @@
+package views;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.util.Map;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.border.Border;
+import javax.swing.border.TitledBorder;
+
+import resources.StockManagement;
+
+public class MainFrame extends JFrame {
+ private StockManagement stockManager;
+
+ private InputPanel arrivePanel;
+ private InputPanel requestPanel;
+ private TablePanel stockPanel;
+ private TablePanel shortagePanel;
+
+ private JLabel shippingNameLbl;
+ private JLabel shippingNumLbl;
+
+ public MainFrame() {
+ super("Stock Manager");
+ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+ // initialize model
+ stockManager = new StockManagement();
+
+ JButton arriveBtn = new JButton("����");
+ JButton requestBtn = new JButton("�o�Ɉ˗�");
+ arriveBtn.addMouseListener(new ArriveButtonListener());
+ requestBtn.addMouseListener(new RequestButtonListener());
+ shippingNameLbl = new JLabel("");
+ shippingNumLbl = new JLabel("");
+
+ arrivePanel = new InputPanel("����", arriveBtn);
+ requestPanel = new InputPanel("�o�Ɉ˗�", requestBtn);
+ JPanel shippingPanel = new JPanel();
+ shippingPanel.setLayout(new GridLayout(2, 2));
+ shippingPanel.add(new JLabel("����:"));
+ shippingPanel.add(shippingNameLbl);
+ shippingPanel.add(new JLabel("��:"));
+ shippingPanel.add(shippingNumLbl);
+ Border lineBorder = BorderFactory.createLineBorder(Color.LIGHT_GRAY);
+ TitledBorder titledBorder = BorderFactory.createTitledBorder(lineBorder, "�o��");
+ shippingPanel.setBorder(titledBorder);
+
+ JPanel ioPanel = new JPanel();
+ ioPanel.setLayout(new GridLayout(1, 3));
+ ioPanel.add(arrivePanel);
+ ioPanel.add(requestPanel);
+ ioPanel.add(shippingPanel);
+ add(ioPanel, BorderLayout.NORTH);
+
+ JPanel dbPanel = new JPanel();
+ ioPanel.setLayout(new GridLayout(1, 2));
+ stockPanel = new TablePanel("��", stockManager.getStock());
+ shortagePanel = new TablePanel("�ɕs�����X�g", stockManager.getShortage());
+ dbPanel.add(stockPanel);
+ dbPanel.add(shortagePanel);
+ add(dbPanel, BorderLayout.SOUTH);
+ pack();
+ }
+
+ private class ArriveButtonListener implements MouseListener {
+
+ @Override
+ public void mouseClicked(MouseEvent event) {
+ String itemName = arrivePanel.getItemName();
+ int itemNum = arrivePanel.getItemNum();
+ stockManager.arrive(itemNum, itemName);
+ arrivePanel.clearValues();
+ stockPanel.update(stockManager.getStock());
+ shortagePanel.update(stockManager.getShortage());
+ Map.Entry shipping = stockManager.getShipping();
+ if (shipping.getKey() != null && shipping.getValue() > 0) {
+ shippingNameLbl.setText(shipping.getKey());
+ shippingNumLbl.setText("" + shipping.getValue());
+ } else {
+ shippingNameLbl.setText("");
+ shippingNumLbl.setText("");
+ }
+ MainFrame.this.validate();
+ MainFrame.this.repaint();
+ }
+
+ @Override
+ public void mouseEntered(MouseEvent event) {
+ }
+
+ @Override
+ public void mouseExited(MouseEvent event) {
+ }
+
+ @Override
+ public void mousePressed(MouseEvent event) {
+ }
+
+ @Override
+ public void mouseReleased(MouseEvent event) {
+ }
+
+ }
+
+ private class RequestButtonListener implements MouseListener {
+
+ @Override
+ public void mouseClicked(MouseEvent event) {
+ String itemName = requestPanel.getItemName();
+ int itemNum = requestPanel.getItemNum();
+ stockManager.req(itemNum, itemName);
+ requestPanel.clearValues();
+ stockPanel.update(stockManager.getStock());
+ shortagePanel.update(stockManager.getShortage());
+ Map.Entry shipping = stockManager.getShipping();
+ if (shipping.getKey() != null && shipping.getValue() > 0) {
+ shippingNameLbl.setText(shipping.getKey());
+ shippingNumLbl.setText("" + shipping.getValue());
+ } else {
+ shippingNameLbl.setText("");
+ shippingNumLbl.setText("");
+ }
+ MainFrame.this.validate();
+ MainFrame.this.repaint();
+ }
+
+ @Override
+ public void mouseEntered(MouseEvent event) {
+ }
+
+ @Override
+ public void mouseExited(MouseEvent event) {
+ }
+
+ @Override
+ public void mousePressed(MouseEvent event) {
+ }
+
+ @Override
+ public void mouseReleased(MouseEvent event) {
+ }
+
+ }
+
+}
diff --git a/src/main/java/views/TablePanel.java b/src/main/java/views/TablePanel.java
new file mode 100644
index 0000000..58a6f10
--- /dev/null
+++ b/src/main/java/views/TablePanel.java
@@ -0,0 +1,34 @@
+package views;
+
+import java.awt.Color;
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.util.Map;
+
+import javax.swing.BorderFactory;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.border.Border;
+import javax.swing.border.TitledBorder;
+
+public class TablePanel extends JPanel {
+ public TablePanel(String title, Map table) {
+
+ update(table);
+
+ Border lineBorder = BorderFactory.createLineBorder(Color.LIGHT_GRAY);
+ TitledBorder titledBorder = BorderFactory.createTitledBorder(lineBorder, title);
+ setBorder(titledBorder);
+ }
+
+ public void update(Map table) {
+ this.removeAll();
+ setLayout(new GridLayout(table.size() + 1, 2));
+ add(new JLabel("���� "));
+ add(new JLabel("�� "));
+ for (Map.Entry entry: table.entrySet()) {
+ add(new JLabel(entry.getKey()));
+ add(new JLabel("" + entry.getValue()));
+ }
+ }
+}