package chart; import chart.painter.ChartPainter; import chart.painter.XLegendPainter; import gui.Globals; import java.awt.Cursor; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import java.util.ArrayList; import javax.swing.JScrollBar; import sesim.OHLCData; /** * * @author 7u83 <7u83@mail.ru> */ public class ChartPanel extends javax.swing.JPanel implements AdjustmentListener { public JScrollBar x_scrollbar=null; ChartDef chartDef; public boolean mouseEntered=false; /** * Creates new form Chart1 */ public ChartPanel() { initComponents(); setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR)); } /** * Add a horizontal scrollbar * @param x_scrollbar */ 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); } public void setChartDef(ChartDef def){ chartDef = def; } private final 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, chartDef); } } /** * 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); } }); addMouseListener(new java.awt.event.MouseAdapter() { public void mouseExited(java.awt.event.MouseEvent evt) { formMouseExited(evt); } public void mouseEntered(java.awt.event.MouseEvent evt) { formMouseEntered(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 private void formMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseEntered this.mouseEntered=true; }//GEN-LAST:event_formMouseEntered private void formMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseExited this.mouseEntered=false; }//GEN-LAST:event_formMouseExited @Override public void adjustmentValueChanged(AdjustmentEvent e) { this.repaint(); } // Variables declaration - do not modify//GEN-BEGIN:variables // End of variables declaration//GEN-END:variables }