Start work on chart menus
This commit is contained in:
parent
3a46ee126e
commit
24d12530da
@ -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=true
|
||||||
annotation.processing.enabled.in.editor=false
|
annotation.processing.enabled.in.editor=false
|
||||||
annotation.processing.processors.list=
|
annotation.processing.processors.list=
|
||||||
|
@ -19,36 +19,31 @@
|
|||||||
<Layout>
|
<Layout>
|
||||||
<DimensionLayout dim="0">
|
<DimensionLayout dim="0">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Group type="102" alignment="0" attributes="0">
|
<Group type="102" attributes="0">
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Component id="xScrollBar" max="32767" attributes="0"/>
|
<Component id="xLegend" max="32767" attributes="0"/>
|
||||||
<Group type="102" attributes="0">
|
<Component id="chart" max="32767" attributes="0"/>
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
|
||||||
<Component id="xLegend" max="32767" attributes="0"/>
|
|
||||||
<Component id="chart" max="32767" attributes="0"/>
|
|
||||||
</Group>
|
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
|
||||||
<Component id="yLegend" min="-2" max="-2" attributes="0"/>
|
|
||||||
</Group>
|
|
||||||
</Group>
|
</Group>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="yLegend" min="-2" max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
|
<Component id="xScrollBar" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
<DimensionLayout dim="1">
|
<DimensionLayout dim="1">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Group type="102" alignment="0" attributes="0">
|
<Group type="102" alignment="0" attributes="0">
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Component id="yLegend" max="32767" attributes="0"/>
|
<Group type="102" attributes="0">
|
||||||
|
<Component id="yLegend" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="0" pref="52" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
<Component id="chart" max="32767" attributes="0"/>
|
<Component id="chart" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="xLegend" min="-2" max="-2" attributes="0"/>
|
<Component id="xLegend" min="-2" max="-2" attributes="0"/>
|
||||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
|
||||||
<Component id="xScrollBar" min="-2" max="-2" attributes="0"/>
|
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="xScrollBar" min="-2" max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
@ -86,27 +81,34 @@
|
|||||||
<Layout>
|
<Layout>
|
||||||
<DimensionLayout dim="0">
|
<DimensionLayout dim="0">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<EmptySpace min="0" pref="83" max="32767" attributes="0"/>
|
<EmptySpace min="0" pref="95" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
<DimensionLayout dim="1">
|
<DimensionLayout dim="1">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<EmptySpace min="0" pref="326" max="32767" attributes="0"/>
|
<EmptySpace min="0" pref="264" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
</Layout>
|
</Layout>
|
||||||
</Container>
|
</Container>
|
||||||
<Container class="sesim.ChartPanel" name="xLegend">
|
<Container class="sesim.ChartPanel" name="xLegend">
|
||||||
|
<Properties>
|
||||||
|
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||||
|
<Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
|
||||||
|
<LineBorder/>
|
||||||
|
</Border>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
<Layout>
|
<Layout>
|
||||||
<DimensionLayout dim="0">
|
<DimensionLayout dim="0">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<EmptySpace min="0" pref="576" max="32767" attributes="0"/>
|
<EmptySpace min="0" pref="561" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
<DimensionLayout dim="1">
|
<DimensionLayout dim="1">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<EmptySpace min="0" pref="61" max="32767" attributes="0"/>
|
<EmptySpace min="0" pref="37" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
</Layout>
|
</Layout>
|
||||||
@ -120,4 +122,4 @@
|
|||||||
</Events>
|
</Events>
|
||||||
</Component>
|
</Component>
|
||||||
</SubComponents>
|
</SubComponents>
|
||||||
</Form>
|
</Form>
|
||||||
|
@ -41,6 +41,9 @@ import sesim.OHLCData;
|
|||||||
import sesim.OHLCDataItem;
|
import sesim.OHLCDataItem;
|
||||||
import sesim.Quote;
|
import sesim.Quote;
|
||||||
import indicators.SMAIndicator;
|
import indicators.SMAIndicator;
|
||||||
|
import java.util.Objects;
|
||||||
|
import javax.swing.ButtonGroup;
|
||||||
|
import javax.swing.JRadioButtonMenuItem;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -51,6 +54,43 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver {
|
|||||||
|
|
||||||
private ChartDef chartDef;
|
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;
|
SMAIndicator sma1, sma2;
|
||||||
|
|
||||||
class MyOHLCData extends OHLCData {
|
class MyOHLCData extends OHLCData {
|
||||||
@ -140,7 +180,7 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver {
|
|||||||
mysma1 = new MyOHLCData(sma1);
|
mysma1 = new MyOHLCData(sma1);
|
||||||
p = new LineChartPainter();
|
p = new LineChartPainter();
|
||||||
p.setOHLCData(mysma1);
|
p.setOHLCData(mysma1);
|
||||||
|
|
||||||
chart.addChartPainter(p);
|
chart.addChartPainter(p);
|
||||||
|
|
||||||
sma2 = new indicators.SMAIndicator();
|
sma2 = new indicators.SMAIndicator();
|
||||||
@ -151,9 +191,8 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver {
|
|||||||
mysma2 = new MyOHLCData(sma2);
|
mysma2 = new MyOHLCData(sma2);
|
||||||
p = new LineChartPainter();
|
p = new LineChartPainter();
|
||||||
p.setOHLCData(mysma2);
|
p.setOHLCData(mysma2);
|
||||||
chart.addChartPainter(p);
|
chart.addChartPainter(p);
|
||||||
|
|
||||||
|
|
||||||
ChartPainter yp = new YLegendPainter(chart);
|
ChartPainter yp = new YLegendPainter(chart);
|
||||||
// yp.setDataProvider(this);
|
// yp.setDataProvider(this);
|
||||||
yp.setOHLCData(mydata);
|
yp.setOHLCData(mydata);
|
||||||
@ -200,30 +239,28 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver {
|
|||||||
.addGap(0, 0, Short.MAX_VALUE)
|
.addGap(0, 0, Short.MAX_VALUE)
|
||||||
);
|
);
|
||||||
|
|
||||||
yLegend.setBorder(null);
|
|
||||||
|
|
||||||
javax.swing.GroupLayout yLegendLayout = new javax.swing.GroupLayout(yLegend);
|
javax.swing.GroupLayout yLegendLayout = new javax.swing.GroupLayout(yLegend);
|
||||||
yLegend.setLayout(yLegendLayout);
|
yLegend.setLayout(yLegendLayout);
|
||||||
yLegendLayout.setHorizontalGroup(
|
yLegendLayout.setHorizontalGroup(
|
||||||
yLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
yLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addGap(0, 83, Short.MAX_VALUE)
|
.addGap(0, 95, Short.MAX_VALUE)
|
||||||
);
|
);
|
||||||
yLegendLayout.setVerticalGroup(
|
yLegendLayout.setVerticalGroup(
|
||||||
yLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
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);
|
javax.swing.GroupLayout xLegendLayout = new javax.swing.GroupLayout(xLegend);
|
||||||
xLegend.setLayout(xLegendLayout);
|
xLegend.setLayout(xLegendLayout);
|
||||||
xLegendLayout.setHorizontalGroup(
|
xLegendLayout.setHorizontalGroup(
|
||||||
xLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
xLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addGap(0, 576, Short.MAX_VALUE)
|
.addGap(0, 561, Short.MAX_VALUE)
|
||||||
);
|
);
|
||||||
xLegendLayout.setVerticalGroup(
|
xLegendLayout.setVerticalGroup(
|
||||||
xLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
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);
|
xScrollBar.setOrientation(javax.swing.JScrollBar.HORIZONTAL);
|
||||||
@ -238,29 +275,25 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver {
|
|||||||
layout.setHorizontalGroup(
|
layout.setHorizontalGroup(
|
||||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addGroup(layout.createSequentialGroup()
|
.addGroup(layout.createSequentialGroup()
|
||||||
.addContainerGap()
|
|
||||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addComponent(xScrollBar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
.addComponent(xLegend, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
.addGroup(layout.createSequentialGroup()
|
.addComponent(chart, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(xLegend, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
.addComponent(yLegend, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
.addComponent(chart, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
.addComponent(xScrollBar, 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())
|
|
||||||
);
|
);
|
||||||
layout.setVerticalGroup(
|
layout.setVerticalGroup(
|
||||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addGroup(layout.createSequentialGroup()
|
.addGroup(layout.createSequentialGroup()
|
||||||
.addContainerGap()
|
|
||||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
.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))
|
.addComponent(chart, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(xLegend, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addComponent(xLegend, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(xScrollBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addComponent(xScrollBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
.addContainerGap())
|
|
||||||
);
|
);
|
||||||
}// </editor-fold>//GEN-END:initComponents
|
}// </editor-fold>//GEN-END:initComponents
|
||||||
|
|
||||||
|
@ -63,6 +63,15 @@
|
|||||||
</Container>
|
</Container>
|
||||||
<Component class="javax.swing.ButtonGroup" name="typeButtonGroup">
|
<Component class="javax.swing.ButtonGroup" name="typeButtonGroup">
|
||||||
</Component>
|
</Component>
|
||||||
|
<Container class="javax.swing.JMenu" name="jMenu1">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="jMenu1"/>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout">
|
||||||
|
<Property name="useNullLayout" type="boolean" value="true"/>
|
||||||
|
</Layout>
|
||||||
|
</Container>
|
||||||
</NonVisualComponents>
|
</NonVisualComponents>
|
||||||
<Events>
|
<Events>
|
||||||
<EventHandler event="mouseMoved" listener="java.awt.event.MouseMotionListener" parameters="java.awt.event.MouseEvent" handler="formMouseMoved"/>
|
<EventHandler event="mouseMoved" listener="java.awt.event.MouseMotionListener" parameters="java.awt.event.MouseEvent" handler="formMouseMoved"/>
|
||||||
|
@ -184,6 +184,7 @@ setCursor(new MyCursor(Cursor.CROSSHAIR_CURSOR));
|
|||||||
jSeparator1 = new javax.swing.JPopupMenu.Separator();
|
jSeparator1 = new javax.swing.JPopupMenu.Separator();
|
||||||
logMenu = new javax.swing.JCheckBoxMenuItem();
|
logMenu = new javax.swing.JCheckBoxMenuItem();
|
||||||
typeButtonGroup = new javax.swing.ButtonGroup();
|
typeButtonGroup = new javax.swing.ButtonGroup();
|
||||||
|
jMenu1 = new javax.swing.JMenu();
|
||||||
|
|
||||||
compMenu.setText("Compression");
|
compMenu.setText("Compression");
|
||||||
ctxMenu.add(compMenu);
|
ctxMenu.add(compMenu);
|
||||||
@ -230,6 +231,8 @@ setCursor(new MyCursor(Cursor.CROSSHAIR_CURSOR));
|
|||||||
});
|
});
|
||||||
ctxMenu.add(logMenu);
|
ctxMenu.add(logMenu);
|
||||||
|
|
||||||
|
jMenu1.setText("jMenu1");
|
||||||
|
|
||||||
addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
|
addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
|
||||||
public void mouseMoved(java.awt.event.MouseEvent evt) {
|
public void mouseMoved(java.awt.event.MouseEvent evt) {
|
||||||
formMouseMoved(evt);
|
formMouseMoved(evt);
|
||||||
@ -339,6 +342,7 @@ setCursor(new MyCursor(Cursor.CROSSHAIR_CURSOR));
|
|||||||
private javax.swing.JRadioButtonMenuItem candleTypeMEnuItem;
|
private javax.swing.JRadioButtonMenuItem candleTypeMEnuItem;
|
||||||
private javax.swing.JMenu compMenu;
|
private javax.swing.JMenu compMenu;
|
||||||
private javax.swing.JPopupMenu ctxMenu;
|
private javax.swing.JPopupMenu ctxMenu;
|
||||||
|
private javax.swing.JMenu jMenu1;
|
||||||
private javax.swing.JPopupMenu.Separator jSeparator1;
|
private javax.swing.JPopupMenu.Separator jSeparator1;
|
||||||
private javax.swing.JRadioButtonMenuItem lineTypeItem;
|
private javax.swing.JRadioButtonMenuItem lineTypeItem;
|
||||||
private javax.swing.JCheckBoxMenuItem logMenu;
|
private javax.swing.JCheckBoxMenuItem logMenu;
|
||||||
|
Loading…
Reference in New Issue
Block a user