Browse Source

Pull request #16095: feat: fvs表格-超链-移动端弹窗支持get post设置 #REPORT-145535

Merge in DESIGN/design from ~ZHANYING/design:feature/x to feature/x

* commit '0434f3503f2cadb1d8969956b479547bbf9ac394':
  feat: 移除移动端弹窗配置调整的接口方法 #REPORT-145535
  feat: 部分逻辑抽到插件中实现 #REPORT-145535
  feat: fvs表格-超链-移动端弹窗支持get post设置 #REPORT-145535
feature/x
Zhanying-占盈 2 months ago
parent
commit
5349a6a7e5
  1. 9
      designer-base/src/main/java/com/fr/design/fun/DefaultValueAdjustProvider.java
  2. 49
      designer-base/src/main/java/com/fr/design/hyperlink/popup/ContentSettingPane.java

9
designer-base/src/main/java/com/fr/design/fun/DefaultValueAdjustProvider.java

@ -83,4 +83,13 @@ public interface DefaultValueAdjustProvider extends Selectable {
default List getColorSelector(){ default List getColorSelector(){
return FRColorSelectorStyle.COLOR_CONFIG; return FRColorSelectorStyle.COLOR_CONFIG;
} }
/**
* 移动端弹窗界面是否支持配置POST传参方式
*
* @return 是否支持
*/
default boolean isNeedPostCombo4MobilePopupPane() {
return false;
}
} }

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

@ -6,10 +6,12 @@ import com.fr.base.Parameter;
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.formula.TinyFormulaPane; import com.fr.design.formula.TinyFormulaPane;
import com.fr.design.fun.DefaultValueAdjustProvider;
import com.fr.design.gui.frpane.ReportletParameterViewPane; import com.fr.design.gui.frpane.ReportletParameterViewPane;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.ibutton.UIRadioButton; import com.fr.design.gui.ibutton.UIRadioButton;
import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.itableeditorpane.UITableEditAction; import com.fr.design.gui.itableeditorpane.UITableEditAction;
import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.gui.itree.filetree.ReportletPane; import com.fr.design.gui.itree.filetree.ReportletPane;
@ -18,6 +20,7 @@ import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.module.DesignModuleFactory; import com.fr.design.module.DesignModuleFactory;
import com.fr.design.parameter.ParameterReader; import com.fr.design.parameter.ParameterReader;
import com.fr.design.utils.DesignUtils;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.js.MobilePopupHyperlink; import com.fr.js.MobilePopupHyperlink;
import com.fr.stable.CommonUtils; import com.fr.stable.CommonUtils;
@ -25,8 +28,14 @@ import com.fr.stable.FormulaProvider;
import com.fr.stable.ParameterProvider; import com.fr.stable.ParameterProvider;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import javax.swing.*; import javax.swing.BorderFactory;
import java.awt.*; import javax.swing.ButtonGroup;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.util.List; import java.util.List;
@ -44,6 +53,7 @@ public class ContentSettingPane extends AbstractHyperLinkPane<MobilePopupHyperli
private JPanel textSettingPanel; private JPanel textSettingPanel;
private TinyFormulaPane textContentPane; private TinyFormulaPane textContentPane;
private CustomFontPane fontPane; private CustomFontPane fontPane;
private UIComboBox postComboBox;
public ContentSettingPane() { public ContentSettingPane() {
super(); super();
@ -112,7 +122,15 @@ public class ContentSettingPane extends AbstractHyperLinkPane<MobilePopupHyperli
JPanel templateContentPane = new JPanel(); JPanel templateContentPane = new JPanel();
templateContentPane.setLayout(new BorderLayout(0,8)); templateContentPane.setLayout(new BorderLayout(0,8));
templateContentPane.add(this.createTemplateSelectPanel(), BorderLayout.NORTH); if (isNeedShowPostCombo()) {
JPanel jPanel = new JPanel(new BorderLayout(0, 5));
jPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
jPanel.add(this.createTemplateSelectPanel(), BorderLayout.NORTH);
jPanel.add(this.createPostComboPanel(), BorderLayout.SOUTH);
templateContentPane.add(jPanel, BorderLayout.NORTH);
} else {
templateContentPane.add(this.createTemplateSelectPanel(), BorderLayout.NORTH);
}
parameterViewPane = this.createReportletParameterViewPane(); parameterViewPane = this.createReportletParameterViewPane();
templateContentPane.add(parameterViewPane, BorderLayout.CENTER); templateContentPane.add(parameterViewPane, BorderLayout.CENTER);
@ -123,6 +141,14 @@ public class ContentSettingPane extends AbstractHyperLinkPane<MobilePopupHyperli
return templateContentPane; return templateContentPane;
} }
private boolean isNeedShowPostCombo() {
DefaultValueAdjustProvider valueAdjust = DesignUtils.getValueAdjust();
if (valueAdjust != null) {
return valueAdjust.isNeedPostCombo4MobilePopupPane();
}
return false;
}
private JPanel createTemplateSelectPanel() { private JPanel createTemplateSelectPanel() {
JPanel templatePanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel templatePanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
// 路径输入框 // 路径输入框
@ -152,6 +178,15 @@ public class ContentSettingPane extends AbstractHyperLinkPane<MobilePopupHyperli
return MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Template"), templatePanel); return MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Template"), templatePanel);
} }
private JPanel createPostComboPanel() {
JPanel postComboPanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
postComboBox = new UIComboBox(new String[]{"GET", "POST"});
postComboBox.setPreferredSize(new Dimension(60, 20));
postComboBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
postComboPanel.add(postComboBox, BorderLayout.WEST);
return MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("Fine-Design_Basic_Reportlet_Parameter_Type"), postComboPanel);
}
private ReportletParameterViewPane createReportletParameterViewPane() { private ReportletParameterViewPane createReportletParameterViewPane() {
ReportletParameterViewPane templateParameterViewPane = new ReportletParameterViewPane( ReportletParameterViewPane templateParameterViewPane = new ReportletParameterViewPane(
new UITableEditAction[]{ new UITableEditAction[]{
@ -285,6 +320,10 @@ public class ContentSettingPane extends AbstractHyperLinkPane<MobilePopupHyperli
ParameterProvider[] parameters =link.getParameters(); ParameterProvider[] parameters =link.getParameters();
parameterViewPane.populate(parameters); parameterViewPane.populate(parameters);
if (isNeedShowPostCombo()) {
this.postComboBox.setSelectedIndex(link.isByPost() ? 1 : 0);
}
// 继承参数 // 继承参数
extendParametersCheckBox.setSelected(link.isExtendParameters()); extendParametersCheckBox.setSelected(link.isExtendParameters());
} }
@ -292,6 +331,10 @@ public class ContentSettingPane extends AbstractHyperLinkPane<MobilePopupHyperli
private void updateTemplateContentBean(MobilePopupHyperlink link) { private void updateTemplateContentBean(MobilePopupHyperlink link) {
link.setReportletPath(templatePathTextField.getText()); link.setReportletPath(templatePathTextField.getText());
if (isNeedShowPostCombo()) {
link.setByPost(postComboBox.getSelectedIndex() == 1);
}
List<ParameterProvider> parameterList = this.parameterViewPane.update(); List<ParameterProvider> parameterList = this.parameterViewPane.update();
if (!parameterList.isEmpty()) { if (!parameterList.isEmpty()) {
Parameter[] parameters = new Parameter[parameterList.size()]; Parameter[] parameters = new Parameter[parameterList.size()];

Loading…
Cancel
Save