From 59ff1f3c0e611e6c124a14f1df01616968016c35 Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Mon, 13 Feb 2017 18:26:32 +0100 Subject: [PATCH] Some improvements --- src/main/java/gui/Globals.java | 10 +- src/main/java/gui/LoggerDialog.form | 4 +- src/main/java/gui/LoggerDialog.java | 4 +- src/main/java/gui/NewMDIApplication.form | 154 +++++++++++------- src/main/java/gui/NewMDIApplication.java | 108 ++++++------ src/main/java/gui/OderBookPanelNew.form | 6 +- src/main/java/gui/OderBookPanelNew.java | 8 +- src/main/java/gui/OrderBookDialog.form | 6 +- src/main/java/gui/OrderBookDialog.java | 8 +- .../gui/{ => orderbook}/OrderBookNew.form | 4 +- .../gui/{ => orderbook}/OrderBookNew.java | 33 ++-- .../gui/orderbook/OrderBooksHorizontal.form | 39 +++++ .../gui/orderbook/OrderBooksHorizontal.java | 84 ++++++++++ .../java/gui/orderbook/QutoesHorizontal.form | 44 +++++ .../java/gui/orderbook/QutoesHorizontal.java | 77 +++++++++ src/main/java/sesim/Exchange.java | 20 ++- src/main/java/sesim/NewJPanel.form | 20 +++ src/main/java/sesim/NewJPanel.java | 56 +++++++ 18 files changed, 533 insertions(+), 152 deletions(-) rename src/main/java/gui/{ => orderbook}/OrderBookNew.form (94%) rename src/main/java/gui/{ => orderbook}/OrderBookNew.java (88%) create mode 100644 src/main/java/gui/orderbook/OrderBooksHorizontal.form create mode 100644 src/main/java/gui/orderbook/OrderBooksHorizontal.java create mode 100644 src/main/java/gui/orderbook/QutoesHorizontal.form create mode 100644 src/main/java/gui/orderbook/QutoesHorizontal.java create mode 100644 src/main/java/sesim/NewJPanel.form create mode 100644 src/main/java/sesim/NewJPanel.java diff --git a/src/main/java/gui/Globals.java b/src/main/java/gui/Globals.java index de319f1..fcb746a 100644 --- a/src/main/java/gui/Globals.java +++ b/src/main/java/gui/Globals.java @@ -68,11 +68,19 @@ public class Globals { static final String TRADERPREFS = "Traders"; static final String DEVELSTATUS = "devel_status"; - static final String GODMODE = "godmode"; + public static final String GODMODE = "godmode"; static public sesim.Exchange se; static public Preferences prefs; + + + public static class CfgStrings{ + public static final String GODMODE = "godmode"; + } + + //CfgStrings + static void setLookAndFeel(String selected) { diff --git a/src/main/java/gui/LoggerDialog.form b/src/main/java/gui/LoggerDialog.form index 292a5e4..f80dbfc 100644 --- a/src/main/java/gui/LoggerDialog.form +++ b/src/main/java/gui/LoggerDialog.form @@ -59,7 +59,7 @@ - + - + \ No newline at end of file diff --git a/src/main/java/gui/LoggerDialog.java b/src/main/java/gui/LoggerDialog.java index db4e46d..8be9760 100644 --- a/src/main/java/gui/LoggerDialog.java +++ b/src/main/java/gui/LoggerDialog.java @@ -85,7 +85,7 @@ public class LoggerDialog extends javax.swing.JDialog { jScrollPane1 = new javax.swing.JScrollPane(); logArea = new javax.swing.JTextArea(); - orderBookNew1 = new gui.OrderBookNew(); + orderBookNew1 = new gui.orderbook.OrderBookNew(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); @@ -161,6 +161,6 @@ public class LoggerDialog extends javax.swing.JDialog { // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextArea logArea; - private gui.OrderBookNew orderBookNew1; + private gui.orderbook.OrderBookNew orderBookNew1; // End of variables declaration//GEN-END:variables } diff --git a/src/main/java/gui/NewMDIApplication.form b/src/main/java/gui/NewMDIApplication.form index 50a72a3..4b77622 100644 --- a/src/main/java/gui/NewMDIApplication.form +++ b/src/main/java/gui/NewMDIApplication.form @@ -168,6 +168,14 @@ + + + + + + + + @@ -176,13 +184,11 @@ - + - + + - - - @@ -217,9 +223,6 @@ - - - @@ -236,62 +239,17 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - + + + + + @@ -302,7 +260,7 @@ - + @@ -420,7 +378,77 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/gui/NewMDIApplication.java b/src/main/java/gui/NewMDIApplication.java index 5b94e5b..0d6cbbe 100644 --- a/src/main/java/gui/NewMDIApplication.java +++ b/src/main/java/gui/NewMDIApplication.java @@ -65,6 +65,8 @@ public class NewMDIApplication extends javax.swing.JFrame { System.out.printf("!!!! creating new\n"); String base = cfg.getString("base"); AutoTraderInterface ac = Globals.tloader.getStrategyBase(base); + if (ac==null) + return null; ac.putConfig(cfg); ac.init(se, id, name, money, shares, cfg); @@ -142,8 +144,6 @@ public class NewMDIApplication extends javax.swing.JFrame { jScrollPane2 = new javax.swing.JScrollPane(); jTextArea1 = new javax.swing.JTextArea(); - jChartScrollPane = new javax.swing.JScrollPane(); - chart = new chart.Chart(); jPanel2 = new javax.swing.JPanel(); stopButton = new javax.swing.JButton(); runButton = new javax.swing.JButton(); @@ -151,7 +151,13 @@ public class NewMDIApplication extends javax.swing.JFrame { accelSpinner = new javax.swing.JSpinner(); clock = new gui.Clock(); jComboBox1 = new javax.swing.JComboBox<>(); - oderBookPanelNew1 = new gui.OderBookPanelNew(); + jSplitPane1 = new javax.swing.JSplitPane(); + jSplitPane2 = new javax.swing.JSplitPane(); + jChartScrollPane = new javax.swing.JScrollPane(); + chart = new chart.Chart(); + orderBookNew1 = new gui.orderbook.OrderBookNew(); + traderListPanel1 = new gui.TraderListPanel(); + orderBooksHorizontal1 = new gui.orderbook.OrderBooksHorizontal(); menuBar = new javax.swing.JMenuBar(); fileMenu = new javax.swing.JMenu(); jMenuItem1 = new javax.swing.JMenuItem(); @@ -172,8 +178,9 @@ public class NewMDIApplication extends javax.swing.JFrame { simMenuStop = new javax.swing.JMenuItem(); viewMenu = new javax.swing.JMenu(); jMenuItem2 = new javax.swing.JMenuItem(); - jMenuItem3 = new javax.swing.JMenuItem(); viewClock = new javax.swing.JMenuItem(); + jMenuItem3 = new javax.swing.JMenuItem(); + jCheckBoxMenuItem1 = new javax.swing.JCheckBoxMenuItem(); helpMenu = new javax.swing.JMenu(); contentMenuItem = new javax.swing.JMenuItem(); aboutMenuItem = new javax.swing.JMenuItem(); @@ -185,20 +192,6 @@ public class NewMDIApplication extends javax.swing.JFrame { setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setMinimumSize(new java.awt.Dimension(640, 480)); - setPreferredSize(new java.awt.Dimension(800, 561)); - - javax.swing.GroupLayout chartLayout = new javax.swing.GroupLayout(chart); - chart.setLayout(chartLayout); - chartLayout.setHorizontalGroup( - chartLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 300, Short.MAX_VALUE) - ); - chartLayout.setVerticalGroup( - chartLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 300, Short.MAX_VALUE) - ); - - jChartScrollPane.setViewportView(chart); stopButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/toolbarButtonGraphics/general/Stop24.gif"))); // NOI18N stopButton.setText("Stop"); @@ -254,7 +247,7 @@ public class NewMDIApplication extends javax.swing.JFrame { .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(stopButton, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 374, Short.MAX_VALUE) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(clock, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() @@ -282,6 +275,32 @@ public class NewMDIApplication extends javax.swing.JFrame { .addContainerGap()))) ); + getContentPane().add(jPanel2, java.awt.BorderLayout.PAGE_START); + + jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT); + + javax.swing.GroupLayout chartLayout = new javax.swing.GroupLayout(chart); + chart.setLayout(chartLayout); + chartLayout.setHorizontalGroup( + chartLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 300, Short.MAX_VALUE) + ); + chartLayout.setVerticalGroup( + chartLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 300, Short.MAX_VALUE) + ); + + jChartScrollPane.setViewportView(chart); + + jSplitPane2.setBottomComponent(jChartScrollPane); + jSplitPane2.setLeftComponent(orderBookNew1); + + jSplitPane1.setTopComponent(jSplitPane2); + jSplitPane1.setRightComponent(traderListPanel1); + jSplitPane1.setBottomComponent(orderBooksHorizontal1); + + getContentPane().add(jSplitPane1, java.awt.BorderLayout.CENTER); + fileMenu.setMnemonic('f'); fileMenu.setText("File"); @@ -414,6 +433,14 @@ public class NewMDIApplication extends javax.swing.JFrame { }); viewMenu.add(jMenuItem2); + viewClock.setText("Clock"); + viewClock.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + viewClockActionPerformed(evt); + } + }); + viewMenu.add(viewClock); + jMenuItem3.setText("LogWindow"); jMenuItem3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -422,13 +449,9 @@ public class NewMDIApplication extends javax.swing.JFrame { }); viewMenu.add(jMenuItem3); - viewClock.setText("Clock"); - viewClock.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - viewClockActionPerformed(evt); - } - }); - viewMenu.add(viewClock); + jCheckBoxMenuItem1.setSelected(true); + jCheckBoxMenuItem1.setText("jCheckBoxMenuItem1"); + viewMenu.add(jCheckBoxMenuItem1); menuBar.add(viewMenu); @@ -452,32 +475,6 @@ public class NewMDIApplication extends javax.swing.JFrame { setJMenuBar(menuBar); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(oderBookPanelNew1, javax.swing.GroupLayout.PREFERRED_SIZE, 220, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jChartScrollPane) - .addContainerGap()) - .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jChartScrollPane) - .addGroup(layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addComponent(oderBookPanelNew1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addContainerGap()) - ); - pack(); }// //GEN-END:initComponents @@ -697,6 +694,7 @@ public class NewMDIApplication extends javax.swing.JFrame { private javax.swing.JMenu helpMenu; private javax.swing.JButton jButton2; private javax.swing.JScrollPane jChartScrollPane; + private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItem1; private javax.swing.JComboBox jComboBox1; private javax.swing.JMenuItem jMenuItem1; private javax.swing.JMenuItem jMenuItem2; @@ -705,10 +703,13 @@ public class NewMDIApplication extends javax.swing.JFrame { private javax.swing.JScrollPane jScrollPane2; private javax.swing.JPopupMenu.Separator jSeparator1; private javax.swing.JPopupMenu.Separator jSeparator2; + private javax.swing.JSplitPane jSplitPane1; + private javax.swing.JSplitPane jSplitPane2; private javax.swing.JTextArea jTextArea1; private javax.swing.JMenuBar menuBar; - private gui.OderBookPanelNew oderBookPanelNew1; private javax.swing.JMenuItem openMenuItem; + private gui.orderbook.OrderBookNew orderBookNew1; + private gui.orderbook.OrderBooksHorizontal orderBooksHorizontal1; private javax.swing.JMenuItem pasteMenuItem; private javax.swing.JButton runButton; private javax.swing.JMenuItem saveAsMenuItem; @@ -718,6 +719,7 @@ public class NewMDIApplication extends javax.swing.JFrame { private javax.swing.JMenuItem simMenuStart; private javax.swing.JMenuItem simMenuStop; private javax.swing.JButton stopButton; + private gui.TraderListPanel traderListPanel1; private javax.swing.JMenuItem viewClock; private javax.swing.JMenu viewMenu; // End of variables declaration//GEN-END:variables diff --git a/src/main/java/gui/OderBookPanelNew.form b/src/main/java/gui/OderBookPanelNew.form index 7ab5f47..9b2a23c 100644 --- a/src/main/java/gui/OderBookPanelNew.form +++ b/src/main/java/gui/OderBookPanelNew.form @@ -56,9 +56,9 @@ - + - + @@ -71,4 +71,4 @@ - + \ No newline at end of file diff --git a/src/main/java/gui/OderBookPanelNew.java b/src/main/java/gui/OderBookPanelNew.java index 0d4771d..f804251 100644 --- a/src/main/java/gui/OderBookPanelNew.java +++ b/src/main/java/gui/OderBookPanelNew.java @@ -48,8 +48,8 @@ public class OderBookPanelNew extends javax.swing.JPanel { private void initComponents() { quotePanel1 = new gui.QuotePanel(); - orderBookNew3 = new gui.OrderBookNew(); - orderBookNew4 = new gui.OrderBookNew(); + orderBookNew3 = new gui.orderbook.OrderBookNew(); + orderBookNew4 = new gui.orderbook.OrderBookNew(); filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); @@ -88,8 +88,8 @@ public class OderBookPanelNew extends javax.swing.JPanel { // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.Box.Filler filler1; - private gui.OrderBookNew orderBookNew3; - private gui.OrderBookNew orderBookNew4; + private gui.orderbook.OrderBookNew orderBookNew3; + private gui.orderbook.OrderBookNew orderBookNew4; private gui.QuotePanel quotePanel1; // End of variables declaration//GEN-END:variables } diff --git a/src/main/java/gui/OrderBookDialog.form b/src/main/java/gui/OrderBookDialog.form index 1b509f4..5e6700e 100644 --- a/src/main/java/gui/OrderBookDialog.form +++ b/src/main/java/gui/OrderBookDialog.form @@ -23,11 +23,11 @@ - + - + - + \ No newline at end of file diff --git a/src/main/java/gui/OrderBookDialog.java b/src/main/java/gui/OrderBookDialog.java index 4f2c74d..8d6070d 100644 --- a/src/main/java/gui/OrderBookDialog.java +++ b/src/main/java/gui/OrderBookDialog.java @@ -48,9 +48,9 @@ public class OrderBookDialog extends javax.swing.JDialog { // //GEN-BEGIN:initComponents private void initComponents() { - orderBookNew1 = new gui.OrderBookNew(); + orderBookNew1 = new gui.orderbook.OrderBookNew(); quotePanel1 = new gui.QuotePanel(); - orderBookNew2 = new gui.OrderBookNew(); + orderBookNew2 = new gui.orderbook.OrderBookNew(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); getContentPane().setLayout(new java.awt.FlowLayout()); @@ -104,8 +104,8 @@ public class OrderBookDialog extends javax.swing.JDialog { } // Variables declaration - do not modify//GEN-BEGIN:variables - private gui.OrderBookNew orderBookNew1; - private gui.OrderBookNew orderBookNew2; + private gui.orderbook.OrderBookNew orderBookNew1; + private gui.orderbook.OrderBookNew orderBookNew2; private gui.QuotePanel quotePanel1; // End of variables declaration//GEN-END:variables } diff --git a/src/main/java/gui/OrderBookNew.form b/src/main/java/gui/orderbook/OrderBookNew.form similarity index 94% rename from src/main/java/gui/OrderBookNew.form rename to src/main/java/gui/orderbook/OrderBookNew.form index 3ae6548..f84e817 100644 --- a/src/main/java/gui/OrderBookNew.form +++ b/src/main/java/gui/orderbook/OrderBookNew.form @@ -16,12 +16,12 @@ - + - + diff --git a/src/main/java/gui/OrderBookNew.java b/src/main/java/gui/orderbook/OrderBookNew.java similarity index 88% rename from src/main/java/gui/OrderBookNew.java rename to src/main/java/gui/orderbook/OrderBookNew.java index 61b90e6..0bdb668 100644 --- a/src/main/java/gui/OrderBookNew.java +++ b/src/main/java/gui/orderbook/OrderBookNew.java @@ -23,8 +23,9 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package gui; +package gui.orderbook; +import gui.Globals; import gui.Globals.CfgListener; import java.util.ArrayList; import javax.swing.table.DefaultTableModel; @@ -32,6 +33,7 @@ import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; import sesim.Exchange; import sesim.Exchange.Order; +import sesim.Exchange.OrderType; /** * @@ -41,6 +43,9 @@ public class OrderBookNew extends javax.swing.JPanel implements Exchange.BookRec DefaultTableModel model; TableColumn trader_column = null; + + OrderType type = OrderType.BUYLIMIT; + int depth=40; public void setGodMode(boolean on) { TableColumnModel tcm = list.getColumnModel(); @@ -57,23 +62,25 @@ public class OrderBookNew extends javax.swing.JPanel implements Exchange.BookRec return; } tcm.removeColumn(tcm.getColumn(0)); - - - } - } - + + /** + * Bla + */ @Override - public void cfgChanged() { - boolean gm = Globals.prefs.get(Globals.GODMODE, "false").equals("true"); + public final void cfgChanged() { + boolean gm = Globals.prefs.get(Globals.CfgStrings.GODMODE, "false").equals("true"); System.out.printf("GM %s\n",gm?"true":"false"); setGodMode(gm); list.invalidate(); list.repaint(); - } + public void setType(OrderType type){ + this.type=type; + Globals.se.addBookReceiver(type, this); + } /** * Creates new form OrderBookNew @@ -85,13 +92,13 @@ public class OrderBookNew extends javax.swing.JPanel implements Exchange.BookRec model = (DefaultTableModel) this.list.getModel(); trader_column = list.getColumnModel().getColumn(0); cfgChanged(); - Globals.se.addBookReceiver(Exchange.OrderType.BUYLIMIT, this); +// Globals.se.addBookReceiver(Exchange.OrderType.BUYLIMIT, this); Globals.addCfgListener(this); } @Override public void UpdateOrderBook() { - ArrayList ob = Globals.se.getOrderBook(Exchange.OrderType.SELLLIMIT, 40); + ArrayList ob = Globals.se.getOrderBook(type, depth); model.setRowCount(ob.size()); int row = 0; for (Order ob1 : ob) { @@ -147,11 +154,11 @@ public class OrderBookNew extends javax.swing.JPanel implements Exchange.BookRec this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE) + .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 389, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE) + .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 284, Short.MAX_VALUE) ); }// //GEN-END:initComponents diff --git a/src/main/java/gui/orderbook/OrderBooksHorizontal.form b/src/main/java/gui/orderbook/OrderBooksHorizontal.form new file mode 100644 index 0000000..f64d120 --- /dev/null +++ b/src/main/java/gui/orderbook/OrderBooksHorizontal.form @@ -0,0 +1,39 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/gui/orderbook/OrderBooksHorizontal.java b/src/main/java/gui/orderbook/OrderBooksHorizontal.java new file mode 100644 index 0000000..9172994 --- /dev/null +++ b/src/main/java/gui/orderbook/OrderBooksHorizontal.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2017, tobias + * 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.orderbook; + +import sesim.Exchange; + +/** + * + * @author tobias + */ +public class OrderBooksHorizontal extends javax.swing.JPanel { + + /** + * Creates new form OrderBooksHorizontal + */ + public OrderBooksHorizontal() { + initComponents(); + + + askBook.setType(Exchange.OrderType.BUYLIMIT); + bidBook.setType(Exchange.OrderType.SELLLIMIT); + } + + /** + * 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") + // //GEN-BEGIN:initComponents + private void initComponents() { + + askBook = new gui.orderbook.OrderBookNew(); + qutoesHorizontal1 = new gui.orderbook.QutoesHorizontal(); + bidBook = new gui.orderbook.OrderBookNew(); + + setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.LINE_AXIS)); + add(askBook); + + javax.swing.GroupLayout qutoesHorizontal1Layout = new javax.swing.GroupLayout(qutoesHorizontal1); + qutoesHorizontal1.setLayout(qutoesHorizontal1Layout); + qutoesHorizontal1Layout.setHorizontalGroup( + qutoesHorizontal1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 77, Short.MAX_VALUE) + ); + qutoesHorizontal1Layout.setVerticalGroup( + qutoesHorizontal1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 296, Short.MAX_VALUE) + ); + + add(qutoesHorizontal1); + add(bidBook); + }// //GEN-END:initComponents + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private gui.orderbook.OrderBookNew askBook; + private gui.orderbook.OrderBookNew bidBook; + private gui.orderbook.QutoesHorizontal qutoesHorizontal1; + // End of variables declaration//GEN-END:variables +} diff --git a/src/main/java/gui/orderbook/QutoesHorizontal.form b/src/main/java/gui/orderbook/QutoesHorizontal.form new file mode 100644 index 0000000..af0e0b9 --- /dev/null +++ b/src/main/java/gui/orderbook/QutoesHorizontal.form @@ -0,0 +1,44 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/java/gui/orderbook/QutoesHorizontal.java b/src/main/java/gui/orderbook/QutoesHorizontal.java new file mode 100644 index 0000000..c299029 --- /dev/null +++ b/src/main/java/gui/orderbook/QutoesHorizontal.java @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2017, tobias + * 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.orderbook; + +/** + * + * @author tobias + */ +public class QutoesHorizontal extends javax.swing.JPanel { + + /** + * Creates new form QutoesHorizontal + */ + public QutoesHorizontal() { + 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") + // //GEN-BEGIN:initComponents + private void initComponents() { + + jLabel1 = new javax.swing.JLabel(); + + jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + jLabel1.setText("Price: 200.123"); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(110, 110, 110) + .addComponent(jLabel1) + .addContainerGap(175, Short.MAX_VALUE)) + ); + }// //GEN-END:initComponents + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel jLabel1; + // End of variables declaration//GEN-END:variables +} diff --git a/src/main/java/sesim/Exchange.java b/src/main/java/sesim/Exchange.java index 632114c..3e07be3 100644 --- a/src/main/java/sesim/Exchange.java +++ b/src/main/java/sesim/Exchange.java @@ -361,8 +361,13 @@ public class Exchange { public final String CFG_SHARES_DECIMALS = "shares_decimals"; public void putConfig(JSONObject cfg) { - this.setMoneyDecimals(cfg.getInt(CFG_MONEY_DECIMALS)); - this.setSharesDecimals(cfg.getInt(CFG_SHARES_DECIMALS)); + try{ + this.setMoneyDecimals(cfg.getInt(CFG_MONEY_DECIMALS)); + this.setSharesDecimals(cfg.getInt(CFG_SHARES_DECIMALS)); + } + catch (Exception e){ + + } } @@ -434,8 +439,19 @@ public class Exchange { } public void addBookReceiver(OrderType t, BookReceiver br) { + + if (br==null){ + System.out.printf("Br is null\n"); + } + else{ + System.out.printf("Br is not Nukk\n"); + } + ArrayList bookreceivers; bookreceivers = selectBookReceiver(t); + if (bookreceivers == null){ + System.out.printf("null in bookreceivers\n"); + } bookreceivers.add(br); } diff --git a/src/main/java/sesim/NewJPanel.form b/src/main/java/sesim/NewJPanel.form new file mode 100644 index 0000000..8eea11b --- /dev/null +++ b/src/main/java/sesim/NewJPanel.form @@ -0,0 +1,20 @@ + + +
+ + + + + + + + + + + + + + + + +
diff --git a/src/main/java/sesim/NewJPanel.java b/src/main/java/sesim/NewJPanel.java new file mode 100644 index 0000000..672cc97 --- /dev/null +++ b/src/main/java/sesim/NewJPanel.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2017, tobias + * 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 sesim; + +/** + * + * @author tobias + */ +public class NewJPanel extends javax.swing.JPanel { + + /** + * Creates new form NewJPanel + */ + public NewJPanel() { + 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") + // //GEN-BEGIN:initComponents + private void initComponents() { + + setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.PAGE_AXIS)); + }// //GEN-END:initComponents + + + // Variables declaration - do not modify//GEN-BEGIN:variables + // End of variables declaration//GEN-END:variables +}