diff --git a/src/main/java/gui/OpenOrdersList.form b/src/main/java/gui/OpenOrdersList.form index 06de21b..32b343f 100644 --- a/src/main/java/gui/OpenOrdersList.form +++ b/src/main/java/gui/OpenOrdersList.form @@ -76,10 +76,12 @@ - +
+ +
diff --git a/src/main/java/gui/OpenOrdersList.java b/src/main/java/gui/OpenOrdersList.java index 38f6e7b..fac9a04 100644 --- a/src/main/java/gui/OpenOrdersList.java +++ b/src/main/java/gui/OpenOrdersList.java @@ -71,8 +71,10 @@ public class OpenOrdersList extends javax.swing.JPanel { model.setValueAt(((Order) o).getType().toString(), row, 1); model.setValueAt(((Order) o).getLimit(), row, 2); - model.setValueAt(((Order) o).getVolume(), row, 3); - model.setValueAt(((Order) o).getOrderStatus().toString(), row, 4); + model.setValueAt(((Order) o).getExecuted(), row, 3); + model.setValueAt(((Order) o).getAvaragePrice(), row, 4); + model.setValueAt(((Order) o).getInitialVolume(), row, 5); + model.setValueAt(((Order) o).getOrderStatus().toString(), row, 6); row++; } this.table.getRowSorter().allRowsChanged(); @@ -142,19 +144,19 @@ public class OpenOrdersList extends javax.swing.JPanel { table.setAutoCreateRowSorter(true); table.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { - {null, null, null, null, null}, - {null, null, null, null, null}, - {null, null, null, null, null} + {null, null, null, null, null, null, null}, + {null, null, null, null, null, null, null}, + {null, null, null, null, null, null, null} }, new String [] { - "ID", "Type", "Limit", "Volume", "Status" + "ID", "Type", "Limit", "Vol. Executed", "Av. Price", "Volume", "Status" } ) { Class[] types = new Class [] { - java.lang.Long.class, java.lang.String.class, java.lang.Double.class, java.lang.Double.class, java.lang.String.class + java.lang.Long.class, java.lang.String.class, java.lang.Double.class, java.lang.Double.class, java.lang.Double.class, java.lang.Double.class, java.lang.String.class }; boolean[] canEdit = new boolean [] { - false, false, false, false, false + false, false, false, false, false, false, false }; public Class getColumnClass(int columnIndex) { diff --git a/src/main/java/gui/TraderListPanel.java b/src/main/java/gui/TraderListPanel.java index 7d44ab9..18697a5 100644 --- a/src/main/java/gui/TraderListPanel.java +++ b/src/main/java/gui/TraderListPanel.java @@ -25,6 +25,7 @@ */ package gui; +import gui.tools.NummericCellRenderer; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -106,7 +107,9 @@ public class TraderListPanel extends javax.swing.JPanel { } }; - + list.getColumnModel().getColumn(2).setCellRenderer(new NummericCellRenderer(3)); + list.getColumnModel().getColumn(3).setCellRenderer(new NummericCellRenderer(0)); + list.getColumnModel().getColumn(4).setCellRenderer(new NummericCellRenderer(3)); timer.schedule(updater, 0, 1000); } diff --git a/src/main/java/sesim/Exchange.java b/src/main/java/sesim/Exchange.java index 194c74b..e2880b5 100644 --- a/src/main/java/sesim/Exchange.java +++ b/src/main/java/sesim/Exchange.java @@ -299,10 +299,15 @@ public class Exchange { OrderType type; private double limit; private double volume; + + private final double initial_volume; private final long id; private final long created; + private final Account account; + + double cost; Order(Account account, OrderType type, double volume, double limit) { id = order_id.getNext(); @@ -313,6 +318,7 @@ public class Exchange { this.initial_volume = this.volume; this.created = timer.currentTimeMillis(); this.status = OrderStatus.OPEN; + this.cost=0; } public long getID() { @@ -338,6 +344,17 @@ public class Exchange { public double getInitialVolume() { return initial_volume; } + + public double getCost(){ + return cost; + } + + public double getAvaragePrice(){ + double e = getExecuted(); + if (e<=0) + return -1; + return cost/e; + } public Account getAccount() { return account; @@ -347,6 +364,9 @@ public class Exchange { return status; } + public long getCreated(){ + return created; + } } /** @@ -881,6 +901,9 @@ public class Exchange { // Update volume b.volume -= volume; a.volume -= volume; + + b.cost+=price*volume; + a.cost+=price*volume; removeOrderIfExecuted(a); removeOrderIfExecuted(b);