diff --git a/src/Gui/Chart.java b/src/Gui/Chart.java index 26808fe..697640e 100644 --- a/src/Gui/Chart.java +++ b/src/Gui/Chart.java @@ -48,11 +48,102 @@ import SeSim.Exchange; */ public class Chart extends javax.swing.JPanel implements Exchange.QuoteReceiver { + SeSim.Exchange se; + + private DefaultHighLowDataset createDataset() { + + System.out.print("Making Data"); + int s = se.quoteHistory.size(); + System.out.print(("SIZE")); + System.out.println(s); + + int serice = 115; + + Date[] date = new Date[serice]; + double[] high = new double[serice]; + double[] low = new double[serice]; + double[] open = new double[serice]; + double[] close = new double[serice]; + double[] volume = new double[serice]; + + Calendar calendar = Calendar.getInstance(); + calendar.set(2008, 5, 1); + + for (int i = 0; i < serice; i++) { + date[i] = createData(2008, 8, i + 1); + high[i] = 30 + Math.round(10) + new Double(Math.random() * 20.0); + low[i] = 30 + Math.round(10) + new Double(Math.random() * 20.0); + open[i] = 10 + Math.round(10) + new Double(Math.random() * 20.0); + close[i] = 10 + Math.round(10) + new Double(Math.random() * 20.0); + volume[i] = 10.0 + new Double(Math.random() * 20.0); + } + + DefaultHighLowDataset data = new DefaultHighLowDataset("", date, high, + low, open, close, volume); + return data; + } + + private Date createData(int year, int month, int date) { + Calendar calendar = Calendar.getInstance(); + calendar.set(year, month - 1, date); + return calendar.getTime(); + } + + private JFreeChart createChart(final DefaultHighLowDataset dataset) { +// final JFreeChart chart = ChartFactory.createCandlestickChart( + //"Candlestick Demo", "Time", "Price", dataset, false); + +// final JFreeChart chart = ChartFactory.createCandlestickChart( +// "Candlestick Demo", "Time", "Price", dataset, false); + final JFreeChart chart = ChartFactory.createXYLineChart( + "Hallo", "X acse", "yachse", dataset, + PlotOrientation.VERTICAL, + true, // include legend + true, // tooltips + false // urls; + ); + + //"Candlestick Demo", "Time", "Price", dataset, false); + return chart; + } + /** * Creates new form Chart */ public Chart() { initComponents(); + + this.se = MainWin.se; + if (this.se == null) { + return; + } + + final DefaultHighLowDataset dataset = createDataset(); + final JFreeChart chart = createChart(dataset); + + final ChartPanel chartPanel = new ChartPanel(chart); + chartPanel.setPreferredSize(new java.awt.Dimension(800, 350)); + // setContentPane(chartPanel); + initChart(chartPanel); + + } + + private void initChart(ChartPanel chart) { + + // orderBook1 = new Gui.OrderBook(); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(chart, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(chart, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(16, Short.MAX_VALUE)) + ); } /** @@ -77,7 +168,6 @@ public class Chart extends javax.swing.JPanel implements Exchange.QuoteReceiver }// //GEN-END:initComponents @Override - public void UpdateQuote(Exchange.Quote q) { System.out.print("Quote received"); System.out.println(q.price); diff --git a/src/Gui/MainWin.form b/src/Gui/MainWin.form index 4e33a84..0e5db1b 100644 --- a/src/Gui/MainWin.form +++ b/src/Gui/MainWin.form @@ -75,7 +75,7 @@ - + @@ -114,25 +114,12 @@ - + - - - - - - - - - - - - - - + diff --git a/src/Gui/MainWin.java b/src/Gui/MainWin.java index a7e6cf6..5d2c7e2 100644 --- a/src/Gui/MainWin.java +++ b/src/Gui/MainWin.java @@ -41,7 +41,7 @@ public class MainWin extends javax.swing.JFrame { jLabel2 = new javax.swing.JLabel(); orderBook1 = new Gui.OrderBook(); controlPanel2 = new Gui.ControlPanel(); - chart1 = new Gui.Chart(); + chart2 = new Gui.Chart(); MainMenu = new javax.swing.JMenuBar(); FileMenu = new javax.swing.JMenu(); FileNew = new javax.swing.JMenuItem(); @@ -67,19 +67,7 @@ public class MainWin extends javax.swing.JFrame { getContentPane().add(jLabel2, java.awt.BorderLayout.CENTER); getContentPane().add(orderBook1, java.awt.BorderLayout.PAGE_END); getContentPane().add(controlPanel2, java.awt.BorderLayout.LINE_END); - - javax.swing.GroupLayout chart1Layout = new javax.swing.GroupLayout(chart1); - chart1.setLayout(chart1Layout); - chart1Layout.setHorizontalGroup( - chart1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 273, Short.MAX_VALUE) - ); - chart1Layout.setVerticalGroup( - chart1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 151, Short.MAX_VALUE) - ); - - getContentPane().add(chart1, java.awt.BorderLayout.CENTER); + getContentPane().add(chart2, java.awt.BorderLayout.CENTER); FileMenu.setBackground(new java.awt.Color(254, 203, 1)); FileMenu.setText("File"); @@ -202,7 +190,7 @@ public class MainWin extends javax.swing.JFrame { private javax.swing.JMenuItem FileNew; private javax.swing.JMenuItem FileRun; private javax.swing.JMenuBar MainMenu; - private Gui.Chart chart1; + private Gui.Chart chart2; private Gui.ControlPanel controlPanel2; private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; diff --git a/src/SeSim/Exchange.java b/src/SeSim/Exchange.java index 93f1917..f18db8f 100644 --- a/src/SeSim/Exchange.java +++ b/src/SeSim/Exchange.java @@ -6,6 +6,18 @@ import java.util.concurrent.*; import SeSim.Order.OrderStatus; public class Exchange extends Thread { + + /** + * Histrory of all quotes + */ + public ArrayList quoteHistory; + + /** + * Constructor + */ + public Exchange() { + this.quoteHistory = new ArrayList<>(); + } // Class to describe an executed order public class Quote { @@ -42,7 +54,7 @@ public class Exchange extends Thread { } } - public ArrayList quoteHistory = new ArrayList<>(); + // long time = 0; double price = 12.9;