package chart; import chart.painter.ChartPainter; import chart.painter.XLegendPainter; import gui.Globals; import java.awt.Cursor; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import java.awt.geom.AffineTransform; import java.util.ArrayList; import javax.swing.JScrollBar; import javax.swing.JViewport; import javax.swing.Scrollable; import sesim.Exchange.QuoteReceiver; import sesim.OHLCData; import sesim.OHLCDataItem; import sesim.Quote; /** * * @author 7u83 <7u83@mail.ru> */ public class ChartPanel extends javax.swing.JPanel implements AdjustmentListener { public JScrollBar x_scrollbar=null; /** * Creates new form Chart1 */ public ChartPanel() { initComponents(); setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR)); } public void setXSCrollBar(JScrollBar x_scrollbar){ if (this.x_scrollbar!=null) this.x_scrollbar.removeAdjustmentListener(this); this.x_scrollbar=x_scrollbar; if (this.x_scrollbar!=null) this.x_scrollbar.addAdjustmentListener(this); } private ArrayList chartPainters = new ArrayList<>(); /** * * @param p */ public void addChartPainter(ChartPainter p) { chartPainters.add(p); } OHLCData data; @Override protected void paintComponent(Graphics g) { super.paintComponent(g); if (Globals.se == null) { return; } //this.x_scrollbar.setMaximum(994000); XLegendPainter p = new XLegendPainter(); data = Globals.se.getOHLCdata(60000 * 60); ChartDef def = new ChartDef(); def.x_unit_width = 1.0; // def.x_scrollbar = x_scrollbar; for (ChartPainter painter : chartPainters) { painter.drawChart((Graphics2D) g, this, def); } } /** * 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() { addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseMoved(java.awt.event.MouseEvent evt) { formMouseMoved(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 498, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 341, Short.MAX_VALUE) ); }// //GEN-END:initComponents public Point mouse = null; private void formMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseMoved Point p = evt.getPoint(); mouse = p; repaint(); }//GEN-LAST:event_formMouseMoved // @Override public void adjustmentValueChanged(AdjustmentEvent e) { this.repaint(); } // Variables declaration - do not modify//GEN-BEGIN:variables // End of variables declaration//GEN-END:variables }