diff --git a/StockManagement/src/Arrival.java b/StockManagement/src/Arrival.java deleted file mode 100644 index df16c68..0000000 --- a/StockManagement/src/Arrival.java +++ /dev/null @@ -1,19 +0,0 @@ -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/Available.java b/StockManagement/src/Available.java deleted file mode 100644 index d8a2cdc..0000000 --- a/StockManagement/src/Available.java +++ /dev/null @@ -1,26 +0,0 @@ -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/Deriver.java b/StockManagement/src/Deriver.java deleted file mode 100644 index 939b6ec..0000000 --- a/StockManagement/src/Deriver.java +++ /dev/null @@ -1,72 +0,0 @@ -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/Main.java b/StockManagement/src/Main.java index a143575..95fb4b6 100644 --- a/StockManagement/src/Main.java +++ b/StockManagement/src/Main.java @@ -1,71 +1,13 @@ -import java.util.Map; +import javax.swing.JFrame; + +import views.MainFrame; public class Main { 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()); + // generate window + JFrame mainFrame = new MainFrame(); + mainFrame.setVisible(true); } } diff --git a/StockManagement/src/Request.java b/StockManagement/src/Request.java deleted file mode 100644 index 5af6d92..0000000 --- a/StockManagement/src/Request.java +++ /dev/null @@ -1,22 +0,0 @@ -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/Shipping.java b/StockManagement/src/Shipping.java deleted file mode 100644 index 14feee7..0000000 --- a/StockManagement/src/Shipping.java +++ /dev/null @@ -1,11 +0,0 @@ -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/Shortage.java b/StockManagement/src/Shortage.java deleted file mode 100644 index e4e33f0..0000000 --- a/StockManagement/src/Shortage.java +++ /dev/null @@ -1,50 +0,0 @@ -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/Stock.java b/StockManagement/src/Stock.java deleted file mode 100644 index a02bc72..0000000 --- a/StockManagement/src/Stock.java +++ /dev/null @@ -1,11 +0,0 @@ -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/StockManagement.java b/StockManagement/src/StockManagement.java deleted file mode 100644 index 7de4e98..0000000 --- a/StockManagement/src/StockManagement.java +++ /dev/null @@ -1,47 +0,0 @@ -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/resources/Arrival.java b/StockManagement/src/resources/Arrival.java new file mode 100644 index 0000000..8db95fc --- /dev/null +++ b/StockManagement/src/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/StockManagement/src/resources/Available.java b/StockManagement/src/resources/Available.java new file mode 100644 index 0000000..37e60ec --- /dev/null +++ b/StockManagement/src/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/StockManagement/src/resources/Deriver.java b/StockManagement/src/resources/Deriver.java new file mode 100644 index 0000000..b4ed5ec --- /dev/null +++ b/StockManagement/src/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/StockManagement/src/resources/Request.java b/StockManagement/src/resources/Request.java new file mode 100644 index 0000000..b5bd53e --- /dev/null +++ b/StockManagement/src/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/StockManagement/src/resources/Shipping.java b/StockManagement/src/resources/Shipping.java new file mode 100644 index 0000000..97e6dd2 --- /dev/null +++ b/StockManagement/src/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/StockManagement/src/resources/Shortage.java b/StockManagement/src/resources/Shortage.java new file mode 100644 index 0000000..3df25e8 --- /dev/null +++ b/StockManagement/src/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/StockManagement/src/resources/Stock.java b/StockManagement/src/resources/Stock.java new file mode 100644 index 0000000..cb5976d --- /dev/null +++ b/StockManagement/src/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/StockManagement/src/resources/StockManagement.java b/StockManagement/src/resources/StockManagement.java new file mode 100644 index 0000000..7de5ab0 --- /dev/null +++ b/StockManagement/src/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/StockManagement/src/tests/TestMain.java b/StockManagement/src/tests/TestMain.java new file mode 100644 index 0000000..511445d --- /dev/null +++ b/StockManagement/src/tests/TestMain.java @@ -0,0 +1,74 @@ +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 new file mode 100644 index 0000000..4fd3aff --- /dev/null +++ b/StockManagement/src/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/StockManagement/src/views/MainFrame.java b/StockManagement/src/views/MainFrame.java new file mode 100644 index 0000000..219ad7e --- /dev/null +++ b/StockManagement/src/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/StockManagement/src/views/TablePanel.java b/StockManagement/src/views/TablePanel.java new file mode 100644 index 0000000..58a6f10 --- /dev/null +++ b/StockManagement/src/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())); + } + } +}