diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index d0ffd7f22c..4a0d1f665e 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -61,6 +61,7 @@ import com.fr.stable.ArrayUtils; import com.fr.stable.ParameterProvider; import com.fr.stable.StringUtils; import com.fr.workspace.WorkContext; +import org.jetbrains.annotations.NotNull; import javax.swing.BorderFactory; import javax.swing.Box; @@ -416,10 +417,7 @@ public class DBTableDataPane extends AbstractTableDataPane implemen } private void checkParameter() { - String[] paramTexts = new String[2]; - paramTexts[0] = this.sqlTextPane.getText(); - paramTexts[1] = this.pageQuery; - Parameter[] parameters = ParameterHelper.analyze4Parameters(paramTexts, false); + Parameter[] parameters = getParameters(); if (parameters.length < 1 && this.editorPane.update().size() < 1) { return; @@ -443,6 +441,14 @@ public class DBTableDataPane extends AbstractTableDataPane implemen refreshParameters(); } + @NotNull + private Parameter[] getParameters() { + String[] paramTexts = new String[2]; + paramTexts[0] = SqlUtils.clearSqlComments(this.sqlTextPane.getText()); + paramTexts[1] = SqlUtils.clearSqlComments(this.pageQuery); + return ParameterHelper.analyze4Parameters(paramTexts, false); + } + @Override public void populateBean(DBTableData dbTableData) { this.dbTableData = dbTableData; diff --git a/designer-base/src/main/java/com/fr/design/extra/PluginOperateUtils.java b/designer-base/src/main/java/com/fr/design/extra/PluginOperateUtils.java index d2f1bcc3c2..aa506e679f 100644 --- a/designer-base/src/main/java/com/fr/design/extra/PluginOperateUtils.java +++ b/designer-base/src/main/java/com/fr/design/extra/PluginOperateUtils.java @@ -153,9 +153,9 @@ public class PluginOperateUtils { public void run() { PluginMarker pluginMarker = PluginUtils.createPluginMarker(pluginInfo); PluginContext plugin = PluginManager.getContext(pluginMarker); - boolean isRunning = plugin.isRunning(); - PluginTaskCallback modifyStatusCallback = new ModifyStatusCallback(isRunning, jsCallback); - changePluginActive(isRunning, pluginMarker, modifyStatusCallback, plugin); + boolean running = plugin.isRunning() || plugin.isPrepare(); + PluginTaskCallback modifyStatusCallback = new ModifyStatusCallback(running, jsCallback); + changePluginActive(running, pluginMarker, modifyStatusCallback, plugin); } }); } diff --git a/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java b/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java index f12f8f8446..85dc24afde 100644 --- a/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java +++ b/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java @@ -270,8 +270,8 @@ public class PluginUtils { jo.put("vendor", pluginContext.getVendor()); jo.put("price", pluginContext.getPrice()); jo.put("requiredJarTime", pluginContext.getRequiredJarTime()); - // 前端需求的active实际上是插件的运行状态,通过isRunning()获取 - jo.put("active", pluginContext.isRunning()); + // 前端需求的active实际上是插件的运行状态,通过isRunning()或isPrepare()获取 + jo.put("active", pluginContext.isRunning() || pluginContext.isPrepare()); jo.put("hidden", pluginContext.isHidden()); jo.put("free", pluginContext.isFree()); jo.put("licDamaged", pluginContext.isLicDamaged()); diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/DesktopWidgetStyleEditPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/DesktopWidgetStyleEditPane.java index 7cfebf316a..aca4b690de 100644 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/DesktopWidgetStyleEditPane.java +++ b/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/DesktopWidgetStyleEditPane.java @@ -5,12 +5,14 @@ import com.fr.base.theme.TemplateTheme; import com.fr.design.style.color.NewColorSelectBox; import com.fr.widgettheme.theme.widget.style.BorderStyle; import com.fr.widgettheme.theme.widget.style.ButtonBackgroundStyle; +import com.fr.widgettheme.theme.widget.style.ThemeTextStyle; import com.fr.widgettheme.theme.widget.style.ThemedWidgetStyle; import com.fr.design.gui.ibutton.UIRadioButton; import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.widgettheme.theme.widget.theme.WidgetThemeDisplayConstants; +import com.fr.widgettheme.util.ThemeTextStylePaneCreator; import javax.swing.ButtonGroup; import javax.swing.JPanel; @@ -52,7 +54,7 @@ public class DesktopWidgetStyleEditPane extends WidgetS new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Style")), stylePane}, new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Border_Line")), lineComboBox}, new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Border_Radius")), borderRadiusSpinner}, - new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Text_Style")), textStylePane}, + new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Text_Style")), ThemeTextStylePaneCreator.create(fontSizePane, fontColorButton)}, new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Background_Select_Box")), selectBackgroundColorBox} }; } @@ -86,7 +88,8 @@ public class DesktopWidgetStyleEditPane extends WidgetS colorSelectBox.setSelectObject(style.getThemeColor()); lineComboBox.setSelectedLineStyle(style.getBorderStyle().getLineType()); borderRadiusSpinner.setValue(style.getBorderStyle().getRadius()); - textStylePane.setTextStyle(style.getTextStyle()); + fontSizePane.setValue(style.getTextStyle().getFontSize()); + fontColorButton.setColor(style.getTextStyle().getFontColor()); selectBackgroundColorBox.setSelectObject(style.getSelectBackgroundColor()); } @@ -102,7 +105,10 @@ public class DesktopWidgetStyleEditPane extends WidgetS borderStyle.setLineType(lineComboBox.getSelectedLineStyle()); borderStyle.setRadius((int) borderRadiusSpinner.getValue()); style.setBorderStyle(borderStyle); - style.setTextStyle(textStylePane.getTextStyle()); + ThemeTextStyle textStyle = new ThemeTextStyle(); + textStyle.setFontSize(fontSizePane.getValue()); + textStyle.setFontColor(fontColorButton.getColor()); + style.setTextStyle(textStyle); ButtonBackgroundStyle buttonBackgroundStyle = new ButtonBackgroundStyle(); ColorBackground buttonBackground = ColorBackground.getInstance(style.getThemeColor()); buttonBackgroundStyle.setInitialBackground(buttonBackground); diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/MobileWidgetStyleEditPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/MobileWidgetStyleEditPane.java index 228dce7b26..ec6ef9aebb 100644 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/MobileWidgetStyleEditPane.java +++ b/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/MobileWidgetStyleEditPane.java @@ -1,10 +1,11 @@ package com.fr.widgettheme.theme.edit.widget; import com.fr.base.theme.TemplateTheme; -import com.fr.widgettheme.theme.panel.WidgetTextStylePane; +import com.fr.design.gui.frpane.FontSizeComboPane; import com.fr.widgettheme.theme.widget.style.BorderStyle; import com.fr.widgettheme.theme.widget.style.MobileThemedWidgetStyle; import com.fr.design.gui.icombobox.LineComboBox; +import com.fr.widgettheme.theme.widget.style.ThemeTextStyle; import com.fr.widgettheme.theme.widget.theme.WidgetThemeDisplayConstants; import java.util.Arrays; @@ -38,8 +39,8 @@ public class MobileWidgetStyleEditPane extends WidgetSt } @Override - protected void initTextStylePane() { - textStylePane = new WidgetTextStylePane(FONT_SIZES, 140); + protected void initFontSizePane() { + fontSizePane = new FontSizeComboPane(FONT_SIZES); } @Override @@ -52,7 +53,8 @@ public class MobileWidgetStyleEditPane extends WidgetSt colorSelectBox.setSelectObject(style.getThemeColor()); lineComboBox.setSelectedLineStyle(style.getBorderStyle().getLineType()); borderRadiusSpinner.setValue(style.getBorderStyle().getRadius()); - textStylePane.setTextStyle(style.getTextStyle()); + fontSizePane.setValue(style.getTextStyle().getFontSize()); + fontColorButton.setColor(style.getTextStyle().getFontColor()); } @Override @@ -67,7 +69,10 @@ public class MobileWidgetStyleEditPane extends WidgetSt borderStyle.setLineType(lineComboBox.getSelectedLineStyle()); borderStyle.setRadius((int) borderRadiusSpinner.getValue()); style.setBorderStyle(borderStyle); - style.setTextStyle(textStylePane.getTextStyle()); + ThemeTextStyle textStyle = new ThemeTextStyle(); + textStyle.setFontSize(fontSizePane.getValue()); + textStyle.setFontColor(fontColorButton.getColor()); + style.setTextStyle(textStyle); } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditPane.java index 92300b00b9..1c8ab2ff14 100644 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditPane.java +++ b/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditPane.java @@ -3,6 +3,8 @@ package com.fr.widgettheme.theme.edit.widget; import com.fr.base.theme.TemplateTheme; import com.fr.design.beans.BasicBeanPane; import com.fr.design.designer.IntervalConstants; +import com.fr.design.gui.frpane.FontSizeComboPane; +import com.fr.design.gui.ibutton.UIColorButton; import com.fr.design.gui.icombobox.LineComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; @@ -13,8 +15,8 @@ import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.style.color.NewColorSelectBox; import com.fr.stable.StringUtils; -import com.fr.widgettheme.theme.panel.WidgetTextStylePane; import com.fr.widgettheme.theme.widget.theme.WidgetThemeDisplayConstants; +import com.fr.widgettheme.util.ThemeTextStylePaneCreator; import org.jetbrains.annotations.Nullable; import javax.swing.BorderFactory; @@ -42,7 +44,9 @@ public class WidgetStyleEditPane extends BasicBeanPane< /** * 文本样式面板 */ - protected WidgetTextStylePane textStylePane; + protected FontSizeComboPane fontSizePane; + + protected UIColorButton fontColorButton; public WidgetStyleEditPane() { initComponents(); @@ -72,7 +76,7 @@ public class WidgetStyleEditPane extends BasicBeanPane< new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Color")), colorSelectBox}, new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Border_Line")), lineComboBox}, new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Border_Radius")), borderRadiusSpinner}, - new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Text_Style")), textStylePane} + new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Text_Style")), ThemeTextStylePaneCreator.create(fontSizePane, fontColorButton)} }; } @@ -81,12 +85,12 @@ public class WidgetStyleEditPane extends BasicBeanPane< colorSelectBox.setSelectObject(WidgetThemeDisplayConstants.DEFAULT_THEME_COLOR); initLineBox(); borderRadiusSpinner = new UISpinner(0, Integer.MAX_VALUE, 1); - initTextStylePane(); - textStylePane.setFontSizeValue(16); + initFontSizePane(); + fontColorButton = new UIColorButton(); } - protected void initTextStylePane() { - textStylePane = new WidgetTextStylePane(FRFontPane.getFontSizes(), WidgetThemeDisplayConstants.THEME_WIDGET_COMPONENT_WIDTH); + protected void initFontSizePane() { + fontSizePane = new FontSizeComboPane(FRFontPane.getFontSizes()); } /** diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetTextStylePane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetTextStylePane.java deleted file mode 100644 index 896b33c282..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetTextStylePane.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.fr.widgettheme.theme.panel; - -import com.fr.design.gui.ibutton.UIColorButton; -import com.fr.design.gui.frpane.FontSizeComboPane; -import com.fr.widgettheme.theme.widget.style.ThemeTextStyle; - -import javax.swing.BorderFactory; -import javax.swing.JPanel; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.util.Vector; - -/** - * 控件文本样式配置面板 - * 包含文本字体大小和字体颜色 - * - * @author oBo - * @since 11.0 - * Created on 2023/12/13 - */ -public class WidgetTextStylePane extends JPanel { - - private final FontSizeComboPane fontSizePane; - - private final UIColorButton fontColorButton; - - public WidgetTextStylePane(int preferredWidth) { - this(null, preferredWidth); - } - - public WidgetTextStylePane(Vector fontSizes, int preferredWidth) { - this.setLayout(new FlowLayout(FlowLayout.LEFT)); - this.setBorder(BorderFactory.createEmptyBorder()); - fontSizePane = new FontSizeComboPane(fontSizes); - fontColorButton = new UIColorButton(); - fontSizePane.setPreferredSize(new Dimension(preferredWidth, fontSizePane.getPreferredSize().height)); - this.add(fontSizePane); - this.add(fontColorButton); - } - - public void setTextStyle(ThemeTextStyle themeTextStyle) { - this.fontSizePane.setValue(themeTextStyle.getFontSize()); - this.fontColorButton.setColor(themeTextStyle.getFontColor()); - } - - public ThemeTextStyle getTextStyle() { - ThemeTextStyle themeTextStyle = new ThemeTextStyle(); - themeTextStyle.setFontSize(this.fontSizePane.getValue()); - themeTextStyle.setFontColor(this.fontColorButton.getColor()); - return themeTextStyle; - } - - public void setFontSizeValue(int fontSize) { - this.fontSizePane.setValue(fontSize); - } - - public void setFontColorValue(Color fontColor) { - this.fontColorButton.setColor(fontColor); - } - - public int getFontSizeValue() { - return this.fontSizePane.getValue(); - } - - public Color getFontColorValue() { - return this.fontColorButton.getColor(); - } - -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/util/ThemeTextStylePaneCreator.java b/designer-base/src/main/java/com/fr/widgettheme/util/ThemeTextStylePaneCreator.java new file mode 100644 index 0000000000..133f258646 --- /dev/null +++ b/designer-base/src/main/java/com/fr/widgettheme/util/ThemeTextStylePaneCreator.java @@ -0,0 +1,40 @@ +package com.fr.widgettheme.util; + +import com.fr.design.gui.frpane.FontSizeComboPane; +import com.fr.design.gui.ibutton.UIColorButton; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; + +import javax.swing.Box; +import javax.swing.JPanel; +import java.awt.Component; + +/** + * 创建主题文本样式的工具类 + * + * @author obo + * @since 11.0 + * Created on 2023/12/21 + */ +public class ThemeTextStylePaneCreator { + private ThemeTextStylePaneCreator() {} + + /** + * 创建主题文本样式配置面板 + * 包含字体大小下拉框和字体颜色按钮 + * 可以自适应布局 + * + * @param fontSizePane 字体大小配置 + * @param fontColorButton 字体颜色配置 + * @return 文本样式面板 + */ + public static JPanel create(FontSizeComboPane fontSizePane, UIColorButton fontColorButton) { + Component[][] components = {{fontSizePane, Box.createHorizontalStrut(5), fontColorButton}}; + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + double[] rowSize = {f}; + double[] columnSize = {f, p, p}; + int[][] rowCount = {{1, 1, 1}}; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 0, 0); + } +} diff --git a/designer-base/src/test/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPaneTest.java b/designer-base/src/test/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPaneTest.java new file mode 100644 index 0000000000..e549f13461 --- /dev/null +++ b/designer-base/src/test/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPaneTest.java @@ -0,0 +1,41 @@ +package com.fr.design.data.tabledata.tabledatapane; + +import com.fr.base.Parameter; +import com.fr.design.data.datapane.sqlpane.SQLEditPane; +import com.fr.invoke.Reflect; +import junit.framework.TestCase; +import org.junit.Assert; + +/** + * @author Yuan.Wang + * @since 11.0 + * Created on 2023/12/22 + */ +public class DBTableDataPaneTest extends TestCase { + + public void testGetParameters() { + DBTableDataPane pane = new DBTableDataPane(); + SQLEditPane editPane = new SQLEditPane(); + String sql = "select distinct 类别ID from S产品\n" + + "where 1=1\n" + + "order by 类别ID\n" + + "--${ if(len(comboBox0) = 0,\"\",\"AND 类别00ID = '\" + comboBox0 + \"'\")}"; + + String sql1 = "select distinct 类别ID from S产品\n" + + "where 1=1\n" + + "order by 类别ID\n" + + "${ if(len(comboBox0) = 0,\"\",\"AND 类别00ID = '\" + comboBox0 + \"'\")}"; + editPane.setText(sql); + Reflect.on(pane).set("sqlTextPane", editPane); + Reflect.on(pane).set("pageQuery", sql); + + Parameter[] parameters = Reflect.on(pane).call("getParameters").get(); + + Assert.assertEquals(0, parameters.length); + editPane.setText(sql1); + + parameters = Reflect.on(pane).call("getParameters").get(); + Assert.assertEquals(1, parameters.length); + Assert.assertEquals(parameters[0].getName(), "comboBox0"); + } +} \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/widgettheme/BaseStyleSettingPane.java b/designer-form/src/main/java/com/fr/design/widgettheme/BaseStyleSettingPane.java index 06c3f24880..b651b9373b 100644 --- a/designer-form/src/main/java/com/fr/design/widgettheme/BaseStyleSettingPane.java +++ b/designer-form/src/main/java/com/fr/design/widgettheme/BaseStyleSettingPane.java @@ -1,7 +1,8 @@ package com.fr.design.widgettheme; import com.fr.base.theme.TemplateTheme; -import com.fr.widgettheme.theme.panel.WidgetTextStylePane; +import com.fr.design.gui.frpane.FontSizeComboPane; +import com.fr.design.gui.ibutton.UIColorButton; import com.fr.widgettheme.theme.widget.style.BorderStyle; import com.fr.widgettheme.theme.widget.style.ThemeTextStyle; import com.fr.widgettheme.theme.widget.style.ThemedWidgetStyle; @@ -25,11 +26,13 @@ import com.fr.form.ui.Widget; import com.fr.general.FRFont; import com.fr.widgettheme.theme.panel.ButtonStyleDefinedPane; import com.fr.widgettheme.theme.widget.theme.WidgetThemeDisplayConstants; +import com.fr.widgettheme.util.ThemeTextStylePaneCreator; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JPanel; import java.awt.BorderLayout; +import java.awt.Color; import java.awt.Component; import java.util.HashMap; import java.util.List; @@ -63,12 +66,18 @@ public abstract class BaseStyleSettingPane extends BasicBeanPa protected FRFontPane frFontPane; // 按钮背景设置 protected ButtonStyleDefinedPane buttonStyleDefinedPane; + + protected NewColorSelectBox selectBgColorBox; + /** - * 文本样式 - * 包含字体大小、字体颜色 + * 主题文本样式的字体大小 */ - protected WidgetTextStylePane textStylePane; - protected NewColorSelectBox selectBgColorBox; + protected FontSizeComboPane fontSizePane; + + /** + * 主题文本样式的字体颜色 + */ + protected UIColorButton fontColorButton; private final Map labelMap = new HashMap<>(); private final Map paneMap = new HashMap<>(); @@ -94,12 +103,13 @@ public abstract class BaseStyleSettingPane extends BasicBeanPa borderRadiusSpinner = new UIBoundSpinner(0, Integer.MAX_VALUE, 1); frFontPane = new FRFontPane(); buttonStyleDefinedPane = new ButtonStyleDefinedPane(); - textStylePane = new WidgetTextStylePane(100); selectBgColorBox = new NewColorSelectBox(160, true); + fontSizePane = new FontSizeComboPane(); + fontColorButton = new UIColorButton(); paneMap.put(StyleSetting.STYLE_TYPE, createStyleTypePane()); paneMap.put(StyleSetting.THEME_COLOR, colorSelectBox); paneMap.put(StyleSetting.LINE_TYPE, lineComboBox); - paneMap.put(StyleSetting.TEXT_STYLE, textStylePane); + paneMap.put(StyleSetting.TEXT_STYLE, ThemeTextStylePaneCreator.create(fontSizePane, fontColorButton)); paneMap.put(StyleSetting.BORDER_RADIUS, borderRadiusSpinner); paneMap.put(StyleSetting.FONT, frFontPane); paneMap.put(StyleSetting.BTN_BACKGROUND, buttonStyleDefinedPane); @@ -207,7 +217,7 @@ public abstract class BaseStyleSettingPane extends BasicBeanPa setLineComboBox(widgetStyle); setBorderRadiusSpinner(widgetStyle); setTextStylePane(widgetStyle); - setFrFontPane(); + setFrFontPane(widgetStyle); setButtonStyleDefinedPane(widgetStyle); setSelectBgColor(widgetStyle); } @@ -242,12 +252,14 @@ public abstract class BaseStyleSettingPane extends BasicBeanPa } private void setTextStylePane(ThemedWidgetStyle widgetStyle) { - this.textStylePane.setTextStyle(widgetStyle.getTextStyle()); + ThemeTextStyle textStyle = widgetStyle.getTextStyle(); + this.fontSizePane.setValue(textStyle.getFontSize()); + this.fontColorButton.setColor(textStyle.getFontColor()); } - private void setFrFontPane() { + private void setFrFontPane(ThemedWidgetStyle widgetStyle) { if (frFontPane != null) { - frFontPane.populateBean(FRFont.getInstance()); + frFontPane.populateBean(widgetStyle.getFontStyle().getFont()); } } @@ -269,8 +281,11 @@ public abstract class BaseStyleSettingPane extends BasicBeanPa if (borderRadiusSpinner != null) { borderRadiusSpinner.setValue(BorderStyle.DEFAULT_BORDER_RADIUS); } - if (textStylePane != null) { - textStylePane.setTextStyle(new ThemeTextStyle()); + if (fontSizePane != null) { + fontSizePane.setValue(ThemeTextStyle.DEFAULT_FONT_SIZE); + } + if (fontColorButton != null) { + fontColorButton.setColor(Color.BLACK); } if (frFontPane != null) { frFontPane.populateBean(FRFont.getInstance()); diff --git a/designer-form/src/main/java/com/fr/design/widgettheme/ParaButtonSettingPane.java b/designer-form/src/main/java/com/fr/design/widgettheme/ParaButtonSettingPane.java index 0ba714d8df..084e183abe 100644 --- a/designer-form/src/main/java/com/fr/design/widgettheme/ParaButtonSettingPane.java +++ b/designer-form/src/main/java/com/fr/design/widgettheme/ParaButtonSettingPane.java @@ -2,6 +2,7 @@ package com.fr.design.widgettheme; import com.fr.design.widgettheme.common.ButtonSettingPane; import com.fr.form.ui.Widget; +import com.fr.widgettheme.theme.widget.style.ThemeTextStyle; import com.fr.widgettheme.theme.widget.theme.ParaButtonTheme; import com.fr.widgettheme.theme.widget.theme.cell.ButtonTheme; @@ -32,14 +33,18 @@ public class ParaButtonSettingPane extends ButtonSettingPane extends EditorSettingPane extends TreeEditorS @Override protected void assignFontSizePane(TreeTheme widgetTheme) { - ParaTreeTheme paraTreeTheme= (ParaTreeTheme) widgetTheme; - textStylePane.setTextStyle(paraTreeTheme.getTextStyle()); + ThemeTextStyle textStyle = widgetTheme.getTextStyle(); + fontSizePane.setValue(textStyle.getFontSize()); + fontColorButton.setColor(textStyle.getFontColor()); } @Override protected void assignFontSizeStyle(TreeTheme widgetTheme) { - ParaTreeTheme paraTreeTheme= (ParaTreeTheme) widgetTheme; - paraTreeTheme.setTextStyle(textStylePane.getTextStyle()); + ThemeTextStyle textStyle = new ThemeTextStyle(); + textStyle.setFontSize(fontSizePane.getValue()); + textStyle.setFontColor(fontColorButton.getColor()); + widgetTheme.setTextStyle(textStyle); } } diff --git a/designer-realize/src/main/java/com/fr/design/webattr/EditToolBar.java b/designer-realize/src/main/java/com/fr/design/webattr/EditToolBar.java index 216e82cff0..36222f19c9 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/EditToolBar.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/EditToolBar.java @@ -182,7 +182,7 @@ public class EditToolBar extends BasicPane { if(WidgetThemeDesignerUtils.enableWidgetEnhance()) { backgroundPane.add(createButtonColorGroup()); } - backgroundPane.setBorder(BorderFactory.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Set_Background"))); + backgroundPane.setBorder(BorderFactory.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_ToolBar_Style_Setting"))); this.add(backgroundPane, BorderLayout.SOUTH); } diff --git a/designer-realize/src/main/java/com/fr/start/DesignerSuperListener.java b/designer-realize/src/main/java/com/fr/start/DesignerSuperListener.java index ee4b265022..df62a34412 100644 --- a/designer-realize/src/main/java/com/fr/start/DesignerSuperListener.java +++ b/designer-realize/src/main/java/com/fr/start/DesignerSuperListener.java @@ -11,6 +11,7 @@ import com.fr.event.Event; import com.fr.event.Listener; import com.fr.event.Null; import com.fr.general.ComparatorUtils; +import com.fr.log.FineLoggerFactory; import com.fr.process.FineProcess; import com.fr.process.ProcessEventPipe; import com.fr.process.engine.core.FineProcessContext; @@ -37,7 +38,7 @@ public class DesignerSuperListener { private final ScheduledExecutorService service = Executors.newScheduledThreadPool(2, new NamedThreadFactory("DesignerListener")); private final ExecutorService helpService = Executors.newSingleThreadExecutor( new NamedThreadFactory("DesignerSuperListener-Help")); - + private final ScheduledExecutorService EXIT_SERVICE = Executors.newSingleThreadScheduledExecutor( new NamedThreadFactory("DesignerSuperListener-Exit")); private FineProcess process; private ScheduledFuture fixedFuture; private ScheduledFuture onceFuture; @@ -141,6 +142,11 @@ public class DesignerSuperListener { } private void fallBackReport() { + // 60S都没退出去就强制关闭 + EXIT_SERVICE.schedule(() -> { + FineLoggerFactory.getLogger().error("[DesignerSuperListener] The designer failed to exit gracefully, attempting a forced shutdown."); + System.exit(1); + }, 60, TimeUnit.SECONDS); DesignUtils.initLookAndFeel(); StartErrorMessageCollector.getInstance().record(DesignerErrorMessage.UNEXCEPTED_FALL_BACK.getId(), DesignerErrorMessage.UNEXCEPTED_FALL_BACK.getMessage(), diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java index b8a0444770..15edc3e095 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java @@ -554,7 +554,6 @@ public class DesignerActivator extends Activator implements Prepare { EventDispatcher.listen(DesignerLaunchStatus.STARTUP_COMPLETE, new Listener() { @Override public void on(Event event, Null param) { - FineLoggerFactory.reset(); new SwingWorker() { @Override diff --git a/designer-realize/src/main/java/com/fr/strongest/WidgetThemeListenerStarter.java b/designer-realize/src/main/java/com/fr/strongest/WidgetThemeListenerStarter.java index e39521fd4e..8d2522350a 100644 --- a/designer-realize/src/main/java/com/fr/strongest/WidgetThemeListenerStarter.java +++ b/designer-realize/src/main/java/com/fr/strongest/WidgetThemeListenerStarter.java @@ -53,7 +53,7 @@ public class WidgetThemeListenerStarter { BaseBook workBook = (BaseBook) temp.getTarget(); if (isNeedAddAttr(temp, workBook)) { WidgetDisplayEnhanceMarkAttr attr = new WidgetDisplayEnhanceMarkAttr(); - attr.setWidgetEnhance(true); + attr.setWidgetEnhance(false); workBook.addAttrMark(attr); } }