diff --git a/src/Gui/MainWin.form b/src/Gui/MainWin.form
index 920b57f..b3b4a93 100644
--- a/src/Gui/MainWin.form
+++ b/src/Gui/MainWin.form
@@ -2,31 +2,6 @@
diff --git a/src/Gui/MainWin.java b/src/Gui/MainWin.java
index a33f0d8..b43f253 100644
--- a/src/Gui/MainWin.java
+++ b/src/Gui/MainWin.java
@@ -13,11 +13,14 @@ import SeSim.Exchange;
*/
public class MainWin extends javax.swing.JFrame {
+ static SeSim.Exchange se;
+
/**
* Creates new form MainWin
*/
public MainWin() {
+
initComponents();
}
@@ -30,23 +33,18 @@ public class MainWin extends javax.swing.JFrame {
// //GEN-BEGIN:initComponents
private void initComponents() {
- jScrollPane1 = new javax.swing.JScrollPane();
- jList1 = new javax.swing.JList<>();
jButton1 = new javax.swing.JButton();
+ jMenuItem1 = new javax.swing.JMenuItem();
+ jLabel1 = new javax.swing.JLabel();
+ jLabel2 = new javax.swing.JLabel();
+ jButton2 = new javax.swing.JButton();
orderBook1 = new Gui.OrderBook();
- orderBook = new Gui.OrderBook();
MainMenu = new javax.swing.JMenuBar();
FileMenu = new javax.swing.JMenu();
FileNew = new javax.swing.JMenuItem();
+ FileRun = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
- jList1.setModel(new javax.swing.AbstractListModel() {
- String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
- public int getSize() { return strings.length; }
- public String getElementAt(int i) { return strings[i]; }
- });
- jScrollPane1.setViewportView(jList1);
-
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -54,14 +52,27 @@ public class MainWin extends javax.swing.JFrame {
}
});
+ jMenuItem1.setText("jMenuItem1");
+
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(400, 200));
- getContentPane().setLayout(new java.awt.GridLayout());
- getContentPane().add(orderBook);
+ jLabel1.setText("jLabel1");
+ getContentPane().add(jLabel1, java.awt.BorderLayout.LINE_START);
+
+ jLabel2.setText("jLabel2");
+ getContentPane().add(jLabel2, java.awt.BorderLayout.CENTER);
+
+ jButton2.setText("jButton2");
+ getContentPane().add(jButton2, java.awt.BorderLayout.LINE_END);
+ getContentPane().add(orderBook1, java.awt.BorderLayout.PAGE_END);
+
+ FileMenu.setBackground(new java.awt.Color(254, 203, 1));
+ FileMenu.setBorder(null);
FileMenu.setText("File");
FileNew.setText("New");
+ FileNew.setBorder(null);
FileNew.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
FileNewActionPerformed(evt);
@@ -69,6 +80,14 @@ public class MainWin extends javax.swing.JFrame {
});
FileMenu.add(FileNew);
+ FileRun.setText("Run");
+ FileRun.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ FileRunActionPerformed(evt);
+ }
+ });
+ FileMenu.add(FileRun);
+
MainMenu.add(FileMenu);
jMenu2.setText("Edit");
@@ -88,10 +107,30 @@ public class MainWin extends javax.swing.JFrame {
// TODO add your handling code here:
}//GEN-LAST:event_jButton1ActionPerformed
+ private void FileRunActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_FileRunActionPerformed
+ se.start();
+ }//GEN-LAST:event_FileRunActionPerformed
+
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
+
+ se = new Exchange();
+
+ SeSim.BuyOrder bo = new SeSim.BuyOrder();
+ bo.limit=20.0;
+ bo.size=12;
+ bo.timestamp=12;
+ se.SendOrder(bo);
+
+ SeSim.BuyOrder bo1 = new SeSim.BuyOrder();
+ bo1.limit=27.0;
+ bo1.size=123;
+ bo1.timestamp=922;
+ se.SendOrder(bo1);
+
+
/* Set the Nimbus look and feel */
//
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
@@ -115,10 +154,7 @@ public class MainWin extends javax.swing.JFrame {
}
//
-
- SeSim.Exchange se = new Exchange();
- se.start();
-
+
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
@@ -130,12 +166,14 @@ public class MainWin extends javax.swing.JFrame {
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JMenu FileMenu;
private javax.swing.JMenuItem FileNew;
+ private javax.swing.JMenuItem FileRun;
private javax.swing.JMenuBar MainMenu;
private javax.swing.JButton jButton1;
- private javax.swing.JList jList1;
+ private javax.swing.JButton jButton2;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
private javax.swing.JMenu jMenu2;
- private javax.swing.JScrollPane jScrollPane1;
- private Gui.OrderBook orderBook;
+ private javax.swing.JMenuItem jMenuItem1;
private Gui.OrderBook orderBook1;
// End of variables declaration//GEN-END:variables
}
diff --git a/src/Gui/OrderBook.form b/src/Gui/OrderBook.form
index a18c8c0..d827880 100644
--- a/src/Gui/OrderBook.form
+++ b/src/Gui/OrderBook.form
@@ -21,7 +21,7 @@
-
+
@@ -32,7 +32,7 @@
-
+
@@ -42,7 +42,7 @@
-
+
@@ -50,14 +50,11 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
@@ -76,13 +73,13 @@
-
+
-
+
@@ -104,6 +101,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -128,7 +145,7 @@
-
+
@@ -143,7 +160,7 @@
-
+
@@ -198,7 +215,7 @@
-
+
@@ -267,7 +284,7 @@
-
+
@@ -280,7 +297,7 @@
-
+
@@ -362,7 +379,20 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -373,7 +403,7 @@
-
+
@@ -386,7 +416,7 @@
-
+
@@ -399,7 +429,7 @@
-
+
@@ -411,7 +441,7 @@
-
+
@@ -420,16 +450,29 @@
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -437,25 +480,25 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -463,12 +506,12 @@
-
+
-
+
@@ -481,7 +524,7 @@
-
+
@@ -489,7 +532,132 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Gui/OrderBook.java b/src/Gui/OrderBook.java
index 6701ee3..80373fa 100644
--- a/src/Gui/OrderBook.java
+++ b/src/Gui/OrderBook.java
@@ -5,16 +5,51 @@
*/
package Gui;
+//import SeSim.*;
+import javax.swing.AbstractListModel;
+import java.util.SortedSet;
+
/**
*
* @author 7u83 <7u83@mail.ru>
*/
public class OrderBook extends javax.swing.JPanel {
- /**
- * Creates new form OrderBook
- */
+ private class SListModel extends AbstractListModel {
+
+ SortedSet model;
+
+ public SListModel(SortedSet set) {
+ model = set;
+ }
+
+ @Override
+ public Object getElementAt(int index) {
+
+ SeSim.Order o = (SeSim.Order)model.toArray()[index];
+
+ return o.limit; //model.toArray()[index];
+
+ }
+
+ @Override
+ public int getSize() {
+ return model.size();
+ }
+
+
+
+
+ }
+
+ SeSim.Exchange se;
+
+ SListModel bid;
+
public OrderBook() {
+ this.se = MainWin.se;
+ bid = new SListModel(se.bid);
+
initComponents();
}
@@ -33,18 +68,20 @@ public class OrderBook extends javax.swing.JPanel {
jScrollPane1 = new javax.swing.JScrollPane();
BidList = new javax.swing.JList<>();
jScrollPane2 = new javax.swing.JScrollPane();
- jList2 = new javax.swing.JList<>();
+ AskList = new javax.swing.JList<>();
+ jLabel2 = new javax.swing.JLabel();
+ jSeparator1 = new javax.swing.JSeparator();
java.awt.GridBagLayout layout = new java.awt.GridBagLayout();
- layout.columnWidths = new int[] {0, 5, 0, 5, 0, 5, 0};
- layout.rowHeights = new int[] {0, 5, 0};
+ layout.columnWidths = new int[] {0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0};
+ layout.rowHeights = new int[] {0, 5, 0, 5, 0};
setLayout(layout);
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("Bid");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
- gridBagConstraints.gridy = 0;
+ gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
add(jLabel1, gridBagConstraints);
@@ -52,52 +89,65 @@ public class OrderBook extends javax.swing.JPanel {
jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel3.setText("Ask");
gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 4;
- gridBagConstraints.gridy = 0;
+ gridBagConstraints.gridx = 8;
+ gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(jLabel3, gridBagConstraints);
- BidList.setModel(new javax.swing.AbstractListModel() {
- String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
- public int getSize() { return strings.length; }
- public String getElementAt(int i) { return strings[i]; }
- });
+ BidList.setModel(bid);
+ BidList.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
BidList.setMinimumSize(new java.awt.Dimension(52, 200));
BidList.setName(""); // NOI18N
jScrollPane1.setViewportView(BidList);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
- gridBagConstraints.gridy = 2;
+ gridBagConstraints.gridy = 4;
+ gridBagConstraints.gridwidth = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
add(jScrollPane1, gridBagConstraints);
- jList2.setModel(new javax.swing.AbstractListModel() {
+ AskList.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
public int getSize() { return strings.length; }
public String getElementAt(int i) { return strings[i]; }
});
- jList2.setMinimumSize(new java.awt.Dimension(52, 200));
- jList2.setName(""); // NOI18N
- jScrollPane2.setViewportView(jList2);
+ AskList.setMinimumSize(new java.awt.Dimension(52, 200));
+ AskList.setName(""); // NOI18N
+ jScrollPane2.setViewportView(AskList);
gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 4;
- gridBagConstraints.gridy = 2;
+ gridBagConstraints.gridx = 6;
+ gridBagConstraints.gridy = 4;
+ gridBagConstraints.gridwidth = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
add(jScrollPane2, gridBagConstraints);
+
+ jLabel2.setForeground(new java.awt.Color(255, 0, 0));
+ jLabel2.setText("20.00");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 4;
+ gridBagConstraints.gridy = 0;
+ gridBagConstraints.gridwidth = 5;
+ add(jLabel2, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 10;
+ gridBagConstraints.gridy = 0;
+ add(jSeparator1, gridBagConstraints);
}// //GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JList AskList;
private javax.swing.JList BidList;
private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
- private javax.swing.JList jList2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
+ private javax.swing.JSeparator jSeparator1;
// End of variables declaration//GEN-END:variables
}
diff --git a/src/SeSim/Exchange.java b/src/SeSim/Exchange.java
index f63e93c..41e2669 100644
--- a/src/SeSim/Exchange.java
+++ b/src/SeSim/Exchange.java
@@ -52,8 +52,8 @@ public class Exchange extends Thread {
long lastsize;
// Order orderlist[];
- TreeSet bid = new TreeSet<>();
- TreeSet ask = new TreeSet<>();
+ public TreeSet bid = new TreeSet<>();
+ public TreeSet ask = new TreeSet<>();
private final Semaphore available = new Semaphore(1, true);
@@ -252,7 +252,7 @@ public class Exchange extends Thread {
try {
sleep(1500);
} catch (InterruptedException e) {
- System.out.println("Interrupted");
+ System.out.println("I was Interrupted");
}
print_current();