diff --git a/designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java b/designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java
index 6158540888..dbb7798f3b 100644
--- a/designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java
+++ b/designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java
@@ -126,8 +126,8 @@ public class AboutPane extends JPanel {
if (GeneralContext.getLocale().equals(Locale.TAIWAN)) {
return;
}
- boxCenterAlignmentPane = new BoxCenterAligmentPane("QQ: " + CloudCenter.getInstance().acquireUrlByKind("help.qq"));
- contentPane.add(boxCenterAlignmentPane);
+ JPanel servicePlatformPane = getURLActionPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Service_Platform"), CloudCenter.getInstance().acquireUrlByKind("service.platform"));
+ contentPane.add(servicePlatformPane);
}
// 是否显示鸣谢面板
diff --git a/designer-base/src/main/java/com/fr/design/mainframe/platform/ServicePlatformAction.java b/designer-base/src/main/java/com/fr/design/mainframe/platform/ServicePlatformAction.java
new file mode 100644
index 0000000000..7912354501
--- /dev/null
+++ b/designer-base/src/main/java/com/fr/design/mainframe/platform/ServicePlatformAction.java
@@ -0,0 +1,30 @@
+package com.fr.design.mainframe.platform;
+
+import com.fr.design.actions.UpdateAction;
+import com.fr.design.i18n.Toolkit;
+import com.fr.design.utils.BrowseUtils;
+import com.fr.general.CloudCenter;
+import com.fr.log.FineLoggerFactory;
+
+import java.awt.Desktop;
+import java.awt.event.ActionEvent;
+import java.net.URI;
+
+/**
+ * 帮助-服务平台
+ *
+ * @author Destiny.Lin
+ * @version 11.0
+ * created by Destiny.Lin on 2022-12-14
+ */
+public class ServicePlatformAction extends UpdateAction {
+ public ServicePlatformAction() {
+ this.setName(Toolkit.i18nText("Fine-Design_Basic_Service_Platform_Title"));
+ this.setSmallIcon("/com/fr/design/images/platform/platform");
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ BrowseUtils.browser(CloudCenter.getInstance().acquireUrlByKind("service.platform"));
+ }
+}
diff --git a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
index 904c281560..3c75eff39d 100644
--- a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
+++ b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
@@ -56,6 +56,7 @@ import com.fr.design.gui.itoolbar.UIToolbar;
import com.fr.design.locale.impl.SupportLocaleImpl;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.mainframe.ToolBarNewTemplatePane;
+import com.fr.design.mainframe.platform.ServicePlatformAction;
import com.fr.design.menu.MenuDef;
import com.fr.design.menu.SeparatorDef;
import com.fr.design.menu.ShortCut;
@@ -571,9 +572,14 @@ public abstract class ToolBarMenuDock {
if (AlphaFineConfigManager.isALPHALicAvailable()) {
shortCuts.add(new AlphaFineAction());
}
-
+
shortCuts.add(new EnvDetectorAction());
-
+ //服务平台(仅针对中国大陆)
+ if (GeneralContext.getLocale().equals(Locale.CHINA)) {
+ shortCuts.add(new ServicePlatformAction());
+ }
+
+
shortCuts.add(SeparatorDef.DEFAULT);
if (DesignerEnvManager.getEnvManager().isOpenDebug()) {
OSSupportCenter.buildAction(objects -> shortCuts.add(new FineUIAction()), SupportOSImpl.FINEUI);
diff --git a/designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java b/designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java
index 0dd70e03cd..1fa37f60f8 100644
--- a/designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java
+++ b/designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java
@@ -488,7 +488,7 @@ public class UpdateMainDialog extends UIDialog {
continue;
}
}
- if (isValidLogInfo(updateInfo[UpdateInfoTable.UPDATE_TITLE_INDEX]) && curJarDate != null) {
+ if (isValid(updateInfo, GeneralUtils.objectToString(curJarDate))) {
updateInfoList.add(new Object[]{UPDATELOG_FORMAT.format(updateTime), updateInfo[UpdateInfoTable.UPDATE_VERSION_INDEX], updateInfo[UpdateInfoTable.UPDATE_TITLE_INDEX], updateTime.after(curJarDate)});
}
}
@@ -499,6 +499,11 @@ public class UpdateMainDialog extends UIDialog {
}
}
+
+ private boolean isValid(String[] updateInfo, String curJarDate) {
+ return isValidLogInfo(updateInfo[UpdateInfoTable.UPDATE_TITLE_INDEX]) && curJarDate != null && curJarDate.compareTo(updateInfo[UpdateInfoTable.UPDATE_DATE_INDEX]) <= 0;
+ }
+
private void updateCachedInfoFile(JSONArray jsonArray) throws Exception {
String cacheDirPath = StableUtils.pathJoin(WorkContext.getCurrent().getPath(), "resources", "offlineres");
File cacheFileDir = new File(cacheDirPath);
@@ -554,13 +559,18 @@ public class UpdateMainDialog extends UIDialog {
continue;
}
}
- if (isValidLogInfo(updateTitle)) {
+ Date curDate = UPDATE_INFO_TABLE_FORMAT.parse(currentNO, new ParsePosition(currentNO.indexOf("-") + 1));
+ if (isValid4GenerateInfo(updateTitle, GeneralUtils.objectToString(curDate), updateTimeStr)) {
updateInfoList.add(new Object[]{updateTimeStr, updateVersionStr, updateTitle, updateTime.after(curJarDate)});
}
}
return new ArrayList<>(updateInfoList);
}
+ private boolean isValid4GenerateInfo(String updateTitle, String curDate, String updateTimeStr) {
+ return isValidLogInfo(updateTitle) && curDate.compareTo(updateTimeStr) <= 0;
+ }
+
private boolean containsKeyword(String str, String keyword) {
return str.toUpperCase().contains(keyword.toUpperCase());
}
diff --git a/designer-base/src/main/resources/com/fr/design/images/platform/platform_normal.svg b/designer-base/src/main/resources/com/fr/design/images/platform/platform_normal.svg
new file mode 100644
index 0000000000..ab95e95f3c
--- /dev/null
+++ b/designer-base/src/main/resources/com/fr/design/images/platform/platform_normal.svg
@@ -0,0 +1,3 @@
+
diff --git a/designer-form/src/main/java/com/fr/design/designer/beans/models/ClipboardProvider.java b/designer-form/src/main/java/com/fr/design/designer/beans/models/ClipboardProvider.java
new file mode 100644
index 0000000000..4382fc35f7
--- /dev/null
+++ b/designer-form/src/main/java/com/fr/design/designer/beans/models/ClipboardProvider.java
@@ -0,0 +1,18 @@
+package com.fr.design.designer.beans.models;
+
+public interface ClipboardProvider {
+
+ /**
+ * 剪切到剪贴板
+ *
+ * @param o 剪切对象
+ */
+ void cut2Clipboard(Object o);
+
+ /**
+ * 复制到剪贴板
+ *
+ * @param o 复制对象
+ */
+ void copy2Clipboard(Object o);
+}
diff --git a/designer-form/src/main/java/com/fr/design/designer/beans/models/DashboardClipboardManager.java b/designer-form/src/main/java/com/fr/design/designer/beans/models/DashboardClipboardManager.java
new file mode 100644
index 0000000000..55cf2f12c7
--- /dev/null
+++ b/designer-form/src/main/java/com/fr/design/designer/beans/models/DashboardClipboardManager.java
@@ -0,0 +1,45 @@
+package com.fr.design.designer.beans.models;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 用来管理不同剪贴板,以及之间的数据同步
+ */
+public class DashboardClipboardManager {
+ private static class Holder {
+ private static final DashboardClipboardManager HOLDER = new DashboardClipboardManager();
+ }
+
+ private static final List CLIPBOARD_LIST = new ArrayList<>();
+
+
+ public void registerDashboardClipboard(ClipboardProvider clipboard) {
+ CLIPBOARD_LIST.add(clipboard);
+ }
+
+ public void removeDashboardClipboard(ClipboardProvider clipboard) {
+ CLIPBOARD_LIST.remove(clipboard);
+ }
+
+ public static DashboardClipboardManager getInstance() {
+ return Holder.HOLDER;
+ }
+
+ private DashboardClipboardManager() {
+ }
+
+ public void cut2Clipboard(Object o) {
+ for (ClipboardProvider clipboard : CLIPBOARD_LIST) {
+ //同步其他剪贴板
+ clipboard.cut2Clipboard(o);
+ }
+ }
+
+ public void copy2Clipboard(Object o) {
+ for (ClipboardProvider clipboard : CLIPBOARD_LIST) {
+ //同步其他剪贴板
+ clipboard.copy2Clipboard(o);
+ }
+ }
+}
diff --git a/designer-form/src/main/java/com/fr/design/designer/beans/models/FormSelectionClipboard.java b/designer-form/src/main/java/com/fr/design/designer/beans/models/FormSelectionClipboard.java
new file mode 100644
index 0000000000..a190532769
--- /dev/null
+++ b/designer-form/src/main/java/com/fr/design/designer/beans/models/FormSelectionClipboard.java
@@ -0,0 +1,45 @@
+package com.fr.design.designer.beans.models;
+
+import com.fr.design.mainframe.FormSelection;
+
+public class FormSelectionClipboard implements ClipboardProvider {
+ private static final FormSelection FRM_CLIPBOARD = new FormSelection();
+
+ static {
+ DashboardClipboardManager.getInstance().registerDashboardClipboard(FormSelectionClipboard.getInstance());
+ }
+
+ private static class Holder {
+ private static final FormSelectionClipboard HOLDER = new FormSelectionClipboard();
+ }
+
+ public static FormSelectionClipboard getInstance() {
+ return Holder.HOLDER;
+ }
+
+ private FormSelectionClipboard() {
+ }
+
+
+ public boolean isEmpty() {
+ return FRM_CLIPBOARD.isEmpty();
+ }
+
+ public FormSelection getClipboard() {
+ return FRM_CLIPBOARD;
+ }
+
+ @Override
+ public void cut2Clipboard(Object o) {
+ if (o instanceof FormSelection) {
+ ((FormSelection) o).cut2ClipBoard(FRM_CLIPBOARD);
+ }
+ }
+
+ @Override
+ public void copy2Clipboard(Object o) {
+ if (o instanceof FormSelection) {
+ ((FormSelection) o).copy2ClipBoard(FRM_CLIPBOARD);
+ }
+ }
+}
diff --git a/designer-form/src/main/java/com/fr/design/designer/beans/models/SelectionModel.java b/designer-form/src/main/java/com/fr/design/designer/beans/models/SelectionModel.java
index f75e08d723..807325a3b4 100644
--- a/designer-form/src/main/java/com/fr/design/designer/beans/models/SelectionModel.java
+++ b/designer-form/src/main/java/com/fr/design/designer/beans/models/SelectionModel.java
@@ -46,12 +46,14 @@ public class SelectionModel {
//被粘贴组件在所选组件位置处往下、往右各错开20像素。执行多次粘贴时,在上一次粘贴的位置处错开20像素。
private static final int DELTA_X_Y = 20; //粘贴时候的偏移距离
private static final double OFFSET_RELATIVE = 0.80;
- private static FormSelection clipboard = new FormSelection();
+ private static FormSelectionClipboard formClipboard = FormSelectionClipboard.getInstance();
private FormDesigner designer;
private FormSelection selection;
private Rectangle hotspotBounds;
private FormWidgetOptionProvider provider;
+
+
public SelectionModel(FormDesigner designer) {
this.designer = designer;
selection = new FormSelection();
@@ -71,7 +73,7 @@ public class SelectionModel {
* @return 是否为空
*/
public static boolean isEmpty() {
- return clipboard.isEmpty();
+ return formClipboard.isEmpty();
}
/**
@@ -161,7 +163,7 @@ public class SelectionModel {
if (hasSelectionComponent()) {
FormSelection cutSelection = ClipboardFilter.cut(selection);
if (cutSelection != null) {
- cutSelection.cut2ClipBoard(clipboard);
+ DashboardClipboardManager.getInstance().cut2Clipboard(cutSelection);
designer.getEditListenerTable().fireCreatorModified(DesignerEvent.CREATOR_CUTED);
setSelectedCreator(hasSelectedParaComponent() ? designer.getParaComponent() : designer.getRootComponent());
designer.repaint();
@@ -192,7 +194,7 @@ public class SelectionModel {
if (!selection.isEmpty()) {
FormSelection copySelection = ClipboardFilter.copy(selection);
if (copySelection != null) {
- copySelection.copy2ClipBoard(clipboard);
+ DashboardClipboardManager.getInstance().copy2Clipboard(copySelection);
}
}
}
@@ -203,7 +205,7 @@ public class SelectionModel {
* @return 否
*/
public boolean pasteFromClipBoard() {
- FormSelection pasteSelection = ClipboardFilter.paste(clipboard);
+ FormSelection pasteSelection = ClipboardFilter.paste(formClipboard.getClipboard());
if (pasteSelection != null && !pasteSelection.isEmpty()) {
if (!hasSelectedPasteSource()) {
//未选
@@ -240,7 +242,7 @@ public class SelectionModel {
//编辑器外面还有两层容器,使用designer.getRootComponent()获取到的是编辑器中层的容器,不是编辑器表层
//当前选择的就是编辑器表层
FormSelectionUtils.paste2Container(designer, (XLayoutContainer) selection.getSelectedCreator(),
- clipboard,
+ formClipboard.getClipboard(),
DELTA_X_Y,
DELTA_X_Y);
}
@@ -248,7 +250,7 @@ public class SelectionModel {
//cpt本地组件复用,编辑器就一层,是最底层,使用designer.getRootComponent()就可以获取到
//使用selection.getSelectedCreator()也应该是可以获取到的。
FormSelectionUtils.paste2Container(designer, designer.getRootComponent(),
- clipboard,
+ formClipboard.getClipboard(),
DELTA_X_Y,
DELTA_X_Y);
}
@@ -266,7 +268,7 @@ public class SelectionModel {
if (hasSelectedPasteSource()) {
selectedPaste();
} else {
- FormSelectionUtils.paste2Container(designer, container, clipboard,
+ FormSelectionUtils.paste2Container(designer, container, formClipboard.getClipboard(),
rectangle.x + rectangle.width / 2,
rectangle.y + DELTA_X_Y);
}
@@ -281,7 +283,7 @@ public class SelectionModel {
selectedPaste();
} else {
FormSelectionUtils.paste2Container(designer, designer.getRootComponent(),
- clipboard,
+ formClipboard.getClipboard(),
rectangle.x + rectangle.width / 2,
rectangle.y + DELTA_X_Y);
}
@@ -314,13 +316,13 @@ public class SelectionModel {
positionX = selectionRec.x - containerRec.x + selectionRec.width / 2;
positionY = (int) (selectionRec.y - containerRec.y + selectionRec.height * OFFSET_RELATIVE);
}
- FormSelectionUtils.paste2Container(designer, container, clipboard, positionX, positionY);
+ FormSelectionUtils.paste2Container(designer, container, formClipboard.getClipboard(), positionX, positionY);
} else if (container != null && selection.getSelectedCreator().getParent() instanceof XWAbsoluteLayout) {
//绝对布局
Rectangle rec = selection.getSelctionBounds();
- FormSelectionUtils.paste2Container(designer, container, clipboard, rec.x + DELTA_X_Y, rec.y + DELTA_X_Y);
+ FormSelectionUtils.paste2Container(designer, container, formClipboard.getClipboard(), rec.x + DELTA_X_Y, rec.y + DELTA_X_Y);
} else if (isExtraContainer(container)) {
- provider.paste2Container(clipboard);
+ provider.paste2Container(formClipboard.getClipboard());
}
}
diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormSingleWidgetCardPane.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormSingleWidgetCardPane.java
index 81e3a53641..98c539f278 100644
--- a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormSingleWidgetCardPane.java
+++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormSingleWidgetCardPane.java
@@ -28,9 +28,11 @@ import com.fr.design.widget.Operator;
import com.fr.design.widget.ui.designer.component.WidgetAbsoluteBoundPane;
import com.fr.design.widget.ui.designer.component.WidgetBoundPane;
import com.fr.design.widget.ui.designer.component.WidgetCardTagBoundPane;
+import com.fr.form.main.WidgetUtil;
import com.fr.form.ui.ChartEditor;
import com.fr.form.ui.Widget;
import com.fr.form.ui.container.WScaleLayout;
+import com.fr.form.ui.container.WSortLayout;
import com.fr.form.ui.container.WTitleLayout;
import com.fr.form.ui.widget.CRBoundsWidget;
import com.fr.general.ComparatorUtils;
@@ -241,7 +243,12 @@ public class FormSingleWidgetCardPane extends FormWidgetCardPane {
showNameInvalidDialog(Toolkit.i18nText("Fine-Design_Form_Chart_Widget_Rename_Failure"));
return;
}
+ String oldName = widget.getWidgetName();
widgetPropertyPane.update(widget);
+ Widget innerWidget = WidgetUtil.getInnerWidget(widget);
+ if (!StringUtils.equals(oldName, innerWidget.getWidgetName())) {
+ innerWidget.setMobileOldWidgetName(oldName);
+ }
// 上面一行更新了组件 这里必须重新调用getWidgetName
xCreator.resetCreatorName(widget.getWidgetName());
xCreator.resetVisible(widget.isVisible());
diff --git a/designer-realize/src/main/java/com/fr/design/report/freeze/FormECRepeatAndFreezeSettingPane.java b/designer-realize/src/main/java/com/fr/design/report/freeze/FormECRepeatAndFreezeSettingPane.java
index 2e9a17c4dc..6e53599492 100644
--- a/designer-realize/src/main/java/com/fr/design/report/freeze/FormECRepeatAndFreezeSettingPane.java
+++ b/designer-realize/src/main/java/com/fr/design/report/freeze/FormECRepeatAndFreezeSettingPane.java
@@ -28,8 +28,8 @@ public class FormECRepeatAndFreezeSettingPane extends RepeatAndFreezeSettingPane
}
- protected void addWriteFrozen(JPanel freezePanel) {
-
+ protected void addWriteFrozen(JPanel freezePanel, JPanel pagePanel) {
+ super.initWriteFrozenPane();
}
}
\ No newline at end of file
diff --git a/designer-realize/src/main/java/com/fr/design/report/freeze/FreezeAndRepeatPane.java b/designer-realize/src/main/java/com/fr/design/report/freeze/FreezeAndRepeatPane.java
index cf32a24b65..a946b63b16 100644
--- a/designer-realize/src/main/java/com/fr/design/report/freeze/FreezeAndRepeatPane.java
+++ b/designer-realize/src/main/java/com/fr/design/report/freeze/FreezeAndRepeatPane.java
@@ -87,7 +87,7 @@ public abstract class FreezeAndRepeatPane extends BasicBeanPane {
private void updateEndValue() {
- if (end instanceof UISpinner) {
+ if (end instanceof UISpinner && start instanceof UISpinner) {
((UISpinner) end).setMinValue(((UISpinner) start).getValue());
((UISpinner) end).setValue(((UISpinner) end).getValue());
diff --git a/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java b/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java
index be7606a22d..0d5ca8de7f 100644
--- a/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java
+++ b/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java
@@ -206,7 +206,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
/**
* 填报冻结Pane
*/
- private JPanel initWriteFrozenPane() {
+ protected JPanel initWriteFrozenPane() {
JPanel writePanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
// 填报冻结
UILabel writeLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Face_Write_Frozen") + ":");
@@ -269,13 +269,13 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
outfreezePanel.add(initPageFrozenPane(), BorderLayout.NORTH);
outfreezePanel.add(initPageFrozenFootPane(),BorderLayout.CENTER);
- tabbedPane.addTab(Toolkit.i18nText("Fine-Design_Basic_M_Page_Preview"), pagePanel);
+ outfreezePanel.add(new UILabel(" "+ Toolkit.i18nText("Fine-Design_Report_Engine_Freeze_Tip") + ""),BorderLayout.SOUTH);
JPanel writePanel = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Frozen"));
- addWriteFrozen(writePanel);
+ addWriteFrozen(writePanel, pagePanel);
- //去除对应的焦点虚线边框
- tabbedPane.setFocusable(false);
- this.add(tabbedPane);
+ if (tabbedPane.getTabSize() == 0) {
+ this.add(pagePanel);
+ }
initPageRwoListener();
initPageColListener();
initWriteListener();
@@ -319,9 +319,13 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
useRepeatFinisCCheckBox.addChangeListener(useRepeatFinisCListener);
}
- protected void addWriteFrozen(JPanel freezePanel) {
+ protected void addWriteFrozen(JPanel freezePanel, JPanel pagePanel) {
freezePanel.add(initWriteFrozenPane(), BorderLayout.CENTER);
+ tabbedPane.addTab(Toolkit.i18nText("Fine-Design_Basic_M_Page_Preview"), pagePanel);
tabbedPane.addTab(Toolkit.i18nText("Fine-Design_Basic_M_Write_Preview"), freezePanel);
+ //去除对应的焦点虚线边框
+ tabbedPane.setFocusable(false);
+ this.add(tabbedPane);
}
protected void addFootColStart(JPanel repeatPanel) {
@@ -492,7 +496,6 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
this.repeatTitleRowPane.populateBean(defaultFT);
this.repeatTitleRowPane.setEnabled(false);
usePageHeadFrozenRCheckBox.setEnabled(false);
- usePageFootFrozenRCheckBox.setEnabled(false);
} else {
this.repeatTitleRowPane.populateBean(ft);
useRepeatTitleRCheckBox.setSelected(true);
@@ -503,6 +506,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
this.repeatFinisRowPane.populateBean(defaultFT);
this.repeatFinisRowPane.setEnabled(false);
useRepeatFinisRCheckBox.setSelected(false);
+ usePageFootFrozenRCheckBox.setEnabled(false);
} else {
this.repeatFinisRowPane.populateBean(ft);
useRepeatFinisRCheckBox.setSelected(true);
@@ -519,7 +523,6 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
this.repeatTitleColPane.populateBean(defaultFT);
this.repeatTitleColPane.setEnabled(false);
usePageHeadFrozenCCheckBox.setEnabled(false);
- usePageFootFrozenCCheckBox.setEnabled(false);
} else {
this.repeatTitleColPane.populateBean(ft);
useRepeatTitleCCheckBox.setSelected(true);
@@ -530,6 +533,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
this.repeatFinisColPane.populateBean(defaultFT);
this.repeatFinisColPane.setEnabled(false);
useRepeatFinisCCheckBox.setSelected(false);
+ usePageFootFrozenCCheckBox.setEnabled(false);
} else {
this.repeatFinisColPane.populateBean(ft);
useRepeatFinisCCheckBox.setSelected(true);
@@ -579,9 +583,53 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
updateRowPane(attribute);
updateColPane(attribute);
+ //单独将重复、分页、填报处理一下,原先的判断逻辑比较混乱,抽出来方便判断
+ updateUseAttr(attribute);
+
return attribute;
}
+ private void updateUseAttr(ReportPageAttrProvider attribute) {
+ attribute.setUseRepeat(isUseRepeat());
+ attribute.setUsePageFrozen(isUsePageFrozen());
+ attribute.setUseWriteFrozen(isUseWriteFrozen());
+ }
+
+ /**
+ * 是否使用填报冻结
+ *
+ * @return 使用则返回true
+ */
+ private boolean isUseWriteFrozen() {
+ return this.useWriteFrozenCCheckBox.isSelected()
+ || this.useWriteFrozenRCheckBox.isSelected();
+ }
+
+
+ /**
+ * 是否使用分页冻结
+ *
+ * @return 使用则返回true
+ */
+ private boolean isUsePageFrozen() {
+ return this.usePageHeadFrozenRCheckBox.isSelected()
+ || this.usePageHeadFrozenCCheckBox.isSelected()
+ || this.usePageFootFrozenRCheckBox.isSelected()
+ || this.usePageFootFrozenCCheckBox.isSelected();
+ }
+
+ /**
+ * 是否使用重复
+ *
+ * @return 使用返回true
+ */
+ private boolean isUseRepeat() {
+ return this.useRepeatTitleRCheckBox.isSelected()
+ || this.useRepeatFinisRCheckBox.isSelected()
+ || this.useRepeatTitleCCheckBox.isSelected()
+ || this.useRepeatFinisCCheckBox.isSelected();
+ }
+
/**
* 给内部的重复与冻结选项添加指定的边框
*
@@ -605,7 +653,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
attribute.setRepeatFooterRowFrom(finishFrom);
attribute.setRepeatFooterRowTo(finishTo);
- attribute.setUsePageFrozenRow(this.usePageHeadFrozenRCheckBox.isSelected() || this.usePageFootFrozenRCheckBox.isSelected());
+ attribute.setUsePageFrozenRow(this.usePageHeadFrozenRCheckBox.isSelected());
attribute.setUsePageFootFrozen(this.usePageFootFrozenRCheckBox.isSelected() || this.usePageFootFrozenCCheckBox.isSelected());
attribute.setUsePageFootRowFrozen(this.usePageFootFrozenRCheckBox.isSelected());
@@ -626,7 +674,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
attribute.setRepeatFooterColumnFrom(finishFrom);
attribute.setRepeatFooterColumnTo(finishTo);
- attribute.setUsePageFrozenColumn(this.usePageHeadFrozenCCheckBox.isSelected() || this.usePageFootFrozenCCheckBox.isSelected());
+ attribute.setUsePageFrozenColumn(this.usePageHeadFrozenCCheckBox.isSelected());
attribute.setUsePageFootFrozen(this.usePageFootFrozenRCheckBox.isSelected() || this.usePageFootFrozenCCheckBox.isSelected());
attribute.setUsePageFootColFrozen(this.usePageFootFrozenCCheckBox.isSelected());