Browse Source

Merging in latest from upstream (BA/design:refs/heads/dev)

* commit 'b226a5a02b08bf01530bf51da7a2a4a320ed1046': (26 commits)
  REPORT-2975 9.0更新升级 UILabel加个默认不可用的构造方法
  1
  1
  1
  BI-6684 License读取暂时还原,设计到递归,处理比较麻烦,放9.0中处理
  pmd
  pmd
  面板接口
  合并代码:将图表dev中修改合并到release
  REPORT-3216 日文版的一些翻译和显示问题20170708
  BI-6684 License读取类加密做准备
  增加license
  SLN-280 规范国际化
  SLN-280 二开需求(将原导出打印纸张背景,分开设置),经产品决定做到产品里面
  修改拼写错误
  1
  REPORT-2825 按钮出现多个, design模块忘了patch了.
  REPORT-3272 表单无法保存问题.
  无JIRA任务, build failed
  REPORT-3184 设计器安装后默认工作目录的名字
  ...
master
daniel 7 years ago
parent
commit
c5acdd2a54
  1. 7
      build.release.gradle
  2. 102
      designer/src/com/fr/design/report/ReportBackgroundPane.java
  3. 2
      designer/src/com/fr/design/webattr/WriteWebSettingPane.java
  4. 2
      designer/src/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java
  5. 2
      designer/src/com/fr/design/widget/ui/NumberEditorDefinePane.java
  6. 17
      designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java
  7. 18
      designer_base/src/com/fr/design/gui/controlpane/AbstractNameableCreator.java
  8. 12
      designer_base/src/com/fr/design/gui/controlpane/NameableCreator.java
  9. 3
      designer_base/src/com/fr/design/gui/frpane/UICorrelationComboBoxPane.java
  10. 5
      designer_base/src/com/fr/design/gui/ilable/UILabel.java
  11. 7
      designer_base/src/com/fr/design/locale/designer.properties
  12. 7
      designer_base/src/com/fr/design/locale/designer_en_US.properties
  13. 33
      designer_base/src/com/fr/design/locale/designer_ja_JP.properties
  14. 7
      designer_base/src/com/fr/design/locale/designer_ko_KR.properties
  15. 7
      designer_base/src/com/fr/design/locale/designer_zh_CN.properties
  16. 7
      designer_base/src/com/fr/design/locale/designer_zh_TW.properties
  17. 6
      designer_base/src/com/fr/design/mainframe/loghandler/DesignerLogImpl.java
  18. 3
      designer_base/src/com/fr/design/mainframe/loghandler/LogDetailPane.java
  19. 2
      designer_base/src/com/fr/design/roleAuthority/ReportAndFSManagePane.java
  20. 58
      designer_base/src/com/fr/env/RemoteEnv.java
  21. 1
      designer_base/src/com/fr/start/BaseDesigner.java
  22. 15
      designer_chart/src/com/fr/design/chart/ChartTypePane.java
  23. 6
      designer_chart/src/com/fr/design/chart/report/GisMapTableDataContentPane.java
  24. 6
      designer_chart/src/com/fr/design/mainframe/chart/ChartsConfigPane.java
  25. 4
      designer_chart/src/com/fr/design/mainframe/chart/gui/ChartTypePane.java
  26. 122
      designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/CategoryPlotMoreCateReportDataContentPane.java
  27. 4
      designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/MeterPlotReportDataContentPane.java
  28. 336
      designer_chart/src/com/fr/design/mainframe/chart/gui/other/ChartInteractivePane.java
  29. 11
      designer_chart/src/com/fr/design/mainframe/chart/gui/type/AbstractChartTypePane.java
  30. 2
      designer_form/src/com/fr/design/designer/creator/XCheckBoxGroup.java

7
build.release.gradle

@ -2,8 +2,9 @@ apply plugin: "java"
tasks.withType(JavaCompile){
options.encoding = "UTF-8"
}
def basicDir="../../"
def libDir="${basicDir}/finereport-lib-stable/master"
def libDir="${basicDir}/finereport-lib-stable"
//
FileTree files =fileTree(dir:"./",include:"build.*.gradle")
def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ("\\"))
@ -26,8 +27,8 @@ task appletJar<<{
fileset(dir:"${basicDir}/finereport-performance-stable/${branchName}/build/classes/main")
}
unjar(src:"${libDir}/3rd.jar",dest:"./tmp")
unjar(src:"${libDir}/servlet-api.jar",dest:"./tmp")
unjar(src:"${libDir}/${branchName}/3rd.jar",dest:"./tmp")
unjar(src:"${libDir}/${branchName}/servlet-api.jar",dest:"./tmp")
jar(jarfile:"build/libs/fr-applet-8.0.jar"){
fileset(dir:"build/classes"){
exclude(name:"*.*")

102
designer/src/com/fr/design/report/ReportBackgroundPane.java

@ -1,47 +1,57 @@
package com.fr.design.report;
import java.awt.BorderLayout;
import com.fr.page.ReportSettingsProvider;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.dialog.BasicPane;
import com.fr.general.Inter;
import com.fr.design.style.background.BackgroundPane;
public class ReportBackgroundPane extends BasicPane {
private UICheckBox isPrintBackgroundCheckBox;
private BackgroundPane backgroundPane;
public ReportBackgroundPane() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
backgroundPane = new BackgroundPane();
this.add(backgroundPane, BorderLayout.CENTER);
isPrintBackgroundCheckBox = new UICheckBox(
Inter.getLocText("ReportGUI-Print_Background"));
this.add(isPrintBackgroundCheckBox, BorderLayout.SOUTH);
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText(new String[]{"paper", "Background"});
}
/**
* Populate
*/
public void populate(ReportSettingsProvider reportSettings) {
this.backgroundPane.populate(reportSettings.getBackground());
this.isPrintBackgroundCheckBox.setSelected(reportSettings.isPrintBackground());
}
/**
* update
*/
public void update(ReportSettingsProvider reportSettings) {
reportSettings.setBackground(this.backgroundPane.update());
reportSettings.setPrintBackground(this.isPrintBackgroundCheckBox.isSelected());
}
package com.fr.design.report;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import com.fr.page.ReportSettingsProvider;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.dialog.BasicPane;
import com.fr.general.Inter;
import com.fr.design.style.background.BackgroundPane;
public class ReportBackgroundPane extends BasicPane {
private UICheckBox isPrintBackgroundCheckBox;
private UICheckBox isExportBackgroundCheckBox;
private BackgroundPane backgroundPane;
public ReportBackgroundPane() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
backgroundPane = new BackgroundPane();
this.add(backgroundPane, BorderLayout.CENTER);
isPrintBackgroundCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Print_Background"));
isExportBackgroundCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Export_Background"));
JPanel sourth = new JPanel();
sourth.add(isExportBackgroundCheckBox);
sourth.add(isPrintBackgroundCheckBox);
this.add(sourth, BorderLayout.SOUTH);
this.add(isPrintBackgroundCheckBox, BorderLayout.SOUTH);
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText(new String[]{"paper", "Background"});
}
/**
* Populate
*/
public void populate(ReportSettingsProvider reportSettings) {
this.backgroundPane.populate(reportSettings.getBackground());
this.isPrintBackgroundCheckBox.setSelected(reportSettings.isPrintBackground());
this.isExportBackgroundCheckBox.setSelected(reportSettings.isExportBackground());
}
/**
* update
*/
public void update(ReportSettingsProvider reportSettings) {
reportSettings.setBackground(this.backgroundPane.update());
reportSettings.setPrintBackground(this.isPrintBackgroundCheckBox.isSelected());
reportSettings.setExportBackground(this.isExportBackgroundCheckBox.isSelected());
}
}

2
designer/src/com/fr/design/webattr/WriteWebSettingPane.java

@ -56,7 +56,7 @@ public class WriteWebSettingPane extends WebSettingPane<WebWrite> {
//sheet标签页显示位置
topRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer_Top"));
bottomRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer_Bottom"));
sheetShowLocationLabel = new UILabel("sheet" + Inter.getLocText(new String[]{"Label", "Page_Number", "Display position"}) + ":", UILabel.LEFT);
sheetShowLocationLabel = new UILabel(Inter.getLocText("FR-Designer_Sheet_Label_Page_Display_Position"), UILabel.LEFT);
ButtonGroup buttonGroup = new ButtonGroup();
bottomRadioButton.setSelected(true);
buttonGroup.add(topRadioButton);

2
designer/src/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java

@ -49,7 +49,7 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane<CheckBoxGroup
checkBoxDictPane.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 0));
northPane.add(checkBoxDictPane, BorderLayout.NORTH);
JPanel chooseAllPane = new JPanel();
checkbox = new UICheckBox(Inter.getLocText(new String[]{"Provide", "Choose_All"}));
checkbox = new UICheckBox(Inter.getLocText("FR-Designer_Provide_Choose_All"));
chooseAllPane.add(checkbox);
chooseAllPane.setLayout(new FlowLayout(FlowLayout.LEFT, 8, 0));
northPane.add(chooseAllPane, BorderLayout.CENTER);

2
designer/src/com/fr/design/widget/ui/NumberEditorDefinePane.java

@ -166,7 +166,7 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor>
this.allowDecimalsCheckBox = new UICheckBox(Inter.getLocText("Allow_Decimals"));
this.decimalLength = new com.fr.design.editor.editor.IntegerEditor();
this.decimalLength.setColumns(4);
limitNumberPane = GUICoreUtils.createFlowPane(new JComponent[]{new UILabel(Inter.getLocText(new String[]{"Double", "Numbers"}) + ":"), this.decimalLength},
limitNumberPane = GUICoreUtils.createFlowPane(new JComponent[]{new UILabel(Inter.getLocText("FR-Designer_Decimal_Places")), this.decimalLength},
FlowLayout.LEFT, 4);
getValidatePane().add(GUICoreUtils.createFlowPane(new JComponent[]{this.allowDecimalsCheckBox, limitNumberPane}, FlowLayout.LEFT, 4));
this.allowDecimalsCheckBox.addActionListener(actionListener1);

17
designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java

@ -3,11 +3,13 @@ package com.fr.design.actions.file;
import com.fr.base.BaseUtils;
import com.fr.base.Env;
import com.fr.base.FRContext;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.data.tabledata.ResponseDataSourceChange;
import com.fr.base.FRCoreContext;
import com.fr.dav.LocalEnv;
import com.fr.design.DesignerEnvManager;
import com.fr.design.actions.UpdateAction;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.data.tabledata.ResponseDataSourceChange;
import com.fr.design.dialog.InformationWarnPane;
import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
@ -15,16 +17,14 @@ import com.fr.design.mainframe.TemplatePane;
import com.fr.design.menu.KeySetUtils;
import com.fr.design.menu.MenuDef;
import com.fr.design.menu.SeparatorDef;
import com.fr.design.dialog.InformationWarnPane;
import com.fr.env.RemoteEnv;
import com.fr.env.SignIn;
import com.fr.general.ComparatorUtils;
import com.fr.general.FRLogger;
import com.fr.general.GeneralContext;
import com.fr.general.Inter;
import com.fr.stable.LicUtils;
import com.fr.stable.ProductConstants;
import com.fr.stable.EnvChangedListener;
import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils;
import javax.swing.*;
@ -118,7 +118,7 @@ public class SwitchExistEnv extends MenuDef {
return;
}
SignIn.signIn(selectedEnv);
LicUtils.resetBytes();
resetLicenseBytes();
HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().refreshToolArea();
fireDSChanged();
} catch (Exception em) {
@ -127,5 +127,10 @@ public class SwitchExistEnv extends MenuDef {
TemplatePane.getInstance().editItems();
}
}
private void resetLicenseBytes() {
FRCoreContext.retryLicLock();
}
}
}

18
designer_base/src/com/fr/design/gui/controlpane/AbstractNameableCreator.java

@ -15,7 +15,7 @@ public abstract class AbstractNameableCreator implements NameableCreator {
protected Class clazzOfObject;
protected Class clazzOfInitCase;
protected Class<? extends BasicBeanPane> clazzOfEditor;
public AbstractNameableCreator(String menuName, Class clazz, Class<? extends BasicBeanPane> clazzOfEditor) {
this.menuName = menuName;
this.clazzOfObject = clazz;
@ -29,7 +29,7 @@ public abstract class AbstractNameableCreator implements NameableCreator {
this.clazzOfObject = clazz;
this.clazzOfInitCase = clazz;
}
public AbstractNameableCreator(String menuName, String iconPath, Class clazz, Class<? extends BasicBeanPane> clazzOfEditor) {
this.menuName = menuName;
this.menuIcon = BaseUtils.readIcon(iconPath);
@ -37,7 +37,7 @@ public abstract class AbstractNameableCreator implements NameableCreator {
this.clazzOfEditor = clazzOfEditor;
this.clazzOfInitCase = clazz;
}
public AbstractNameableCreator(String menuName, String iconPath, Class clazz, Class clazz4Init, Class<? extends BasicBeanPane> clazzOfEditor) {
this.menuName = menuName;
this.menuIcon = BaseUtils.readIcon(iconPath);
@ -51,7 +51,7 @@ public abstract class AbstractNameableCreator implements NameableCreator {
* get menuName
* @return
*/
public String menuName() {
public String menuName() {
return this.menuName;
}
@ -92,12 +92,12 @@ public abstract class AbstractNameableCreator implements NameableCreator {
doSthChanged4Icon(ob);
return ob;
}
return null;
}
protected void doSthChanged4Icon(Object ob){
}
/**
@ -108,9 +108,9 @@ public abstract class AbstractNameableCreator implements NameableCreator {
return null;
}
public boolean isNeedParameterWhenPopulateJControlPane(){
return false;
}
public boolean isNeedParameterWhenPopulateJControlPane(){
return false;
}
public boolean equals(Object obj) {
return obj instanceof AbstractNameableCreator

12
designer_base/src/com/fr/design/gui/controlpane/NameableCreator.java

@ -9,20 +9,20 @@ import javax.swing.*;
public interface NameableCreator {
public String menuName();
public Icon menuIcon();
public String createTooltip();
public Nameable createNameable(UnrepeatedNameHelper helper);
public Class<? extends BasicBeanPane> getUpdatePane();
public Class <? extends JavaScript> getHyperlink();
public Object acceptObject2Populate(Object ob);
public void saveUpdatedBean(ListModelElement wrapper, Object bean);
public boolean isNeedParameterWhenPopulateJControlPane();
public boolean isNeedParameterWhenPopulateJControlPane();
}

3
designer_base/src/com/fr/design/gui/frpane/UICorrelationComboBoxPane.java

@ -237,7 +237,8 @@ public class UICorrelationComboBoxPane extends JPanel implements UIObserver {
public Dimension getPreferredSize() {
Dimension dimension = new Dimension();
dimension.height = super.getPreferredSize().height;
dimension.width = addButton.getWidth() - 2;
// 不能写死,否则出现国际化显示不全的问题
dimension.width = Math.max(addButton.getWidth() - 2, super.getPreferredSize().width);
return dimension;
}
};

5
designer_base/src/com/fr/design/gui/ilable/UILabel.java

@ -29,6 +29,11 @@ public class UILabel extends JLabel {
super(text);
}
public UILabel(String text, boolean enable) {
super(text);
this.setEnabled(enable);
}
public UILabel(Icon image, int horizontalAlignment) {
super(image, horizontalAlignment);
}

7
designer_base/src/com/fr/design/locale/designer.properties

@ -1345,6 +1345,8 @@ Remove_All_Button=Remove_All_Button
FR-Designer_Component_Interval=Components Interval
ReportColumns-Columns_vertically=Columns vertically
ReportGUI-Print_Background=Print Background
FR-Designer_Print_Background=Print Background
FR-Designer_Export_Background=Export Background
Export-CSV=CSV
M_Edit-Paste=Paste
FR-Designer-Basic_Restart_Designer=Restart designer
@ -2001,3 +2003,8 @@ FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=Build Tree according parent's
FR-Designer_Build_Tree_Accord_Marked_Filed_Length=Build Tree according marked filed's length
FR-Product_Demo=Demo
FR-Designer_Tree_Data_Field=Tree Data Field
FR-Designer_Data_Filter=Data Filter
Default=Default
FR-Designer_Sheet_Label_Page_Display_Position=Sheet tab display location:
FR-Designer_Provide_Choose_All=Provide Select All
FR-Designer_Decimal_Places=Decimal Places:

7
designer_base/src/com/fr/design/locale/designer_en_US.properties

@ -1345,6 +1345,8 @@ Remove_All_Button=Remove all buttons
FR-Designer_Component_Interval=Component Interval
ReportColumns-Columns_vertically=Fixed columns per line
ReportGUI-Print_Background=Print/export background
FR-Designer_Print_Background=Print Background
FR-Designer_Export_Background=Export Background
Export-CSV=CSV
M_Edit-Paste=Paste
FR-Designer-Basic_Restart_Designer=Restart designer
@ -2002,3 +2004,8 @@ FR-Designer_Tree_Data_Field=Tree Data Field
FR-Designer_Parent_Marked_Field=Parent Tag Field
FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=Build Tree according to the parent tag field of the selected data set
FR-Product_Demo=Demo
FR-Designer_Data_Filter=Data Filter
Default=Default
FR-Designer_Sheet_Label_Page_Display_Position=Sheet tab display location:
FR-Designer_Provide_Choose_All=Provide Select All
FR-Designer_Decimal_Places=Decimal Places:

33
designer_base/src/com/fr/design/locale/designer_ja_JP.properties

@ -641,7 +641,7 @@ FR-Designer-Plugin_Detecting_Update=\u66F4\u65B0\u691C\u8A3C\u4E2D
HF-Whether_to_define_the_selected_type=\u9078\u629E\u30BF\u30A4\u30D7\u306E\u5B9A\u7FA9
StyleAlignment-Right=\u53F3\u8A70\u3081
FR-Designer_Alignment-Style=\u63C3\u3048\u65B9\u6CD5
PageSetup-Title_Start_Column=\u91CD\u8907\u30BF\u30A4\u30C8\u30EB\u5217
PageSetup-Title_Start_Column=\u91CD\u8907\u30D8\u30C3\u30C0\u30FC\u5217
Tree-Mutiple_Selection_Or_Not=\u8907\u6570\u9078\u629E
FR-Designer-Plugin_Search=\u691C\u7D22
Choose_Role=\u6A29\u9650\u5236\u5FA1
@ -779,7 +779,7 @@ FR-Base_Value=\u5024
fileLocked_undeleted=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002OK\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3001\u30EA\u30B9\u30C8\u3092\u518D\u8AAD\u307F\u8FBC\u307F\u3057\u3066\u304F\u3060\u3055\u3044\u3002
Web_Apply=WEB\u30A2\u30D7\u30EA
Refresh_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u66F4\u65B0
Set_Row_Title_End=\u91CD\u8907\u7D42\u4E86\u884C\u8A2D\u5B9A
Set_Row_Title_End=\u91CD\u8907\u30D5\u30C3\u30BF\u30FC\u884C\u8A2D\u5B9A
FR-Utils-New_Folder=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0\u30FC\u306E\u4F5C\u6210
BiasD-From-upper_left_to_lower_right=\u5DE6\u4E0A\u5074\u304B\u3089\u53F3\u4E0B\u5074\u3078\u5E83\u3052\u308B
CapsLock=Caps Lock\u304C\u30AA\u30F3\u306B\u306A\u3063\u3066\u3044\u308B
@ -793,7 +793,7 @@ BackgroundTexture-GreenMarble=\u5927\u7406\u77F3(\u7DD1)
read_time_out=\u30ED\u30FC\u30C9\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8
JavaScript-Commit_to_Database=DB\u306B\u66F8\u304D\u8FBC\u307F
DS-Relation_TableData=\u95A2\u9023\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8
CellWrite-Page_Before_Row=\u884C\u524D\u306E\u6539\u9801
CellWrite-Page_Before_Row=\u884C\u524D\u306E\u6539\u30DA\u30FC\u30B8
FR-Designer-Plugin_Load_Plugins_From_Server=\u30D7\u30E9\u30B0\u30A4\u30F3\u30B9\u30C8\u30A2\u304B\u3089\u30C7\u30FC\u30BF\u53D6\u5F97\u4E2D
D-Dispaly_Divide_Result_Set_into_Groups=\u7D50\u679C\u30BB\u30C3\u30C8\u3092\u30B0\u30EB\u30FC\u30D7\u5206\u3051
Closed=\u7D42\u4E86\u6E08\u307F
@ -886,7 +886,7 @@ Device=\u30C7\u30D0\u30A4\u30B9
M_Insert-Cell=\u30BB\u30EB\u8981\u7D20
Present-Formula_Present=\u6570\u5F0F\u5F62\u614B
FRFont-Superscript=\u4E0A\u4ED8\u304D
CellWrite-Page_Before_Column=\u5217\u524D\u306E\u6539\u9801
CellWrite-Page_Before_Column=\u5217\u524D\u306E\u6539\u30DA\u30FC\u30B8
Golden=\u91D1\u8272
Preference-Support_Cell_Editor_Definition=\u30BB\u30EB\u30A8\u30C7\u30A3\u30BF\u3092\u30B5\u30DD\u30FC\u30C8
M-Page_Preview=\u30DA\u30FC\u30B8\u5225\u30D7\u30EC\u30D3\u30E5\u30FC
@ -997,7 +997,7 @@ Hyperlink-Web_link=\u30A6\u30A7\u30D6\u30DA\u30FC\u30B8\u30EA\u30F3\u30AF
StyleAlignment-between_-90_and_90=-90\u304B\u308990\u306E\u7BC4\u56F2
FormulaD-Custom_Function=\u30AB\u30B9\u30BF\u30E0\u95A2\u6570
FR-Designer_Integer=\u6574\u6570
PageSetup-Finis_Start_Row=\u91CD\u8907\u7D42\u4E86\u884C
PageSetup-Finis_Start_Row=\u91CD\u8907\u30D5\u30C3\u30BF\u30FC\u884C
RWA-Remove_Field=\u30D5\u30A3\u30FC\u30EB\u30C9\u524A\u9664
Form-Desin_Width=\u30C7\u30B6\u30A4\u30F3\u5E45
No-tableData=\u623B\u3055\u308C\u305F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u304C\u3042\u308A\u307E\u305B\u3093
@ -1318,7 +1318,7 @@ Des-Remove_WorkSheet=\u9078\u629E\u3057\u305F\u30B7\u30FC\u30C8\u306B\u30C7\u30F
Rotation=\u56DE\u8EE2
Undefined=\u672A\u5B9A\u7FA9
Support-Auto_Complete_Shortcut=\u81EA\u52D5\u88DC\u5B8C\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC
Set_Column_Title_End=\u91CD\u8907\u7D42\u4E86\u5217\u8A2D\u5B9A
Set_Column_Title_End=\u91CD\u8907\u30D5\u30C3\u30BF\u30FC\u5217\u8A2D\u5B9A
Submit_Url=\u66F8\u304D\u8FBC\u307F\u30A2\u30C9\u30EC\u30B9
ReportServerP-Are_you_sure_to_delete_the_selected_printer=\u9078\u629E\u3055\u308C\u305F\u30D7\u30EA\u30F3\u30BF\u3092\u524A\u9664\u3057\u307E\u3059\u304B
long_data_can_not_show_fully=\u9577\u3044\u30C7\u30FC\u30BF\u306E\u8868\u793A\u306F\u4E0D\u5B8C\u5168
@ -1345,6 +1345,8 @@ Remove_All_Button=\u3059\u3079\u3066\u306E\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u
FR-Designer_Component_Interval=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u9593\u9694
ReportColumns-Columns_vertically=\u5217\u306E\u6BB5\u7D44\u307F
ReportGUI-Print_Background=\u5E33\u7968\u80CC\u666F\u306E\u5370\u5237/\u51FA\u529B
FR-Designer_Print_Background=\u5E33\u7968\u80CC\u666F\u306E\u5370\u5237
FR-Designer_Export_Background=\u5E33\u7968\u80CC\u666F\u306E\u51FA\u529B
Export-CSV=CSV(\u30AB\u30F3\u30DE\u533A\u5207\u308A)
M_Edit-Paste=\u8CBC\u308A\u4ED8\u3051(P)
FR-Designer-Basic_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u518D\u8D77\u52D5
@ -1376,7 +1378,7 @@ Compile_Success=\u30B3\u30F3\u30D1\u30A4\u30EB\u306B\u6210\u529F\u3057\u307E\u30
BackgroundTexture-RecycledPaper=\u518D\u751F\u7D19
StyleAlignment-Single_Line=1\u884C\u8868\u793A
Utils-Move_Down=\u4E0B\u3078
Please_Set_Repeat_First=\u91CD\u8907\u30BF\u30A4\u30C8\u30EB\u884C\u3068\u5217\u3092\u4E8B\u524D\u306B\u5B9A\u7FA9\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
Please_Set_Repeat_First=\u91CD\u8907\u30D8\u30C3\u30C0\u30FC\u884C\u3068\u5217\u3092\u4E8B\u524D\u306B\u5B9A\u7FA9\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
Writer-ShortCuts_Setting=\u66F8\u304D\u8FBC\u307F\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u8A2D\u5B9A
Verify-Data_Verify=\u30C7\u30FC\u30BF\u691C\u8A3C
FR-mobile_analysis_style=\u89E3\u6790\u65B9\u6CD5
@ -1407,7 +1409,7 @@ Widget-Load_By_Async=\u975E\u540C\u671F\u30ED\u30FC\u30C9
Shape=\u56F3\u5F62
BindColumn-This_Condition_has_been_existed=\u3053\u306E\u6761\u4EF6\u306F\u65E2\u306B\u3042\u308A\u307E\u3059
NS-exception_readError=\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\:1305 \u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u89E3\u6790\u30A8\u30E9\u30FC
Set_Column_Title_Start=\u91CD\u8907\u30BF\u30A4\u30C8\u30EB\u5217\u8A2D\u5B9A
Set_Column_Title_Start=\u91CD\u8907\u30D8\u30C3\u30C0\u30FC\u5217\u8A2D\u5B9A
Fri=\u91D1\u66DC\u65E5
M_Report-Report_Parameter=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF
REPORTLETS=\u8907\u6570\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u30D1\u30B9\u306E\u30D1\u30E9\u30E1\u30FC\u30BF
@ -1530,7 +1532,7 @@ M_Insert-Barcode=\u30D0\u30FC\u30B3\u30FC\u30C9
Bounds=\u30DC\u30FC\u30C0\u30FC
FR-Designer-Undo_All_Authority_Operations=\u524D\u56DE\u306E\u7DE8\u96C6\u6A29\u9650\u306E\u3059\u3079\u3066\u306E\u64CD\u4F5C\u3092\u5143\u306B\u623B\u3059
Datasource-Context=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8
CellWrite-Page_After_Column=\u5217\u5F8C
CellWrite-Page_After_Column=\u5217\u5F8C\u306E\u6539\u30DA\u30FC\u30B8
FR-Designer_Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB
Button-Group-Display-Columns=\u5217\u306E\u6570\u3092\u8868\u793A\u3059\u308B
Widget-Height=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u9AD8\u3055
@ -1737,9 +1739,9 @@ Env-Remote_Server=\u30EA\u30E2\u30FC\u30C8\u30B5\u30FC\u30D0
FR-Utils_Background=\u80CC\u666F
FR-Designer-Plugin_Warning=\u8B66\u544A
Server-version-info=\u958B\u3044\u305F\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u4E0A\u4F4D\u30A8\u30C7\u30A3\u30B7\u30E7\u30F3\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u3067\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u4E0A\u4F4D\u30A8\u30C7\u30A3\u30B7\u30E7\u30F3\u3067\u4F5C\u6210\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u3068\u30A8\u30E9\u30FC\u306E\u767A\u751F\u539F\u56E0\u3068\u306A\u308B\u307B\u304B\u3001\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u6A5F\u80FD\u3084\u5C5E\u6027\u306E\u4E00\u90E8\u3092\u5931\u3046\u6050\u308C\u304C\u3042\u308A\u307E\u3059\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4F5C\u6210\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3001\u914D\u5099\u3055\u308C\u308B\u30A8\u30C7\u30A3\u30B7\u30E7\u30F3\u3088\u308A\u3082\u4E0B\u4F4D\u306E\u30A8\u30C7\u30A3\u30B7\u30E7\u30F3\u3067\u3042\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
CellWrite-Page_After_Row=\u884C\u5F8C
CellWrite-Page_After_Row=\u884C\u5F8C\u306E\u6539\u30DA\u30FC\u30B8
HF-Right_Section=\u53F3\u5074
PageSetup-Title_Start_Row=\u91CD\u8907\u30BF\u30A4\u30C8\u30EB\u884C
PageSetup-Title_Start_Row=\u91CD\u8907\u30D8\u30C3\u30C0\u30FC\u884C
From=From
Preference-Grid_Line_Color=\u30B0\u30EA\u30C3\u30C9\u7DDA\u306E\u8272
RowTo=~
@ -1820,7 +1822,7 @@ HighLight=\u30CF\u30A4\u30E9\u30A4\u30C8
FR-Designer_Dropdown-More-Preview=\u30D7\u30EB\u30C0\u30A6\u30F3\u3067\u66F4\u306A\u308B\u30D7\u30EC\u30D3\u30E5\u30FC\u65B9\u6CD5\u3092\u53D6\u5F97
local=\u30ED\u30FC\u30AB\u30EB
FR-Designer_Gradation=\u30EC\u30D9\u30EB
PageSetup-Finis_Start_Column=\u91CD\u8907\u7D42\u4E86\u5217
PageSetup-Finis_Start_Column=\u91CD\u8907\u30D5\u30C3\u30BF\u30FC\u5217
Env-Invalid_User_and_Password=\u7121\u52B9\u306A\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u3059
FR-Designer-Plugin_All_Plugins=\u3059\u3079\u3066\u306E\u30D7\u30E9\u30B0\u30A4\u30F3
FR-Designer_Prepare_Export=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3092\u958B\u59CB\u3057\u3066\u3044\u307E\u3059\u3002\u304A\u5F85\u3061\u304F\u3060\u3055\u3044
@ -1933,7 +1935,7 @@ Sun=\u65E5
FR-Designer_ToolBar_Bottom=\u4E0B\u90E8\u306E\u30C4\u30FC\u30EB\u30D0\u30FC
Widget-Width=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5E45
Series_Name=\u7CFB\u5217\u540D
Set_Row_Title_Start=\u91CD\u8907\u30BF\u30A4\u30C8\u30EB\u884C\u8A2D\u5B9A
Set_Row_Title_Start=\u91CD\u8907\u30D8\u30C3\u30C0\u30FC\u884C\u8A2D\u5B9A
HF-Default_Page=\u65E2\u5B9A\u30DA\u30FC\u30B8
Env_Des=\u30ED\u30B0\u30A4\u30F3\u74B0\u5883\u4E2D\u306E\u5E33\u7968\u5DE5\u7A0B\u306B\u6A29\u9650\u3092\u4ED8\u4E0E\u3059\u308B\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u540D\u3068\u30D1\u30B9\u30EF\u30FC\u30C9\u306E\u8A18\u5165\u306F\u5FC5\u305A\u5BFE\u5FDC\u3059\u308B\u30ED\u30B0\u30A4\u30F3\u74B0\u5883\u306E\u30E6\u30FC\u30B6\u30FC\u3068\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093\u3002
Widget-User_Defined=\u4E8B\u524D\u5B9A\u7FA9
@ -2000,4 +2002,9 @@ FR-Designer_Tree_Data_Field=\u30C4\u30EA\u30FC\u30C7\u30FC\u30BF\u30D5\u30A3\u30
FR-Designer_Parent_Marked_Field=\u89AA\u30DE\u30FC\u30AF\u30D5\u30A3\u30FC\u30EB\u30C9
FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=\u89AA\u30DE\u30FC\u30AF\u30D5\u30A3\u30FC\u30EB\u30C9\u3088\u308A\u30C4\u30EA\u30FC\u3092\u69CB\u7BC9\u3059\u308B
FR-Product_Demo=\u88FD\u54C1\u30C7\u30E2
FR-Designer_Data_Filter=\u30C7\u30FC\u30BF\u30D5\u30A3\u30EB\u30BF
FR-Designer_Can_not_use_FormatBursh=\u9023\u7D9A\u3057\u306A\u3044\u8907\u6570\u9818\u57DF\u3067\u306F\u66F8\u5F0F\u30B3\u30D4\u30FC\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
Default=\u65E2\u5B9A
FR-Designer_Sheet_Label_Page_Display_Position=
FR-Designer_Provide_Choose_All=\u63D0\u4F9B\u3059\u3079\u3066\u9078\u629E
FR-Designer_Decimal_Places=\u5C0F\u6570\u6570\u91CF:

7
designer_base/src/com/fr/design/locale/designer_ko_KR.properties

@ -1345,6 +1345,8 @@ Remove_All_Button=\uBAA8\uB4E0\uD0A4\uD074\uB9AC\uC5B4
FR-Designer_Component_Interval=\uC5B4\uC148\uBE14\uB9AC\uAC04\uACA9
ReportColumns-Columns_vertically=\uC5F4\uC140\uB098\uB204\uAE30
ReportGUI-Print_Background=\uC778\uC1C4/\uB0B4\uBCF4\uB0B4\uAE30\uBB38\uC11C\uBC30\uACBD
FR-Designer_Print_Background=\uC778\uC1C4\uBB38\uC11C\uBC30\uACBD
FR-Designer_Export_Background=\uB0B4\uBCF4\uB0B4\uAE30\uBB38\uC11C\uBC30\uACBD
Export-CSV=CSV\uC11C\uC2DD(\uC27C\uD45C\uAD6C\uBD84)
M_Edit-Paste=\uBD99\uC5EC\uB123\uAE30(P)
FR-Designer-Basic_Restart_Designer=\uC7AC\uBD80\uD305\uC124\uACC4\uAE30
@ -2001,3 +2003,8 @@ FR-Designer_Tree_Data_Field=\uD2B8\uB9AC\uB370\uC774\uD130\uD544\uB4DC
FR-Designer_Parent_Marked_Field=\uBD80\uBAA8\uD0DC\uADF8\uD544\uB4DC
FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=\uC120\uD0DD\uD55C\uB370\uC774\uD130\uC138\uD2B8\uC758\uBD80\uBAA8\uD0DC\uADF8\uD544\uB4DC\uC5D0\uB530\uB77C\uD2B8\uB9AC\uC0DD\uC131
FR-Product_Demo=\uC81C\uD488\uC2DC\uC5F0
FR-Designer_Data_Filter=\uB370\uC774\uD130\uC120\uBCC4
Default=\uAE30\uBCF8
FR-Designer_Sheet_Label_Page_Display_Position=
FR-Designer_Provide_Choose_All=\uC81C\uACF5\uBAA8\uB450\uC120\uD0DD
FR-Designer_Decimal_Places=\uC18C\uC218\uC218\uB7C9:

7
designer_base/src/com/fr/design/locale/designer_zh_CN.properties

@ -1345,6 +1345,8 @@ Remove_All_Button=\u6E05\u9664\u6240\u6709\u6309\u94AE
FR-Designer_Component_Interval=\u7EC4\u4EF6\u95F4\u9694
ReportColumns-Columns_vertically=\u5217\u5206\u680F
ReportGUI-Print_Background=\u6253\u5370/\u5BFC\u51FA\u62A5\u8868\u80CC\u666F
FR-Designer_Print_Background=\u6253\u5370\u62A5\u8868\u80CC\u666F
FR-Designer_Export_Background=\u5BFC\u51FA\u62A5\u8868\u80CC\u666F
Export-CSV=CSV\u683C\u5F0F(\u9017\u53F7\u5206\u9694)
M_Edit-Paste=\u7C98\u8D34(P)
FR-Designer-Basic_Restart_Designer=\u91CD\u542F\u8BBE\u8BA1\u5668
@ -2001,3 +2003,8 @@ FR-Designer_Tree_Data_Field=\u6811\u6570\u636E\u5B57\u6BB5
FR-Designer_Parent_Marked_Field=\u7236\u6807\u8BB0\u5B57\u6BB5
FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=\u4F9D\u8D56\u6240\u9009\u6570\u636E\u96C6\u7684\u7236\u6807\u8BB0\u5B57\u6BB5\u6784\u5EFA\u6811
FR-Product_Demo=\u4EA7\u54C1\u6F14\u793A
FR-Designer_Data_Filter=\u6570\u636E\u7B5B\u9009
Default=\u9ED8\u8BA4
FR-Designer_Sheet_Label_Page_Display_Position=sheet\u6807\u7B7E\u9875\u663E\u793A\u4F4D\u7F6E\uFF1A
FR-Designer_Provide_Choose_All=\u63D0\u4F9B\u5168\u9009
FR-Designer_Decimal_Places=\u5C0F\u6570\u6570\u76EE\uFF1A

7
designer_base/src/com/fr/design/locale/designer_zh_TW.properties

@ -1345,6 +1345,8 @@ Remove_All_Button=\u6E05\u9664\u6240\u6709\u6309\u9215
FR-Designer_Component_Interval=\u5143\u4EF6\u9593\u9694
ReportColumns-Columns_vertically=\u6B04\u5206\u6B04
ReportGUI-Print_Background=\u5217\u5370/\u532F\u51FA\u5831\u8868\u80CC\u666F
FR-Designer_Print_Background=\u5217\u5370\u5831\u8868\u80CC\u666F
FR-Designer_Export_Background=\u532F\u51FA\u5831\u8868\u80CC\u666F
Export-CSV=CSV\u683C\u5F0F(\u9017\u865F\u5206\u9694)
M_Edit-Paste=\u8CBC\u4E0A(P)
FR-Designer-Basic_Restart_Designer=\u91CD\u555F\u8A2D\u8A08\u5668
@ -2002,3 +2004,8 @@ FR-Designer_Tree_Data_Field=\u6A39\u72C0\u8CC7\u6599\u6B04\u4F4D
FR-Designer_Parent_Marked_Field=\u7236\u6A19\u8A18\u6B04\u4F4D
FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=\u4F9D\u8CF4\u6240\u9078\u8CC7\u6599\u96C6\u7684\u7236\u6A19\u8A18\u6B04\u4F4D\u69CB\u5EFA\u6A39
FR-Product_Demo=\u529F\u80FD\u5C55\u793A
FR-Designer_Data_Filter=\u8CC7\u6599\u7BE9\u9078
Default=\u9810\u8A2D
FR-Designer_Sheet_Label_Page_Display_Position=sheet\u6A19\u7C64\u9801\u986F\u793A\u4F4D\u7F6E\uFF1A
FR-Designer_Provide_Choose_All=\u63D0\u4F9B\u5168\u9078
FR-Designer_Decimal_Places=\u5C0F\u6578\u6578\u76EE\uFF1A

6
designer_base/src/com/fr/design/mainframe/loghandler/DesignerLogImpl.java

@ -1,6 +1,7 @@
package com.fr.design.mainframe.loghandler;
import com.fr.stable.fun.impl.AbstractLogProvider;
import com.fr.stable.web.SessionProvider;
import com.fr.stable.xml.LogRecordTimeProvider;
import java.util.ArrayList;
@ -43,4 +44,9 @@ public class DesignerLogImpl extends AbstractLogProvider{
public void record(LogRecordTimeProvider logRecordTime) {
records.add(logRecordTime);
}
@Override
public void record(LogRecordTimeProvider logRecordTime, SessionProvider sessionProvider) {
}
}

3
designer_base/src/com/fr/design/mainframe/loghandler/LogDetailPane.java

@ -7,6 +7,7 @@ import javax.swing.JPanel;
import com.fr.base.BaseUtils;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
public class LogDetailPane extends JPanel{
public LogDetailPane() {
@ -20,7 +21,7 @@ public class LogDetailPane extends JPanel{
fr.setSize(600, 400);
GUICoreUtils.centerWindow(fr);
fr.setResizable(false);
fr.setTitle("日志");
fr.setTitle(Inter.getLocText("FR-Designer_Log"));
fr.setIconImage(BaseUtils.readImageWithCache("com/fr/design/images/buttonicon/history.png"));
fr.getContentPane().setLayout(new BorderLayout());
fr.getContentPane().add(this, BorderLayout.CENTER);

2
designer_base/src/com/fr/design/roleAuthority/ReportAndFSManagePane.java

File diff suppressed because one or more lines are too long

58
designer_base/src/com/fr/env/RemoteEnv.java vendored

@ -1,6 +1,14 @@
package com.fr.env;
import com.fr.base.*;
import com.fr.base.AbstractEnv;
import com.fr.base.EnvException;
import com.fr.base.FRContext;
import com.fr.base.FRCoreContext;
import com.fr.base.ModifiedTable;
import com.fr.base.Parameter;
import com.fr.base.StoreProcedureParameter;
import com.fr.base.TableData;
import com.fr.base.Utils;
import com.fr.base.remote.RemoteDeziConstants;
import com.fr.data.core.DataCoreUtils;
import com.fr.data.core.db.TableProcedure;
@ -22,7 +30,12 @@ import com.fr.file.CacheManager;
import com.fr.file.DatasourceManager;
import com.fr.file.DatasourceManagerProvider;
import com.fr.file.filetree.FileNode;
import com.fr.general.*;
import com.fr.general.ComparatorUtils;
import com.fr.general.FRLogger;
import com.fr.general.IOUtils;
import com.fr.general.Inter;
import com.fr.general.LogRecordTime;
import com.fr.general.VT4FR;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray;
import com.fr.json.JSONException;
@ -32,7 +45,14 @@ import com.fr.plugin.PluginLicense;
import com.fr.plugin.PluginLicenseManager;
import com.fr.plugin.PluginLoader;
import com.fr.share.ShareConstants;
import com.fr.stable.*;
import com.fr.stable.ArrayUtils;
import com.fr.stable.EncodeConstants;
import com.fr.stable.JavaCompileInfo;
import com.fr.stable.LicUtils;
import com.fr.stable.ProductConstants;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import com.fr.stable.SvgProvider;
import com.fr.stable.file.XMLFileManagerProvider;
import com.fr.stable.project.ProjectConstants;
import com.fr.stable.xml.XMLPrintWriter;
@ -41,17 +61,37 @@ import com.fr.stable.xml.XMLableReader;
import com.fr.web.ResourceConstants;
import javax.swing.*;
import javax.xml.transform.*;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.awt.*;
import java.io.*;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.NoRouteToHostException;
import java.net.Socket;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.logging.Level;
import java.util.regex.Pattern;
@ -1387,13 +1427,17 @@ public class RemoteEnv extends AbstractEnv {
return;
}
SignIn.signIn(remoteEnv);
LicUtils.resetBytes();
resetLicenseBytes();
HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().refreshToolArea();
} catch (Exception em) {
FRContext.getLogger().error(em.getMessage(), em);
}
}
private void resetLicenseBytes() {
FRCoreContext.retryLicLock();
}
/**
* 停止连接
*/

1
designer_base/src/com/fr/start/BaseDesigner.java

@ -67,6 +67,7 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
// 先加载设计器的国际化文件
Inter.loadLocaleFile(GeneralContext.getLocale(), DesignModule.LOCALE_FILE_PATH);
SplashWindow splashWindow = new SplashWindow(createSplashPane());
if (args != null) {
for (String arg : args) {

15
designer_chart/src/com/fr/design/chart/ChartTypePane.java

@ -5,8 +5,13 @@ package com.fr.design.chart;
*/
import com.fr.base.FRContext;
import com.fr.base.FRCoreContext;
import com.fr.chart.base.ChartInternationalNameContentBean;
import com.fr.chart.chartattr.*;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.chartattr.ChartIcon;
import com.fr.chart.chartattr.MapPlot;
import com.fr.chart.chartattr.Plot;
import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
@ -14,7 +19,6 @@ import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
import com.fr.general.RegistEditionException;
import com.fr.general.VT4FR;
import com.fr.stable.StableUtils;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
@ -150,7 +154,7 @@ public class ChartTypePane extends ChartCommonWizardPane {
String plotID = typeName[mainTypeList.getSelectedIndex()].getPlotID();
Chart chart = ChartTypeManager.getInstance().getChartTypes(plotID)[iconViewList.getSelectedIndex()];
if(chart.getPlot() != null){
if(chart.getPlot() instanceof MapPlot && !(VT4FR.isLicAvailable(StableUtils.getBytes()) && VT4FR.CHART_MAP.support())){
if(chart.getPlot() instanceof MapPlot && !supportMap()){
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Chart-Map_Not_Supported"));
throw new RegistEditionException(VT4FR.CHART_MAP);
}
@ -165,6 +169,11 @@ public class ChartTypePane extends ChartCommonWizardPane {
}
}
private boolean supportMap() {
byte[] bytes = FRCoreContext.getBytes();
return VT4FR.isLicAvailable(bytes) && VT4FR.CHART_MAP.support();
}
public void update(ChartCollection cc) {
if (cc == null) {
return;

6
designer_chart/src/com/fr/design/chart/report/GisMapTableDataContentPane.java

@ -74,6 +74,12 @@ public class GisMapTableDataContentPane extends FurtherBasicBeanPane<GisMapTable
addressType = new UIButtonGroup<String>(new String[]{Inter.getLocText("Chart-Gis_Address"), Inter.getLocText("Chart-Gis_LatLng")});
lnglatOrder = new UIButtonGroup<String>(new String[]{Inter.getLocText("Chart-Lng_First"),Inter.getLocText("Chart-Lat_First")});
addressType.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
orderPane.setVisible(addressType.getSelectedIndex() == 1);
}
});
addressBox = new UIComboBox();
addressNameBox = new UIComboBox();
double p = TableLayout.PREFERRED;

6
designer_chart/src/com/fr/design/mainframe/chart/ChartsConfigPane.java

@ -14,11 +14,11 @@ public abstract class ChartsConfigPane <T extends Charts> extends AbstractChartA
public final static String CHART_STYLE_TITLE = Inter.getLocText("Chart-Style_Name");
public abstract Class<? extends Charts> accptType();
public abstract Class<? extends Charts> acceptType();
@Override
public void populate(ChartCollection collection) {
if (StableUtils.classInstanceOf(collection.getSelectedChart().getClass(),accptType())) {
if (StableUtils.classInstanceOf(collection.getSelectedChart().getClass(),acceptType())) {
populate(collection, (T)collection.getSelectedChart());
}
}
@ -27,7 +27,7 @@ public abstract class ChartsConfigPane <T extends Charts> extends AbstractChartA
@Override
public void update(ChartCollection collection) {
if (StableUtils.classInstanceOf(collection.getSelectedChart().getClass(),accptType())) {
if (StableUtils.classInstanceOf(collection.getSelectedChart().getClass(),acceptType())) {
update(collection, (T)collection.getSelectedChart());
}
}

4
designer_chart/src/com/fr/design/mainframe/chart/gui/ChartTypePane.java

@ -17,6 +17,7 @@ import com.fr.design.mainframe.chart.PaneTitleConstants;
import com.fr.design.mainframe.chart.gui.item.FlexibleComboBox;
import com.fr.design.mainframe.chart.gui.item.ItemEventType;
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.ComparatorUtils;
import com.fr.stable.StringUtils;
@ -238,6 +239,9 @@ public class ChartTypePane extends AbstractChartAttrPane{
for (int i = 0; i < this.cards.size(); i++) {
FurtherBasicBeanPane pane = cards.get(i);
if (pane.accept(ob)) {
GUICoreUtils.setEnabled(this, ob.isValidPlot());
pane.populateBean(ob);
Object item = pane.title4PopupWindow();
for (int j = 0; j < cardNames.length; j++) {

122
designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/CategoryPlotMoreCateReportDataContentPane.java

@ -32,10 +32,10 @@ import java.util.List;
*/
public class CategoryPlotMoreCateReportDataContentPane extends CategoryPlotReportDataContentPane implements UIObserver{
private static final long serialVersionUID = -1122313353777460534L;
private JPanel boxPane;
private UIButton addButton;
private ArrayList<TinyFormulaPane> formualList = new ArrayList<TinyFormulaPane>();
private UIObserverListener uiobListener = null;
@ -44,68 +44,68 @@ public class CategoryPlotMoreCateReportDataContentPane extends CategoryPlotRepor
}
public CategoryPlotMoreCateReportDataContentPane() {
}
public CategoryPlotMoreCateReportDataContentPane(ChartDataPane parent) {
initEveryPane();
categoryName = initCategoryBox(Inter.getLocText("FR-Chart-Category_Name") + ":");
JPanel catePane = new JPanel();
catePane.setLayout(new BorderLayout(2, 2));
catePane.add(categoryName);
addButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/buttonicon/add.png"));
addButton.setPreferredSize(new Dimension(20, 20));
catePane.add(addButton, BorderLayout.EAST);
boxPane = new JPanel();
boxPane.setLayout(new BoxLayout(boxPane, BoxLayout.Y_AXIS));
boxPane.setBackground(Color.red);
catePane.add(boxPane, BorderLayout.SOUTH);
this.add(catePane, "0,0,2,0");
this.add(new BoldFontTextLabel(Inter.getLocText("FR-Chart-Data_Filter")), "0,4,2,4");
this.add(filterPane = new ChartDataFilterPane(new Bar2DPlot(), parent), "0,6,2,4");
addButton.addActionListener(new ActionListener() {
initEveryPane();
categoryName = initCategoryBox(Inter.getLocText("FR-Chart-Category_Name") + ":");
JPanel catePane = new JPanel();
catePane.setLayout(new BorderLayout(2, 2));
catePane.add(categoryName);
addButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/buttonicon/add.png"));
addButton.setPreferredSize(new Dimension(20, 20));
catePane.add(addButton, BorderLayout.EAST);
boxPane = new JPanel();
boxPane.setLayout(new BoxLayout(boxPane, BoxLayout.Y_AXIS));
boxPane.setBackground(Color.red);
catePane.add(boxPane, BorderLayout.SOUTH);
this.add(catePane, "0,0,2,0");
this.add(new BoldFontTextLabel(Inter.getLocText("FR-Chart-Data_Filter")), "0,4,2,4");
this.add(filterPane = new ChartDataFilterPane(new Bar2DPlot(), parent), "0,6,2,4");
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
addNewCatePane();
}
});
}
/**
* 检查box 是否应该可用状态.
*/
public void checkBoxUse() {
super.checkBoxUse();
String text = categoryName.getUITextField().getText();
addButton.setEnabled(StringUtils.isNotEmpty(text));
}
/**
* 检查box 是否应该可用状态.
*/
public void checkBoxUse() {
super.checkBoxUse();
String text = categoryName.getUITextField().getText();
addButton.setEnabled(StringUtils.isNotEmpty(text));
}
private TinyFormulaPane addNewCatePane() {
final TinyFormulaPane pane = initCategoryBox(StringUtils.EMPTY);
pane.setPreferredSize(new Dimension(122, 16));
pane.registerChangeListener(uiobListener);
formualList.add(pane);
final JPanel newButtonPane = new JPanel();
newButtonPane.setLayout(new FlowLayout(FlowLayout.RIGHT, 0, 0));
newButtonPane.add(pane);
UIButton delButton = new UIButton(BaseUtils.readIcon("com/fr/design/images/toolbarbtn/close.png"));
newButtonPane.add(delButton);
boxPane.add(newButtonPane);
delButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
@ -119,10 +119,10 @@ public class CategoryPlotMoreCateReportDataContentPane extends CategoryPlotRepor
checkComponent();
relayoutPane();
return pane;
}
private void checkAddButton() {
int size = formualList.size();
addButton.setEnabled(size < 2);
@ -136,29 +136,29 @@ public class CategoryPlotMoreCateReportDataContentPane extends CategoryPlotRepor
this.revalidate();
}
/**
* 给组件登记一个观察者监听事件
*
* @param listener 观察者监听事件
*/
/**
* 给组件登记一个观察者监听事件
*
* @param listener 观察者监听事件
*/
public void registerChangeListener(UIObserverListener listener) {
uiobListener = listener;
}
/**
* 组件是否需要响应添加的观察者事件
*
* @return 如果需要响应观察者事件则返回true否则返回false
*/
/**
* 组件是否需要响应添加的观察者事件
*
* @return 如果需要响应观察者事件则返回true否则返回false
*/
public boolean shouldResponseChangeListener() {
return true;
}
public void populateBean(ChartCollection collection) {
super.populateBean(collection);
formualList.clear();
TopDefinitionProvider definition = collection.getSelectedChart().getFilterDefinition();
if (definition instanceof NormalReportDataDefinition) {
NormalReportDataDefinition reportDefinition = (NormalReportDataDefinition) definition;
@ -170,7 +170,7 @@ public class CategoryPlotMoreCateReportDataContentPane extends CategoryPlotRepor
}
}
}
checkAddButton();
}

4
designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/MeterPlotReportDataContentPane.java

@ -24,7 +24,7 @@ import java.awt.*;
public class MeterPlotReportDataContentPane extends AbstractReportDataContentPane {
private static final String CATENAME = Inter.getLocText(new String[]{"ChartF-Meter", "StyleFormat-Category", "WF-Name"});
private static final String NVALUE = Inter.getLocText("Needle Value");
private static final String NVALUE = Inter.getLocText("Chart-Pointer_Value");
private TinyFormulaPane singCatePane;
private TinyFormulaPane singValuePane;
@ -59,7 +59,7 @@ public class MeterPlotReportDataContentPane extends AbstractReportDataContentPan
double[] cs = {p};
components = new Component[][]{
new Component[]{new JSeparator()},
new Component[]{new BoldFontTextLabel(Inter.getLocText("Data_Filter"))},
new Component[]{new BoldFontTextLabel(Inter.getLocText("FR-Designer_Data_Filter"))},
new Component[]{filterPane = new ChartDataFilterPane(new MeterPlot(), parent)},
};
JPanel pane = TableLayoutHelper.createTableLayoutPane(components, rowSize, cs);

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

@ -59,7 +59,7 @@ import java.util.List;
import java.util.Set;
public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIObserver{
private static final long serialVersionUID = 3477409806918835992L;
private static final long serialVersionUID = 3477409806918835992L;
private static HashMap normalMap = new HashMap();
private static HashMap gisMap = new HashMap();
private static HashMap mapMap = new HashMap();
@ -73,16 +73,16 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
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;
@ -94,55 +94,55 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
private UICheckBox isAddress;
private UICheckBox isAddressName;
private UICheckBox isAxisShowToolTip;// 坐标轴提示
private UICheckBox isAxisShowToolTip;// 坐标轴提示
protected UICheckBox isAutoRefresh;// 自动刷新
protected UISpinner autoRefreshTime;
protected UICheckBox isAutoRefresh;// 自动刷新
protected UISpinner autoRefreshTime;
private UICorrelationComboBoxPane superLink;// 超链
private UICorrelationComboBoxPane superLink;// 超链
private FormatPane valueFormatPane;
private FormatPane percentFormatPane;
private Format valueFormat;
private Format percentFormat;
private FormatPane valueFormatPane;
private FormatPane percentFormatPane;
private Format valueFormat;
private Format percentFormat;
private JPanel tooltipPane;
private JPanel axisShowPane;
private JPanel autoRefreshPane;
private JPanel superlinkPane;
private JPanel tooltipPane;
private JPanel axisShowPane;
private JPanel autoRefreshPane;
private JPanel superlinkPane;
private ChartOtherPane parent;
private ChartOtherPane parent;
private UICheckBox timeSwitch;
private JPanel timeSwitchContainer;
private TimeSwitchPane timeSwitchPane;
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"));
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")});
@ -152,13 +152,13 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
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();
@ -166,9 +166,9 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
});
timeSwitch = new UICheckBox(Inter.getLocText("FR-Chart-Interactive_timeSwitch"));
timeSwitchPane = new TimeSwitchPane();
initFormatListener();
return initPaneWithListener();
}
initFormatListener();
return initPaneWithListener();
}
private void initFormatListener() {
@ -244,19 +244,19 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
});
}
private void checkAutoRefresh() {
GUICoreUtils.setEnabled(autoRefreshTime, isAutoRefresh.isSelected());
}
/**
* 反正后面还有relayout,这边init一下就好了 保证所有的init 加入界面 并且加载入事件.
* @return
*/
private JPanel initPaneWithListener() {
initDataPointToolTipPane();
initAxisShowPane();
initAutoRefreshPane();
initSuperlinkPane();
private void checkAutoRefresh() {
GUICoreUtils.setEnabled(autoRefreshTime, isAutoRefresh.isSelected());
}
/**
* 反正后面还有relayout,这边init一下就好了 保证所有的init 加入界面 并且加载入事件.
* @return
*/
private JPanel initPaneWithListener() {
initDataPointToolTipPane();
initAxisShowPane();
initAutoRefreshPane();
initSuperlinkPane();
initTimeSwitchPane();
@ -275,7 +275,7 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
};
//初始化界面时 加载事件
return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
}
}
private void initTimeSwitchPane(){
timeSwitchContainer = new JPanel(new BorderLayout());
@ -287,11 +287,11 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
/**
* 全部初始化, 对所有的界面 都加入, 然后会加载事件响应. 后续再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},
@ -302,7 +302,7 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
new Component[]{tooltipStyleLabel, tooltipStyle}
};
tooltipPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"ChartData-Tooltip"},components, rowSize, columnSize);
}
}
private void relayoutDataPointToolTipPane(Plot plot) {
double p = TableLayout.PREFERRED;
@ -337,8 +337,8 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
} else {
rowSize = new double[]{p, p, p};
components = new Component[][]{
new Component[]{isDatapointValue, dataPointValueFormat},
new Component[]{isDatapointPercent, dataPointPercentFormat},
new Component[]{isDatapointValue, dataPointValueFormat},
new Component[]{isDatapointPercent, dataPointPercentFormat},
getTooltipStyleComponent()
};
}
@ -374,49 +374,49 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
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)},
private void initAxisShowPane() {
double p = TableLayout.PREFERRED;
double[] columnSize = new double[]{p};
double[] rowSize = new double[]{p};
Component[][] components = new Component[][]{
new Component[]{isAxisShowToolTip},
};
axisShowPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"ChartF-Axis", "Chart-Interactive"},components, rowSize, columnSize);
}
private void initAutoRefreshPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = new double[]{p, f};
double[] rowSize = new double[]{p, p, p,p};
Component[][] components = new Component[][]{
new Component[]{isAutoRefresh,null},
new Component[]{GUICoreUtils.createFlowPane(new Component[]{
new UILabel(Inter.getLocText("Chart-Time_Interval")),
autoRefreshTime,
new UILabel(Inter.getLocText("Chart-Time_Seconds"))
}, 1)},
new Component[]{new UILabel("<html><font size='2' face='Microsoft Yahei' color='red'>" + Inter.getLocText("FR-Chart-AutoRefresh_NotSupportIMGAndReportData") + "</font></html>"), null},
};
autoRefreshPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"Data-Check"},components, rowSize, columnSize);
}
private void initSuperlinkPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = new double[]{p, f};
double[] rowSize = new double[]{p};
Component[][] components = new Component[][]{
new Component[]{superLink, null},
};
superlinkPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"Hyperlink"},components, rowSize, columnSize);
}
private void relayoutWithPlot(Plot plot) {
this.removeAll();
double p = TableLayout.PREFERRED;
};
autoRefreshPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"Data-Check"},components, rowSize, columnSize);
}
private void initSuperlinkPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = new double[]{p, f};
double[] rowSize = new double[]{p};
Component[][] components = new Component[][]{
new Component[]{superLink, null},
};
superlinkPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"Hyperlink"},components, rowSize, columnSize);
}
private void relayoutWithPlot(Plot plot) {
this.removeAll();
double p = TableLayout.PREFERRED;
double[] columnSize = new double[]{TableLayout.FILL};
double[] rowSize = new double[]{p, p, p};
@ -431,7 +431,7 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
double[] row = new double[]{p, p, p, p, p, p};
reloaPane(TableLayoutHelper.createTableLayoutPane(components, row, columnSize));
}
}
private Component[] getChartAnimatePane(Plot plot, double[] row, double[] col) {
@ -459,9 +459,9 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
timeSwitchContainer.add(timeSwitch, BorderLayout.CENTER);
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},
};
@ -527,15 +527,15 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
return new Component[]{superlinkPane};
}
@Override
public void populateBean(Chart chart) {
if (chart == null || chart.getPlot() == null) {
return;
}
@Override
public void populateBean(Chart chart) {
if (chart == null || chart.getPlot() == null) {
return;
}
Plot plot = chart.getPlot();
Plot plot = chart.getPlot();
relayoutWithGis(chart, plot);
relayoutWithPlot(plot);
relayoutWithPlot(plot);
populateChartAnimate(chart, plot);
populateChartScale(plot);
@ -544,8 +544,8 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
populateAutoRefresh(chart);
populateHyperlink(plot);
checkAutoRefresh();
}
checkAutoRefresh();
}
private void relayoutWithGis(Chart chart, Plot plot) {
if(plot.isSupportAddress4Gis()) {
@ -583,7 +583,7 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
timeSwitch.setEnabled(false);
//只有坐标轴为时间坐标轴,并且勾选了图表缩放的时候,才支持时间切换
if(!plot.isSupportZoomCategoryAxis() || !isAxisZoom.isSelected()){
return;
return;
}
if(plot.getxAxis() ==null && !plot.getxAxis().isDate()){
@ -683,13 +683,13 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
superLink.doLayout();
}
@Override
public void updateBean(Chart chart) {
if (chart == null || chart.getPlot() == null) {
return;
}
@Override
public void updateBean(Chart chart) {
if (chart == null || chart.getPlot() == null) {
return;
}
Plot plot = chart.getPlot();
Plot plot = chart.getPlot();
updateChartAnimate(chart, plot);
updateChartScale(plot);
@ -697,7 +697,7 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
updateAxisTip(plot);
updateAutoRefresh(plot);
updateHyperlink(plot);
}
}
private void updateChartAnimate(Chart chart, Plot plot) {
if(plot.isSupportAnimate()) {
@ -829,7 +829,7 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
}
protected Class<? extends BasicBeanPane> getUseMap(HashMap map, Object key) {
protected Class<? extends BasicBeanPane> getUseMap(HashMap map, Object key) {
if(map.get(key) != null){
return (Class<? extends BasicBeanPane>)map.get(key);
}
@ -843,33 +843,33 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
}
}
return null;
}
protected List<UIMenuNameableCreator> refreshList(HashMap map) {
List<UIMenuNameableCreator> list = new ArrayList<UIMenuNameableCreator>();
}
protected List<UIMenuNameableCreator> refreshList(HashMap map) {
List<UIMenuNameableCreator> list = new ArrayList<UIMenuNameableCreator>();
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Reportlet"),
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Reportlet"),
new ReportletHyperlink(), getUseMap(map, ReportletHyperlink.class)));
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Mail"), new EmailJavaScript(), ChartEmailPane.class));
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Web"),
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Mail"), new EmailJavaScript(), ChartEmailPane.class));
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Web"),
new WebHyperlink(), getUseMap(map, WebHyperlink.class)));
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Dynamic_Parameters"),
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Dynamic_Parameters"),
new ParameterJavaScript(), getUseMap(map, ParameterJavaScript.class)));
list.add(new UIMenuNameableCreator("JavaScript", new JavaScriptImpl(), getUseMap(map, JavaScriptImpl.class)));
list.add(new UIMenuNameableCreator("JavaScript", new JavaScriptImpl(), getUseMap(map, JavaScriptImpl.class)));
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Float_Chart"),
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Float_Chart"),
new ChartHyperPoplink(), getUseMap(map, ChartHyperPoplink.class)));
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Cell"),
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Cell"),
new ChartHyperRelateCellLink(), getUseMap(map, ChartHyperRelateCellLink.class)));
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Float"),
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Float"),
new ChartHyperRelateFloatLink(), getUseMap(map, ChartHyperRelateFloatLink.class)));
FormHyperlinkProvider hyperlink = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
FormHyperlinkProvider hyperlink = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
list.add(new UIMenuNameableCreator(Inter.getLocText("Chart-Link_Form"),
hyperlink, getUseMap(map, FormHyperlinkProvider.class)));
return list;
}
hyperlink, getUseMap(map, FormHyperlinkProvider.class)));
return list;
}
private HashMap renewMapWithPlot(Plot plot) {
if(plot instanceof PiePlot) {
@ -1032,8 +1032,8 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
private HashMap getNormalPlotHyperMap() {
if(normalMap.isEmpty()) {
FormHyperlinkProvider fp = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
FormHyperlinkProvider fp = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class);
normalMap.put(ReportletHyperlink.class, ReportletHyperlinkPane.CHART.class);
normalMap.put(EmailJavaScript.class, ChartEmailPane.class);
normalMap.put(WebHyperlink.class, WebHyperlinkPane.CHART.class);
@ -1052,27 +1052,27 @@ public class ChartInteractivePane extends BasicScrollPane<Chart> implements UIOb
}
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;
}

11
designer_chart/src/com/fr/design/mainframe/chart/gui/type/AbstractChartTypePane.java

@ -43,6 +43,7 @@ public abstract class AbstractChartTypePane extends FurtherBasicBeanPane<Chart>{
protected List<ChartImagePane> styleList;
protected JPanel stylePane; //样式布局的面板
private JPanel typePane;
protected abstract String[] getTypeIconPath();
protected abstract String[] getTypeTipName();
protected abstract String[] getTypeLayoutPath();
@ -70,10 +71,10 @@ public abstract class AbstractChartTypePane extends FurtherBasicBeanPane<Chart>{
checkDemosBackground();
JPanel typePane = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(4);
this.typePane = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(4);
for(int i = 0; i < typeDemo.size(); i++) {
ChartImagePane tmp = typeDemo.get(i);
typePane.add(tmp);
this.typePane.add(tmp);
tmp.setDemoGroup(typeDemo.toArray(new ChartSelectDemoPane[typeDemo.size()]));
}
@ -99,7 +100,7 @@ public abstract class AbstractChartTypePane extends FurtherBasicBeanPane<Chart>{
stylePane.setVisible(false);
}
JPanel panel = TableLayoutHelper.createTableLayoutPane(getPaneComponents(typePane),rowSize,columnSize);
JPanel panel = TableLayoutHelper.createTableLayoutPane(getPaneComponents(this.typePane),rowSize,columnSize);
this.setLayout(new BorderLayout());
this.add(panel,BorderLayout.CENTER);
}
@ -586,6 +587,10 @@ public abstract class AbstractChartTypePane extends FurtherBasicBeanPane<Chart>{
&& chart.getPlot().getPlotStyle() != ChartConstants.STYLE_NONE;
}
protected JPanel getTypePane(){
return this.typePane;
}
public Chart getDefaultChart() {
return BarIndependentChart.barChartTypes[0];
}

2
designer_form/src/com/fr/design/designer/creator/XCheckBoxGroup.java

@ -50,7 +50,7 @@ public class XCheckBoxGroup extends XFieldEditor {
new CRPropertyDescriptor("adaptive", this.data.getClass()).setI18NName(Inter.getLocText("Adaptive"))
.putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced").setEditorClass(InChangeBooleanEditor.class),
new CRPropertyDescriptor("chooseAll", this.data.getClass()).setI18NName(
Inter.getLocText(new String[]{"Provide", "Choose_All"})).putKeyValue(
Inter.getLocText("FR-Designer_Provide_Choose_All")).putKeyValue(
XCreatorConstants.PROPERTY_CATEGORY, "Advanced"),
new CRPropertyDescriptor("returnString", this.data.getClass()).setI18NName(
Inter.getLocText("Return-String")).setEditorClass(InChangeBooleanEditor.class)

Loading…
Cancel
Save