diff --git a/designer_base/src/com/fr/design/editor/ValueEditorPaneFactory.java b/designer_base/src/com/fr/design/editor/ValueEditorPaneFactory.java index 2da01d896..7d0316273 100644 --- a/designer_base/src/com/fr/design/editor/ValueEditorPaneFactory.java +++ b/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 list = createEditors4Chart(plot); + public static Editor[] chartHotEditors(HashMap hyperLinkEditorMap) { + List list = createEditors4Chart(hyperLinkEditorMap); list.add(new TextEditor()); list.add(new IntegerEditor()); @@ -467,14 +466,12 @@ public class ValueEditorPaneFactory { * * @return 值编辑器 */ - private static List createEditors4Chart(BasePlot plot) { + private static List createEditors4Chart(HashMap hyperLinkEditorMap) { List lists = new ArrayList(); - if (plot == null) { + if (hyperLinkEditorMap == null) { return lists; } - HashMap map = plot.getHyperLinkEditorMap(); - - Iterator> entries = map.entrySet().iterator(); + Iterator> entries = hyperLinkEditorMap.entrySet().iterator(); while (entries.hasNext()) { Map.Entry 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); diff --git a/designer_base/src/com/fr/design/hyperlink/AbstractHyperLinkPane.java b/designer_base/src/com/fr/design/hyperlink/AbstractHyperLinkPane.java new file mode 100644 index 000000000..bdd46a9ec --- /dev/null +++ b/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 extends FurtherBasicBeanPane { + 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; + } + +} diff --git a/designer_base/src/com/fr/design/hyperlink/AbstractHyperNorthPane.java b/designer_base/src/com/fr/design/hyperlink/AbstractHyperNorthPane.java new file mode 100644 index 000000000..149fecead --- /dev/null +++ b/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 extends BasicBeanPane { + 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()); + } + +} \ No newline at end of file diff --git a/designer_base/src/com/fr/design/hyperlink/AbstractHyperlinkPane.java b/designer_base/src/com/fr/design/hyperlink/AbstractHyperlinkPane.java deleted file mode 100644 index 43f73b870..000000000 --- a/designer_base/src/com/fr/design/hyperlink/AbstractHyperlinkPane.java +++ /dev/null @@ -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 extends BasicBeanPane { - 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()); - } - -} \ No newline at end of file diff --git a/designer_base/src/com/fr/design/hyperlink/ReporletHyperNorthPane.java b/designer_base/src/com/fr/design/hyperlink/ReporletHyperNorthPane.java index 6061aa915..d88294bfd 100644 --- a/designer_base/src/com/fr/design/hyperlink/ReporletHyperNorthPane.java +++ b/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 { +public class ReporletHyperNorthPane extends AbstractHyperNorthPane { private UITextField itemNameTextField; private boolean needRenamePane = false; private UITextField reportPathTextField; @@ -70,7 +65,7 @@ public class ReporletHyperNorthPane extends AbstractHyperlinkPane { - private BasePlot plot; +public class ReportletHyperlinkPane extends AbstractHyperLinkPane { 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 { } @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 { @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 { this.northPane = northPane; } - public ReportletParameterViewPane getParameterViewPane() { - return parameterViewPane; - } - - public void setParameterViewPane(ReportletParameterViewPane parameterViewPane) { - this.parameterViewPane = parameterViewPane; - } - public UICheckBox getExtendParametersCheckBox() { return extendParametersCheckBox; } diff --git a/designer_base/src/com/fr/design/hyperlink/WebHyperNorthPane.java b/designer_base/src/com/fr/design/hyperlink/WebHyperNorthPane.java index ee3adaf76..8951c711f 100644 --- a/designer_base/src/com/fr/design/hyperlink/WebHyperNorthPane.java +++ b/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 { +public class WebHyperNorthPane extends AbstractHyperNorthPane { 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 { 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(); + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/hyperlink/WebHyperlinkPane.java b/designer_base/src/com/fr/design/hyperlink/WebHyperlinkPane.java index d906d4efa..c9e0d2ec2 100644 --- a/designer_base/src/com/fr/design/hyperlink/WebHyperlinkPane.java +++ b/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 { - private BasePlot plot; - private WebHyperNorthPane northPane; - - private ReportletParameterViewPane parameterViewPane; - +public class WebHyperlinkPane extends AbstractHyperLinkPane { + 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 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 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 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 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; + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/javascript/JavaScriptImplPane.java b/designer_base/src/com/fr/design/javascript/JavaScriptImplPane.java index dae8bc232..3c67ba7b0 100644 --- a/designer_base/src/com/fr/design/javascript/JavaScriptImplPane.java +++ b/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 { - private BasePlot plot; +public class JavaScriptImplPane extends AbstractHyperLinkPane { + private static final int BOTTOM_BORDER = 12; private UITextField itemNameTextField; - private JSContentPane jsPane; - private UITableEditorPane 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 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 model = new OneListTableModel(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(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 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 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 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 model = new OneListTableModel(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(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 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 list = importedJsPane.update(); + } + + public JavaScriptImpl updateBean() { + JavaScriptImpl javaScript = new JavaScriptImpl(); + updateBean(javaScript); + return javaScript; + } + + public void updateBean(JavaScriptImpl javaScript) { + List 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 parameterList = parameterPane.update(); - javaScript.setParameters(parameterList.toArray(new Parameter[parameterList.size()])); - javaScript.setContent(jsPane.update()); + List 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; + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/javascript/ParameterJavaScriptPane.java b/designer_base/src/com/fr/design/javascript/ParameterJavaScriptPane.java index 02981703f..9ac045d0e 100644 --- a/designer_base/src/com/fr/design/javascript/ParameterJavaScriptPane.java +++ b/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 { - private BasePlot plot; +public class ParameterJavaScriptPane extends AbstractHyperLinkPane { 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 parameterList = parameterViewPane.update(); - parameter.setParameters(parameterList.toArray(new Parameter[parameterList.size()])); - if(this.itemNameTextField != null){ + List 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; } } diff --git a/designer_base/src/com/fr/design/module/DesignModule.java b/designer_base/src/com/fr/design/module/DesignModule.java index 6fb9b2ac5..2830566c2 100644 --- a/designer_base/src/com/fr/design/module/DesignModule.java +++ b/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> classes = new ArrayList<>(); - Set 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> classes = new ArrayList<>(); + Set 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> classes = new ArrayList<>(); - Set 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> classes = new ArrayList<>(); + Set 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) + }; + } } \ No newline at end of file diff --git a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java b/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java index 5edcf38f3..6151c8538 100644 --- a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java +++ b/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 { - 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 { + 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; } } diff --git a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperRelateCellLinkPane.java b/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperRelateCellLinkPane.java index be7b2ce60..0f7f0fb12 100644 --- a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperRelateCellLinkPane.java +++ b/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{ - private static final long serialVersionUID = 7874948047886548990L; +public class ChartHyperRelateCellLinkPane extends AbstractHyperLinkPane { + 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; } } diff --git a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperRelateFloatLinkPane.java b/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperRelateFloatLinkPane.java index eed8e19a7..0ad4b8d32 100644 --- a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperRelateFloatLinkPane.java +++ b/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 { - private static final long serialVersionUID = -3308412003405587689L; +public class ChartHyperRelateFloatLinkPane extends AbstractHyperLinkPane { + 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; } } diff --git a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/FormHyperlinkPane.java b/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/FormHyperlinkPane.java index 21c28f0e9..0b670599d 100644 --- a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/FormHyperlinkPane.java +++ b/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 { - private BasePlot plot; - - private ReportletParameterViewPane parameterViewPane; +public class FormHyperlinkPane extends AbstractHyperLinkPane { + 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 { 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 { } @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 { @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 { } public void updateBean(FormHyperlinkProvider formHyperlink) { - formHyperlink.setType(getHyperlinkType()); - + formHyperlink.setType(getHyperlinkType()); + northPane.updateBean(formHyperlink); //Parameter. java.util.List parameterList = this.parameterViewPane.update(); @@ -112,10 +90,11 @@ public class FormHyperlinkPane extends BasicBeanPane { } } - 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; } diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/other/ChartDesignerInteractivePane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/other/ChartDesignerInteractivePane.java index 416a70238..19d3a8c5e 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/other/ChartDesignerInteractivePane.java +++ b/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 refreshList(HashMap map) { - List list = new ArrayList(); + List list = new ArrayList(); + java.util.HashMap 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()); diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/other/ChartInteractivePane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/other/ChartInteractivePane.java index 66efccb84..e5f9a8a7d 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/other/ChartInteractivePane.java +++ b/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 implements UIObserver{ - private static final long serialVersionUID = 3477409806918835992L; +public class ChartInteractivePane extends BasicScrollPane 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 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 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 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 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 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 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 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 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 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 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("" + Inter.getLocText("FR-Chart-AutoRefresh_NotSupportIMGAndReportData") + ""), 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 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 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 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 timeMap=plot.getxAxis().getTimeSwitchMap(); + ArrayList 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 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 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 implements UIOb List hyperList = new ArrayList(); 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 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 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 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 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 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 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 getUseMap(HashMap map, Object key) { - if(map.get(key) != null){ - return (Class)map.get(key); + protected Class getUseMap(HashMap map, Object key) { + if (map.get(key) != null) { + return (Class) map.get(key); } //引擎在这边放了个provider。。 Iterator iterator = map.keySet().iterator(); - while (iterator.hasNext()){ - Class clz = (Class)iterator.next(); - if(clz.isAssignableFrom((Class)key)){ - return (Class)map.get(clz); + while (iterator.hasNext()) { + Class clz = (Class) iterator.next(); + if (clz.isAssignableFrom((Class) key)) { + return (Class) map.get(clz); } } return null; - } - - protected List refreshList(HashMap map) { - List list = new ArrayList(); + } + + protected List refreshList(HashMap map) { + List list = new ArrayList(); + java.util.HashMap 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 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; } diff --git a/designer_chart/src/com/fr/design/module/ChartHyperlinkGroup.java b/designer_chart/src/com/fr/design/module/ChartHyperlinkGroup.java index 40e0d9d4a..c4e5e13fd 100644 --- a/designer_chart/src/com/fr/design/module/ChartHyperlinkGroup.java +++ b/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); + + } } \ No newline at end of file diff --git a/designer_chart/src/com/fr/design/module/FormHyperlinkGroup.java b/designer_chart/src/com/fr/design/module/FormHyperlinkGroup.java index 888eda397..b7d9095ff 100644 --- a/designer_chart/src/com/fr/design/module/FormHyperlinkGroup.java +++ b/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); diff --git a/designer_chart/src/com/fr/plugin/chart/custom/component/VanChartHyperLinkPane.java b/designer_chart/src/com/fr/plugin/chart/custom/component/VanChartHyperLinkPane.java index 0fbeb752f..70808d1c4 100644 --- a/designer_chart/src/com/fr/plugin/chart/custom/component/VanChartHyperLinkPane.java +++ b/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 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 } /** diff --git a/designer_chart/src/com/fr/plugin/chart/designer/component/ChartUIMenuNameableCreator.java b/designer_chart/src/com/fr/plugin/chart/designer/component/ChartUIMenuNameableCreator.java index c660d1750..f6f159c57 100644 --- a/designer_chart/src/com/fr/plugin/chart/designer/component/ChartUIMenuNameableCreator.java +++ b/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 paneClazz) { + public ChartUIMenuNameableCreator(HashMap hyperLinkEditorMap, String name, Object obj, Class 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) this.paneClazz); + return new ChartUIMenuNameableCreator(hyperLinkEditorMap, name, cloneObj, (Class) this.paneClazz); } public BasicBeanPane getPane() { try { - if (plot != null) { - Constructor constructor = paneClazz.getConstructor(Plot.class); - return constructor.newInstance(plot); + if (hyperLinkEditorMap != null) { + Constructor constructor = paneClazz.getConstructor(HashMap.class, boolean.class); + return constructor.newInstance(hyperLinkEditorMap, true); } } catch (Exception e) { return super.getPane();