|
|
|
@ -8,7 +8,6 @@ import com.fr.design.gui.imenu.UIMenuItem;
|
|
|
|
|
import com.fr.design.gui.imenu.UIPopupMenu; |
|
|
|
|
import com.fr.design.utils.gui.GUICoreUtils; |
|
|
|
|
import com.fr.general.ComparatorUtils; |
|
|
|
|
|
|
|
|
|
import com.fr.plugin.chart.VanChartAttrHelper; |
|
|
|
|
import com.fr.plugin.chart.attr.axis.VanChartAxis; |
|
|
|
|
import com.fr.plugin.chart.attr.plot.VanChartAxisPlot; |
|
|
|
@ -18,6 +17,8 @@ import javax.swing.BorderFactory;
|
|
|
|
|
import javax.swing.BoxLayout; |
|
|
|
|
import javax.swing.Icon; |
|
|
|
|
import javax.swing.JPanel; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.awt.BorderLayout; |
|
|
|
|
import java.awt.Dimension; |
|
|
|
|
import java.awt.FlowLayout; |
|
|
|
@ -29,8 +30,6 @@ import java.awt.event.MouseEvent;
|
|
|
|
|
import java.awt.event.MouseListener; |
|
|
|
|
import java.awt.geom.Rectangle2D; |
|
|
|
|
import java.awt.image.BufferedImage; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 坐标轴-上方按钮界面 |
|
|
|
@ -41,9 +40,12 @@ public class VanChartAxisButtonPane extends BasicBeanPane<VanChartAxisPlot> {
|
|
|
|
|
private static final int B_W = 56; |
|
|
|
|
private static final int B_H = 21; |
|
|
|
|
private static final int COL_COUNT = 3; |
|
|
|
|
private static final int MAX_COUNT = 20; |
|
|
|
|
|
|
|
|
|
private UIButton addButton; |
|
|
|
|
private UIPopupMenu popupMenu; |
|
|
|
|
private UIMenuItem itemX; |
|
|
|
|
private UIMenuItem itemY; |
|
|
|
|
|
|
|
|
|
private List<ChartAxisButton> indexList_X = new ArrayList<ChartAxisButton>(); |
|
|
|
|
private List<ChartAxisButton> indexList_Y = new ArrayList<ChartAxisButton>(); |
|
|
|
@ -51,7 +53,7 @@ public class VanChartAxisButtonPane extends BasicBeanPane<VanChartAxisPlot> {
|
|
|
|
|
|
|
|
|
|
private VanChartAxisPane parent; |
|
|
|
|
|
|
|
|
|
public VanChartAxisButtonPane(VanChartAxisPane vanChartAxisPane){ |
|
|
|
|
public VanChartAxisButtonPane(VanChartAxisPane vanChartAxisPane) { |
|
|
|
|
this.parent = vanChartAxisPane; |
|
|
|
|
this.setLayout(new BorderLayout()); |
|
|
|
|
|
|
|
|
@ -66,6 +68,20 @@ public class VanChartAxisButtonPane extends BasicBeanPane<VanChartAxisPlot> {
|
|
|
|
|
buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 5, 10, 0)); |
|
|
|
|
this.add(buttonPane, BorderLayout.CENTER); |
|
|
|
|
|
|
|
|
|
itemX = new UIMenuItem(VanChartAttrHelper.X_AXIS_PREFIX); |
|
|
|
|
itemX.addActionListener(new ActionListener() { |
|
|
|
|
@Override |
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
addXAxis(); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
itemY = new UIMenuItem(VanChartAttrHelper.Y_AXIS_PREFIX); |
|
|
|
|
itemY.addActionListener(new ActionListener() { |
|
|
|
|
@Override |
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
addYAxis(); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
addButton.addActionListener(addListener); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -92,12 +108,12 @@ public class VanChartAxisButtonPane extends BasicBeanPane<VanChartAxisPlot> {
|
|
|
|
|
pane = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); |
|
|
|
|
buttonPane.add(pane); |
|
|
|
|
} |
|
|
|
|
if(pane != null) { |
|
|
|
|
if (pane != null) { |
|
|
|
|
pane.add(indexList_Y.get(i)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(popupMenu != null){ |
|
|
|
|
if (popupMenu != null) { |
|
|
|
|
popupMenu.setVisible(false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -114,19 +130,19 @@ public class VanChartAxisButtonPane extends BasicBeanPane<VanChartAxisPlot> {
|
|
|
|
|
indexList_X.clear(); |
|
|
|
|
indexList_Y.clear(); |
|
|
|
|
List<VanChartAxis> xList = plot.getXAxisList(); |
|
|
|
|
for(VanChartAxis axis : xList){ |
|
|
|
|
for (VanChartAxis axis : xList) { |
|
|
|
|
ChartAxisButton x = new ChartAxisButton(plot.getXAxisName(axis)); |
|
|
|
|
x.setToolTipText(plot.getXAxisName(axis)); |
|
|
|
|
indexList_X.add(x); |
|
|
|
|
} |
|
|
|
|
List<VanChartAxis> yList = plot.getYAxisList(); |
|
|
|
|
for(VanChartAxis axis : yList){ |
|
|
|
|
for (VanChartAxis axis : yList) { |
|
|
|
|
ChartAxisButton y = new ChartAxisButton(plot.getYAxisName(axis)); |
|
|
|
|
y.setToolTipText(plot.getYAxisName(axis)); |
|
|
|
|
indexList_Y.add(y); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(indexList_X.isEmpty()){ |
|
|
|
|
if (indexList_X.isEmpty()) { |
|
|
|
|
this.removeAll(); |
|
|
|
|
} else { |
|
|
|
|
indexList_X.get(0).setSelected(true); |
|
|
|
@ -143,7 +159,7 @@ public class VanChartAxisButtonPane extends BasicBeanPane<VanChartAxisPlot> {
|
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public String getNewChartName(List<ChartAxisButton> existList, String prefix){ |
|
|
|
|
public String getNewChartName(List<ChartAxisButton> existList, String prefix) { |
|
|
|
|
int count = existList.size() + 1; |
|
|
|
|
while (true) { |
|
|
|
|
String name_test = prefix + count; |
|
|
|
@ -165,31 +181,19 @@ public class VanChartAxisButtonPane extends BasicBeanPane<VanChartAxisPlot> {
|
|
|
|
|
ActionListener addListener = new ActionListener() { |
|
|
|
|
@Override |
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
if(popupMenu == null){ |
|
|
|
|
popupMenu = new UIPopupMenu(); |
|
|
|
|
UIMenuItem item_x = new UIMenuItem(VanChartAttrHelper.X_AXIS_PREFIX); |
|
|
|
|
item_x.addActionListener(new ActionListener() { |
|
|
|
|
@Override |
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
addXAxis(); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
UIMenuItem item_y = new UIMenuItem(VanChartAttrHelper.Y_AXIS_PREFIX); |
|
|
|
|
item_y.addActionListener(new ActionListener() { |
|
|
|
|
@Override |
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
addYAxis(); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
popupMenu.add(item_x); |
|
|
|
|
popupMenu.add(item_y); |
|
|
|
|
popupMenu = new UIPopupMenu(); |
|
|
|
|
if (indexList_X.size() < MAX_COUNT) { |
|
|
|
|
popupMenu.add(itemX); |
|
|
|
|
} |
|
|
|
|
if (indexList_Y.size() < MAX_COUNT) { |
|
|
|
|
popupMenu.add(itemY); |
|
|
|
|
} |
|
|
|
|
popupMenu.setVisible(true); |
|
|
|
|
GUICoreUtils.showPopupMenu(popupMenu, addButton, addButton.getWidth() - popupMenu.getPreferredSize().width, addButton.getY() - 1 + addButton.getHeight()); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
private void addXAxis(){ |
|
|
|
|
private void addXAxis() { |
|
|
|
|
String name = getNewChartName(indexList_X, VanChartAttrHelper.X_AXIS_PREFIX); |
|
|
|
|
ChartAxisButton button = new ChartAxisButton(name); |
|
|
|
|
|
|
|
|
@ -199,7 +203,7 @@ public class VanChartAxisButtonPane extends BasicBeanPane<VanChartAxisPlot> {
|
|
|
|
|
layoutPane(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void addYAxis(){ |
|
|
|
|
private void addYAxis() { |
|
|
|
|
String name = getNewChartName(indexList_Y, VanChartAttrHelper.Y_AXIS_PREFIX); |
|
|
|
|
ChartAxisButton button = new ChartAxisButton(name); |
|
|
|
|
|
|
|
|
@ -216,9 +220,10 @@ public class VanChartAxisButtonPane extends BasicBeanPane<VanChartAxisPlot> {
|
|
|
|
|
|
|
|
|
|
private class AddButton extends UIButton { |
|
|
|
|
|
|
|
|
|
public AddButton(Icon icon){ |
|
|
|
|
public AddButton(Icon icon) { |
|
|
|
|
super(icon); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 组件是否需要响应添加的观察者事件 |
|
|
|
|
* |
|
|
|
@ -277,19 +282,19 @@ public class VanChartAxisButtonPane extends BasicBeanPane<VanChartAxisPlot> {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void noSelected() { |
|
|
|
|
for(ChartAxisButton button : indexList_X){ |
|
|
|
|
for (ChartAxisButton button : indexList_X) { |
|
|
|
|
button.setSelected(false); |
|
|
|
|
} |
|
|
|
|
for(ChartAxisButton button : indexList_Y){ |
|
|
|
|
for (ChartAxisButton button : indexList_Y) { |
|
|
|
|
button.setSelected(false); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void checkMoveOn(boolean moveOn) { |
|
|
|
|
for(ChartAxisButton button : indexList_X){ |
|
|
|
|
for (ChartAxisButton button : indexList_X) { |
|
|
|
|
button.isMoveOn = false; |
|
|
|
|
} |
|
|
|
|
for(ChartAxisButton button : indexList_Y){ |
|
|
|
|
for (ChartAxisButton button : indexList_Y) { |
|
|
|
|
button.isMoveOn = false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|