diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/SslPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/SslPane.java
index c440079911..8789a39a18 100644
--- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/SslPane.java
+++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/SslPane.java
@@ -70,16 +70,16 @@ public class SslPane extends BasicPane {
JPanel filePanelCa = TableLayoutHelper.createCommonTableLayoutPane(new Component[][]{{keyPathCa, fileChooserButtonCa}}, new double[]{p}, new double[]{f, 20}, 0);
Component[] compCa = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Ssl_Ca") + ":", SwingConstants.RIGHT), filePanelCa};
Component[] compVerifyCa = {null, verifyCa};
- JPanel filePanelClientCert = TableLayoutHelper.createCommonTableLayoutPane(new Component[][]{{keyPathClientCert, fileChooserButtonClientCert}}, new double[]{p}, new double[]{f, 20}, 0);
- Component[] compClientCert = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Ssl_Client_Cert") + ":", SwingConstants.RIGHT), filePanelClientCert};
JPanel filePanelClientKey = TableLayoutHelper.createCommonTableLayoutPane(new Component[][]{{keyPathClientKey, fileChooserButtonClientKey}}, new double[]{p}, new double[]{f, 20}, 0);
Component[] compClientKey = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Ssl_Client_Key") + ":", SwingConstants.RIGHT), filePanelClientKey};
+ JPanel filePanelClientCert = TableLayoutHelper.createCommonTableLayoutPane(new Component[][]{{keyPathClientCert, fileChooserButtonClientCert}}, new double[]{p}, new double[]{f, 20}, 0);
+ Component[] compClientCert = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Ssl_Client_Cert") + ":", SwingConstants.RIGHT), filePanelClientCert};
// Component[] comCipher = {new UILabel(Toolkit.i18nText("Fine-Design_Basic_Ssl_Cipher") + ":", SwingConstants.RIGHT), cipher};
usingComps = new Component[][]{
compCa,
compVerifyCa,
- compClientCert,
compClientKey,
+ compClientCert
// comCipher
};
usingSsl.setSelected(true);
diff --git a/designer-base/src/main/java/com/fr/design/formula/FormulaPane.java b/designer-base/src/main/java/com/fr/design/formula/FormulaPane.java
index ef321e7081..2c5db9a314 100644
--- a/designer-base/src/main/java/com/fr/design/formula/FormulaPane.java
+++ b/designer-base/src/main/java/com/fr/design/formula/FormulaPane.java
@@ -38,6 +38,7 @@ import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
+import com.fr.design.parameter.ParameterInputNoneListenerPane;
import com.fr.design.parameter.ParameterInputPane;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.ComparatorUtils;
@@ -964,7 +965,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula {
if (parameters.length < 1 && editor4CalPane.update().size() < 1) {
return parameterMap;
}
- ParameterInputPane pPane = new ParameterInputPane(parameters);
+ ParameterInputPane pPane = new ParameterInputNoneListenerPane(parameters);
pPane.showSmallWindow(new JFrame(), new DialogActionAdapter() {
@Override
public void doOk() {
diff --git a/designer-base/src/main/java/com/fr/design/parameter/ParameterInputNoneListenerPane.java b/designer-base/src/main/java/com/fr/design/parameter/ParameterInputNoneListenerPane.java
new file mode 100644
index 0000000000..2484a4b206
--- /dev/null
+++ b/designer-base/src/main/java/com/fr/design/parameter/ParameterInputNoneListenerPane.java
@@ -0,0 +1,30 @@
+package com.fr.design.parameter;
+
+import com.fr.design.editor.ValueEditorPane;
+import com.fr.stable.ParameterProvider;
+
+/**
+ * 与ParameterInputPane区别在于 输入参数不会触发模板修改事件
+ *
+ * 适用于参数不需要存储在模板中的场景
+ *
+ * @author hades
+ * @version 11.0
+ * Created by hades on 2022/5/13
+ */
+public class ParameterInputNoneListenerPane extends ParameterInputPane {
+
+ public ParameterInputNoneListenerPane(ParameterProvider[] parameters) {
+ super(parameters);
+ }
+
+ public ParameterInputNoneListenerPane(ParameterProvider[] parameters, boolean allowBlank) {
+ super(parameters, allowBlank);
+ }
+
+ @Override
+ protected void initTextListener(ValueEditorPane textF) {
+ // 这边输入参数 不用联动模板变化激活保存按钮 相关参数并不存储在模板
+ // do nothing
+ }
+}
diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineConstants.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineConstants.java
index 9ceec2a2f8..8de2a0d637 100644
--- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineConstants.java
+++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineConstants.java
@@ -191,7 +191,9 @@ public class AlphaFineConstants {
public static final Icon BULB_ICON = IconUtils.readIcon("com/fr/design/mainframe/alphafine/images/bulb.svg");
- public static final Icon BLUE_BULB_ICON = IconUtils.readIcon("com/fr/design/mainframe/alphafine/images/blue_bulb.svg");
+ public static final Icon YELLOW_BULB_ICON = IconUtils.readIcon("com/fr/design/mainframe/alphafine/images/yellow_bulb.svg");
+
+ public static final Icon LIGHT_YELLOW_BULB_ICON = IconUtils.readIcon("com/fr/design/mainframe/alphafine/images/light_yellow_bulb.svg");
public static final String HOT_SEARCH = Toolkit.i18nText("Fine-Design_Report_AlphaFine_Hot_Search");
diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineFrame.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineFrame.java
index db89cf3482..b6819f56ca 100644
--- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineFrame.java
+++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineFrame.java
@@ -33,6 +33,7 @@ import com.fr.design.mainframe.alphafine.search.manager.impl.PluginSearchManager
import com.fr.design.mainframe.alphafine.search.manager.impl.ProductNewsSearchManager;
import com.fr.design.mainframe.alphafine.search.manager.impl.SegmentationManager;
import com.fr.design.utils.DesignUtils;
+import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.ComparatorUtils;
import com.fr.stable.StringUtils;
import java.awt.BorderLayout;
@@ -66,8 +67,11 @@ import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
import javax.swing.SwingConstants;
import javax.swing.Timer;
+import javax.swing.event.PopupMenuEvent;
+import javax.swing.event.PopupMenuListener;
/**
* @author hades
@@ -241,13 +245,10 @@ public class AlphaFineFrame extends JFrame {
topRightPane.setBackground(Color.WHITE);
JPanel tipPane = new JPanel(new BorderLayout());
tipPane.setBackground(Color.WHITE);
- String toolTip = AlphaFineShortCutUtil.getDisplayShortCut(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine_Short_Cut", DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().getShortcuts()));
tipIconLabel = new UILabel(AlphaFineConstants.BULB_ICON);
tipIconLabel.addMouseListener(tipMouseListener);
- tipIconLabel.setToolTipText(toolTip);
useTipLabel = new UILabel(SKILLS);
useTipLabel.addMouseListener(tipMouseListener);
- useTipLabel.setToolTipText(toolTip);
useTipLabel.setForeground(AlphaFineConstants.FOREGROUND_COLOR_6);
tipPane.add(tipIconLabel, BorderLayout.WEST);
tipPane.add(useTipLabel, BorderLayout.CENTER);
@@ -264,19 +265,63 @@ public class AlphaFineFrame extends JFrame {
private MouseAdapter tipMouseListener = new MouseAdapter() {
+ private JPopupMenu popupMenu;
+
@Override
public void mouseEntered(MouseEvent e) {
- useTipLabel.setForeground(UIConstants.FLESH_BLUE);
- tipIconLabel.setIcon(AlphaFineConstants.BLUE_BULB_ICON);
+ tipIconLabel.setIcon(AlphaFineConstants.YELLOW_BULB_ICON);
}
@Override
public void mouseExited(MouseEvent e) {
- useTipLabel.setForeground(AlphaFineConstants.FOREGROUND_COLOR_6);
- tipIconLabel.setIcon(AlphaFineConstants.BULB_ICON);
+ if (popupMenu == null || !popupMenu.isShowing()) {
+ useTipLabel.setForeground(AlphaFineConstants.FOREGROUND_COLOR_6);
+ tipIconLabel.setIcon(AlphaFineConstants.BULB_ICON);
+ }
+ }
+
+ @Override
+ public void mousePressed(MouseEvent e) {
+ useTipLabel.setForeground(UIConstants.FLESH_BLUE);
+ tipIconLabel.setIcon(AlphaFineConstants.LIGHT_YELLOW_BULB_ICON);
+ popupMenu = createTipPop();
+ GUICoreUtils.showPopupMenu(popupMenu, e.getComponent(), e.getComponent().getX() - 60, e.getComponent().getY() + 20);
}
};
+
+ private JPopupMenu createTipPop() {
+ JPanel panel = new JPanel(new BorderLayout());
+ String toolTip = AlphaFineShortCutUtil.getDisplayShortCut(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine_Short_Cut", DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().getShortcuts()));
+ UILabel label = new UILabel(toolTip);
+ label.setForeground(AlphaFineConstants.FOREGROUND_COLOR_8);
+ label.setBackground(Color.WHITE);
+ panel.add(label);
+ panel.setBackground(Color.WHITE);
+ JPopupMenu popupMenu = new JPopupMenu();
+ popupMenu.setBorder(BorderFactory.createEmptyBorder(20, 5, 10, 5));
+ popupMenu.add(panel);
+ popupMenu.setBackground(Color.WHITE);
+ popupMenu.addPopupMenuListener(new PopupMenuListener() {
+ @Override
+ public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
+ // do nothing
+ }
+
+ @Override
+ public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
+ useTipLabel.setForeground(AlphaFineConstants.FOREGROUND_COLOR_6);
+ tipIconLabel.setIcon(AlphaFineConstants.BULB_ICON);
+ }
+
+ @Override
+ public void popupMenuCanceled(PopupMenuEvent e) {
+ // do nothing
+ }
+ });
+ return popupMenu;
+ }
+
private JPanel createSearchPane() {
JPanel searchPane = new JPanel(new BorderLayout());
searchPane.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 20));
diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java
index eeaf8f920f..4cddfea738 100644
--- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java
+++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java
@@ -79,6 +79,7 @@ public class CellOtherSetPane extends AbstractCellAttrPane {
//文本超出时隐藏
private UICheckBox textOverflowCheckBox;
+ private int curSelectedIndex;
private UIComboBox showPartComboBox;
private CardLayout showPartLayout;
private JPanel showPartPane;
@@ -325,7 +326,16 @@ public class CellOtherSetPane extends AbstractCellAttrPane {
showPartLayout.show(showPartPane, "none");
showPartPane.setPreferredSize(new Dimension(0, 0));
}
+ // 记录目前自动调整哪个被选中
+ for (int i = 0; i < adjustRadioButtons.length; i++) {
+ if (adjustRadioButtons[i].isSelected()) {
+ curSelectedIndex = i;
+ break;
+ }
+ }
noAutoRadioButton.setSelected(true);
+ } else {
+ adjustRadioButtons[curSelectedIndex].setSelected(true);
}
}
});
@@ -421,25 +431,37 @@ public class CellOtherSetPane extends AbstractCellAttrPane {
@Override
public void itemStateChanged(ItemEvent e) {
- Style elementStyle = cellElement.getStyle();
- FRFont frFont = elementStyle.getFRFont();
- if (showContent.getSelectedIndex() == 3) {
- fileNamePane.setPreferredSize(new Dimension(100, 20));
- fileNameLayout.show(fileNamePane, "content");
- frFont = frFont.applyForeground(Color.blue);
- frFont = frFont.applyUnderline(Constants.LINE_THIN);
- } else {
- fileNameLayout.show(fileNamePane, "none");
- fileNamePane.setPreferredSize(new Dimension(0, 0));
- frFont = frFont.applyForeground(Color.black);
- frFont = frFont.applyUnderline(Constants.LINE_NONE);
+ if (e.getStateChange() == ItemEvent.SELECTED) {
+ if (showContent.getSelectedIndex() == 3) {
+ fileNamePane.setPreferredSize(new Dimension(100, 20));
+ fileNameLayout.show(fileNamePane, "content");
+ } else {
+ fileNameLayout.show(fileNamePane, "none");
+ fileNamePane.setPreferredSize(new Dimension(0, 0));
+ }
+ handleCellShowStyleChange(e);
}
- cellElement.setStyle(elementStyle.deriveFRFont(frFont));
}
});
return fileNamePane;
}
+ private void handleCellShowStyleChange(ItemEvent itemEvent) {
+ CellGUIAttr cellGUIAttr = getCellGUIAttr();
+ int selectedIndex = showContent.getSelectedIndex();
+ boolean showAsDownload = cellGUIAttr.isShowAsDownload();
+ Style elementStyle = cellElement.getStyle();
+ FRFont frFont = elementStyle.getFRFont();
+ if (!showAsDownload && selectedIndex == 3) {
+ frFont = frFont.applyForeground(Color.blue);
+ frFont = frFont.applyUnderline(Constants.LINE_THIN);
+ } else if (showAsDownload && selectedIndex != 3) {
+ frFont = frFont.applyForeground(Color.black);
+ frFont = frFont.applyUnderline(Constants.LINE_NONE);
+ }
+ cellElement.setStyle(elementStyle.deriveFRFont(frFont));
+ }
+
private void initAllNames() {
defaultAutoRadioButton.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Follow_Paper_Settings"));
@@ -475,15 +497,20 @@ public class CellOtherSetPane extends AbstractCellAttrPane {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Other");
}
+ private CellGUIAttr getCellGUIAttr() {
+ CellGUIAttr cellGUIAttr = cellElement.getCellGUIAttr();
+ if (cellGUIAttr == null) {
+ cellGUIAttr = CellGUIAttr.DEFAULT_CELLGUIATTR;
+ }
+ return cellGUIAttr;
+ }
+
@Override
protected void populateBean() {
this.currentPageFixedRowDataTipLabel.setText(" (" + Toolkit.i18nText("Fine-Design_Report_CellWrite_No_Page_Fixed_Row_Cell") + ")");
this.pageFixedRowDataCell = null;
checkPageFixedRow();
- CellGUIAttr cellGUIAttr = cellElement.getCellGUIAttr();
- if (cellGUIAttr == null) {
- cellGUIAttr = CellGUIAttr.DEFAULT_CELLGUIATTR;
- }
+ CellGUIAttr cellGUIAttr = getCellGUIAttr();
// 支持 跟随页面设置 选项 = 不在编辑表单中的报表块 && 不在大屏模板cpt组件中
boolean supportFollowTplDefine = !EastRegionContainerPane.getInstance().getCurrentMode().equals(EastRegionContainerPane.PropertyMode.FORM_REPORT)
diff --git a/designer-realize/src/main/java/com/fr/design/share/ui/generate/ShareMainPane.java b/designer-realize/src/main/java/com/fr/design/share/ui/generate/ShareMainPane.java
index 9ac98286e8..70ec2b6f9c 100644
--- a/designer-realize/src/main/java/com/fr/design/share/ui/generate/ShareMainPane.java
+++ b/designer-realize/src/main/java/com/fr/design/share/ui/generate/ShareMainPane.java
@@ -35,6 +35,7 @@ import com.fr.design.mainframe.share.ui.base.ui.PlaceHolderUI;
import com.fr.design.mainframe.share.util.ShareUIUtils;
import com.fr.design.share.effect.EffectItemGroup;
import com.fr.design.share.utils.ShareDialogUtils;
+import com.fr.file.FileCommonUtils;
import com.fr.form.share.DefaultSharableWidget;
import com.fr.form.share.bean.StyleThemeBean;
import com.fr.form.share.constants.ShareComponentConstants;
@@ -659,6 +660,15 @@ public class ShareMainPane extends JPanel {
Toolkit.i18nText("Fine-Design_Basic_Error"), ERROR_MESSAGE, UIManager.getIcon("OptionPane.errorIcon"));
return false;
}
+ if (!FileCommonUtils.isFileNameValid(name)) {
+ FineJOptionPane.showMessageDialog(
+ shareDialog,
+ Toolkit.i18nText("Fine-Design_Share_Generate_Failure_Illegal_Component_Name_Tip"),
+ Toolkit.i18nText("Fine-Design_Basic_Error"),
+ ERROR_MESSAGE,
+ UIManager.getIcon("OptionPane.errorIcon"));
+ return false;
+ }
if (upload && StringUtils.isEmpty(content.getText())) {
FineJOptionPane.showMessageDialog(shareDialog, Toolkit.i18nText("Fine-Design_Share_Lack_Content"),
Toolkit.i18nText("Fine-Design_Basic_Error"), ERROR_MESSAGE, UIManager.getIcon("OptionPane.errorIcon"));
diff --git a/designer-realize/src/main/java/com/fr/start/module/PreStartActivator.java b/designer-realize/src/main/java/com/fr/start/module/PreStartActivator.java
index 65cdc1c30d..fa795fb372 100644
--- a/designer-realize/src/main/java/com/fr/start/module/PreStartActivator.java
+++ b/designer-realize/src/main/java/com/fr/start/module/PreStartActivator.java
@@ -2,6 +2,7 @@ package com.fr.start.module;
import com.fr.design.DesignerEnvManager;
import com.fr.design.RestartHelper;
+import com.fr.design.file.TemplateResourceManager;
import com.fr.design.utils.DesignUtils;
import com.fr.file.TmpFileUtils;
import com.fr.general.CloudCenter;
@@ -28,6 +29,9 @@ public class PreStartActivator extends Activator {
// 创建监听服务
DesignUtils.createListeningServer(DesignUtils.getPort(), startFileSuffix());
+ // 在插件引擎模块起来前 初始化下插件接口监听
+ TemplateResourceManager.getResource();
+
initLanguage();
}
diff --git a/designer-realize/src/main/resources/com/fr/design/mainframe/alphafine/images/light_yellow_bulb.svg b/designer-realize/src/main/resources/com/fr/design/mainframe/alphafine/images/light_yellow_bulb.svg
new file mode 100644
index 0000000000..16608753f1
--- /dev/null
+++ b/designer-realize/src/main/resources/com/fr/design/mainframe/alphafine/images/light_yellow_bulb.svg
@@ -0,0 +1,4 @@
+
diff --git a/designer-realize/src/main/resources/com/fr/design/mainframe/alphafine/images/yellow_bulb.svg b/designer-realize/src/main/resources/com/fr/design/mainframe/alphafine/images/yellow_bulb.svg
new file mode 100644
index 0000000000..cabda1d9d9
--- /dev/null
+++ b/designer-realize/src/main/resources/com/fr/design/mainframe/alphafine/images/yellow_bulb.svg
@@ -0,0 +1,4 @@
+