Browse Source

Merge branch 'feature/x' of ssh://code.fineres.com:7999/~roger.chen/design into feature/x

feature/x
roger 7 months ago
parent
commit
5c062b072a
  1. 1
      designer-base/src/main/java/com/fr/design/data/datapane/connect/DatabaseConnectionPane.java
  2. 16
      designer-base/src/main/java/com/fr/design/deeplink/DeepLinkCore.java
  3. 8
      designer-base/src/main/java/com/fr/design/formula/FormulaPane.java
  4. 3
      designer-base/src/main/java/com/fr/design/gui/controlpane/JListControlPane.java
  5. 18
      designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java
  6. 54
      designer-base/src/main/java/com/fr/design/mainframe/chart/info/ChartInfoCollector.java
  7. 25
      designer-base/src/main/java/com/fr/design/mainframe/messagecollect/StartErrorMessageCollector.java
  8. 23
      designer-base/src/main/java/com/fr/design/mainframe/mobile/processor/AbstractMobileStyleDefinePaneCreator.java
  9. 40
      designer-base/src/main/java/com/fr/design/mainframe/mobile/processor/MobileStyleDefinePaneCreator.java
  10. 3
      designer-base/src/main/java/com/fr/design/utils/DesignUtils.java
  11. 9
      designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java
  12. 2
      designer-base/src/main/java/com/fr/widgettheme/designer/WidgetThemeDisplayAction.java
  13. 6
      designer-base/src/main/java/com/fr/widgettheme/theme/edit/ParamContainerStyleEditPane.java
  14. 12
      designer-base/src/main/java/com/fr/widgettheme/util/WidgetThemeDesignerUtils.java
  15. 2
      designer-base/src/main/resources/com/fr/design/i18n/dimension_en.properties
  16. 2
      designer-base/src/main/resources/com/fr/design/i18n/dimension_ja_JP.properties
  17. 2
      designer-base/src/main/resources/com/fr/design/i18n/dimension_ko_KR.properties
  18. 2
      designer-base/src/main/resources/com/fr/design/i18n/dimension_zh.properties
  19. 2
      designer-base/src/main/resources/com/fr/design/i18n/dimension_zh_TW.properties
  20. 4
      designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java
  21. 4
      designer-form/src/main/java/com/fr/design/widget/ui/designer/CheckBoxDefinePane.java
  22. 4
      designer-form/src/main/java/com/fr/design/widget/ui/designer/DateEditorDefinePane.java
  23. 4
      designer-form/src/main/java/com/fr/design/widget/ui/designer/DirectWriteEditorDefinePane.java
  24. 4
      designer-form/src/main/java/com/fr/design/widget/ui/designer/LabelDefinePane.java
  25. 4
      designer-form/src/main/java/com/fr/design/widget/ui/designer/NumberEditorDefinePane.java
  26. 4
      designer-form/src/main/java/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java
  27. 4
      designer-form/src/main/java/com/fr/design/widget/ui/designer/btn/ButtonGroupDefinePane.java
  28. 3
      designer-form/src/main/java/com/fr/design/widgettheme/processor/WidgetThemeCreatorPaneAdder.java
  29. 3
      designer-form/src/main/java/com/fr/design/widgettheme/processor/WidgetThemeParaCreatorPaneAdder.java
  30. 1
      designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java
  31. 1
      designer-realize/src/main/java/com/fr/design/widget/ui/btn/FreeButtonDetailPane.java
  32. 2
      designer-realize/src/main/java/com/fr/start/module/optimized/DesignerStartupPageActivator.java

1
designer-base/src/main/java/com/fr/design/data/datapane/connect/DatabaseConnectionPane.java

@ -462,6 +462,7 @@ public abstract class DatabaseConnectionPane<E extends com.fr.data.impl.Connecti
} catch (InterruptedException e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
} catch (ExecutionException e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
dealWithException(e);
}
}

16
designer-base/src/main/java/com/fr/design/deeplink/DeepLinkCore.java

@ -167,6 +167,22 @@ public class DeepLinkCore {
markPendingURLConsumed();
}
/**
* 符合条件的url才处理
*
* @param url 接收到的url
* @return true:处理; false:不处理
*/
public boolean accept(String url) {
UrlBean urlBean = UrlBean.create(url);
for (DeepLink deepLink: deepLinkList) {
if (deepLink.accept(urlBean.getUrl(), urlBean.getHost(), urlBean.getPath(), urlBean.getParams())) {
return true;
}
}
return false;
}
private void performDeepLinks(String url, String host, String path, Map<String, Object> params) {
SwingUtilities.invokeLater(new Runnable() {
@Override

8
designer-base/src/main/java/com/fr/design/formula/FormulaPane.java

@ -34,6 +34,7 @@ import com.fr.design.gui.itextarea.UITextArea;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants;
import com.fr.design.i18n.DesignSizeI18nManager;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.DesignerContext;
@ -742,7 +743,8 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula {
}
public BasicDialog showLargeWindow(Window window, DialogActionListener l) {
BasicDialog basicDialog = super.showWindowWithCustomSize(window, l, new Dimension(900, 600));
Dimension dimension = DesignSizeI18nManager.getInstance().i18nDimension(this.getClass().getName());
BasicDialog basicDialog = super.showWindowWithCustomSize(window, l, dimension);
basicDialog.setMinimumSize(new Dimension(900, 600));
basicDialog.setResizable(true);
return basicDialog;
@ -1196,7 +1198,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula {
private void initDescriptionTextArea() {
// Description
descriptionTextArea = new UITextArea(DESCRIPTION_TEXT_AREA_ROW,DESCRIPTION_TEXT_AREA_COLUMN);
descriptionTextArea = new UITextArea(DESCRIPTION_TEXT_AREA_ROW, DESCRIPTION_TEXT_AREA_COLUMN);
descriptionTextArea.setBackground(Color.white);
descriptionTextArea.setLineWrap(true);
descriptionTextArea.setWrapStyleWord(true);
@ -1282,7 +1284,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula {
desScrollPane.setBorder(null);
panel.add(this.createNamePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FormulaPane_Formula_Description") + ":", desScrollPane), BorderLayout.CENTER);
initVariablesTreeSelectionListener();
this.add(panel,BorderLayout.CENTER);
this.add(panel, BorderLayout.CENTER);
}
private void initComponents() {

3
designer-base/src/main/java/com/fr/design/gui/controlpane/JListControlPane.java

@ -17,6 +17,7 @@ import com.fr.stable.Nameable;
import com.fr.stable.StringUtils;
import com.fr.stable.core.PropertyChangeAdapter;
import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.Icon;
import javax.swing.JLabel;
@ -359,6 +360,8 @@ public abstract class JListControlPane extends JControlPane implements ListContr
setLayout(new BorderLayout());
this.textLabel = new JLabel();
this.iconLabel = new JLabel();
this.textLabel.setBorder(BorderFactory.createEmptyBorder(1, 0, 1, 1));
this.iconLabel.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 0));
add(this.textLabel, BorderLayout.CENTER);
add(this.iconLabel, BorderLayout.WEST);
this.iconLabel.setBackground(Color.WHITE);

18
designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java

@ -25,7 +25,6 @@ import com.fr.design.actions.edit.UndoAction;
import com.fr.design.actions.file.SaveAsTemplateAction;
import com.fr.design.actions.file.SaveTemplateAction;
import com.fr.design.actions.file.WebPreviewUtils;
import com.fr.widgettheme.designer.WidgetThemeDisplayAction;
import com.fr.design.base.mode.DesignModeContext;
import com.fr.design.data.datapane.TableDataTreePane;
import com.fr.design.designer.DesignerProxy;
@ -102,6 +101,7 @@ import com.fr.stable.Filter;
import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils;
import com.fr.stable.core.UUID;
import com.fr.widgettheme.designer.WidgetThemeDisplayAction;
import com.fr.workspace.WorkContext;
import com.fr.workspace.server.lock.TplOperator;
@ -879,7 +879,10 @@ public abstract class JTemplate<T extends BaseBook, U extends BaseUndoState<?>>
return saveAsTemplate(isShowLoc);
}
collectInfo();
return this.saveFile();
TemplateSaveInfoContext.getInstance().startCollect(template);
boolean result = this.saveFile();
TemplateSaveInfoContext.getInstance().stopCollect(result);
return result;
}
private boolean isCancelOperation(int operation) {
@ -968,7 +971,9 @@ public abstract class JTemplate<T extends BaseBook, U extends BaseUndoState<?>>
generateNewTemplateIdForSaveAs();
this.editingFILE = editingFILE;
TemplateSaveInfoContext.getInstance().startCollect(template);
boolean result = this.saveToNewFile(oldName);
TemplateSaveInfoContext.getInstance().stopCollect(result);
if (result) {
DesignerFrameFileDealerPane.getInstance().refresh();
collectInfoWhenSaveAs(originID);
@ -1783,6 +1788,8 @@ public abstract class JTemplate<T extends BaseBook, U extends BaseUndoState<?>>
CallbackSaveWorker worker = new CallbackSaveWorker(new Callable<Boolean>() {
@Override
public Boolean call() throws Exception {
TemplateSaveInfoContext.getInstance().startRecord();
TemplateSaveInfoContext.getInstance().collectInfo(template.suffix());
return saveAs(finalEditingFILE, sourceFile, oldName);
}
}, this);
@ -1946,6 +1953,13 @@ public abstract class JTemplate<T extends BaseBook, U extends BaseUndoState<?>>
@Override
public void saveDirectly() {
if (isSaving()) {
// 处理连按ctrl+s触发多线程保存的问题
// 这里为什么可以不用加锁而直接判断isSaving:
// 实测actionPerformed有线程安全的特性,同一时间只有一个AWT线程走到这里,setSaving是线程安全的(SaveTemplateAction.actionPerformed)
// 多线程场景是因为我们用了SwingWorker子线程处理保存
return;
}
new SaveTypeWorker(getSaveTypeCallable(), this) {
@Override
protected void done() {

54
designer-base/src/main/java/com/fr/design/mainframe/chart/info/ChartInfoCollector.java

@ -7,6 +7,7 @@ import com.fr.chartx.config.info.constant.ConfigType;
import com.fr.design.mainframe.burying.point.AbstractPointCollector;
import com.fr.design.mainframe.template.info.TemplateProcessInfo;
import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader;
@ -184,33 +185,44 @@ public class ChartInfoCollector extends AbstractPointCollector<ChartInfo> {
*/
@Override
public void collectInfo(String templateId, String originID, TemplateProcessInfo processInfo, int timeConsume) {
if (!shouldCollectInfo()) {
return;
}
if (StringUtils.isEmpty(originID)) {
originID = templateId;
}
boolean testTemplate = isTestTemplate(processInfo);
// 捕获RuntimeException,不中断保存模板核心逻辑,避免出现保存失败弹窗
try {
if (!shouldCollectInfo()) {
return;
}
if (StringUtils.isEmpty(originID)) {
originID = templateId;
}
boolean testTemplate = isTestTemplate(processInfo);
for (ChartInfo chartInfo : pointInfoMap.values()) {
if (originID.equals(chartInfo.getTemplateId())) {
chartInfo.setTemplateId(templateId);
chartInfo.setTestTemplate(testTemplate);
for (ChartInfo chartInfo : pointInfoMap.values()) {
if (chartInfo != null && originID.equals(chartInfo.getTemplateId())) {
chartInfo.setTemplateId(templateId);
chartInfo.setTestTemplate(testTemplate);
}
}
}
for (ChartInfo chartInfo : chartInfoCacheMap.values()) {
BaseBook book = chartInfo.getBook();
if ((book != null && templateId.equals(book.getTemplateID())) ||
originID.equals(chartInfo.getTemplateId())) {
chartInfo.setTemplateId(templateId);
chartInfo.setTestTemplate(testTemplate);
pointInfoMap.put(chartInfo.getChartId(), chartInfo);
for (ChartInfo chartInfo : chartInfoCacheMap.values()) {
if (chartInfo == null) {
continue;
}
BaseBook book = chartInfo.getBook();
if (accept(templateId, originID, chartInfo, book)) {
chartInfo.setTemplateId(templateId);
chartInfo.setTestTemplate(testTemplate);
pointInfoMap.put(chartInfo.getChartId(), chartInfo);
}
}
// 每次更新之后,都同步到暂存文件中
saveInfo();
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
// 每次更新之后,都同步到暂存文件中
saveInfo();
private static boolean accept(String templateId, String originID, ChartInfo chartInfo, BaseBook book) {
return (book != null && templateId.equals(book.getTemplateID())) ||
originID.equals(chartInfo.getTemplateId());
}
private boolean isTestTemplate(TemplateProcessInfo processInfo) {

25
designer-base/src/main/java/com/fr/design/mainframe/messagecollect/StartErrorMessageCollector.java

@ -1,5 +1,6 @@
package com.fr.design.mainframe.messagecollect;
import com.fr.concurrent.NamedThreadFactory;
import com.fr.design.DesignerEnvManager;
import com.fr.design.mainframe.errorinfo.ErrorInfo;
import com.fr.log.FineLoggerFactory;
@ -7,6 +8,9 @@ import com.fr.stable.StringUtils;
import com.fr.start.common.DesignerStartupContext;
import com.fr.workspace.WorkContext;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
*
* @author hades
@ -17,9 +21,11 @@ public class StartErrorMessageCollector {
private static final StartErrorMessageCollector INSTANCE = new StartErrorMessageCollector();
private ExecutorService executorService = Executors.newSingleThreadExecutor(new NamedThreadFactory(StartErrorMessageCollector.this.getClass()));
private String uuid;
private String activeKey;
private boolean extraJudgeStart = false;
public static StartErrorMessageCollector getInstance() {
return INSTANCE;
@ -37,12 +43,29 @@ public class StartErrorMessageCollector {
errorInfo.setLogid(id);
errorInfo.setLog(msg);
errorInfo.setStackTrace(detail);
errorInfo.setStarting(DesignerStartupContext.getInstance().isOnStartup());
errorInfo.setStarting(DesignerStartupContext.getInstance().isOnStartup() || extraJudgeStart);
errorInfo.setRemote(!WorkContext.getCurrent().isLocal());
errorInfo.saveAsJSON();
}
/**
* 异步记录
*/
public void asyncRecord(String id, String msg, String detail) {
executorService.submit(() -> {
record(id, msg, detail);
StartErrorMessageCollector.getInstance().setExtraJudgeStart(false);
});
}
public void record(String id, String msg) {
record(id, msg, StringUtils.EMPTY);
}
public void setExtraJudgeStart(boolean extraJudgeStart) {
this.extraJudgeStart = extraJudgeStart;
}
}

23
designer-base/src/main/java/com/fr/design/mainframe/mobile/processor/AbstractMobileStyleDefinePaneCreator.java

@ -0,0 +1,23 @@
package com.fr.design.mainframe.mobile.processor;
import com.fr.stable.fun.mark.API;
/**
* 移动端Form控件样式模板通用属性替换接口
*
* @author Coral.Chen
* @since 11.0
* Created on 2023/4/11
*/
@API(level = MobileStyleDefinePaneCreator.CURRENT_LEVEL)
public abstract class AbstractMobileStyleDefinePaneCreator implements MobileStyleDefinePaneCreator {
@Override
public int currentAPILevel() {
return CURRENT_LEVEL;
}
@Override
public int layerIndex() {
return DEFAULT_LAYER_INDEX;
}
}

40
designer-base/src/main/java/com/fr/design/mainframe/mobile/processor/MobileStyleDefinePaneCreator.java

@ -0,0 +1,40 @@
package com.fr.design.mainframe.mobile.processor;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.mainframe.mobile.ui.MobileStyleCustomDefinePane;
import com.fr.form.ui.Widget;
import com.fr.form.ui.mobile.MobileCommonExtraStyle;
import com.fr.form.ui.mobile.MobileStyle;
import com.fr.stable.fun.mark.Immutable;
import org.jetbrains.annotations.Nullable;
/**
* 移动端Form控件样式模板通用属性替换接口
*
* @author Coral.Chen
* @since 11.0
* Created on 2023/4/11
*/
public interface MobileStyleDefinePaneCreator extends Immutable {
String XML_TAG = "MobileStyleDefinePaneCreator";
int CURRENT_LEVEL = 1;
/**
* <p> 创建通用属性样式界面可替换{@link com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane}
* <p> 每种样式的通用属性面板是一样的
*
* @param widget 控件
* @param customDefinePane 自定义面板
* @param mobileStyle 移动端样式
* @return
*/
@Nullable BasicBeanPane<MobileStyle> createBaseBeanPane(Widget widget, Class<? extends MobileStyleCustomDefinePane> customDefinePane, Class<? extends MobileStyle> mobileStyle);
/**
* 替换通用属性面板注册额外属性
*
* @return 属性类
*/
@Nullable Class<? extends MobileCommonExtraStyle> classForCommonExtraStyle(Widget widget);
}

3
designer-base/src/main/java/com/fr/design/utils/DesignUtils.java

@ -27,7 +27,6 @@ import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import com.fr.stable.bridge.ObjectHolder;
import com.fr.stable.os.OperatingSystem;
import com.fr.stable.plugin.ExtraDesignClassManagerProvider;
import com.fr.start.ServerStarter;
import com.fr.start.common.DesignerStartupContext;
import com.fr.start.common.DesignerStartupUtil;
@ -238,7 +237,7 @@ public class DesignUtils {
DesignerContext.getDesignerFrame().openTemplate(new FileFILE(f));
}
});
} else {
} else if (DeepLinkCore.getInstance().accept(line)) {
String url = line;
UIUtil.invokeLaterIfNeeded(new Runnable() {
@Override

9
designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java

@ -1,6 +1,7 @@
package com.fr.startup.ui;
import com.fr.base.svg.IconUtils;
import com.fr.concurrent.NamedThreadFactory;
import com.fr.design.DesignerEnvManager;
import com.fr.design.dialog.UIExpandDialog;
import com.fr.design.gui.icontainer.UIScrollPane;
@ -8,6 +9,8 @@ import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.VerticalFlowLayout;
import com.fr.design.mainframe.messagecollect.StartErrorMessageCollector;
import com.fr.design.mainframe.messagecollect.entity.DesignerErrorMessage;
import com.fr.design.ui.util.UIUtil;
import com.fr.design.utils.ColorUtils;
import com.fr.design.utils.ThemeUtils;
@ -49,6 +52,8 @@ import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* 启动页
@ -253,6 +258,7 @@ public class StartupPageWindow extends JFrame {
try {
Void result = get();
setVisible(false);
StartErrorMessageCollector.getInstance().setExtraJudgeStart(false);
} catch (Exception e) {
// 处理错误
UIUtil.invokeLaterIfNeeded(() -> {
@ -269,6 +275,9 @@ public class StartupPageWindow extends JFrame {
setEnabled(true);
});
FineLoggerFactory.getLogger().error(e.getMessage(), e);
StartErrorMessageCollector.getInstance().asyncRecord(DesignerErrorMessage.UNEXCEPTED_START_FAILED.getId(),
DesignerErrorMessage.UNEXCEPTED_START_FAILED.getMessage(),
e.getMessage());
} finally {
loadingPanel.hide();
}

2
designer-base/src/main/java/com/fr/widgettheme/designer/WidgetThemeDisplayAction.java

@ -31,7 +31,7 @@ public class WidgetThemeDisplayAction<T extends JTemplate<?, ?>> extends JTempla
@Override
public void actionPerformed(ActionEvent e) {
final T jTemplate = getEditingComponent();
if (jTemplate == null) {
if (!JTemplate.isValid(jTemplate)) {
return;
}
BaseBook baseBook = jTemplate.getTarget();

6
designer-base/src/main/java/com/fr/widgettheme/theme/edit/ParamContainerStyleEditPane.java

@ -1,6 +1,8 @@
package com.fr.widgettheme.theme.edit;
import com.fr.base.theme.TemplateTheme;
import com.fr.base.theme.settings.AbstractThemedParamContainerStyle;
import com.fr.base.theme.settings.DefaultThemedParamContainerStyle;
import com.fr.widgettheme.theme.widget.style.ThemedParamContainerStyle;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.designer.IntervalConstants;
@ -52,8 +54,8 @@ public class ParamContainerStyleEditPane<T extends TemplateTheme> extends BasicB
@Override
public void populateBean(T t) {
ThemedParamContainerStyle paramContainerStyle = (ThemedParamContainerStyle) t.getParamContainerStyle();
if (paramContainerStyle == null) {
AbstractThemedParamContainerStyle paramContainerStyle = t.getParamContainerStyle();
if (paramContainerStyle == null || paramContainerStyle instanceof DefaultThemedParamContainerStyle) {
paramContainerStyle = new ThemedParamContainerStyle();
t.setParamContainerStyle(paramContainerStyle);
}

12
designer-base/src/main/java/com/fr/widgettheme/util/WidgetThemeDesignerUtils.java

@ -43,16 +43,4 @@ public class WidgetThemeDesignerUtils {
}
return false;
}
/**
* 判断当前widget是否为新多选下拉树控件
*/
public static boolean isNewComboBoxTreeEditor(Object widget) {
String className = widget.getClass().getName();
if (widget instanceof Class) {
className = ((Class) widget).getName();
}
return StringUtils.equals(className, "com.fr.plugin.widget.newcomboboxtree.NewComboBoxTreeEditor")
|| StringUtils.equals(className, "com.fr.plugin.widget.newcomboboxtree.XNewComboBoxTreeEditor");
}
}

2
designer-base/src/main/resources/com/fr/design/i18n/dimension_en.properties

@ -25,3 +25,5 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369
com.fr.design.report.WatermarkSettingPane=720*600
com.fr.design.file.MultiTemplateTabPane.popUpMenu=350*65
com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane=800*600
com.fr.design.formula.FormulaPane=900*600
com.fr.design.formula.FormulaPaneWhenReserveFormula=1200*600

2
designer-base/src/main/resources/com/fr/design/i18n/dimension_ja_JP.properties

@ -24,3 +24,5 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369
com.fr.design.report.WatermarkSettingPane=720*600
com.fr.design.file.MultiTemplateTabPane.popUpMenu=240*65
com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane=800*600
com.fr.design.formula.FormulaPane=900*600
com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600

2
designer-base/src/main/resources/com/fr/design/i18n/dimension_ko_KR.properties

@ -24,3 +24,5 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369
com.fr.design.report.WatermarkSettingPane=720*600
com.fr.design.file.MultiTemplateTabPane.popUpMenu=240*65
com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane=800*600
com.fr.design.formula.FormulaPane=900*600
com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600

2
designer-base/src/main/resources/com/fr/design/i18n/dimension_zh.properties

@ -24,3 +24,5 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.dialog=600*500
com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369
com.fr.design.report.WatermarkSettingPane=720*600
com.fr.design.file.MultiTemplateTabPane.popUpMenu=170*65
com.fr.design.formula.FormulaPane=900*600
com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600

2
designer-base/src/main/resources/com/fr/design/i18n/dimension_zh_TW.properties

@ -23,3 +23,5 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.dialog=600*500
com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369
com.fr.design.report.WatermarkSettingPane=720*600
com.fr.design.file.MultiTemplateTabPane.popUpMenu=170*65
com.fr.design.formula.FormulaPane=900*600
com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600

4
designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java

@ -1,5 +1,6 @@
package com.fr.design.widget.ui.designer;
import com.finebi.cbb.utils.CollectionUtils;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.designer.IntervalConstants;
@ -19,7 +20,6 @@ import com.fr.general.GeneralContext;
import com.fr.plugin.observer.PluginEvent;
import com.fr.plugin.observer.PluginEventListener;
import com.fr.stable.StableUtils;
import com.fr.stable.collections.CollectionUtils;
import org.jetbrains.annotations.NotNull;
import javax.swing.BorderFactory;
@ -67,7 +67,7 @@ public abstract class ButtonDefinePane<T extends Button> extends AbstractDataMod
private void refreshAdvancedPane() {
extraPaneList.clear();
WidgetThemeParaCreatorPaneAdder.add(creator, extraPaneList);
containsExtraPane = !CollectionUtils.isEmpty(extraPaneList);
containsExtraPane = CollectionUtils.isNotEmpty(extraPaneList);
Set<WidgetAdvancedPaneProvider<T>> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG);
for (WidgetAdvancedPaneProvider<T> provider : providers) {
if (!provider.accept(creator)) {

4
designer-form/src/main/java/com/fr/design/widget/ui/designer/CheckBoxDefinePane.java

@ -1,5 +1,6 @@
package com.fr.design.widget.ui.designer;
import com.finebi.cbb.utils.CollectionUtils;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.designer.IntervalConstants;
@ -18,7 +19,6 @@ import com.fr.form.ui.CheckBox;
import com.fr.general.GeneralContext;
import com.fr.plugin.observer.PluginEvent;
import com.fr.plugin.observer.PluginEventListener;
import com.fr.stable.collections.CollectionUtils;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
@ -79,7 +79,7 @@ public class CheckBoxDefinePane extends AbstractDataModify<CheckBox> {
protected void refreshExtraAdvancedPane() {
extraPaneList.clear();
WidgetThemeParaCreatorPaneAdder.add(creator, extraPaneList);
boolean containsExtraPane = !CollectionUtils.isEmpty(extraPaneList);
boolean containsExtraPane = CollectionUtils.isNotEmpty(extraPaneList);
Set<WidgetAdvancedPaneProvider<CheckBox>> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG);
for (WidgetAdvancedPaneProvider<CheckBox> provider : providers) {
if (!provider.accept(creator)) {

4
designer-form/src/main/java/com/fr/design/widget/ui/designer/DateEditorDefinePane.java

@ -1,5 +1,6 @@
package com.fr.design.widget.ui.designer;
import com.finebi.cbb.utils.CollectionUtils;
import com.fr.base.FRContext;
import com.fr.data.core.FormatField;
import com.fr.design.ExtraDesignClassManager;
@ -22,7 +23,6 @@ import com.fr.design.widget.ui.designer.date.DateFormatCheckManager;
import com.fr.design.widget.ui.designer.date.DateFormatCheckResult;
import com.fr.form.ui.DateEditor;
import com.fr.stable.ArrayUtils;
import com.fr.stable.collections.CollectionUtils;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
@ -101,7 +101,7 @@ public class DateEditorDefinePane extends DirectWriteEditorDefinePane<DateEditor
protected void refreshExtraAdvancedPane() {
extraPaneList.clear();
WidgetThemeParaCreatorPaneAdder.add(creator, extraPaneList);
boolean containsExtraPane = !CollectionUtils.isEmpty(extraPaneList);
boolean containsExtraPane = CollectionUtils.isNotEmpty(extraPaneList);
Set<WidgetAdvancedPaneProvider<DateEditor>> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG);
for (WidgetAdvancedPaneProvider<DateEditor> provider : providers) {
if (!provider.accept(creator)) {

4
designer-form/src/main/java/com/fr/design/widget/ui/designer/DirectWriteEditorDefinePane.java

@ -1,5 +1,6 @@
package com.fr.design.widget.ui.designer;
import com.finebi.cbb.utils.CollectionUtils;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.designer.IntervalConstants;
@ -13,7 +14,6 @@ import com.fr.design.widgettheme.processor.WidgetThemeParaCreatorPaneAdder;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.design.widget.ui.designer.component.FormWidgetValuePane;
import com.fr.form.ui.DirectWriteEditor;
import com.fr.stable.collections.CollectionUtils;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
@ -69,7 +69,7 @@ public abstract class DirectWriteEditorDefinePane<T extends DirectWriteEditor> e
protected void refreshExtraAdvancedPane() {
extraPaneList.clear();
WidgetThemeParaCreatorPaneAdder.add(creator, extraPaneList);
boolean containsExtraPane = !CollectionUtils.isEmpty(extraPaneList);
boolean containsExtraPane = CollectionUtils.isNotEmpty(extraPaneList);
Set<WidgetAdvancedPaneProvider<T>> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG);
for (WidgetAdvancedPaneProvider<T> provider : providers) {
if (!provider.accept(creator)) {

4
designer-form/src/main/java/com/fr/design/widget/ui/designer/LabelDefinePane.java

@ -1,5 +1,6 @@
package com.fr.design.widget.ui.designer;
import com.finebi.cbb.utils.CollectionUtils;
import com.fr.base.BaseUtils;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.beans.BasicBeanPane;
@ -23,7 +24,6 @@ import com.fr.general.GeneralContext;
import com.fr.plugin.observer.PluginEvent;
import com.fr.plugin.observer.PluginEventListener;
import com.fr.stable.Constants;
import com.fr.stable.collections.CollectionUtils;
import javax.swing.BorderFactory;
import javax.swing.Icon;
@ -112,7 +112,7 @@ public class LabelDefinePane extends AbstractDataModify<Label> {
protected void refreshExtraAdvancedPane() {
extraPaneList.clear();
WidgetThemeParaCreatorPaneAdder.add(creator, extraPaneList);
boolean containsExtraPane = !CollectionUtils.isEmpty(extraPaneList);
boolean containsExtraPane = CollectionUtils.isNotEmpty(extraPaneList);
Set<WidgetAdvancedPaneProvider<Label>> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG);
for (WidgetAdvancedPaneProvider<Label> provider : providers) {
if (!provider.accept(creator)) {

4
designer-form/src/main/java/com/fr/design/widget/ui/designer/NumberEditorDefinePane.java

@ -1,5 +1,6 @@
package com.fr.design.widget.ui.designer;
import com.finebi.cbb.utils.CollectionUtils;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.designer.IntervalConstants;
@ -14,7 +15,6 @@ import com.fr.design.widgettheme.processor.WidgetThemeParaCreatorPaneAdder;
import com.fr.design.widget.component.NumberEditorValidatePane;
import com.fr.design.widget.ui.designer.component.FormWidgetValuePane;
import com.fr.form.ui.NumberEditor;
import com.fr.stable.collections.CollectionUtils;
import javax.swing.JComponent;
import javax.swing.JFormattedTextField;
@ -77,7 +77,7 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor>
protected void refreshExtraAdvancedPane() {
extraPaneList.clear();
WidgetThemeParaCreatorPaneAdder.add(creator, extraPaneList);
boolean containsExtraPane = !CollectionUtils.isEmpty(extraPaneList);
boolean containsExtraPane = CollectionUtils.isNotEmpty(extraPaneList);
Set<WidgetAdvancedPaneProvider<NumberEditor>> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG);
for (WidgetAdvancedPaneProvider<NumberEditor> provider : providers) {
if (!provider.accept(creator)) {

4
designer-form/src/main/java/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java

@ -1,5 +1,6 @@
package com.fr.design.widget.ui.designer;
import com.finebi.cbb.utils.CollectionUtils;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.designer.IntervalConstants;
@ -17,7 +18,6 @@ import com.fr.design.widget.ui.designer.component.FormWidgetValuePane;
import com.fr.form.ui.TextEditor;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import com.fr.stable.collections.CollectionUtils;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
@ -88,7 +88,7 @@ public class TextFieldEditorDefinePane extends FieldEditorDefinePane<TextEditor>
protected void refreshExtraAdvancedPane() {
extraPaneList.clear();
WidgetThemeParaCreatorPaneAdder.add(creator, extraPaneList);
boolean containsExtraPane = !CollectionUtils.isEmpty(extraPaneList);
boolean containsExtraPane = CollectionUtils.isNotEmpty(extraPaneList);
Set<WidgetAdvancedPaneProvider<TextEditor>> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG);
for (WidgetAdvancedPaneProvider<TextEditor> provider : providers) {
if (!provider.accept(creator)) {

4
designer-form/src/main/java/com/fr/design/widget/ui/designer/btn/ButtonGroupDefinePane.java

@ -1,5 +1,6 @@
package com.fr.design.widget.ui.designer.btn;
import com.finebi.cbb.utils.CollectionUtils;
import com.fr.data.Dictionary;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.beans.BasicBeanPane;
@ -16,7 +17,6 @@ import com.fr.design.widget.ui.designer.ButtonGroupDictPane;
import com.fr.design.widget.ui.designer.FieldEditorDefinePane;
import com.fr.design.widget.ui.designer.component.FormWidgetValuePane;
import com.fr.form.ui.ButtonGroup;
import com.fr.stable.collections.CollectionUtils;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
@ -71,7 +71,7 @@ public abstract class ButtonGroupDefinePane<T extends ButtonGroup> extends Field
protected void refreshExtraAdvancedPane() {
extraPaneList.clear();
WidgetThemeParaCreatorPaneAdder.add(creator, extraPaneList);
boolean containsExtraPane = !CollectionUtils.isEmpty(extraPaneList);
boolean containsExtraPane = CollectionUtils.isNotEmpty(extraPaneList);
Set<WidgetAdvancedPaneProvider<T>> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG);
for (WidgetAdvancedPaneProvider<T> provider : providers) {
if (!provider.accept(creator)) {

3
designer-form/src/main/java/com/fr/design/widgettheme/processor/WidgetThemeCreatorPaneAdder.java

@ -24,6 +24,7 @@ import com.fr.design.widgettheme.common.ButtonSettingPane;
import com.fr.design.widgettheme.common.EditorSettingPane;
import com.fr.design.widgettheme.common.NormalButtonSettingPane;
import com.fr.design.widgettheme.common.TreeEditorSettingPane;
import com.fr.widgettheme.utils.WidgetThemeServerUtils;
import java.util.Arrays;
import java.util.HashSet;
@ -88,7 +89,7 @@ public class WidgetThemeCreatorPaneAdder {
}
private static <T> void acceptEditor(Class<?> creator, List<BasicBeanPane<T>> extraPaneList) {
boolean accept = WidgetThemeDesignerUtils.isNewComboBoxTreeEditor(creator) || EDITOR_SET.contains(creator);
boolean accept = WidgetThemeServerUtils.isNewComboBoxTreeEditor(creator) || EDITOR_SET.contains(creator);
if (accept) {
insertShortCut(extraPaneList, new EditorSettingPane<>());
}

3
designer-form/src/main/java/com/fr/design/widgettheme/processor/WidgetThemeParaCreatorPaneAdder.java

@ -21,6 +21,7 @@ import com.fr.design.widgettheme.ParaEditorSettingPane;
import com.fr.design.widgettheme.ParaTreeEditorSettingPane;
import com.fr.widgettheme.ParameterBackgroundStyleSettingPane;
import com.fr.design.widgettheme.common.NormalButtonSettingPane;
import com.fr.widgettheme.utils.WidgetThemeServerUtils;
import java.util.List;
@ -64,7 +65,7 @@ public class WidgetThemeParaCreatorPaneAdder {
|| creator instanceof XComboBox
|| creator instanceof XDateEditor
|| creator instanceof XTreeComboBoxEditor
|| WidgetThemeDesignerUtils.isNewComboBoxTreeEditor(creator);
|| WidgetThemeServerUtils.isNewComboBoxTreeEditor(creator);
if (accept) {
insertShortCut(extraPaneList, new ParaEditorSettingPane<>());
}

1
designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java

@ -16,7 +16,6 @@ import com.fr.general.GeneralContext;
import com.fr.plugin.observer.PluginEvent;
import com.fr.plugin.observer.PluginEventListener;
import com.fr.stable.collections.CollectionUtils;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import java.awt.Component;

1
designer-realize/src/main/java/com/fr/design/widget/ui/btn/FreeButtonDetailPane.java

@ -41,5 +41,4 @@ public class FreeButtonDetailPane extends AbstractExtraButtonPane<FreeButton> {
public Class classType() {
return FreeButton.class;
}
}

2
designer-realize/src/main/java/com/fr/start/module/optimized/DesignerStartupPageActivator.java

@ -2,6 +2,7 @@ package com.fr.start.module.optimized;
import com.fr.design.DesignerEnvManager;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.messagecollect.StartErrorMessageCollector;
import com.fr.design.ui.util.UIUtil;
import com.fr.log.FineLoggerFactory;
import com.fr.module.Activator;
@ -164,6 +165,7 @@ public class DesignerStartupPageActivator extends Activator {
UIUtil.invokeLaterIfNeeded(() -> {
// 换到 awt 线程中关闭,不然异步会出现问题。
DesignerStartupContext.getInstance().setOnStartup(false);
StartErrorMessageCollector.getInstance().setExtraJudgeStart(true);
recordStartupEnd(stopWatch);
});
markComplete();

Loading…
Cancel
Save