From 5053d98098075ac7b20a680e805606166e0868db Mon Sep 17 00:00:00 2001 From: obo Date: Fri, 24 Nov 2023 16:10:25 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-106823=20=E4=BB=A3=E7=A0=81=E5=9B=9E?= =?UTF-8?q?=E9=80=80-=E6=8E=A7=E4=BB=B6=E6=98=BE=E7=A4=BA=E5=A2=9E?= =?UTF-8?q?=E5=BC=BA=E4=BB=A3=E7=A0=81=E5=86=85=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/JTemplate.java | 2 - .../mainframe/mobile/ui/MobileStylePane.java | 45 ++- .../mainframe/theme/FormThemeProfilePane.java | 6 +- .../theme/ReportThemeProfilePane.java | 4 +- .../theme/TemplateThemeEditorPane.java | 7 - .../ParameterBackgroundStyleSettingPane.java | 102 ------- .../designer/WidgetThemeDisplayAction.java | 50 --- .../WidgetThemeDisplayConfigPane.java | 81 ----- .../edit/ParamContainerBackgroundPane.java | 88 ------ .../edit/ParamContainerStyleEditPane.java | 82 ----- .../widget/DesktopWidgetStyleEditPane.java | 137 --------- .../widget/MobileWidgetStyleEditPane.java | 76 ----- .../widget/WidgetStyleEditContainerPane.java | 136 --------- .../edit/widget/WidgetStyleEditPane.java | 120 -------- .../theme/panel/ButtonStyleDefinedPane.java | 77 ----- .../theme/panel/ControlPreviewCell.java | 142 --------- .../panel/ControlPreviewCellWithIcon.java | 77 ----- .../theme/panel/ControlPreviewPane.java | 133 -------- .../widgettheme/theme/panel/ImageUtils.java | 89 ------ .../theme/panel/NormalButtonPreviewCell.java | 50 --- .../theme/panel/RingControlPreviewCell.java | 51 ---- .../theme/panel/RoundControlPreviewCell.java | 45 --- .../theme/panel/TextPreviewCell.java | 36 --- .../WidgetDisplayFormThemePreviewPane.java | 202 ------------ .../WidgetDisplayReportThemePreviewPane.java | 119 -------- .../WidgetThemeECComponentPreviewPane.java | 35 --- .../theme/panel/WidgetThemeECPreviewPane.java | 112 ------- .../panel/WidgetThemeECReportPreviewPane.java | 248 --------------- .../util/ThemePreviewPaneInitHelper.java | 70 ----- .../util/WidgetThemeDesignerUtils.java | 58 ---- .../DisplayEnhanceMobileStyleDefinePane.java | 273 ----------------- .../pane/FileEditorMobileStyleDefinePane.java | 59 ---- .../pane/FreeButtonMobileStyleDefinePane.java | 93 ------ .../pane/LabelMobileStyleDefinePane.java | 77 ----- .../pane/MobileStyleFontConfigPane.java | 151 --------- .../DisplayEnhanceMobileStyleFactory.java | 65 ---- ...dgetThemeMobileStyleDefinePaneCreator.java | 84 ----- .../parameter/RootDesignDefinePane.java | 2 - .../ui/btn/AbstractExtraButtonPane.java | 5 +- .../widget/ui/designer/ButtonDefinePane.java | 5 +- .../ui/designer/CheckBoxDefinePane.java | 5 +- .../ui/designer/DateEditorDefinePane.java | 5 +- .../designer/DirectWriteEditorDefinePane.java | 5 +- .../widget/ui/designer/LabelDefinePane.java | 11 +- .../ui/designer/NumberEditorDefinePane.java | 12 +- .../designer/TextFieldEditorDefinePane.java | 5 +- .../designer/btn/ButtonGroupDefinePane.java | 5 +- .../widgettheme/BaseStyleSettingPane.java | 287 ------------------ .../design/widgettheme/LabelSettingPane.java | 78 ----- .../widgettheme/ParaButtonSettingPane.java | 46 --- .../widgettheme/ParaEditorSettingPane.java | 48 --- .../ParaNormalButtonSettingPane.java | 68 ----- .../ParaTreeEditorSettingPane.java | 45 --- .../fr/design/widgettheme/StyleSetting.java | 41 --- .../widgettheme/common/ButtonSettingPane.java | 108 ------- .../widgettheme/common/EditorSettingPane.java | 115 ------- .../common/NormalButtonSettingPane.java | 136 --------- .../common/TreeEditorSettingPane.java | 107 ------- .../WidgetThemeCreatorPaneAdder.java | 119 -------- .../WidgetThemeParaCreatorPaneAdder.java | 107 ------- .../design/widget/ui/CheckBoxDefinePane.java | 12 +- .../widget/ui/FieldEditorDefinePane.java | 12 +- .../fr/start/module/DesignerActivator.java | 2 - .../strongest/WidgetThemeListenerStarter.java | 67 ---- 64 files changed, 56 insertions(+), 4684 deletions(-) delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/ParameterBackgroundStyleSettingPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/designer/WidgetThemeDisplayAction.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/designer/WidgetThemeDisplayConfigPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/edit/ParamContainerBackgroundPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/edit/ParamContainerStyleEditPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/DesktopWidgetStyleEditPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/MobileWidgetStyleEditPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditContainerPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/ButtonStyleDefinedPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/ControlPreviewCell.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/ControlPreviewCellWithIcon.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/ControlPreviewPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/ImageUtils.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/NormalButtonPreviewCell.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/RingControlPreviewCell.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/RoundControlPreviewCell.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/TextPreviewCell.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetDisplayFormThemePreviewPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetDisplayReportThemePreviewPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetThemeECComponentPreviewPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetThemeECPreviewPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetThemeECReportPreviewPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/util/ThemePreviewPaneInitHelper.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/util/WidgetThemeDesignerUtils.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/DisplayEnhanceMobileStyleDefinePane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/FileEditorMobileStyleDefinePane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/FreeButtonMobileStyleDefinePane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/LabelMobileStyleDefinePane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/MobileStyleFontConfigPane.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/widget/mobile/provider/DisplayEnhanceMobileStyleFactory.java delete mode 100644 designer-base/src/main/java/com/fr/widgettheme/widget/mobile/provider/WidgetThemeMobileStyleDefinePaneCreator.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/BaseStyleSettingPane.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/LabelSettingPane.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/ParaButtonSettingPane.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/ParaEditorSettingPane.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/ParaNormalButtonSettingPane.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/ParaTreeEditorSettingPane.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/StyleSetting.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/common/ButtonSettingPane.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/common/EditorSettingPane.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/common/NormalButtonSettingPane.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/common/TreeEditorSettingPane.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/processor/WidgetThemeCreatorPaneAdder.java delete mode 100644 designer-form/src/main/java/com/fr/design/widgettheme/processor/WidgetThemeParaCreatorPaneAdder.java delete mode 100644 designer-realize/src/main/java/com/fr/strongest/WidgetThemeListenerStarter.java diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java index 54469a4073..d8e299c3b4 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java +++ b/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; @@ -1122,7 +1121,6 @@ public abstract class JTemplate> //查找替换 tplMenu.addShortCut(new NameSeparator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Replace_Name_Separate"))); tplMenu.addShortCut((ShortCut) DesignModuleFactory.getITReplaceAction()); - tplMenu.insertShortCut(1, new WidgetThemeDisplayAction<>(this)); return new MenuDef[]{tplMenu}; } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/mobile/ui/MobileStylePane.java b/designer-base/src/main/java/com/fr/design/mainframe/mobile/ui/MobileStylePane.java index f32205b4cc..aafc5d4e2b 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/mobile/ui/MobileStylePane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/mobile/ui/MobileStylePane.java @@ -5,6 +5,10 @@ import com.fr.design.beans.BasicBeanPane; import com.fr.design.dialog.BasicPane; import com.fr.design.fun.MobileWidgetStyleProvider; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.mainframe.mobile.processor.MobileStyleDefinePaneCreator; +import com.fr.event.Event; +import com.fr.event.EventDispatcher; +import com.fr.event.Listener; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WScaleLayout; import com.fr.form.ui.mobile.MobileCommonExtraStyle; @@ -12,8 +16,9 @@ import com.fr.form.ui.mobile.MobileStyle; import com.fr.form.ui.mobile.StyleClassMap; import com.fr.form.ui.widget.CRBoundsWidget; import com.fr.log.FineLoggerFactory; +import com.fr.plugin.context.PluginContext; +import com.fr.plugin.observer.PluginEventType; import com.fr.stable.ArrayUtils; -import com.fr.widgettheme.widget.mobile.provider.WidgetThemeMobileStyleDefinePaneCreator; import javax.swing.DefaultListCellRenderer; import javax.swing.DefaultListModel; @@ -38,6 +43,8 @@ public class MobileStylePane extends BasicPane { private JList styleList; private Map> map = new HashMap<>(); + private boolean checkFlag = true; + public MobileStylePane(Widget widget) { if (widget instanceof WScaleLayout) { this.widget = ((CRBoundsWidget) ((WScaleLayout) widget).getBoundsWidget()).getWidget(); @@ -74,6 +81,7 @@ public class MobileStylePane extends BasicPane { private void init() { initComponent(); + initPluginListener(); } private void initComponent() { @@ -121,10 +129,11 @@ public class MobileStylePane extends BasicPane { listModel.addElement(displayName); try { + MobileStyleDefinePaneCreator processor = ExtraDesignClassManager.getInstance().getSingle(MobileStyleDefinePaneCreator.XML_TAG); BasicBeanPane mobileStyleBasicBeanPane = new MobileStyleDefinePane(widget, appearanceClazz, mobileStyleClazz); - if (WidgetThemeMobileStyleDefinePaneCreator.createBaseBeanPane(widget, appearanceClazz, mobileStyleClazz) != null) { - mobileStyleBasicBeanPane = WidgetThemeMobileStyleDefinePaneCreator.createBaseBeanPane(widget, appearanceClazz, mobileStyleClazz); - Class extraStyle = WidgetThemeMobileStyleDefinePaneCreator.classForCommonExtraStyle(widget); + if (checkFlag && processor != null && processor.createBaseBeanPane(widget, appearanceClazz, mobileStyleClazz) != null) { + mobileStyleBasicBeanPane = processor.createBaseBeanPane(widget, appearanceClazz, mobileStyleClazz); + Class extraStyle = processor.classForCommonExtraStyle(widget); if (extraStyle != null) { StyleClassMap.putCommonStyle(extraStyle.getName(), extraStyle.getName()); } @@ -155,4 +164,32 @@ public class MobileStylePane extends BasicPane { return styleProviders; } + private void initPluginListener() { + EventDispatcher.listen(PluginEventType.AfterRun, new Listener() { + @Override + public void on(Event event, PluginContext pluginContext) { + if (pluginContext.getRuntime().contain(MobileStyleDefinePaneCreator.XML_TAG)) { + checkFlag = true; + refreshDockingView(); + } + } + }); + EventDispatcher.listen(PluginEventType.BeforeStop, new Listener() { + @Override + public void on(Event event, PluginContext pluginContext) { + if (pluginContext.getRuntime().contain(MobileStyleDefinePaneCreator.XML_TAG)) { + checkFlag = false; + refreshDockingView(); + } + } + }); + } + + private void refreshDockingView() { + removeAll(); + initComponent(); + populate(widget.getMobileStyle()); + this.updateUI(); + this.repaint(); + } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/FormThemeProfilePane.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/FormThemeProfilePane.java index 922230b158..eb15a657f5 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/FormThemeProfilePane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/FormThemeProfilePane.java @@ -11,11 +11,7 @@ import com.fr.design.mainframe.theme.edit.ChartStyleFormEditPane; import com.fr.design.mainframe.theme.edit.ComponentStyleEditPane; import com.fr.design.mainframe.theme.edit.FormBodyStyleEditPane; import com.fr.design.mainframe.theme.preview.FormThemePreviewPane; -import com.fr.design.mainframe.theme.preview.ReportThemePreviewPane; import com.fr.design.mainframe.theme.processor.ThemePreviewPaneProcessor; -import com.fr.widgettheme.theme.panel.WidgetDisplayFormThemePreviewPane; -import com.fr.widgettheme.theme.panel.WidgetDisplayReportThemePreviewPane; -import com.fr.widgettheme.util.WidgetThemeDesignerUtils; import javax.swing.JPanel; @@ -42,7 +38,7 @@ public class FormThemeProfilePane extends TemplateThemeProfilePane { if (processor != null) { return processor.createFormThemePreviewPane(); } - return WidgetThemeDesignerUtils.enableWidgetEnhance() ? new WidgetDisplayFormThemePreviewPane() : new FormThemePreviewPane(); + return new FormThemePreviewPane(); } @Override diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/ReportThemeProfilePane.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/ReportThemeProfilePane.java index 3f654cae5c..57e6ddf5f1 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/ReportThemeProfilePane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/ReportThemeProfilePane.java @@ -7,8 +7,6 @@ import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.theme.edit.ReportBodyStyleEditPane; import com.fr.design.mainframe.theme.preview.ReportThemePreviewPane; import com.fr.design.mainframe.theme.processor.ThemePreviewPaneProcessor; -import com.fr.widgettheme.theme.panel.WidgetDisplayReportThemePreviewPane; -import com.fr.widgettheme.util.WidgetThemeDesignerUtils; /** * @author Starryi @@ -28,7 +26,7 @@ public class ReportThemeProfilePane extends TemplateThemeProfilePane extends J protected void refreshExtraAdvancedPane() { extraPaneList.clear(); - if(WidgetThemeDesignerUtils.enableWidgetEnhance()) { - extraPaneList.add(new ParamContainerStyleEditPane<>()); - extraPaneList.add(new WidgetStyleEditContainerPane<>()); - } Set> providers = ExtraDesignClassManager.getInstance().getArray(TemplateThemePaneProvider.XML_TAG); for (TemplateThemePaneProvider provider : providers) { insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.getTab()); diff --git a/designer-base/src/main/java/com/fr/widgettheme/ParameterBackgroundStyleSettingPane.java b/designer-base/src/main/java/com/fr/widgettheme/ParameterBackgroundStyleSettingPane.java deleted file mode 100644 index 144308c223..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/ParameterBackgroundStyleSettingPane.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.fr.widgettheme; - -import com.fr.base.theme.TemplateTheme; -import com.fr.design.beans.BasicBeanPane; -import com.fr.design.constants.LayoutConstants; -import com.fr.design.file.HistoryTemplateListCache; -import com.fr.design.gui.ibutton.UIButtonGroup; -import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.mainframe.JTemplate; -import com.fr.design.mainframe.widget.accessibles.AccessibleBackgroundEditor; -import com.fr.form.ui.container.WParameterLayout; -import com.fr.general.Background; -import org.jetbrains.annotations.Nullable; - -import javax.swing.JPanel; -import java.awt.BorderLayout; - -/** - * 设计器参数面板的“高级”设置增加背景的主题样式设置 - * - * @author Bruce.Deng - * @since 11.0 - * Created on 2023/2/20 - */ -public class ParameterBackgroundStyleSettingPane extends BasicBeanPane { - - public static final String[] FOLLOWING_THEME_STRING_ARRAYS = new String[]{ - Toolkit.i18nText("Fine-Design_Widget_Follow_Theme"), - Toolkit.i18nText("Fine-Design_Widget_Theme_Custom") - }; - - private UIButtonGroup head; - private JPanel customPane; - private AccessibleBackgroundEditor background; - - public ParameterBackgroundStyleSettingPane() { - this.setLayout(new BorderLayout(0, LayoutConstants.VGAP_SMALL)); - head = new UIButtonGroup(FOLLOWING_THEME_STRING_ARRAYS) { - @Override - public void setSelectedIndex(int newSelectedIndex, boolean fireChanged) { - //表示从跟随主题切换到自定义 - if (selectedIndex != newSelectedIndex && newSelectedIndex == 1) { - background.setValue(getThemeBackground()); - } - super.setSelectedIndex(newSelectedIndex, fireChanged); - } - }; - customPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - background = new AccessibleBackgroundEditor(); - customPane.add(background); - this.add(head, BorderLayout.NORTH); - this.add(customPane, BorderLayout.CENTER); - } - - private void attributeChange() { - customPane.setVisible(head.getSelectedIndex() == 1); - } - - @Override - public void populateBean(WParameterLayout wParameterLayout) { - if (wParameterLayout.isBackgroundFollowTheme()) { - head.setSelectedIndex(0); - } else { - head.setSelectedIndex(1); - background.setValue(wParameterLayout.getBackground()); - } - attributeChange(); - } - - @Override - @Nullable - public WParameterLayout updateBean() { - return null; - } - - @Override - public void updateBean(WParameterLayout wParameterLayout) { - attributeChange(); - if (head.getSelectedIndex() != 1) { - wParameterLayout.setBackgroundFollowTheme(true); - wParameterLayout.setBackground(getThemeBackground()); - } else { - wParameterLayout.setBackgroundFollowTheme(false); - wParameterLayout.setBackground((Background) background.getValue()); - } - } - - private Background getThemeBackground() { - JTemplate template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); - if (JTemplate.isValid(template)) { - TemplateTheme theme = template.getTemplateTheme(); - return theme.getParamContainerStyle().getBackground(); - } - return (Background) background.getValue(); - } - - @Override - protected String title4PopupWindow() { - return Toolkit.i18nText("Fine-Design_Widget_Theme_ParamContainer_Background"); - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/designer/WidgetThemeDisplayAction.java b/designer-base/src/main/java/com/fr/widgettheme/designer/WidgetThemeDisplayAction.java deleted file mode 100644 index 6a7edc36f8..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/designer/WidgetThemeDisplayAction.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.fr.widgettheme.designer; - -import com.fr.base.io.BaseBook; -import com.fr.base.svg.IconUtils; -import com.fr.design.actions.JTemplateAction; -import com.fr.widgettheme.util.WidgetThemeDesignerUtils; -import com.fr.design.dialog.DialogActionAdapter; -import com.fr.design.file.HistoryTemplateListCache; -import com.fr.design.i18n.Toolkit; -import com.fr.design.mainframe.DesignerContext; -import com.fr.design.mainframe.JTemplate; -import com.fr.widgettheme.control.attr.WidgetDisplayEnhanceMarkAttr; - -import java.awt.event.ActionEvent; - -/** - * 控件主题显示增强菜单action - * - * @author Bruce.Deng - * @since 11.0 - * Created on 2022/11/28 - */ -public class WidgetThemeDisplayAction> extends JTemplateAction { - - public WidgetThemeDisplayAction(T jwb) { - super(jwb); - setName(Toolkit.i18nText("Fine-Design_Widget_Display_Enhance")); - this.setSmallIcon(IconUtils.readIcon("/com/fr/widgettheme/menu.svg")); - } - - @Override - public void actionPerformed(ActionEvent e) { - final T jTemplate = getEditingComponent(); - if (jTemplate == null) { - return; - } - BaseBook baseBook = jTemplate.getTarget(); - WidgetDisplayEnhanceMarkAttr attr = WidgetThemeDesignerUtils.getStrongestControlAttrFromTemplate(baseBook); - final WidgetThemeDisplayConfigPane configPane = new WidgetThemeDisplayConfigPane(); - configPane.populate(attr); - configPane.showSmallWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { - @Override - public void doOk() { - baseBook.addAttrMark(configPane.update()); - jTemplate.fireTargetModified(); - HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().activeOldJTemplate(); - } - }).setVisible(true); - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/designer/WidgetThemeDisplayConfigPane.java b/designer-base/src/main/java/com/fr/widgettheme/designer/WidgetThemeDisplayConfigPane.java deleted file mode 100644 index ad96c00a9f..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/designer/WidgetThemeDisplayConfigPane.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.fr.widgettheme.designer; - -import com.fr.design.dialog.BasicPane; -import com.fr.design.gui.icheckbox.UICheckBox; -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.widgettheme.control.attr.WidgetDisplayEnhanceMarkAttr; - -import javax.swing.JPanel; -import java.awt.Color; - -/** - * 控件主题显示增强配置窗口 - * - * @author Bruce.Deng - * @since 11.0 - * Created on 2022/11/28 - */ -public class WidgetThemeDisplayConfigPane extends BasicPane { - - private UICheckBox widgetEnhance; - - public WidgetThemeDisplayConfigPane() { - initComponents(); - } - - private void initComponents() { - VerticalFlowLayout layout = new VerticalFlowLayout(); - layout.setAlignLeft(true); - this.setLayout(layout); - JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - this.add(northPane); - widgetEnhance = new UICheckBox(Toolkit.i18nText("Fine-Design_Widget_Enable_Display_Enhance")); - widgetEnhance.setSelected(true); - northPane.add(widgetEnhance); - - JPanel southPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - this.add(southPane); - UILabel label = new UILabel(Toolkit.i18nText("Fine-Design_Widget_Display_Enhance_Tip")); - label.setForeground(Color.GRAY); - southPane.add(label); - } - - @Override - protected String title4PopupWindow() { - return Toolkit.i18nText("Fine-Design_Widget_Display_Enhance"); - } - - /** - * 根据属性填充pane选项 - * - * @param widgetDisplayEnhanceMarkAttr 控件显示增强属性 - */ - public void populate(WidgetDisplayEnhanceMarkAttr widgetDisplayEnhanceMarkAttr) { - if (widgetDisplayEnhanceMarkAttr == null) { - widgetDisplayEnhanceMarkAttr = new WidgetDisplayEnhanceMarkAttr(); - } - widgetEnhance.setSelected(widgetDisplayEnhanceMarkAttr.isWidgetEnhance()); - } - - /** - * 更新 - */ - public WidgetDisplayEnhanceMarkAttr update() { - WidgetDisplayEnhanceMarkAttr attr = new WidgetDisplayEnhanceMarkAttr(); - attr.setWidgetEnhance(widgetEnhance.isSelected()); - if (widgetEnhance.isSelected()) { - collectWidgetDisplayEnhanceRecord(); - } - return attr; - } - - /** - * 记录埋点信息,具体实现在云端运维插件,这里只作为切入点 - */ - private void collectWidgetDisplayEnhanceRecord() { - //记录埋点 - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/ParamContainerBackgroundPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/edit/ParamContainerBackgroundPane.java deleted file mode 100644 index 429df171ce..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/ParamContainerBackgroundPane.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.fr.widgettheme.theme.edit; - -import com.fr.design.ExtraDesignClassManager; -import com.fr.design.event.UIObserverListener; -import com.fr.design.fun.BackgroundQuickUIProvider; -import com.fr.design.gui.style.BackgroundPane; -import com.fr.design.mainframe.backgroundpane.BackgroundQuickPane; -import com.fr.design.mainframe.backgroundpane.ColorBackgroundQuickPane; -import com.fr.design.mainframe.backgroundpane.GradientBackgroundQuickPane; -import com.fr.design.mainframe.backgroundpane.ImageBackgroundQuickPane; -import com.fr.design.mainframe.backgroundpane.NullBackgroundQuickPane; -import com.fr.design.mainframe.backgroundpane.PatternBackgroundQuickPane; -import com.fr.design.mainframe.backgroundpane.TextureBackgroundQuickPane; - -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -/** - * 参数面板背景编辑窗口 - * - * @author Bruce.Deng - * @since 11.0 - * Created on 2023/1/5 - */ -public class ParamContainerBackgroundPane extends BackgroundPane { - - private NullBackgroundQuickPane nullBackgroundPane; - private ColorBackgroundQuickPane colorBackgroundPane; - private ImageBackgroundQuickPane imageBackgroundPane; - private GradientBackgroundQuickPane gradientBackgroundPane; - private TextureBackgroundQuickPane textureBackgroundPane; - private PatternBackgroundQuickPane patternBackgroundPane; - - public ParamContainerBackgroundPane() { - super(); - } - - - @Override - protected BackgroundQuickPane[] supportKindsOfBackgroundUI() { - nullBackgroundPane = new NullBackgroundQuickPane(); - - colorBackgroundPane = new ColorBackgroundQuickPane(true); - colorBackgroundPane.registerChangeListener(this::fireStateChanged); - - imageBackgroundPane = new ImageBackgroundQuickPane(); - imageBackgroundPane.registerChangeListener(this::fireStateChanged); - - gradientBackgroundPane = createGradientBackgroundQuickPane(); - gradientBackgroundPane.registerChangeListener(this::fireStateChanged); - - textureBackgroundPane = new TextureBackgroundQuickPane(); - textureBackgroundPane.registerChangeListener(this::fireStateChanged); - - patternBackgroundPane = new PatternBackgroundQuickPane(); - patternBackgroundPane.registerChangeListener(this::fireStateChanged); - - - return createBackgroundQuickPanes(); - } - - private BackgroundQuickPane[] createBackgroundQuickPanes() { - List kinds = new ArrayList<>(); - - kinds.add(nullBackgroundPane); - kinds.add(colorBackgroundPane); - kinds.add(imageBackgroundPane); - kinds.add(gradientBackgroundPane); - kinds.add(textureBackgroundPane); - kinds.add(patternBackgroundPane); - - Set providers = ExtraDesignClassManager.getInstance().getArray(BackgroundQuickUIProvider.MARK_STRING); - for (BackgroundQuickUIProvider provider : providers) { - BackgroundQuickPane newTypePane = provider.appearanceForBackground(); - newTypePane.registerChangeListener(this::fireStateChanged); - kinds.add(newTypePane); - } - - return kinds.toArray(new BackgroundQuickPane[kinds.size()]); - } - - - protected GradientBackgroundQuickPane createGradientBackgroundQuickPane() { - // 使用默认的150宽度构建渐变条 - return new GradientBackgroundQuickPane(); - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/ParamContainerStyleEditPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/edit/ParamContainerStyleEditPane.java deleted file mode 100644 index 9e9ad79eef..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/ParamContainerStyleEditPane.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.fr.widgettheme.theme.edit; - -import com.fr.base.theme.TemplateTheme; -import com.fr.widgettheme.theme.widget.style.ThemedParamContainerStyle; -import com.fr.design.beans.BasicBeanPane; -import com.fr.design.designer.IntervalConstants; -import com.fr.design.gui.ilable.UILabel; -import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; - -import javax.swing.BorderFactory; -import javax.swing.JPanel; -import java.awt.BorderLayout; -import java.awt.Component; - -/** - * 参数面板样式编辑pane - * - * @author Bruce.Deng - * @since 11.0 - * Created on 2022/12/16 - */ -public class ParamContainerStyleEditPane extends BasicBeanPane { - public static final int LABEL_WIDTH = 60; - public static final int SETTING_WIDTH = 193; - - private final ParamContainerBackgroundPane backgroundPane; - - public ParamContainerStyleEditPane() { - backgroundPane = new ParamContainerBackgroundPane(); - - double p = TableLayout.PREFERRED; - - JPanel uiLabelPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - uiLabelPane.add(new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Background")), BorderLayout.NORTH); - uiLabelPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); - JPanel backgroundLabeledPane = TableLayoutHelper.createCommonTableLayoutPane( - new Component[][]{ new Component[] { uiLabelPane, backgroundPane } }, - new double[] { p }, new double[] { LABEL_WIDTH, SETTING_WIDTH}, IntervalConstants.INTERVAL_L1 - ); - backgroundLabeledPane.setBorder(BorderFactory.createEmptyBorder( - IntervalConstants.INTERVAL_L1, - IntervalConstants.INTERVAL_L1, - IntervalConstants.INTERVAL_L1, - IntervalConstants.INTERVAL_L1 - )); - this.add(backgroundLabeledPane); - setBorder(BorderFactory.createEmptyBorder()); - } - - @Override - public void populateBean(T t) { - ThemedParamContainerStyle paramContainerStyle = (ThemedParamContainerStyle) t.getParamContainerStyle(); - if (paramContainerStyle == null) { - paramContainerStyle = new ThemedParamContainerStyle(); - t.setParamContainerStyle(paramContainerStyle); - } - backgroundPane.populateBean(paramContainerStyle.getBackground()); - } - - @Override - public T updateBean() { - return null; - } - - @Override - public void updateBean(T t) { - ThemedParamContainerStyle style = (ThemedParamContainerStyle) t.getParamContainerStyle(); - if (style == null) { - style = new ThemedParamContainerStyle(); - t.setParamContainerStyle(style); - } - style.setBackground(backgroundPane.update()); - } - - @Override - protected String title4PopupWindow() { - return Toolkit.i18nText("Fine-Design_Widget_Theme_ParamContainer"); - } -} 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 deleted file mode 100644 index d33aa3ced4..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/DesktopWidgetStyleEditPane.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.fr.widgettheme.theme.edit.widget; - -import com.fr.base.background.ColorBackground; -import com.fr.base.theme.TemplateTheme; -import com.fr.widgettheme.theme.widget.style.BorderStyle; -import com.fr.widgettheme.theme.widget.style.ButtonBackgroundStyle; -import com.fr.widgettheme.theme.widget.style.FontSizeStyle; -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 javax.swing.ButtonGroup; -import javax.swing.JPanel; -import java.awt.Component; - - -/** - * 桌面端主题面板 - * - * @author Coral.Chen - * @since 11.0 - * Created on 2023/3/28 - */ -public class DesktopWidgetStyleEditPane extends WidgetStyleEditPane { - // 风格1 - protected UIRadioButton style1; - // 风格2 - protected UIRadioButton style2; - // 控件深浅主题 自动 - protected UIRadioButton widgetThemeAuto; - // 控件深浅主题 深色 - protected UIRadioButton widgetThemeDark; - // 控件深浅主题 浅色 - protected UIRadioButton widgetThemeLight; - - public DesktopWidgetStyleEditPane() { - super(); - } - - @Override - public Component[][] generateComponent() { - initStyleEditor(); - // 容纳风格1和风格2的panel - JPanel stylePane = new JPanel(FRGUIPaneFactory.createBoxFlowLayout()); - stylePane.add(style1); - stylePane.add(style2); - - JPanel widgetThemePane = new JPanel(FRGUIPaneFactory.createBoxFlowLayout()); - widgetThemePane.add(widgetThemeAuto); - widgetThemePane.add(widgetThemeDark); - widgetThemePane.add(widgetThemeLight); - Component[][] components = new Component[][]{ - new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Color")), colorSelectBox}, - 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_Font_Size")), fontSizeComoBox}, - new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Theme_Widget_Theme")), widgetThemePane}, - }; - return components; - } - - - private void initStyleEditor() { - style1 = new UIRadioButton(Toolkit.i18nText("Fine-Design_Widget_Theme_Style_1")); - style2 = new UIRadioButton(Toolkit.i18nText("Fine-Design_Widget_Theme_Style_2")); - ButtonGroup buttonGroup = new ButtonGroup(); - buttonGroup.add(style1); - buttonGroup.add(style2); - - widgetThemeAuto = new UIRadioButton(Toolkit.i18nText("Fine-Design_Theme_Widget_Theme_Auto")); - widgetThemeDark = new UIRadioButton(Toolkit.i18nText("Fine-Design_Widget_Theme_Dark")); - widgetThemeLight = new UIRadioButton(Toolkit.i18nText("Fine-Design_Theme_Widget_Theme_Light")); - ButtonGroup widgetThemeGroup = new ButtonGroup(); - widgetThemeGroup.add(widgetThemeAuto); - widgetThemeGroup.add(widgetThemeDark); - widgetThemeGroup.add(widgetThemeLight); - } - - @Override - public void populateBean(T t) { - ThemedWidgetStyle style = (ThemedWidgetStyle) t.getWidgetStyle(); - if (style == null) { - style = new ThemedWidgetStyle(); - t.setWidgetStyle(style); - } - if (style.getStyleType() == 1) { - style1.setSelected(true); - } else { - style2.setSelected(true); - } - - switch (style.getWidgetThemeType()) { - case 1: - widgetThemeDark.setSelected(true); - break; - case 2: - widgetThemeLight.setSelected(true); - break; - default: - widgetThemeAuto.setSelected(true); - break; - } - colorSelectBox.setSelectObject(style.getThemeColor()); - lineComboBox.setSelectedLineStyle(style.getBorderStyle().getLineType()); - borderRadiusSpinner.setValue(style.getBorderStyle().getRadius()); - fontSizeComoBox.setSelectedItem(style.getFontSizeStyle().getFontSize()); - - } - - @Override - public void updateBean(T t) { - ThemedWidgetStyle style = (ThemedWidgetStyle) t.getWidgetStyle(); - if (style == null) { - style = new ThemedWidgetStyle(); - t.setWidgetStyle(style); - } - style.setThemeColor(colorSelectBox.getSelectObject()); - BorderStyle borderStyle = new BorderStyle(); - borderStyle.setLineType(lineComboBox.getSelectedLineStyle()); - borderStyle.setRadius((int) borderRadiusSpinner.getValue()); - style.setBorderStyle(borderStyle); - FontSizeStyle fontSizeStyle = new FontSizeStyle(); - fontSizeStyle.setFontSize((Integer) fontSizeComoBox.getSelectedItem()); - style.setFontSizeStyle(fontSizeStyle); - ButtonBackgroundStyle buttonBackgroundStyle = new ButtonBackgroundStyle(); - ColorBackground buttonBackground = ColorBackground.getInstance(style.getThemeColor()); - buttonBackgroundStyle.setInitialBackground(buttonBackground); - buttonBackgroundStyle.setOverBackground(buttonBackground); - buttonBackgroundStyle.setClickBackground(buttonBackground); - style.setButtonBackgroundStyle(buttonBackgroundStyle); - style.setStyleType(style1.isSelected() ? 1 : 2); - style.setWidgetThemeType(widgetThemeAuto.isSelected() ? 0 : widgetThemeDark.isSelected() ? 1 : 2); - } -} \ No newline at end of file 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 deleted file mode 100644 index 29a1de5742..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/MobileWidgetStyleEditPane.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.fr.widgettheme.theme.edit.widget; - -import com.fr.base.theme.TemplateTheme; -import com.fr.widgettheme.theme.widget.style.BorderStyle; -import com.fr.widgettheme.theme.widget.style.FontSizeStyle; -import com.fr.widgettheme.theme.widget.style.MobileThemedWidgetStyle; -import com.fr.design.gui.icombobox.LineComboBox; -import com.fr.design.gui.icombobox.UIComboBox; -import com.fr.widgettheme.theme.widget.theme.WidgetThemeDisplayConstants; - -import java.util.Arrays; -import java.util.Vector; - -/** - * 移动端控件样式编辑面板 - * - * @author Coral.Chen - * @since 11.0 - * Created on 2023/3/28 - */ -public class MobileWidgetStyleEditPane extends WidgetStyleEditPane { - /** - * 移动端字体列表 12-18 - */ - private static Vector FONT_SIZES = new Vector() { - { - addAll(Arrays.asList(12, 13, 14, 15, 16, 17, 18)); - } - }; - - public MobileWidgetStyleEditPane() { - super(); - } - - @Override - public void initLineBox() { - lineComboBox = new LineComboBox(WidgetThemeDisplayConstants.MOBILE_BORDER_LINE_STYLE_ARRAY); - lineComboBox.setSelectedLineStyle(com.fr.stable.Constants.LINE_THIN); - } - - @Override - protected void initFontSizeComoBox() { - fontSizeComoBox = new UIComboBox(FONT_SIZES); - } - - @Override - public void populateBean(T t) { - MobileThemedWidgetStyle style = (MobileThemedWidgetStyle) t.getMobileWidgetStyle(); - if (style == null) { - style = new MobileThemedWidgetStyle(); - t.setMobileWidgetStyle(style); - } - colorSelectBox.setSelectObject(style.getThemeColor()); - lineComboBox.setSelectedLineStyle(style.getBorderStyle().getLineType()); - borderRadiusSpinner.setValue(style.getBorderStyle().getRadius()); - fontSizeComoBox.setSelectedItem(style.getFontSizeStyle().getFontSize()); - } - - @Override - public void updateBean(T t) { - MobileThemedWidgetStyle style = (MobileThemedWidgetStyle) t.getMobileWidgetStyle(); - if (style == null) { - style = new MobileThemedWidgetStyle(); - t.setMobileWidgetStyle(style); - } - style.setThemeColor(colorSelectBox.getSelectObject()); - BorderStyle borderStyle = new BorderStyle(); - borderStyle.setLineType(lineComboBox.getSelectedLineStyle()); - borderStyle.setRadius((int) borderRadiusSpinner.getValue()); - style.setBorderStyle(borderStyle); - FontSizeStyle fontSizeStyle = new FontSizeStyle(); - fontSizeStyle.setFontSize((Integer) fontSizeComoBox.getSelectedItem()); - style.setFontSizeStyle(fontSizeStyle); - } - -} \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditContainerPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditContainerPane.java deleted file mode 100644 index 789c0f61ac..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditContainerPane.java +++ /dev/null @@ -1,136 +0,0 @@ -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.ibutton.UIButtonGroup; -import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; -import org.jetbrains.annotations.Nullable; - -import javax.swing.JPanel; -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -/** - * 组件主题编辑容器,包含移动端控制面板和桌面端控制面板 - * 默认展开桌面端 - * - * @author Coral.Chen - * @since 11.0 - * Created on 2023/3/28 - */ -public class WidgetStyleEditContainerPane extends BasicBeanPane { - private UIButtonGroup terminalStyleGroup; - private WidgetStyleEditPane desktop; - private WidgetStyleEditPane mobile; - - public WidgetStyleEditContainerPane() { - initComponent(); - } - - private void initComponent() { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - // 初始化按钮组,桌面端&移动端 - initButtonGroup(); - // 创建按钮组面板 - createButtonGroupPane(); - // 默认选中桌面端 - terminalStyleGroup.setSelectedIndex(0); - // cardLayout用来切换面板 - // 桌面端 - initDesktopPanel(); - // 移动端 - initMobilePanel(); - createCardContainer(); - initListener(); - } - - private void createCardContainer() { - JPanel cardPanel = FRGUIPaneFactory.createCardLayout_S_Pane(); - cardPanel.add(desktop, BorderLayout.CENTER); - cardPanel.add(mobile, BorderLayout.CENTER); - this.add(cardPanel, BorderLayout.CENTER); - } - - private void initMobilePanel() { - mobile = new MobileWidgetStyleEditPane<>(); - mobile.setVisible(false); - } - - private void initDesktopPanel() { - desktop = new DesktopWidgetStyleEditPane<>(); - // 默认可见性 - desktop.setVisible(true); - } - - private void createButtonGroupPane() { - Component[][] components = { - new Component[]{terminalStyleGroup}, - }; - final double p = TableLayout.PREFERRED; - double[] rowSize = {p}; - double[] columnSize = {p, p}; - int[][] rowCount = {{1, 1}}; - JPanel groupPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); - this.add(groupPane, BorderLayout.NORTH); - } - - /** - * 初始化按钮组 - */ - private void initButtonGroup() { - terminalStyleGroup = new UIButtonGroup<>(new String[]{ - Toolkit.i18nText("Fine-Design_Widget_Terminal_Desktop"), - Toolkit.i18nText("Fine-Design_Widget_Terminal_Mobile")}); - this.add(terminalStyleGroup, BorderLayout.NORTH); - terminalStyleGroup.setSelectedIndex(0); - } - - /** - * 初始化按钮组的listener - */ - private void initListener() { - terminalStyleGroup.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - showTerminalPane(); - } - }); - } - - /** - * 展示具体面板 - */ - private void showTerminalPane() { - desktop.setVisible(terminalStyleGroup.getSelectedIndex() == 0); - mobile.setVisible(terminalStyleGroup.getSelectedIndex() == 1); - } - - @Override - public void populateBean(T ob) { - desktop.populateBean(ob); - mobile.populateBean(ob); - } - - @Nullable - @Override - public T updateBean() { - return null; - } - - @Override - public void updateBean(T ob) { - desktop.updateBean(ob); - mobile.updateBean(ob); - } - - @Override - protected String title4PopupWindow() { - return Toolkit.i18nText("Fine-Design_Theme_Widget_Style"); - } -} \ 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 deleted file mode 100644 index e3a6d8e56c..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditPane.java +++ /dev/null @@ -1,120 +0,0 @@ -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.icombobox.LineComboBox; -import com.fr.design.gui.icombobox.UIComboBox; -import com.fr.design.gui.ilable.UILabel; -import com.fr.design.gui.ispinner.UISpinner; -import com.fr.design.gui.style.FRFontPane; -import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.FRGUIPaneFactory; -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.widget.theme.WidgetThemeDisplayConstants; -import org.jetbrains.annotations.Nullable; - -import javax.swing.BorderFactory; -import javax.swing.JPanel; -import java.awt.BorderLayout; -import java.awt.Component; - - -/** - * 组件样式编辑基础类 - * - * @author Coral.Chen - * @since 11.0 - * Created on 2023/5/22 - */ -public class WidgetStyleEditPane extends BasicBeanPane { - - // 主题色 - protected NewColorSelectBox colorSelectBox; - - // 边框线型 - protected LineComboBox lineComboBox; - // 圆角边框 - protected UISpinner borderRadiusSpinner; - // 字体大小 - protected UIComboBox fontSizeComoBox; - - - public WidgetStyleEditPane() { - initComponents(); - } - - private void initComponents() { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - initCommonStyleEditor(); - double f = TableLayout.PREFERRED; - final double p = TableLayout.PREFERRED; - double[] rowSize = {p, p, p, p, p, p}; - double[] columnSize = {p, p}; - int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; - Component[][] components = generateComponent(); - JPanel customPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); - customPane.setBorder(BorderFactory.createEmptyBorder(20, 10, 0, 10)); - this.add(customPane, BorderLayout.NORTH); - } - - /** - * 初始化标签 - * - * @return components - */ - public Component[][] generateComponent() { - Component[][] components = new Component[][]{new Component[]{ - 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_Font_Size")), fontSizeComoBox}}; - return components; - } - - private void initCommonStyleEditor() { - colorSelectBox = new NewColorSelectBox(140, true); - colorSelectBox.setSelectObject(WidgetThemeDisplayConstants.DEFAULT_THEME_COLOR); - initLineBox(); - borderRadiusSpinner = new UISpinner(0, Integer.MAX_VALUE, 1); - initFontSizeComoBox(); - fontSizeComoBox.setSelectedItem(16); - } - - protected void initFontSizeComoBox() { - fontSizeComoBox = new UIComboBox(FRFontPane.getFontSizes()); - } - - /** - * 初始化边框线型 - */ - public void initLineBox() { - lineComboBox = new LineComboBox(WidgetThemeDisplayConstants.BORDER_LINE_STYLE_ARRAY); - } - - - @Override - public void populateBean(T t) { - - } - - @Nullable - @Override - public T updateBean() { - return null; - } - - @Override - public void updateBean(T t) { - } - - - @Override - protected String title4PopupWindow() { - return StringUtils.EMPTY; - } - -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ButtonStyleDefinedPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ButtonStyleDefinedPane.java deleted file mode 100644 index c6ec951eb4..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ButtonStyleDefinedPane.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.fr.widgettheme.theme.panel; - -import com.fr.widgettheme.theme.widget.style.ButtonBackgroundStyle; -import com.fr.design.dialog.BasicPane; -import com.fr.design.gui.ilable.UILabel; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; -import com.fr.widgettheme.theme.bean.ButtonBackground; -import com.fr.design.mainframe.widget.accessibles.AccessibleImgBackgroundEditor; -import com.fr.general.Background; - -import javax.swing.BorderFactory; -import javax.swing.JPanel; -import java.awt.BorderLayout; -import java.awt.Component; - -/** - * 按钮样式定义窗口 - * - * @author obo - * @since 11.0 - * Created on 2023/11/13 - */ -public class ButtonStyleDefinedPane extends BasicPane { - - protected AccessibleImgBackgroundEditor initBackgroundPane; - protected AccessibleImgBackgroundEditor overBackgroundPane; - protected AccessibleImgBackgroundEditor clickBackgroundPane; - - public ButtonStyleDefinedPane() { - this.initComponents(); - } - - protected void initComponents() { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - initBackgroundPane = new AccessibleImgBackgroundEditor(); - overBackgroundPane = new AccessibleImgBackgroundEditor(); - clickBackgroundPane = new AccessibleImgBackgroundEditor(); - double f = TableLayout.FILL; - final double p = TableLayout.PREFERRED; - double[] rowSize = {p, p, p}; - double[] columnSize = {p, f}; - int[][] rowCount = {{1, 1},{1, 1},{1, 1}}; - Component[][] components = new Component[][]{ - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Background_Initial")), initBackgroundPane}, - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Background_Over")), overBackgroundPane}, - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Background_Click")), clickBackgroundPane}, - }; - JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 7, 7); - panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); - this.add(panel, BorderLayout.CENTER); - - } - - /** - * 填充 - */ - public void populate(ButtonBackground buttonBackground) { - initBackgroundPane.setValue(buttonBackground.getInitialBackground()); - overBackgroundPane.setValue(buttonBackground.getOverBackground()); - clickBackgroundPane.setValue(buttonBackground.getClickBackground()); - } - - /** - * 更新 - */ - public ButtonBackgroundStyle update() { - return new ButtonBackgroundStyle((Background) initBackgroundPane.getValue(), (Background) overBackgroundPane.getValue(), (Background) clickBackgroundPane.getValue()); - } - - @Override - protected String title4PopupWindow() { - return null; - } - -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ControlPreviewCell.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ControlPreviewCell.java deleted file mode 100644 index c053737baf..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ControlPreviewCell.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.fr.widgettheme.theme.panel; - -import com.fr.base.BaseUtils; -import com.fr.base.Style; -import com.fr.base.theme.TemplateTheme; -import com.fr.widgettheme.theme.widget.style.ThemedWidgetStyle; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.general.FRFont; -import com.fr.widgettheme.theme.widget.theme.WidgetThemeDisplayConstants; -import com.fr.stable.Constants; - -import javax.swing.Icon; -import javax.swing.ImageIcon; -import javax.swing.JPanel; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.LayoutManager; -import java.awt.image.BufferedImage; - -/** - * 主题界面预览单元格子 - * - * @author John.Ying - * @since 11.0 - * Created on 2023/3/18 - */ -public class ControlPreviewCell extends JPanel { - protected static final LayoutManager DEFAULT = FRGUIPaneFactory.createRightFlowLayout(); - protected static final Color DEFAULT_COLOR = new Color(210, 210, 210); - protected static final Color DEFAULT_THEME_COLOR = new Color(54, 133, 242); - protected static final String DEFAULT_MESSAGE = ""; - protected static final int NO_SCALE_RESOLUTION = 100; - protected static final int DEFAULT_ALPHA = 255; - /** - * 格子文本数据 - */ - protected String value; - protected TemplateTheme reportTheme; - /** - * 字体的颜色 - */ - protected Color textColor = DEFAULT_COLOR; - - public Color getTextColor() { - return textColor; - } - - public void setTextColor(Color textColor) { - this.textColor = textColor; - } - - public ControlPreviewCell() { - this(DEFAULT, DEFAULT_MESSAGE); - } - - public ControlPreviewCell(String value) { - this(DEFAULT, value); - } - - public ControlPreviewCell(LayoutManager layoutManager, String value) { - this.setLayout(layoutManager); - this.setOpaque(false); - this.value = value; - this.setPreferredSize(new Dimension(80, 30)); - } - - /** - * 主题样式变化后监听改变 - */ - public void refresh(TemplateTheme reportTheme) { - this.reportTheme = reportTheme; - ThemedWidgetStyle widgetStyle = (ThemedWidgetStyle) this.reportTheme.getWidgetStyle(); - //主题色设置为透明或者插件启动前已有的主题启动插件后主题色为null - if (widgetStyle.getThemeColor() == null) { - widgetStyle.setThemeColor(DEFAULT_THEME_COLOR); - } - } - - /** - * 填充圆角矩形背景色 - */ - public void paintBgColor(Graphics g, ThemedWidgetStyle widgetStyle) { - this.paintBgColor(g, widgetStyle, DEFAULT_ALPHA); - } - - public boolean isDefaultStyle() { - ThemedWidgetStyle widgetStyle = (ThemedWidgetStyle) reportTheme.getWidgetStyle(); - return widgetStyle.getStyleType() == ThemedWidgetStyle.DEFAULT_STYLE; - } - - public Color getThemeColor() { - - ThemedWidgetStyle widgetStyle = (ThemedWidgetStyle) reportTheme.getWidgetStyle(); - return widgetStyle.getThemeColor(); - - } - - protected Icon setStyleTwoIcon(Icon icon, Icon defaultIcon) { - if (this.reportTheme != null && !isDefaultStyle()) { - - if (icon instanceof ImageIcon) { - ImageIcon imageIcon = (ImageIcon) icon; - BufferedImage bufferedImage = ImageUtils.colorImage(ImageUtils.imageIconToBufferedImage(imageIcon), getThemeColor()); - return new ImageIcon(bufferedImage); - } - } - return defaultIcon; - } - - /** - * 填充圆角矩形背景色 - */ - public void paintBgColor(Graphics g, ThemedWidgetStyle widgetStyle, int alpha) { - Color themeColor = widgetStyle.getThemeColor(); - g.setColor(new Color(themeColor.getRed(), themeColor.getGreen(), themeColor.getBlue(), alpha)); - g.fillRoundRect(0, 0, getSize().width - 1, getSize().height - 1, widgetStyle.getBorderStyle().getRadius(), widgetStyle.getBorderStyle().getRadius()); - //需要重新绘制一遍字体,否则会被颜色填充给遮住 - Graphics2D g2d = (Graphics2D) g.create(); - FRFont font = FRFont.getInstance(FRFont.DEFAULT_FONTNAME, Font.PLAIN, widgetStyle.getFontSizeStyle().getFontSize(), textColor); - BaseUtils.drawStringStyleInRotation(g2d, getWidth(), getHeight(), this.value, - Style.getInstance(font).deriveHorizontalAlignment(Constants.LEFT) - .deriveTextStyle(Style.TEXTSTYLE_SINGLELINE), NO_SCALE_RESOLUTION); - } - - @Override - public void paintComponent(Graphics g) { - super.paintComponent(g); - if (this.reportTheme == null) { - return; - } - Graphics2D g2d = (Graphics2D) g.create(); - ThemedWidgetStyle widgetStyle = (ThemedWidgetStyle) reportTheme.getWidgetStyle(); - FRFont font = FRFont.getInstance(FRFont.DEFAULT_FONTNAME, Font.PLAIN, widgetStyle.getFontSizeStyle().getFontSize(), textColor); - //每个预览格子通用的字体绘制 - BaseUtils.drawStringStyleInRotation(g2d, getWidth(), getHeight(), this.value, - Style.getInstance(font).deriveHorizontalAlignment(Constants.LEFT) - .deriveTextStyle(Style.TEXTSTYLE_SINGLELINE), NO_SCALE_RESOLUTION); - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ControlPreviewCellWithIcon.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ControlPreviewCellWithIcon.java deleted file mode 100644 index eb5f1eb9b9..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ControlPreviewCellWithIcon.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.fr.widgettheme.theme.panel; - - -import com.fr.base.svg.IconUtils; -import com.fr.widgettheme.theme.widget.style.ThemedWidgetStyle; -import com.fr.design.border.UIRoundedBorder; -import com.fr.stable.StringUtils; -import com.fr.widgettheme.theme.widget.theme.WidgetThemeDisplayConstants; - -import javax.swing.Icon; -import javax.swing.JLabel; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.LayoutManager; - -/** - * 主题界面预览控件单元格子,控件图表直接用icon - * - * @author John.Ying - * @since 11.0 - * Created on 2023/3/18 - */ -public class ControlPreviewCellWithIcon extends ControlPreviewCell { - private static final int CONTROL_ALPHA = 16; - - JLabel jLabel; - Icon icon; - Icon defaultIcon; - - public ControlPreviewCellWithIcon() { - this(DEFAULT, DEFAULT_MESSAGE); - } - - public ControlPreviewCellWithIcon(String value) { - this(DEFAULT, value); - } - - public ControlPreviewCellWithIcon(LayoutManager layoutManager, String value) { - this.setLayout(layoutManager); - this.value = value; - this.setPreferredSize(new Dimension(100, 27)); - } - - /** - * 根据icon地址绘制一个图标,用jlabel进行展示 - * - * @param url icon地址 - */ - public void drawIcon(String url) { - if (StringUtils.isEmpty(url)) { - return; - } - defaultIcon = IconUtils.readIcon(url); - icon = setStyleTwoIcon(icon, defaultIcon); - this.jLabel = new JLabel(icon); - jLabel.setPreferredSize(new Dimension(21, 17)); - - } - - @Override - public void paintComponent(Graphics g) { - super.paintComponent(g); - ThemedWidgetStyle widgetStyle = (ThemedWidgetStyle) reportTheme.getWidgetStyle(); - //风格一边框不显示主题色 - Color borderColor = isDefaultStyle() ? DEFAULT_COLOR : widgetStyle.getThemeColor(); - this.setBorder(new UIRoundedBorder(widgetStyle.getBorderStyle().getLineType() - , borderColor, widgetStyle.getBorderStyle().getRadius())); - icon = setStyleTwoIcon(icon, defaultIcon); - this.jLabel.setIcon(icon); - this.add(jLabel, BorderLayout.EAST); - if (widgetStyle.getStyleType() != ThemedWidgetStyle.DEFAULT_STYLE) { - paintBgColor(g, widgetStyle, CONTROL_ALPHA); - } - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ControlPreviewPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ControlPreviewPane.java deleted file mode 100644 index 110e6943c4..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ControlPreviewPane.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.fr.widgettheme.theme.panel; - -import com.fr.base.background.ColorBackground; -import com.fr.base.theme.TemplateTheme; -import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.mainframe.theme.preview.ThemePreviewed; -import com.fr.general.Background; - -import javax.swing.JPanel; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.geom.Rectangle2D; -import java.util.ArrayList; -import java.util.List; - -/** - * 主题界面页面中的参数界面 - * - * @author John.Ying - * @since 11.0 - * Created on 2023/3/18 - */ -public class ControlPreviewPane extends JPanel implements ThemePreviewed { - - public static final int PREVIEW_WIDTH = 615; - - public static final int PREVIEW_HEIGHT = 62; - - /** - * 参数界面中放置的所有cell,用于监听主题样式变更 - */ - public final List list = new ArrayList<>(); - - private Background background; - - private static final String DATE_ICON_URL = "/com/fr/web/images/form/resources/date_16.png"; - - private static final String COMBOBOX_ICON_URL = "/com/fr/widgettheme/combobox.png"; - - @Override - public void refresh(TemplateTheme style) { - this.background = style.getParamContainerStyle().getBackground(); - for (ControlPreviewCell controlPreviewCell : list) { - controlPreviewCell.refresh(style); - } - } - - @Override - public void paintComponent(Graphics g) { - super.paintComponent(g); - paintBackground((Graphics2D) g); - } - - protected void paintBackground(Graphics2D g2d) { - if (background == null) { - background = ColorBackground.getInstance(Color.WHITE); - } - background.paint(g2d, new Rectangle2D.Double(0, 0, PREVIEW_WIDTH, PREVIEW_HEIGHT)); - } - - /** - * 初始化参数界面,往里面添加各种cell - */ - public void initControlPreviewPane() { - initDateControlPane(); - initComboboxControlPane(); - initRadioButtonControlPane(); - initNormalButtonControlPane(); - } - - /** - * 初始化日期控件包括文字跟控件 - */ - private void initDateControlPane() { - TextPreviewCell dateTextCell = new TextPreviewCell(Toolkit.i18nText("Fine-Design_Theme_Control_Date_Text")); - dateTextCell.setPreferredSize(new Dimension(80, 30)); - ControlPreviewCellWithIcon dateEditorCell = new ControlPreviewCellWithIcon(Toolkit.i18nText("Fine-Design_Theme_Control_Date_Editor_Text")); - dateEditorCell.drawIcon(DATE_ICON_URL); - dateEditorCell.setTextColor(ControlPreviewCell.DEFAULT_COLOR); - this.add(dateTextCell); - this.add(dateEditorCell); - this.list.add(dateTextCell); - this.list.add(dateEditorCell); - } - - /** - * 初始化下拉框控件包括文件跟控件 - */ - private void initComboboxControlPane() { - TextPreviewCell comboBoxTextCell = new TextPreviewCell(Toolkit.i18nText("Fine-Design_Theme_Control_ComboBox_Text")); - comboBoxTextCell.setPreferredSize(new Dimension(60, 30)); - ControlPreviewCellWithIcon comboBoxControlPreviewCell = new ControlPreviewCellWithIcon(Toolkit.i18nText("Fine-Design_Theme_Control_ComboBox_Editor_Text")); - comboBoxControlPreviewCell.drawIcon(COMBOBOX_ICON_URL); - comboBoxControlPreviewCell.setTextColor(ControlPreviewCell.DEFAULT_COLOR); - this.add(comboBoxTextCell); - this.add(comboBoxControlPreviewCell); - this.list.add(comboBoxControlPreviewCell); - this.list.add(comboBoxTextCell); - } - - /** - * 初始化单选按钮组控件 - */ - private void initRadioButtonControlPane() { - RingControlPreviewCell ringControlPreviewCell = new RingControlPreviewCell(); - RoundControlPreviewCell roundControlPreviewCell = new RoundControlPreviewCell(); - - TextPreviewCell yearTextFieldCell = new TextPreviewCell(Toolkit.i18nText("Fine-Design_Theme_Control_Radio_Year")); - yearTextFieldCell.setPreferredSize(new Dimension(38, 30)); - TextPreviewCell monthTextFieldCell = new TextPreviewCell(Toolkit.i18nText("Fine-Design_Theme_Control_Radio_Month")); - monthTextFieldCell.setPreferredSize(new Dimension(38, 30)); - this.add(ringControlPreviewCell); - this.add(yearTextFieldCell); - this.add(roundControlPreviewCell); - this.add(monthTextFieldCell); - this.list.add(ringControlPreviewCell); - this.list.add(roundControlPreviewCell); - this.list.add(yearTextFieldCell); - this.list.add(monthTextFieldCell); - } - - /** - * 初始化按钮预览格子 - */ - private void initNormalButtonControlPane() { - NormalButtonPreviewCell normalButton = new NormalButtonPreviewCell(FRGUIPaneFactory.createCenterFlowLayout(), ControlPreviewCell.DEFAULT_MESSAGE); - this.add(normalButton); - this.list.add(normalButton); - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ImageUtils.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ImageUtils.java deleted file mode 100644 index 63da90e6f7..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/ImageUtils.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.fr.widgettheme.theme.panel; - -import javax.swing.ImageIcon; -import java.awt.Color; -import java.awt.Graphics; -import java.awt.image.BufferedImage; -import java.awt.image.WritableRaster; - -/** - * 控件主题Image处理工具类 - * - * @author obo - * @since 11.0 - * Created on 2023/11/13 - */ -public class ImageUtils { - - /** - * 根据主题色处理image - * - * @param image 图像 - * @param color 主题色 - * @return 处理结果 - */ - public static BufferedImage colorImage(BufferedImage image, Color color) { - int width = image.getWidth(); - int height = image.getHeight(); - WritableRaster raster = image.getRaster(); - - for (int xx = 0; xx < width; xx++) { - for (int yy = 0; yy < height; yy++) { - int[] pixels = raster.getPixel(xx, yy, (int[]) null); - setRedPixels(pixels, color); - setGreenPixels(pixels, color); - setBluePixels(pixels, color); - raster.setPixel(xx, yy, pixels); - } - } - return image; - } - - /** - * 处理红像素 - * - * @param pixels 像素数组 - * @param color 颜色 - */ - private static void setRedPixels(int[] pixels, Color color) { - pixels[0] = pixels[0] > 0 && pixels[0] < 255 ? color.getRed() : 255; - } - - /** - * 处理绿像素 - * - * @param pixels 像素数组 - * @param color 颜色 - */ - private static void setGreenPixels(int[] pixels, Color color) { - pixels[1] = pixels[1] > 0 && pixels[1] < 255 ? color.getGreen() : 255; - } - - /** - * 处理蓝像素 - * - * @param pixels 像素数组 - * @param color 颜色 - */ - private static void setBluePixels(int[] pixels, Color color) { - pixels[2] = pixels[2] > 0 && pixels[2] < 255 ? color.getBlue() : 255; - } - - /** - * ImageIcon转换为BufferImage - * - * @param icon imageIcon - * @return BufferedImage - */ - public static BufferedImage imageIconToBufferedImage(ImageIcon icon) { - BufferedImage bi = new BufferedImage( - icon.getIconWidth(), - icon.getIconHeight(), - BufferedImage.TYPE_INT_ARGB); - Graphics g = bi.createGraphics(); - icon.paintIcon(null, g, 0, 0); - g.dispose(); - return bi; - } - -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/NormalButtonPreviewCell.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/NormalButtonPreviewCell.java deleted file mode 100644 index fe8a2076e5..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/NormalButtonPreviewCell.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.fr.widgettheme.theme.panel; - - -import com.fr.widgettheme.theme.widget.style.ThemedWidgetStyle; -import com.fr.design.gui.ilable.UILabel; -import com.fr.design.i18n.Toolkit; -import com.fr.general.FRFont; - -import java.awt.*; - -/** - * 主题参数面板按钮预览格子 - * - * @author John.Ying - * @since 11.0 - * Created on 2023/3/27 - */ -public class NormalButtonPreviewCell extends ControlPreviewCell { - - /** - * 按钮上的label - */ - private UILabel uiLabel; - - public NormalButtonPreviewCell() { - this(DEFAULT, DEFAULT_MESSAGE); - } - - public NormalButtonPreviewCell(String value) { - this(DEFAULT, value); - } - - public NormalButtonPreviewCell(LayoutManager layoutManager, String value) { - this.setLayout(layoutManager); - this.value = value; - this.uiLabel = new UILabel(Toolkit.i18nText("Fine-Design_Theme_Control_Normal_Button")); - this.setPreferredSize(new Dimension(80, 27)); - } - - @Override - public void paintComponent(Graphics g) { - super.paintComponent(g); - ThemedWidgetStyle widgetStyle = (ThemedWidgetStyle) reportTheme.getWidgetStyle(); - paintBgColor(g, widgetStyle); - uiLabel.setForeground(Color.WHITE); - FRFont font = FRFont.getInstance(FRFont.DEFAULT_FONTNAME, Font.PLAIN, widgetStyle.getFontSizeStyle().getFontSize(), Color.WHITE); - uiLabel.setFont(font); - this.add(uiLabel, BorderLayout.CENTER); - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/RingControlPreviewCell.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/RingControlPreviewCell.java deleted file mode 100644 index 6d492688d4..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/RingControlPreviewCell.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.fr.widgettheme.theme.panel; - - -import com.fr.widgettheme.theme.widget.style.ThemedWidgetStyle; - -import java.awt.Dimension; -import java.awt.LayoutManager; -import java.awt.Graphics2D; -import java.awt.Graphics; -import java.awt.Color; - -/** - * 主题界面预览控件单元格子,单选按钮组被选中的样子 - * - * @author John.Ying - * @since 11.0 - * Created on 2023/3/18 - */ -public class RingControlPreviewCell extends ControlPreviewCell { - /** - * 圆环厚度 - */ - private static final int THICK_NESS = 4; - - public RingControlPreviewCell() { - this(DEFAULT, DEFAULT_MESSAGE); - } - - public RingControlPreviewCell(String value) { - this(DEFAULT, value); - } - - public RingControlPreviewCell(LayoutManager layoutManager, String value) { - this.setLayout(layoutManager); - this.setOpaque(false); - this.value = value; - this.setPreferredSize(new Dimension(20, 30)); - } - - @Override - public void paintComponent(Graphics g) { - super.paintComponent(g); - ThemedWidgetStyle widgetStyle = (ThemedWidgetStyle) reportTheme.getWidgetStyle(); - Graphics2D g2d = (Graphics2D) g.create(); - g2d.setColor(widgetStyle.getThemeColor()); - g2d.fillOval(5, 9, 15, 15); - g2d.setColor(Color.WHITE); - g2d.fillOval(5 + THICK_NESS, 9 + THICK_NESS, 15 - 2 * THICK_NESS, 15 - 2 * THICK_NESS); - } - -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/RoundControlPreviewCell.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/RoundControlPreviewCell.java deleted file mode 100644 index dc98146b35..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/RoundControlPreviewCell.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.fr.widgettheme.theme.panel; - - -import com.fr.widgettheme.theme.widget.style.ThemedWidgetStyle; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.LayoutManager; - -/** - * 主题界面预览控件单元格子,单选按钮组未被选中的样子 - * - * @author John.Ying - * @since 11.0 - * Created on 2023/3/18 - */ -public class RoundControlPreviewCell extends ControlPreviewCell { - public RoundControlPreviewCell() { - this(DEFAULT, DEFAULT_MESSAGE); - } - - public RoundControlPreviewCell(String value) { - this(DEFAULT, value); - } - - public RoundControlPreviewCell(LayoutManager layoutManager, String value) { - this.setLayout(layoutManager); - this.setOpaque(false); - this.value = value; - this.setPreferredSize(new Dimension(23, 30)); - } - - @Override - public void paintComponent(Graphics g) { - super.paintComponent(g); - ThemedWidgetStyle widgetStyle = (ThemedWidgetStyle) reportTheme.getWidgetStyle(); - //风格一边框不显示主题色 - Color borderColor = isDefaultStyle() ? DEFAULT_COLOR : widgetStyle.getThemeColor(); - Graphics2D g2d = (Graphics2D) g.create(); - g2d.setColor(borderColor); - g2d.drawOval(5, 9, 15, 15); - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/TextPreviewCell.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/TextPreviewCell.java deleted file mode 100644 index c79be9f69d..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/TextPreviewCell.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.fr.widgettheme.theme.panel; - - -import com.fr.base.theme.TemplateTheme; - -import java.awt.*; - -/** - * 文字预览格子 - * - * @author John.Ying - * @since 11.0 - * Created on 2023/3/27 - */ -public class TextPreviewCell extends ControlPreviewCell { - - public TextPreviewCell(String value) { - this(DEFAULT, value); - } - - public TextPreviewCell(LayoutManager layoutManager, String value) { - this.setLayout(layoutManager); - this.value = value; - } - - @Override - public void refresh(TemplateTheme reportTheme) { - super.refresh(reportTheme); - // 文字根据是否深色主题自适应改变 - if (reportTheme.isDark()) { - textColor = Color.WHITE; - } else { - textColor = Color.BLACK; - } - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetDisplayFormThemePreviewPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetDisplayFormThemePreviewPane.java deleted file mode 100644 index 1ae886f62c..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetDisplayFormThemePreviewPane.java +++ /dev/null @@ -1,202 +0,0 @@ -package com.fr.widgettheme.theme.panel; - -import com.fr.base.background.ColorBackground; -import com.fr.base.theme.FormTheme; -import com.fr.chart.chartattr.ChartCollection; -import com.fr.chart.chartdata.NormalChartData; -import com.fr.chart.charttypes.ChartTypeManager; -import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.mainframe.theme.TemplateThemePreviewPane; -import com.fr.design.mainframe.theme.preview.ChartComponentPreviewPane; -import com.fr.design.mainframe.theme.preview.UINoOpaquePanel; -import com.fr.general.Background; -import com.fr.log.FineLoggerFactory; -import com.fr.plugin.chart.PiePlot4VanChart; -import com.fr.plugin.chart.attr.VanChartLegend; -import com.fr.plugin.chart.base.VanChartTools; -import com.fr.plugin.chart.column.VanChartColumnPlot; -import com.fr.plugin.chart.type.GradientType; -import com.fr.plugin.chart.type.RadiusType; -import com.fr.plugin.chart.vanchart.VanChart; -import com.fr.stable.Constants; -import com.fr.stable.StringUtils; - -import javax.swing.JPanel; -import java.awt.AlphaComposite; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Dimension; -import java.awt.Graphics2D; -import java.awt.geom.Rectangle2D; - -import static com.fr.design.i18n.Toolkit.i18nText; -import static com.fr.widgettheme.util.ThemePreviewPaneInitHelper.initColumnPlot; -import static com.fr.widgettheme.util.ThemePreviewPaneInitHelper.initVanChartYAxis; -import static com.fr.widgettheme.util.ThemePreviewPaneInitHelper.initVanChartsTools; - -/** - * 主题界面预览控frm界面,就是主jar里的那个界面,做了简单的修改 - * - * @author John.Ying - * @since 11.0 - * Created on 2023/3/18 - */ -public class WidgetDisplayFormThemePreviewPane extends TemplateThemePreviewPane { - private WidgetThemeECComponentPreviewPane elementCasePane; - private Background background; - private ChartComponentPreviewPane columnChartPreviewPane; - private ChartComponentPreviewPane pieChartPreviewPane; - private ControlPreviewPane controlPreviewPane; - private float alpha = 1.0F; - - public WidgetDisplayFormThemePreviewPane() { - setLayout(FRGUIPaneFactory.createBorderLayout()); - controlPreviewPane = new ControlPreviewPane(); - controlPreviewPane.setLayout(FRGUIPaneFactory.createLabelFlowLayout()); - controlPreviewPane.setPreferredSize(new Dimension(615, 40)); - controlPreviewPane.initControlPreviewPane(); - JPanel content = new UINoOpaquePanel(); - content.setLayout(new BorderLayout()); - add(controlPreviewPane, BorderLayout.NORTH); - JPanel chartContent = createChartContent(); - content.add(chartContent, BorderLayout.CENTER); - content.add(elementCasePane = new WidgetThemeECComponentPreviewPane(), BorderLayout.SOUTH); - add(content, BorderLayout.CENTER); - } - - private JPanel createChartContent() { - JPanel chartContent = new UINoOpaquePanel(); - chartContent.setLayout(new BorderLayout()); - JPanel columnChartPanel = new UINoOpaquePanel() { - public Dimension getPreferredSize() { - return new Dimension(379, 314); - } - }; - columnChartPanel.setLayout(new BorderLayout()); - columnChartPreviewPane = createChartPreviewPane(initColumnChart(), i18nText("Fine-Design_Basic_Template_Theme_Profile_Pane_Comp_Title1")); - columnChartPanel.add(columnChartPreviewPane, BorderLayout.CENTER); - - JPanel pieChartPanel = new UINoOpaquePanel() { - public Dimension getPreferredSize() { - return new Dimension(236, 314); - } - }; - pieChartPanel.setLayout(new BorderLayout()); - pieChartPreviewPane = createChartPreviewPane(initPieChart(), i18nText("Fine-Design_Basic_Template_Theme_Profile_Pane_Comp_Title2")); - pieChartPanel.add(pieChartPreviewPane, BorderLayout.CENTER); - chartContent.add(columnChartPanel, BorderLayout.CENTER); - chartContent.add(pieChartPanel, BorderLayout.EAST); - return chartContent; - } - - private ChartComponentPreviewPane createChartPreviewPane(ChartCollection chartCollection, String title) { - ChartComponentPreviewPane chartComponentPreviewPane = new ChartComponentPreviewPane(title); - chartComponentPreviewPane.getContentPane().populate(chartCollection); - chartComponentPreviewPane.getContentPane().setCallbackEvent(this); - return chartComponentPreviewPane; - } - - @Override - public void refresh(FormTheme theme) { - background = theme.getBodyStyle().getStyle().getBackground(); - alpha = theme.getBodyStyle().getStyle().getAlpha(); - elementCasePane.refresh(theme); - columnChartPreviewPane.refresh(theme); - pieChartPreviewPane.refresh(theme); - controlPreviewPane.refresh(theme); - repaint(); - } - - - protected void paintBackground(Graphics2D g2d) { - if (background == null) { - background = ColorBackground.getInstance(Color.WHITE); - } - Composite oldComposite = g2d.getComposite(); - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha)); - background.paint(g2d, new Rectangle2D.Double(0, 0, PREVIEW_WIDTH, PREVIEW_HEIGHT)); - g2d.setComposite(oldComposite); - } - - /** - * 初始化柱形图 - * - * @return 存放图表 - */ - private ChartCollection initColumnChart() { - try { - VanChart chart = (VanChart) ChartTypeManager.getInstance().getCharts(VanChartColumnPlot.VAN_CHART_COLUMN_PLOT_ID)[0].clone(); - initColumnChartDetail(chart); - Object[] category = { - Toolkit.i18nText("Fine-Design_Chart_Category") + "1", - Toolkit.i18nText("Fine-Design_Chart_Category") + "2", - Toolkit.i18nText("Fine-Design_Chart_Category") + "3", - Toolkit.i18nText("Fine-Design_Chart_Category") + "4" - }; - Object[] series = { - Toolkit.i18nText("Fine-Design_Chart_Series") + "1", - Toolkit.i18nText("Fine-Design_Chart_Series") + "2" - }; - Object[][] value = { - {"250", "540", "300", "410"}, - {"180", "190", "170", "100"}, - }; - NormalChartData normalChartData = new NormalChartData(category, series, value); - chart.setPreViewChartData(normalChartData); - ChartCollection chartCollection = new ChartCollection(chart); - return chartCollection; - } catch (Exception ex) { - FineLoggerFactory.getLogger().error(ex.getMessage(), ex); - } - return null; - } - - private void initColumnChartDetail(VanChart chart) { - chart.getTitle().setTitleVisible(false); - initVanChartsTools(chart.getVanChartTools()); - VanChartColumnPlot plot = chart.getPlot(); - //Form中独有的setPosition,和Report中不同,先单独放在这里,不写在initPlot中 - plot.getLegend().setPosition(Constants.TOP); - initColumnPlot(plot); - initVanChartYAxis(plot.getDefaultYAxis()); - } - - /** - * 初始化饼图 - * - * @return chartCollection - */ - private ChartCollection initPieChart() { - try { - VanChart chart = (VanChart) ChartTypeManager.getInstance().getCharts(PiePlot4VanChart.VAN_CHART_PIE_PLOT)[0].clone(); - chart.getTitle().setTitleVisible(false); - VanChartTools vanChartTools = chart.getVanChartTools(); - vanChartTools.setSort(false); - vanChartTools.setExport(false); - vanChartTools.setFullScreen(false); - - PiePlot4VanChart plot = chart.getPlot(); - VanChartLegend legend = (VanChartLegend) plot.getLegend(); - legend.setPosition(Constants.BOTTOM); - legend.setCustomSize(true); - legend.setMaxHeight(28); - plot.getGradientStyle().setGradientType(GradientType.NONE); - plot.setInnerRadiusPercent(75); - plot.getRadius().setRadiusType(RadiusType.FIXED); - plot.getRadius().setRadius(70); - - Object[] category = {StringUtils.EMPTY}; - Object[] series = {"A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1"}; - Object[][] value = {{45}, {24}, {12}, {8}, {5}, {3}, {2}, {1},}; - NormalChartData normalChartData = new NormalChartData(category, series, value); - chart.setPreViewChartData(normalChartData); - ChartCollection chartCollection = new ChartCollection(chart); - return chartCollection; - } catch (Exception ex) { - FineLoggerFactory.getLogger().error(ex.getMessage(), ex); - } - return null; - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetDisplayReportThemePreviewPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetDisplayReportThemePreviewPane.java deleted file mode 100644 index 31da4aab81..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetDisplayReportThemePreviewPane.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.fr.widgettheme.theme.panel; - -import com.fr.base.background.ColorBackground; -import com.fr.base.theme.ReportTheme; -import com.fr.chart.chartattr.ChartCollection; -import com.fr.chart.chartdata.NormalChartData; -import com.fr.chart.charttypes.ChartTypeManager; -import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.mainframe.theme.TemplateThemePreviewPane; -import com.fr.design.mainframe.theme.preview.ChartPreviewPane; -import com.fr.general.Background; -import com.fr.log.FineLoggerFactory; -import com.fr.plugin.chart.column.VanChartColumnPlot; -import com.fr.plugin.chart.vanchart.VanChart; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics2D; -import java.awt.geom.Rectangle2D; - -import static com.fr.widgettheme.util.ThemePreviewPaneInitHelper.initColumnPlot; -import static com.fr.widgettheme.util.ThemePreviewPaneInitHelper.initVanChartYAxis; -import static com.fr.widgettheme.util.ThemePreviewPaneInitHelper.initVanChartsTools; - -/** - * 主题界面预览控cpt界面,就是主jar里的那个界面,做了简单的修改 - * - * @author John.Ying - * @since 11.0 - * Created on 2023/3/18 - */ -public class WidgetDisplayReportThemePreviewPane extends TemplateThemePreviewPane { - private Background background; - - private final WidgetThemeECReportPreviewPane reportPreviewPane; - - private final ChartPreviewPane chartPreviewPane; - - private final ControlPreviewPane controlPreviewPane; - - public WidgetDisplayReportThemePreviewPane() { - setLayout(FRGUIPaneFactory.createBorderLayout()); - chartPreviewPane = new ChartPreviewPane(); - chartPreviewPane.setPreferredSize(new Dimension(615, 207)); - chartPreviewPane.populate(initColumnChart()); - chartPreviewPane.setCallbackEvent(this); - reportPreviewPane = new WidgetThemeECReportPreviewPane(); - reportPreviewPane.setPreferredSize(new Dimension(615, 257)); - controlPreviewPane = new ControlPreviewPane(); - controlPreviewPane.setLayout(FRGUIPaneFactory.createLabelFlowLayout()); - controlPreviewPane.setPreferredSize(new Dimension(615, 40)); - controlPreviewPane.initControlPreviewPane(); - this.add(reportPreviewPane, BorderLayout.CENTER); - this.add(chartPreviewPane, BorderLayout.SOUTH); - this.add(controlPreviewPane, BorderLayout.NORTH); - } - - @Override - public void refresh(ReportTheme theme) { - background = theme.getBodyStyle().getBackground(); - reportPreviewPane.refresh(theme); - chartPreviewPane.refresh(theme); - controlPreviewPane.refresh(theme); - repaint(); - } - - - protected void paintBackground(Graphics2D g2d) { - if (background == null) { - background = ColorBackground.getInstance(Color.WHITE); - } - background.paint(g2d, new Rectangle2D.Double(0, 0, PREVIEW_WIDTH, PREVIEW_HEIGHT)); - } - - - /** - * 初始化柱形图 - * - * @return chartCollection - */ - private ChartCollection initColumnChart() { - try { - VanChart chart = (VanChart) ChartTypeManager.getInstance().getCharts(VanChartColumnPlot.VAN_CHART_COLUMN_PLOT_ID)[0].clone(); - initColumnChartDetail(chart); - Object[] category = { - Toolkit.i18nText("Fine-Design_Chart_Category") + "1", - Toolkit.i18nText("Fine-Design_Chart_Category") + "2", - Toolkit.i18nText("Fine-Design_Chart_Category") + "3", - Toolkit.i18nText("Fine-Design_Chart_Category") + "4" - }; - Object[] series = { - Toolkit.i18nText("Fine-Design_Chart_Series") + "1", - Toolkit.i18nText("Fine-Design_Chart_Series") + "2", - Toolkit.i18nText("Fine-Design_Chart_Series") + "3" - }; - Object[][] value = { - {"340", "510", "300", "250"}, - {"180", "360", "170", "100"}, - {"210", "205", "405", "190"} - }; - NormalChartData normalChartData = new NormalChartData(category, series, value); - chart.setPreViewChartData(normalChartData); - ChartCollection chartCollection = new ChartCollection(chart); - return chartCollection; - } catch (Exception ex) { - FineLoggerFactory.getLogger().error(ex.getMessage(), ex); - } - return null; - } - - private void initColumnChartDetail(VanChart chart) { - initVanChartsTools(chart.getVanChartTools()); - VanChartColumnPlot plot = chart.getPlot(); - initColumnPlot(plot); - initVanChartYAxis(plot.getDefaultYAxis()); - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetThemeECComponentPreviewPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetThemeECComponentPreviewPane.java deleted file mode 100644 index a2a873ea38..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetThemeECComponentPreviewPane.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.fr.widgettheme.theme.panel; - -import com.fr.base.theme.FormTheme; -import com.fr.design.mainframe.theme.preview.ComponentPreviewPane; - -import java.awt.Component; - -import static com.fr.design.i18n.Toolkit.i18nText; - -/** - * 决策报表主题界面的那个表格+标题部分 - * - * @author John.Ying - * @since 1.0 - * Created on 2021/3/18 - */ -public class WidgetThemeECComponentPreviewPane extends ComponentPreviewPane { - private WidgetThemeECPreviewPane contentPane; - - public WidgetThemeECComponentPreviewPane() { - super(i18nText("Fine-Design_Basic_Template_Theme_Profile_Pane_EC_Title")); - } - - @Override - protected Component createContentPane() { - contentPane = new WidgetThemeECPreviewPane(); - return contentPane; - } - - @Override - public void refresh(FormTheme theme) { - super.refresh(theme); - contentPane.refresh(theme); - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetThemeECPreviewPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetThemeECPreviewPane.java deleted file mode 100644 index 774ccf1c1e..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetThemeECPreviewPane.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.fr.widgettheme.theme.panel; - -import com.fr.base.CellBorderSourceFlag; -import com.fr.base.theme.TemplateTheme; -import com.fr.base.theme.settings.ThemedCellStyleList; -import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.mainframe.theme.preview.UINoOpaquePanel; -import com.fr.design.mainframe.theme.preview.ecpreview.AbstractECPreviewPane; -import com.fr.design.mainframe.theme.preview.ecpreview.cell.AbstractPreviewCell; -import com.fr.design.mainframe.theme.preview.ecpreview.cell.PreviewCell; - -import javax.swing.BorderFactory; -import javax.swing.JPanel; -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.GridLayout; -import java.util.ArrayList; -import java.util.List; - -/** - * 主题界面frm里的那个表格,做了简单修改,削减了几行重复内容,腾出控件参数面板的空间 - * - * @author John.Ying - * @since 11.0 - * Created on 2021/3/18 - */ -public class WidgetThemeECPreviewPane extends AbstractECPreviewPane { - private final List headerCellList = new ArrayList<>(); - private final List contentCellList = new ArrayList<>(); - private final List highLightCellList = new ArrayList<>(); - private final List assistCellList = new ArrayList<>(); - private static final int COL_COUNT = 5; - private static final int CONTENT_ROW_COUNT = 1; - - public WidgetThemeECPreviewPane() { - this.setPreferredSize(new Dimension(517, 158 - 36)); - this.setBorder(BorderFactory.createEmptyBorder(0, 1, 2, 1)); - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - JPanel titlePane = new UINoOpaquePanel(new GridLayout()); - JPanel extCenterPane = FRGUIPaneFactory.createBorderLayout_NO_Opaque_Pane(); - this.add(extCenterPane, BorderLayout.CENTER); - extCenterPane.add(titlePane, BorderLayout.NORTH); - for (int c = 0; c < COL_COUNT; c++) { - PreviewCell cell = new PreviewCell(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Header")); - int flag = CellBorderSourceFlag.ALL_BORDER_SOURCE_OUTER; - if (c > 0) { - flag |= CellBorderSourceFlag.LEFT_BORDER_SOURCE_INNER; - } - if (c < COL_COUNT - 1) { - flag |= CellBorderSourceFlag.RIGHT_BORDER_SOURCE_INNER; - } - cell.setBorderSourceFlag(flag); - cell.setPreferredSize(new Dimension(103, 36)); - titlePane.add(cell); - headerCellList.add(cell); - } - JPanel contentPane = new UINoOpaquePanel(new GridLayout(1, 5, 0, 0)); - extCenterPane.add(contentPane, BorderLayout.CENTER); - for (int i = 0; i < COL_COUNT * CONTENT_ROW_COUNT; i++) { - PreviewCell cell = new PreviewCell(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Main_Text")); - int c = i % COL_COUNT; - int flag = CellBorderSourceFlag.ALL_BORDER_SOURCE_OUTER; - if (c > 0) { - flag |= CellBorderSourceFlag.LEFT_BORDER_SOURCE_INNER; - } - if (c < COL_COUNT - 1) { - flag |= CellBorderSourceFlag.RIGHT_BORDER_SOURCE_INNER; - } - cell.setBorderSourceFlag(flag); - cell.setPreferredSize(new Dimension(103, 30)); - contentPane.add(cell); - contentCellList.add(cell); - } - - JPanel endPane = new UINoOpaquePanel(new GridLayout()); - extCenterPane.add(endPane, BorderLayout.SOUTH); - for (int c = 0; c < COL_COUNT; c++) { - PreviewCell cell = new PreviewCell(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Highlight_Text")); - int flag = CellBorderSourceFlag.ALL_BORDER_SOURCE_OUTER; - if (c > 0) { - flag |= CellBorderSourceFlag.LEFT_BORDER_SOURCE_INNER; - } - if (c < COL_COUNT - 1) { - flag |= CellBorderSourceFlag.RIGHT_BORDER_SOURCE_INNER; - } - cell.setBorderSourceFlag(flag); - cell.setPreferredSize(new Dimension(103, 30)); - endPane.add(cell); - highLightCellList.add(cell); - } - - JPanel extSouthPane = FRGUIPaneFactory.createBorderLayout_NO_Opaque_Pane(); - PreviewCell assistCell = new PreviewCell(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Assist_Text")); - assistCell.setBorderSourceFlag(CellBorderSourceFlag.ALL_BORDER_SOURCE_OUTER); - assistCell.setPreferredSize(new Dimension(123, 30)); - assistCellList.add(assistCell); - extSouthPane.add(assistCell); - this.add(extSouthPane, BorderLayout.SOUTH); - } - - @Override - public void refresh(TemplateTheme theme) { - ThemedCellStyleList cellStyleConfig = theme.getCellStyleList(); - refresh(headerCellList, cellStyleConfig.getUse4Header()); - refresh(contentCellList, cellStyleConfig.getUse4MainText()); - refresh(highLightCellList, cellStyleConfig.getUse4HighlightText()); - refresh(assistCellList, cellStyleConfig.getUse4SupportInfo()); - } - - -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetThemeECReportPreviewPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetThemeECReportPreviewPane.java deleted file mode 100644 index 39cd48a566..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/panel/WidgetThemeECReportPreviewPane.java +++ /dev/null @@ -1,248 +0,0 @@ -package com.fr.widgettheme.theme.panel; - -import com.fr.base.CellBorderSourceFlag; -import com.fr.base.theme.ReportTheme; -import com.fr.base.theme.TemplateTheme; -import com.fr.base.theme.settings.ThemedCellStyleList; -import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.mainframe.theme.preview.ThemePreviewed; -import com.fr.design.mainframe.theme.preview.UINoOpaquePanel; -import com.fr.design.mainframe.theme.preview.ecpreview.AbstractECPreviewPane; -import com.fr.design.mainframe.theme.preview.ecpreview.cell.AbstractPreviewCell; -import com.fr.design.mainframe.theme.preview.ecpreview.cell.CornerPreviewCell; -import com.fr.design.mainframe.theme.preview.ecpreview.cell.PreviewCell; - -import javax.swing.BorderFactory; -import javax.swing.JPanel; -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.GridLayout; -import java.awt.Point; -import java.awt.geom.Point2D; -import java.util.ArrayList; -import java.util.List; - -/** - * 主题界面report里的那个表格,做了简单修改,削减了几行重复内容,腾出控件参数面板的空间 - * - * @author John.Ying - * @since 1.0 - * Created on 2021/3/18 - */ -public class WidgetThemeECReportPreviewPane extends UINoOpaquePanel implements ThemePreviewed { - private final List headerTitleCellList = new ArrayList<>(); // 大标题样式单元格 - private final List headerCellList = new ArrayList<>(); // 表头样式单元格 - private final List titleCellList = new ArrayList<>(); // 小标题样式单元格 - private final List contentCellList = new ArrayList<>(); // 正文样式单元格 - private final List highLightCellList = new ArrayList<>(); // 高亮文本样式单元格 - private final List assistCellList = new ArrayList<>(); // 辅助信息样式单元格 - private static final int CONTENT_ROW_COUNT = 3; - private static final int COL_COUNT = 3; - - private final PreviewPane previewPane; - - public WidgetThemeECReportPreviewPane() { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - previewPane = new PreviewPane(); - this.add(previewPane, BorderLayout.CENTER); - } - - @Override - public void refresh(ReportTheme theme) { - previewPane.refresh(theme); - } - - - class PreviewPane extends AbstractECPreviewPane { - - - public PreviewPane() { - this.setPreferredSize(new Dimension(517, 208)); - this.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10)); - - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - JPanel northPane = createNorthPane(); - JPanel centerPane = createCenterPane(); - JPanel southPane = createSouthPane(); - this.add(northPane, BorderLayout.NORTH); - this.add(centerPane, BorderLayout.CENTER); - this.add(southPane, BorderLayout.SOUTH); - } - - private JPanel createNorthPane() { - JPanel northPane = FRGUIPaneFactory.createBorderLayout_NO_Opaque_Pane(); - AbstractPreviewCell bigTitleCell = new PreviewCell(Toolkit.i18nText("Fine-Design_Basic_Template_Theme_Profile_Pane_Cell_Style_Big_Title")); - bigTitleCell.setBorderSourceFlag(CellBorderSourceFlag.ALL_BORDER_SOURCE_OUTER); - bigTitleCell.setPreferredSize(new Dimension(615, 46)); - headerTitleCellList.add(bigTitleCell); - northPane.add(bigTitleCell, BorderLayout.NORTH); - CornerPreviewCell cornerCell = createCornerPreviewCell(); - titleCellList.add(cornerCell); - northPane.add(cornerCell, BorderLayout.WEST); - JPanel centerPane = FRGUIPaneFactory.createBorderLayout_NO_Opaque_Pane(); - northPane.add(centerPane, BorderLayout.CENTER); - PreviewCell cell = new PreviewCell(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Small_Title")); - cell.setBorderSourceFlag(CellBorderSourceFlag.ALL_BORDER_SOURCE_OUTER); - titleCellList.add(cell); - cell.setPreferredSize(new Dimension(308, 38)); - centerPane.add(cell, BorderLayout.NORTH); - JPanel eastSouthPane = new UINoOpaquePanel(new GridLayout()); - for (int c = 0; c < CONTENT_ROW_COUNT; c++) { - PreviewCell headerCell = createPreviewCellHeader(c); - headerCellList.add(headerCell); - eastSouthPane.add(headerCell); - } - centerPane.add(eastSouthPane, BorderLayout.CENTER); - return northPane; - } - - /** - * 创建CornerPreviewCell - */ - private CornerPreviewCell createCornerPreviewCell() { - CornerPreviewCell cornerCell = new CornerPreviewCell(new String[]{Toolkit.i18nText("Fine-Design_Basic_Column_Name"), - Toolkit.i18nText("Fine-Design_Basic_Template_Theme_Profile_Pane_EC_Data"), Toolkit.i18nText("Fine-Design_Basic_Template_Theme_Profile_Pane_Row_Name")}, - new Point2D[]{new Point(159, 71), new Point(225, 49)}); - cornerCell.setBorderSourceFlag(CellBorderSourceFlag.INVALID_BORDER_SOURCE); - cornerCell.setPreferredSize(new Dimension(225, 71)); - return cornerCell; - } - - /** - * 创建预览单元格标题 - * - * @param c 文本行数 - * @return PreviewCell - */ - private PreviewCell createPreviewCellHeader(int c) { - PreviewCell headerCell = new PreviewCell(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Header")); - int flag = CellBorderSourceFlag.ALL_BORDER_SOURCE_OUTER; - if (c > 0) { - flag |= CellBorderSourceFlag.LEFT_BORDER_SOURCE_INNER; - } - if (c < CONTENT_ROW_COUNT - 1) { - flag |= CellBorderSourceFlag.RIGHT_BORDER_SOURCE_INNER; - } - headerCell.setBorderSourceFlag(flag); - return headerCell; - } - - private JPanel createCenterPane() { - JPanel centerPane = FRGUIPaneFactory.createBorderLayout_NO_Opaque_Pane(); - JPanel westPane = FRGUIPaneFactory.createBorderLayout_NO_Opaque_Pane(); - centerPane.add(westPane, BorderLayout.WEST); - PreviewCell cell1 = new PreviewCell(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Small_Title")); - titleCellList.add(cell1); - cell1.setPreferredSize(new Dimension(112, 93)); - westPane.add(cell1, BorderLayout.WEST); - JPanel gridPane = createGridPane(); - - westPane.add(gridPane, BorderLayout.CENTER); - JPanel innerCenterPane = new UINoOpaquePanel(new GridLayout(3, 3)); - centerPane.add(innerCenterPane, BorderLayout.CENTER); - for (int i = 0; i < COL_COUNT*CONTENT_ROW_COUNT; i++) { - PreviewCell cell ; - int r = i / CONTENT_ROW_COUNT; - int c = i % CONTENT_ROW_COUNT; - if (c == CONTENT_ROW_COUNT - 1) { - cell = createPreviewCellHighlight(r); - highLightCellList.add(cell); - } else { - cell = createPreviewCellMain(r, c); - contentCellList.add(cell); - } - cell.setPreferredSize(new Dimension(123, 31)); - innerCenterPane.add(cell); - } - return centerPane; - } - - /** - * 创建高亮预览单元格 - * - * @param r 计算标志位 - * @return 单元格 - */ - private PreviewCell createPreviewCellHighlight(int r) { - PreviewCell cell = new PreviewCell(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Highlight_Text")); - int flag = CellBorderSourceFlag.ALL_BORDER_SOURCE_OUTER; - if (r != 0) { - flag |= CellBorderSourceFlag.TOP_BORDER_SOURCE_INNER; - } - if (r != COL_COUNT - 1) { - flag |= CellBorderSourceFlag.BOTTOM_BORDER_SOURCE_INNER; - } - cell.setBorderSourceFlag(flag); - return cell; - } - - /** - * 创建正文预览单元格 - * - * @param r 计算标志位 - * @param c 计算标志位 - * @return 单元格 - */ - private PreviewCell createPreviewCellMain(int r, int c) { - PreviewCell cell = new PreviewCell(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Main_Text")); - int flag = CellBorderSourceFlag.ALL_BORDER_SOURCE_OUTER; - if (r > 0) { - flag |= CellBorderSourceFlag.TOP_BORDER_SOURCE_INNER; - } - if (r < COL_COUNT - 1) { - flag |= CellBorderSourceFlag.BOTTOM_BORDER_SOURCE_INNER; - } - if (c > 0) { - flag |= CellBorderSourceFlag.LEFT_BORDER_SOURCE_INNER; - } - if (c < 1) { - flag |= CellBorderSourceFlag.RIGHT_BORDER_SOURCE_INNER; - } - cell.setBorderSourceFlag(flag); - return cell; - } - - private JPanel createGridPane() { - int rowCount = 3; - int columnCount = 1; - JPanel gridPane = new UINoOpaquePanel(new GridLayout(rowCount, columnCount)); - for (int r = 0; r < rowCount; r++) { - PreviewCell cell = new PreviewCell(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Header")); - int flag = CellBorderSourceFlag.ALL_BORDER_SOURCE_OUTER; - if (r > 0) { - flag |= CellBorderSourceFlag.TOP_BORDER_SOURCE_INNER; - } - if (r < COL_COUNT - 1) { - flag |= CellBorderSourceFlag.BOTTOM_BORDER_SOURCE_INNER; - } - cell.setBorderSourceFlag(flag); - cell.setPreferredSize(new Dimension(113, 31)); - headerCellList.add(cell); - gridPane.add(cell); - } - return gridPane; - } - - private JPanel createSouthPane(){ - JPanel southPane = FRGUIPaneFactory.createBorderLayout_NO_Opaque_Pane(); - PreviewCell assistCell = new PreviewCell(Toolkit.i18nText("Fine-Design_Basic_Predefined_Style_Assist_Text")); - assistCell.setBorderSourceFlag(CellBorderSourceFlag.ALL_BORDER_SOURCE_OUTER); - assistCell.setPreferredSize(new Dimension(123, 30)); - assistCellList.add(assistCell); - southPane.add(assistCell, BorderLayout.CENTER); - return southPane; - } - - @Override - public void refresh(TemplateTheme theme) { - ThemedCellStyleList cellStyleConfig = theme.getCellStyleList(); - refresh(headerTitleCellList, cellStyleConfig.getUse4BigTitle()); - refresh(headerCellList, cellStyleConfig.getUse4Header()); - refresh(contentCellList, cellStyleConfig.getUse4MainText()); - refresh(titleCellList, cellStyleConfig.getUse4SmallTitle()); - refresh(highLightCellList, cellStyleConfig.getUse4HighlightText()); - refresh(assistCellList, cellStyleConfig.getUse4SupportInfo()); - } - } -} \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/widgettheme/util/ThemePreviewPaneInitHelper.java b/designer-base/src/main/java/com/fr/widgettheme/util/ThemePreviewPaneInitHelper.java deleted file mode 100644 index c7adedbbc7..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/util/ThemePreviewPaneInitHelper.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.fr.widgettheme.util; - -import com.fr.base.BaseFormula; -import com.fr.chart.chartattr.Title; -import com.fr.design.i18n.Toolkit; -import com.fr.plugin.chart.attr.axis.VanChartAxis; -import com.fr.plugin.chart.base.AttrLabel; -import com.fr.plugin.chart.base.VanChartTools; -import com.fr.plugin.chart.column.VanChartColumnPlot; -import com.fr.plugin.chart.type.GradientType; - -/** - * 辅助report和form的控件显示主题预览窗口做初始化工作 - * 没有其他的用途,不要用在其他的地方,只是抽一些方法出来,降低复杂度 - * - * @author obo - * @since 11.0 - * Created on 2023/11/14 - */ -public class ThemePreviewPaneInitHelper { - private ThemePreviewPaneInitHelper() { - } - - /** - * 初始化图表工具 - * - * @param vanChartTools 图表工具 - */ - public static void initVanChartsTools(VanChartTools vanChartTools) { - vanChartTools.setSort(false); - vanChartTools.setExport(false); - vanChartTools.setFullScreen(false); - } - - /** - * 初始化柱形图绘图区 - * - * @param plot 绘图区 - */ - public static void initColumnPlot(VanChartColumnPlot plot) { - AttrLabel defaultAttrLabel = plot.getDefaultAttrLabel(); - defaultAttrLabel.setEnable(true); - defaultAttrLabel.getAttrLabelDetail().getBorder().setBorderStyle(0); - defaultAttrLabel.getAttrLabelDetail().getBackground().setBackground(null); - plot.getConditionCollection().getDefaultAttr().addDataSeriesCondition(defaultAttrLabel); - plot.getGradientStyle().setGradientType(GradientType.NONE); - plot.setSeriesOverlapPercent(30); - plot.setCategoryIntervalPercent(30); - } - - /** - * 初始化图表Y轴 - * - * @param yAxis 轴 - */ - public static void initVanChartYAxis(VanChartAxis yAxis) { - Title title = new Title(); - title.setTextObject(Toolkit.i18nText("Fine-Design_Chart_Axis_Title")); - title.getTextAttr().setRotation(-90); - title.getTextAttr().setThemed(true); - yAxis.setTitle(title); - yAxis.setShowAxisTitle(true); - yAxis.setCustomMaxValue(true); - yAxis.setCustomMinValue(true); - yAxis.setCustomMainUnit(true); - yAxis.setMaxValue(BaseFormula.createFormulaBuilder().build("=600")); - yAxis.setMinValue(BaseFormula.createFormulaBuilder().build("=0")); - yAxis.setMainUnit(BaseFormula.createFormulaBuilder().build("=200")); - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/util/WidgetThemeDesignerUtils.java b/designer-base/src/main/java/com/fr/widgettheme/util/WidgetThemeDesignerUtils.java deleted file mode 100644 index 7106161f8c..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/util/WidgetThemeDesignerUtils.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.fr.widgettheme.util; - -import com.fr.base.io.AttrMark; -import com.fr.base.io.IOFile; -import com.fr.design.file.HistoryTemplateListCache; -import com.fr.design.mainframe.JTemplate; -import com.fr.stable.StringUtils; -import com.fr.widgettheme.control.attr.WidgetDisplayEnhanceMarkAttr; - -/** - * 控件主题设计器部分工具类 - * - * @author obo - * @since 11.0 - * Created on 2023/11/13 - */ -public class WidgetThemeDesignerUtils { - - private WidgetThemeDesignerUtils() { - } - - /** - * 从 WorkBook 中加载 WatermarkAttr 属性对象 - * - * @param template AttrMark 对象,包括 WorkBook - * @return StrongestControlMarkAttr 对象 - */ - public static WidgetDisplayEnhanceMarkAttr getStrongestControlAttrFromTemplate(AttrMark template) { - return template.getAttrMark(WidgetDisplayEnhanceMarkAttr.XML_TAG); - } - - /** - * 判断是否启用了控件显示增强 - * - * @return 开启与否 - */ - public static boolean enableWidgetEnhance() { - JTemplate jTemplate = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); - if (JTemplate.isValid(jTemplate)) { - IOFile ioFile = (IOFile) jTemplate.getTarget(); - WidgetDisplayEnhanceMarkAttr mark = ioFile.getAttrMark(WidgetDisplayEnhanceMarkAttr.XML_TAG); - return mark != null && mark.isWidgetEnhance(); - } - 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"); - } -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/DisplayEnhanceMobileStyleDefinePane.java b/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/DisplayEnhanceMobileStyleDefinePane.java deleted file mode 100644 index a0ed4159c7..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/DisplayEnhanceMobileStyleDefinePane.java +++ /dev/null @@ -1,273 +0,0 @@ -package com.fr.widgettheme.widget.mobile.pane; - -import com.fr.base.background.ColorBackground; -import com.fr.widgettheme.theme.widget.style.MobileThemedWidgetStyle; -import com.fr.widgettheme.theme.widget.mobile.style.WidgetThemeMobileCommonExtraStyle; -import com.fr.design.beans.BasicBeanPane; -import com.fr.design.constants.LayoutConstants; -import com.fr.design.designer.IntervalConstants; -import com.fr.design.file.HistoryTemplateListCache; -import com.fr.design.gui.icombobox.LineComboBox; -import com.fr.design.gui.icombobox.UIComboBox; -import com.fr.design.gui.ilable.UILabel; -import com.fr.design.gui.ispinner.UISpinner; -import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.mainframe.JTemplate; -import com.fr.design.mainframe.mobile.ui.MobileStyleCustomDefinePane; -import com.fr.design.style.color.ColorSelectBox; -import com.fr.design.style.color.NewColorSelectBox; -import com.fr.design.utils.gui.GUICoreUtils; -import com.fr.form.ui.Widget; -import com.fr.form.ui.mobile.MobileCommonExtraStyle; -import com.fr.form.ui.mobile.MobileStyle; -import com.fr.general.FRFont; -import com.fr.invoke.Reflect; -import com.fr.widgettheme.theme.widget.theme.WidgetThemeDisplayConstants; -import com.fr.stable.Constants; -import com.fr.stable.StringUtils; - -import javax.swing.JPanel; -import javax.swing.border.EmptyBorder; -import javax.swing.border.TitledBorder; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Font; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; - -/** - *

开启控件显示增强后替换原通用属性面板 - *

参考{@link com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane} - * - * @author Coral.Chen - * @since 11.0 - * Created on 2023/4/11 - */ -public class DisplayEnhanceMobileStyleDefinePane extends BasicBeanPane { - public static final int NORMAL_COMBO_WIDTH = 152; - protected Widget widget; - protected MobileStyleCustomDefinePane customBeanPane; - protected Class mobileStyleClazz; - protected UIComboBox customCombo; - protected JPanel settingPane; - protected NewColorSelectBox themeColorSelectBox; - protected Color titleColor = new Color(47, 142, 241); - protected JPanel commonPane; - protected LineComboBox borderType; - protected UISpinner borderRadius; - protected MobileStyleFontConfigPane fontConfigPane; - protected ColorSelectBox widgetBackgroundSelectBox; - - protected MobileStyle mobileStyle; - - public DisplayEnhanceMobileStyleDefinePane(Widget widget, Class customBeanPaneClass, - Class mobileStyleClazz) { - this.widget = widget; - this.customBeanPane = Reflect.on(customBeanPaneClass).create(widget).get(); - this.mobileStyleClazz = mobileStyleClazz; - // 一些默认的情况,没有,需要初始化一下。 - initMobileStyle(widget); - init(); - } - - private void initMobileStyle(Widget widget) { - mobileStyle = widget.getMobileStyle() != null ? widget.getMobileStyle() : Reflect.on(mobileStyleClazz).create().get(); - } - - @Override - public void populateBean(MobileStyle ob) { - MobileCommonExtraStyle extraStyle = ob.getMobileCommonExtraStyle(); - if (extraStyle instanceof WidgetThemeMobileCommonExtraStyle) { - WidgetThemeMobileCommonExtraStyle style = (WidgetThemeMobileCommonExtraStyle) extraStyle; - customCombo.setSelectedIndex(style.isCustom() ? 1 : 0); - borderType.setSelectedLineStyle(style.getBorderType()); - borderRadius.setValue(style.getBorderRadius()); - if (style.getThemeColor() != null) { - themeColorSelectBox.setSelectObject(style.getThemeColor()); - } - if (style.getNewFont() != null) { - fontConfigPane.populateBean(style.getNewFont()); - } - if (style.getWidgetBackground() != null) { - widgetBackgroundSelectBox.setSelectObject(((ColorBackground) style.getWidgetBackground()).getColor()); - } - } - this.customBeanPane.populateBean(ob); - } - - @Override - public MobileStyle updateBean() { - mobileStyle = Reflect.on(mobileStyleClazz).create().get(); - WidgetThemeMobileCommonExtraStyle extraStyle = new WidgetThemeMobileCommonExtraStyle(); - extraStyle.setCustom(customCombo.getSelectedIndex() == 1); - extraStyle.setThemeColor(themeColorSelectBox.getSelectObject()); - extraStyle.setBorderType(borderType.getSelectedLineStyle()); - extraStyle.setBorderRadius(borderRadius.getValue()); - extraStyle.setNewFont(fontConfigPane.updateBean()); - extraStyle.setWidgetBackground(ColorBackground.getInstance(widgetBackgroundSelectBox.getSelectObject())); - mobileStyle.setMobileCommonExtraStyle(extraStyle); - this.widget.setMobileStyle(mobileStyle); - this.customBeanPane.updateBean(); - return mobileStyle; - } - - @Override - protected String title4PopupWindow() { - return StringUtils.EMPTY; - } - - private void init() { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - createGeneralPane(); - createCustomPane(); - } - - protected void createFontPane(Color defaultFontColor) { - fontConfigPane = new MobileStyleFontConfigPane(defaultFontColor); - settingPane.add(createLeftRightComponentsPane(createConfigLabel(Toolkit.i18nText("Fine-Design_Mobile_Widget_Font")), fontConfigPane)); - } - - private void createGeneralPane() { - createPreviewPane(); - createCommonPane(); - } - - private void createPreviewPane() { - JPanel mobileStylePreviewPane = Reflect.on(customBeanPane).call("createPreviewPane").get(); - if (mobileStylePreviewPane != null) { - JPanel previewPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - TitledBorder titledBorder = createTitledBorder(Toolkit.i18nText("Fine-Design_Basic_Widget_Style_Preview")); - previewPane.setBorder(titledBorder); - previewPane.setPreferredSize(new Dimension(500, 83)); - previewPane.add(mobileStylePreviewPane, BorderLayout.CENTER); - this.add(previewPane, BorderLayout.NORTH); - } - } - - private void createCommonPane() { - TitledBorder titledBorder = createTitledBorder(Toolkit.i18nText("Fine-Design_Mobile_Common_Attribute")); - commonPane = FRGUIPaneFactory.createVerticalFlowLayout_Pane(true, FlowLayout.LEADING, 0, 10); - commonPane.setBorder(titledBorder); - this.add(commonPane, BorderLayout.NORTH); - - - customCombo = new UIComboBox(new String[]{Toolkit.i18nText("Fine-Design_Mobile_Default"), Toolkit.i18nText("Fine-Design_Mobile_Custom")}); - customCombo.setSelectedIndex(0); - customCombo.setPreferredSize(new Dimension(NORMAL_COMBO_WIDTH + 15, 20)); - customCombo.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - boolean custom = customCombo.getSelectedIndex() == 1; - settingPane.setVisible(custom); - } - }); - commonPane.add(createLeftRightComponentsPane(createConfigLabel(Toolkit.i18nText("Fine-Design_Mobile_Attribute_Settings")), customCombo)); - - settingPane = FRGUIPaneFactory.createVerticalFlowLayout_Pane(true, FlowLayout.LEADING, 0, 10); - settingPane.setBorder(new EmptyBorder(-10, 0, 0, 0)); - settingPane.setVisible(false); - commonPane.add(settingPane); - createUniversalPane(); - } - - protected void createUniversalPane() { - // 主题色 - createThemePane(); - // 组件背景 - createBackgroundPane(); - // 边框线型 - createBorderLinePane(); - // 圆角边框 - createBorderRadiusPane(); - // 字体 - createFontPane(WidgetThemeDisplayConstants.DEFAULT_FONT_COLOR_BLACK); - } - - - protected void createBackgroundPane() { - widgetBackgroundSelectBox = new ColorSelectBox(NORMAL_COMBO_WIDTH); - initBackgroundColor(); - JPanel backgroundPane = createLeftRightComponentsPane(createConfigLabel(Toolkit.i18nText("Fine-Design_Mobile_Widget_Background")), widgetBackgroundSelectBox); - settingPane.add(backgroundPane); - } - - protected void initBackgroundColor() { - widgetBackgroundSelectBox.setSelectObject(WidgetThemeDisplayConstants.DEFAULT_TRANSPARENT_COLOR); - } - - protected void createThemePane() { - themeColorSelectBox = new NewColorSelectBox(NORMAL_COMBO_WIDTH); - // 默认为当前模板选中的主题色 - themeColorSelectBox.setSelectObject(getCurrentTemplateThemeColor()); - settingPane.add(createLeftRightComponentsPane(createConfigLabel(Toolkit.i18nText("Fine-Design_Basic_Theme_Color")), themeColorSelectBox)); - } - - - protected void createBorderLinePane() { - borderType = new LineComboBox(WidgetThemeDisplayConstants.MOBILE_BORDER_LINE_STYLE_ARRAY); - initDefaultLineType(); - borderType.setPreferredSize(new Dimension(NORMAL_COMBO_WIDTH + 15, 20)); - // 边框线型 - settingPane.add(createLeftRightComponentsPane(createConfigLabel(Toolkit.i18nText("Fine-Design_Mobile_Widget_BorderType")), borderType)); - } - - protected void initDefaultLineType() { - borderType.setSelectedLineStyle(Constants.LINE_THIN); - } - - protected void createBorderRadiusPane() { - borderRadius = new UISpinner(0, Integer.MAX_VALUE, 1, 2); - borderRadius.setPreferredSize(new Dimension(NORMAL_COMBO_WIDTH + 20, 20)); - // 圆角边框 - settingPane.add(createLeftRightComponentsPane(createConfigLabel(Toolkit.i18nText("Fine-Design_Mobile_Widget_BorderRadius")), borderRadius)); - } - - protected void createCustomPane() { - JPanel configPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - TitledBorder titledBorder = createTitledBorder(Toolkit.i18nText("Fine-Design_Report_Set")); - configPane.setBorder(titledBorder); - - configPane.add(this.customBeanPane, BorderLayout.CENTER); - - this.add(configPane, BorderLayout.CENTER); - } - - protected TitledBorder createTitledBorder(String title) { - TitledBorder titledBorder = GUICoreUtils.createTitledBorder(title, titleColor); - titledBorder.setTitleFont(FRFont.getInstance("PingFangSC-Regular", Font.PLAIN, 12)); - return titledBorder; - } - - protected UILabel createConfigLabel(String title) { - UILabel label = new UILabel(title, UILabel.LEFT); - label.setPreferredSize(new Dimension(75, 20)); - label.setBorder(new EmptyBorder(0, 15, 0, 0)); - return label; - } - - protected JPanel createLeftRightComponentsPane(Component... components) { - JPanel tableLayoutPane = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{components}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.VGAP_MEDIUM); - return tableLayoutPane; - } - - /** - * 获取当前编辑移动端控件样式主题色 - * - * @return - */ - protected Color getCurrentTemplateThemeColor() { - JTemplate jTemplate = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); - Color themeColor = WidgetThemeDisplayConstants.DEFAULT_THEME_COLOR; - if (JTemplate.isValid(jTemplate)) { - MobileThemedWidgetStyle mobileWidgetStyle = (MobileThemedWidgetStyle) jTemplate.getTemplateTheme().getMobileWidgetStyle(); - mobileWidgetStyle = mobileWidgetStyle == null ? new MobileThemedWidgetStyle() : mobileWidgetStyle; - themeColor = mobileWidgetStyle.getThemeColor(); - } - return themeColor; - } -} \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/FileEditorMobileStyleDefinePane.java b/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/FileEditorMobileStyleDefinePane.java deleted file mode 100644 index 801585f429..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/FileEditorMobileStyleDefinePane.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.fr.widgettheme.widget.mobile.pane; - -import com.fr.base.background.ColorBackground; -import com.fr.widgettheme.theme.widget.mobile.style.FileEditorStyle; -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.invoke.Reflect; - -/** - * 文件属性定义面板 - * - * @author Coral.Chen - * @since 11.0 - * Created on 2023/5/19 - */ -public class FileEditorMobileStyleDefinePane extends DisplayEnhanceMobileStyleDefinePane { - - public FileEditorMobileStyleDefinePane(Widget widget, Class customBeanPaneClass, Class mobileStyleClazz) { - super(widget, customBeanPaneClass, mobileStyleClazz); - } - - @Override - public void populateBean(MobileStyle ob) { - MobileCommonExtraStyle extraStyle = ob.getMobileCommonExtraStyle(); - if (extraStyle instanceof FileEditorStyle) { - FileEditorStyle style = (FileEditorStyle) extraStyle; - customCombo.setSelectedIndex(style.isCustom() ? 1 : 0); - if (style.getWidgetBackground() != null) { - widgetBackgroundSelectBox.setSelectObject(((ColorBackground) style.getWidgetBackground()).getColor()); - } - borderType.setSelectedLineStyle(style.getBorderType()); - borderRadius.setValue(style.getBorderRadius()); - } - this.customBeanPane.populateBean(ob); - } - - @Override - public MobileStyle updateBean() { - mobileStyle = Reflect.on(mobileStyleClazz).create().get(); - FileEditorStyle extraStyle = new FileEditorStyle(); - extraStyle.setCustom(customCombo.getSelectedIndex() == 1); - extraStyle.setWidgetBackground(ColorBackground.getInstance(widgetBackgroundSelectBox.getSelectObject())); - extraStyle.setBorderType(borderType.getSelectedLineStyle()); - extraStyle.setBorderRadius(borderRadius.getValue()); - mobileStyle.setMobileCommonExtraStyle(extraStyle); - this.widget.setMobileStyle(mobileStyle); - this.customBeanPane.updateBean(); - return mobileStyle; - } - - @Override - protected void createUniversalPane() { - createBackgroundPane(); - createBorderLinePane(); - createBorderRadiusPane(); - } -} \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/FreeButtonMobileStyleDefinePane.java b/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/FreeButtonMobileStyleDefinePane.java deleted file mode 100644 index 6ab19b8dcf..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/FreeButtonMobileStyleDefinePane.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.fr.widgettheme.widget.mobile.pane; - -import com.fr.base.background.ColorBackground; -import com.fr.widgettheme.theme.widget.mobile.style.FreeButtonStyle; -import com.fr.design.i18n.Toolkit; -import com.fr.design.mainframe.mobile.ui.MobileStyleCustomDefinePane; -import com.fr.design.style.color.NewColorSelectBox; -import com.fr.form.ui.Widget; -import com.fr.form.ui.mobile.MobileCommonExtraStyle; -import com.fr.form.ui.mobile.MobileStyle; -import com.fr.invoke.Reflect; -import com.fr.widgettheme.theme.widget.theme.WidgetThemeDisplayConstants; - -/** - * 按钮控件通用属性面板 - * - * @author Coral.Chen - * @since 11.0 - * Created on 2023/5/25 - */ -public class FreeButtonMobileStyleDefinePane extends DisplayEnhanceMobileStyleDefinePane { - private NewColorSelectBox borderColorSelectBox; - private NewColorSelectBox iconColorSelectBox; - - - public FreeButtonMobileStyleDefinePane(Widget widget, Class customBeanPaneClass, Class mobileStyleClazz) { - super(widget, customBeanPaneClass, mobileStyleClazz); - } - - @Override - public void populateBean(MobileStyle ob) { - super.populateBean(ob); - MobileCommonExtraStyle extraStyle = ob.getMobileCommonExtraStyle(); - if (extraStyle instanceof FreeButtonStyle) { - FreeButtonStyle style = (FreeButtonStyle) extraStyle; - if (style.getBorderColor() != null) { - borderColorSelectBox.setSelectObject(style.getBorderColor()); - } - if (style.getIconColor() != null) { - iconColorSelectBox.setSelectObject(style.getIconColor()); - } - } - } - - @Override - public MobileStyle updateBean() { - mobileStyle = Reflect.on(mobileStyleClazz).create().get(); - FreeButtonStyle extraStyle = new FreeButtonStyle(); - extraStyle.setCustom(customCombo.getSelectedIndex() == 1); - extraStyle.setWidgetBackground(ColorBackground.getInstance(widgetBackgroundSelectBox.getSelectObject())); - extraStyle.setBorderType(borderType.getSelectedLineStyle()); - extraStyle.setBorderColor(borderColorSelectBox.getSelectObject()); - extraStyle.setBorderRadius(borderRadius.getValue()); - extraStyle.setNewFont(fontConfigPane.updateBean()); - extraStyle.setIconColor(iconColorSelectBox.getSelectObject()); - mobileStyle.setMobileCommonExtraStyle(extraStyle); - this.widget.setMobileStyle(mobileStyle); - this.customBeanPane.updateBean(); - return mobileStyle; - } - - @Override - protected void createUniversalPane() { - createBackgroundPane(); - createBorderLinePane(); - initBorderColor(); - createBorderRadiusPane(); - initIconColor(); - createFontPane(WidgetThemeDisplayConstants.DEFAULT_WHITE_COLOR); - } - - private void initIconColor() { - iconColorSelectBox = new NewColorSelectBox(NORMAL_COMBO_WIDTH); - iconColorSelectBox.setSelectObject(WidgetThemeDisplayConstants.DEFAULT_WHITE_COLOR); - settingPane.add(createLeftRightComponentsPane(createConfigLabel(Toolkit.i18nText("Fine-Design_Mobile_Widget_Icon_Color")), iconColorSelectBox)); - } - - @Override - protected void initDefaultLineType() { - borderType.setSelectedLineStyle(com.fr.stable.Constants.LINE_NONE); - } - - private void initBorderColor() { - borderColorSelectBox = new NewColorSelectBox(NORMAL_COMBO_WIDTH); - borderColorSelectBox.setSelectObject(WidgetThemeDisplayConstants.DEFAULT_THEME_COLOR); - settingPane.add(createLeftRightComponentsPane(createConfigLabel(Toolkit.i18nText("Fine-Design_Mobile_Widget_BorderColor")), borderColorSelectBox)); - } - - @Override - protected void initBackgroundColor() { - widgetBackgroundSelectBox.setSelectObject(getCurrentTemplateThemeColor()); - } -} \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/LabelMobileStyleDefinePane.java b/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/LabelMobileStyleDefinePane.java deleted file mode 100644 index 17388b859d..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/LabelMobileStyleDefinePane.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.fr.widgettheme.widget.mobile.pane; - -import com.fr.base.background.ColorBackground; -import com.fr.widgettheme.theme.widget.mobile.style.LabelIconSettingStyle; -import com.fr.design.i18n.Toolkit; -import com.fr.design.mainframe.mobile.ui.MobileStyleCustomDefinePane; -import com.fr.design.style.color.NewColorSelectBox; -import com.fr.form.ui.Widget; -import com.fr.form.ui.mobile.MobileCommonExtraStyle; -import com.fr.form.ui.mobile.MobileStyle; -import com.fr.invoke.Reflect; -import com.fr.widgettheme.theme.widget.theme.WidgetThemeDisplayConstants; - -/** - * 标签控件属性定义面板 - * - * @author Coral.Chen - * @since 11.0 - * Created on 2023/5/15 - */ -public class LabelMobileStyleDefinePane extends DisplayEnhanceMobileStyleDefinePane { - private NewColorSelectBox borderColorSelectBox; - - public LabelMobileStyleDefinePane(Widget widget, Class customBeanPaneClass, - Class mobileStyleClazz) { - super(widget, customBeanPaneClass, mobileStyleClazz); - } - - - @Override - public void populateBean(MobileStyle ob) { - super.populateBean(ob); - MobileCommonExtraStyle extraStyle = ob.getMobileCommonExtraStyle(); - if (extraStyle instanceof LabelIconSettingStyle) { - LabelIconSettingStyle style = (LabelIconSettingStyle) extraStyle; - if (style.getBorderColor() != null) { - borderColorSelectBox.setSelectObject(style.getBorderColor()); - } - } - } - - @Override - public MobileStyle updateBean() { - mobileStyle = Reflect.on(mobileStyleClazz).create().get(); - LabelIconSettingStyle extraStyle = new LabelIconSettingStyle(); - extraStyle.setCustom(customCombo.getSelectedIndex() == 1); - extraStyle.setWidgetBackground(ColorBackground.getInstance(widgetBackgroundSelectBox.getSelectObject())); - extraStyle.setBorderType(borderType.getSelectedLineStyle()); - extraStyle.setBorderColor(borderColorSelectBox.getSelectObject()); - extraStyle.setBorderRadius(borderRadius.getValue()); - extraStyle.setNewFont(fontConfigPane.updateBean()); - mobileStyle.setMobileCommonExtraStyle(extraStyle); - this.widget.setMobileStyle(mobileStyle); - this.customBeanPane.updateBean(); - return mobileStyle; - } - - @Override - protected void createUniversalPane() { - createBackgroundPane(); - createBorderLinePane(); - initBorderColor(); - createBorderRadiusPane(); - createFontPane(WidgetThemeDisplayConstants.DEFAULT_FONT_COLOR_BLACK); - } - - private void initBorderColor() { - borderColorSelectBox = new NewColorSelectBox(NORMAL_COMBO_WIDTH); - borderColorSelectBox.setSelectObject(WidgetThemeDisplayConstants.DEFAULT_TRANSPARENT_COLOR); - settingPane.add(createLeftRightComponentsPane(createConfigLabel(Toolkit.i18nText("Fine-Design_Mobile_Widget_BorderColor")), borderColorSelectBox)); - } - - @Override - protected void initDefaultLineType() { - borderType.setSelectedLineStyle(com.fr.stable.Constants.LINE_NONE); - } -} \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/MobileStyleFontConfigPane.java b/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/MobileStyleFontConfigPane.java deleted file mode 100644 index 6b02ec9ff0..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/pane/MobileStyleFontConfigPane.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.fr.widgettheme.widget.mobile.pane; - - -import com.fr.base.BaseUtils; -import com.fr.design.constants.LayoutConstants; -import com.fr.design.gui.ibutton.UIColorButton; -import com.fr.design.gui.ibutton.UIToggleButton; -import com.fr.design.gui.icombobox.UIComboBox; -import com.fr.design.gui.icombobox.UIComboBoxRenderer; -import com.fr.design.i18n.Toolkit; -import com.fr.design.utils.gui.GUICoreUtils; -import com.fr.general.FRFont; -import com.fr.stable.Constants; -import com.fr.stable.StringUtils; - -import javax.swing.DefaultComboBoxModel; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.border.EmptyBorder; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Font; -import java.util.Vector; - -/** - * 移动端字体面板 - * - * @author Coral.Chen - * @since 11.0 - * Created on 2023/5/22 - */ -public class MobileStyleFontConfigPane extends JPanel { - public static final int FONT_NONE = 0; - private static final int MAX_FONT_SIZE = 18; - private static final int MIN_FONT_SIZE = 12; - private static final Dimension BUTTON_SIZE = new Dimension(20, 18); - - /** - * 获取字体大小集合 - * - * @return 字体大小集合 - */ - public static Vector getFontSizes() { - Vector fontSizes = new Vector(); - for (int i = MIN_FONT_SIZE; i <= MAX_FONT_SIZE; i++) { - fontSizes.add(i); - } - return fontSizes; - } - - private UIComboBox fontSizeComboBox; - private UIColorButton color; - private UIToggleButton italic; - private UIToggleButton bold; - - public MobileStyleFontConfigPane() { - this.initComponent(new Color(0, 0, 0)); - } - - public MobileStyleFontConfigPane(Color defaultFontColor) { - this.initComponent(defaultFontColor); - } - - private void initComponent(Color defaultFontColor) { - fontSizeComboBox = new UIComboBox(); - fontSizeComboBox.setModel(new DefaultComboBoxModel(getFontSizes())); - fontSizeComboBox.setSelectedItem(16); - fontSizeComboBox.setPreferredSize(new Dimension(60, 20)); - fontSizeComboBox.setRenderer(new LineCellRenderer()); - color = new UIColorButton(); - color.setColor(defaultFontColor); - italic = new UIToggleButton(BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/italic.png")); - bold = new UIToggleButton(BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/bold.png")); - - this.setButtonsTips(); - this.setButtonsSize(BUTTON_SIZE); - - Component[] componentFont = new Component[]{ - fontSizeComboBox, color, italic, bold - }; - - JPanel buttonPane = new JPanel(new BorderLayout()); - JPanel flowPane = GUICoreUtils.createFlowPane(componentFont, FlowLayout.LEFT, LayoutConstants.HGAP_LARGE); - // 4是flowPane的默认横向gap,但会导致最左边的控件和边上也有4的间隙,调整一下 - flowPane.setBorder(new EmptyBorder(0, -LayoutConstants.HGAP_LARGE, 0, 0)); - buttonPane.add(flowPane); - - this.setLayout(new BorderLayout(0, 0)); - this.add(buttonPane, BorderLayout.CENTER); - } - - private void setButtonsTips() { - color.setToolTipText(Toolkit.i18nText("Fine-Design_Report_Foreground")); - italic.setToolTipText(Toolkit.i18nText("Fine-Design_Report_Italic")); - bold.setToolTipText(Toolkit.i18nText("Fine-Design_Report_Bold")); - } - - private void setButtonsSize(Dimension size) { - color.setPreferredSize(size); - italic.setPreferredSize(size); - bold.setPreferredSize(size); - } - - /** - * 填充字体 - * - * @param frFont 字体 - */ - public void populateBean(FRFont frFont) { - fontSizeComboBox.setSelectedItem(frFont.getSize()); - color.setColor(frFont.getForeground()); - bold.setSelected(frFont.isBold()); - italic.setSelected(frFont.isItalic()); - } - - /** - * 更新字体 - */ - public FRFont updateBean() { - int style = Font.PLAIN; - style += this.bold.isSelected() ? Font.BOLD : Font.PLAIN; - style += this.italic.isSelected() ? Font.ITALIC : Font.PLAIN; - return FRFont.getInstance( - FRFont.DEFAULT_FONTNAME, - style, - Float.parseFloat(fontSizeComboBox.getSelectedItem().toString()), - color.getColor(), - Constants.LINE_NONE - ); - } - - private class LineCellRenderer extends UIComboBoxRenderer { - public LineCellRenderer() { - super(); - } - - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - JLabel renderer = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - int currentValue = ((Integer) value).intValue(); - if (currentValue == com.fr.design.mainframe.mobile.ui.MobileStyleFontConfigPane.FONT_NONE) { - renderer.setText(StringUtils.BLANK + Toolkit.i18nText("Fine-Design_Report_None")); - } - return renderer; - } - } - -} diff --git a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/provider/DisplayEnhanceMobileStyleFactory.java b/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/provider/DisplayEnhanceMobileStyleFactory.java deleted file mode 100644 index 53650ca5d2..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/provider/DisplayEnhanceMobileStyleFactory.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.fr.widgettheme.widget.mobile.provider; - -import com.fr.widgettheme.widget.mobile.pane.FileEditorMobileStyleDefinePane; -import com.fr.widgettheme.widget.mobile.pane.FreeButtonMobileStyleDefinePane; -import com.fr.widgettheme.widget.mobile.pane.LabelMobileStyleDefinePane; -import com.fr.widgettheme.theme.widget.mobile.style.FileEditorStyle; -import com.fr.widgettheme.theme.widget.mobile.style.FreeButtonStyle; -import com.fr.widgettheme.theme.widget.mobile.style.LabelIconSettingStyle; -import com.fr.design.beans.BasicBeanPane; -import com.fr.design.mainframe.mobile.ui.MobileStyleCustomDefinePane; -import com.fr.form.ui.FreeButton; -import com.fr.form.ui.Label; -import com.fr.form.ui.MultiFileEditor; -import com.fr.form.ui.Widget; -import com.fr.form.ui.mobile.MobileCommonExtraStyle; -import com.fr.form.ui.mobile.MobileStyle; - -/** - * 样式创建工厂 - * - * @author Coral.Chen - * @since 11.0 - * Created on 2023/5/15 - */ -public class DisplayEnhanceMobileStyleFactory { - - /** - * 先写个简单工厂处理一下特殊的控件 - * - * @param widget - * @return 特殊控件的通用属性面板 - */ - public static BasicBeanPane createWidgetMobileStyleDefinePane(Widget widget, Class customDefinePane, Class mobileStyle) { - if (widget instanceof Label) { - return new LabelMobileStyleDefinePane(widget, customDefinePane, mobileStyle); - } - if (widget instanceof MultiFileEditor) { - return new FileEditorMobileStyleDefinePane(widget, customDefinePane, mobileStyle); - } - if (widget instanceof FreeButton) { - return new FreeButtonMobileStyleDefinePane(widget, customDefinePane, mobileStyle); - } - return null; - } - - /** - * 生成控件移动端通用属性 - * - * @param widget - * @return - */ - public static Class classForWidgetCommonExtraStyle(Widget widget) { - if (widget instanceof Label) { - return LabelIconSettingStyle.class; - } - if (widget instanceof MultiFileEditor) { - return FileEditorStyle.class; - } - if (widget instanceof FreeButton) { - return FreeButtonStyle.class; - } - return null; - } - -} \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/provider/WidgetThemeMobileStyleDefinePaneCreator.java b/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/provider/WidgetThemeMobileStyleDefinePaneCreator.java deleted file mode 100644 index a40199327b..0000000000 --- a/designer-base/src/main/java/com/fr/widgettheme/widget/mobile/provider/WidgetThemeMobileStyleDefinePaneCreator.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.fr.widgettheme.widget.mobile.provider; - -import com.fr.base.io.IOFile; -import com.fr.widgettheme.widget.mobile.pane.DisplayEnhanceMobileStyleDefinePane; -import com.fr.widgettheme.theme.widget.mobile.style.WidgetThemeMobileCommonExtraStyle; -import com.fr.design.beans.BasicBeanPane; -import com.fr.design.file.HistoryTemplateListCache; -import com.fr.design.mainframe.JTemplate; -import com.fr.design.mainframe.mobile.ui.MobileStyleCustomDefinePane; -import com.fr.form.ui.FreeButton; -import com.fr.form.ui.Label; -import com.fr.form.ui.MultiFileEditor; -import com.fr.form.ui.Widget; -import com.fr.form.ui.mobile.MobileCommonExtraStyle; -import com.fr.form.ui.mobile.MobileStyle; -import com.fr.log.FineLoggerFactory; -import com.fr.widgettheme.control.attr.WidgetDisplayEnhanceMarkAttr; -import org.jetbrains.annotations.NotNull; - -/** - * 控件主题移动端样式窗口创建类 - * - * @author obo - * @since 11.0 - * Created on 2023/11/13 - */ -public class WidgetThemeMobileStyleDefinePaneCreator { - - private WidgetThemeMobileStyleDefinePaneCreator() { - } - - /** - * 创建移动端控件样式属性窗口 - * - * @param widget 控件 - * @param customDefinePane 窗口类 - * @param mobileStyle 样式类 - * @return 窗口 - */ - public static BasicBeanPane createBaseBeanPane(Widget widget, Class customDefinePane, Class mobileStyle) { - try { - JTemplate jTemplate = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); - if (JTemplate.isValid(jTemplate)) { - IOFile ioFile = (IOFile) jTemplate.getTarget(); - WidgetDisplayEnhanceMarkAttr mark = ioFile.getAttrMark(WidgetDisplayEnhanceMarkAttr.XML_TAG); - if (mark != null && mark.isWidgetEnhance()) { - if (commonWidget(widget)) { - return new DisplayEnhanceMobileStyleDefinePane(widget, customDefinePane, mobileStyle); - } else { - return DisplayEnhanceMobileStyleFactory.createWidgetMobileStyleDefinePane(widget, customDefinePane, mobileStyle); - } - } - } - } catch (Exception e) { - FineLoggerFactory.getLogger().error("[Strongest-Control]: create base bean pane failed.", e); - } - return null; - } - - /** - * 根据控件获取通用扩展属性类 - * - * @param widget 控件 - * @return class - */ - public static @NotNull Class classForCommonExtraStyle(Widget widget) { - if (commonWidget(widget)) { - return WidgetThemeMobileCommonExtraStyle.class; - } else { - return DisplayEnhanceMobileStyleFactory.classForWidgetCommonExtraStyle(widget); - } - } - - /** - * 是否为普通控件 - * 按钮控件、标签控件、文件控件需要特殊处理 - * - * @param widget 控件 - * @return 是/否 - */ - private static boolean commonWidget(Widget widget) { - return !((widget instanceof FreeButton) || (widget instanceof Label) || (widget instanceof MultiFileEditor)); - } -} diff --git a/designer-form/src/main/java/com/fr/design/parameter/RootDesignDefinePane.java b/designer-form/src/main/java/com/fr/design/parameter/RootDesignDefinePane.java index 946303386b..a794a7bd69 100644 --- a/designer-form/src/main/java/com/fr/design/parameter/RootDesignDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/parameter/RootDesignDefinePane.java @@ -28,7 +28,6 @@ import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormSelection; import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.widget.accessibles.AccessibleBackgroundEditor; -import com.fr.design.widgettheme.processor.WidgetThemeParaCreatorPaneAdder; import com.fr.design.utils.gui.LayoutUtils; import com.fr.design.utils.gui.UIComponentUtils; import com.fr.design.widget.ui.designer.AbstractDataModify; @@ -204,7 +203,6 @@ public class RootDesignDefinePane extends AbstractDataModify { private void refreshExtraAdvancedPane() { extraPaneList.clear(); backgroundPane.removeAll(); - WidgetThemeParaCreatorPaneAdder.add(creator, extraPaneList); Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); for (WidgetAdvancedPaneProvider provider : providers) { if (!provider.accept(creator)) { diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/btn/AbstractExtraButtonPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/btn/AbstractExtraButtonPane.java index 79a71d56e0..67b8e4d26c 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/btn/AbstractExtraButtonPane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/btn/AbstractExtraButtonPane.java @@ -8,13 +8,11 @@ import com.fr.design.gui.icombobox.DictionaryComboBox; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.widgettheme.processor.WidgetThemeCreatorPaneAdder; import com.fr.design.widget.btn.ButtonWithHotkeysDetailPane; import com.fr.form.ui.Button; import com.fr.general.GeneralContext; import com.fr.plugin.observer.PluginEvent; import com.fr.plugin.observer.PluginEventListener; -import com.fr.stable.collections.CollectionUtils; import org.jetbrains.annotations.Nullable; import javax.swing.JPanel; @@ -47,8 +45,7 @@ public abstract class AbstractExtraButtonPane extends ButtonWi */ protected void refreshExtraAdvancedPane(Class cls) { extraPaneList.clear(); - WidgetThemeCreatorPaneAdder.add(cls, extraPaneList); - boolean containsExtraPane = !CollectionUtils.isEmpty(extraPaneList); + boolean containsExtraPane = false; Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); for (WidgetAdvancedPaneProvider provider : providers) { if (!provider.accept(cls)) { diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java index be23934ca7..6889ef7b49 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java @@ -12,14 +12,12 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.widget.accessibles.AccessibleIconEditor; -import com.fr.design.widgettheme.processor.WidgetThemeParaCreatorPaneAdder; import com.fr.design.widget.btn.ButtonConstants; import com.fr.form.ui.Button; 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; @@ -66,8 +64,7 @@ public abstract class ButtonDefinePane extends AbstractDataMod private void refreshAdvancedPane() { extraPaneList.clear(); - WidgetThemeParaCreatorPaneAdder.add(creator, extraPaneList); - containsExtraPane = !CollectionUtils.isEmpty(extraPaneList); + containsExtraPane = false; Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); for (WidgetAdvancedPaneProvider provider : providers) { if (!provider.accept(creator)) { diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/CheckBoxDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/CheckBoxDefinePane.java index 6f1afaf24c..7768402914 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/CheckBoxDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/CheckBoxDefinePane.java @@ -11,14 +11,12 @@ import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.widgettheme.processor.WidgetThemeParaCreatorPaneAdder; import com.fr.design.widget.ui.designer.component.FontSizeComboPane; import com.fr.design.widget.ui.designer.component.FormWidgetValuePane; 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; @@ -78,8 +76,7 @@ public class CheckBoxDefinePane extends AbstractDataModify { protected void refreshExtraAdvancedPane() { extraPaneList.clear(); - WidgetThemeParaCreatorPaneAdder.add(creator, extraPaneList); - boolean containsExtraPane = !CollectionUtils.isEmpty(extraPaneList); + boolean containsExtraPane = false; Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); for (WidgetAdvancedPaneProvider provider : providers) { if (!provider.accept(creator)) { diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/DateEditorDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/DateEditorDefinePane.java index f48bce4ff4..7df1e90909 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/DateEditorDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/DateEditorDefinePane.java @@ -14,7 +14,6 @@ import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.widgettheme.processor.WidgetThemeParaCreatorPaneAdder; import com.fr.design.widget.component.DateValuePane; import com.fr.design.widget.component.UIComboBoxNoArrow; import com.fr.design.widget.ui.designer.component.FormWidgetValuePane; @@ -22,7 +21,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; @@ -100,8 +98,7 @@ public class DateEditorDefinePane extends DirectWriteEditorDefinePane> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); for (WidgetAdvancedPaneProvider provider : providers) { if (!provider.accept(creator)) { diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/DirectWriteEditorDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/DirectWriteEditorDefinePane.java index 1a9a282858..53c38b6421 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/DirectWriteEditorDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/DirectWriteEditorDefinePane.java @@ -9,11 +9,9 @@ import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayoutHelper; -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; @@ -68,8 +66,7 @@ public abstract class DirectWriteEditorDefinePane e protected void refreshExtraAdvancedPane() { extraPaneList.clear(); - WidgetThemeParaCreatorPaneAdder.add(creator, extraPaneList); - boolean containsExtraPane = !CollectionUtils.isEmpty(extraPaneList); + boolean containsExtraPane = false; Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); for (WidgetAdvancedPaneProvider provider : providers) { if (!provider.accept(creator)) { diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/LabelDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/LabelDefinePane.java index dbb9d0c529..040137141c 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/LabelDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/LabelDefinePane.java @@ -15,7 +15,6 @@ import com.fr.design.gui.style.FRFontPane; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.widgettheme.processor.WidgetThemeParaCreatorPaneAdder; import com.fr.design.widget.FRWidgetFactory; import com.fr.design.widget.ui.designer.component.FormWidgetValuePane; import com.fr.form.ui.Label; @@ -23,7 +22,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; @@ -37,11 +35,7 @@ import java.util.Set; /** - * 标签控件pane - * - * @author obo - * @version 11.0 - * Created on 2023/11/13 + * Created by ibm on 2017/8/3. */ public class LabelDefinePane extends AbstractDataModify