Browse Source

Merge branch 'release/9.0' of http://cloud.finedevelop.com:2015/scm/ba/design into release/9.0

master
daniel 7 years ago
parent
commit
561b95462c
  1. 33
      designer_base/src/com/fr/design/editor/ValueEditorPaneFactory.java
  2. 56
      designer_base/src/com/fr/design/hyperlink/AbstractHyperLinkPane.java
  3. 145
      designer_base/src/com/fr/design/hyperlink/AbstractHyperNorthPane.java
  4. 144
      designer_base/src/com/fr/design/hyperlink/AbstractHyperlinkPane.java
  5. 47
      designer_base/src/com/fr/design/hyperlink/ReporletHyperNorthPane.java
  6. 44
      designer_base/src/com/fr/design/hyperlink/ReportletHyperlinkPane.java
  7. 119
      designer_base/src/com/fr/design/hyperlink/WebHyperNorthPane.java
  8. 203
      designer_base/src/com/fr/design/hyperlink/WebHyperlinkPane.java
  9. 351
      designer_base/src/com/fr/design/javascript/JavaScriptImplPane.java
  10. 92
      designer_base/src/com/fr/design/javascript/ParameterJavaScriptPane.java
  11. 108
      designer_base/src/com/fr/design/module/DesignModule.java
  12. 180
      designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java
  13. 193
      designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperRelateCellLinkPane.java
  14. 209
      designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperRelateFloatLinkPane.java
  15. 57
      designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/FormHyperlinkPane.java
  16. 24
      designer_chart/src/com/fr/design/mainframe/chart/gui/other/ChartDesignerInteractivePane.java
  17. 540
      designer_chart/src/com/fr/design/mainframe/chart/gui/other/ChartInteractivePane.java
  18. 32
      designer_chart/src/com/fr/design/module/ChartHyperlinkGroup.java
  19. 4
      designer_chart/src/com/fr/design/module/FormHyperlinkGroup.java
  20. 12
      designer_chart/src/com/fr/plugin/chart/custom/component/VanChartHyperLinkPane.java
  21. 16
      designer_chart/src/com/fr/plugin/chart/designer/component/ChartUIMenuNameableCreator.java

33
designer_base/src/com/fr/design/editor/ValueEditorPaneFactory.java

@ -1,7 +1,6 @@
package com.fr.design.editor;
import com.fr.base.Formula;
import com.fr.base.chart.BasePlot;
import com.fr.design.editor.editor.BooleanEditor;
import com.fr.design.editor.editor.ColumnRowEditor;
import com.fr.design.editor.editor.ColumnRowGroupEditor;
@ -202,24 +201,24 @@ public class ValueEditorPaneFactory {
return createVallueEditorPaneWithUseType(paraUseType, null);
}
public static ValueEditorPane createVallueEditorPaneWithUseType(int paraUseType, BasePlot plot) {
public static ValueEditorPane createVallueEditorPaneWithUseType(int paraUseType, HashMap hyperLinkEditorMap) {
if (paraUseType == ParameterTableModel.NO_CHART_USE) {
return createBasicValueEditorPane();
} else if (paraUseType == ParameterTableModel.FORM_NORMAL_USE) {
return createFormEditorPane();
} else {
return createChartHotValueEditorPane(plot);
return createChartHotValueEditorPane(hyperLinkEditorMap);
}
}
/**
* 图表用的参数编辑器的ValueEditorPane
*
* @param plot plot类型
* @param hyperLinkEditorMap 超链下拉参数类型
* @return 值编辑器
*/
public static ValueEditorPane createChartHotValueEditorPane(BasePlot plot) {
return createValueEditorPane(chartHotEditors(plot), StringUtils.EMPTY, StringUtils.EMPTY);
public static ValueEditorPane createChartHotValueEditorPane(HashMap hyperLinkEditorMap) {
return createValueEditorPane(chartHotEditors(hyperLinkEditorMap), StringUtils.EMPTY, StringUtils.EMPTY);
}
/**
@ -253,7 +252,7 @@ public class ValueEditorPaneFactory {
new DateEditor(true, Inter.getLocText("FR-Designer_Date")),
new BooleanEditor(),
formulaEditor,
new WidgetNameEditor(Inter.getLocText("Widget"))
new WidgetNameEditor(Inter.getLocText("FR-Designer_Widget"))
};
}
@ -317,7 +316,7 @@ public class ValueEditorPaneFactory {
*/
public static Editor<?>[] URLEditors(String popupName, String textEditorValue) {
return new Editor[]{
new NoneEditor(textEditorValue, StringUtils.isEmpty(popupName) ? Inter.getLocText("None") : popupName),
new NoneEditor(textEditorValue, StringUtils.isEmpty(popupName) ? Inter.getLocText("FR-Designer_None") : popupName),
new TextEditor()
};
}
@ -331,7 +330,7 @@ public class ValueEditorPaneFactory {
*/
public static Editor<?>[] dateEditors(String popupName, String textEditorValue) {
return new Editor[]{
new NoneEditor(textEditorValue, StringUtils.isEmpty(popupName) ? Inter.getLocText("None") : popupName),
new NoneEditor(textEditorValue, StringUtils.isEmpty(popupName) ? Inter.getLocText("FR-Designer_None") : popupName),
new DateEditor(true, Inter.getLocText("FR-Designer_Date")),
new FormulaEditor(Inter.getLocText("FR-Designer_Parameter-Formula"))
};
@ -446,8 +445,8 @@ public class ValueEditorPaneFactory {
*
* @return 值编辑器
*/
public static Editor[] chartHotEditors(BasePlot plot) {
List<Editor> list = createEditors4Chart(plot);
public static Editor[] chartHotEditors(HashMap hyperLinkEditorMap) {
List<Editor> list = createEditors4Chart(hyperLinkEditorMap);
list.add(new TextEditor());
list.add(new IntegerEditor());
@ -467,14 +466,12 @@ public class ValueEditorPaneFactory {
*
* @return 值编辑器
*/
private static List<Editor> createEditors4Chart(BasePlot plot) {
private static List<Editor> createEditors4Chart(HashMap hyperLinkEditorMap) {
List<Editor> lists = new ArrayList<Editor>();
if (plot == null) {
if (hyperLinkEditorMap == null) {
return lists;
}
HashMap<String, Formula> map = plot.getHyperLinkEditorMap();
Iterator<Map.Entry<String, Formula>> entries = map.entrySet().iterator();
Iterator<Map.Entry<String, Formula>> entries = hyperLinkEditorMap.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<String, Formula> entry = entries.next();
ConstantsEditor editor = new ConstantsEditor(entry.getKey(), entry.getValue());
@ -496,12 +493,12 @@ public class ValueEditorPaneFactory {
JPanel paneLeft = FRGUIPaneFactory.createBorderLayout_S_Pane();
pane.add(paneLeft);
paneLeft.add(new UILabel(" " + Inter.getLocText("Actual_Value") + ":"), BorderLayout.NORTH);
paneLeft.add(new UILabel(" " + Inter.getLocText("FR-Designer_Actual_Value") + ":"), BorderLayout.NORTH);
paneLeft.add(keyColumnPane, BorderLayout.CENTER);
JPanel paneRight = FRGUIPaneFactory.createBorderLayout_S_Pane();
pane.add(paneRight);
paneRight.add(new UILabel(" " + Inter.getLocText("Display_Value") + ":"), BorderLayout.NORTH);
paneRight.add(new UILabel(" " + Inter.getLocText("FR-Designer_Display_Value") + ":"), BorderLayout.NORTH);
paneRight.add(valueDictPane, BorderLayout.CENTER);

56
designer_base/src/com/fr/design/hyperlink/AbstractHyperLinkPane.java

@ -0,0 +1,56 @@
package com.fr.design.hyperlink;
import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.editor.ValueEditorPane;
import com.fr.design.editor.ValueEditorPaneFactory;
import com.fr.design.gui.frpane.ReportletParameterViewPane;
import com.fr.design.gui.itableeditorpane.ParameterTableModel;
import com.fr.js.JavaScript;
import java.util.HashMap;
/**
* Created by mengao on 2017/10/12.
*/
public abstract class AbstractHyperLinkPane<T> extends FurtherBasicBeanPane<T> {
private HashMap hyperLinkEditorMap;
private boolean needRenamePane = false;
protected ReportletParameterViewPane parameterViewPane;
public AbstractHyperLinkPane(HashMap hyperLinkEditorMap, boolean needRenamePane) {
this.hyperLinkEditorMap = hyperLinkEditorMap;
this.needRenamePane = needRenamePane;
}
public AbstractHyperLinkPane() {
}
public ReportletParameterViewPane getParameterViewPane() {
return parameterViewPane;
}
public void setParameterViewPane(ReportletParameterViewPane parameterViewPane) {
this.parameterViewPane = parameterViewPane;
}
public boolean accept(Object ob) {
return ob instanceof JavaScript;
}
public void reset() {
}
protected int getChartParaType() {
return hyperLinkEditorMap != null ? ParameterTableModel.CHART_NORMAL_USE : ParameterTableModel.NO_CHART_USE;
}
protected ValueEditorPane getValueEditorPane() {
return ValueEditorPaneFactory.createVallueEditorPaneWithUseType(getChartParaType(), hyperLinkEditorMap);
}
protected boolean needRenamePane() {
return needRenamePane;
}
}

145
designer_base/src/com/fr/design/hyperlink/AbstractHyperNorthPane.java

@ -0,0 +1,145 @@
package com.fr.design.hyperlink;
import com.fr.base.Utils;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextfield.UINumberField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.general.Inter;
import com.fr.js.Hyperlink;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public abstract class AbstractHyperNorthPane<T extends Hyperlink> extends BasicBeanPane<T> {
public static final int NEW_WINDOW = 0;
public static final int DIALOG = 1;
public static final int SELF = 2;
public static final int DEFAULT_H_VALUE = 400;
public static final int DEFAULT_V_VALUE = 600;
private JPanel headerPane;
private UIComboBox targetFrameComboBox;
private UINumberField heightTextFiled;
private UINumberField widthTextFiled;
public AbstractHyperNorthPane() {
this.initComponents();
}
protected void initComponents() {
this.setLayout(FRGUIPaneFactory.createM_BorderLayout());
JPanel centerPane = FRGUIPaneFactory.createBorderLayout_L_Pane();
headerPane = this.setHeaderPanel();
this.add(headerPane, BorderLayout.NORTH);
this.add(centerPane, BorderLayout.CENTER);
targetFrameComboBox = new UIComboBox(getTargetFrames());
targetFrameComboBox.setRenderer(new DefaultListCellRenderer() {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
return this;
}
});
JPanel targetFramePanel = new JPanel();
targetFramePanel.add(new UILabel(Inter.getLocText("Hyperlink-Link_Opened_in")));
targetFramePanel.add(targetFrameComboBox);
targetFrameComboBox.setEditable(true);
targetFrameComboBox.setPreferredSize(new Dimension(100, 20));
final JPanel newWindowConfPane = new JPanel();
newWindowConfPane.add(new UILabel(Inter.getLocText("FR-Designer_Height") + ": "));
heightTextFiled = new UINumberField();
heightTextFiled.setText(String.valueOf(DEFAULT_H_VALUE));
heightTextFiled.setPreferredSize(new Dimension(40, 20));
newWindowConfPane.add(heightTextFiled);
newWindowConfPane.add(new UILabel(" " + Inter.getLocText("FR-Designer_Width") + ": "));
widthTextFiled = new UINumberField();
widthTextFiled.setText(String.valueOf(DEFAULT_V_VALUE));
widthTextFiled.setPreferredSize(new Dimension(40, 20));
newWindowConfPane.add(widthTextFiled);
JPanel centerPanel = new JPanel(new BorderLayout());
centerPanel.add(targetFramePanel, BorderLayout.WEST);
centerPanel.add(newWindowConfPane, BorderLayout.EAST);
newWindowConfPane.setVisible(false);
centerPane.add(centerPanel);
targetFrameComboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
newWindowConfPane.setVisible(DIALOG == targetFrameComboBox.getSelectedIndex());
}
});
this.add(this.setFootPanel(), BorderLayout.SOUTH);
}
protected String[] getTargetFrames() {
return new String[]{Inter.getLocText("Hyperlink-New_Window"), Inter.getLocText("FR-Hyperlink_Dialog"), Inter.getLocText("Hyperlink-Self_Window")};
}
protected abstract JPanel setHeaderPanel();
protected abstract JPanel setFootPanel();
protected abstract void populateSubHyperlinkBean(T link);
public UIComboBox getTargetFrameComboBox() {
return targetFrameComboBox;
}
public void setTargetFrameComboBox(UIComboBox targetFrameComboBox) {
this.targetFrameComboBox = targetFrameComboBox;
}
public UINumberField getHeightTextFiled() {
return heightTextFiled;
}
public void setHeightTextFiled(UINumberField heightTextFiled) {
this.heightTextFiled = heightTextFiled;
}
public UINumberField getWidthTextFiled() {
return widthTextFiled;
}
public void setWidthTextFiled(UINumberField widthTextFiled) {
this.widthTextFiled = widthTextFiled;
}
@Override
public void populateBean(T link) {
String name = link.getTargetFrame();
targetFrameComboBox.setSelectedIndex(HyperlinkTargetFrame.convert(name));
heightTextFiled.setText(String.valueOf(link.getHeight() == 0 ? DEFAULT_H_VALUE : link.getHeight()));
widthTextFiled.setText(String.valueOf(link.getWidth() == 0 ? DEFAULT_V_VALUE : link.getWidth()));
populateSubHyperlinkBean(link);
}
protected abstract T updateSubHyperlinkBean();
protected abstract void updateSubHyperlinkBean(T t);
@Override
public T updateBean() {
T link = updateSubHyperlinkBean();
updateBean(link);
return link;
}
public void updateBean(T link) {
updateSubHyperlinkBean(link);
link.setTargetFrame(HyperlinkTargetFrame.parse(targetFrameComboBox.getSelectedIndex()).getName());
link.setHeight(Utils.objectToNumber(heightTextFiled.getText(), false).intValue());
link.setWidth(Utils.objectToNumber(widthTextFiled.getText(), false).intValue());
}
}

144
designer_base/src/com/fr/design/hyperlink/AbstractHyperlinkPane.java

@ -1,144 +0,0 @@
package com.fr.design.hyperlink;
import com.fr.base.Utils;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextfield.UINumberField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.general.Inter;
import com.fr.js.Hyperlink;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public abstract class AbstractHyperlinkPane<T extends Hyperlink> extends BasicBeanPane<T> {
public static final int NEW_WINDOW = 0;
public static final int DIALOG = 1;
public static final int SELF = 2;
public static final int DEFAULT_H_VALUE = 400;
public static final int DEFAULT_V_VALUE = 600;
private JPanel headerPane;
private UIComboBox targetFrameComboBox;
private UINumberField heightTextFiled;
private UINumberField widthTextFiled;
public AbstractHyperlinkPane() {
this.initComponents();
}
protected void initComponents() {
this.setLayout(FRGUIPaneFactory.createM_BorderLayout());
JPanel centerPane = FRGUIPaneFactory.createBorderLayout_L_Pane();
headerPane = this.setHeaderPanel();
this.add(headerPane, BorderLayout.NORTH);
this.add(centerPane, BorderLayout.CENTER);
targetFrameComboBox = new UIComboBox(getTargetFrames());
targetFrameComboBox.setRenderer(new DefaultListCellRenderer() {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
return this;
}
});
JPanel targetFramePanel = new JPanel();
targetFramePanel.add(new UILabel(Inter.getLocText("Hyperlink-Link_Opened_in")));
targetFramePanel.add(targetFrameComboBox);
targetFrameComboBox.setEditable(true);
targetFrameComboBox.setPreferredSize(new Dimension(100, 20));
final JPanel newWindowConfPane = new JPanel();
newWindowConfPane.add(new UILabel(Inter.getLocText("FR-Designer_Height") + ": "));
heightTextFiled = new UINumberField();
heightTextFiled.setText(String.valueOf(DEFAULT_H_VALUE));
heightTextFiled.setPreferredSize(new Dimension(40, 20));
newWindowConfPane.add(heightTextFiled);
newWindowConfPane.add(new UILabel(" " + Inter.getLocText("FR-Designer_Width") + ": "));
widthTextFiled = new UINumberField();
widthTextFiled.setText(String.valueOf(DEFAULT_V_VALUE));
widthTextFiled.setPreferredSize(new Dimension(40, 20));
newWindowConfPane.add(widthTextFiled);
JPanel centerPanel = new JPanel(new BorderLayout());
centerPanel.add(targetFramePanel, BorderLayout.WEST);
centerPanel.add(newWindowConfPane, BorderLayout.EAST);
newWindowConfPane.setVisible(false);
centerPane.add(centerPanel);
targetFrameComboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
newWindowConfPane.setVisible(DIALOG == targetFrameComboBox.getSelectedIndex());
}
});
this.add(this.setFootPanel(), BorderLayout.SOUTH);
}
protected String[] getTargetFrames(){
return new String[]{Inter.getLocText("Hyperlink-New_Window"), Inter.getLocText("FR-Hyperlink_Dialog"), Inter.getLocText("Hyperlink-Self_Window")};
}
protected abstract JPanel setHeaderPanel();
protected abstract JPanel setFootPanel();
protected abstract void populateSubHyperlinkBean(T link);
public UIComboBox getTargetFrameComboBox() {
return targetFrameComboBox;
}
public void setTargetFrameComboBox(UIComboBox targetFrameComboBox) {
this.targetFrameComboBox = targetFrameComboBox;
}
public UINumberField getHeightTextFiled() {
return heightTextFiled;
}
public void setHeightTextFiled(UINumberField heightTextFiled) {
this.heightTextFiled = heightTextFiled;
}
public UINumberField getWidthTextFiled() {
return widthTextFiled;
}
public void setWidthTextFiled(UINumberField widthTextFiled) {
this.widthTextFiled = widthTextFiled;
}
@Override
public void populateBean(T link) {
String name = link.getTargetFrame();
targetFrameComboBox.setSelectedIndex(HyperlinkTargetFrame.convert(name));
heightTextFiled.setText(String.valueOf(link.getHeight() == 0 ? DEFAULT_H_VALUE : link.getHeight()));
widthTextFiled.setText(String.valueOf(link.getWidth() == 0 ? DEFAULT_V_VALUE : link.getWidth()));
populateSubHyperlinkBean(link);
}
protected abstract T updateSubHyperlinkBean();
protected abstract void updateSubHyperlinkBean(T t);
@Override
public T updateBean() {
T link = updateSubHyperlinkBean();
updateBean(link);
return link;
}
public void updateBean(T link) {
updateSubHyperlinkBean(link);
link.setTargetFrame(HyperlinkTargetFrame.parse(targetFrameComboBox.getSelectedIndex()).getName());
link.setHeight(Utils.objectToNumber(heightTextFiled.getText(), false).intValue());
link.setWidth(Utils.objectToNumber(widthTextFiled.getText(), false).intValue());
}
}

47
designer_base/src/com/fr/design/hyperlink/ReporletHyperNorthPane.java

@ -1,38 +1,33 @@
package com.fr.design.hyperlink;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.SwingUtilities;
import com.fr.design.actions.UpdateAction;
import com.fr.design.gui.itree.filetree.ReportletPane;
import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.gui.itree.filetree.ReportletPane;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
import com.fr.js.ReportletHyperlink;
import com.fr.stable.StringUtils;
import com.fr.design.utils.gui.GUICoreUtils;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* 热点链接部分 上方 定义特征 样式 报表 等属性的界面.
*
* @author kunsnat
*/
public class ReporletHyperNorthPane extends AbstractHyperlinkPane<ReportletHyperlink> {
public class ReporletHyperNorthPane extends AbstractHyperNorthPane<ReportletHyperlink> {
private UITextField itemNameTextField;
private boolean needRenamePane = false;
private UITextField reportPathTextField;
@ -70,7 +65,7 @@ public class ReporletHyperNorthPane extends AbstractHyperlinkPane<ReportletHyper
reportPathTextField = new UITextField(20);
reportletNamePane.add(reportPathTextField, BorderLayout.CENTER);
browserButton = new UIButton(Inter.getLocText("Select"));
browserButton = new UIButton(Inter.getLocText("FR-Designer_Select"));
browserButton.setPreferredSize(new Dimension(browserButton.getPreferredSize().width, 20));
reportletNamePane.add(browserButton, BorderLayout.EAST);
browserButton.addActionListener(new ActionListener() {
@ -89,15 +84,15 @@ public class ReporletHyperNorthPane extends AbstractHyperlinkPane<ReportletHyper
});
Component[][] components;
if(!this.needRenamePane){
if (!this.needRenamePane) {
components = new Component[][]{
{new UILabel(" " + Inter.getLocText("Reportlet") + ":"), reportletNamePane},
{new UILabel(" " + Inter.getLocText("FR-Hyperlink_Reportlet") + ":"), reportletNamePane},
};
}else{
} else {
itemNameTextField = new UITextField();
components = new Component[][]{
{new UILabel(" " + Inter.getLocText("Name") + ":"), itemNameTextField},
{new UILabel(" " + Inter.getLocText("Reportlet") + ":"), reportletNamePane},
{new UILabel(" " + Inter.getLocText("FR-Designer-Hyperlink_Name") + ":"), itemNameTextField},
{new UILabel(" " + Inter.getLocText("FR-Hyperlink_Reportlet") + ":"), reportletNamePane},
};
}
JPanel northPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
@ -112,7 +107,7 @@ public class ReporletHyperNorthPane extends AbstractHyperlinkPane<ReportletHyper
@Override
protected void populateSubHyperlinkBean(ReportletHyperlink link) {
if(itemNameTextField != null){
if (itemNameTextField != null) {
this.itemNameTextField.setText(link.getItemName());
}
this.reportPathTextField.setText(link.getReportletPath());
@ -130,7 +125,7 @@ public class ReporletHyperNorthPane extends AbstractHyperlinkPane<ReportletHyper
@Override
protected void updateSubHyperlinkBean(ReportletHyperlink reportletHyperlink) {
if(itemNameTextField != null){
if (itemNameTextField != null) {
reportletHyperlink.setItemName(this.itemNameTextField.getText());
}
reportletHyperlink.setReportletPath(this.reportPathTextField.getText());
@ -139,7 +134,7 @@ public class ReporletHyperNorthPane extends AbstractHyperlinkPane<ReportletHyper
}
public String getReportletName() {
return StringUtils.isBlank(this.reportPathTextField.getText()) ? "" : this.reportPathTextField.getText().substring(1);
return StringUtils.isBlank(this.reportPathTextField.getText()) ? StringUtils.EMPTY : this.reportPathTextField.getText().substring(1);
}
/**
@ -160,7 +155,7 @@ public class ReporletHyperNorthPane extends AbstractHyperlinkPane<ReportletHyper
}
public void actionPerformed(ActionEvent e) {
//do nothing
}
}

44
designer_base/src/com/fr/design/hyperlink/ReportletHyperlinkPane.java

@ -2,10 +2,6 @@ package com.fr.design.hyperlink;
import com.fr.base.BaseUtils;
import com.fr.base.Parameter;
import com.fr.base.chart.BasePlot;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.editor.ValueEditorPane;
import com.fr.design.editor.ValueEditorPaneFactory;
import com.fr.design.gui.frpane.ReportletParameterViewPane;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.itableeditorpane.ParameterTableModel;
@ -22,21 +18,15 @@ import com.fr.stable.StringUtils;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.util.HashMap;
import java.util.List;
public class ReportletHyperlinkPane extends BasicBeanPane<ReportletHyperlink> {
private BasePlot plot;
public class ReportletHyperlinkPane extends AbstractHyperLinkPane<ReportletHyperlink> {
private ReporletHyperNorthPane northPane;
private ReportletParameterViewPane parameterViewPane = null;
private UICheckBox extendParametersCheckBox;
protected BasePlot getPlot() {
return plot;
}
public ReportletHyperlinkPane(BasePlot plot) {
super();
this.plot = plot;
public ReportletHyperlinkPane(HashMap hyperLinkEditorMap, boolean needRenamePane) {
super(hyperLinkEditorMap, needRenamePane);
this.initComponents();
}
@ -62,22 +52,10 @@ public class ReportletHyperlinkPane extends BasicBeanPane<ReportletHyperlink> {
}
@Override
protected String title4PopupWindow() {
public String title4PopupWindow() {
return Inter.getLocText("FR-Hyperlink_Reportlet");
}
protected int getChartParaType() {
return plot != null ? ParameterTableModel.CHART_NORMAL_USE : ParameterTableModel.NO_CHART_USE;
}
protected ValueEditorPane getValueEditorPane() {
return ValueEditorPaneFactory.createVallueEditorPaneWithUseType(getChartParaType(), plot);
}
protected boolean needRenamePane(){
return plot != null && plot.isNeedRenameHyperLinkPane();
}
@Override
public void populateBean(ReportletHyperlink ob) {
northPane.populateBean(ob);
@ -146,11 +124,11 @@ public class ReportletHyperlinkPane extends BasicBeanPane<ReportletHyperlink> {
@Override
public void checkEnabled() {
//do nothing
}
}
public static class CHART_NO_RENAME extends ReportletHyperlinkPane {
public static class ChartNoRename extends ReportletHyperlinkPane {
protected int getChartParaType() {
return ParameterTableModel.CHART_NORMAL_USE;
}
@ -168,14 +146,6 @@ public class ReportletHyperlinkPane extends BasicBeanPane<ReportletHyperlink> {
this.northPane = northPane;
}
public ReportletParameterViewPane getParameterViewPane() {
return parameterViewPane;
}
public void setParameterViewPane(ReportletParameterViewPane parameterViewPane) {
this.parameterViewPane = parameterViewPane;
}
public UICheckBox getExtendParametersCheckBox() {
return extendParametersCheckBox;
}

119
designer_base/src/com/fr/design/hyperlink/WebHyperNorthPane.java

@ -2,7 +2,6 @@ package com.fr.design.hyperlink;
import com.fr.base.ConfigManager;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.utils.gui.GUICoreUtils;
@ -16,35 +15,35 @@ import java.awt.*;
/**
* chart 网页链接 定义属性 target url 特征的 界面
*
*
* @author kunsnat
*/
public class WebHyperNorthPane extends AbstractHyperlinkPane<WebHyperlink> {
public class WebHyperNorthPane extends AbstractHyperNorthPane<WebHyperlink> {
private UITextField itemNameTextField;
private boolean needRenamePane = false;
private UITextField urlTextField;
private UITextField urlTextField;
public WebHyperNorthPane(boolean needRenamePane){
public WebHyperNorthPane(boolean needRenamePane) {
this.needRenamePane = needRenamePane;
this.inits();
}
public WebHyperNorthPane() {
this.inits();
}
public WebHyperNorthPane() {
this.inits();
}
/**
* 初始化
*
* @date 2014-4-11
*/
public void inits() {
super.initComponents();
}
/**
* 初始化
*
* @date 2014-4-11
*/
public void inits() {
super.initComponents();
}
@Override
protected JPanel setHeaderPanel() {
JPanel headerPane = FRGUIPaneFactory.createBorderLayout_L_Pane();
@Override
protected JPanel setHeaderPanel() {
JPanel headerPane = FRGUIPaneFactory.createBorderLayout_L_Pane();
JPanel urlPane = FRGUIPaneFactory.createX_AXISBoxInnerContainer_S_Pane();
urlTextField = new UITextField(24);
@ -56,57 +55,57 @@ public class WebHyperNorthPane extends AbstractHyperlinkPane<WebHyperlink> {
urlWithHelp.add(GUICoreUtils.createNamedPane(urlPane, "URL:"));
//urlWithHelp.add(label);
if(this.needRenamePane){
headerPane.setLayout(new BorderLayout(LayoutConstants.VGAP_LARGE,LayoutConstants.VGAP_SMALL));
if (this.needRenamePane) {
headerPane.setLayout(new BorderLayout(LayoutConstants.VGAP_LARGE, LayoutConstants.VGAP_SMALL));
itemNameTextField = new UITextField();
headerPane.add(GUICoreUtils.createNamedPane(itemNameTextField, Inter.getLocText("FR-Designer_Name") + ":"), BorderLayout.NORTH);
headerPane.add(urlWithHelp, BorderLayout.CENTER);
}else{
} else {
headerPane.add(urlWithHelp, BorderLayout.NORTH);
}
return headerPane;
}
public String getURL() {
return this.urlTextField.getText();
}
@Override
protected String title4PopupWindow() {
return "web";
}
@Override
protected void populateSubHyperlinkBean(WebHyperlink link) {
String url = link.getURL();
if (StringUtils.isBlank(url)) {
url = ConfigManager.getProviderInstance().getHyperlinkAddress();
}
this.urlTextField.setText(url);
if(itemNameTextField != null){
return headerPane;
}
public String getURL() {
return this.urlTextField.getText();
}
@Override
protected String title4PopupWindow() {
return "web";
}
@Override
protected void populateSubHyperlinkBean(WebHyperlink link) {
String url = link.getURL();
if (StringUtils.isBlank(url)) {
url = ConfigManager.getProviderInstance().getHyperlinkAddress();
}
this.urlTextField.setText(url);
if (itemNameTextField != null) {
this.itemNameTextField.setText(link.getItemName());
}
}
@Override
protected WebHyperlink updateSubHyperlinkBean() {
WebHyperlink webHyperlink = new WebHyperlink();
updateSubHyperlinkBean(webHyperlink);
return webHyperlink;
}
protected void updateSubHyperlinkBean(WebHyperlink webHyperlink) {
webHyperlink.setURL(this.urlTextField.getText());
if(itemNameTextField != null){
}
@Override
protected WebHyperlink updateSubHyperlinkBean() {
WebHyperlink webHyperlink = new WebHyperlink();
updateSubHyperlinkBean(webHyperlink);
return webHyperlink;
}
protected void updateSubHyperlinkBean(WebHyperlink webHyperlink) {
webHyperlink.setURL(this.urlTextField.getText());
if (itemNameTextField != null) {
webHyperlink.setItemName(this.itemNameTextField.getText());
}
}
}
@Override
protected JPanel setFootPanel() {
return new JPanel();
}
@Override
protected JPanel setFootPanel() {
return new JPanel();
}
}

203
designer_base/src/com/fr/design/hyperlink/WebHyperlinkPane.java

@ -1,10 +1,6 @@
package com.fr.design.hyperlink;
import com.fr.base.Parameter;
import com.fr.base.chart.BasePlot;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.editor.ValueEditorPane;
import com.fr.design.editor.ValueEditorPaneFactory;
import com.fr.design.gui.frpane.ReportletParameterViewPane;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.itableeditorpane.ParameterTableModel;
@ -16,142 +12,117 @@ import com.fr.stable.ParameterProvider;
import javax.swing.*;
import java.awt.*;
import java.util.HashMap;
import java.util.List;
public class WebHyperlinkPane extends BasicBeanPane<WebHyperlink> {
private BasePlot plot;
private WebHyperNorthPane northPane;
private ReportletParameterViewPane parameterViewPane;
public class WebHyperlinkPane extends AbstractHyperLinkPane<WebHyperlink> {
private static final int BORDER_WIDTH = 4;
private WebHyperNorthPane northPane;
private UICheckBox useCJKCheckBox;
private UICheckBox extendParametersCheckBox;
protected BasePlot getPlot() {
return plot;
}
public WebHyperlinkPane() {
super();
this.initComponents();
}
public WebHyperlinkPane(BasePlot plot) {
super();
this.plot = plot;
this.initComponents();
}
protected void initComponents() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
northPane = new WebHyperNorthPane(needRenamePane());
this.add(northPane, BorderLayout.NORTH);
parameterViewPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane());
this.add(parameterViewPane, BorderLayout.CENTER);
parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText("FR-Designer_Parameters"), null));
useCJKCheckBox = new UICheckBox(Inter.getLocText("Hyperlink-Use_CJK_to_encode_parameter"));
public WebHyperlinkPane() {
super();
this.initComponents();
}
public WebHyperlinkPane(HashMap hyperLinkEditorMap, boolean needRenamePane) {
super(hyperLinkEditorMap, needRenamePane);
this.initComponents();
}
protected void initComponents() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.setBorder(BorderFactory.createEmptyBorder(BORDER_WIDTH, BORDER_WIDTH, BORDER_WIDTH, BORDER_WIDTH));
northPane = new WebHyperNorthPane(needRenamePane());
this.add(northPane, BorderLayout.NORTH);
parameterViewPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane());
this.add(parameterViewPane, BorderLayout.CENTER);
parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText("FR-Designer_Parameters"), null));
useCJKCheckBox = new UICheckBox(Inter.getLocText("Hyperlink-Use_CJK_to_encode_parameter"));
extendParametersCheckBox = new UICheckBox(Inter.getLocText("Hyperlink-Extends_Report_Parameters"));
this.add(GUICoreUtils.createFlowPane(new Component[] {useCJKCheckBox, extendParametersCheckBox}, FlowLayout.LEFT), BorderLayout.SOUTH);
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText("Hyperlink-Web_link");
}
protected int getChartParaType() {
return plot != null ? ParameterTableModel.CHART_NORMAL_USE : ParameterTableModel.NO_CHART_USE;
}
protected ValueEditorPane getValueEditorPane() {
return ValueEditorPaneFactory.createVallueEditorPaneWithUseType(getChartParaType(), plot);
}
protected boolean needRenamePane(){
return plot != null && plot.isNeedRenameHyperLinkPane();
this.add(GUICoreUtils.createFlowPane(new Component[]{useCJKCheckBox, extendParametersCheckBox}, FlowLayout.LEFT), BorderLayout.SOUTH);
}
@Override
public void populateBean(WebHyperlink ob) {
northPane.populateBean(ob);
//parameter
List<ParameterProvider> parameterList = this.parameterViewPane.update();
parameterList.clear();
ParameterProvider[] parameters = ob.getParameters();
parameterViewPane.populate(parameters);
useCJKCheckBox.setSelected(ob.isUseCJK());
extendParametersCheckBox.setSelected(ob.isExtendParameters());
}
public String title4PopupWindow() {
return Inter.getLocText("Hyperlink-Web_link");
}
@Override
public WebHyperlink updateBean() {
WebHyperlink webHyperlink = new WebHyperlink();
updateBean(webHyperlink);
return webHyperlink;
}
public void populateBean(WebHyperlink ob) {
northPane.populateBean(ob);
//parameter
List<ParameterProvider> parameterList = this.parameterViewPane.update();
parameterList.clear();
ParameterProvider[] parameters = ob.getParameters();
parameterViewPane.populate(parameters);
useCJKCheckBox.setSelected(ob.isUseCJK());
extendParametersCheckBox.setSelected(ob.isExtendParameters());
}
@Override
public WebHyperlink updateBean() {
WebHyperlink webHyperlink = new WebHyperlink();
updateBean(webHyperlink);
return webHyperlink;
}
public void updateBean(WebHyperlink webHyperlink) {
northPane.updateBean(webHyperlink);
//Parameter.
List<ParameterProvider> parameterList = this.parameterViewPane.update();
if (!parameterList.isEmpty()) {
Parameter[] parameters = new Parameter[parameterList.size()];
parameterList.toArray(parameters);
webHyperlink.setParameters(parameters);
} else {
webHyperlink.setParameters(null);
}
webHyperlink.setUseCJK(this.useCJKCheckBox.isSelected());
webHyperlink.setExtendParameters(this.extendParametersCheckBox.isSelected());
northPane.updateBean(webHyperlink);
//Parameter.
List<ParameterProvider> parameterList = this.parameterViewPane.update();
if (!parameterList.isEmpty()) {
Parameter[] parameters = new Parameter[parameterList.size()];
parameterList.toArray(parameters);
webHyperlink.setParameters(parameters);
} else {
webHyperlink.setParameters(null);
}
webHyperlink.setUseCJK(this.useCJKCheckBox.isSelected());
webHyperlink.setExtendParameters(this.extendParametersCheckBox.isSelected());
}
public static class CHART_NO_RENAME extends WebHyperlinkPane{
protected boolean needRenamePane(){
public static class ChartNoRename extends WebHyperlinkPane {
protected boolean needRenamePane() {
return false;
}
protected int getChartParaType() {
return ParameterTableModel.CHART_NORMAL_USE;
}
}
public WebHyperNorthPane getNorthPane() {
return northPane;
}
public void setNorthPane(WebHyperNorthPane northPane) {
this.northPane = northPane;
}
public ReportletParameterViewPane getParameterViewPane() {
return parameterViewPane;
}
public WebHyperNorthPane getNorthPane() {
return northPane;
}
public void setParameterViewPane(ReportletParameterViewPane parameterViewPane) {
this.parameterViewPane = parameterViewPane;
}
public void setNorthPane(WebHyperNorthPane northPane) {
this.northPane = northPane;
}
public UICheckBox getUseCJKCheckBox() {
return useCJKCheckBox;
}
public UICheckBox getUseCJKCheckBox() {
return useCJKCheckBox;
}
public void setUseCJKCheckBox(UICheckBox useCJKCheckBox) {
this.useCJKCheckBox = useCJKCheckBox;
}
public void setUseCJKCheckBox(UICheckBox useCJKCheckBox) {
this.useCJKCheckBox = useCJKCheckBox;
}
public UICheckBox getExtendParametersCheckBox() {
return extendParametersCheckBox;
}
public UICheckBox getExtendParametersCheckBox() {
return extendParametersCheckBox;
}
public void setExtendParametersCheckBox(UICheckBox extendParametersCheckBox) {
this.extendParametersCheckBox = extendParametersCheckBox;
}
public void setExtendParametersCheckBox(UICheckBox extendParametersCheckBox) {
this.extendParametersCheckBox = extendParametersCheckBox;
}
}

351
designer_base/src/com/fr/design/javascript/JavaScriptImplPane.java

@ -1,16 +1,13 @@
package com.fr.design.javascript;
import com.fr.base.Parameter;
import com.fr.base.chart.BasePlot;
import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.data.tabledata.tabledatapane.OneListTableModel;
import com.fr.design.editor.ValueEditorPane;
import com.fr.design.editor.ValueEditorPaneFactory;
import com.fr.design.gui.frpane.ReportletParameterViewPane;
import com.fr.design.gui.itableeditorpane.ParameterTableModel;
import com.fr.design.gui.itableeditorpane.UITableEditAction;
import com.fr.design.gui.itableeditorpane.UITableEditorPane;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.hyperlink.AbstractHyperLinkPane;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.scrollruler.ModLineBorder;
import com.fr.design.utils.gui.GUICoreUtils;
@ -23,222 +20,212 @@ import javax.swing.*;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import java.awt.*;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
public class JavaScriptImplPane extends FurtherBasicBeanPane<JavaScriptImpl> {
private BasePlot plot;
public class JavaScriptImplPane extends AbstractHyperLinkPane<JavaScriptImpl> {
private static final int BOTTOM_BORDER = 12;
private UITextField itemNameTextField;
private JSContentPane jsPane;
private UITableEditorPane<String> importedJsPane;
private ReportletParameterViewPane parameterPane;
private String[] defaultArgs;
protected BasePlot getPlot() {
return plot;
}
public JavaScriptImplPane() {
this(new String[0]);
}
public JavaScriptImplPane(BasePlot plot) {
this.plot = plot;
this.defaultArgs = new String[0];
initComponents();
}
public JavaScriptImplPane(String[] args) {
this.defaultArgs = args;
initComponents();
}
protected void initComponents() {
parameterPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane());
parameterPane.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), Inter.getLocText("FR-Designer_Parameter")));
parameterPane.addTableEditorListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
List<ParameterProvider> list = parameterPane.update();
HashSet tempSet = new HashSet();
for (int i = 0; i < list.size(); i++) {
if (StringUtils.isEmpty(list.get(i).getName())) {
continue;
}
if (tempSet.contains(list.get(i).toString())) {
list.remove(i);
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"Repeat", "Parameter_Name"}) + "!");
parameterChanger(list);
return;
}
tempSet.add(list.get(i).toString());
}
parameterChanger(list);
}
});
OneListTableModel<String> model = new OneListTableModel<String>(Inter.getLocText("ReportServerP-Import_JavaScript"), this) {
public UITableEditAction[] createAction() {
return new UITableEditAction[] { getAddAction(),new DeleteAction(this.component), new MoveUpAction(), new MoveDownAction() };
}
@Override
public UITableEditAction getAddAction() {
return new AddJsAction();
}
};
importedJsPane = new UITableEditorPane<String>(model);
importedJsPane.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), Inter.getLocText("ReportServerP-Import_JavaScript")));
importedJsPane.setPreferredSize(new Dimension(265, 150));
jsPane = new JSContentPane(defaultArgs);
jsPane.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), Inter.getLocText("FR-Designer_JavaScript")));
parameterPane.setPreferredSize(new Dimension(265, 150));
JPanel topPane = GUICoreUtils.createBorderLayoutPane(
importedJsPane, BorderLayout.CENTER,
parameterPane, BorderLayout.EAST
);
topPane.setPreferredSize(new Dimension(300, 150));
topPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 12, 0));
this.setLayout(new BorderLayout());
this.add(topPane,BorderLayout.NORTH) ;
this.add(jsPane,BorderLayout.CENTER);
this.reLayoutForChart();
}
protected int getChartParaType() {
return plot != null ? ParameterTableModel.CHART_NORMAL_USE : ParameterTableModel.NO_CHART_USE;
}
protected ValueEditorPane getValueEditorPane() {
return ValueEditorPaneFactory.createVallueEditorPaneWithUseType(getChartParaType(), plot);
}
protected boolean needRenamePane(){
return plot != null && plot.isNeedRenameHyperLinkPane();
}
/**
*参数改变
* @param list 参数列表.
*/
public void parameterChanger(List<ParameterProvider> list) {
String[] name = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
if (list.get(i) instanceof Parameter) {
name[i] = list.get(i).getName();
}
}
jsPane.setFunctionTitle(name, defaultArgs);
}
/**
* title for popup window 弹出界面标题
* @return 标题.
*/
public String title4PopupWindow() {
return Inter.getLocText("FR-Designer_JavaScript");
}
private JSContentPane jsPane;
private UITableEditorPane<String> importedJsPane;
private ReportletParameterViewPane parameterPane;
private String[] defaultArgs;
public JavaScriptImplPane() {
this(new String[0]);
}
public JavaScriptImplPane(HashMap hyperLinkEditorMap, boolean needRenamePane) {
super(hyperLinkEditorMap, needRenamePane);
this.defaultArgs = new String[0];
initComponents();
}
public JavaScriptImplPane(String[] args) {
this.defaultArgs = args;
initComponents();
}
protected void initComponents() {
parameterPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane());
parameterPane.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), Inter.getLocText("FR-Designer_Parameter")));
parameterPane.addTableEditorListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
List<ParameterProvider> list = parameterPane.update();
HashSet tempSet = new HashSet();
for (int i = 0; i < list.size(); i++) {
if (StringUtils.isEmpty(list.get(i).getName())) {
continue;
}
if (tempSet.contains(list.get(i).toString())) {
list.remove(i);
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"Repeat", "Parameter_Name"}) + "!");
parameterChanger(list);
return;
}
tempSet.add(list.get(i).toString());
}
parameterChanger(list);
}
});
OneListTableModel<String> model = new OneListTableModel<String>(Inter.getLocText("ReportServerP-Import_JavaScript"), this) {
public UITableEditAction[] createAction() {
return new UITableEditAction[]{getAddAction(), new DeleteAction(this.component), new MoveUpAction(), new MoveDownAction()};
}
@Override
public UITableEditAction getAddAction() {
return new AddJsAction();
}
};
importedJsPane = new UITableEditorPane<String>(model);
importedJsPane.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), Inter.getLocText("ReportServerP-Import_JavaScript")));
importedJsPane.setPreferredSize(new Dimension(265, 150));
jsPane = new JSContentPane(defaultArgs);
jsPane.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), Inter.getLocText("FR-Designer_JavaScript")));
parameterPane.setPreferredSize(new Dimension(265, 150));
JPanel topPane = GUICoreUtils.createBorderLayoutPane(
importedJsPane, BorderLayout.CENTER,
parameterPane, BorderLayout.EAST
);
topPane.setPreferredSize(new Dimension(300, 150));
topPane.setBorder(BorderFactory.createEmptyBorder(0, 0, BOTTOM_BORDER, 0));
this.setLayout(new BorderLayout());
this.add(topPane, BorderLayout.NORTH);
this.add(jsPane, BorderLayout.CENTER);
this.reLayoutForChart();
}
/**
* 参数改变
*
* @param list 参数列表.
*/
public void parameterChanger(List<ParameterProvider> list) {
String[] name = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
if (list.get(i) instanceof Parameter) {
name[i] = list.get(i).getName();
}
}
jsPane.setFunctionTitle(name, defaultArgs);
}
/**
* title for popup window 弹出界面标题
*
* @return 标题.
*/
public String title4PopupWindow() {
return Inter.getLocText("FR-Designer_JavaScript");
}
/**
* 重置
*/
public void reset() {
populateBean(null);
}
public void populateBean(JavaScriptImpl javaScriptImpl) {
if (javaScriptImpl == null) {
javaScriptImpl = new JavaScriptImpl();
}
int rowCount = javaScriptImpl.getJSImportSize();
String[] value = new String[rowCount];
for (int i = 0; i < rowCount; i++) {
value[i] = javaScriptImpl.getJSImport(i);
}
importedJsPane.populate(value);
parameterPane.populate(javaScriptImpl.getParameters());
jsPane.populate(javaScriptImpl.getContent());
if(itemNameTextField != null){
public void reset() {
populateBean(null);
}
public void populateBean(JavaScriptImpl javaScriptImpl) {
if (javaScriptImpl == null) {
javaScriptImpl = new JavaScriptImpl();
}
int rowCount = javaScriptImpl.getJSImportSize();
String[] value = new String[rowCount];
for (int i = 0; i < rowCount; i++) {
value[i] = javaScriptImpl.getJSImport(i);
}
importedJsPane.populate(value);
parameterPane.populate(javaScriptImpl.getParameters());
jsPane.populate(javaScriptImpl.getContent());
if (itemNameTextField != null) {
itemNameTextField.setText(javaScriptImpl.getItemName());
}
}
public JavaScriptImpl updateBean() {
JavaScriptImpl javaScript = new JavaScriptImpl();
updateBean(javaScript);
return javaScript;
}
public void updateBean(JavaScriptImpl javaScript) {
List<String> list = importedJsPane.update();
}
public JavaScriptImpl updateBean() {
JavaScriptImpl javaScript = new JavaScriptImpl();
updateBean(javaScript);
return javaScript;
}
public void updateBean(JavaScriptImpl javaScript) {
List<String> list = importedJsPane.update();
javaScript.clearJSImports();
for (int i = 0; i < list.size(); i++) {
String a = list.get(i);
javaScript.addJSImort(a);
}
for (int i = 0; i < list.size(); i++) {
String a = list.get(i);
javaScript.addJSImort(a);
}
List<ParameterProvider> parameterList = parameterPane.update();
javaScript.setParameters(parameterList.toArray(new Parameter[parameterList.size()]));
javaScript.setContent(jsPane.update());
List<ParameterProvider> parameterList = parameterPane.update();
javaScript.setParameters(parameterList.toArray(new Parameter[parameterList.size()]));
javaScript.setContent(jsPane.update());
if(this.itemNameTextField != null){
if (this.itemNameTextField != null) {
javaScript.setItemName(itemNameTextField.getText());
}
}
private GridBagConstraints setConstraints(int x, int y, int w, int h, double wx, double wy, GridBagConstraints c) {
if (c == null) {
return null;
}
c.gridx = x;
c.gridy = y;
c.gridheight = h;
c.gridwidth = w;
c.weightx = wx;
c.weighty = wy;
return c;
}
protected void reLayoutForChart(){
if(needRenamePane()){
}
private GridBagConstraints setConstraints(int x, int y, int w, int h, double wx, double wy, GridBagConstraints c) {
if (c == null) {
return null;
}
c.gridx = x;
c.gridy = y;
c.gridheight = h;
c.gridwidth = w;
c.weightx = wx;
c.weighty = wy;
return c;
}
protected void reLayoutForChart() {
if (needRenamePane()) {
this.removeAll();
itemNameTextField = new UITextField();
JPanel topPane = GUICoreUtils.createBorderLayoutPane(
GUICoreUtils.createNamedPane(itemNameTextField,Inter.getLocText("FR-Chart-Use_Name") + ":"), BorderLayout.NORTH,
GUICoreUtils.createNamedPane(itemNameTextField, Inter.getLocText("FR-Chart-Use_Name") + ":"), BorderLayout.NORTH,
importedJsPane, BorderLayout.CENTER,
parameterPane, BorderLayout.EAST
);
topPane.setPreferredSize(new Dimension(300, 150));
this.setLayout(new BorderLayout());
this.add(topPane,BorderLayout.NORTH) ;
this.add(jsPane,BorderLayout.CENTER);
this.add(topPane, BorderLayout.NORTH);
this.add(jsPane, BorderLayout.CENTER);
this.repaint();
}
}
public static class CHART_NO_RENAME extends JavaScriptImplPane{
public static class ChartNoRename extends JavaScriptImplPane {
protected int getChartParaType() {
return ParameterTableModel.CHART_NORMAL_USE;
}
protected boolean needRenamePane(){
protected boolean needRenamePane() {
return false;
}
}
/**
* 判断类型
* @param ob 判断目标
*
* @param ob 判断目标
* @return 返回是否符合类型.
*/
public boolean accept(Object ob) {
return ob instanceof JavaScriptImpl;
}
public boolean accept(Object ob) {
return ob instanceof JavaScriptImpl;
}
}

92
designer_base/src/com/fr/design/javascript/ParameterJavaScriptPane.java

@ -1,99 +1,81 @@
package com.fr.design.javascript;
import com.fr.base.Parameter;
import com.fr.base.chart.BasePlot;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.editor.ValueEditorPane;
import com.fr.design.editor.ValueEditorPaneFactory;
import com.fr.design.gui.frpane.ReportletParameterViewPane;
import com.fr.design.gui.itableeditorpane.ParameterTableModel;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.hyperlink.AbstractHyperLinkPane;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
import com.fr.js.ParameterJavaScript;
import com.fr.stable.ParameterProvider;
import java.awt.*;
import java.util.HashMap;
import java.util.List;
public class ParameterJavaScriptPane extends BasicBeanPane<ParameterJavaScript> {
private BasePlot plot;
public class ParameterJavaScriptPane extends AbstractHyperLinkPane<ParameterJavaScript> {
private UITextField itemNameTextField;
private ReportletParameterViewPane parameterViewPane;
protected BasePlot getPlot() {
return plot;
}
public ParameterJavaScriptPane(){
this(null);
public ParameterJavaScriptPane() {
this(null, false);
}
public ParameterJavaScriptPane(BasePlot plot){
this.plot = plot;
this.setLayout(new BorderLayout());
parameterViewPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane());
this.add(parameterViewPane, BorderLayout.CENTER);
if(needRenamePane()){
public ParameterJavaScriptPane(HashMap hyperLinkEditorMap, boolean needRenamePane) {
super(hyperLinkEditorMap, needRenamePane);
this.setLayout(new BorderLayout());
parameterViewPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane());
this.add(parameterViewPane, BorderLayout.CENTER);
if (needRenamePane()) {
itemNameTextField = new UITextField();
this.add(GUICoreUtils.createNamedPane(itemNameTextField, Inter.getLocText("Name") + ":"), BorderLayout.NORTH);
this.add(GUICoreUtils.createNamedPane(itemNameTextField, Inter.getLocText("FR-Designer-Hyperlink_Name") + ":"), BorderLayout.NORTH);
}
}
protected int getChartParaType() {
return plot != null ? ParameterTableModel.CHART_NORMAL_USE : ParameterTableModel.NO_CHART_USE;
}
protected ValueEditorPane getValueEditorPane() {
return ValueEditorPaneFactory.createVallueEditorPaneWithUseType(getChartParaType(), plot);
}
protected boolean needRenamePane(){
return plot != null && plot.isNeedRenameHyperLinkPane();
@Override
public String title4PopupWindow() {
return Inter.getLocText("JavaScript-Dynamic_Parameters");
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText("JavaScript-Dynamic_Parameters");
}
@Override
public void populateBean(ParameterJavaScript ob){
ParameterProvider[] parameters = ob.getParameters();
if (parameters.length == 0){
// TODO ALEX_SEP
public void populateBean(ParameterJavaScript ob) {
ParameterProvider[] parameters = ob.getParameters();
if (parameters.length == 0) {
// TODO ALEX_SEP
// parameters = DesignUtils.getEditingTemplateReport().getTemplateWorkBook().getParameters();
}
parameterViewPane.populate(parameters);
if(itemNameTextField != null){
}
parameterViewPane.populate(parameters);
if (itemNameTextField != null) {
itemNameTextField.setText(ob.getItemName());
}
}
}
@Override
public ParameterJavaScript updateBean(){
ParameterJavaScript js = new ParameterJavaScript();
updateBean(js);
if(this.itemNameTextField != null){
public ParameterJavaScript updateBean() {
ParameterJavaScript js = new ParameterJavaScript();
updateBean(js);
if (this.itemNameTextField != null) {
js.setItemName(itemNameTextField.getText());
}
return js;
}
return js;
}
public void updateBean(ParameterJavaScript parameter) {
List<ParameterProvider> parameterList = parameterViewPane.update();
parameter.setParameters(parameterList.toArray(new Parameter[parameterList.size()]));
if(this.itemNameTextField != null){
List<ParameterProvider> parameterList = parameterViewPane.update();
parameter.setParameters(parameterList.toArray(new Parameter[parameterList.size()]));
if (this.itemNameTextField != null) {
parameter.setItemName(itemNameTextField.getText());
}
}
public static class CHART_NO_RENAME extends ParameterJavaScriptPane{
public static class ChartNoRename extends ParameterJavaScriptPane {
protected int getChartParaType() {
return ParameterTableModel.CHART_NORMAL_USE;
}
protected boolean needRenamePane(){
protected boolean needRenamePane() {
return false;
}
}

108
designer_base/src/com/fr/design/module/DesignModule.java

@ -14,7 +14,11 @@ import com.fr.design.mainframe.App;
import com.fr.design.mainframe.DesignerFrame;
import com.fr.general.Inter;
import com.fr.general.ModuleContext;
import com.fr.js.*;
import com.fr.js.EmailJavaScript;
import com.fr.js.JavaScriptImpl;
import com.fr.js.ParameterJavaScript;
import com.fr.js.ReportletHyperlink;
import com.fr.js.WebHyperlink;
import com.fr.module.TopModule;
import com.fr.stable.bridge.StableFactory;
import com.fr.stable.plugin.ExtraDesignClassManagerProvider;
@ -32,65 +36,67 @@ import java.util.Set;
* 所有设计器模块的父类
*/
public abstract class DesignModule extends TopModule {
public static final String LOCALE_FILE_PATH = "com/fr/design/locale/designer";
public void start() {
super.start();
App<?>[] apps = apps4TemplateOpener();
for (App<?> app : apps) {
DesignerFrame.registApp(app);
}
public static final String LOCALE_FILE_PATH = "com/fr/design/locale/designer";
public void start() {
super.start();
App<?>[] apps = apps4TemplateOpener();
for (App<?> app : apps) {
DesignerFrame.registApp(app);
}
ModuleContext.registerStartedModule(DesignModule.class.getName(), this);
StableFactory.registerMarkedClass(ExtraDesignClassManagerProvider.XML_TAG, ExtraDesignClassManager.class);
ActionFactory.registerCellInsertActionClass(actionsForInsertCellElement());
ActionFactory.registerFloatInsertActionClass(actionsForInsertFloatElement());
DesignModuleFactory.registerCreators4Hyperlink(hyperlinkTypes());
}
StableFactory.registerMarkedClass(ExtraDesignClassManagerProvider.XML_TAG, ExtraDesignClassManager.class);
ActionFactory.registerCellInsertActionClass(actionsForInsertCellElement());
ActionFactory.registerFloatInsertActionClass(actionsForInsertFloatElement());
DesignModuleFactory.registerCreators4Hyperlink(hyperlinkTypes());
}
public boolean isStarted() {
return ModuleContext.isModuleStarted(DesignModule.class.getName());
}
/**
* 返回设计器能打开的模板类型的一个数组列表
*
* @return 可以打开的模板类型的数组
*/
public abstract App<?>[] apps4TemplateOpener();
/**
* 返回设计器能打开的模板类型的一个数组列表
*
* @return 可以打开的模板类型的数组
*/
public abstract App<?>[] apps4TemplateOpener();
/**
* 国际化文件路径
* @return 国际化文件路径
*/
public String[] getLocaleFile() {
return new String[]{LOCALE_FILE_PATH};
}
/**
* 国际化文件路径
*
* @return 国际化文件路径
*/
public String[] getLocaleFile() {
return new String[]{LOCALE_FILE_PATH};
}
public Class<?>[] actionsForInsertCellElement() {
List<Class<?>> classes = new ArrayList<>();
Set<ElementUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ElementUIProvider.MARK_STRING);
for (ElementUIProvider provider : providers) {
classes.add(provider.actionForInsertCellElement());
}
return classes.toArray(new Class<?>[classes.size()]);
}
public Class<?>[] actionsForInsertCellElement() {
List<Class<?>> classes = new ArrayList<>();
Set<ElementUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ElementUIProvider.MARK_STRING);
for (ElementUIProvider provider : providers) {
classes.add(provider.actionForInsertCellElement());
}
return classes.toArray(new Class<?>[classes.size()]);
}
public Class<?>[] actionsForInsertFloatElement() {
List<Class<?>> classes = new ArrayList<>();
Set<ElementUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ElementUIProvider.MARK_STRING);
for (ElementUIProvider provider : providers) {
classes.add(provider.actionForInsertFloatElement());
}
return classes.toArray(new Class<?>[classes.size()]);
}
public Class<?>[] actionsForInsertFloatElement() {
List<Class<?>> classes = new ArrayList<>();
Set<ElementUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ElementUIProvider.MARK_STRING);
for (ElementUIProvider provider : providers) {
classes.add(provider.actionForInsertFloatElement());
}
return classes.toArray(new Class<?>[classes.size()]);
}
public NameableCreator[] hyperlinkTypes() {
return new NameableCreator[]{
new NameObjectCreator(Inter.getLocText("FR-Hyperlink_Reportlet"), ReportletHyperlink.class, ReportletHyperlinkPane.CHART_NO_RENAME.class),
new NameObjectCreator(Inter.getLocText("FR-Designer_Email"), EmailJavaScript.class, EmailPane.class),
new NameObjectCreator(Inter.getLocText("Hyperlink-Web_link"), WebHyperlink.class, WebHyperlinkPane.CHART_NO_RENAME.class),
new NameObjectCreator(Inter.getLocText("JavaScript-Dynamic_Parameters"), ParameterJavaScript.class, ParameterJavaScriptPane.CHART_NO_RENAME.class),
new NameObjectCreator("JavaScript", JavaScriptImpl.class, JavaScriptImplPane.CHART_NO_RENAME.class)
};
}
public NameableCreator[] hyperlinkTypes() {
return new NameableCreator[]{
new NameObjectCreator(Inter.getLocText("FR-Hyperlink_Reportlet"), ReportletHyperlink.class, ReportletHyperlinkPane.ChartNoRename.class),
new NameObjectCreator(Inter.getLocText("FR-Designer_Email"), EmailJavaScript.class, EmailPane.class),
new NameObjectCreator(Inter.getLocText("Hyperlink-Web_link"), WebHyperlink.class, WebHyperlinkPane.ChartNoRename.class),
new NameObjectCreator(Inter.getLocText("JavaScript-Dynamic_Parameters"), ParameterJavaScript.class, ParameterJavaScriptPane.ChartNoRename.class),
new NameObjectCreator("FR-Designer_JavaScript", JavaScriptImpl.class, JavaScriptImplPane.ChartNoRename.class)
};
}
}

180
designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java

@ -1,18 +1,14 @@
package com.fr.design.chart.series.SeriesCondition.impl;
import com.fr.base.chart.BaseChartCollection;
import com.fr.base.chart.BasePlot;
import com.fr.chart.chartattr.Bar2DPlot;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.chart.web.ChartHyperPoplink;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.chart.gui.ChartComponent;
import com.fr.design.editor.ValueEditorPane;
import com.fr.design.editor.ValueEditorPaneFactory;
import com.fr.design.gui.itableeditorpane.ParameterTableModel;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.hyperlink.AbstractHyperLinkPane;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.chart.ChartHyperEditPane;
import com.fr.design.module.DesignModuleFactory;
@ -21,133 +17,119 @@ import com.fr.general.FRLogger;
import com.fr.general.Inter;
import java.awt.*;
import java.util.HashMap;
/**
* 类说明: 图表超链 -- 弹出 悬浮窗.
* 类说明: 图表超链 -- 弹出 悬浮窗.
*
* @author kunsnat E-mail:kunsnat@gmail.com
* @version 创建时间2011-12-28 上午10:41:39
*/
public class ChartHyperPoplinkPane extends BasicBeanPane<ChartHyperPoplink> {
private static final long serialVersionUID = 2469115951510144738L;
private static final int EDIT_PANE_WIDTH = 248;
private UITextField itemNameTextField;
private ChartHyperEditPane hyperEditPane;
private ChartComponent chartComponent;
private BasePlot plot;
protected BasePlot getPlot() {
return plot;
}
public ChartHyperPoplinkPane() {
this(null);
}
public ChartHyperPoplinkPane(BasePlot plot) {
this.plot = plot;
this.setLayout(FRGUIPaneFactory.createM_BorderLayout());
if(this.needRenamePane()){
public class ChartHyperPoplinkPane extends AbstractHyperLinkPane<ChartHyperPoplink> {
private static final long serialVersionUID = 2469115951510144738L;
private static final int EDIT_PANE_WIDTH = 248;
private UITextField itemNameTextField;
private ChartHyperEditPane hyperEditPane;
private ChartComponent chartComponent;
public ChartHyperPoplinkPane() {
this(null, false);
}
public ChartHyperPoplinkPane(HashMap hyperLinkEditorMap, boolean needRenamePane) {
super(hyperLinkEditorMap, needRenamePane);
this.setLayout(FRGUIPaneFactory.createM_BorderLayout());
if (this.needRenamePane()) {
itemNameTextField = new UITextField();
this.add(GUICoreUtils.createNamedPane(itemNameTextField, Inter.getLocText("FR-Chart-Use_Name") + ":"), BorderLayout.NORTH);
}
hyperEditPane = new ChartHyperEditPane(getChartParaType(), getValueEditorPane(), getValueEditorPane());
hyperEditPane.setPreferredSize(new Dimension(EDIT_PANE_WIDTH, (int)hyperEditPane.getPreferredSize().getHeight()));// 固定属性配置面板大小,灵活调整图表显示面板.
this.add(hyperEditPane, BorderLayout.WEST);
hyperEditPane = new ChartHyperEditPane(getChartParaType(), getValueEditorPane(), getValueEditorPane());
hyperEditPane.setPreferredSize(new Dimension(EDIT_PANE_WIDTH, (int) hyperEditPane.getPreferredSize().getHeight()));// 固定属性配置面板大小,灵活调整图表显示面板.
this.add(hyperEditPane, BorderLayout.WEST);
ChartCollection cc = createChartCollection();
chartComponent = new ChartComponent();
chartComponent.setPreferredSize(new Dimension((int)this.getPreferredSize().getWidth()-EDIT_PANE_WIDTH, 170));// 在单元格弹出时 需要调整保证属性表的大小.
chartComponent.setSupportEdit(false);
chartComponent.populate(cc);
this.add(chartComponent, BorderLayout.CENTER);
hyperEditPane.populate(cc);
hyperEditPane.useChartComponent(chartComponent);
}
chartComponent = new ChartComponent();
chartComponent.setPreferredSize(new Dimension((int) this.getPreferredSize().getWidth() - EDIT_PANE_WIDTH, 170));// 在单元格弹出时 需要调整保证属性表的大小.
chartComponent.setSupportEdit(false);
chartComponent.populate(cc);
this.add(chartComponent, BorderLayout.CENTER);
hyperEditPane.populate(cc);
hyperEditPane.useChartComponent(chartComponent);
}
private ChartCollection createChartCollection() {
ChartCollection cc = new ChartCollection();
Chart chart = ChartTypeManager.getFirstChart();
if (chart != null){
if (chart != null) {
try {
cc.addChart((Chart)chart.clone());
cc.addChart((Chart) chart.clone());
} catch (CloneNotSupportedException e) {
FRLogger.getLogger().error(e.getMessage(), e);
}
}else {
} else {
cc.addChart(new Chart(new Bar2DPlot()));
}
return cc;
}
protected int getChartParaType() {
return plot != null ? ParameterTableModel.CHART_NORMAL_USE : ParameterTableModel.NO_CHART_USE;
}
protected ValueEditorPane getValueEditorPane() {
return ValueEditorPaneFactory.createVallueEditorPaneWithUseType(getChartParaType(), plot);
}
protected boolean needRenamePane(){
return plot != null && plot.isNeedRenameHyperLinkPane();
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText("FR-Chart-Pop_Chart");
}
@Override
public void populateBean(ChartHyperPoplink chartHyperlink) {
if(itemNameTextField != null){
@Override
public String title4PopupWindow() {
return Inter.getLocText("FR-Chart-Pop_Chart");
}
@Override
public void populateBean(ChartHyperPoplink chartHyperlink) {
if (itemNameTextField != null) {
this.itemNameTextField.setText(chartHyperlink.getItemName());
}
BaseChartCollection cc = chartHyperlink.getChartCollection();
if (cc == null || cc.getChartCount() < 1) {
cc = createChartCollection();
chartHyperlink.setChartCollection(cc);
}
hyperEditPane.populateHyperLink(chartHyperlink);
chartComponent.populate(cc);
}
/**
* 超链数组HyperlinkGoup切换时 updateBean.
* @return 返回的弹出超链.
*/
public ChartHyperPoplink updateBean() {
ChartHyperPoplink chartLink = new ChartHyperPoplink();
updateBean(chartLink);
if(itemNameTextField != null){
BaseChartCollection cc = chartHyperlink.getChartCollection();
if (cc == null || cc.getChartCount() < 1) {
cc = createChartCollection();
chartHyperlink.setChartCollection(cc);
}
hyperEditPane.populateHyperLink(chartHyperlink);
chartComponent.populate(cc);
}
/**
* 超链数组HyperlinkGoup切换时 updateBean.
*
* @return 返回的弹出超链.
*/
public ChartHyperPoplink updateBean() {
ChartHyperPoplink chartLink = new ChartHyperPoplink();
updateBean(chartLink);
if (itemNameTextField != null) {
chartLink.setItemName(this.itemNameTextField.getText());
}
return chartLink;
}
/**
* 属性表 对应update
*/
public void updateBean(ChartHyperPoplink chartHyperlink) {
hyperEditPane.updateHyperLink(chartHyperlink);
chartHyperlink.setChartCollection(chartComponent.update());
DesignModuleFactory.getChartPropertyPane().getChartEditPane().fire();// 响应整个图表保存事件等.
if(itemNameTextField != null){
return chartLink;
}
/**
* 属性表 对应update
*/
public void updateBean(ChartHyperPoplink chartHyperlink) {
hyperEditPane.updateHyperLink(chartHyperlink);
chartHyperlink.setChartCollection(chartComponent.update());
DesignModuleFactory.getChartPropertyPane().getChartEditPane().fire();// 响应整个图表保存事件等.
if (itemNameTextField != null) {
chartHyperlink.setItemName(this.itemNameTextField.getText());
}
}
}
public static class CHART_NO_RENAME extends ChartHyperPoplinkPane{
protected boolean needRenamePane(){
public static class ChartNoRename extends ChartHyperPoplinkPane {
protected boolean needRenamePane() {
return false;
}
}

193
designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperRelateCellLinkPane.java

@ -1,15 +1,11 @@
package com.fr.design.chart.series.SeriesCondition.impl;
import com.fr.base.Utils;
import com.fr.base.chart.BasePlot;
import com.fr.chart.web.ChartHyperRelateCellLink;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.editor.ValueEditorPane;
import com.fr.design.editor.ValueEditorPaneFactory;
import com.fr.design.gui.columnrow.ColumnRowVerticalPane;
import com.fr.design.gui.frpane.ReportletParameterViewPane;
import com.fr.design.gui.itableeditorpane.ParameterTableModel;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.hyperlink.AbstractHyperLinkPane;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
@ -18,127 +14,110 @@ import com.fr.stable.ParameterProvider;
import javax.swing.*;
import java.awt.*;
import java.util.HashMap;
import java.util.List;
/**
* @author kunsnat E-mail:kunsnat@gmail.com
* @version 创建时间2011-12-28 下午02:51:10
* 类说明: 图表超链 -- 关联单元格图表.
* 类说明: 图表超链 -- 关联单元格图表.
*/
public class ChartHyperRelateCellLinkPane extends BasicBeanPane<ChartHyperRelateCellLink>{
private static final long serialVersionUID = 7874948047886548990L;
public class ChartHyperRelateCellLinkPane extends AbstractHyperLinkPane<ChartHyperRelateCellLink> {
private static final long serialVersionUID = 7874948047886548990L;
private UITextField itemNameTextField;
private ColumnRowVerticalPane colRowPane;
private ReportletParameterViewPane parameterViewPane;
private BasePlot plot;
protected BasePlot getPlot() {
return plot;
}
public ChartHyperRelateCellLinkPane() {
this.initComponent();
}
public ChartHyperRelateCellLinkPane(BasePlot plot) {
this.plot = plot;
this.initComponent();
}
private void initComponent() {
this.setLayout(FRGUIPaneFactory.createM_BorderLayout());
if(needRenamePane()){
private ColumnRowVerticalPane colRowPane;
private ReportletParameterViewPane parameterViewPane;
public ChartHyperRelateCellLinkPane() {
this.initComponent();
}
public ChartHyperRelateCellLinkPane(HashMap hyperLinkEditorMap, boolean needRenamePane) {
super(hyperLinkEditorMap, needRenamePane);
this.initComponent();
}
private void initComponent() {
this.setLayout(FRGUIPaneFactory.createM_BorderLayout());
if (needRenamePane()) {
itemNameTextField = new UITextField();
this.add(GUICoreUtils.createNamedPane(itemNameTextField, Inter.getLocText("Name") + ":"), BorderLayout.NORTH);
this.add(GUICoreUtils.createNamedPane(itemNameTextField, Inter.getLocText("FR-Designer_Name") + ":"), BorderLayout.NORTH);
}
JPanel centerPane = FRGUIPaneFactory.createBorderLayout_L_Pane();
this.add(centerPane, BorderLayout.CENTER);
centerPane.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText(new String[]{"Related", "Cell"})));
colRowPane = new ColumnRowVerticalPane();
centerPane.add(colRowPane, BorderLayout.NORTH);
parameterViewPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane());
parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText("Parameters")));
parameterViewPane.setPreferredSize(new Dimension(500, 200));
this.add(parameterViewPane, BorderLayout.SOUTH);
}
protected int getChartParaType() {
return plot != null ? ParameterTableModel.CHART_NORMAL_USE : ParameterTableModel.NO_CHART_USE;
}
protected ValueEditorPane getValueEditorPane() {
return ValueEditorPaneFactory.createVallueEditorPaneWithUseType(getChartParaType(), plot);
}
protected boolean needRenamePane(){
return plot != null && plot.isNeedRenameHyperLinkPane();
}
@Override
public void populateBean(ChartHyperRelateCellLink ob) {
if(ob == null) {
return;
}
if(itemNameTextField != null){
JPanel centerPane = FRGUIPaneFactory.createBorderLayout_L_Pane();
this.add(centerPane, BorderLayout.CENTER);
centerPane.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText(new String[]{"Related", "FR-Designer_Cell"})));
colRowPane = new ColumnRowVerticalPane();
centerPane.add(colRowPane, BorderLayout.NORTH);
parameterViewPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane());
parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText("FR-Designer_Parameter")));
parameterViewPane.setPreferredSize(new Dimension(500, 200));
this.add(parameterViewPane, BorderLayout.SOUTH);
}
@Override
public void populateBean(ChartHyperRelateCellLink ob) {
if (ob == null) {
return;
}
if (itemNameTextField != null) {
itemNameTextField.setText(ob.getItemName());
}
if(ob.getRelateCCName() != null) {
ColumnRow colRow = ColumnRow.valueOf(ob.getRelateCCName());
colRowPane.populate(colRow);
} else {
colRowPane.populate(ColumnRow.valueOf("A1"));
}
List parameterList = this.parameterViewPane.update();
parameterList.clear();
ParameterProvider[] parameters = ob.getParameters();
parameterViewPane.populate(parameters);
}
@Override
public ChartHyperRelateCellLink updateBean() {
ChartHyperRelateCellLink chartLink = new ChartHyperRelateCellLink();
updateBean(chartLink);
if(itemNameTextField != null){
if (ob.getRelateCCName() != null) {
ColumnRow colRow = ColumnRow.valueOf(ob.getRelateCCName());
colRowPane.populate(colRow);
} else {
colRowPane.populate(ColumnRow.valueOf("A1"));
}
List parameterList = this.parameterViewPane.update();
parameterList.clear();
ParameterProvider[] parameters = ob.getParameters();
parameterViewPane.populate(parameters);
}
@Override
public ChartHyperRelateCellLink updateBean() {
ChartHyperRelateCellLink chartLink = new ChartHyperRelateCellLink();
updateBean(chartLink);
if (itemNameTextField != null) {
chartLink.setItemName(this.itemNameTextField.getText());
}
return chartLink;
}
/**
* 属性表 对应update
*/
public void updateBean(ChartHyperRelateCellLink chartLink) {
chartLink.setRelateCCName(Utils.objectToString(colRowPane.update()));
List parameterList = this.parameterViewPane.update();
if (parameterList != null && !parameterList.isEmpty()) {
ParameterProvider[] parameters = new ParameterProvider[parameterList.size()];
parameterList.toArray(parameters);
chartLink.setParameters(parameters);
} else {
chartLink.setParameters(null);
}
if(itemNameTextField != null){
return chartLink;
}
/**
* 属性表 对应update
*/
public void updateBean(ChartHyperRelateCellLink chartLink) {
chartLink.setRelateCCName(Utils.objectToString(colRowPane.update()));
List parameterList = this.parameterViewPane.update();
if (parameterList != null && !parameterList.isEmpty()) {
ParameterProvider[] parameters = new ParameterProvider[parameterList.size()];
parameterList.toArray(parameters);
chartLink.setParameters(parameters);
} else {
chartLink.setParameters(null);
}
if (itemNameTextField != null) {
chartLink.setItemName(this.itemNameTextField.getText());
}
}
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText(new String[]{"Related", "Cell"});
}
@Override
public String title4PopupWindow() {
return Inter.getLocText(new String[]{"Related", "Cell"});
}
public static class CHART_NO_RENAME extends ChartHyperRelateCellLinkPane{
protected boolean needRenamePane(){
public static class ChartNoRename extends ChartHyperRelateCellLinkPane {
protected boolean needRenamePane() {
return false;
}
}

209
designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperRelateFloatLinkPane.java

@ -1,18 +1,14 @@
package com.fr.design.chart.series.SeriesCondition.impl;
import com.fr.base.Utils;
import com.fr.base.chart.BasePlot;
import com.fr.chart.web.ChartHyperRelateFloatLink;
import com.fr.design.DesignModelAdapter;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.constants.UIConstants;
import com.fr.design.editor.ValueEditorPane;
import com.fr.design.editor.ValueEditorPaneFactory;
import com.fr.design.gui.frpane.ReportletParameterViewPane;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itableeditorpane.ParameterTableModel;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.hyperlink.AbstractHyperLinkPane;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
@ -23,145 +19,126 @@ import javax.swing.border.Border;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import java.awt.*;
import java.util.HashMap;
import java.util.List;
/**
* @author kunsnat E-mail:kunsnat@gmail.com
* @version 创建时间2011-12-28 下午03:02:43
* 类说明: 图表超链 关联悬浮元素
* 类说明: 图表超链 关联悬浮元素
*/
public class ChartHyperRelateFloatLinkPane extends BasicBeanPane<ChartHyperRelateFloatLink> {
private static final long serialVersionUID = -3308412003405587689L;
public class ChartHyperRelateFloatLinkPane extends AbstractHyperLinkPane<ChartHyperRelateFloatLink> {
private static final long serialVersionUID = -3308412003405587689L;
private UITextField itemNameTextField;
private UIComboBox floatNameBox;
private ReportletParameterViewPane parameterViewPane;
private UIComboBox floatNameBox;
private BasePlot plot;
public ChartHyperRelateFloatLinkPane() {
this.initComponent();
}
protected BasePlot getPlot() {
return plot;
}
public ChartHyperRelateFloatLinkPane() {
this.initComponent();
}
public ChartHyperRelateFloatLinkPane(HashMap hyperLinkEditorMap, boolean needRenamePane) {
super(hyperLinkEditorMap, needRenamePane);
this.initComponent();
}
public ChartHyperRelateFloatLinkPane(BasePlot plot) {
private void initComponent() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.plot = plot;
this.initComponent();
}
private void initComponent() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
JPanel centerPane = FRGUIPaneFactory.createBorderLayout_L_Pane();
JPanel centerPane = FRGUIPaneFactory.createBorderLayout_L_Pane();
if(needRenamePane()){
if (needRenamePane()) {
itemNameTextField = new UITextField();
this.add(GUICoreUtils.createNamedPane(itemNameTextField, Inter.getLocText("Name") + ":"), BorderLayout.NORTH);
this.add(GUICoreUtils.createNamedPane(itemNameTextField, Inter.getLocText("FR-Designer-Hyperlink_Name") + ":"), BorderLayout.NORTH);
}
this.add(centerPane, BorderLayout.CENTER);
floatNameBox = new UIComboBox(getFloatNames());
floatNameBox.setPreferredSize(new Dimension(90, 20));
JPanel pane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane();
pane.add(new UILabel(Inter.getLocText("M_Insert-Float") + ":"));
pane.add(floatNameBox);
Border boder = new LineBorder(UIConstants.TITLED_BORDER_COLOR);
Font font = null;
TitledBorder border = new TitledBorder(boder, Inter.getLocText(new String[]{"Related", "M_Insert-Float"}), 4, 2, font, new Color(1, 159, 222));
// 圆角不行
centerPane.setBorder(border);
centerPane.add(pane, BorderLayout.NORTH);
parameterViewPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane());
parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText("FR-Designer_Parameter")));
parameterViewPane.setPreferredSize(new Dimension(500, 200));
this.add(parameterViewPane, BorderLayout.SOUTH);
}
private String[] getFloatNames() {
DesignModelAdapter adapter = DesignModelAdapter.getCurrentModelAdapter();
if (adapter != null) {
return adapter.getFloatNames();
}
return new String[0];
}
@Override
public void populateBean(ChartHyperRelateFloatLink ob) {
if (ob == null) {
return;
}
this.add(centerPane, BorderLayout.CENTER);
floatNameBox = new UIComboBox(getFloatNames());
floatNameBox.setPreferredSize(new Dimension(90, 20));
JPanel pane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane();
pane.add(new UILabel(Inter.getLocText("M_Insert-Float") + ":"));
pane.add(floatNameBox);
Border boder = new LineBorder(UIConstants.TITLED_BORDER_COLOR);
Font font = null;
TitledBorder border = new TitledBorder(boder, Inter.getLocText(new String[]{"Related", "M_Insert-Float"}), 4, 2, font, new Color(1, 159, 222));
// 圆角不行
centerPane.setBorder(border);
centerPane.add(pane, BorderLayout.NORTH);
parameterViewPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane());
parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText("Parameters")));
parameterViewPane.setPreferredSize(new Dimension(500, 200));
this.add(parameterViewPane, BorderLayout.SOUTH);
}
protected int getChartParaType() {
return plot != null ? ParameterTableModel.CHART_NORMAL_USE : ParameterTableModel.NO_CHART_USE;
}
protected ValueEditorPane getValueEditorPane() {
return ValueEditorPaneFactory.createVallueEditorPaneWithUseType(getChartParaType(), plot);
}
protected boolean needRenamePane(){
return plot != null && plot.isNeedRenameHyperLinkPane();
}
private String[] getFloatNames() {
DesignModelAdapter adapter = DesignModelAdapter.getCurrentModelAdapter();
if(adapter != null ) {
return adapter.getFloatNames();
}
return new String[0];
}
@Override
public void populateBean(ChartHyperRelateFloatLink ob) {
if(ob == null) {
return ;
}
if(itemNameTextField != null){
if (itemNameTextField != null) {
itemNameTextField.setText(ob.getItemName());
}
floatNameBox.setSelectedItem(ob.getRelateCCName());
List parameterList = this.parameterViewPane.update();
parameterList.clear();
floatNameBox.setSelectedItem(ob.getRelateCCName());
List parameterList = this.parameterViewPane.update();
parameterList.clear();
ParameterProvider[] parameters = ob.getParameters();
parameterViewPane.populate(parameters);
}
ParameterProvider[] parameters = ob.getParameters();
parameterViewPane.populate(parameters);
}
@Override
public ChartHyperRelateFloatLink updateBean() {
ChartHyperRelateFloatLink chartLink = new ChartHyperRelateFloatLink();
updateBean(chartLink);
if(itemNameTextField != null){
@Override
public ChartHyperRelateFloatLink updateBean() {
ChartHyperRelateFloatLink chartLink = new ChartHyperRelateFloatLink();
updateBean(chartLink);
if (itemNameTextField != null) {
chartLink.setItemName(this.itemNameTextField.getText());
}
return chartLink;
}
public void updateBean(ChartHyperRelateFloatLink chartLink) {
if(floatNameBox.getSelectedItem() != null) {
chartLink.setRelateCCName(Utils.objectToString(floatNameBox.getSelectedItem()));
}
List parameterList = this.parameterViewPane.update();
if (parameterList != null && !parameterList.isEmpty()) {
ParameterProvider[] parameters = new ParameterProvider[parameterList.size()];
parameterList.toArray(parameters);
chartLink.setParameters(parameters);
} else {
chartLink.setParameters(null);
}
if(itemNameTextField != null){
return chartLink;
}
public void updateBean(ChartHyperRelateFloatLink chartLink) {
if (floatNameBox.getSelectedItem() != null) {
chartLink.setRelateCCName(Utils.objectToString(floatNameBox.getSelectedItem()));
}
List parameterList = this.parameterViewPane.update();
if (parameterList != null && !parameterList.isEmpty()) {
ParameterProvider[] parameters = new ParameterProvider[parameterList.size()];
parameterList.toArray(parameters);
chartLink.setParameters(parameters);
} else {
chartLink.setParameters(null);
}
if (itemNameTextField != null) {
chartLink.setItemName(this.itemNameTextField.getText());
}
}
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText(new String[]{"Related", "M_Insert-Float"});
}
@Override
public String title4PopupWindow() {
return Inter.getLocText(new String[]{"Related", "M_Insert-Float"});
}
public static class CHART_NO_RENAME extends ChartHyperRelateFloatLinkPane{
protected boolean needRenamePane(){
public static class ChartNoRename extends ChartHyperRelateFloatLinkPane {
protected boolean needRenamePane() {
return false;
}
}

57
designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/FormHyperlinkPane.java

@ -1,12 +1,9 @@
package com.fr.design.chart.series.SeriesCondition.impl;
import com.fr.base.Parameter;
import com.fr.base.chart.BasePlot;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.editor.ValueEditorPane;
import com.fr.design.editor.ValueEditorPaneFactory;
import com.fr.design.gui.frpane.ReportletParameterViewPane;
import com.fr.design.gui.itableeditorpane.ParameterTableModel;
import com.fr.design.hyperlink.AbstractHyperLinkPane;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.form.ui.ElementCaseEditorProvider;
@ -17,20 +14,15 @@ import com.fr.stable.bridge.StableFactory;
import javax.swing.*;
import java.awt.*;
import java.util.HashMap;
public class FormHyperlinkPane extends BasicBeanPane<FormHyperlinkProvider> {
private BasePlot plot;
private ReportletParameterViewPane parameterViewPane;
public class FormHyperlinkPane extends AbstractHyperLinkPane<FormHyperlinkProvider> {
private static final int BORDER_WIDTH = 4;
private FormHyperlinkNorthPane northPane;
protected BasePlot getPlot() {
return plot;
}
public FormHyperlinkPane(BasePlot plot) {
super();
this.plot = plot;
public FormHyperlinkPane(HashMap hyperLinkEditorMap, boolean needRenamePane) {
super(hyperLinkEditorMap, needRenamePane);
this.initComponents();
}
@ -41,7 +33,7 @@ public class FormHyperlinkPane extends BasicBeanPane<FormHyperlinkProvider> {
protected void initComponents() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
this.setBorder(BorderFactory.createEmptyBorder(BORDER_WIDTH, BORDER_WIDTH, BORDER_WIDTH, BORDER_WIDTH));
northPane = new FormHyperlinkNorthPane(needRenamePane());
this.add(northPane, BorderLayout.NORTH);
@ -51,29 +43,15 @@ public class FormHyperlinkPane extends BasicBeanPane<FormHyperlinkProvider> {
}
@Override
protected String title4PopupWindow() {
public String title4PopupWindow() {
return Inter.getLocText("Hyperlink-Form_link");
}
protected int getChartParaType() {
return plot != null ? ParameterTableModel.CHART_NORMAL_USE : ParameterTableModel.NO_CHART_USE;
}
protected ValueEditorPane getValueEditorPane() {
return ValueEditorPaneFactory.createVallueEditorPaneWithUseType(getChartParaType(), plot);
}
protected boolean needRenamePane(){
return plot != null && plot.isNeedRenameHyperLinkPane();
}
protected int getHyperlinkType() {
if (northPane.getEditingEditor() != null){
if (northPane.getEditingEditor().acceptType(ElementCaseEditorProvider.class)) {
return FormHyperlinkProvider.ELEMENTCASE;
}
}
return FormHyperlinkProvider.CHART;
if (northPane.getEditingEditor() != null && northPane.getEditingEditor().acceptType(ElementCaseEditorProvider.class)) {
return FormHyperlinkProvider.ELEMENTCASE;
}
return FormHyperlinkProvider.CHART;
}
@Override
@ -89,7 +67,7 @@ public class FormHyperlinkPane extends BasicBeanPane<FormHyperlinkProvider> {
@Override
public FormHyperlinkProvider updateBean() {
FormHyperlinkProvider formHyperlink = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
FormHyperlinkProvider formHyperlink = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
formHyperlink.setType(getHyperlinkType());
updateBean(formHyperlink);
@ -97,8 +75,8 @@ public class FormHyperlinkPane extends BasicBeanPane<FormHyperlinkProvider> {
}
public void updateBean(FormHyperlinkProvider formHyperlink) {
formHyperlink.setType(getHyperlinkType());
formHyperlink.setType(getHyperlinkType());
northPane.updateBean(formHyperlink);
//Parameter.
java.util.List<ParameterProvider> parameterList = this.parameterViewPane.update();
@ -112,10 +90,11 @@ public class FormHyperlinkPane extends BasicBeanPane<FormHyperlinkProvider> {
}
}
public static class CHART_NO_RENAME extends FormHyperlinkPane{
protected boolean needRenamePane(){
public static class ChartNoRename extends FormHyperlinkPane {
protected boolean needRenamePane() {
return false;
}
protected int getChartParaType() {
return ParameterTableModel.CHART_NORMAL_USE;
}

24
designer_chart/src/com/fr/design/mainframe/chart/gui/other/ChartDesignerInteractivePane.java

@ -4,6 +4,7 @@
package com.fr.design.mainframe.chart.gui.other;
import com.fr.base.Formula;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartdata.TopDefinition;
import com.fr.design.mainframe.chart.gui.ChartOtherPane;
@ -29,22 +30,23 @@ public class ChartDesignerInteractivePane extends ChartInteractivePane {
}
protected List<ChartUIMenuNameableCreator> refreshList(HashMap map) {
List<ChartUIMenuNameableCreator> list = new ArrayList<ChartUIMenuNameableCreator>();
List<ChartUIMenuNameableCreator> list = new ArrayList<ChartUIMenuNameableCreator>();
java.util.HashMap<String, Formula> hyperLinkEditorMap = plot.getHyperLinkEditorMap();
list.add(new ChartUIMenuNameableCreator(plot, Inter.getLocText("Hyperlink-Web_link"),
new WebHyperlink(), getUseMap(map, WebHyperlink.class)));
list.add(new ChartUIMenuNameableCreator(plot,"JavaScript", new JavaScriptImpl(), getUseMap(map, JavaScriptImpl.class)));
list.add(new ChartUIMenuNameableCreator(plot, Inter.getLocText("RelatedChart"),null,null));
list.add(new ChartUIMenuNameableCreator(hyperLinkEditorMap, Inter.getLocText("Hyperlink-Web_link"),
new WebHyperlink(), getUseMap(map, WebHyperlink.class)));
list.add(new ChartUIMenuNameableCreator(hyperLinkEditorMap, "FR-Designer_JavaScript", new JavaScriptImpl(), getUseMap(map, JavaScriptImpl.class)));
list.add(new ChartUIMenuNameableCreator(hyperLinkEditorMap, Inter.getLocText("FR-Engine_Interactive-chart"), null, null));
return list;
}
return list;
}
protected void populateAutoRefresh(Chart chart){
protected void populateAutoRefresh(Chart chart) {
super.populateAutoRefresh(chart);
if(chart.getFilterDefinition() != null){
TopDefinition definition = (TopDefinition)chart.getFilterDefinition();
if (chart.getFilterDefinition() != null) {
TopDefinition definition = (TopDefinition) chart.getFilterDefinition();
isAutoRefresh.setEnabled(definition.isSupportAutoRefresh());
if(!isAutoRefresh.isEnabled()){
if (!isAutoRefresh.isEnabled()) {
isAutoRefresh.setSelected(false);
}
autoRefreshTime.setEnabled(definition.isSupportAutoRefresh());

540
designer_chart/src/com/fr/design/mainframe/chart/gui/other/ChartInteractivePane.java

@ -1,6 +1,7 @@
package com.fr.design.mainframe.chart.gui.other;
import com.fr.base.CoreDecimalFormat;
import com.fr.base.Formula;
import com.fr.base.Style;
import com.fr.base.chart.chartdata.TopDefinitionProvider;
import com.fr.chart.base.AttrContents;
@ -74,22 +75,22 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Set;
public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIObserver{
private static final long serialVersionUID = 3477409806918835992L;
public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIObserver {
private static final long serialVersionUID = 3477409806918835992L;
private static HashMap normalMap = new HashMap();
private static final int TIME_SWITCH_GAP = 40;
private UICheckBox isChartAnimation;// 动态
private UICheckBox isChartAnimation;// 动态
private UICheckBox isSeriesDragEnable; //系列拖拽
private UICheckBox isAxisZoom;// 缩放
private UICheckBox isDatapointValue;// 数据点提示
private UIButton dataPointValueFormat;
private UICheckBox isDatapointValue;// 数据点提示
private UIButton dataPointValueFormat;
private UICheckBox isDatapointPercent;
private UIButton dataPointPercentFormat;
private UICheckBox isDatapointPercent;
private UIButton dataPointPercentFormat;
private UILabel tooltipStyleLabel;
private UIComboBox tooltipStyle;
@ -101,24 +102,24 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
private UICheckBox isAddress;
private UICheckBox isAddressName;
private UICheckBox isAxisShowToolTip;// 坐标轴提示
private UICheckBox isAxisShowToolTip;// 坐标轴提示
protected UICheckBox isAutoRefresh;// 自动刷新
protected UISpinner autoRefreshTime;
protected UICheckBox isAutoRefresh;// 自动刷新
protected UISpinner autoRefreshTime;
private UICorrelationComboBoxPane superLink;// 超链
private UICorrelationComboBoxPane superLink;// 超链
private FormatPane valueFormatPane;
private FormatPane percentFormatPane;
private Format valueFormat;
private Format percentFormat;
private FormatPane valueFormatPane;
private FormatPane percentFormatPane;
private Format valueFormat;
private Format percentFormat;
private JPanel tooltipPane;
private JPanel axisShowPane;
private JPanel autoRefreshPane;
private JPanel superlinkPane;
private JPanel tooltipPane;
private JPanel axisShowPane;
private JPanel autoRefreshPane;
private JPanel superlinkPane;
private ChartOtherPane parent;
private ChartOtherPane parent;
private UICheckBox timeSwitch;
@ -127,47 +128,49 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
protected Plot plot;
private static final int SIZEX = 258;
private static final int SIZEY = 209;
private static final int DET = 20;
public ChartInteractivePane(ChartOtherPane parent) {
super();
this.parent = parent;
}
private static final int SIZEX = 258;
private static final int SIZEY = 209;
private static final int DET = 20;
/**
* 界面标题.
public ChartInteractivePane(ChartOtherPane parent) {
super();
this.parent = parent;
}
/**
* 界面标题.
*
* @return 返回标题.
*/
public String title4PopupWindow() {
return Inter.getLocText("Chart-Interactive_Tab");
}
@Override
protected JPanel createContentPane() {
isChartAnimation = new UICheckBox(Inter.getLocText("Chart-Animation_JSShow"));
*/
public String title4PopupWindow() {
return Inter.getLocText("Chart-Interactive_Tab");
}
@Override
protected JPanel createContentPane() {
isChartAnimation = new UICheckBox(Inter.getLocText("Chart-Animation_JSShow"));
isSeriesDragEnable = new UICheckBox(Inter.getLocText("Chart-Series_Drag"));
isDatapointValue = new UICheckBox(Inter.getLocText("Chart-Use_Value"));
dataPointValueFormat = new UIButton(Inter.getLocText("Chart-Use_Format"));
isDatapointPercent = new UICheckBox(Inter.getLocText("Chart-Value_Percent"));
dataPointPercentFormat = new UIButton(Inter.getLocText("Chart-Use_Format"));
tooltipStyle = new UIComboBox(new String []{Inter.getLocText("Chart-White_Black"), Inter.getLocText("Chart-Black_White")});
isDatapointValue = new UICheckBox(Inter.getLocText("Chart-Use_Value"));
dataPointValueFormat = new UIButton(Inter.getLocText("Chart-Use_Format"));
isDatapointPercent = new UICheckBox(Inter.getLocText("Chart-Value_Percent"));
dataPointPercentFormat = new UIButton(Inter.getLocText("Chart-Use_Format"));
tooltipStyle = new UIComboBox(new String[]{Inter.getLocText("Chart-White_Black"), Inter.getLocText("Chart-Black_White")});
tooltipStyleLabel = new UILabel(Inter.getLocText("Chart-Style_Name"));
tooltipShowType = new UIComboBox(new String []{Inter.getLocText("Chart-Series_SingleData"), Inter.getLocText("Chart-Series_AllData")});
tooltipShowType = new UIComboBox(new String[]{Inter.getLocText("Chart-Series_SingleData"), Inter.getLocText("Chart-Series_AllData")});
tooltipShowTypeLabel = new UILabel(Inter.getLocText("Chart-Use_Show"));
isAddressTittle = new UICheckBox(Inter.getLocText("Chart-Area_Title"));
isAddress = new UICheckBox(Inter.getLocText("Chart-Gis_Address"));
isAddressName = new UICheckBox(Inter.getLocText("Chart-Address_Name"));
isAxisShowToolTip = new UICheckBox(Inter.getLocText("Chart-Interactive_AxisTooltip"));
isAxisZoom = new UICheckBox(Inter.getLocText("Chart-Use_Zoom"));
isAutoRefresh = new UICheckBox(Inter.getLocText(new String[]{"Chart-Use_Auto", "Chart-Use_Refresh"}));
autoRefreshTime = new UISpinner(1, Integer.MAX_VALUE, 1);
superLink = new UICorrelationComboBoxPane();
isAxisShowToolTip = new UICheckBox(Inter.getLocText("Chart-Interactive_AxisTooltip"));
isAxisZoom = new UICheckBox(Inter.getLocText("Chart-Use_Zoom"));
isAutoRefresh = new UICheckBox(Inter.getLocText(new String[]{"Chart-Use_Auto", "Chart-Use_Refresh"}));
autoRefreshTime = new UISpinner(1, Integer.MAX_VALUE, 1);
superLink = new UICorrelationComboBoxPane();
isAutoRefresh.addActionListener(new ActionListener() {
isAutoRefresh.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
checkAutoRefresh();
@ -175,9 +178,9 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
});
timeSwitch = new UICheckBox(Inter.getLocText("FR-Chart-Interactive_timeSwitch"));
timeSwitchPane = new TimeSwitchPane();
initFormatListener();
return initPaneWithListener();
}
initFormatListener();
return initPaneWithListener();
}
private void initFormatListener() {
@ -187,7 +190,7 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
@Override
public void itemStateChanged(ItemEvent e) {
timeSwitch.setEnabled(isAxisZoom.isSelected());
if(!isAxisZoom.isSelected()){
if (!isAxisZoom.isSelected()) {
timeSwitch.setSelected(false);
}
}
@ -253,19 +256,20 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
});
}
private void checkAutoRefresh() {
GUICoreUtils.setEnabled(autoRefreshTime, isAutoRefresh.isSelected());
}
private void checkAutoRefresh() {
GUICoreUtils.setEnabled(autoRefreshTime, isAutoRefresh.isSelected());
}
/**
* 反正后面还有relayout,这边init一下就好了 保证所有的init 加入界面 并且加载入事件.
* @return
*/
private JPanel initPaneWithListener() {
initDataPointToolTipPane();
initAxisShowPane();
initAutoRefreshPane();
initSuperlinkPane();
/**
* 反正后面还有relayout,这边init一下就好了 保证所有的init 加入界面 并且加载入事件.
*
* @return
*/
private JPanel initPaneWithListener() {
initDataPointToolTipPane();
initAxisShowPane();
initAutoRefreshPane();
initSuperlinkPane();
initTimeSwitchPane();
@ -284,34 +288,33 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
};
//初始化界面时 加载事件
return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
}
}
private void initTimeSwitchPane(){
private void initTimeSwitchPane() {
timeSwitchContainer = new JPanel(new BorderLayout());
timeSwitchContainer.add(timeSwitch, BorderLayout.CENTER);
}
/**
* 全部初始化, 对所有的界面 都加入, 然后会加载事件响应. 后续再relayout.
*/
private void initDataPointToolTipPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = new double[]{p, f};
double[] rowSize = new double[]{p, p, p, p, p, p, p};
private void initDataPointToolTipPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = new double[]{p, f};
double[] rowSize = new double[]{p, p, p, p, p, p, p};
Component[][] components = new Component[][]{
new Component[]{isDatapointValue, dataPointValueFormat},
new Component[]{isDatapointPercent, dataPointPercentFormat},
new Component[]{isAddress, null},
new Component[]{isAddressName,null},
new Component[]{isAddressName, null},
new Component[]{isAddressTittle, null},
new Component[]{tooltipShowTypeLabel, tooltipShowType},
new Component[]{tooltipStyleLabel, tooltipStyle}
};
tooltipPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"ChartData-Tooltip"},components, rowSize, columnSize);
}
tooltipPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"ChartData-Tooltip"}, components, rowSize, columnSize);
}
private void relayoutDataPointToolTipPane(Plot plot) {
double p = TableLayout.PREFERRED;
@ -319,21 +322,21 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
double[] columnSize = new double[]{p, f};
double[] rowSize = new double[]{p, p};
if(plot.isShowAllDataPointLabel()) {
if (plot.isShowAllDataPointLabel()) {
isDatapointPercent.setText(Inter.getLocText("Chart-Value_Conversion"));
}
if(plot.isSupportAddress4Gis()) {
if (plot.isSupportAddress4Gis()) {
UIButton tmpButton = new UIButton(); //用来调整对齐
tmpButton.setVisible(false);
rowSize = new double[]{p, p, p, p, p};
Component[][] components = new Component[][]{
new Component[]{isAddress, null},
new Component[]{isAddressName,null},
new Component[]{isAddressName, null},
new Component[]{isAddressTittle, tmpButton},
new Component[]{isDatapointValue, dataPointValueFormat},
};
tooltipPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"ChartData-Tooltip"},components, rowSize, columnSize);
} else if(plot.isSupportValuePercent()) {
tooltipPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"ChartData-Tooltip"}, components, rowSize, columnSize);
} else if (plot.isSupportValuePercent()) {
Component[][] components;
if (plot.isSupportTooltipSeriesType()) {
rowSize = new double[]{p, p, p, p};
@ -346,18 +349,18 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
} else {
rowSize = new double[]{p, p, p};
components = new Component[][]{
new Component[]{isDatapointValue, dataPointValueFormat},
new Component[]{isDatapointPercent, dataPointPercentFormat},
new Component[]{isDatapointValue, dataPointValueFormat},
new Component[]{isDatapointPercent, dataPointPercentFormat},
getTooltipStyleComponent()
};
}
tooltipPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"ChartData-Tooltip"},components, rowSize, columnSize);
tooltipPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"ChartData-Tooltip"}, components, rowSize, columnSize);
} else {
Component[][] components = new Component[][]{
new Component[]{isDatapointValue, dataPointValueFormat},
getTooltipStyleComponent()
};
tooltipPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"ChartData-Tooltip"},components, rowSize, columnSize);
tooltipPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"ChartData-Tooltip"}, components, rowSize, columnSize);
}
}
@ -368,8 +371,8 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
new Component[]{tooltipShowTypeLabel, tooltipShowType}
};
double[] newColumnSize = new double[]{f, p};
double []newRowSize = new double[]{p};
return new Component[] {TableLayoutHelper.createTableLayoutPane(newComponents, newRowSize, newColumnSize), null};
double[] newRowSize = new double[]{p};
return new Component[]{TableLayoutHelper.createTableLayoutPane(newComponents, newRowSize, newColumnSize), null};
}
private Component[] getTooltipStyleComponent() {
@ -379,53 +382,53 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
new Component[]{tooltipStyleLabel, tooltipStyle}
};
double[] newColumnSize = new double[]{f, p};
double []newRowSize = new double[]{p};
return new Component[] {TableLayoutHelper.createTableLayoutPane(newComponents, newRowSize, newColumnSize), null};
}
private void initAxisShowPane() {
double p = TableLayout.PREFERRED;
double[] columnSize = new double[]{p};
double[] rowSize = new double[]{p};
Component[][] components = new Component[][]{
new Component[]{isAxisShowToolTip},
};
axisShowPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"ChartF-Axis", "Chart-Interactive"},components, rowSize, columnSize);
}
private void initAutoRefreshPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = new double[]{p, f};
double[] rowSize = new double[]{p, p, p,p};
Component[][] components = new Component[][]{
new Component[]{isAutoRefresh,null},
new Component[]{GUICoreUtils.createFlowPane(new Component[]{
new UILabel(Inter.getLocText("Chart-Time_Interval")),
autoRefreshTime,
new UILabel(Inter.getLocText("Chart-Time_Seconds"))
}, 1)},
double[] newRowSize = new double[]{p};
return new Component[]{TableLayoutHelper.createTableLayoutPane(newComponents, newRowSize, newColumnSize), null};
}
private void initAxisShowPane() {
double p = TableLayout.PREFERRED;
double[] columnSize = new double[]{p};
double[] rowSize = new double[]{p};
Component[][] components = new Component[][]{
new Component[]{isAxisShowToolTip},
};
axisShowPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"ChartF-Axis", "Chart-Interactive"}, components, rowSize, columnSize);
}
private void initAutoRefreshPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = new double[]{p, f};
double[] rowSize = new double[]{p, p, p, p};
Component[][] components = new Component[][]{
new Component[]{isAutoRefresh, null},
new Component[]{GUICoreUtils.createFlowPane(new Component[]{
new UILabel(Inter.getLocText("Chart-Time_Interval")),
autoRefreshTime,
new UILabel(Inter.getLocText("Chart-Time_Seconds"))
}, 1)},
new Component[]{new UILabel("<html><font size='2' face='Microsoft Yahei' color='red'>" + Inter.getLocText("FR-Chart-AutoRefresh_NotSupportIMGAndReportData") + "</font></html>"), null},
};
autoRefreshPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"Data-Check"},components, rowSize, columnSize);
}
private void initSuperlinkPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = new double[]{p, f};
double[] rowSize = new double[]{p};
Component[][] components = new Component[][]{
new Component[]{superLink, null},
};
superlinkPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"Hyperlink"},components, rowSize, columnSize);
}
private void relayoutWithPlot(Plot plot) {
this.removeAll();
double p = TableLayout.PREFERRED;
};
autoRefreshPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"Data-Check"}, components, rowSize, columnSize);
}
private void initSuperlinkPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = new double[]{p, f};
double[] rowSize = new double[]{p};
Component[][] components = new Component[][]{
new Component[]{superLink, null},
};
superlinkPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"Hyperlink"}, components, rowSize, columnSize);
}
private void relayoutWithPlot(Plot plot) {
this.removeAll();
double p = TableLayout.PREFERRED;
double[] columnSize = new double[]{TableLayout.FILL};
double[] rowSize = new double[]{p, p, p};
@ -440,90 +443,85 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
double[] row = new double[]{p, p, p, p, p, p};
reloaPane(TableLayoutHelper.createTableLayoutPane(components, row, columnSize));
}
}
private Component[] getChartAnimatePane(Plot plot, double[] row, double[] col) {
if(plot.isSupportAnimate() && plot.isSupportSeriesDrag()) {
if (plot.isSupportAnimate() && plot.isSupportSeriesDrag()) {
return new Component[]{TableLayoutHelper.createTableLayoutPane(
new Component[][]{
new Component[]{isChartAnimation},
new Component[][]{new Component[]{isChartAnimation},
new Component[]{isSeriesDragEnable},
new Component[]{new JSeparator()}
}, row, col)
};
}else if(plot.isSupportAnimate() && !plot.isSupportSeriesDrag()){
} else if (plot.isSupportAnimate() && !plot.isSupportSeriesDrag()) {
return new Component[]{TableLayoutHelper.createTableLayoutPane(
new Component[][]{
new Component[]{isChartAnimation},
new Component[][]{new Component[]{isChartAnimation},
new Component[]{new JSeparator()}
}, row, col)
};
}
return new Component[]{null};
return new Component[]{null};
}
private void relayoutTimeSwitchPane(){
private void relayoutTimeSwitchPane() {
timeSwitchContainer.removeAll();
timeSwitchContainer.add(timeSwitch, BorderLayout.CENTER);
if(timeSwitch.isSelected()){
if (timeSwitch.isSelected()) {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = new double[]{TIME_SWITCH_GAP,f};
double[] rowSize = new double[]{p};
double f = TableLayout.FILL;
double[] columnSize = new double[]{TIME_SWITCH_GAP, f};
double[] rowSize = new double[]{p};
Component[][] components = new Component[][]{
new Component[]{null, timeSwitchPane},
};
JPanel panel= TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
JPanel panel = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
timeSwitchContainer.add(panel, BorderLayout.SOUTH);
}
timeSwitchContainer.revalidate();
}
private Component[] getChartScalePane(Plot plot, double[] row, double[] col) {
boolean isNeedTimeSwitch = plot.getxAxis()!=null && plot.getxAxis().isDate();
if(plot.isSupportZoomCategoryAxis() && !isNeedTimeSwitch) {
boolean isNeedTimeSwitch = plot.getxAxis() != null && plot.getxAxis().isDate();
if (plot.isSupportZoomCategoryAxis() && !isNeedTimeSwitch) {
return new Component[]{TableLayoutHelper.createTableLayoutPane(
new Component[][]{
new Component[]{isAxisZoom},
new Component[][]{new Component[]{isAxisZoom},
new Component[]{new JSeparator()}
}, row, col)
};
}else if(plot.isSupportZoomCategoryAxis() && isNeedTimeSwitch){
} else if (plot.isSupportZoomCategoryAxis() && isNeedTimeSwitch) {
return new Component[]{TableLayoutHelper.createTableLayoutPane(
new Component[][]{
new Component[]{isAxisZoom},
new Component[][]{new Component[]{isAxisZoom},
new Component[]{timeSwitchContainer},
new Component[]{new JSeparator()}
}, row, col)
};
}
return new Component[]{null};
return new Component[]{null};
}
private Component[] getDataTooltipPane(Plot plot, double[] row, double[] col) {
relayoutDataPointToolTipPane(plot);
if(plot.isSupportTooltipInInteractivePane()) {
if (plot.isSupportTooltipInInteractivePane()) {
return new Component[]{TableLayoutHelper.createTableLayoutPane(new Component[][]{
new Component[]{tooltipPane}, new Component[]{new JSeparator()}}, row, col)};
}
return new Component[]{null};
return new Component[]{null};
}
private Component[] getAxisTipPane(Plot plot, double[] row, double[] col) {
if(plot.isSupportAxisTip()) {
if (plot.isSupportAxisTip()) {
return new Component[]{TableLayoutHelper.createTableLayoutPane(new Component[][]{
new Component[]{axisShowPane}, new Component[]{new JSeparator()}}, row, col)};
}
return new Component[]{null};
return new Component[]{null};
}
private Component[] getAutoRefreshPane(Plot plot, double[] row, double[] col) {
if(plot.isSupportAutoRefresh()) {
if (plot.isSupportAutoRefresh()) {
return new Component[]{TableLayoutHelper.createTableLayoutPane(
new Component[][]{
new Component[]{autoRefreshPane},
new Component[][]{new Component[]{autoRefreshPane},
new Component[]{new JSeparator()}
}, row, col)
};
@ -536,16 +534,16 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
return new Component[]{superlinkPane};
}
@Override
public void populateBean(Chart chart) {
if (chart == null || chart.getPlot() == null) {
return;
}
@Override
public void populateBean(Chart chart) {
if (chart == null || chart.getPlot() == null) {
return;
}
Plot plot = chart.getPlot();
this.plot =plot;
Plot plot = chart.getPlot();
this.plot = plot;
relayoutWithGis(chart, plot);
relayoutWithPlot(plot);
relayoutWithPlot(plot);
populateChartAnimate(chart, plot);
populateChartScale(plot);
@ -554,63 +552,63 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
populateAutoRefresh(chart);
populateHyperlink(plot);
checkAutoRefresh();
}
checkAutoRefresh();
}
private void relayoutWithGis(Chart chart, Plot plot) {
if(plot.isSupportAddress4Gis()) {
if (plot.isSupportAddress4Gis()) {
TopDefinitionProvider definition = chart.getFilterDefinition();
boolean addressType = true;
if(definition instanceof GisMapTableDefinition){
addressType = ((GisMapTableDefinition)definition).isAddress();
}else if(definition instanceof GisMapReportDefinition){
addressType = ((GisMapReportDefinition)definition).isAddress();
if (definition instanceof GisMapTableDefinition) {
addressType = ((GisMapTableDefinition) definition).isAddress();
} else if (definition instanceof GisMapReportDefinition) {
addressType = ((GisMapReportDefinition) definition).isAddress();
}
if(addressType){
if (addressType) {
this.isAddress.setText(Inter.getLocText("Chart-Use_Address"));
}else{
} else {
this.isAddress.setText(Inter.getLocText("Chart-Use_LatLng"));
}
}
}
private void populateChartAnimate(Chart chart, Plot plot) {
if(plot.isSupportAnimate()) {
if (plot.isSupportAnimate()) {
isChartAnimation.setSelected(chart.isJSDraw());
}
if(plot.isSupportSeriesDrag()){
if (plot.isSupportSeriesDrag()) {
isSeriesDragEnable.setSelected(plot.isSeriesDragEnable());
}
}
private void populateChartScale(Plot plot) {
if(plot.isSupportZoomCategoryAxis()) {
if (plot.isSupportZoomCategoryAxis()) {
isAxisZoom.setSelected(plot.getxAxis() != null && plot.getxAxis().isZoom());
}
timeSwitch.setSelected(false);
timeSwitch.setEnabled(false);
//只有坐标轴为时间坐标轴,并且勾选了图表缩放的时候,才支持时间切换
if(!plot.isSupportZoomCategoryAxis() || !isAxisZoom.isSelected()){
return;
if (!plot.isSupportZoomCategoryAxis() || !isAxisZoom.isSelected()) {
return;
}
if(plot.getxAxis() ==null && !plot.getxAxis().isDate()){
if (plot.getxAxis() == null && !plot.getxAxis().isDate()) {
return;
}
timeSwitch.setEnabled(true);
ArrayList<TimeSwitchAttr> timeMap=plot.getxAxis().getTimeSwitchMap();
ArrayList<TimeSwitchAttr> timeMap = plot.getxAxis().getTimeSwitchMap();
timeSwitch.setSelected(timeMap != null && !timeMap.isEmpty());
if(timeSwitch.isSelected()){
if (timeSwitch.isSelected()) {
timeSwitchPane.populate(plot);
}
}
private void populateDataTooltip(Plot plot) {
if(plot.isSupportTooltipInInteractivePane()) {
if (plot.isSupportTooltipInInteractivePane()) {
AttrContents contents = plot.getHotTooltipStyle();
if (contents == null) {
return;
@ -626,12 +624,12 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
} else {
tooltipStyle.setSelectedIndex(1);
}
if(plot.isSupportValuePercent()) {
if (plot.isSupportValuePercent()) {
percentFormat = contents.getPercentFormat();
isDatapointPercent.setSelected(dataLabel.contains(ChartConstants.PERCENT_PARA));
}
if(plot.isSupportAddress4Gis()) {
if (plot.isSupportAddress4Gis()) {
isAddressTittle.setSelected(dataLabel.contains(ChartConstants.AREA_TITTLE_PARA));
isAddress.setSelected(dataLabel.contains(ChartConstants.ADDRESS_PARA));
isAddressName.setSelected(dataLabel.contains(ChartConstants.ADDRESS_NAME_PARA));
@ -648,14 +646,14 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
}
private void populateAxisTip(Plot plot) {
if(plot.isSupportAxisTip()) {
if (plot.isSupportAxisTip()) {
isAxisShowToolTip.setSelected(plot.isInteractiveAxisTooltip());
}
}
protected void populateAutoRefresh(Chart chart) {
Plot plot = chart.getPlot();
if(plot.isSupportAutoRefresh()) {
if (plot.isSupportAutoRefresh()) {
if (plot.getAutoRefreshPerSecond() < 1) {
isAutoRefresh.setSelected(false);
autoRefreshTime.setValue(2);
@ -681,11 +679,11 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
List<ChartUIMenuNameableCreator> hyperList = new ArrayList<ChartUIMenuNameableCreator>();
NameJavaScriptGroup nameGroup = plot.getHotHyperLink();
for(int i = 0; nameGroup != null && i < nameGroup.size(); i++) {
for (int i = 0; nameGroup != null && i < nameGroup.size(); i++) {
NameJavaScript javaScript = nameGroup.getNameHyperlink(i);
if(javaScript != null && javaScript.getJavaScript() != null) {
if (javaScript != null && javaScript.getJavaScript() != null) {
JavaScript script = javaScript.getJavaScript();
hyperList.add(new ChartUIMenuNameableCreator(plot, javaScript.getName(), script, getUseMap(paneMap, script.getClass())));
hyperList.add(new ChartUIMenuNameableCreator(plot.getHyperLinkEditorMap(), javaScript.getName(), script, getUseMap(paneMap, script.getClass())));
}
}
@ -693,13 +691,13 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
superLink.doLayout();
}
@Override
public void updateBean(Chart chart) {
if (chart == null || chart.getPlot() == null) {
return;
}
@Override
public void updateBean(Chart chart) {
if (chart == null || chart.getPlot() == null) {
return;
}
Plot plot = chart.getPlot();
Plot plot = chart.getPlot();
updateChartAnimate(chart, plot);
updateChartScale(plot);
@ -707,38 +705,38 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
updateAxisTip(plot);
updateAutoRefresh(plot);
updateHyperlink(plot);
}
}
private void updateChartAnimate(Chart chart, Plot plot) {
if(plot.isSupportAnimate()) {
if (plot.isSupportAnimate()) {
chart.setJSDraw(isChartAnimation.isSelected());
}
if(plot.isSupportSeriesDrag()){
if (plot.isSupportSeriesDrag()) {
plot.setSeriesDragEnable(isSeriesDragEnable.isSelected());
}
}
private void updateChartScale(Plot plot) {
if(plot.isSupportZoomCategoryAxis() && plot.getxAxis() != null) {
if (plot.isSupportZoomCategoryAxis() && plot.getxAxis() != null) {
plot.getxAxis().setZoom(isAxisZoom.isSelected());
}
if(plot.getxAxis() == null){
if (plot.getxAxis() == null) {
return;
}
boolean isNeedTimeSwitch = plot.getxAxis()!=null && plot.getxAxis().isDate();
boolean isClear = !isNeedTimeSwitch || !timeSwitch.isSelected();
if(isClear && plot.getxAxis().getTimeSwitchMap() != null){
boolean isNeedTimeSwitch = plot.getxAxis() != null && plot.getxAxis().isDate();
boolean isClear = !isNeedTimeSwitch || !timeSwitch.isSelected();
if (isClear && plot.getxAxis().getTimeSwitchMap() != null) {
plot.getxAxis().getTimeSwitchMap().clear();
return;
}
if(plot.getxAxis().isDate() && timeSwitch.isSelected()){
if (plot.getxAxis().isDate() && timeSwitch.isSelected()) {
timeSwitchPane.update(plot);
}
}
private void updateDataTooltip(Plot plot) {
if(plot.isSupportTooltipInInteractivePane()) {
if (plot.isSupportTooltipInInteractivePane()) {
AttrContents seriesAttrContents = plot.getHotTooltipStyle();
if (seriesAttrContents == null) {
seriesAttrContents = new AttrContents();
@ -746,21 +744,19 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
String contents = plot.isSupportAddress4Gis() ? getGisTooltipContent() : getTooltipContent(plot);
seriesAttrContents.setSeriesLabel(contents);
if(tooltipStyle != null){
if (tooltipStyle != null) {
boolean isWhiteBackground = tooltipStyle.getSelectedIndex() == 0;
seriesAttrContents.setWhiteBackground(isWhiteBackground);
}
if(tooltipShowType != null){
if (tooltipShowType != null) {
boolean isShowMutiSeries = plot.isSupportTooltipSeriesType() && tooltipShowType.getSelectedIndex() == 1;
seriesAttrContents.setShowMutiSeries(isShowMutiSeries);
}
seriesAttrContents.setFormat(valueFormat);
if(plot.isSupportValuePercent()) {
if (percentFormat != null) {
seriesAttrContents.setPercentFormat(percentFormat);
}
if (plot.isSupportValuePercent() && percentFormat != null) {
seriesAttrContents.setPercentFormat(percentFormat);
}
}
}
@ -785,23 +781,24 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
String contents = StringUtils.EMPTY;
contents += ChartConstants.SERIES_PARA + ChartConstants.BREAKLINE_PARA + ChartConstants.CATEGORY_PARA;
boolean noPara = true;
if(isDatapointValue.isSelected()){
if (isDatapointValue.isSelected()) {
contents += ChartConstants.BREAKLINE_PARA + ChartConstants.VALUE_PARA;
noPara = false;
}
if(isAddressTittle.isSelected()){
if (isAddressTittle.isSelected()) {
contents += ChartConstants.BREAKLINE_PARA + ChartConstants.AREA_TITTLE_PARA;
noPara = false;
}
if(isAddress.isSelected()){
if (isAddress.isSelected()) {
contents += ChartConstants.BREAKLINE_PARA + ChartConstants.ADDRESS_PARA;
noPara = false;
}
if(isAddressName.isSelected()){
contents += ChartConstants.BREAKLINE_PARA + ChartConstants.ADDRESS_NAME_PARA;;
if (isAddressName.isSelected()) {
contents += ChartConstants.BREAKLINE_PARA + ChartConstants.ADDRESS_NAME_PARA;
;
noPara = false;
}
if(noPara){
if (noPara) {
contents = null;
}
@ -815,8 +812,8 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
}
private void updateAutoRefresh(Plot plot) {
if(plot.isSupportAutoRefresh()) {
if(isAutoRefresh.isSelected() && autoRefreshTime.getValue() >= 2) {
if (plot.isSupportAutoRefresh()) {
if (isAutoRefresh.isSelected() && autoRefreshTime.getValue() >= 2) {
plot.setAutoRefreshPerSecond((int) autoRefreshTime.getValue());
} else {
plot.setAutoRefreshPerSecond(0);
@ -830,61 +827,62 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
superLink.resetItemName();
List list = superLink.updateBean();
for(int i = 0; i < list.size(); i++) {
UIMenuNameableCreator menu = (UIMenuNameableCreator)list.get(i);
NameJavaScript nameJava = new NameJavaScript(menu.getName(), (JavaScript)menu.getObj());
for (int i = 0; i < list.size(); i++) {
UIMenuNameableCreator menu = (UIMenuNameableCreator) list.get(i);
NameJavaScript nameJava = new NameJavaScript(menu.getName(), (JavaScript) menu.getObj());
nameGroup.addNameHyperlink(nameJava);
}
plot.setHotHyperLink(nameGroup);
}
protected Class<? extends BasicBeanPane> getUseMap(HashMap map, Object key) {
if(map.get(key) != null){
return (Class<? extends BasicBeanPane>)map.get(key);
protected Class<? extends BasicBeanPane> getUseMap(HashMap map, Object key) {
if (map.get(key) != null) {
return (Class<? extends BasicBeanPane>) map.get(key);
}
//引擎在这边放了个provider。。
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()){
Class clz = (Class)iterator.next();
if(clz.isAssignableFrom((Class)key)){
return (Class<? extends BasicBeanPane>)map.get(clz);
while (iterator.hasNext()) {
Class clz = (Class) iterator.next();
if (clz.isAssignableFrom((Class) key)) {
return (Class<? extends BasicBeanPane>) map.get(clz);
}
}
return null;
}
protected List<ChartUIMenuNameableCreator> refreshList(HashMap map) {
List<ChartUIMenuNameableCreator> list = new ArrayList<ChartUIMenuNameableCreator>();
}
protected List<ChartUIMenuNameableCreator> refreshList(HashMap map) {
List<ChartUIMenuNameableCreator> list = new ArrayList<ChartUIMenuNameableCreator>();
java.util.HashMap<String, Formula> hyperLinkEditorMap = plot.getHyperLinkEditorMap();
list.add(new ChartUIMenuNameableCreator(plot, Inter.getLocText("Chart-Link_Reportlet"),
list.add(new ChartUIMenuNameableCreator(hyperLinkEditorMap, Inter.getLocText("Chart-Link_Reportlet"),
new ReportletHyperlink(), getUseMap(map, ReportletHyperlink.class)));
list.add(new ChartUIMenuNameableCreator(plot, Inter.getLocText("Chart-Link_Mail"), new EmailJavaScript(), ChartEmailPane.class));
list.add(new ChartUIMenuNameableCreator(plot, Inter.getLocText("Chart-Link_Web"),
list.add(new ChartUIMenuNameableCreator(hyperLinkEditorMap, Inter.getLocText("Chart-Link_Mail"), new EmailJavaScript(), ChartEmailPane.class));
list.add(new ChartUIMenuNameableCreator(hyperLinkEditorMap, Inter.getLocText("Chart-Link_Web"),
new WebHyperlink(), getUseMap(map, WebHyperlink.class)));
list.add(new ChartUIMenuNameableCreator(plot, Inter.getLocText("Chart-Link_Dynamic_Parameters"),
list.add(new ChartUIMenuNameableCreator(hyperLinkEditorMap, Inter.getLocText("Chart-Link_Dynamic_Parameters"),
new ParameterJavaScript(), getUseMap(map, ParameterJavaScript.class)));
list.add(new ChartUIMenuNameableCreator(plot, "JavaScript", new JavaScriptImpl(), getUseMap(map, JavaScriptImpl.class)));
list.add(new ChartUIMenuNameableCreator(hyperLinkEditorMap, "JavaScript", new JavaScriptImpl(), getUseMap(map, JavaScriptImpl.class)));
list.add(new ChartUIMenuNameableCreator(plot, Inter.getLocText("Chart-Float_Chart"),
list.add(new ChartUIMenuNameableCreator(hyperLinkEditorMap, Inter.getLocText("Chart-Float_Chart"),
new ChartHyperPoplink(), getUseMap(map, ChartHyperPoplink.class)));
list.add(new ChartUIMenuNameableCreator(plot, Inter.getLocText("Chart-Link_Cell"),
list.add(new ChartUIMenuNameableCreator(hyperLinkEditorMap, Inter.getLocText("Chart-Link_Cell"),
new ChartHyperRelateCellLink(), getUseMap(map, ChartHyperRelateCellLink.class)));
list.add(new ChartUIMenuNameableCreator(plot, Inter.getLocText("Chart-Link_Float"),
list.add(new ChartUIMenuNameableCreator(hyperLinkEditorMap, Inter.getLocText("Chart-Link_Float"),
new ChartHyperRelateFloatLink(), getUseMap(map, ChartHyperRelateFloatLink.class)));
FormHyperlinkProvider hyperlink = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
list.add(new ChartUIMenuNameableCreator(plot, Inter.getLocText("Chart-Link_Form"),
hyperlink, getUseMap(map, FormHyperlinkProvider.class)));
return list;
}
FormHyperlinkProvider hyperlink = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
list.add(new ChartUIMenuNameableCreator(hyperLinkEditorMap, Inter.getLocText("Chart-Link_Form"),
hyperlink, getUseMap(map, FormHyperlinkProvider.class)));
return list;
}
private HashMap getPlotHyperMap() {
if(normalMap.isEmpty()) {
FormHyperlinkProvider fp = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
if (normalMap.isEmpty()) {
FormHyperlinkProvider fp = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
normalMap.put(ReportletHyperlink.class, ReportletHyperlinkPane.class);
normalMap.put(EmailJavaScript.class, ChartEmailPane.class);
normalMap.put(WebHyperlink.class, WebHyperlinkPane.class);
@ -897,33 +895,33 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
normalMap.put(FormHyperlinkProvider.class, FormHyperlinkPane.class);
//兼容老的FormHyperlink.class
if(fp != null){
if (fp != null) {
normalMap.put(fp.getClass(), FormHyperlinkPane.class);
}
}
return normalMap;
}
@Override
public Chart updateBean() {
return null;
}
@Override
public Chart updateBean() {
return null;
}
/**
* 给组件登记一个观察者监听事件
*
* @param listener 观察者监听事件
*/
* 给组件登记一个观察者监听事件
*
* @param listener 观察者监听事件
*/
public void registerChangeListener(UIObserverListener listener) {
timeSwitch.registerChangeListener(listener);
timeSwitchPane.registerChangeListener(listener);
}
/**
* 组件是否需要响应添加的观察者事件
*
* @return 如果需要响应观察者事件则返回true否则返回false
*/
* 组件是否需要响应添加的观察者事件
*
* @return 如果需要响应观察者事件则返回true否则返回false
*/
public boolean shouldResponseChangeListener() {
return true;
}

32
designer_chart/src/com/fr/design/module/ChartHyperlinkGroup.java

@ -16,25 +16,27 @@ import com.fr.stable.ArrayUtils;
import com.fr.stable.bridge.StableFactory;
/**
* 图表的超级链接界面. 比一般的HyperlinkGroupPane多了图表的相关超级链接
* 图表的超级链接界面. 比一般的HyperlinkGroupPane多了图表的相关超级链接
*
* @author kunsnat E-mail:kunsnat@gmail.com
* @version 创建时间2013-6-26 下午04:55:10
*/
public class ChartHyperlinkGroup extends BaseHyperlinkGroup {
/**
* 返回支持的超级链接类型
* @return NameableCreator[]
*/
public NameableCreator[] getHyperlinkCreators() {
FormHyperlinkProvider formHyperlink = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
NameableCreator[] realted4CharthyperUse = {
new NameObjectCreator(Inter.getLocText("FR-Designer_Chart_Float_chart"), ChartHyperPoplink.class, ChartHyperPoplinkPane.CHART_NO_RENAME.class),
new NameObjectCreator(Inter.getLocText("FR-Designer_Chart_Cell"), ChartHyperRelateCellLink.class, ChartHyperRelateCellLinkPane.CHART_NO_RENAME.class),
new NameObjectCreator(Inter.getLocText("FR-Designer_Chart_Float"), ChartHyperRelateFloatLink.class, ChartHyperRelateFloatLinkPane.CHART_NO_RENAME.class),
/**
* 返回支持的超级链接类型
*
* @return NameableCreator[]
*/
public NameableCreator[] getHyperlinkCreators() {
FormHyperlinkProvider formHyperlink = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
NameableCreator[] realted4CharthyperUse = {
new NameObjectCreator(Inter.getLocText("FR-Designer_Chart_Float_chart"), ChartHyperPoplink.class, ChartHyperPoplinkPane.ChartNoRename.class),
new NameObjectCreator(Inter.getLocText("FR-Designer_Chart_Cell"), ChartHyperRelateCellLink.class, ChartHyperRelateCellLinkPane.ChartNoRename.class),
new NameObjectCreator(Inter.getLocText("FR-Designer_Chart_Float"), ChartHyperRelateFloatLink.class, ChartHyperRelateFloatLinkPane.ChartNoRename.class),
new NameObjectCreator(Inter.getLocText("FR-Designer_Hyperlink-Form_link"), formHyperlink.getClass(), FormHyperlinkPane.class)};
return (NameableCreator[])ArrayUtils.addAll(super.getHyperlinkCreators(), realted4CharthyperUse);
}
return (NameableCreator[]) ArrayUtils.addAll(super.getHyperlinkCreators(), realted4CharthyperUse);
}
}

4
designer_chart/src/com/fr/design/module/FormHyperlinkGroup.java

@ -28,8 +28,8 @@ public class FormHyperlinkGroup extends BaseHyperlinkGroup {
public NameableCreator[] getHyperlinkCreators() {
FormHyperlinkProvider formHyperlink = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
NameableCreator[] realted4CharthyperUse = {
new NameObjectCreator(Inter.getLocText("FR-Designer_Chart_Float_chart"), ChartHyperPoplink.class, ChartHyperPoplinkPane.CHART_NO_RENAME.class),
new NameObjectCreator(Inter.getLocText("FR-Designer_Chart_Cell"), ChartHyperRelateCellLink.class, ChartHyperRelateCellLinkPane.CHART_NO_RENAME.class),
new NameObjectCreator(Inter.getLocText("FR-Designer_Chart_Float_chart"), ChartHyperPoplink.class, ChartHyperPoplinkPane.ChartNoRename.class),
new NameObjectCreator(Inter.getLocText("FR-Designer_Chart_Cell"), ChartHyperRelateCellLink.class, ChartHyperRelateCellLinkPane.ChartNoRename.class),
new NameObjectCreator(Inter.getLocText("FR-Designer_Hyperlink-Form_link"), formHyperlink.getClass(), FormHyperlinkPane.class)};
return (NameableCreator[]) ArrayUtils.addAll(super.getHyperlinkCreators(), realted4CharthyperUse);

12
designer_chart/src/com/fr/plugin/chart/custom/component/VanChartHyperLinkPane.java

@ -22,6 +22,7 @@ import com.fr.design.hyperlink.WebHyperlinkPane;
import com.fr.design.javascript.JavaScriptImplPane;
import com.fr.design.javascript.ParameterJavaScriptPane;
import com.fr.design.module.DesignModuleFactory;
import com.fr.general.FRLogger;
import com.fr.general.Inter;
import com.fr.general.NameObject;
import com.fr.js.EmailJavaScript;
@ -75,17 +76,17 @@ public class VanChartHyperLinkPane extends VanChartUIListControlPane {
protected BasicBeanPane createPaneByCreators(NameableCreator creator) {
Constructor<? extends BasicBeanPane> constructor = null;
try {
constructor = creator.getUpdatePane().getConstructor(Plot.class);
return constructor.newInstance(plot);
constructor = creator.getUpdatePane().getConstructor(HashMap.class, boolean.class);
return constructor.newInstance(plot.getHyperLinkEditorMap(), false);
} catch (InstantiationException e) {
throw new RuntimeException(e);
FRLogger.getLogger().error(e.getMessage(), e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
FRLogger.getLogger().error(e.getMessage(), e);
} catch (NoSuchMethodException e) {
return super.createPaneByCreators(creator);
} catch (InvocationTargetException e) {
e.printStackTrace();
FRLogger.getLogger().error(e.getMessage(), e);
}
return null;
}
@ -122,6 +123,7 @@ public class VanChartHyperLinkPane extends VanChartUIListControlPane {
}
public void populate(TargetComponent elementCasePane) {
//populate
}
/**

16
designer_chart/src/com/fr/plugin/chart/designer/component/ChartUIMenuNameableCreator.java

@ -1,21 +1,21 @@
package com.fr.plugin.chart.designer.component;
import com.fr.chart.chartattr.Plot;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.gui.imenutable.UIMenuNameableCreator;
import com.fr.general.FRLogger;
import java.lang.reflect.Constructor;
import java.util.HashMap;
/**
* Created by hufan on 2016/11/15.
*/
public class ChartUIMenuNameableCreator extends UIMenuNameableCreator {
private Plot plot;
private HashMap hyperLinkEditorMap;
public ChartUIMenuNameableCreator(Plot plot, String name, Object obj, Class<? extends BasicBeanPane> paneClazz) {
public ChartUIMenuNameableCreator(HashMap hyperLinkEditorMap, String name, Object obj, Class<? extends BasicBeanPane> paneClazz) {
super(name, obj, paneClazz);
this.plot = plot;
this.hyperLinkEditorMap = hyperLinkEditorMap;
}
public UIMenuNameableCreator clone() {
@ -27,15 +27,15 @@ public class ChartUIMenuNameableCreator extends UIMenuNameableCreator {
} catch (IllegalAccessException e) {
FRLogger.getLogger().error("UIMenuNameableCreator IllegalAccessException");
}
return new ChartUIMenuNameableCreator(plot, name, cloneObj, (Class<? extends BasicBeanPane>) this.paneClazz);
return new ChartUIMenuNameableCreator(hyperLinkEditorMap, name, cloneObj, (Class<? extends BasicBeanPane>) this.paneClazz);
}
public BasicBeanPane getPane() {
try {
if (plot != null) {
Constructor<? extends BasicBeanPane> constructor = paneClazz.getConstructor(Plot.class);
return constructor.newInstance(plot);
if (hyperLinkEditorMap != null) {
Constructor<? extends BasicBeanPane> constructor = paneClazz.getConstructor(HashMap.class, boolean.class);
return constructor.newInstance(hyperLinkEditorMap, true);
}
} catch (Exception e) {
return super.getPane();

Loading…
Cancel
Save