Browse Source

Merge branch 'release/11.0' of ssh://code.fineres.com:7999/~carlson/design into release/11.0

newui
Carlson 2 years ago
parent
commit
57e49a7c23
  1. 4
      designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java
  2. 30
      designer-base/src/main/java/com/fr/design/mainframe/platform/ServicePlatformAction.java
  3. 10
      designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
  4. 14
      designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java
  5. 3
      designer-base/src/main/resources/com/fr/design/images/platform/platform_normal.svg
  6. 18
      designer-form/src/main/java/com/fr/design/designer/beans/models/ClipboardProvider.java
  7. 45
      designer-form/src/main/java/com/fr/design/designer/beans/models/DashboardClipboardManager.java
  8. 45
      designer-form/src/main/java/com/fr/design/designer/beans/models/FormSelectionClipboard.java
  9. 26
      designer-form/src/main/java/com/fr/design/designer/beans/models/SelectionModel.java
  10. 7
      designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormSingleWidgetCardPane.java
  11. 4
      designer-realize/src/main/java/com/fr/design/report/freeze/FormECRepeatAndFreezeSettingPane.java
  12. 2
      designer-realize/src/main/java/com/fr/design/report/freeze/FreezeAndRepeatPane.java
  13. 70
      designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java

4
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);
}
// 是否显示鸣谢面板

30
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"));
}
}

10
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);

14
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());
}

3
designer-base/src/main/resources/com/fr/design/images/platform/platform_normal.svg

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 6.5V10.5V12H10V6H12.9776C12.725 3.19675 10.369 1 7.5 1C4.63098 1 2.27504 3.19675 2.02242 6H5V12H2V14H6V13H9V16H6V15H1V12V11.5V10.5V6.5V6H1.01894C1.27426 2.64378 4.07839 0 7.5 0C10.9216 0 13.7257 2.64378 13.9811 6H14V6.5ZM13 10.5V7H11V11H13V10.5ZM2 10.5V7H4V11H2V10.5ZM7 15V14H8V15H7Z" fill="#333334"/>
</svg>

After

Width:  |  Height:  |  Size: 458 B

18
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);
}

45
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<ClipboardProvider> 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);
}
}
}

45
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);
}
}
}

26
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());
}
}

7
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());

4
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();
}
}

2
designer-realize/src/main/java/com/fr/design/report/freeze/FreezeAndRepeatPane.java

@ -87,7 +87,7 @@ public abstract class FreezeAndRepeatPane extends BasicBeanPane<FT> {
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());

70
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("<html><font color=gray>&nbsp"+ Toolkit.i18nText("Fine-Design_Report_Engine_Freeze_Tip") + "</font></html>"),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());

Loading…
Cancel
Save