diff --git a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java
index 6f1c94eee3..c6488d3300 100644
--- a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java
+++ b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java
@@ -418,21 +418,10 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
this.isHttps = isHttps;
}
-
- public String getCertificatePath() {
- return certificatePath;
- }
-
-
public void setCertificatePath(String certificatePath) {
this.certificatePath = certificatePath;
}
-
- public String getCertificatePass() {
- return certificatePass;
- }
-
public void setCertificatePass(String certificatePass) {
this.certificatePass = certificatePass;
}
@@ -2015,11 +2004,13 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
private void writeHttpsParas(XMLPrintWriter writer) {
writer.startTAG(CAS_PARAS);
+ // 这边的密钥path和password没有用处了 当前已经全部储存在对应的WorkspaceConnectionInfo中
+ // 把历史遗留保存的全部置为空 防止显示明文密钥 后面删除 todo
if (StringUtils.isNotBlank(certificatePath)) {
- writer.attr(CAS_CERTIFICATE_PATH, certificatePath);
+ writer.attr(CAS_CERTIFICATE_PATH, StringUtils.EMPTY);
}
if (StringUtils.isNotBlank(certificatePass)) {
- writer.attr(CAS_CERTIFICATE_PASSWORD, certificatePass);
+ writer.attr(CAS_CERTIFICATE_PASSWORD, StringUtils.EMPTY);
}
if (isHttps) {
writer.attr("enable", true);
diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java
index 683b38e016..4bf6bf1907 100644
--- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java
+++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java
@@ -11,6 +11,7 @@ import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ipasswordfield.UIPasswordFieldWithFixedLength;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.gui.ilable.ActionLabel;
+import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
@@ -90,9 +91,9 @@ public class JDBCDefPane extends JPanel {
private IntegerEditor DBCP_MAX_WAIT = new IntegerEditor();
private UITextField DBCP_VALIDATION_QUERY = new UITextField();
- private UIComboBox DBCP_TESTONBORROW = new UIComboBox(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_No"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Yes")});
- private UIComboBox DBCP_TESTONRETURN = new UIComboBox(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_No"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Yes")});
- private UIComboBox DBCP_TESTWHILEIDLE = new UIComboBox(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_No"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Yes")});
+ private UIComboBox DBCP_TESTONBORROW = new UIComboBox(new String[]{Toolkit.i18nText("Fine-Design_Basic_No"), Toolkit.i18nText("Fine-Design_Basic_Yes")});
+ private UIComboBox DBCP_TESTONRETURN = new UIComboBox(new String[]{Toolkit.i18nText("Fine-Design_Basic_No"), Toolkit.i18nText("Fine-Design_Basic_Yes")});
+ private UIComboBox DBCP_TESTWHILEIDLE = new UIComboBox(new String[]{Toolkit.i18nText("Fine-Design_Basic_No"), Toolkit.i18nText("Fine-Design_Basic_Yes")});
private IntegerEditor DBCP_TIMEBETWEENEVICTIONRUNSMILLS = new IntegerEditor();
private IntegerEditor DBCP_NUMTESTSPEREVICTIONRUN = new IntegerEditor();
@@ -120,13 +121,13 @@ public class JDBCDefPane extends JPanel {
userNameTextField.setName(USER_NAME);
passwordTextField = new UIPasswordFieldWithFixedLength(15);
dbtypeButton = new UIButton(".");
- dbtypeButton.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Click_Get_Default_URL"));
+ dbtypeButton.setToolTipText(Toolkit.i18nText("Fine-Design_Basic_Click_Get_Default_URL"));
dbtypeButton.addActionListener(dbtypeButtonActionListener);
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
JPanel dbtypePane = FRGUIPaneFactory.createRightFlowInnerContainer_S_Pane();
- dbtypePane.add(new UILabel((com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Database") + ":")));
+ dbtypePane.add(new UILabel((Toolkit.i18nText("Fine-Design_Basic_Database") + ":")));
JPanel dbtypeComPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
Component[][] dbtypeComComponents = {{dbtypeComboBox}};
double[] dbtypeRowSize = {p};
@@ -134,10 +135,10 @@ public class JDBCDefPane extends JPanel {
dbtypeComPane = TableLayoutHelper.createTableLayoutPane(dbtypeComComponents, dbtypeRowSize, dbtypeColumnSize);
JPanel driverPane = FRGUIPaneFactory.createRightFlowInnerContainer_S_Pane();
- driverPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Driver") + ":"));
+ driverPane.add(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Driver") + ":"));
// 选择ODBC数据源的时候的提示链接
JPanel odbcTipsPane = FRGUIPaneFactory.createRightFlowInnerContainer_S_Pane();
- odbcTipsLink = new ActionLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Odbc_Tips")) {
+ odbcTipsLink = new ActionLabel(Toolkit.i18nText("Fine-Design_Basic_Odbc_Tips")) {
@Override
public void paintComponent(Graphics _gfx) {
super.paintComponent(_gfx);
@@ -146,7 +147,7 @@ public class JDBCDefPane extends JPanel {
}
};
odbcTipsPane.add(odbcTipsLink);
- odbcTipsLink.setPreferredSize(new Dimension(GraphHelper.getWidth(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Odbc_Tips")), odbcTipsLink.getPreferredSize().height));
+ odbcTipsLink.setPreferredSize(new Dimension(GraphHelper.getWidth(Toolkit.i18nText("Fine-Design_Basic_Odbc_Tips")), odbcTipsLink.getPreferredSize().height));
odbcTipsLink.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String url = CloudCenter.getInstance().acquireUrlByKind("odbc.help");
@@ -167,26 +168,27 @@ public class JDBCDefPane extends JPanel {
urlComPane = TableLayoutHelper.createCommonTableLayoutPane(urlComComponents, urlRowSize, urlColumnSize, 4);
JPanel userPane = FRGUIPaneFactory.createRightFlowInnerContainer_S_Pane();
- userPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_UserName") + ":"));
+ userPane.add(new UILabel(Toolkit.i18nText("Fine-Design_Report_UserName") + ":"));
JPanel userComPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
- Component[][] userComComponents = {{userNameTextField, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Password") + ":"), passwordTextField}};
+ Component[][] userComComponents = {{userNameTextField, new UILabel(Toolkit.i18nText("Fine-Design_Basic_Password") + ":"), passwordTextField}};
double[] userRowSize = {p};
double[] userColumnSize = {f, p, f};
userComPane = TableLayoutHelper.createCommonTableLayoutPane(userComComponents, userRowSize, userColumnSize, 4);
JPanel passwordPane = FRGUIPaneFactory.createRightFlowInnerContainer_S_Pane();
- passwordPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Password") + ":"));
+ passwordPane.add(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Password") + ":"));
Component[][] components = {{dbtypePane, dbtypeComPane}, {driverPane, driverComboBoxAndTips}, {urlPane, urlComPane}, {userPane, userComPane},};
double[] rowSize = {p, p, p, p};
double[] columnSize = {p, f, 22};
- JPanel centerPanel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 0, 6);
+ // REPORT-41450 Windows环境的jdk11下dpi为125%时会因为缩放导致显示问题,因此加个水平gap值
+ JPanel centerPanel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 6, 6);
innerthis.add(centerPanel);
JPanel southPanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
innerthis.add(southPanel);
southPanel.setBorder(BorderFactory.createEmptyBorder(10, 0, 4, 20));
- ActionLabel actionLabel = new ActionLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_ConnectionPool_Attr"));
+ ActionLabel actionLabel = new ActionLabel(Toolkit.i18nText("Fine-Design_Basic_ConnectionPool_Attr"));
southPanel.add(actionLabel, BorderLayout.EAST);
actionLabel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
@@ -331,7 +333,7 @@ public class JDBCDefPane extends JPanel {
if (ComparatorUtils.equals(dbtypeComboBox.getSelectedItem(), ("Access"))) {
// ben:这个能不能换种处理方案- -
JFileChooser filechooser = new JFileChooser();
- filechooser.setDialogTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Open"));
+ filechooser.setDialogTitle(Toolkit.i18nText("Fine-Design_Basic_Open"));
filechooser.setMultiSelectionEnabled(false);
filechooser.addChoosableFileFilter(new ChooseFileFilter(new String[]{"accdb", "mdb"}, "Microsoft Office Access"));
int result = filechooser.showOpenDialog(DesignerContext.getDesignerFrame());
@@ -373,19 +375,19 @@ public class JDBCDefPane extends JPanel {
double[] rowSize = {f, f, f, f, f, f, f, f, f, f, f, f};
double[] columnSize = {f, f};
Component[][] comps = {
- {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Dbcp_Initial_Size") + ":", SwingConstants.RIGHT), DBCP_INITIAL_SIZE},
- {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Dbcp_Max_Active") + ":", SwingConstants.RIGHT), DBCP_MAX_ACTIVE},
- {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Dbcp_Max_Idle") + ":", SwingConstants.RIGHT), DBCP_MAX_IDLE},
- {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Dbcp_Min_Idle") + ":", SwingConstants.RIGHT), DBCP_MIN_IDLE},
- {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Connection_Pool_Max_Wait_Time") + ":", SwingConstants.RIGHT), DBCP_MAX_WAIT},
- {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Dbcp_Validation_Query") + ":", SwingConstants.RIGHT), DBCP_VALIDATION_QUERY},
- {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Dbcp_Test_On_Borrow") + ":", SwingConstants.RIGHT), DBCP_TESTONBORROW},
- {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Dbcp_Test_On_Return") + ":", SwingConstants.RIGHT), DBCP_TESTONRETURN},
- {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Dbcp_Test_While_Idle") + ":", SwingConstants.RIGHT), DBCP_TESTWHILEIDLE},
- {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Connection_Pool_Evictionruns_millis") + ":", SwingConstants.RIGHT),
+ {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Dbcp_Initial_Size") + ":", SwingConstants.RIGHT), DBCP_INITIAL_SIZE},
+ {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Dbcp_Max_Active") + ":", SwingConstants.RIGHT), DBCP_MAX_ACTIVE},
+ {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Dbcp_Max_Idle") + ":", SwingConstants.RIGHT), DBCP_MAX_IDLE},
+ {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Dbcp_Min_Idle") + ":", SwingConstants.RIGHT), DBCP_MIN_IDLE},
+ {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Connection_Pool_Max_Wait_Time") + ":", SwingConstants.RIGHT), DBCP_MAX_WAIT},
+ {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Dbcp_Validation_Query") + ":", SwingConstants.RIGHT), DBCP_VALIDATION_QUERY},
+ {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Dbcp_Test_On_Borrow") + ":", SwingConstants.RIGHT), DBCP_TESTONBORROW},
+ {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Dbcp_Test_On_Return") + ":", SwingConstants.RIGHT), DBCP_TESTONRETURN},
+ {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Dbcp_Test_While_Idle") + ":", SwingConstants.RIGHT), DBCP_TESTWHILEIDLE},
+ {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Connection_Pool_Evictionruns_millis") + ":", SwingConstants.RIGHT),
DBCP_TIMEBETWEENEVICTIONRUNSMILLS},
- {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Dbcp_Num_Test_Per_Evction_Run") + ":", SwingConstants.RIGHT), DBCP_NUMTESTSPEREVICTIONRUN},
- {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Connection_Pool_Mix_Evictable_Idle_Time_Millis") + ":", SwingConstants.RIGHT),
+ {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Dbcp_Num_Test_Per_Evction_Run") + ":", SwingConstants.RIGHT), DBCP_NUMTESTSPEREVICTIONRUN},
+ {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Connection_Pool_Mix_Evictable_Idle_Time_Millis") + ":", SwingConstants.RIGHT),
DBCP_MINEVICTABLEIDLETIMEMILLIS}};
JPanel contextPane = TableLayoutHelper.createGapTableLayoutPane(comps, rowSize, columnSize, 10, 4);
@@ -395,7 +397,7 @@ public class JDBCDefPane extends JPanel {
@Override
protected String title4PopupWindow() {
- return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_ConnectionPool_Attr");
+ return Toolkit.i18nText("Fine-Design_Basic_ConnectionPool_Attr");
}
}
diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java
index d1beacb1d8..6065d04859 100644
--- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java
+++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java
@@ -185,7 +185,8 @@ public class DBTableDataPane extends AbstractTableDataPane {
box.setMinimumSize(new Dimension(300, 400));
// 防止数据连接名过长时影响 split pane 分割效果
- connectionTableProcedurePane.setMinimumSize(new Dimension(250, 400));
+ // 本界面中给MaxMemRowCountPanel留的空间太小,造成MaxMemRowCountPanel显示异常,这边减小一点最小宽度,拉长MaxMemRowCountPanel
+ connectionTableProcedurePane.setMinimumSize(new Dimension(230, 400));
connectionTableProcedurePane.setMaximumSize(new Dimension(500, 400));
// 使用SplitPane
JSplitPane mainSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, connectionTableProcedurePane, sqlSplitPane);
diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java
index 13fd60a60d..af2b71a7c6 100644
--- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java
+++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java
@@ -21,7 +21,7 @@ public class MaxMemRowCountPanel extends UIToolbar {
private static final int MAX_IN_MEMORY = 1;
private static final String[] CACHE_LIST = {com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Save_All_Records_In_Memory"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Max_Mem_Row_Count") };
- private static final int MAX_WIDTH = getMaxComBoBoxWidth() > 200 ? 350 : 250;
+ private static final int MAX_WIDTH = getMaxComBoBoxWidth() > 200 ? 350 : 280;
private static final int MAX_COMPONENT_COUNT_OF_MAX_MEMORY = 4;
private static int getMaxComBoBoxWidth() {
int maxWidth = GraphHelper.getWidth(CACHE_LIST[0]);
@@ -73,7 +73,7 @@ public class MaxMemRowCountPanel extends UIToolbar {
switchCache = new UIComboBox(CACHE_LIST);
switchCache.addActionListener(switchStateL);
numberSpinner = new UISpinner(0, Integer.MAX_VALUE, 1);
- numberSpinner.setNumberFieldColumns(4);
+ numberSpinner.setNumberFieldColumns(3);
}
private void showAllPanel() {
diff --git a/designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java b/designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java
index 29214984c3..d1847545ce 100644
--- a/designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java
+++ b/designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java
@@ -3,11 +3,12 @@ package com.fr.design.gui.iprogressbar;
import com.fr.design.constants.UIConstants;
import com.fr.design.dialog.UIDialog;
import com.fr.design.gui.ilable.UILabel;
-import com.fr.stable.os.support.OSBasedAction;
-import com.fr.stable.os.support.OSSupportCenter;
import com.fr.design.os.impl.SupportOSImpl;
+import com.fr.design.utils.DesignUtils;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.FRFont;
+import com.fr.stable.os.support.OSBasedAction;
+import com.fr.stable.os.support.OSSupportCenter;
import javax.swing.JDialog;
import javax.swing.JLabel;
@@ -57,7 +58,10 @@ public class ProgressDialog extends UIDialog {
progressBar.setMaximum(1000);
panel.add(progressBar, BorderLayout.CENTER);
text = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Loading_Project"), JLabel.CENTER);
- FRFont font = FRFont.getInstance().applySize(14).applyForeground(new ColorUIResource(333334));
+ FRFont font = DesignUtils
+ .getDefaultGUIFont()
+ .applySize(14)
+ .applyForeground(new ColorUIResource(333334));
text.setFont(font);
panel.add(text, BorderLayout.SOUTH);
panel.setVisible(true);
diff --git a/designer-base/src/main/java/com/fr/design/gui/syntax/ui/rtextarea/ConfigurableCaret.java b/designer-base/src/main/java/com/fr/design/gui/syntax/ui/rtextarea/ConfigurableCaret.java
index 233fcd598c..3582c4ad95 100644
--- a/designer-base/src/main/java/com/fr/design/gui/syntax/ui/rtextarea/ConfigurableCaret.java
+++ b/designer-base/src/main/java/com/fr/design/gui/syntax/ui/rtextarea/ConfigurableCaret.java
@@ -2,7 +2,7 @@
* 12/21/2004
*
* ConfigurableCaret.java - The caret used by RTextArea.
- *
+ *
* This library is distributed under a modified BSD license. See the included
* RSyntaxTextArea.License.txt file for details.
*/
@@ -159,7 +159,7 @@ public class ConfigurableCaret extends DefaultCaret {
textArea.isRequestFocusEnabled()) {
if (inWindow)
textArea.requestFocusInWindow();
- else
+ else
textArea.requestFocus();
}
}
@@ -458,7 +458,8 @@ public class ConfigurableCaret extends DefaultCaret {
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(2));
// 向右再移动一个位置 避免光标太接近文字内容
- g2.draw(new Line2D.Float(r.x + 1, r.y, r.x + 1, r.y + r.height));
+ // REPORT-41895 光标上方超出背景高亮的部分不会闪烁,会形成一个停留的小点,因此将光标的超出部分截去
+ g2.draw(new Line2D.Float(r.x + 1, r.y + 1, r.x + 1, r.y + r.height));
break;
} // End of switch (style).
@@ -676,7 +677,7 @@ public class ConfigurableCaret extends DefaultCaret {
if (line populateSelectedValue());
+ this.addEditingListener(new PropertyChangeAdapter() {
+ public void propertyChange() {
+ Parameter[] parameters = ParameterConfig.getInstance().getGlobalParameters();
+ String[] allListNames = nameableList.getAllNames();
+ allListNames[editingIndex] = StringUtils.EMPTY;
+ String tempName = getEditingName();
+ if (StringUtils.isEmpty(tempName)) {
+ nameableList.stopEditing();
+ FineJOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(ParameterArrayPane.this), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Empty_Parameter_Name"));
+ setIllegalIndex(editingIndex);
+ return;
+ }
+ if (!ComparatorUtils.equals(tempName, selectedName)
+ && isNameRepeated(new List[]{Arrays.asList(parameters), Arrays.asList(allListNames)}, tempName)) {
+ nameableList.stopEditing();
+ FineJOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(ParameterArrayPane.this),
+ Toolkit.i18nText("Fine-Design_Basic_Duplicate_Parameter_Name"));
+ setIllegalIndex(editingIndex);
+ }
+ }
+ });
+ }
- });
- this.addEditingListener(new PropertyChangeAdapter() {
- public void propertyChange() {
- Parameter[] parameters = ParameterConfig.getInstance().getGlobalParameters();
- String[] allListNames = nameableList.getAllNames();
- allListNames[nameableList.getSelectedIndex()] = StringUtils.EMPTY;
- String tempName = getEditingName();
- if (StringUtils.isEmpty(tempName)) {
- nameableList.stopEditing();
- FineJOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(ParameterArrayPane.this), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Empty_Parameter_Name"));
- setIllegalIndex(editingIndex);
- return;
- }
- if (!ComparatorUtils.equals(tempName, selectedName)
- && isNameRepeated(new List[]{Arrays.asList(parameters), Arrays.asList(allListNames)}, tempName)) {
- nameableList.stopEditing();
- FineJOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(ParameterArrayPane.this),
- com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Duplicate_Parameter_Name"));
- setIllegalIndex(editingIndex);
- }
- }
- });
- }
+ @Override
+ protected String title4PopupWindow() {
+ return Toolkit.i18nText("Fine-Design_Basic_Engine_Schedule_Template_Parameter");
+ }
- @Override
- protected String title4PopupWindow() {
- return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Engine_Schedule_Template_Parameter");
- }
-
- /**
- * 创建模板参数设置组件
- *
- * @return 模板参数设置组件
- */
- public NameableCreator[] createNameableCreators() {
- return new NameableCreator[]{
- new NameableSelfCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Engine_Parameter_Name"), Parameter.class, ParameterPane.class) {
- public Parameter createNameable(UnrepeatedNameHelper helper) {
- // 返回参数设置面板.
- return new Parameter(helper.createUnrepeatedName("p"));
- }
+ /**
+ * 创建模板参数设置组件
+ *
+ * @return 模板参数设置组件
+ */
+ public NameableCreator[] createNameableCreators() {
+ return new NameableCreator[]{
+ new NameableSelfCreator(Toolkit.i18nText("Fine-Design_Basic_Engine_Parameter_Name"), Parameter.class, ParameterPane.class) {
+ public Parameter createNameable(UnrepeatedNameHelper helper) {
+ // 返回参数设置面板.
+ return new Parameter(helper.createUnrepeatedName("p"));
+ }
- @Override
- public String createTooltip() {
- return null;
- }
- }
- };
- }
+ @Override
+ public String createTooltip() {
+ return null;
+ }
+ }
+ };
+ }
- /**
- * 更新参数
+ /**
+ * 更新参数
*
* @return 更新后的参数
- */
- public Parameter[] updateParameters() {
- // Nameable[]居然不能强转成Parameter[],一定要这么写...
- Nameable[] res = this.update();
- Parameter[] res_array = new Parameter[res.length];
- java.util.Arrays.asList(res).toArray(res_array);
+ */
+ public Parameter[] updateParameters() {
+ // Nameable[]居然不能强转成Parameter[],一定要这么写...
+ Nameable[] res = this.update();
+ Parameter[] res_array = new Parameter[res.length];
+ Arrays.asList(res).toArray(res_array);
- return res_array;
- }
+ return res_array;
+ }
}
diff --git a/designer-base/src/main/java/com/fr/design/utils/DesignUtils.java b/designer-base/src/main/java/com/fr/design/utils/DesignUtils.java
index f443a10ecf..775118d285 100644
--- a/designer-base/src/main/java/com/fr/design/utils/DesignUtils.java
+++ b/designer-base/src/main/java/com/fr/design/utils/DesignUtils.java
@@ -8,6 +8,7 @@ import com.fr.design.ExtraDesignClassManager;
import com.fr.design.dialog.FineJOptionPane;
import com.fr.design.fun.DesignerEnvProcessor;
import com.fr.design.gui.UILookAndFeel;
+import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.DesignerContext;
import com.fr.exit.DesignerExiter;
import com.fr.file.FileFILE;
@@ -21,7 +22,9 @@ import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import com.fr.stable.os.OperatingSystem;
import com.fr.start.ServerStarter;
+import com.fr.value.NotNullLazyValue;
import com.fr.workspace.WorkContext;
+import org.jetbrains.annotations.NotNull;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
@@ -248,6 +251,7 @@ public class DesignUtils {
// 刷新DesignerFrame里面的面板
SwingUtilities.invokeLater(new Runnable() {
+ @Override
public void run() {
if (DesignerContext.getDesignerFrame() == null) {
return;
@@ -269,7 +273,7 @@ public class DesignUtils {
FineLoggerFactory.getLogger().error("Substance Raven Graphite failed to initialize");
}
//获取当前系统语言下设计器用的默认字体
- FRFont guiFRFont = getCurrentLocaleFont();
+ FRFont guiFRFont = getDefaultGUIFont();
//指定UIManager中字体
Enumeration keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
@@ -286,41 +290,50 @@ public class DesignUtils {
}
/**
- * 获取当前系统语言下设计器用的默认字体
+ * 获取当前系统语言下设计器界面使用的默认字体
*
* @return 默认字体
*/
- private static FRFont getCurrentLocaleFont() {
- FRFont guiFRFont;
- Locale defaultLocale = Locale.getDefault();
- // JDK9 之后宋体在计算label中字母的空间上出现问题,暂时先用雅黑兼容,以后再统一字体
- if (StableUtils.getMajorJavaVersion() >= 9 && OperatingSystem.isWindows()) {
- guiFRFont = getNamedFont("Microsoft YaHei");
- } else if (isDisplaySimSun(defaultLocale)) {
- guiFRFont = getNamedFont("SimSun");
- } else {
- guiFRFont = getNamedFont("Dialog");
- }
+ public static FRFont getDefaultGUIFont() {
+ return CURRENT_LOCALE_FONT.getValue();
+ }
- //先初始化的设计器locale, 后初始化lookandfeel.如果顺序改了, 这边也要调整.
- Locale designerLocale = GeneralContext.getLocale();
- String file = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_File");
- char displayChar = file.charAt(0);
- if (!guiFRFont.canDisplay(displayChar)) {
- //如果不能用默认的语言显示字体, 比如想在英文系统里用中文设计器
- //默认语言(中文:宋体, 英文:Tahoma, 其他:Dialog)
- guiFRFont = getNamedFont("SimSun");
- if (!guiFRFont.canDisplay(displayChar)) {
- //比如想在中文或英文系统里用韩文设计器
+ /**
+ * 获取当前系统语言下设计器用的默认字体
+ */
+ private static final NotNullLazyValue CURRENT_LOCALE_FONT = new NotNullLazyValue() {
+ @NotNull
+ @Override
+ protected FRFont compute() {
+ FRFont guiFRFont;
+ Locale defaultLocale = Locale.getDefault();
+ // JDK9 之后宋体在计算label中字母的空间上出现问题,暂时先用雅黑兼容,以后再统一字体
+ if (StableUtils.getMajorJavaVersion() >= 9 && OperatingSystem.isWindows()) {
+ guiFRFont = getNamedFont("Microsoft YaHei");
+ } else if (isDisplaySimSun(defaultLocale)) {
+ guiFRFont = getNamedFont("SimSun");
+ } else {
guiFRFont = getNamedFont("Dialog");
+ }
+
+ String file = Toolkit.i18nText("Fine-Design_Basic_File");
+ char displayChar = file.charAt(0);
+ if (!guiFRFont.canDisplay(displayChar)) {
+ //如果不能用默认的语言显示字体, 比如想在英文系统里用中文设计器
+ //默认语言(中文:宋体, 英文:Tahoma, 其他:Dialog)
+ guiFRFont = getNamedFont("SimSun");
if (!guiFRFont.canDisplay(displayChar)) {
- FineLoggerFactory.getLogger().error(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_SimSun_Not_Found"));
+ //比如想在中文或英文系统里用韩文设计器
+ guiFRFont = getNamedFont("Dialog");
+ if (!guiFRFont.canDisplay(displayChar)) {
+ FineLoggerFactory.getLogger().error(Toolkit.i18nText("Fine-Design_Basic_Base_SimSun_Not_Found"));
+ }
}
}
- }
- return guiFRFont;
- }
+ return guiFRFont;
+ }
+ };
private static FRFont getNamedFont(String name) {
return FRFont.getInstance(name, Font.PLAIN, 12);
diff --git a/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java b/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java
index 4fe69e6a9a..5257e74f42 100644
--- a/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java
+++ b/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java
@@ -143,6 +143,12 @@ public class RemoteEnvPane extends BasicBeanPane {
* https 证书路径输入框
*/
private JPanel httpsCertFileInputPanel;
+
+ /**
+ * 当前远程工作目录是否为新创建的
+ */
+ private boolean newCreated;
+
/**
* 主机名,web应用,Servlet,端口监听器
*/
@@ -327,7 +333,7 @@ public class RemoteEnvPane extends BasicBeanPane {
this.certPathInput.setText(certPath);
this.certSecretKeyInput.setText(certSecretKey);
this.rememberPwdCheckbox.setSelected(rememberPwd);
-
+ this.newCreated = ob.isNewCreated();
} else {
this.remoteWorkspaceURL = RemoteWorkspaceURL.createDefaultURL();
this.usernameInput.setText(StringUtils.EMPTY);
@@ -335,6 +341,7 @@ public class RemoteEnvPane extends BasicBeanPane {
this.certPathInput.setText(StringUtils.EMPTY);
this.certSecretKeyInput.setText(StringUtils.EMPTY);
this.rememberPwdCheckbox.setSelected(true);
+ this.newCreated = true;
}
fillRemoteEnvURLField();
@@ -366,7 +373,9 @@ public class RemoteEnvPane extends BasicBeanPane {
new String(this.certSecretKeyInput.getPassword()),
rememberPwd);
- return RemoteDesignerWorkspaceInfo.create(connection);
+ RemoteDesignerWorkspaceInfo info = RemoteDesignerWorkspaceInfo.create(connection);
+ info.setNewCreated(newCreated);
+ return info;
}
@Override
@@ -567,9 +576,6 @@ public class RemoteEnvPane extends BasicBeanPane {
@Override
protected TestConnectionResult doInBackground() throws Exception {
-
- DesignerEnvManager.getEnvManager().setCertificatePath(connection.getCertPath());
- DesignerEnvManager.getEnvManager().setCertificatePass(connection.getCertSecretKey());
try {
return TestConnectionResult.parse(WorkContext.getConnector().testConnection(connection), connection);
} catch (WorkspaceAuthException ignored) {
diff --git a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java
index abba5f7539..25eb587d87 100644
--- a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java
+++ b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java
@@ -7,6 +7,13 @@ import com.fr.design.layout.TableLayoutHelper;
import com.fr.plugin.chart.base.AttrTooltipContent;
import com.fr.plugin.chart.base.AttrTooltipRichText;
import com.fr.plugin.chart.base.format.AttrTooltipCategoryFormat;
+import com.fr.plugin.chart.base.format.AttrTooltipDataMaxFormat;
+import com.fr.plugin.chart.base.format.AttrTooltipDataMedianFormat;
+import com.fr.plugin.chart.base.format.AttrTooltipDataMinFormat;
+import com.fr.plugin.chart.base.format.AttrTooltipDataNumberFormat;
+import com.fr.plugin.chart.base.format.AttrTooltipDataOutlierFormat;
+import com.fr.plugin.chart.base.format.AttrTooltipDataQ1Format;
+import com.fr.plugin.chart.base.format.AttrTooltipDataQ3Format;
import com.fr.plugin.chart.base.format.AttrTooltipFormat;
import com.fr.plugin.chart.base.format.AttrTooltipSeriesFormat;
import com.fr.plugin.chart.box.attr.AttrBoxTooltipContent;
@@ -48,6 +55,9 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
private JPanel dataNumberPane;
private JPanel dataOutlierPane;
+ private JPanel richTextNumberPane;
+ private JPanel richTextOutlierPane;
+
public VanChartBoxTooltipContentPane(VanChartStylePane parent, JPanel showOnPane, boolean isDetailed) {
super(parent, showOnPane);
checkFormatVisible(isDetailed);
@@ -145,6 +155,16 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
return commonPanel;
}
+ protected JPanel createRichFormatPanel() {
+ JPanel richFormatPanel = new JPanel(new BorderLayout());
+
+ richFormatPanel.add(createRichTextCateAndSeriesPane(), BorderLayout.NORTH);
+ richFormatPanel.add(createRichTextDataNumberPane(), BorderLayout.CENTER);
+ richFormatPanel.add(createRichTextDataDetailPane(), BorderLayout.SOUTH);
+
+ return richFormatPanel;
+ }
+
protected Component[][] getRichTextComponents() {
return new Component[][]{
new Component[]{getRichTextCategoryNameFormatPane(), null},
@@ -229,6 +249,72 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
return detailPane;
}
+ private JPanel createRichTextCateAndSeriesPane() {
+ double p = TableLayout.PREFERRED;
+ double f = TableLayout.FILL;
+ double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH;
+
+ double[] columnSize = {f, e};
+ double[] rowSize = {p, p, p};
+
+ Component[][] cateAndSeries = new Component[][]{
+ new Component[]{null, null},
+ new Component[]{null, getRichTextCategoryNameFormatPane()},
+ new Component[]{null, getRichTextSeriesNameFormatPane()}
+ };
+
+ return TableLayoutHelper.createTableLayoutPane(cateAndSeries, rowSize, columnSize);
+ }
+
+ private JPanel createRichTextDataNumberPane() {
+ double p = TableLayout.PREFERRED;
+ double f = TableLayout.FILL;
+ double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH;
+
+ double[] columnSize = {f, e};
+ double[] rowSize = {p, p};
+
+ Component[][] dataNumber = new Component[][]{
+ new Component[]{null, null},
+ new Component[]{null, richTextNumber},
+ };
+
+ richTextNumberPane = TableLayoutHelper.createTableLayoutPane(dataNumber, rowSize, columnSize);
+
+ return richTextNumberPane;
+ }
+
+ private JPanel createRichTextDataDetailPane() {
+ double p = TableLayout.PREFERRED;
+ double f = TableLayout.FILL;
+ double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH;
+
+ double[] columnSize = {f, e};
+
+ JPanel detailPane = new JPanel(new BorderLayout());
+
+ Component[][] richTextDetail = new Component[][]{
+ new Component[]{null, null},
+ new Component[]{null, richTextMax},
+ new Component[]{new UILabel(getLabelContentTitle()), richTextQ3},
+ new Component[]{null, richTextMedian},
+ new Component[]{null, richTextQ1},
+ new Component[]{null, richTextMin}
+ };
+
+ Component[][] dataOutlier = new Component[][]{
+ new Component[]{null, null},
+ new Component[]{null, richTextOutlier},
+ };
+
+ richTextOutlierPane = TableLayoutHelper.createTableLayoutPane(dataOutlier, new double[]{p, p}, columnSize);
+
+ detailPane.add(TableLayoutHelper.createTableLayoutPane(richTextDetail, new double[]{p, p, p, p, p, p}, columnSize), BorderLayout.NORTH);
+ detailPane.add(richTextOutlierPane, BorderLayout.CENTER);
+
+ return detailPane;
+ }
+
public boolean isDirty() {
return getCategoryNameFormatPane().isDirty()
|| getSeriesNameFormatPane().isDirty()
@@ -291,20 +377,8 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
if (attrTooltipContent instanceof AttrBoxTooltipContent) {
AttrBoxTooltipContent boxTooltipContent = (AttrBoxTooltipContent) attrTooltipContent;
- VanChartFormatPaneWithoutCheckBox[] formatPaneGroup = new VanChartFormatPaneWithoutCheckBox[]{
- richTextNumber, richTextMax, richTextQ3, richTextMedian,
- richTextQ1, richTextMin, richTextOutlier
- };
-
- AttrTooltipFormat[] formatGroup = new AttrTooltipFormat[]{
- boxTooltipContent.getRichTextNumber(),
- boxTooltipContent.getRichTextMax(),
- boxTooltipContent.getRichTextQ3(),
- boxTooltipContent.getRichTextMedian(),
- boxTooltipContent.getRichTextQ1(),
- boxTooltipContent.getRichTextMin(),
- boxTooltipContent.getRichTextOutlier()
- };
+ VanChartFormatPaneWithoutCheckBox[] formatPaneGroup = getFormatPaneGroup();
+ AttrTooltipFormat[] formatGroup = getFormatGroup(boxTooltipContent);
populateRichTextFormat(formatPaneGroup, formatGroup);
populateRichText(attrTooltipContent.getRichTextAttr());
@@ -313,6 +387,40 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
}
}
+ private VanChartFormatPaneWithoutCheckBox[] getFormatPaneGroup() {
+ if (detailed) {
+ return new VanChartFormatPaneWithoutCheckBox[]{
+ richTextNumber, richTextMax, richTextQ3, richTextMedian,
+ richTextQ1, richTextMin, richTextOutlier
+ };
+ }
+
+ return new VanChartFormatPaneWithoutCheckBox[]{
+ richTextMax, richTextQ3, richTextMedian, richTextQ1, richTextMin
+ };
+ }
+
+ private AttrTooltipFormat[] getFormatGroup(AttrBoxTooltipContent boxTooltipContent) {
+ AttrTooltipDataNumberFormat richTextNumber = boxTooltipContent.getRichTextNumber();
+ AttrTooltipDataMaxFormat richTextMaxFormat = boxTooltipContent.getRichTextMax();
+ AttrTooltipDataQ3Format richTextQ3Format = boxTooltipContent.getRichTextQ3();
+ AttrTooltipDataMedianFormat richTextMedianFormat = boxTooltipContent.getRichTextMedian();
+ AttrTooltipDataQ1Format richTextQ1Format = boxTooltipContent.getRichTextQ1();
+ AttrTooltipDataMinFormat richTextMinFormat = boxTooltipContent.getRichTextMin();
+ AttrTooltipDataOutlierFormat richTextOutlierFormat = boxTooltipContent.getRichTextOutlier();
+
+ if (detailed) {
+ return new AttrTooltipFormat[]{
+ richTextNumber, richTextMaxFormat, richTextQ3Format, richTextMedianFormat,
+ richTextQ1Format, richTextMinFormat, richTextOutlierFormat
+ };
+ }
+
+ return new AttrTooltipFormat[]{
+ richTextMaxFormat, richTextQ3Format, richTextMedianFormat, richTextQ1Format, richTextMinFormat
+ };
+ }
+
protected void updateFormatPane(AttrTooltipContent attrTooltipContent) {
getCategoryNameFormatPane().update(attrTooltipContent.getCategoryFormat());
getSeriesNameFormatPane().update(attrTooltipContent.getSeriesFormat());
@@ -354,5 +462,8 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
dataNumberPane.setVisible(detailed);
dataOutlierPane.setVisible(detailed);
+
+ richTextNumberPane.setVisible(detailed);
+ richTextOutlierPane.setVisible(detailed);
}
}
diff --git a/designer-chart/src/main/java/com/fr/van/chart/column/VanChartColumnPlotLabelDetailPane.java b/designer-chart/src/main/java/com/fr/van/chart/column/VanChartColumnPlotLabelDetailPane.java
index b2035522d2..a2be5f2905 100644
--- a/designer-chart/src/main/java/com/fr/van/chart/column/VanChartColumnPlotLabelDetailPane.java
+++ b/designer-chart/src/main/java/com/fr/van/chart/column/VanChartColumnPlotLabelDetailPane.java
@@ -5,6 +5,8 @@ import com.fr.design.gui.ibutton.UIButtonGroup;
import com.fr.plugin.chart.base.AttrLabelDetail;
import com.fr.plugin.chart.base.AttrTooltipContent;
import com.fr.plugin.chart.column.VanChartColumnPlot;
+import com.fr.van.chart.designer.component.VanChartLabelContentPane;
+import com.fr.van.chart.designer.component.VanChartTooltipContentPane;
import com.fr.van.chart.designer.style.VanChartStylePane;
import com.fr.van.chart.designer.style.label.VanChartPlotLabelDetailPane;
@@ -14,6 +16,34 @@ public class VanChartColumnPlotLabelDetailPane extends VanChartPlotLabelDetailPa
super(plot, parent);
}
+ protected void initToolTipContentPane(Plot plot) {
+ VanChartLabelContentPane dataLabelContentPane = new VanChartLabelContentPane(getParentPane(), VanChartColumnPlotLabelDetailPane.this) {
+ protected void checkCardPane() {
+ super.checkCardPane();
+ checkOrientationPane();
+ }
+ };
+
+ setDataLabelContentPane(dataLabelContentPane);
+ }
+
+ private void checkOrientationPane() {
+ VanChartLabelContentPane dataLabelContentPane = (VanChartLabelContentPane) getDataLabelContentPane();
+ UIButtonGroup content = dataLabelContentPane.getContent();
+ UIButtonGroup orientation = getOrientation();
+
+ if (content == null || orientation == null) {
+ return;
+ }
+
+ if (content.getSelectedIndex() == VanChartTooltipContentPane.RICH_EDITOR_INDEX) {
+ orientation.setSelectedIndex(HORIZONTAL_INDEX);
+ orientation.setEnabled(false);
+ } else {
+ orientation.setEnabled(true);
+ }
+ }
+
protected boolean hasLabelOrientationPane() {
return !((VanChartColumnPlot) this.getPlot()).isBar();
}
diff --git a/designer-chart/src/main/java/com/fr/van/chart/custom/style/VanChartCustomPlotLabelTabPane.java b/designer-chart/src/main/java/com/fr/van/chart/custom/style/VanChartCustomPlotLabelTabPane.java
index 5461b220f0..04b94ef5c1 100644
--- a/designer-chart/src/main/java/com/fr/van/chart/custom/style/VanChartCustomPlotLabelTabPane.java
+++ b/designer-chart/src/main/java/com/fr/van/chart/custom/style/VanChartCustomPlotLabelTabPane.java
@@ -83,14 +83,14 @@ public class VanChartCustomPlotLabelTabPane extends VanChartCustomPlotTabPane customPlotList = plot.getCustomPlotList();
for (int i = 0; i < paneList.size() && i < customPlotList.size(); i++) {
ConditionAttr attrList = customPlotList.get(i).getConditionCollection().getDefaultAttr();
- DataSeriesCondition attr = customPlotList.get(i).getAttrLabelFromConditionCollection();
- if (attr != null) {
- attrList.remove(attr);
- }
VanChartPlotLabelPane labelPane = (VanChartPlotLabelPane) paneList.get(i);
AttrLabel attrLabel = labelPane.update();
+ DataSeriesCondition attr = customPlotList.get(i).getAttrLabelFromConditionCollection();
+ if (attr != null) {
+ attrList.remove(attr);
+ }
if (attrLabel != null) {
attrList.addDataSeriesCondition(attrLabel);
}
diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartLabelContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartLabelContentPane.java
index 7fe05a3600..957fcdaf72 100644
--- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartLabelContentPane.java
+++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartLabelContentPane.java
@@ -1,5 +1,7 @@
package com.fr.van.chart.designer.component;
+import com.fr.plugin.chart.base.AttrTooltipContent;
+import com.fr.plugin.chart.type.TextAlign;
import com.fr.van.chart.designer.style.VanChartStylePane;
import javax.swing.JPanel;
@@ -15,4 +17,8 @@ public class VanChartLabelContentPane extends VanChartTooltipContentPane {
protected VanChartHtmlLabelPane createHtmlLabelPane() {
return new VanChartHtmlLabelPaneWithBackGroundLabel();
}
+
+ protected AttrTooltipContent createAttrTooltip() {
+ return new AttrTooltipContent(TextAlign.CENTER);
+ }
}
diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRichEditorDialog.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRichEditorDialog.java
index e584ea5444..a13208df56 100644
--- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRichEditorDialog.java
+++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRichEditorDialog.java
@@ -10,7 +10,7 @@ import java.awt.Frame;
public class VanChartRichEditorDialog extends BasicDialog {
- public static final Dimension DEFAULT = new Dimension(660, 600);
+ public static final Dimension DEFAULT = new Dimension(960, 600);
public VanChartRichEditorDialog(Frame parent, BasicPane pane) {
super(parent, pane);
diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRichEditorPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRichEditorPane.java
index 615979f306..408b730b28 100644
--- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRichEditorPane.java
+++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartRichEditorPane.java
@@ -2,6 +2,7 @@ package com.fr.van.chart.designer.component;
import com.fr.design.ui.ModernUIPane;
import com.fr.plugin.chart.base.AttrTooltipRichText;
+import com.fr.plugin.chart.type.TextAlign;
import com.fr.stable.StringUtils;
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.JSValue;
@@ -71,12 +72,18 @@ public class VanChartRichEditorPane {
String content = richText.getContent();
String initParams = StringUtils.EMPTY;
+ String align = StringUtils.EMPTY;
if (content.contains("data-id") && !content.contains("class")) {
initParams = richText.getInitParamsContent();
+
+ String left = TextAlign.LEFT.getAlign();
+ String center = TextAlign.CENTER.getAlign();
+
+ align = content.contains(left) ? left : center;
}
- return new RichEditorModel(content, richText.isAuto(), paramsStr.toString(), initParams);
+ return new RichEditorModel(content, richText.isAuto(), paramsStr.toString(), initParams, align);
}
public static class RichEditorModel {
@@ -84,12 +91,14 @@ public class VanChartRichEditorPane {
private boolean auto;
private String params;
private String initParams;
+ private String align;
- public RichEditorModel(String content, boolean auto, String params, String initParams) {
+ public RichEditorModel(String content, boolean auto, String params, String initParams, String align) {
this.content = content;
this.auto = auto;
this.params = params;
this.initParams = initParams;
+ this.align = align;
}
public String getContent() {
@@ -123,5 +132,13 @@ public class VanChartRichEditorPane {
public void setInitParams(String initParams) {
this.initParams = initParams;
}
+
+ public String getAlign() {
+ return align;
+ }
+
+ public void setAlign(String align) {
+ this.align = align;
+ }
}
}
diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java
index 5d0a613ac3..d4ef4ac774 100644
--- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java
+++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java
@@ -57,10 +57,10 @@ public class VanChartTooltipContentPane extends BasicBeanPane content;
@@ -202,6 +202,10 @@ public class VanChartTooltipContentPane extends BasicBeanPane getContent() {
+ return content;
+ }
+
public AttrTooltipRichText getRichTextAttr() {
return richText;
}
@@ -384,17 +388,22 @@ public class VanChartTooltipContentPane extends BasicBeanPane -1) {
- content += '' + editorService.getEditorParamImage(key) + '
';
+ content += '' + editorService.getEditorParamImage(key) + '
';
}
}
@@ -78,7 +79,7 @@
var dimensionIds = getDimensionIds(params);
if (initParams) {
- content = getInitContent(params, initParams);
+ content = getInitContent(params, initParams, align);
}
var rich_editor = BI.createWidget({
@@ -118,16 +119,21 @@
var isAuto = Pool.data.isAuto();
var params = Pool.data.getParams();
var initParams = Pool.data.getInitParams();
+ var align = Pool.data.getAlign();
if (initParams) {
- content = getInitContent(params, initParams);
+ content = getInitContent(params, initParams, align);
}
+ rich_editor.editor.bindToolbar(rich_editor.bar);
+
rich_editor.setValue({
content: content,
isAuto: isAuto,
dimensionIds: getDimensionIds(params)
});
+
+ rich_editor.setFocus();
}
Pool.update = function () {
diff --git a/designer-chart/src/main/resources/com/fr/design/editor/script/editor.js b/designer-chart/src/main/resources/com/fr/design/editor/script/editor.js
index 26d58f4954..bb5370e4fc 100644
--- a/designer-chart/src/main/resources/com/fr/design/editor/script/editor.js
+++ b/designer-chart/src/main/resources/com/fr/design/editor/script/editor.js
@@ -27,7 +27,6 @@
this.editor = BI.createWidget({
type: "bi.nic_editor",
$value: "chart-common-editor",
- height: 365,
cls: "editor bi-border bi-focus-shadow " + (o.textAlign === "center" ? "editor-center-text" : ""),
listeners: [{
eventName: BI.NicEditor.EVENT_FOCUS,
@@ -157,7 +156,7 @@
return {
isAuto: this.model.isAuto,
- content: BI.NicEditor.htmlDecode(value)
+ content: value
};
},
@@ -194,7 +193,7 @@
content = this.editor.getValue(BI.NicEditor.FormatType.ESCAPE),
isEqualToPlaceholder = editorService.isRichTextEqual(content, this.options.placeholder);
- var HTML_ONLY_STYLE_TAG = "|||||||||||||||||
||
|
";
+ var HTML_ONLY_STYLE_TAG = "|||||||||||||||||
";
if (!isEqualToPlaceholder) {
content = content.replaceAll(HTML_ONLY_STYLE_TAG, "");
diff --git a/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/combo.insert_param.js b/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/combo.insert_param.js
index 7efb49c0c9..7cf11f9ce9 100644
--- a/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/combo.insert_param.js
+++ b/designer-chart/src/main/resources/com/fr/design/editor/script/insertcombo/combo.insert_param.js
@@ -45,27 +45,15 @@
var searchPopup = {
type: "bi.vertical",
cls: "bi-border",
- hgap: 15,
- tgap: 5,
+ tgap: 10,
bgap: 10,
- items: [{
- type: "bi.searcher",
- adapter: this.adapter,
- width: 210,
- height: 24,
- listeners: [{
- eventName: BI.Searcher.EVENT_CHANGE,
- action: function () {
- self.store.changeParam(this.getValue()[0]);
- }
- }]
- }, this.adapter]
+ items: [this.adapter]
};
return {
type: "bi.combo",
direction: "bottom,left",
- isNeedAdjustWidth: false,
+ isNeedAdjustWidth: true,
el: {
type: "bi.vertical_adapt",
items: [{
@@ -79,7 +67,8 @@
}]
},
popup: {
- el: searchPopup
+ el: searchPopup,
+ minWidth: 150
},
ref: function (_ref) {
self.combo = _ref;
diff --git a/designer-form/src/main/java/com/fr/design/form/parameter/FormParaDesigner.java b/designer-form/src/main/java/com/fr/design/form/parameter/FormParaDesigner.java
index 8956125eb3..8d13f3ab42 100644
--- a/designer-form/src/main/java/com/fr/design/form/parameter/FormParaDesigner.java
+++ b/designer-form/src/main/java/com/fr/design/form/parameter/FormParaDesigner.java
@@ -30,6 +30,7 @@ import com.fr.design.mainframe.EastRegionContainerPane;
import com.fr.design.mainframe.FormArea;
import com.fr.design.mainframe.FormDesigner;
import com.fr.design.mainframe.FormDesignerModeForSpecial;
+import com.fr.design.mainframe.FormDesignerUI;
import com.fr.design.mainframe.FormParaPane;
import com.fr.design.mainframe.FormWidgetDetailPane;
import com.fr.design.mainframe.JTemplate;
@@ -58,6 +59,7 @@ import java.awt.Graphics;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Rectangle;
+import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -467,6 +469,21 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP
return ((FormParameterUI) getTarget()).getDesignSize();
}
+ /**
+ * 设置其UI类为DesignerUI,负责渲染
+ */
+ @Override
+ public void updateUI() {
+ setUI(new FormDesignerUI(){
+ @Override
+ protected Rectangle getFitPaintBounds(Component component, Component parent) {
+ return new Rectangle(0, 0, parent.getSize().width, parent.getSize().height);
+ }
+
+ });
+ }
+
+
/**
* 设置高度
*
@@ -722,4 +739,11 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP
return new JComponent[]{new CutAction(this).createToolBarComponent(), new CopyAction(this).createToolBarComponent(), new PasteAction(this).createToolBarComponent(),
new FormDeleteAction(this).createToolBarComponent()};
}
+
+ @Override
+ public boolean checkIfBeyondValidArea(MouseEvent e){
+ return false;
+ }
+
+
}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java b/designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java
index 21b210a3bf..524dd8bf14 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java
@@ -166,7 +166,7 @@ public class EditingMouseListener extends MouseInputAdapter {
// 获取焦点,以便获取热键
designer.requestFocus();
}
- if (e.getButton() == MouseEvent.BUTTON1 && !beyondValidArea(e)) {
+ if (e.getButton() == MouseEvent.BUTTON1 && !designer.checkIfBeyondValidArea(e)) {
Direction dir = selectionModel.getDirectionAt(e);
if (!DesignerMode.isAuthorityEditing()) {
@@ -194,15 +194,6 @@ public class EditingMouseListener extends MouseInputAdapter {
e.translatePoint(oldX - e.getX(), oldY - e.getY());
}
- private boolean beyondValidArea(MouseEvent e) {
- if (e.getX() < 0 || e.getY() < 0 ||
- e.getX() > designer.getRootComponent().getWidth() ||
- e.getY() > (designer.getRootComponent().getHeight() + designer.getParaHeight())) {
- return true;
- }
- return false;
- }
-
private void offsetEventPoint(MouseEvent e){
int x = designer.getRelativeX(e.getX());
int y = designer.getRelativeY(e.getY());
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java b/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java
index a80032ed6f..62c89b9cae 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java
@@ -1733,4 +1733,13 @@ public class FormDesigner extends TargetComponent