Browse Source

Pull request #14648: INO-21074 阿拉伯语言问题处理

Merge in DESIGN/design from ~OBO/design:persist/11.0-arabic to persist/11.0-arabic

* commit '08ac3f909bb07b5ba151d2029f9629ff589507b7': (35 commits)
  INO-21074 启动页
  INO-21074 主面板、移动端面板、UICombox
  INO-21074 FRM参数面板
  INO-21074 聚合报表tooltips
  INO-21074 表头内容
  INO-21074 设计器检测与反馈
  INO-21074 关于
  INO-21074 关于
  INO-21074 模版主题管理配置页面
  INO-21074 模版主题管理
  INO-21074 服务器js配置面板
  INO-21074 服务器编辑工具栏
  INO-21074 服务器ErrorTemplatePane
  INO-21074 服务器数据连接ssl面板
  INO-21074 服务器-定义数据连接
  INO-21074 服务器-定义数据连接
  INO-21074 超级链接-移动端弹窗
  INO-21074 超级链接-继承报表的参数-镜像
  INO-21074 超级链接列表位置镜像
  INO-21074 超级链接列表位置镜像
  ...
persist/11.0-arabic
Obo-王学仁 6 months ago
parent
commit
2e0e389c9a
  1. 8
      designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java
  2. 4
      designer-base/src/main/java/com/fr/design/components/table/TablePanel.java
  3. 12
      designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java
  4. 3
      designer-base/src/main/java/com/fr/design/data/datapane/connect/AdvancePane.java
  5. 2
      designer-base/src/main/java/com/fr/design/data/datapane/connect/DatabaseConnectionPane.java
  6. 1
      designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java
  7. 20
      designer-base/src/main/java/com/fr/design/data/datapane/connect/SshPane.java
  8. 6
      designer-base/src/main/java/com/fr/design/data/datapane/connect/SslPane.java
  9. 1
      designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java
  10. 4
      designer-base/src/main/java/com/fr/design/editor/ValueEditorPane.java
  11. 16
      designer-base/src/main/java/com/fr/design/gui/controlpane/ListControlPaneHelper.java
  12. 2
      designer-base/src/main/java/com/fr/design/gui/controlpane/UIControlPane.java
  13. 5
      designer-base/src/main/java/com/fr/design/gui/controlpane/UINameableListCellRenderer.java
  14. 6
      designer-base/src/main/java/com/fr/design/gui/icheckbox/UICheckBox.java
  15. 2
      designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java
  16. 2
      designer-base/src/main/java/com/fr/design/hyperlink/WebHyperlinkPane.java
  17. 2
      designer-base/src/main/java/com/fr/design/hyperlink/popup/ContentSettingPane.java
  18. 1
      designer-base/src/main/java/com/fr/design/hyperlink/popup/MobilePopupUIUtils.java
  19. 4
      designer-base/src/main/java/com/fr/design/mainframe/CenterRegionContainerPane.java
  20. 3
      designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java
  21. 1
      designer-base/src/main/java/com/fr/design/mainframe/theme/ui/BreadcrumbBar.java
  22. 3
      designer-base/src/main/java/com/fr/design/parameter/ParameterInputPane.java
  23. 6
      designer-base/src/main/java/com/fr/design/style/FRFontPane.java
  24. 2
      designer-base/src/main/java/com/fr/design/utils/gui/UIComponentUtils.java
  25. 30
      designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java
  26. 30
      designer-base/src/main/java/com/fr/env/detect/ui/EnvDetectorDialog.java
  27. 30
      designer-base/src/main/resources/com/fr/design/i18n/dimension_ar.properties
  28. 2
      designer-chart/src/main/java/com/fr/design/module/ChartPreFillStylePane.java
  29. 4
      designer-chart/src/main/java/com/fr/van/chart/designer/other/VanChartInteractivePane.java
  30. 16
      designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java
  31. 4
      designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java
  32. 3
      designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileBookMarkUsePane.java
  33. 4
      designer-realize/src/main/java/com/fr/design/dscolumn/DSColumnAdvancedPane.java
  34. 20
      designer-realize/src/main/java/com/fr/design/expand/ConditionParentPane.java
  35. 4
      designer-realize/src/main/java/com/fr/design/headerfooter/HFAttributesEditDialog.java
  36. 4
      designer-realize/src/main/java/com/fr/design/headerfooter/ImagePane.java
  37. 7
      designer-realize/src/main/java/com/fr/design/mainframe/bbs/BBSGuestPane.java
  38. 9
      designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/model/DesensitizationCellPane.java
  39. 4
      designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/style/StylePane.java
  40. 4
      designer-realize/src/main/java/com/fr/design/report/PageSetupPane.java
  41. 6
      designer-realize/src/main/java/com/fr/design/report/ReportColumnsPane.java
  42. 4
      designer-realize/src/main/java/com/fr/design/sort/header/HeaderSortRulePane.java
  43. 10
      designer-realize/src/main/java/com/fr/design/webattr/DragToolBarPane.java
  44. 4
      designer-realize/src/main/java/com/fr/design/webattr/EditToolBar.java
  45. 7
      designer-realize/src/main/java/com/fr/design/webattr/ErrorTemplatePane.java
  46. 4
      designer-realize/src/main/java/com/fr/design/webattr/ServerPrinterPane.java
  47. 6
      designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java
  48. 11
      designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java
  49. 2
      designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java
  50. 4
      designer-realize/src/main/java/com/fr/design/webattr/printsettings/GlobalNativePrintSettingPane.java
  51. 4
      designer-realize/src/main/java/com/fr/start/MainDesigner.java
  52. 5
      designer-realize/src/main/java/com/fr/start/SplashContext.java
  53. 5
      designer-realize/src/main/java/com/fr/start/common/SplashPane.java

8
designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java

@ -5,6 +5,7 @@ package com.fr.design.actions.help;
import com.fr.base.FRContext; import com.fr.base.FRContext;
import com.fr.base.GraphHelper; import com.fr.base.GraphHelper;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.gui.ilable.ActionLabel; import com.fr.design.gui.ilable.ActionLabel;
import com.fr.design.gui.ilable.BoldFontTextLabel; import com.fr.design.gui.ilable.BoldFontTextLabel;
@ -225,7 +226,7 @@ public class AboutPane extends JPanel {
JPanel panel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); JPanel panel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
panel.add(new UILabel(desc)); panel.add(new UILabel(desc));
panel.add(emailLabel); panel.add(emailLabel);
return panel; return BidiUtils.applyOrientationByLocale(panel);
} }
private JPanel getURLActionPane(final String desc, final String url) { private JPanel getURLActionPane(final String desc, final String url) {
@ -245,7 +246,7 @@ public class AboutPane extends JPanel {
panel.add(new UILabel(desc)); panel.add(new UILabel(desc));
panel.add(actionLabel); panel.add(actionLabel);
return panel; return BidiUtils.applyOrientationByLocale(panel);
} }
class UserLabel extends BoldFontTextLabel { class UserLabel extends BoldFontTextLabel {
@ -283,6 +284,7 @@ public class AboutPane extends JPanel {
this.textLabel = label; this.textLabel = label;
centerPane.add(textLabel); centerPane.add(textLabel);
BidiUtils.applyOrientationByLocale(centerPane);
} }
public void setFont(Font font) { public void setFont(Font font) {
@ -328,7 +330,7 @@ public class AboutPane extends JPanel {
lastLabel.setForeground(Color.lightGray); lastLabel.setForeground(Color.lightGray);
centerPane.add(lastLabel); centerPane.add(lastLabel);
add(centerPane, BorderLayout.CENTER); add(BidiUtils.applyOrientationByLocale(centerPane), BorderLayout.CENTER);
} }
public void setFont(Font font) { public void setFont(Font font) {

4
designer-base/src/main/java/com/fr/design/components/table/TablePanel.java

@ -68,11 +68,11 @@ public class TablePanel extends JPanel {
headerItemPanel.add(new UILabel(), BorderLayout.CENTER); headerItemPanel.add(new UILabel(), BorderLayout.CENTER);
headerItemWrapper.add(headerItemPanel, BorderLayout.WEST); headerItemWrapper.add(headerItemPanel, BorderLayout.LINE_START);
if (i != column - 1) { if (i != column - 1) {
JSeparator separator = new JSeparator(JSeparator.VERTICAL); JSeparator separator = new JSeparator(JSeparator.VERTICAL);
separator.setBackground(new Color(218, 218, 221)); separator.setBackground(new Color(218, 218, 221));
headerItemWrapper.add(separator, BorderLayout.EAST); headerItemWrapper.add(separator, BorderLayout.LINE_END);
} }
headerPanel.add(headerItemWrapper); headerPanel.add(headerItemWrapper);
} }

12
designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java

@ -57,7 +57,7 @@ public class TreeTableDataDictPane extends BasicPane implements Previewable {
public TreeTableDataDictPane(String treeName) { public TreeTableDataDictPane(String treeName) {
this.setLayout(new BorderLayout(5, 30)); this.setLayout(new BorderLayout(5, 30));
this.setBorder(BorderFactory.createEmptyBorder(20, 20, 0, 0)); this.setBorder(BorderFactory.createEmptyBorder(20, 20, 0, 0));
selectTableDataLabel = new UILabel(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_TableData_Select_One"), " :")); selectTableDataLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_TableData_Select_One") + " " + ":");
setTableDataNameComboBox(treeName); setTableDataNameComboBox(treeName);
tableDataNameComboBox.setPreferredSize(new Dimension(180, 20)); tableDataNameComboBox.setPreferredSize(new Dimension(180, 20));
JPanel tableFlowPane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane(); JPanel tableFlowPane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane();
@ -96,11 +96,11 @@ public class TreeTableDataDictPane extends BasicPane implements Previewable {
markButtonGroup.add(parentMarkRadio); markButtonGroup.add(parentMarkRadio);
markButtonGroup.add(lengthMarkRadio); markButtonGroup.add(lengthMarkRadio);
originFieldDependsOnParentLabel = new UILabel(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Original_Marked_Filed"), " :"), SwingConstants.TRAILING); originFieldDependsOnParentLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Original_Marked_Filed") + " :", SwingConstants.TRAILING);
parentFieldLabel = new UILabel(BidiUtils.concatenateStrings(" ", com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Parent_Marked_Field"), " :"), SwingConstants.TRAILING); parentFieldLabel = new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Parent_Marked_Field") + " :", SwingConstants.TRAILING);
treeDataFieldLabel1 = new UILabel(BidiUtils.concatenateStrings(" ", com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tree_Data_Field"), " :"), SwingConstants.TRAILING); treeDataFieldLabel1 = new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tree_Data_Field") + " :", SwingConstants.TRAILING);
originFieldDependsOnLengthLabel = new UILabel(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Original_Marked_Filed"), " :"), SwingConstants.TRAILING); originFieldDependsOnLengthLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Original_Marked_Filed") + " :", SwingConstants.TRAILING);
treeDataFieldLabel2 = new UILabel(BidiUtils.concatenateStrings(" ", com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tree_Data_Field"), " :"), SwingConstants.TRAILING); treeDataFieldLabel2 = new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tree_Data_Field") + " :", SwingConstants.TRAILING);
// originFieldDependsOnParentPane = ValueEditorPaneFactory.createValueEditorPane(new Editor[] {new OldColumnIndexEditor(com.fr.design.i18n.Toolkit.i18nText("Columns"))}); // originFieldDependsOnParentPane = ValueEditorPaneFactory.createValueEditorPane(new Editor[] {new OldColumnIndexEditor(com.fr.design.i18n.Toolkit.i18nText("Columns"))});
// parentFieldPane = ValueEditorPaneFactory.createValueEditorPane(new Editor[] {new OldColumnIndexEditor(com.fr.design.i18n.Toolkit.i18nText("Columns"))}); // parentFieldPane = ValueEditorPaneFactory.createValueEditorPane(new Editor[] {new OldColumnIndexEditor(com.fr.design.i18n.Toolkit.i18nText("Columns"))});

3
designer-base/src/main/java/com/fr/design/data/datapane/connect/AdvancePane.java

@ -1,5 +1,6 @@
package com.fr.design.data.datapane.connect; package com.fr.design.data.datapane.connect;
import com.fr.base.i18n.BidiUtils;
import com.fr.data.impl.JDBCDatabaseConnection; import com.fr.data.impl.JDBCDatabaseConnection;
import com.fr.data.pool.DBCPConnectionPoolAttr; import com.fr.data.pool.DBCPConnectionPoolAttr;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
@ -49,7 +50,7 @@ public class AdvancePane extends BasicPane {
JPanel contextPane = TableLayoutHelper.createGapTableLayoutPane(comps, rowSizeDbcp, columnDbcp, 11, 11); JPanel contextPane = TableLayoutHelper.createGapTableLayoutPane(comps, rowSizeDbcp, columnDbcp, 11, 11);
jPanel.add(contextPane, BorderLayout.CENTER); jPanel.add(contextPane, BorderLayout.CENTER);
this.add(jPanel); this.add(BidiUtils.applyOrientationByLocale(jPanel));
} }

2
designer-base/src/main/java/com/fr/design/data/datapane/connect/DatabaseConnectionPane.java

@ -282,7 +282,7 @@ public abstract class DatabaseConnectionPane<E extends com.fr.data.impl.Connecti
chartSetPane.add(GUICoreUtils.createNamedPane(charSetComboBox, Toolkit.i18nText("Fine-Design_Basic_Datasource_Charset") + ":")); chartSetPane.add(GUICoreUtils.createNamedPane(charSetComboBox, Toolkit.i18nText("Fine-Design_Basic_Datasource_Charset") + ":"));
advancedPanel.add(chartSetPane); advancedPanel.add(chartSetPane);
} }
BidiUtils.applyOrientationByLocale(advancedPanel); BidiUtils.applyOrientationByLocale(advancedPanel, testPane);
northPane.add(advancedPanel); northPane.add(advancedPanel);
} }

1
designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java

@ -215,6 +215,7 @@ public class JDBCDefPane extends JPanel {
JPanel driverPane = FRGUIPaneFactory.createRightFlowInnerContainer_S_Pane(); JPanel driverPane = FRGUIPaneFactory.createRightFlowInnerContainer_S_Pane();
driverPane.add(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Driver") + ":")); driverPane.add(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Driver") + ":"));
BidiUtils.applyOrientationByLocale(driverPane);
// 选择ODBC数据源的时候的提示链接 // 选择ODBC数据源的时候的提示链接
JPanel odbcTipsPane = FRGUIPaneFactory.createRightFlowInnerContainer_S_Pane(); JPanel odbcTipsPane = FRGUIPaneFactory.createRightFlowInnerContainer_S_Pane();
odbcTipsLink = new ActionLabel(Toolkit.i18nText("Fine-Design_Basic_Odbc_Tips")) { odbcTipsLink = new ActionLabel(Toolkit.i18nText("Fine-Design_Basic_Odbc_Tips")) {

20
designer-base/src/main/java/com/fr/design/data/datapane/connect/SshPane.java

@ -1,5 +1,6 @@
package com.fr.design.data.datapane.connect; package com.fr.design.data.datapane.connect;
import com.fr.base.i18n.BidiUtils;
import com.fr.data.impl.JDBCDatabaseConnection; import com.fr.data.impl.JDBCDatabaseConnection;
import com.fr.data.security.ssh.BaseSsh; import com.fr.data.security.ssh.BaseSsh;
import com.fr.data.security.ssh.Ssh; import com.fr.data.security.ssh.Ssh;
@ -86,13 +87,13 @@ public class SshPane extends BasicPane {
type.setEditable(false); type.setEditable(false);
type.setSelectedItem(Toolkit.i18nText("Fine-Design_Basic_Ssh_Private_Key")); type.setSelectedItem(Toolkit.i18nText("Fine-Design_Basic_Ssh_Private_Key"));
JPanel filePanel = TableLayoutHelper.createCommonTableLayoutPane(new Component[][]{{keyPath, fileChooserButton}}, new double[]{p}, new double[]{f, 20}, 0); JPanel filePanel = TableLayoutHelper.createCommonTableLayoutPane(new Component[][]{{keyPath, fileChooserButton}}, new double[]{p}, new double[]{f, 20}, 0);
Component[] compIp = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Host") + ":", SwingConstants.RIGHT), ip}; Component[] compIp = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Host") + ":", SwingConstants.TRAILING), ip};
Component[] compPort = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Port") + ":", SwingConstants.RIGHT), port}; Component[] compPort = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Port") + ":", SwingConstants.TRAILING), port};
Component[] compUserName = {new UILabel(Toolkit.i18nText("Fine-Design_Report_UserName") + ":", SwingConstants.RIGHT), user}; Component[] compUserName = {new UILabel(Toolkit.i18nText("Fine-Design_Report_UserName") + ":", SwingConstants.TRAILING), user};
Component[] compMethod = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Ssh_Verify_Method") + ":", SwingConstants.RIGHT), type}; Component[] compMethod = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Ssh_Verify_Method") + ":", SwingConstants.TRAILING), type};
Component[] compPassword = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Password") + ":", SwingConstants.RIGHT), password}; Component[] compPassword = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Password") + ":", SwingConstants.TRAILING), password};
Component[] compKey = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Ssh_Private_Key") + ":", SwingConstants.RIGHT), filePanel}; Component[] compKey = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Ssh_Private_Key") + ":", SwingConstants.TRAILING), filePanel};
Component[] comSecret = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Ssh_Secret") + ":", SwingConstants.RIGHT), secret}; Component[] comSecret = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Ssh_Secret") + ":", SwingConstants.TRAILING), secret};
passwordComps = new Component[][]{ passwordComps = new Component[][]{
compIp, compIp,
@ -111,7 +112,9 @@ public class SshPane extends BasicPane {
}; };
usingSsh.setSelected(true); usingSsh.setSelected(true);
contextPane = TableLayoutHelper.createGapTableLayoutPane(keyComps, new double[]{p, p, p, p, p, p}, columnSize, 11, 11); contextPane = TableLayoutHelper.createGapTableLayoutPane(keyComps, new double[]{p, p, p, p, p, p}, columnSize, 11, 11);
jPanel.add(usingSsh, BorderLayout.NORTH); JPanel sshPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
sshPane.add(usingSsh, BorderLayout.LINE_START);
jPanel.add(sshPane, BorderLayout.NORTH);
jPanel.add(contextPane, BorderLayout.CENTER); jPanel.add(contextPane, BorderLayout.CENTER);
this.add(jPanel); this.add(jPanel);
@ -145,6 +148,7 @@ public class SshPane extends BasicPane {
fileChooser.removeTopPath(); fileChooser.removeTopPath();
} }
}); });
BidiUtils.applyOrientationByLocale(this);
} }

6
designer-base/src/main/java/com/fr/design/data/datapane/connect/SslPane.java

@ -1,5 +1,6 @@
package com.fr.design.data.datapane.connect; package com.fr.design.data.datapane.connect;
import com.fr.base.i18n.BidiUtils;
import com.fr.data.impl.JDBCDatabaseConnection; import com.fr.data.impl.JDBCDatabaseConnection;
import com.fr.data.security.ssl.Ssl; import com.fr.data.security.ssl.Ssl;
import com.fr.data.security.ssl.SslException; import com.fr.data.security.ssl.SslException;
@ -84,9 +85,12 @@ public class SslPane extends BasicPane {
}; };
usingSsl.setSelected(true); usingSsl.setSelected(true);
contextPane = TableLayoutHelper.createGapTableLayoutPane(usingComps, new double[]{p, p, p, p}, columnSize, 11, 11); contextPane = TableLayoutHelper.createGapTableLayoutPane(usingComps, new double[]{p, p, p, p}, columnSize, 11, 11);
jPanel.add(usingSsl, BorderLayout.NORTH); JPanel sslPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
sslPane.add(usingSsl, BorderLayout.LINE_START);
jPanel.add(sslPane, BorderLayout.NORTH);
jPanel.add(contextPane, BorderLayout.CENTER); jPanel.add(contextPane, BorderLayout.CENTER);
this.add(jPanel); this.add(jPanel);
BidiUtils.applyOrientationByLocale(this);
usingSsl.addActionListener(new ActionListener() { usingSsl.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {

1
designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java

@ -85,6 +85,7 @@ public class EmbeddedTableDataPane extends AbstractTableDataPane<EmbeddedTableDa
// peter:控制Panel // peter:控制Panel
JPanel northPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); JPanel northPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
BidiUtils.applyOrientationByLocale(northPane);
this.add(northPane, BorderLayout.NORTH); this.add(northPane, BorderLayout.NORTH);
northPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 3, 0)); northPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 3, 0));

4
designer-base/src/main/java/com/fr/design/editor/ValueEditorPane.java

@ -1,6 +1,7 @@
package com.fr.design.editor; package com.fr.design.editor;
import com.fr.base.BaseFormula; import com.fr.base.BaseFormula;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
import com.fr.design.dialog.FineJOptionPane; import com.fr.design.dialog.FineJOptionPane;
@ -96,8 +97,9 @@ public class ValueEditorPane extends BasicPane implements UIObserver, GlobalName
this.add(centerPane, BorderLayout.CENTER); this.add(centerPane, BorderLayout.CENTER);
if (cards.length > 1) { if (cards.length > 1) {
this.add(arrowButton, BorderLayout.WEST); this.add(arrowButton, BorderLayout.LINE_START);
} }
BidiUtils.applyOrientationByLocale(this);
} }
@Override @Override

16
designer-base/src/main/java/com/fr/design/gui/controlpane/ListControlPaneHelper.java

@ -1,5 +1,6 @@
package com.fr.design.gui.controlpane; package com.fr.design.gui.controlpane;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.dialog.FineJOptionPane; import com.fr.design.dialog.FineJOptionPane;
import com.fr.design.gui.ilist.JNameEdList; import com.fr.design.gui.ilist.JNameEdList;
@ -186,13 +187,22 @@ class ListControlPaneHelper {
*/ */
protected MouseListener getListMouseListener(UINameEdList nameableList, UIControlPane controlPane) { protected MouseListener getListMouseListener(UINameEdList nameableList, UIControlPane controlPane) {
return new MouseAdapter() { return new MouseAdapter() {
private boolean isEditArea(MouseEvent evt) {
return evt.getClickCount() >= 2 && SwingUtilities.isLeftMouseButton(evt) && (BidiUtils.rtl() ? evt.getX() < controlPane.getPreferredSize().width - EDIT_RANGE : evt.getX() > EDIT_RANGE);
}
private boolean isIconArea(MouseEvent evt) {
return SwingUtilities.isLeftMouseButton(evt) && (BidiUtils.rtl() ? evt.getX() > controlPane.getPreferredSize().width - EDIT_RANGE : evt.getX() <= EDIT_RANGE);
}
@Override @Override
public void mouseReleased(MouseEvent evt) { public void mouseReleased(MouseEvent evt) {
nameableList.stopEditing(); nameableList.stopEditing();
if (evt.getClickCount() >= 2 if (isEditArea(evt)) {
&& SwingUtilities.isLeftMouseButton(evt) && evt.getX() > EDIT_RANGE) {
nameableList.editItemAt(nameableList.getSelectedIndex()); nameableList.editItemAt(nameableList.getSelectedIndex());
} else if (SwingUtilities.isLeftMouseButton(evt) && evt.getX() <= EDIT_RANGE) { } else if (isIconArea(evt)) {
popupEditDialog(evt.getPoint(), nameableList, controlPane); popupEditDialog(evt.getPoint(), nameableList, controlPane);
} }

2
designer-base/src/main/java/com/fr/design/gui/controlpane/UIControlPane.java

@ -178,7 +178,7 @@ public abstract class UIControlPane extends JControlPane {
JPanel leftTopPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel leftTopPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
leftTopPane.add(toolBarPane, BorderLayout.LINE_END); leftTopPane.add(toolBarPane, BorderLayout.LINE_END);
leftTopPane.add(addItemLabel, BidiUtils.rtl() ? BorderLayout.EAST : BorderLayout.CENTER); leftTopPane.add(addItemLabel, BidiUtils.rtl() ? BorderLayout.EAST : BorderLayout.CENTER);
return leftTopPane; return BidiUtils.applyOrientationByLocale(leftTopPane);
} }
/** /**

5
designer-base/src/main/java/com/fr/design/gui/controlpane/UINameableListCellRenderer.java

@ -1,5 +1,6 @@
package com.fr.design.gui.controlpane; package com.fr.design.gui.controlpane;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.constants.UIConstants; import com.fr.design.constants.UIConstants;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ilist.ListModelElement; import com.fr.design.gui.ilist.ListModelElement;
@ -50,11 +51,13 @@ public class UINameableListCellRenderer extends
editButton.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 1, UIConstants.LIST_ITEM_SPLIT_LINE)); editButton.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 1, UIConstants.LIST_ITEM_SPLIT_LINE));
editButton.setHorizontalAlignment(SwingConstants.CENTER); editButton.setHorizontalAlignment(SwingConstants.CENTER);
label = new UILabel(); label = new UILabel();
label.setHorizontalAlignment(SwingConstants.LEADING);
label.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0)); label.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0));
initialLabelForeground = label.getForeground(); initialLabelForeground = label.getForeground();
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());
this.add(editButton, BorderLayout.WEST); this.add(editButton, BorderLayout.LINE_START);
this.add(label, BorderLayout.CENTER); this.add(label, BorderLayout.CENTER);
BidiUtils.applyOrientationByLocale(this);
} }
private Border getNoFocusBorder() { private Border getNoFocusBorder() {

6
designer-base/src/main/java/com/fr/design/gui/icheckbox/UICheckBox.java

@ -1,5 +1,6 @@
package com.fr.design.gui.icheckbox; package com.fr.design.gui.icheckbox;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.constants.UIConstants; import com.fr.design.constants.UIConstants;
import com.fr.design.event.GlobalNameListener; import com.fr.design.event.GlobalNameListener;
import com.fr.design.event.GlobalNameObserver; import com.fr.design.event.GlobalNameObserver;
@ -40,18 +41,21 @@ public class UICheckBox extends JCheckBox implements UIObserver, GlobalNameObser
super(string); super(string);
setUI(new UICheckBoxUI()); setUI(new UICheckBoxUI());
initListener(); initListener();
BidiUtils.setOrientationByLocale(this);
} }
public UICheckBox() { public UICheckBox() {
super(); super();
setUI(new UICheckBoxUI()); setUI(new UICheckBoxUI());
initListener(); initListener();
BidiUtils.setOrientationByLocale(this);
} }
public UICheckBox(String locText, boolean b) { public UICheckBox(String locText, boolean b) {
super(locText, b); super(locText, b);
setUI(new UICheckBoxUI()); setUI(new UICheckBoxUI());
initListener(); initListener();
BidiUtils.setOrientationByLocale(this);
} }
public UICheckBox(String locText, boolean b, boolean markMnemonic) { public UICheckBox(String locText, boolean b, boolean markMnemonic) {
@ -59,12 +63,14 @@ public class UICheckBox extends JCheckBox implements UIObserver, GlobalNameObser
setUI(new UICheckBoxUI()); setUI(new UICheckBoxUI());
initListener(); initListener();
this.markMnemonic = markMnemonic; this.markMnemonic = markMnemonic;
BidiUtils.setOrientationByLocale(this);
} }
public UICheckBox(String text, Icon icon) { public UICheckBox(String text, Icon icon) {
super(text, icon); super(text, icon);
setUI(new UICheckBoxUI()); setUI(new UICheckBoxUI());
initListener(); initListener();
BidiUtils.setOrientationByLocale(this);
} }
protected void initListener() { protected void initListener() {

2
designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java

@ -64,7 +64,7 @@ public class ReportletHyperlinkPane extends AbstractHyperLinkPane<ReportletHyper
parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Toolkit.i18nText("Fine-Design_Basic_Parameter"), null)); parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Toolkit.i18nText("Fine-Design_Basic_Parameter"), null));
extendParametersCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Extends_Report_Parameters")); extendParametersCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Extends_Report_Parameters"));
this.add(GUICoreUtils.createFlowPane(extendParametersCheckBox, FlowLayout.LEADING), BorderLayout.SOUTH); this.add(BidiUtils.applyOrientationByLocale(GUICoreUtils.createFlowPane(extendParametersCheckBox, FlowLayout.LEADING)), BorderLayout.SOUTH);
} }
@Override @Override

2
designer-base/src/main/java/com/fr/design/hyperlink/WebHyperlinkPane.java

@ -46,7 +46,7 @@ public class WebHyperlinkPane extends AbstractHyperLinkPane<WebHyperlink> {
parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Toolkit.i18nText("Fine-Design_Basic_Parameters"), null)); parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Toolkit.i18nText("Fine-Design_Basic_Parameters"), null));
extendParametersCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Extends_Report_Parameters")); extendParametersCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Extends_Report_Parameters"));
this.add(GUICoreUtils.createFlowPane(new Component[]{extendParametersCheckBox}, FlowLayout.LEADING), BorderLayout.SOUTH); this.add(BidiUtils.applyOrientationByLocale(GUICoreUtils.createFlowPane(new Component[]{extendParametersCheckBox}, FlowLayout.LEADING)), BorderLayout.SOUTH);
} }
@Override @Override

2
designer-base/src/main/java/com/fr/design/hyperlink/popup/ContentSettingPane.java

@ -121,7 +121,7 @@ public class ContentSettingPane extends AbstractHyperLinkPane<MobilePopupHyperli
extendParametersCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Extends_Report_Parameters")); extendParametersCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Extends_Report_Parameters"));
templateContentPane.add(GUICoreUtils.createFlowPane(extendParametersCheckBox, FlowLayout.LEADING), BorderLayout.SOUTH); templateContentPane.add(GUICoreUtils.createFlowPane(extendParametersCheckBox, FlowLayout.LEADING), BorderLayout.SOUTH);
BidiUtils.applyOrientationByLocale(templateContentPane);
return templateContentPane; return templateContentPane;
} }

1
designer-base/src/main/java/com/fr/design/hyperlink/popup/MobilePopupUIUtils.java

@ -21,6 +21,7 @@ public class MobilePopupUIUtils {
titleLabel.setHorizontalAlignment(SwingConstants.TRAILING); titleLabel.setHorizontalAlignment(SwingConstants.TRAILING);
jp.add(titleLabel, BorderLayout.LINE_START); jp.add(titleLabel, BorderLayout.LINE_START);
jp.add(contentPanel, BorderLayout.CENTER); jp.add(contentPanel, BorderLayout.CENTER);
BidiUtils.applyOrientationByLocale(jp);
return jp; return jp;
} }

4
designer-base/src/main/java/com/fr/design/mainframe/CenterRegionContainerPane.java

@ -98,7 +98,7 @@ public class CenterRegionContainerPane extends JPanel {
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());
this.add(centerTemplateCardPane = new DesktopCardPane(), BorderLayout.CENTER); this.add(centerTemplateCardPane = new DesktopCardPane(), BorderLayout.CENTER);
this.add(toolbarPane, BorderLayout.NORTH); this.add(toolbarPane, BorderLayout.NORTH);
BidiUtils.applyOrientationByLocale(this);
} }
public ToolBarMenuDock getToolBarMenuDock() { public ToolBarMenuDock getToolBarMenuDock() {
@ -230,7 +230,7 @@ public class CenterRegionContainerPane extends JPanel {
} }
// 颜色,字体那些按钮的工具栏 // 颜色,字体那些按钮的工具栏
toolbarPane.add(toolbarComponent = ad.resetToolBar(toolbarComponent, plus), BidiUtils.rtl() ? BorderLayout.EAST : BorderLayout.CENTER); toolbarPane.add(toolbarComponent = ad.resetToolBar(toolbarComponent, plus), BorderLayout.CENTER);
JPanel customNorthPane = strategy.customNorthPane(toolbarPane,plus); JPanel customNorthPane = strategy.customNorthPane(toolbarPane,plus);
if (!isExist(customNorthPane)){ if (!isExist(customNorthPane)){
this.removeNorth(); this.removeNorth();

3
designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java

@ -76,6 +76,7 @@ public abstract class TemplateThemeProfilePane<T extends TemplateTheme> extends
setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 6)); setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 6));
add(createLeftPane(), BorderLayout.CENTER); add(createLeftPane(), BorderLayout.CENTER);
add(createRightPane(), BorderLayout.LINE_END); add(createRightPane(), BorderLayout.LINE_END);
BidiUtils.applyOrientationByLocale(this);
} }
@Override @Override
@ -340,7 +341,7 @@ public abstract class TemplateThemeProfilePane<T extends TemplateTheme> extends
container.add(nameTextPane, BorderLayout.CENTER); container.add(nameTextPane, BorderLayout.CENTER);
container.add(nameErrorLabel, BorderLayout.SOUTH); container.add(nameErrorLabel, BorderLayout.SOUTH);
return container; return BidiUtils.applyOrientationByLocale(container);
} }
public void exit() { public void exit() {

1
designer-base/src/main/java/com/fr/design/mainframe/theme/ui/BreadcrumbBar.java

@ -25,6 +25,7 @@ public class BreadcrumbBar extends JPanel {
public BreadcrumbBar() { public BreadcrumbBar() {
setLayout(new FlowLayout(FlowLayout.LEADING, 0, 0)); setLayout(new FlowLayout(FlowLayout.LEADING, 0, 0));
BidiUtils.applyOrientationByLocale(this);
} }
public void addCrumb(final String text, final BreadcrumbBackListener backListener) { public void addCrumb(final String text, final BreadcrumbBackListener backListener) {

3
designer-base/src/main/java/com/fr/design/parameter/ParameterInputPane.java

@ -6,7 +6,6 @@ package com.fr.design.parameter;
import com.fr.base.BaseFormula; import com.fr.base.BaseFormula;
import com.fr.base.StoreProcedureParameter; import com.fr.base.StoreProcedureParameter;
import com.fr.base.Utils; import com.fr.base.Utils;
import com.fr.base.i18n.BidiUtils;
import com.fr.data.impl.storeproc.StoreProcedureConstants; import com.fr.data.impl.storeproc.StoreProcedureConstants;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
import com.fr.design.editor.ValueEditorPane; import com.fr.design.editor.ValueEditorPane;
@ -111,7 +110,7 @@ public class ParameterInputPane extends BasicPane {
if (StringUtils.isNotBlank(parameter.getName())) { if (StringUtils.isNotBlank(parameter.getName())) {
parameterDisplayName = parameter.getName(); parameterDisplayName = parameter.getName();
} }
contentPane.add(flowTableLayoutHelper.createLabelFlowPane(BidiUtils.concatenateStrings(parameterDisplayName, ":"), editPane)); contentPane.add(flowTableLayoutHelper.createLabelFlowPane(parameterDisplayName + ":" , editPane));
//add editor to parameter hashtable. //add editor to parameter hashtable.
initTextListener(textF); initTextListener(textF);

6
designer-base/src/main/java/com/fr/design/style/FRFontPane.java

@ -4,6 +4,7 @@
package com.fr.design.style; package com.fr.design.style;
import com.fr.base.FRContext; import com.fr.base.FRContext;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.icombobox.LineComboBox; import com.fr.design.gui.icombobox.LineComboBox;
@ -137,7 +138,7 @@ public class FRFontPane extends BasicPane {
fireStateChanged(); fireStateChanged();
} }
}); });
foregroundPane.add(foregroundColorPane, BorderLayout.WEST); foregroundPane.add(foregroundColorPane, BorderLayout.LINE_START);
// center pane // center pane
JPanel centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
@ -146,7 +147,7 @@ public class FRFontPane extends BasicPane {
// other reportFont dialog // other reportFont dialog
JPanel otherFontPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel otherFontPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
centerPane.add(otherFontPane, BorderLayout.WEST); centerPane.add(otherFontPane, BorderLayout.LINE_START);
// otherFontPane.setLayout(FRGUIPaneFactory.createBorderLayout()); // otherFontPane.setLayout(FRGUIPaneFactory.createBorderLayout());
// effects pane // effects pane
@ -208,6 +209,7 @@ public class FRFontPane extends BasicPane {
//peteter:这里主动从Context, 获得默认的FRFont的值. //peteter:这里主动从Context, 获得默认的FRFont的值.
DefaultValues defaultValues = FRContext.getDefaultValues(); DefaultValues defaultValues = FRContext.getDefaultValues();
populate(defaultValues.getFRFont()); populate(defaultValues.getFRFont());
BidiUtils.applyOrientationByLocale(this);
} }
public void addChangeListener(ChangeListener changeListener) { public void addChangeListener(ChangeListener changeListener) {

2
designer-base/src/main/java/com/fr/design/utils/gui/UIComponentUtils.java

@ -25,7 +25,7 @@ public class UIComponentUtils {
* html内联css实现文本靠右对齐rtl * html内联css实现文本靠右对齐rtl
*/ */
private static final String HTML_TAG_TPL = BidiUtils.rtl() ? "<html><body style='text-align: right;width: %dpx'>" : "<html><body style='width: %dpx'>"; private static final String HTML_TAG_TPL = BidiUtils.rtl() ? "<html><body style='text-align: right;width: %dpx'>" : "<html><body style='width: %dpx'>";
private static final String HTML_BODY_TAG = "<html><body>"; private static final String HTML_BODY_TAG = BidiUtils.rtl() ? "<html><body style='text-align: right'>" : "<html><body>";
private static final String HTML_TAG = "<html>"; private static final String HTML_TAG = "<html>";
private static final int MIN_WIDTH = 10; private static final int MIN_WIDTH = 10;

30
designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java

@ -62,11 +62,14 @@ import javax.swing.JScrollPane;
import javax.swing.JTable; import javax.swing.JTable;
import javax.swing.JTree; import javax.swing.JTree;
import javax.swing.ListSelectionModel; import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.border.TitledBorder; import javax.swing.UIManager;
import javax.swing.table.AbstractTableModel; import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn; import javax.swing.table.TableColumn;
import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.DefaultTreeModel;
@ -176,6 +179,7 @@ public class DBManipulationPane extends BasicBeanPane<DBManipulation> {
addBottomPane(); addBottomPane();
addListeners(); addListeners();
BidiUtils.applyOrientationByLocale(this);
} }
public void setSubMitName(String subMitName) { public void setSubMitName(String subMitName) {
@ -254,7 +258,7 @@ public class DBManipulationPane extends BasicBeanPane<DBManipulation> {
JPanel btPane = new JPanel(FRGUIPaneFactory.createBorderLayout()); JPanel btPane = new JPanel(FRGUIPaneFactory.createBorderLayout());
btPane.add(eventPane, BorderLayout.CENTER); btPane.add(eventPane, BorderLayout.CENTER);
btPane.add(conditionPane, BorderLayout.NORTH); btPane.add(conditionPane, BorderLayout.NORTH);
this.add(btPane, BorderLayout.SOUTH); this.add(BidiUtils.applyOrientationByLocale(btPane), BorderLayout.SOUTH);
} }
private UIButton addEventButton() { private UIButton addEventButton() {
@ -991,6 +995,7 @@ public class DBManipulationPane extends BasicBeanPane<DBManipulation> {
public KeyColumnNameValueTable() { public KeyColumnNameValueTable() {
super(new KeyColumnValueTableModel(null)); super(new KeyColumnValueTableModel(null));
this.getTableHeader().setDefaultRenderer(new KeyColumnNameValueTableHeaderRender(this.getTableHeader()));
} }
@ -1007,6 +1012,27 @@ public class DBManipulationPane extends BasicBeanPane<DBManipulation> {
} }
protected static class KeyColumnNameValueTableHeaderRender implements TableCellRenderer {
private JTableHeader tableHeader;
public KeyColumnNameValueTableHeaderRender(JTableHeader tableHeader) {
this.tableHeader = tableHeader;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
tableHeader = table.getTableHeader();
tableHeader.setReorderingAllowed(false);
String valueStr = (String) value;
UILabel label = new UILabel(valueStr, SwingConstants.CENTER);
label.setForeground(tableHeader.getForeground());
label.setBackground(tableHeader.getBackground());
label.setFont(tableHeader.getFont());
label.setToolTipText(valueStr);
label.setBorder(UIManager.getBorder("TableHeader.cellBorder"));
return label;
}
}
protected abstract static class KeyColumnTableModel extends AbstractTableModel { protected abstract static class KeyColumnTableModel extends AbstractTableModel {
public static final String RAW_KEY = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_RWA_Key"); public static final String RAW_KEY = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_RWA_Key");
public static final String COLUMN = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_Column"); public static final String COLUMN = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_Column");

30
designer-base/src/main/java/com/fr/env/detect/ui/EnvDetectorDialog.java vendored

@ -1,6 +1,8 @@
package com.fr.env.detect.ui; package com.fr.env.detect.ui;
import com.fr.base.i18n.BidiUtils;
import com.fr.base.svg.IconUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.carton.FeedbackToolboxDialog;
import com.fr.design.components.notification.NotificationDialog; import com.fr.design.components.notification.NotificationDialog;
import com.fr.design.components.notification.NotificationDialogProperties; import com.fr.design.components.notification.NotificationDialogProperties;
import com.fr.design.components.notification.NotificationModel; import com.fr.design.components.notification.NotificationModel;
@ -24,9 +26,6 @@ import com.fr.env.detect.bean.DetectorResult;
import com.fr.env.detect.bean.DetectorStatus; import com.fr.env.detect.bean.DetectorStatus;
import com.fr.env.detect.bean.DetectorType; import com.fr.env.detect.bean.DetectorType;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.design.carton.FeedbackToolboxDialog;
import com.fr.stable.ProductConstantsBase;
import com.fr.stable.StableUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
@ -38,14 +37,13 @@ import javax.swing.plaf.ButtonUI;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Component; import java.awt.Component;
import java.awt.Cursor;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Frame; import java.awt.Frame;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Image; import java.awt.Image;
import java.awt.Cursor;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.io.File;
import java.net.URL; import java.net.URL;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -174,7 +172,7 @@ public class EnvDetectorDialog extends JDialog {
detectButton.setPreferredSize(new Dimension(68, 20)); detectButton.setPreferredSize(new Dimension(68, 20));
detectButton.setBorderPainted(false); detectButton.setBorderPainted(false);
detectButton.setContentAreaFilled(false); detectButton.setContentAreaFilled(false);
headerPanel.add(detectButton, BorderLayout.WEST); headerPanel.add(detectButton, BorderLayout.LINE_START);
UILabel openUtilBoxLabel = new UILabel(Toolkit.i18nText("Fine-Design_Basic_Carton_Feedback_ToolBox")); UILabel openUtilBoxLabel = new UILabel(Toolkit.i18nText("Fine-Design_Basic_Carton_Feedback_ToolBox"));
openUtilBoxLabel.setForeground(UIConstants.FLESH_BLUE); openUtilBoxLabel.setForeground(UIConstants.FLESH_BLUE);
@ -195,8 +193,8 @@ public class EnvDetectorDialog extends JDialog {
} }
} }
}); });
headerPanel.add(openUtilBoxLabel, BorderLayout.EAST); headerPanel.add(openUtilBoxLabel, BorderLayout.LINE_END);
return headerPanel; return BidiUtils.applyOrientationByLocale(headerPanel);
} }
private void startDetecting() { private void startDetecting() {
@ -342,7 +340,7 @@ public class EnvDetectorDialog extends JDialog {
updateTable(tablePanel); updateTable(tablePanel);
return tablePanel; return BidiUtils.applyOrientationByLocale(tablePanel);
} }
private void updateTable(TablePanel tablePanel) { private void updateTable(TablePanel tablePanel) {
@ -446,11 +444,11 @@ public class EnvDetectorDialog extends JDialog {
UICheckBox source = (UICheckBox) e.getSource(); UICheckBox source = (UICheckBox) e.getSource();
EnvDetectorDialog.this.detectOpen = source.isSelected(); EnvDetectorDialog.this.detectOpen = source.isSelected();
}); });
configPanel.add(checkBox, BorderLayout.WEST); configPanel.add(checkBox, BorderLayout.LINE_START);
UILabel description = new UILabel(Toolkit.i18nText("Fine-Design_Basic_Detect_Switch")); UILabel description = new UILabel(Toolkit.i18nText("Fine-Design_Basic_Detect_Switch"));
configPanel.add(description, BorderLayout.EAST); configPanel.add(description, BorderLayout.LINE_END);
} }
tailPanel.add(configPanel, BorderLayout.WEST); tailPanel.add(configPanel, BorderLayout.LINE_START);
JPanel actionsPanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel actionsPanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
actionsPanel.setLayout(FRGUIPaneFactory.createM_BorderLayout()); actionsPanel.setLayout(FRGUIPaneFactory.createM_BorderLayout());
@ -462,17 +460,17 @@ public class EnvDetectorDialog extends JDialog {
// 配置处理 // 配置处理
EnvDetectorConfig.getInstance().setEnabled(this.detectOpen); EnvDetectorConfig.getInstance().setEnabled(this.detectOpen);
}); });
actionsPanel.add(confirmButton, BorderLayout.WEST); actionsPanel.add(confirmButton, BorderLayout.LINE_START);
UIButton cancelButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Cancel")); UIButton cancelButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Cancel"));
cancelButton.addActionListener((e) -> { cancelButton.addActionListener((e) -> {
setVisible(false); setVisible(false);
dispose(); dispose();
}); });
actionsPanel.add(cancelButton, BorderLayout.EAST); actionsPanel.add(cancelButton, BorderLayout.LINE_END);
} }
tailPanel.add(actionsPanel, BorderLayout.EAST); tailPanel.add(actionsPanel, BorderLayout.LINE_END);
return tailPanel; return BidiUtils.applyOrientationByLocale(tailPanel);
} }
private void refreshHeader() { private void refreshHeader() {

30
designer-base/src/main/resources/com/fr/design/i18n/dimension_ar.properties

@ -1 +1,31 @@
com.fr.design.data.datapane.ReportTableDataPane=1050*600 com.fr.design.data.datapane.ReportTableDataPane=1050*600
com.fr.design.web.pane.text.field=450*20
com.fr.design.ds.column.sort.pane=220*150
com.fr.design.cell.expand.sort.pane=227*155
com.fr.design.mainframe.check.CheckButton=250*118
com.fr.design.mainframe.check.CheckFontInfoDialog.collapse=385*185
com.fr.design.mainframe.check.CheckFontInfoDialog.messageWithLink=325*31
com.fr.design.mainframe.check.CheckFontInfoDialog.unfold=385*280
com.fr.env.RemoteEnvPane.dialog=308*132
com.fr.design.version.check.dialog=230*95
com.fr.design.version.detail.label=450*30
com.fr.design.version.detail.dialog=600*500
com.fr.env.SyncFailedPluginsDialog.messageWithLink=316*20
com.fr.design.actions.server.dialog=700*630
com.fr.design.report.fit.templatePane.dialog=600*400
com.fr.design.report.fit.firstColumn=80*20
com.fr.design.report.fit.column=100*20
com.fr.design.lock.LockInfoDialog=400*180
com.fr.design.mainframe.ForbiddenPane.refreshButton=68*24
com.fr.start.common.DesignerOpenEmptyPanel.createButton=70*24
com.fr.design.sort.rule.item=80*20
com.fr.design.sort.expand.header.pane=108*10
com.fr.design.plugin.remind.PluginInvalidateRemindDialog.dialog=600*500
com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369
com.fr.design.report.WatermarkSettingPane=720*600
com.fr.design.file.MultiTemplateTabPane.popUpMenu=170*65
com.fr.design.formula.FormulaPane=900*600
com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600
com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane.configLabel=75*20
com.fr.design.mainframe.mobile.utils.DesignerUtils.configLabel=100*20
com.fr.design.update.ui.dialog.UpdateMainDialog.updateButton=80*24

2
designer-chart/src/main/java/com/fr/design/module/ChartPreFillStylePane.java

@ -74,7 +74,7 @@ public class ChartPreFillStylePane extends BasicBeanPane<ChartColorMatching> {
double[] columnSize = {p, p}; double[] columnSize = {p, p};
double[] rowSize = {p, p, p}; double[] rowSize = {p, p, p};
Component[][] components = new Component[][]{ Component[][] components = new Component[][]{
new Component[]{new UILabel(BidiUtils.concatenateStrings(" ", com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Color_Match"))), null}, new Component[]{new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Color_Match")), null},
new Component[]{null, customPane}, new Component[]{null, customPane},
}; };

4
designer-chart/src/main/java/com/fr/van/chart/designer/other/VanChartInteractivePane.java

@ -203,7 +203,9 @@ public class VanChartInteractivePane extends AbstractVanChartScrollPane<Chart> {
if (!plot.isSupportZoomDirection()) { if (!plot.isSupportZoomDirection()) {
return null; return null;
} }
zoomWidget = new UICheckBox(Toolkit.i18nText("Fine-Design_Chart_Open_Zoom_Control")); String zoomWidgetName = Toolkit.i18nText("Fine-Design_Chart_Open_Zoom_Control");
zoomWidget = new UICheckBox(zoomWidgetName);
zoomWidget.setToolTipText(zoomWidgetName);
zoomGesture = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Open"), Toolkit.i18nText("Fine-Design_Chart_Close")}); zoomGesture = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Open"), Toolkit.i18nText("Fine-Design_Chart_Close")});
JPanel zoomWidgetPane = TableLayout4VanChartHelper.createGapTableLayoutPaneWithoutTop(Toolkit.i18nText("Fine-Design_Chart_Zoom_Widget"), zoomWidget); JPanel zoomWidgetPane = TableLayout4VanChartHelper.createGapTableLayoutPaneWithoutTop(Toolkit.i18nText("Fine-Design_Chart_Zoom_Widget"), zoomWidget);
JPanel zoomGesturePane = TableLayout4VanChartHelper.createGapTableLayoutPaneWithoutTop(Toolkit.i18nText("Fine-Design_Chart_ZoomGesture"), zoomGesture); JPanel zoomGesturePane = TableLayout4VanChartHelper.createGapTableLayoutPaneWithoutTop(Toolkit.i18nText("Fine-Design_Chart_ZoomGesture"), zoomGesture);

16
designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java

@ -1,6 +1,7 @@
package com.fr.design.mainframe; package com.fr.design.mainframe;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.base.i18n.BidiUtils;
import com.fr.base.svg.IconUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.ExtraDesignClassManager; import com.fr.design.ExtraDesignClassManager;
import com.fr.design.constants.UIConstants; import com.fr.design.constants.UIConstants;
@ -136,7 +137,7 @@ public class FormParaWidgetPane extends JPanel {
} }
public FormParaWidgetPane() { public FormParaWidgetPane() {
setLayout(new FlowLayout(FlowLayout.LEFT)); setLayout(new FlowLayout(FlowLayout.LEADING));
DesignerContext.getDesignerFrame().getCenterTemplateCardPane().addComponentListener(new ComponentAdapter() { DesignerContext.getDesignerFrame().getCenterTemplateCardPane().addComponentListener(new ComponentAdapter() {
@Override @Override
public void componentResized(ComponentEvent e) { public void componentResized(ComponentEvent e) {
@ -158,19 +159,20 @@ public class FormParaWidgetPane extends JPanel {
} }
}); });
initFormParaComponent(); initFormParaComponent();
BidiUtils.applyOrientationByLocale(this);
} }
private void initWidgetTypePopUp() { private void initWidgetTypePopUp() {
JPanel widgetPane = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); JPanel widgetPane = new JPanel(new FlowLayout(FlowLayout.LEADING, 0, 0));
loadPredefinedWidget(); loadPredefinedWidget();
int rowNum = calculateWidgetWindowRowNum(); int rowNum = calculateWidgetWindowRowNum();
JPanel westPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JPanel westPanel = new JPanel(new FlowLayout(FlowLayout.LEADING));
for (WidgetOption o : loadWidgetOptions()) { for (WidgetOption o : loadWidgetOptions()) {
westPanel.add(new ToolBarButton(o)); westPanel.add(new ToolBarButton(o));
} }
int x = commonWidgetNum * (widgetButtonWidth + smallGAP) - smallGAP; int x = commonWidgetNum * (widgetButtonWidth + smallGAP) - smallGAP;
westPanel.setPreferredSize(new Dimension(x, (int) (rowNum * westPanel.getPreferredSize().getHeight()))); westPanel.setPreferredSize(new Dimension(x, (int) (rowNum * westPanel.getPreferredSize().getHeight())));
JPanel eastPane = new JPanel(new FlowLayout(FlowLayout.LEFT)); JPanel eastPane = new JPanel(new FlowLayout(FlowLayout.LEADING));
for (WidgetOption no : predifinedwidgeList) { for (WidgetOption no : predifinedwidgeList) {
eastPane.add(new ToolBarButton(no)); eastPane.add(new ToolBarButton(no));
} }
@ -196,7 +198,7 @@ public class FormParaWidgetPane extends JPanel {
private void initChartTypePopUp() { private void initChartTypePopUp() {
if (chartTypePopupMenu == null) { if (chartTypePopupMenu == null) {
JPanel componentsPara = new JPanel(new FlowLayout(FlowLayout.LEFT)); JPanel componentsPara = new JPanel(new FlowLayout(FlowLayout.LEADING));
WidgetOption[] chartOptions = loadChartOptions(); WidgetOption[] chartOptions = loadChartOptions();
for (WidgetOption chartOption : chartOptions) { for (WidgetOption chartOption : chartOptions) {
ToolBarButton button = new ToolBarButton(chartOption); ToolBarButton button = new ToolBarButton(chartOption);
@ -374,7 +376,7 @@ public class FormParaWidgetPane extends JPanel {
(int) jSeparatorLayout.getLocation().getY()); (int) jSeparatorLayout.getLocation().getY());
} }
}); });
labelPane.add(chartPopUpButton, BorderLayout.EAST); labelPane.add(chartPopUpButton, BorderLayout.LINE_END);
chartPane.add(labelPane, BorderLayout.SOUTH); chartPane.add(labelPane, BorderLayout.SOUTH);
return chartPane; return chartPane;
} }
@ -401,7 +403,7 @@ public class FormParaWidgetPane extends JPanel {
} }
}); });
labelPane.add(chartPopUpButton, BorderLayout.EAST); labelPane.add(chartPopUpButton, BorderLayout.LINE_END);
widgetPane.add(labelPane, BorderLayout.SOUTH); widgetPane.add(labelPane, BorderLayout.SOUTH);
return widgetPane; return widgetPane;
} }

4
designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java

@ -1,5 +1,6 @@
package com.fr.design.widget.ui.designer.mobile; package com.fr.design.widget.ui.designer.mobile;
import com.fr.base.i18n.BidiUtils;
import com.fr.base.iofile.attr.FormBodyPaddingAttrMark; import com.fr.base.iofile.attr.FormBodyPaddingAttrMark;
import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.beans.events.DesignerEvent;
import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreator;
@ -74,7 +75,8 @@ public class BodyMobileDefinePane extends MobileWidgetDefinePane {
appRelayoutCheck = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_App_ReLayout"), true); appRelayoutCheck = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_App_ReLayout"), true);
appRelayoutCheck.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); appRelayoutCheck.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
panel.add(appRelayoutCheck); panel.add(appRelayoutCheck, BorderLayout.LINE_START);
BidiUtils.applyOrientationByLocale(panel);
final JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); final JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane();
panelWrapper.add(panel, BorderLayout.NORTH); panelWrapper.add(panel, BorderLayout.NORTH);

3
designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileBookMarkUsePane.java

@ -1,5 +1,6 @@
package com.fr.design.widget.ui.designer.mobile.component; package com.fr.design.widget.ui.designer.mobile.component;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.designer.IntervalConstants; import com.fr.design.designer.IntervalConstants;
import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.beans.events.DesignerEvent;
import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreator;
@ -66,7 +67,7 @@ public class MobileBookMarkUsePane extends BasicPane {
showBookMarkPane.setBorder( showBookMarkPane.setBorder(
BorderFactory.createEmptyBorder(IntervalConstants.INTERVAL_L1, 0, IntervalConstants.INTERVAL_L1, 0)); BorderFactory.createEmptyBorder(IntervalConstants.INTERVAL_L1, 0, IntervalConstants.INTERVAL_L1, 0));
wrapPane.add(showBookMarkPane, BorderLayout.CENTER); wrapPane.add(showBookMarkPane, BorderLayout.CENTER);
this.add(showBookMarkPane, BorderLayout.CENTER); this.add(BidiUtils.applyOrientationByLocale(showBookMarkPane), BorderLayout.CENTER);
} }
public void populate(XCreator xCreator) { public void populate(XCreator xCreator) {

4
designer-realize/src/main/java/com/fr/design/dscolumn/DSColumnAdvancedPane.java

@ -405,7 +405,7 @@ public class DSColumnAdvancedPane extends BasicPane {
UIButton bottomFrmulaButton = new UIButton("..."); UIButton bottomFrmulaButton = new UIButton("...");
this.add(bottomFrmulaButton); this.add(bottomFrmulaButton);
bottomFrmulaButton.setToolTipText(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Formula"), "...")); bottomFrmulaButton.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Formula") + "...");
bottomFrmulaButton.setPreferredSize(new Dimension(25, formulaTextField.getPreferredSize().height)); bottomFrmulaButton.setPreferredSize(new Dimension(25, formulaTextField.getPreferredSize().height));
bottomFrmulaButton.addActionListener(formulaButtonActionListener); bottomFrmulaButton.addActionListener(formulaButtonActionListener);
} }
@ -468,7 +468,7 @@ public class DSColumnAdvancedPane extends BasicPane {
public ValuePane() { public ValuePane() {
this.setLayout(FRGUIPaneFactory.createBoxFlowLayout()); this.setLayout(FRGUIPaneFactory.createBoxFlowLayout());
this.add(new UILabel(BidiUtils.concatenateStrings(InsetText, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Value"), ":"))); this.add(new UILabel(InsetText + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Value") + ":"));
this.add(Box.createHorizontalStrut(2)); this.add(Box.createHorizontalStrut(2));
this.add((formulaField = new JFormulaField("$$$"))); this.add((formulaField = new JFormulaField("$$$")));
} }

20
designer-realize/src/main/java/com/fr/design/expand/ConditionParentPane.java

@ -1,21 +1,17 @@
package com.fr.design.expand; package com.fr.design.expand;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import javax.swing.JComponent;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import javax.swing.JPanel;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.ElementCasePane; import com.fr.design.mainframe.ElementCasePane;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.report.cell.TemplateCellElement; import com.fr.report.cell.TemplateCellElement;
import com.fr.report.cell.cellattr.CellExpandAttr; import com.fr.report.cell.cellattr.CellExpandAttr;
import com.fr.design.utils.gui.GUICoreUtils;
import javax.swing.JComponent;
import javax.swing.JPanel;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
public class ConditionParentPane extends JPanel { public class ConditionParentPane extends JPanel {
private ParentPane leftParentPane; private ParentPane leftParentPane;
@ -39,12 +35,12 @@ public class ConditionParentPane extends JPanel {
innerthis.add(eastPane); innerthis.add(eastPane);
eastPane.add(GUICoreUtils.createFlowPane(new JComponent[] { eastPane.add(GUICoreUtils.createFlowPane(new JComponent[] {
new UILabel(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Left_Parent"), ": ")), new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Left_Parent") + ":" + " "),
leftParentPane = new ParentPane(ParentPane.LEFT, listener) }, FlowLayout.LEADING)); leftParentPane = new ParentPane(ParentPane.LEFT, listener) }, FlowLayout.LEADING));
eastPane.add(GUICoreUtils.createFlowPane( eastPane.add(GUICoreUtils.createFlowPane(
new JComponent[] { new JComponent[] {
new UILabel(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Up_Parent"), ": ")), new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Up_Parent") + ":" + " "),
upParentPane = new ParentPane(ParentPane.UP, listener) }, FlowLayout.LEADING)); upParentPane = new ParentPane(ParentPane.UP, listener) }, FlowLayout.LEADING));
} }
public void putElementcase(ElementCasePane t){ public void putElementcase(ElementCasePane t){

4
designer-realize/src/main/java/com/fr/design/headerfooter/HFAttributesEditDialog.java

@ -13,6 +13,7 @@ import com.fr.base.headerfooter.NumberOfPageHFElement;
import com.fr.base.headerfooter.PageNumberHFElement; import com.fr.base.headerfooter.PageNumberHFElement;
import com.fr.base.headerfooter.TextHFElement; import com.fr.base.headerfooter.TextHFElement;
import com.fr.base.headerfooter.TimeHFElement; import com.fr.base.headerfooter.TimeHFElement;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.formula.FormulaFactory; import com.fr.design.formula.FormulaFactory;
@ -71,7 +72,8 @@ public class HFAttributesEditDialog extends BasicPane {
// topControlPane.setLayout(FRGUIPaneFactory.createBorderLayout()); // topControlPane.setLayout(FRGUIPaneFactory.createBorderLayout());
JPanel topControlButtonPane =FRGUIPaneFactory.createMediumHGapFlowInnerContainer_M_Pane(); JPanel topControlButtonPane =FRGUIPaneFactory.createMediumHGapFlowInnerContainer_M_Pane();
topControlPane.add(topControlButtonPane, BorderLayout.WEST); topControlPane.add(topControlButtonPane, BorderLayout.LINE_START);
BidiUtils.applyOrientationByLocale(topControlPane);
moveLeftButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_HF_Move_Left")); moveLeftButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_HF_Move_Left"));

4
designer-realize/src/main/java/com/fr/design/headerfooter/ImagePane.java

@ -3,6 +3,7 @@
*/ */
package com.fr.design.headerfooter; package com.fr.design.headerfooter;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.frpane.ImgChooseWrapper; import com.fr.design.gui.frpane.ImgChooseWrapper;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
@ -47,7 +48,8 @@ public class ImagePane extends BasicPane {
//select image //select image
JPanel rightPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel rightPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
this.add(rightPane, BorderLayout.EAST); this.add(rightPane, BorderLayout.LINE_END);
BidiUtils.applyOrientationByLocale(this);
// rightPane.setLayout(FRGUIPaneFactory.createBorderLayout()); // rightPane.setLayout(FRGUIPaneFactory.createBorderLayout());
if (hasPreviewBorder) { if (hasPreviewBorder) {

7
designer-realize/src/main/java/com/fr/design/mainframe/bbs/BBSGuestPane.java

@ -3,6 +3,7 @@
*/ */
package com.fr.design.mainframe.bbs; package com.fr.design.mainframe.bbs;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.gui.ilable.ActionLabel; import com.fr.design.gui.ilable.ActionLabel;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
@ -43,6 +44,7 @@ public class BBSGuestPane extends JPanel implements BBSGuestPaneProvider{
guestPane.add(userPane, BorderLayout.CENTER); guestPane.add(userPane, BorderLayout.CENTER);
this.add(guestPane); this.add(guestPane);
BidiUtils.applyOrientationByLocale(this);
} }
private JPanel initUserPane(){ private JPanel initUserPane(){
@ -66,11 +68,12 @@ public class BBSGuestPane extends JPanel implements BBSGuestPaneProvider{
private JPanel initInfoPane(){ private JPanel initInfoPane(){
JPanel infoPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel infoPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
UILabel infoNorthLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Thank_Guest")); UILabel infoNorthLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Thank_Guest"));
infoNorthLabel.setHorizontalAlignment(SwingConstants.LEADING);
UILabel centerLabel = new UILabel(StringUtils.BLANK); UILabel centerLabel = new UILabel(StringUtils.BLANK);
infoPane.add(infoNorthLabel, BorderLayout.NORTH); infoPane.add(infoNorthLabel, BorderLayout.NORTH);
infoPane.add(centerLabel, BorderLayout.CENTER); infoPane.add(centerLabel, BorderLayout.LINE_START);
return infoPane; return BidiUtils.applyOrientationByLocale(infoPane);
} }
private ActionLabel getURLActionLabel(final String text, final String url){ private ActionLabel getURLActionLabel(final String text, final String url){

9
designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/model/DesensitizationCellPane.java

@ -1,7 +1,6 @@
package com.fr.design.mainframe.cell.settingpane.desensitization.model; package com.fr.design.mainframe.cell.settingpane.desensitization.model;
import com.fr.base.i18n.BidiUtils; import com.fr.base.i18n.BidiUtils;
import com.fr.base.operator.org.OrganizationOperator;
import com.fr.data.desensitize.rule.DesensitizationRuleManager; import com.fr.data.desensitize.rule.DesensitizationRuleManager;
import com.fr.data.desensitize.rule.base.DesensitizationRule; import com.fr.data.desensitize.rule.base.DesensitizationRule;
import com.fr.data.desensitize.rule.base.DesensitizationRuleSource; import com.fr.data.desensitize.rule.base.DesensitizationRuleSource;
@ -11,7 +10,6 @@ import com.fr.design.data.datapane.preview.desensitization.view.rule.Desensitiza
import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.event.UIObserverListener; import com.fr.design.event.UIObserverListener;
import com.fr.design.file.HistoryTemplateListCache;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icombocheckbox.UIComboCheckBox; import com.fr.design.gui.icombocheckbox.UIComboCheckBox;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
@ -21,17 +19,14 @@ import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper; import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.layout.VerticalFlowLayout; import com.fr.design.layout.VerticalFlowLayout;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.mainframe.JTemplateActionListener;
import com.fr.report.cell.desensitization.CellDesensitizationBean; import com.fr.report.cell.desensitization.CellDesensitizationBean;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.third.org.apache.commons.collections4.map.HashedMap; import com.fr.third.org.apache.commons.collections4.map.HashedMap;
import com.fr.workspace.WorkContext;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Component; import java.awt.Component;
@ -44,7 +39,6 @@ import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ExecutionException;
/** /**
* 单元格脱敏规则设置面板 * 单元格脱敏规则设置面板
@ -83,6 +77,7 @@ public class DesensitizationCellPane extends BasicBeanPane {
editPanel.setLayout(new VerticalFlowLayout(VerticalFlowLayout.TOP, 0, 0, true)); editPanel.setLayout(new VerticalFlowLayout(VerticalFlowLayout.TOP, 0, 0, true));
label = new UILabel(); label = new UILabel();
label.setHorizontalAlignment(SwingConstants.LEADING);
label.setEnabled(false); label.setEnabled(false);
editPanel.add(label); editPanel.add(label);

4
designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/style/StylePane.java

@ -22,6 +22,7 @@ import com.fr.log.FineLoggerFactory;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.CardLayout; import java.awt.CardLayout;
@ -156,7 +157,8 @@ public class StylePane extends BasicPane implements UIObserver {
private JPanel createThemedStylePane() { private JPanel createThemedStylePane() {
JPanel container = new JPanel(new BorderLayout(0, IntervalConstants.INTERVAL_L1)); JPanel container = new JPanel(new BorderLayout(0, IntervalConstants.INTERVAL_L1));
UILabel uiLabel = new UILabel(Toolkit.i18nText("Fine-Design_Style_Applying")); UILabel uiLabel = new UILabel(Toolkit.i18nText("Fine-Design_Style_Applying"), SwingConstants.LEADING);
BidiUtils.setOrientationByLocale(uiLabel);
uiLabel.setPreferredSize(new Dimension(uiLabel.getPreferredSize().width, 20)); uiLabel.setPreferredSize(new Dimension(uiLabel.getPreferredSize().width, 20));
container.add(uiLabel, BorderLayout.NORTH); container.add(uiLabel, BorderLayout.NORTH);
nameStyleListPane.setBorder(BorderFactory.createEmptyBorder()); nameStyleListPane.setBorder(BorderFactory.createEmptyBorder());

4
designer-realize/src/main/java/com/fr/design/report/PageSetupPane.java

@ -194,12 +194,12 @@ public class PageSetupPane extends BasicPane {
defaultPane.add(paperSizePane); defaultPane.add(paperSizePane);
predefinedRadioButton = new UIRadioButton(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Predefined"), ":")); predefinedRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Predefined") + ":");
predefinedRadioButton.setMnemonic('P'); predefinedRadioButton.setMnemonic('P');
predefinedRadioButton.addActionListener(previewListener); predefinedRadioButton.addActionListener(previewListener);
customRadioButton = new UIRadioButton(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom"), ":")); customRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom") + ":");
customRadioButton.setMnemonic('C'); customRadioButton.setMnemonic('C');
customRadioButton.addActionListener(previewListener); customRadioButton.addActionListener(previewListener);

6
designer-realize/src/main/java/com/fr/design/report/ReportColumnsPane.java

@ -309,20 +309,20 @@ public class ReportColumnsPane extends BasicPane{
JPanel rowPane = new JPanel(); JPanel rowPane = new JPanel();
UITitledBorder explainBorder = UITitledBorder.createBorderWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Column_Area")); UITitledBorder explainBorder = UITitledBorder.createBorderWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Column_Area"));
rowPane.setBorder(explainBorder); rowPane.setBorder(explainBorder);
rowPane.setLayout(new FlowLayout(FlowLayout.LEFT, 5,13)); rowPane.setLayout(new FlowLayout(FlowLayout.LEADING, 5,13));
rowPane.setPreferredSize(new Dimension(500,80)); rowPane.setPreferredSize(new Dimension(500,80));
rowPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Column_Data") + ":")); rowPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Column_Data") + ":"));
repeatColDataTextField = new UITextField(); repeatColDataTextField = new UITextField();
repeatColDataTextField.setPreferredSize(new Dimension(107,24)); repeatColDataTextField.setPreferredSize(new Dimension(107,24));
rowPane.add(repeatColDataTextField); rowPane.add(repeatColDataTextField);
rowPane.add(new UILabel(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Base_Format") + ": A2:D5 "))); rowPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Base_Format") + ": A2:D5 "));
copyLabel = new UILabel(REPORT_COLUMN_RAPEAT[rowOrColumn] + ":"); copyLabel = new UILabel(REPORT_COLUMN_RAPEAT[rowOrColumn] + ":");
rowPane.add(copyLabel); rowPane.add(copyLabel);
copyTitleTextField = new UITextField(); copyTitleTextField = new UITextField();
copyTitleTextField.setPreferredSize(new Dimension(107,24)); copyTitleTextField.setPreferredSize(new Dimension(107,24));
rowPane.add(copyTitleTextField); rowPane.add(copyTitleTextField);
rowPane.add(new UILabel(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Base_Format") + ": 1,2-3,5,18"))); rowPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Base_Format") + ": 1,2-3,5,18"));
return BidiUtils.applyOrientationByLocale(rowPane); return BidiUtils.applyOrientationByLocale(rowPane);

4
designer-realize/src/main/java/com/fr/design/sort/header/HeaderSortRulePane.java

@ -1,6 +1,7 @@
package com.fr.design.sort.header; package com.fr.design.sort.header;
import com.fr.base.FineColor; import com.fr.base.FineColor;
import com.fr.base.i18n.BidiUtils;
import com.fr.base.svg.SVGIcon; import com.fr.base.svg.SVGIcon;
import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserver;
import com.fr.design.event.UIObserverListener; import com.fr.design.event.UIObserverListener;
@ -49,7 +50,8 @@ public class HeaderSortRulePane extends JPanel {
} }
void initUILabel() { void initUILabel() {
UILabel uiLabel = new UILabel(Toolkit.i18nText("Fine-Design_Sort_Header_Sort_Basis"), SwingConstants.LEFT); UILabel uiLabel = new UILabel(Toolkit.i18nText("Fine-Design_Sort_Header_Sort_Basis"), SwingConstants.LEADING);
BidiUtils.setOrientationByLocale(uiLabel);
this.add(uiLabel, BorderLayout.NORTH); this.add(uiLabel, BorderLayout.NORTH);
} }

10
designer-realize/src/main/java/com/fr/design/webattr/DragToolBarPane.java

@ -38,7 +38,7 @@ import java.awt.image.ImageObserver;
public class DragToolBarPane extends WidgetToolBarPane { public class DragToolBarPane extends WidgetToolBarPane {
private DefaultListModel toolbarButtonListModel = new DefaultListModel(); private DefaultListModel toolbarButtonListModel = new DefaultListModel();
private JList toolbarButtonList; private JList toolbarButtonList;
private static final int SOLID_WIDTH_TOOLBAR = 499;
public DragToolBarPane() { public DragToolBarPane() {
this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setLayout(FRGUIPaneFactory.createBorderLayout());
@ -67,10 +67,10 @@ public class DragToolBarPane extends WidgetToolBarPane {
toolbarButtonList.setDragEnabled(true); toolbarButtonList.setDragEnabled(true);
toolbarButtonList.setTransferHandler(new FromTransferHandler()); toolbarButtonList.setTransferHandler(new FromTransferHandler());
northToolBar = new ToolBarPane(); northToolBar = new ToolBarPane();
northToolBar.setPreferredSize(new Dimension(ImageObserver.WIDTH, 26)); northToolBar.setPreferredSize(new Dimension(BidiUtils.rtl() ? SOLID_WIDTH_TOOLBAR : ImageObserver.WIDTH, 26));
northToolBar.setBackground(Color.lightGray); northToolBar.setBackground(Color.lightGray);
southToolBar = new ToolBarPane(); southToolBar = new ToolBarPane();
southToolBar.setPreferredSize(new Dimension(ImageObserver.WIDTH, 26)); southToolBar.setPreferredSize(new Dimension(BidiUtils.rtl() ? SOLID_WIDTH_TOOLBAR : ImageObserver.WIDTH, 26));
southToolBar.setBackground(Color.lightGray); southToolBar.setBackground(Color.lightGray);
JPanel northContentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel northContentPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
SettingToolBar top = new SettingToolBar(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ToolBar_Top"), northToolBar); SettingToolBar top = new SettingToolBar(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ToolBar_Top"), northToolBar);
@ -87,10 +87,8 @@ public class DragToolBarPane extends WidgetToolBarPane {
movePane.add(northContentPane, BorderLayout.NORTH); movePane.add(northContentPane, BorderLayout.NORTH);
movePane.add(toolbarButtonList, BorderLayout.CENTER); movePane.add(toolbarButtonList, BorderLayout.CENTER);
movePane.add(southContentPane, BorderLayout.SOUTH); movePane.add(southContentPane, BorderLayout.SOUTH);
BidiUtils.setOrientationByLocale(toolbarButtonList);
// SplitPane // SplitPane
this.add(new JScrollPane(movePane), BorderLayout.CENTER); this.add(BidiUtils.applyOrientationByLocale(new JScrollPane(movePane)), BorderLayout.CENTER);
JPanel buttonPane = FRGUIPaneFactory.createCenterFlowInnerContainer_S_Pane(); JPanel buttonPane = FRGUIPaneFactory.createCenterFlowInnerContainer_S_Pane();
UIButton defaultButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Use_Default_ToolBar")); UIButton defaultButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Use_Default_ToolBar"));
defaultButton.addActionListener(new ActionListener() { defaultButton.addActionListener(new ActionListener() {

4
designer-realize/src/main/java/com/fr/design/webattr/EditToolBar.java

@ -420,7 +420,7 @@ public class EditToolBar extends BasicPane {
double rowSize[] = {p, p}; double rowSize[] = {p, p};
double columnSize[] = {p, p}; double columnSize[] = {p, p};
Component[][] coms = new Component[][]{{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Widget_Printer_Alias") + ":"), nameField}, {new UILabel(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Widget_Icon"), ":")), iconPane}}; Component[][] coms = new Component[][]{{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Widget_Printer_Alias") + ":"), nameField}, {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Widget_Icon") + ":"), iconPane}};
JPanel nameIconPane = TableLayoutHelper.createTableLayoutPane(coms, rowSize, columnSize); JPanel nameIconPane = TableLayoutHelper.createTableLayoutPane(coms, rowSize, columnSize);
@ -454,7 +454,7 @@ public class EditToolBar extends BasicPane {
button = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_User_Defined_Event")); button = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_User_Defined_Event"));
customPane.add(button); customPane.add(button);
customPane.setBorder(GUICoreUtils.createTitledBorder(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Edit"), "JS"), null)); customPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Edit") + "JS", null));
button.addActionListener(l); button.addActionListener(l);
return customPane; return customPane;
} }

7
designer-realize/src/main/java/com/fr/design/webattr/ErrorTemplatePane.java

@ -1,5 +1,6 @@
package com.fr.design.webattr; package com.fr.design.webattr;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itextfield.UITextField;
@ -35,9 +36,9 @@ public class ErrorTemplatePane extends BasicBeanPane<String> {
{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Template_Path") + ":"), reportletNamePane}, {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Template_Path") + ":"), reportletNamePane},
{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Template_Parameters") + ":"), null}, {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Template_Parameters") + ":"), null},
{new UILabel("message" + ":"), new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Verify_Message"))}, {new UILabel(BidiUtils.concatenateStrings("message", ":")), new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Verify_Message"))},
{new UILabel("charset" + ":"), new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Server_Charset"))}, {new UILabel(BidiUtils.concatenateStrings("charset", ":")), new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Server_Charset"))},
{new UILabel("exception" + ":"), new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Exception_Stack_Trace"))} {new UILabel(BidiUtils.concatenateStrings("exception", ":")), new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Exception_Stack_Trace"))}
}; };
JPanel northPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); JPanel northPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);

4
designer-realize/src/main/java/com/fr/design/webattr/ServerPrinterPane.java

@ -142,7 +142,7 @@ public class ServerPrinterPane extends BasicPane {
} }
} }
}); });
printerDialog.setTitle(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ReportServerP_Add_Printer"), "...")); printerDialog.setTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ReportServerP_Add_Printer") + "...");
BidiUtils.applyOrientationByLocale(printerDialog); BidiUtils.applyOrientationByLocale(printerDialog);
printerDialog.setVisible(true); printerDialog.setVisible(true);
} }
@ -347,7 +347,7 @@ public class ServerPrinterPane extends BasicPane {
public void checkValid() throws Exception { public void checkValid() throws Exception {
String printerName = printerCombo.getSelectedItem().toString(); String printerName = printerCombo.getSelectedItem().toString();
if (StringUtils.isBlank(printerName)) { if (StringUtils.isBlank(printerName)) {
throw new Exception(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ReportServerP_The_Name_Of_Printer_Cannot_Be_Null"), ".")); throw new Exception(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ReportServerP_The_Name_Of_Printer_Cannot_Be_Null") + ".");
} }
} }

6
designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java

@ -45,9 +45,9 @@ public class WebCssPane extends BasicPane {
chooseFile = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Selection")); chooseFile = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Selection"));
chooseFile.setPreferredSize(new Dimension(75, 23)); chooseFile.setPreferredSize(new Dimension(75, 23));
chooseFile.addActionListener(chooseFileListener); chooseFile.addActionListener(chooseFileListener);
northPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Disk_File") + ":"), FlowLayout.LEFT); northPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Disk_File") + ":"));
northPane.add(localText, FlowLayout.CENTER); northPane.add(localText);
northPane.add(chooseFile, FlowLayout.RIGHT); northPane.add(chooseFile);
outnorth.add(northPane,BorderLayout.NORTH); outnorth.add(northPane,BorderLayout.NORTH);
UILabel infor = FRWidgetFactory.createLineWrapLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CSS_Warning", UILabel infor = FRWidgetFactory.createLineWrapLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CSS_Warning",
ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBAPP_NAME)); ProjectConstants.WEBAPP_NAME, ProjectConstants.WEBAPP_NAME));

11
designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java

@ -55,8 +55,8 @@ public class WebJsPane extends BasicPane {
this.setLayout(new BorderLayout(0, 20)); this.setLayout(new BorderLayout(0, 20));
this.setBorder(BorderFactory.createEmptyBorder(10, 5, 0, 0)); this.setBorder(BorderFactory.createEmptyBorder(10, 5, 0, 0));
localFileRadioButton = new UIRadioButton(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Disk_File"), ":"), true); localFileRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Disk_File") + ":", true);
urlFileRadioButton = new UIRadioButton(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Url_Location"), ":"), false); urlFileRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Url_Location") + ":", false);
ButtonGroup bg = new ButtonGroup(); ButtonGroup bg = new ButtonGroup();
bg.add(localFileRadioButton); bg.add(localFileRadioButton);
bg.add(urlFileRadioButton); bg.add(urlFileRadioButton);
@ -95,7 +95,7 @@ public class WebJsPane extends BasicPane {
private void createNorthPane() { private void createNorthPane() {
JPanel outnorth = new JPanel(new BorderLayout(0, 5)); JPanel outnorth = new JPanel(new BorderLayout(0, 5));
JPanel firstnorth = new JPanel(new BorderLayout(0, 5)); JPanel firstnorth = new JPanel(new BorderLayout(0, 5));
JPanel northPane = new JPanel(new FlowLayout(FlowLayout.LEFT,7,0)); JPanel northPane = new JPanel(new FlowLayout(FlowLayout.LEADING,7,0));
northPane.add(localFileRadioButton); northPane.add(localFileRadioButton);
northPane.add(localText); northPane.add(localText);
northPane.add(chooseFile); northPane.add(chooseFile);
@ -106,12 +106,13 @@ public class WebJsPane extends BasicPane {
firstnorth.add(infor1,BorderLayout.CENTER); firstnorth.add(infor1,BorderLayout.CENTER);
JPanel secondnorth = new JPanel(new BorderLayout(0, 5)); JPanel secondnorth = new JPanel(new BorderLayout(0, 5));
JPanel centerPane = new JPanel(new FlowLayout(FlowLayout.LEFT,7,0)); JPanel centerPane = new JPanel(new FlowLayout(FlowLayout.LEADING,7,0));
BidiUtils.applyOrientationByLocale(northPane, centerPane);
centerPane.add(urlFileRadioButton); centerPane.add(urlFileRadioButton);
centerPane.add(urlText); centerPane.add(urlText);
centerPane.add(testConnection); centerPane.add(testConnection);
secondnorth.add(centerPane,BorderLayout.NORTH); secondnorth.add(centerPane,BorderLayout.NORTH);
infor2 = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JS_WARNING2", ProjectConstants.WEBAPP_NAME)); infor2 = FRWidgetFactory.createLineWrapLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JS_WARNING1", ProjectConstants.WEBAPP_NAME));
infor2.setForeground(new Color(207, 42, 39)); infor2.setForeground(new Color(207, 42, 39));
secondnorth.add(infor2,BorderLayout.CENTER); secondnorth.add(infor2,BorderLayout.CENTER);

2
designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java

@ -75,7 +75,7 @@ public class WriteToolBarPane extends AbstractEditToolBarPane {
rptButtonGroup.add(centerRadioButton); rptButtonGroup.add(centerRadioButton);
northPane.add(GUICoreUtils.createFlowPane(new Component[]{rptShowLocationLabel, centerRadioButton, leftRadioButton}, BidiUtils.rtl() ? FlowLayout.RIGHT : FlowLayout.LEFT)); northPane.add(GUICoreUtils.createFlowPane(new Component[]{rptShowLocationLabel, centerRadioButton, leftRadioButton}, BidiUtils.rtl() ? FlowLayout.RIGHT : FlowLayout.LEFT));
colorBox = new UICheckBox(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Set_Face_Write_Current_Edit_Row_Background"), ":")); colorBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Set_Face_Write_Current_Edit_Row_Background") + ":");
colorBox.setSelected(false); colorBox.setSelected(false);
colorBox.addActionListener(colorListener); colorBox.addActionListener(colorListener);
colorButton = new UINoThemeColorButton(BaseUtils.readIcon("/com/fr/design/images/gui/color/background.png")); colorButton = new UINoThemeColorButton(BaseUtils.readIcon("/com/fr/design/images/gui/color/background.png"));

4
designer-realize/src/main/java/com/fr/design/webattr/printsettings/GlobalNativePrintSettingPane.java

@ -68,11 +68,11 @@ public class GlobalNativePrintSettingPane extends AbstractNativePrintSettingPane
defaultDownloadUrlCheck = GUICoreUtils.createNoBorderCheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Default")); defaultDownloadUrlCheck = GUICoreUtils.createNoBorderCheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Default"));
JPanel downloadUrlSettingCheckPane = GUICoreUtils.createCheckboxAndDynamicPane(defaultDownloadUrlCheck, getCustomUrlSettingPane(), true); JPanel downloadUrlSettingCheckPane = GUICoreUtils.createCheckboxAndDynamicPane(defaultDownloadUrlCheck, getCustomUrlSettingPane(), true);
downloadUrlSettingCheckPane.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0)); downloadUrlSettingCheckPane.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
JPanel downloadTipPane = getTopAlignLabelPane(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Software_Download_Url"), ": ")); JPanel downloadTipPane = getTopAlignLabelPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Software_Download_Url") + ": ");
downloadTipPane.setBorder(BorderFactory.createEmptyBorder(0, 0, -6, 0)); downloadTipPane.setBorder(BorderFactory.createEmptyBorder(0, 0, -6, 0));
// 打印软件端口号 // 打印软件端口号
UILabel printPortTip = new UILabel(BidiUtils.concatenateStrings(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Native_Print_Port"), ": ")); UILabel printPortTip = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Native_Print_Port") + ": ");
JPanel printPortFiledPane = getPrintPortFieldPane(); JPanel printPortFiledPane = getPrintPortFieldPane();
// TableLayout // TableLayout

4
designer-realize/src/main/java/com/fr/start/MainDesigner.java

@ -462,7 +462,7 @@ public class MainDesigner extends BaseDesigner {
return super.resetToolBar(toolbarComponent, plus); return super.resetToolBar(toolbarComponent, plus);
} else { } else {
JPanel toolbarPane; JPanel toolbarPane;
toolbarPane = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, TOOLBARPANEVGAP)); toolbarPane = new JPanel(new FlowLayout(FlowLayout.LEADING, 0, TOOLBARPANEVGAP));
Dimension dim = new Dimension(); Dimension dim = new Dimension();
dim.height = plus.getToolBarHeight(); dim.height = plus.getToolBarHeight();
toolbarPane.setPreferredSize(dim); toolbarPane.setPreferredSize(dim);
@ -471,7 +471,7 @@ public class MainDesigner extends BaseDesigner {
for (int i = 0; i < paneArray.length; i++) { for (int i = 0; i < paneArray.length; i++) {
toolbarPane.add(paneArray[i]); toolbarPane.add(paneArray[i]);
} }
return toolbarPane; return BidiUtils.applyOrientationByLocale(toolbarPane);
} }
} }

5
designer-realize/src/main/java/com/fr/start/SplashContext.java

@ -1,5 +1,6 @@
package com.fr.start; package com.fr.start;
import com.fr.base.i18n.BidiUtils;
import com.fr.concurrent.NamedThreadFactory; import com.fr.concurrent.NamedThreadFactory;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.constants.DesignerLaunchStatus; import com.fr.design.constants.DesignerLaunchStatus;
@ -106,7 +107,7 @@ public class SplashContext {
public void run() { public void run() {
showThanks(); showThanks();
loadingIndex++; loadingIndex++;
updateModuleLog(moduleId.isEmpty() ? StringUtils.EMPTY : moduleId + loading[loadingIndex % 3]); updateModuleLog(moduleId.isEmpty() ? StringUtils.EMPTY : BidiUtils.concatenateStrings(moduleId, loading[loadingIndex % 3]));
} }
}, 0, 300, TimeUnit.MILLISECONDS); }, 0, 300, TimeUnit.MILLISECONDS);
@ -116,7 +117,7 @@ public class SplashContext {
public void on(Event event, String i18n) { public void on(Event event, String i18n) {
moduleId = i18n; moduleId = i18n;
loadingIndex++; loadingIndex++;
updateModuleLog(moduleId.isEmpty() ? StringUtils.EMPTY : moduleId + loading[loadingIndex % 3]); updateModuleLog(moduleId.isEmpty() ? StringUtils.EMPTY : BidiUtils.concatenateStrings(moduleId, loading[loadingIndex % 3]));
} }
}; };
EventDispatcher.listen(ModuleEvent.MajorModuleStarting, listener); EventDispatcher.listen(ModuleEvent.MajorModuleStarting, listener);

5
designer-realize/src/main/java/com/fr/start/common/SplashPane.java

@ -3,6 +3,7 @@ package com.fr.start.common;
import com.bulenkov.iconloader.IconLoader; import com.bulenkov.iconloader.IconLoader;
import com.bulenkov.iconloader.util.JBUI; import com.bulenkov.iconloader.util.JBUI;
import com.fr.base.GraphHelper; import com.fr.base.GraphHelper;
import com.fr.base.i18n.BidiUtils;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.general.locale.image.I18nImage; import com.fr.general.locale.image.I18nImage;
import com.fr.stable.GraphDrawHelper; import com.fr.stable.GraphDrawHelper;
@ -46,6 +47,7 @@ public class SplashPane extends JPanel {
private static final String ARIAL_FONT_NAME = "Arial"; private static final String ARIAL_FONT_NAME = "Arial";
private static final String YAHEI_FONT_NAME = "Microsoft YaHei"; private static final String YAHEI_FONT_NAME = "Microsoft YaHei";
private static final String ARABIC_FONT_NAME = "Calibri";
private String thanksLog = StringUtils.EMPTY; private String thanksLog = StringUtils.EMPTY;
private String moduleText = StringUtils.EMPTY; private String moduleText = StringUtils.EMPTY;
@ -74,6 +76,9 @@ public class SplashPane extends JPanel {
if (font == null || isDialogFont(font)) { if (font == null || isDialogFont(font)) {
font = createFont(ARIAL_FONT_NAME); font = createFont(ARIAL_FONT_NAME);
} }
if (BidiUtils.rtl()) {
font = createFont(ARABIC_FONT_NAME);
}
return font; return font;
} }
}; };

Loading…
Cancel
Save