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

View File

@ -82,11 +82,6 @@
</Layout> </Layout>
</Container> </Container>
<Container class="chart.ChartPanel" name="yLegend"> <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> <Layout>
<DimensionLayout dim="0"> <DimensionLayout dim="0">
@ -102,11 +97,6 @@
</Layout> </Layout>
</Container> </Container>
<Container class="chart.ChartPanel" name="xLegend"> <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> <Layout>
<DimensionLayout dim="0"> <DimensionLayout dim="0">

View File

@ -44,7 +44,7 @@ import sesim.SMAIndicator;
* *
* @author 7u83 <7u83@mail.ru> * @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; private ChartDef chartDef;
@ -67,80 +67,51 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver, Ch
this.xLegend.setChartDef(chartDef); this.xLegend.setChartDef(chartDef);
this.yLegend.setChartDef(chartDef); this.yLegend.setChartDef(chartDef);
class SMA extends OHLCData implements ChartPainter.DataProvider { // this.yLegend.addChartPainter(p);
//this.yLegend.addChartPainter(pc);
SMAIndicator sma; }
OHLCData data; OHLCData data;
SMA(OHLCData data) { public void reset() {
sma = new SMAIndicator(data); this.chart.deleteAllChartPinters();
this.data = data; this.xLegend.deleteAllChartPinters();
} this.yLegend.deleteAllChartPinters();
@Override this.chart.setChartDef(chartDef);
public MinMax getMinMax(int first, int last) { this.xLegend.setChartDef(chartDef);
return data.getMinMax(first, last); this.yLegend.setChartDef(chartDef);
}
@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;
}
}
ChartPainter p; ChartPainter p;
data = Globals.se.getOHLCdata(60000 * 10);
this.xScrollBar.setMaximum(0); this.xScrollBar.setMaximum(0);
p = new XLegendPainter(); p = new XLegendPainter();
p.setDataProvider(this); p.setOHLCData(data);
xLegend.addChartPainter(p); xLegend.addChartPainter(p);
xLegend.setXSCrollBar(xScrollBar); xLegend.setXSCrollBar(xScrollBar);
ChartPainter pc = new CandleStickChartPainter(); ChartPainter pc = new CandleStickChartPainter();
pc.setDataProvider(this); //pc.setDataProvider(this);
pc.setOHLCData(data);
chart.addChartPainter(pc); chart.addChartPainter(pc);
chart.setXSCrollBar(xScrollBar); chart.setXSCrollBar(xScrollBar);
chart.addChartPainter(new ChartCrossPainter()); chart.addChartPainter(new ChartCrossPainter());
SMAIndicator sma = new sesim.SMAIndicator(get()); // SMAIndicator sma = new sesim.SMAIndicator(get());
p = new LineChartPainter(); p = new LineChartPainter();
p.setDataProvider(new SMA(get())); p.setOHLCData(data);
//p.setDataProvider(new SMA(get()));
chart.addChartPainter(p); chart.addChartPainter(p);
ChartPainter yp = new YLegendPainter(chart); ChartPainter yp = new YLegendPainter(chart);
yp.setDataProvider(this); // yp.setDataProvider(this);
yp.setOHLCData(data);
this.yLegend.addChartPainter(yp); 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 @Override
public void UpdateQuote(Quote q) { public void UpdateQuote(Quote q) {
OHLCData data = this.get(); // OHLCData data = this.get();
int s = data.size(); int s = data.size();
this.xScrollBar.setMaximum(s); this.xScrollBar.setMaximum(s);
repaint(); repaint();
} }
@Override OHLCData mydata = null;
/*
public OHLCData get() { 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; 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(); abstract OHLCData get();
} }
@ -50,12 +57,14 @@ abstract public class ChartPainter {
public void setDataProvider(DataProvider dataProvider) { public void setDataProvider(DataProvider dataProvider) {
this.dataProvider = dataProvider; this.dataProvider = dataProvider;
} }
*/
protected OHLCData getData() { protected OHLCData getData() {
if (dataProvider == null) { return this.data;
/*if (dataProvider == null) {
return null; return null;
} }
return dataProvider.get(); return dataProvider.get();
*/
} }
protected int getFirstBar(ChartPanel p) { protected int getFirstBar(ChartPanel p) {

View File

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