More order details available

This commit is contained in:
7u83 2017-02-26 10:53:14 +01:00
parent 6463460521
commit 61fcad96d4
4 changed files with 40 additions and 10 deletions

View File

@ -76,10 +76,12 @@
<Properties>
<Property name="autoCreateRowSorter" type="boolean" value="true"/>
<Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
<Table columnCount="5" rowCount="3">
<Table columnCount="7" rowCount="3">
<Column editable="false" title="ID" type="java.lang.Long"/>
<Column editable="false" title="Type" type="java.lang.String"/>
<Column editable="false" title="Limit" type="java.lang.Double"/>
<Column editable="false" title="Vol. Executed" type="java.lang.Double"/>
<Column editable="false" title="Av. Price" type="java.lang.Double"/>
<Column editable="false" title="Volume" type="java.lang.Double"/>
<Column editable="false" title="Status" type="java.lang.String"/>
</Table>

View File

@ -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) {

View File

@ -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);
}

View File

@ -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);