diff --git a/src/Gui/AskBook.java b/src/Gui/AskBook.java index 8516e3f..982e4fe 100644 --- a/src/Gui/AskBook.java +++ b/src/Gui/AskBook.java @@ -25,6 +25,8 @@ */ package Gui; +import SeSim.Exchange.*; +import SeSim.Order.*; import java.util.ArrayList; /** @@ -34,8 +36,8 @@ import java.util.ArrayList; public class AskBook extends OrderBook { @Override - ArrayList getArrayList() { - return MainWin.se.getAskBook(10); + ArrayList getOrderBook() { + return MainWin.se.getOrderBook(OrderType.ask,10); } @Override @@ -44,7 +46,7 @@ public class AskBook extends OrderBook { } public AskBook(){ - System.out.print("init askbook\n"); + MainWin.se.addBookReceiver(OrderType.ask, this); } diff --git a/src/Gui/BidBook.java b/src/Gui/BidBook.java index 65829ef..e2e305e 100644 --- a/src/Gui/BidBook.java +++ b/src/Gui/BidBook.java @@ -25,17 +25,23 @@ */ package Gui; +import SeSim.Exchange.*; +import SeSim.Order.*; import java.util.ArrayList; /** * * @author 7u83 <7u83@mail.ru> */ -public class BidBook extends OrderBook{ +public class BidBook extends OrderBook { @Override - ArrayList getArrayList() { - return MainWin.se.getBidBook(10); + ArrayList getOrderBook() { + return MainWin.se.getOrderBook(OrderType.bid,40); } + + BidBook(){ + MainWin.se.addBookReceiver(OrderType.bid,this); + } } diff --git a/src/Gui/ControlPanel.java b/src/Gui/ControlPanel.java index de25182..143e597 100644 --- a/src/Gui/ControlPanel.java +++ b/src/Gui/ControlPanel.java @@ -86,12 +86,13 @@ public class ControlPanel extends javax.swing.JPanel { private void SellButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SellButtonActionPerformed System.out.print("SellPressed\n"); // MainWin.myAccount.Sell(100, 520.0, MainWin.se); + MainWin.myAccount.sell(100, 13.0); }//GEN-LAST:event_SellButtonActionPerformed private void BuyButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BuyButtonActionPerformed System.out.print("Buy Pressed\n"); //MainWin.myAccount.Buy(100, 120.0, MainWin.se); - MainWin.myAccount.Buy(100, 1.0, MainWin.se); + MainWin.myAccount.buy(100, 1.0); }//GEN-LAST:event_BuyButtonActionPerformed diff --git a/src/Gui/MainWin.java b/src/Gui/MainWin.java index 9fbb31b..445eb85 100644 --- a/src/Gui/MainWin.java +++ b/src/Gui/MainWin.java @@ -47,6 +47,9 @@ public class MainWin extends javax.swing.JFrame { * Creates new form MainWin */ public MainWin() { + + myTrader.sell(100, 230); + myTrader.sell(10, 123.12); initComponents(); @@ -163,11 +166,12 @@ public class MainWin extends javax.swing.JFrame { - SeSim.SellOrder so = new SeSim.SellOrder(); + /* SeSim.SellOrder so = new SeSim.SellOrder(); so.limit = 20.0; so.volume = 12; so.timestamp = 12; se.SendOrder(so); + */ try { // Set cross-platform Java L&F (also called "Metal") diff --git a/src/Gui/OrderBook.java b/src/Gui/OrderBook.java index d017d0a..ab5b18c 100644 --- a/src/Gui/OrderBook.java +++ b/src/Gui/OrderBook.java @@ -25,6 +25,7 @@ */ package Gui; +import SeSim.Exchange; import java.util.ArrayList; import java.util.Formatter; import java.util.concurrent.Callable; @@ -35,53 +36,64 @@ import java.awt.*; import javax.swing.*; import javax.swing.table.*; - /** * * @author 7u83 <7u83@mail.ru> */ -public abstract class OrderBook extends javax.swing.JPanel { - abstract ArrayList getArrayList(); - - public class DateCellRenderer extends DefaultTableCellRenderer { - String pattern; - public DateCellRenderer(String pattern){ - this.pattern = pattern; +/** + * OderBook Class + */ +public abstract class OrderBook extends javax.swing.JPanel implements Exchange.BookReceiver{ + + abstract ArrayList getOrderBook(); + + private Color hdr_color = Color.LIGHT_GRAY; + private class OrderBookCellRenderer extends DefaultTableCellRenderer { + @Override + public Component getTableCellRendererComponent(JTable table, + Object value, boolean isSelected, boolean hasFocus, + int row, int column) { + DefaultTableCellRenderer renderer + = (DefaultTableCellRenderer) super.getTableCellRendererComponent( + table, value, isSelected, hasFocus, row, column); + renderer.setBackground(hdr_color); + return renderer; + } } - - @Override - public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { - DefaultTableCellRenderer renderer = (DefaultTableCellRenderer)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); - renderer.setBackground(hdr_color); - //renderer.setBorder(BorderFactory.createLineBorder(Color.BLACK)); - // renderer.setText("Halloe"); - - return renderer; + @Override + public void UpdateOrderBook() { + // System.out.print("I have got an update on bid\n"); + model.update(); } -} - Color hdr_color = Color.LIGHT_GRAY; + boolean getDesc() { return false; } + + protected OrderBookListModel model; - protected class SListModel extends AbstractTableModel { + protected class OrderBookListModel extends AbstractTableModel { - private ArrayList m; + private ArrayList list; private boolean desc = false; - public SListModel() { - - m = getArrayList(); - + public OrderBookListModel() { + update(); + } + + + public void update(){ + list = getOrderBook(); + this.fireTableDataChanged(); } @Override public String getColumnName(int c) { - switch(c){ + switch (c) { case 0: return "ID"; case 1: @@ -94,7 +106,7 @@ public abstract class OrderBook extends javax.swing.JPanel { @Override public int getRowCount() { - return m.size(); + return list.size(); } @Override @@ -106,9 +118,9 @@ public abstract class OrderBook extends javax.swing.JPanel { public Object getValueAt(int r, int c) { SeSim.Order o; if (!getDesc()) { - o = (SeSim.Order) m.get(r); + o = (SeSim.Order) list.get(r); } else { - o = (SeSim.Order) m.get(m.size() - r - 1); + o = (SeSim.Order) list.get(list.size() - r - 1); } Formatter f = new Formatter(); switch (c) { @@ -130,41 +142,23 @@ public abstract class OrderBook extends javax.swing.JPanel { public OrderBook() { System.out.print("init Orderbook]\n"); initComponents(); - + this.setBorder(BorderFactory.createEmptyBorder()); this.orderBookScroller.setBorder(BorderFactory.createBevelBorder(0)); if (MainWin.se == null) { return; } - this.orderBookList.setModel(new SListModel()); + + model = new OrderBookListModel(); + + this.orderBookList.setModel(model); orderBookList.setBorder(BorderFactory.createEmptyBorder()); - + JTableHeader h = this.orderBookList.getTableHeader(); - h.setBackground(hdr_color); - - h.setForeground(Color.green); - - - - // h.setDefaultRenderer(this.orderBookList.getCellRenderer(0, 0)); -// h.setBorder(BorderFactory.createLineBorder(Color.yellow)); - - h.setDefaultRenderer(new DateCellRenderer("Hhu")); - - -/* h.getColumnModel().getColumn(0).setCellRenderer(new TableCellRenderer(){ - @Override - public Component getTableCellRendererComponent( - JTable x, Object value, boolean isSelected, - boolean hasFocus, int row, int column) { - JComponent component = (JComponent)orderBookList.getTableHeader().getDefaultRenderer().getTableCellRendererComponent(orderBookList, value, false, false, -1, -2); - component.setBackground(new Color(250, 250, 250)); - component.setBorder(BorderFactory.createEmptyBorder()); - return component; - } - }); - */ + h.setBackground(hdr_color); + h.setForeground(Color.green); + h.setDefaultRenderer(new OrderBookCellRenderer()); } diff --git a/src/Gui/OrderBookCell.form b/src/Gui/OrderBookCell.form deleted file mode 100644 index 3eb7d61..0000000 --- a/src/Gui/OrderBookCell.form +++ /dev/null @@ -1,389 +0,0 @@ - - -
diff --git a/src/Gui/OrderBookCell.java b/src/Gui/OrderBookCell.java deleted file mode 100644 index 82478fa..0000000 --- a/src/Gui/OrderBookCell.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 2016, 7u83 <7u83@mail.ru> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -package Gui; - -/** - * - * @author 7u83 <7u83@mail.ru> - */ -public class OrderBookCell extends javax.swing.JPanel { - - /** - * Creates new form OrderBookCell - */ - public OrderBookCell() { - initComponents(); - } - - /** - * This method is called from within the constructor to initialize the form. - * WARNING: Do NOT modify this code. The content of this method is always - * regenerated by the Form Editor. - */ - @SuppressWarnings("unchecked") - //