Elemination of ChartPainter.DataProvider

This commit is contained in:
7u83 2017-11-18 13:36:00 +01:00
parent fe9c2f83b1
commit db42dfd43c
5 changed files with 60 additions and 70 deletions

View File

@ -56,7 +56,7 @@ public class ChartPanel extends javax.swing.JPanel implements AdjustmentListener
chartDef = def;
}
private final ArrayList<ChartPainter> chartPainters = new ArrayList<>();
private ArrayList<ChartPainter> chartPainters = new ArrayList<>();
/**
*
@ -65,8 +65,16 @@ public class ChartPanel extends javax.swing.JPanel implements AdjustmentListener
public void addChartPainter(ChartPainter p) {
chartPainters.add(p);
}
public void deleteAllChartPinters(){
chartPainters = new ArrayList<>();
}
public boolean delChartPainter(ChartPainter p){
return true;
}
OHLCData data;
// OHLCData data;
@Override
protected void paintComponent(Graphics g) {
@ -77,8 +85,8 @@ public class ChartPanel extends javax.swing.JPanel implements AdjustmentListener
}
//this.x_scrollbar.setMaximum(994000);
XLegendPainter p = new XLegendPainter();
data = Globals.se.getOHLCdata(60000 * 60);
// XLegendPainter p = new XLegendPainter();
//data = Globals.se.getOHLCdata(60000 * 60);
// ChartDef def = new ChartDef();
// def.x_unit_width = 1.0;

View File

@ -82,11 +82,6 @@
</Layout>
</Container>
<Container class="chart.ChartPanel" name="yLegend">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="null"/>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
@ -102,11 +97,6 @@
</Layout>
</Container>
<Container class="chart.ChartPanel" name="xLegend">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="null"/>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">

View File

@ -44,7 +44,7 @@ import sesim.SMAIndicator;
*
* @author 7u83 <7u83@mail.ru>
*/
public class MasterChart extends javax.swing.JPanel implements QuoteReceiver, ChartPainter.DataProvider {
public class MasterChart extends javax.swing.JPanel implements QuoteReceiver {
private ChartDef chartDef;
@ -67,80 +67,51 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver, Ch
this.xLegend.setChartDef(chartDef);
this.yLegend.setChartDef(chartDef);
class SMA extends OHLCData implements ChartPainter.DataProvider {
// this.yLegend.addChartPainter(p);
//this.yLegend.addChartPainter(pc);
}
OHLCData data;
SMAIndicator sma;
OHLCData data;
public void reset() {
this.chart.deleteAllChartPinters();
this.xLegend.deleteAllChartPinters();
this.yLegend.deleteAllChartPinters();
SMA(OHLCData data) {
sma = new SMAIndicator(data);
this.data = data;
}
@Override
public MinMax getMinMax(int first, int last) {
return data.getMinMax(first, last);
}
@Override
public float getMax() {
return data.getMax();
}
@Override
public OHLCData get() {
return this; //sm
//.getData();
}
@Override
public OHLCDataItem get(int n) {
OHLCData d = sma.getData();
return d.get(n); //To change body of generated methods, choose Tools | Templates.
}
@Override
public int size() {
int s = data.size();
return s;
}
}
this.chart.setChartDef(chartDef);
this.xLegend.setChartDef(chartDef);
this.yLegend.setChartDef(chartDef);
ChartPainter p;
data = Globals.se.getOHLCdata(60000 * 10);
this.xScrollBar.setMaximum(0);
p = new XLegendPainter();
p.setDataProvider(this);
p.setOHLCData(data);
xLegend.addChartPainter(p);
xLegend.setXSCrollBar(xScrollBar);
ChartPainter pc = new CandleStickChartPainter();
pc.setDataProvider(this);
//pc.setDataProvider(this);
pc.setOHLCData(data);
chart.addChartPainter(pc);
chart.setXSCrollBar(xScrollBar);
chart.addChartPainter(new ChartCrossPainter());
SMAIndicator sma = new sesim.SMAIndicator(get());
// SMAIndicator sma = new sesim.SMAIndicator(get());
p = new LineChartPainter();
p.setDataProvider(new SMA(get()));
p.setOHLCData(data);
//p.setDataProvider(new SMA(get()));
chart.addChartPainter(p);
ChartPainter yp = new YLegendPainter(chart);
yp.setDataProvider(this);
// yp.setDataProvider(this);
yp.setOHLCData(data);
this.yLegend.addChartPainter(yp);
// this.yLegend.addChartPainter(p);
//this.yLegend.addChartPainter(pc);
}
/**
@ -278,15 +249,26 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver, Ch
@Override
public void UpdateQuote(Quote q) {
OHLCData data = this.get();
// OHLCData data = this.get();
int s = data.size();
this.xScrollBar.setMaximum(s);
repaint();
}
@Override
OHLCData mydata = null;
/*
public OHLCData get() {
return Globals.se.getOHLCdata(60000 * 10);
OHLCData re = Globals.se.getOHLCdata(60000 * 10);
if (re != mydata) {
System.out.printf("re != a\n");
}
if (mydata == null) {
mydata = Globals.se.getOHLCdata(60000 * 10);
}
return mydata;
}
*/
}

View File

@ -40,7 +40,14 @@ abstract public class ChartPainter {
protected int em_size;
public abstract interface DataProvider {
protected OHLCData data;
public void setOHLCData(OHLCData data){
this.data = data;
}
/* public abstract interface DataProvider {
abstract OHLCData get();
}
@ -50,12 +57,14 @@ abstract public class ChartPainter {
public void setDataProvider(DataProvider dataProvider) {
this.dataProvider = dataProvider;
}
*/
protected OHLCData getData() {
if (dataProvider == null) {
return this.data;
/*if (dataProvider == null) {
return null;
}
return dataProvider.get();
*/
}
protected int getFirstBar(ChartPanel p) {

View File

@ -585,6 +585,7 @@ public class SeSimApplication extends javax.swing.JFrame {
Globals.se.terminate();
Globals.se.reset();
// chart.initChart();
chart.reset();
chart.invalidate();
chart.repaint();
// this.orderBookPanel.invalidate();