better orderbook synchronozation
This commit is contained in:
parent
35e2160635
commit
b22582399f
@ -31,6 +31,7 @@ import gui.tools.NummericCellRenderer;
|
|||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
import javax.swing.table.DefaultTableCellRenderer;
|
import javax.swing.table.DefaultTableCellRenderer;
|
||||||
@ -121,7 +122,7 @@ public class OrderBook extends javax.swing.JPanel implements Exchange.BookReceiv
|
|||||||
model = (DefaultTableModel) this.list.getModel();
|
model = (DefaultTableModel) this.list.getModel();
|
||||||
trader_column = list.getColumnModel().getColumn(0);
|
trader_column = list.getColumnModel().getColumn(0);
|
||||||
list.getColumnModel().getColumn(1).setCellRenderer(new NummericCellRenderer(3));
|
list.getColumnModel().getColumn(1).setCellRenderer(new NummericCellRenderer(3));
|
||||||
list.getColumnModel().getColumn(2).setCellRenderer(new NummericCellRenderer(0));
|
list.getColumnModel().getColumn(2).setCellRenderer(new NummericCellRenderer(0));
|
||||||
cfgChanged();
|
cfgChanged();
|
||||||
// Globals.se.addBookReceiver(Exchange.OrderType.BUYLIMIT, this);
|
// Globals.se.addBookReceiver(Exchange.OrderType.BUYLIMIT, this);
|
||||||
Globals.addCfgListener(this);
|
Globals.addCfgListener(this);
|
||||||
@ -130,6 +131,8 @@ public class OrderBook extends javax.swing.JPanel implements Exchange.BookReceiv
|
|||||||
boolean oupdate = false;
|
boolean oupdate = false;
|
||||||
boolean new_oupdate = false;
|
boolean new_oupdate = false;
|
||||||
|
|
||||||
|
long ouctr = 0;
|
||||||
|
|
||||||
void oupdater() {
|
void oupdater() {
|
||||||
ArrayList<Order> ob = Globals.se.getOrderBook(type, depth);
|
ArrayList<Order> ob = Globals.se.getOrderBook(type, depth);
|
||||||
model.setRowCount(ob.size());
|
model.setRowCount(ob.size());
|
||||||
@ -141,24 +144,33 @@ public class OrderBook extends javax.swing.JPanel implements Exchange.BookReceiv
|
|||||||
row++;
|
row++;
|
||||||
}
|
}
|
||||||
|
|
||||||
oupdate = false;
|
synchronized (this) {
|
||||||
|
oupdate = new_oupdate;
|
||||||
|
new_oupdate = false;
|
||||||
|
}
|
||||||
|
if (oupdate) {
|
||||||
|
SwingUtilities.invokeLater(() -> {
|
||||||
|
oupdater();
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void UpdateOrderBook() {
|
public void UpdateOrderBook() {
|
||||||
|
|
||||||
if (oupdate) {
|
synchronized (this) {
|
||||||
new_oupdate=true;
|
if (oupdate) {
|
||||||
return;
|
new_oupdate = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
oupdate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
oupdate = true;
|
|
||||||
|
|
||||||
SwingUtilities.invokeLater(() -> {
|
SwingUtilities.invokeLater(() -> {
|
||||||
oupdater();
|
oupdater();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user