From 24d12530da0f0ccbed8c6772ef586b6001684cce Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Sun, 26 Nov 2017 09:29:14 +0100 Subject: [PATCH] Start work on chart menus --- nbproject/project.properties | 2 +- src/chart/MasterChart.form | 42 ++++++++++--------- src/chart/MasterChart.java | 81 +++++++++++++++++++++++++----------- src/gui/MainChart.form | 9 ++++ src/gui/MainChart.java | 4 ++ 5 files changed, 93 insertions(+), 45 deletions(-) diff --git a/nbproject/project.properties b/nbproject/project.properties index b23da90..a49fb79 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -1,4 +1,4 @@ -#Sat, 25 Nov 2017 15:10:17 +0100 +#Sun, 26 Nov 2017 09:17:02 +0100 annotation.processing.enabled=true annotation.processing.enabled.in.editor=false annotation.processing.processors.list= diff --git a/src/chart/MasterChart.form b/src/chart/MasterChart.form index d9f87d4..6c7d744 100644 --- a/src/chart/MasterChart.form +++ b/src/chart/MasterChart.form @@ -19,36 +19,31 @@ - - + - - - - - - - - - + + + + - - + + + + - - + @@ -86,27 +81,34 @@ - + - + + + + + + + + - + - + @@ -120,4 +122,4 @@ - \ No newline at end of file + diff --git a/src/chart/MasterChart.java b/src/chart/MasterChart.java index a7ef8a9..6eea26b 100644 --- a/src/chart/MasterChart.java +++ b/src/chart/MasterChart.java @@ -41,6 +41,9 @@ import sesim.OHLCData; import sesim.OHLCDataItem; import sesim.Quote; import indicators.SMAIndicator; +import java.util.Objects; +import javax.swing.ButtonGroup; +import javax.swing.JRadioButtonMenuItem; import org.json.JSONObject; /** @@ -51,6 +54,43 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver { private ChartDef chartDef; + + class CompressionVal { + + public final String text; + public final Integer value; + + CompressionVal(String text, Integer val) { + this.text = text; + this.value = val; + } + } + + private final CompressionVal cvalues[] = { + new CompressionVal("5 s", 5 * 1000), + new CompressionVal("10 s", 10 * 1000), + new CompressionVal("15 s", 15 * 1000), + new CompressionVal("30 s", 30 * 1000), + new CompressionVal("1 m", 1 * 60 * 1000), + new CompressionVal("2 m", 2 * 60 * 1000), + new CompressionVal("5 m", 5 * 60 * 1000), + new CompressionVal("10 m", 10 * 60 * 1000), + new CompressionVal("1 h", 1 * 3660 * 1000), + new CompressionVal("2 h", 2 * 3660 * 1000), + new CompressionVal("4 h", 4 * 3660 * 1000), + new CompressionVal("1 d", 1 * 24 * 3660 * 1000), + new CompressionVal("2 d", 2 * 24 * 3660 * 1000), + new CompressionVal("3 d", 3 * 3660 * 1000),}; + + private void initCtxMenu() { + ButtonGroup group = new ButtonGroup(); + for (int i = 0; i < this.cvalues.length; i++) { + JRadioButtonMenuItem item = new JRadioButtonMenuItem(this.cvalues[i].text); + + } + } + + SMAIndicator sma1, sma2; class MyOHLCData extends OHLCData { @@ -140,7 +180,7 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver { mysma1 = new MyOHLCData(sma1); p = new LineChartPainter(); p.setOHLCData(mysma1); - + chart.addChartPainter(p); sma2 = new indicators.SMAIndicator(); @@ -151,9 +191,8 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver { mysma2 = new MyOHLCData(sma2); p = new LineChartPainter(); p.setOHLCData(mysma2); - chart.addChartPainter(p); + chart.addChartPainter(p); - ChartPainter yp = new YLegendPainter(chart); // yp.setDataProvider(this); yp.setOHLCData(mydata); @@ -200,30 +239,28 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver { .addGap(0, 0, Short.MAX_VALUE) ); - yLegend.setBorder(null); - javax.swing.GroupLayout yLegendLayout = new javax.swing.GroupLayout(yLegend); yLegend.setLayout(yLegendLayout); yLegendLayout.setHorizontalGroup( yLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 83, Short.MAX_VALUE) + .addGap(0, 95, Short.MAX_VALUE) ); yLegendLayout.setVerticalGroup( yLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 326, Short.MAX_VALUE) + .addGap(0, 264, Short.MAX_VALUE) ); - xLegend.setBorder(null); + xLegend.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); javax.swing.GroupLayout xLegendLayout = new javax.swing.GroupLayout(xLegend); xLegend.setLayout(xLegendLayout); xLegendLayout.setHorizontalGroup( xLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 576, Short.MAX_VALUE) + .addGap(0, 561, Short.MAX_VALUE) ); xLegendLayout.setVerticalGroup( xLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 61, Short.MAX_VALUE) + .addGap(0, 37, Short.MAX_VALUE) ); xScrollBar.setOrientation(javax.swing.JScrollBar.HORIZONTAL); @@ -238,29 +275,25 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver { layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(xScrollBar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(xLegend, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(chart, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(yLegend, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addContainerGap()) + .addComponent(xLegend, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(chart, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(yLegend, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(xScrollBar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(yLegend, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addComponent(yLegend, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 52, Short.MAX_VALUE)) .addComponent(chart, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(xLegend, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(xScrollBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap()) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(xScrollBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ); }// //GEN-END:initComponents diff --git a/src/gui/MainChart.form b/src/gui/MainChart.form index 4c8a11a..c297094 100644 --- a/src/gui/MainChart.form +++ b/src/gui/MainChart.form @@ -63,6 +63,15 @@ + + + + + + + + + diff --git a/src/gui/MainChart.java b/src/gui/MainChart.java index ad7168a..f54ddb4 100644 --- a/src/gui/MainChart.java +++ b/src/gui/MainChart.java @@ -184,6 +184,7 @@ setCursor(new MyCursor(Cursor.CROSSHAIR_CURSOR)); jSeparator1 = new javax.swing.JPopupMenu.Separator(); logMenu = new javax.swing.JCheckBoxMenuItem(); typeButtonGroup = new javax.swing.ButtonGroup(); + jMenu1 = new javax.swing.JMenu(); compMenu.setText("Compression"); ctxMenu.add(compMenu); @@ -230,6 +231,8 @@ setCursor(new MyCursor(Cursor.CROSSHAIR_CURSOR)); }); ctxMenu.add(logMenu); + jMenu1.setText("jMenu1"); + addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseMoved(java.awt.event.MouseEvent evt) { formMouseMoved(evt); @@ -339,6 +342,7 @@ setCursor(new MyCursor(Cursor.CROSSHAIR_CURSOR)); private javax.swing.JRadioButtonMenuItem candleTypeMEnuItem; private javax.swing.JMenu compMenu; private javax.swing.JPopupMenu ctxMenu; + private javax.swing.JMenu jMenu1; private javax.swing.JPopupMenu.Separator jSeparator1; private javax.swing.JRadioButtonMenuItem lineTypeItem; private javax.swing.JCheckBoxMenuItem logMenu;