Browse Source

Pull request #13492: REPORT-99485 绘制

Merge in DESIGN/design from ~VITO/c-design:newui to newui

* commit '5f3b2401aee651de9d4ee16c7596ea4a50e7ee1e':
  无jira任务 代码质量
  REPORT-99485 参数面板工具栏布局调整&图标替换
  REPORT-99485 暂时修改带有filter的svg文件以正常显示图标(失去阴影)
newui
vito-刘恒霖 12 months ago
parent
commit
6416b6c891
  1. 17
      designer-base/src/main/java/com/fine/theme/icon/svg/SvgIcon.java
  2. 79
      designer-base/src/main/java/com/fr/design/gui/core/WidgetOption.java
  3. 3
      designer-base/src/main/java/com/fr/design/gui/core/WidgetOptionFactory.java
  4. 2
      designer-base/src/main/java/com/fr/design/mainframe/CenterRegionContainerPane.java
  5. 3
      designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDockPlus.java
  6. 7
      designer-base/src/main/java/com/fr/design/parameter/ParameterDesignerProvider.java
  7. 13
      designer-base/src/main/resources/com/fine/theme/icon/checkbox/checked.svg
  8. 6
      designer-base/src/main/resources/com/fine/theme/icon/widget/button.svg
  9. 6
      designer-base/src/main/resources/com/fine/theme/icon/widget/button_disable.svg
  10. 7
      designer-base/src/main/resources/com/fine/theme/icon/widget/button_group.svg
  11. 7
      designer-base/src/main/resources/com/fine/theme/icon/widget/button_group_disable.svg
  12. 4
      designer-base/src/main/resources/com/fine/theme/icon/widget/checkbox.svg
  13. 4
      designer-base/src/main/resources/com/fine/theme/icon/widget/checkbox_disable.svg
  14. 7
      designer-base/src/main/resources/com/fine/theme/icon/widget/checkbox_group.svg
  15. 7
      designer-base/src/main/resources/com/fine/theme/icon/widget/checkbox_group_disable.svg
  16. 11
      designer-base/src/main/resources/com/fine/theme/icon/widget/combo_box.svg
  17. 11
      designer-base/src/main/resources/com/fine/theme/icon/widget/combo_box_disable.svg
  18. 7
      designer-base/src/main/resources/com/fine/theme/icon/widget/combo_check.svg
  19. 7
      designer-base/src/main/resources/com/fine/theme/icon/widget/combo_check_disable.svg
  20. 7
      designer-base/src/main/resources/com/fine/theme/icon/widget/comboboxtree.svg
  21. 7
      designer-base/src/main/resources/com/fine/theme/icon/widget/comboboxtree_disable.svg
  22. 8
      designer-base/src/main/resources/com/fine/theme/icon/widget/date.svg
  23. 8
      designer-base/src/main/resources/com/fine/theme/icon/widget/date_disable.svg
  24. 11
      designer-base/src/main/resources/com/fine/theme/icon/widget/files_up.svg
  25. 11
      designer-base/src/main/resources/com/fine/theme/icon/widget/files_up_disable.svg
  26. 13
      designer-base/src/main/resources/com/fine/theme/icon/widget/iframe.svg
  27. 13
      designer-base/src/main/resources/com/fine/theme/icon/widget/iframe_disable.svg
  28. 4
      designer-base/src/main/resources/com/fine/theme/icon/widget/label.svg
  29. 4
      designer-base/src/main/resources/com/fine/theme/icon/widget/label_disable.svg
  30. 6
      designer-base/src/main/resources/com/fine/theme/icon/widget/number_field.svg
  31. 6
      designer-base/src/main/resources/com/fine/theme/icon/widget/number_field_disable.svg
  32. 4
      designer-base/src/main/resources/com/fine/theme/icon/widget/password_field.svg
  33. 4
      designer-base/src/main/resources/com/fine/theme/icon/widget/password_field_disable.svg
  34. 11
      designer-base/src/main/resources/com/fine/theme/icon/widget/picture.svg
  35. 11
      designer-base/src/main/resources/com/fine/theme/icon/widget/picture_disable.svg
  36. 11
      designer-base/src/main/resources/com/fine/theme/icon/widget/preview.svg
  37. 11
      designer-base/src/main/resources/com/fine/theme/icon/widget/preview_disable.svg
  38. 13
      designer-base/src/main/resources/com/fine/theme/icon/widget/prewidget.svg
  39. 13
      designer-base/src/main/resources/com/fine/theme/icon/widget/prewidget_disable.svg
  40. 3
      designer-base/src/main/resources/com/fine/theme/icon/widget/tab.svg
  41. 3
      designer-base/src/main/resources/com/fine/theme/icon/widget/tab_disable.svg
  42. 11
      designer-base/src/main/resources/com/fine/theme/icon/widget/text_area.svg
  43. 11
      designer-base/src/main/resources/com/fine/theme/icon/widget/text_area_disable.svg
  44. 3
      designer-base/src/main/resources/com/fine/theme/icon/widget/text_field.svg
  45. 3
      designer-base/src/main/resources/com/fine/theme/icon/widget/text_field_disable.svg
  46. 4
      designer-base/src/main/resources/com/fine/theme/icon/widget/tree.svg
  47. 4
      designer-base/src/main/resources/com/fine/theme/icon/widget/tree_disable.svg
  48. 10
      designer-base/src/test/java/com/fr/design/gui/storybook/Storybook.java
  49. 4
      designer-form/src/main/java/com/fr/design/form/parameter/FormParaDesigner.java
  50. 16
      designer-form/src/main/java/com/fr/design/form/parameter/FormParaTargetMode.java
  51. 8
      designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java
  52. 103
      designer-form/src/main/java/com/fr/design/mainframe/FormParaPane.java
  53. 15
      designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java
  54. 13
      designer-form/src/main/java/com/fr/design/mainframe/FormTargetMode.java
  55. 254
      designer-form/src/main/java/com/fr/design/mainframe/FormWidgetPopWindow.java
  56. 6
      designer-form/src/main/java/com/fr/design/mainframe/JForm.java
  57. 328
      designer-form/src/main/java/com/fr/design/mainframe/ToolBarButton.java
  58. 2
      designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java
  59. 2
      designer-realize/src/main/java/com/fr/design/parameter/ParameterDefinitePane.java
  60. 27
      designer-realize/src/main/java/com/fr/start/MainDesigner.java

17
designer-base/src/main/java/com/fine/theme/icon/svg/SvgIcon.java

@ -8,6 +8,7 @@ import com.formdev.flatlaf.FlatLaf;
import com.formdev.flatlaf.ui.FlatUIUtils; import com.formdev.flatlaf.ui.FlatUIUtils;
import com.formdev.flatlaf.util.GrayFilter; import com.formdev.flatlaf.util.GrayFilter;
import com.fr.clone.cloning.Immutable; import com.fr.clone.cloning.Immutable;
import com.fr.log.FineLoggerFactory;
import com.fr.value.NullableLazyValue; import com.fr.value.NullableLazyValue;
import com.github.weisj.jsvg.SVGDocument; import com.github.weisj.jsvg.SVGDocument;
import com.github.weisj.jsvg.attributes.ViewBox; import com.github.weisj.jsvg.attributes.ViewBox;
@ -112,12 +113,16 @@ public class SvgIcon implements DisabledIcon, WhiteIcon, Icon {
} }
private void render(Component c, Graphics g, int x, int y) { private void render(Component c, Graphics g, int x, int y) {
if (type == Type.white) { try {
Objects.requireNonNull(whiteSvgDocument.getValue()) if (type == Type.white) {
.render((JComponent) c, (Graphics2D) g, new ViewBox(x, y, size.width, size.height)); Objects.requireNonNull(whiteSvgDocument.getValue())
} else { .render((JComponent) c, (Graphics2D) g, new ViewBox(x, y, size.width, size.height));
Objects.requireNonNull(svgDocument.getValue()) } else {
.render((JComponent) c, (Graphics2D) g, new ViewBox(x, y, size.width, size.height)); Objects.requireNonNull(svgDocument.getValue())
.render((JComponent) c, (Graphics2D) g, new ViewBox(x, y, size.width, size.height));
}
} catch (Exception e) {
FineLoggerFactory.getLogger().error("SvgIcon from url: " + resource + "can not paint.", e);
} }
} }

79
designer-base/src/main/java/com/fr/design/gui/core/WidgetOption.java

@ -1,7 +1,6 @@
package com.fr.design.gui.core; package com.fr.design.gui.core;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.base.svg.IconUtils;
import com.fr.form.ui.Button; import com.fr.form.ui.Button;
import com.fr.form.ui.CheckBox; import com.fr.form.ui.CheckBox;
import com.fr.form.ui.CheckBoxGroup; import com.fr.form.ui.CheckBoxGroup;
@ -26,9 +25,12 @@ import com.fr.form.ui.Widget;
import com.fr.form.ui.WidgetConfig; import com.fr.form.ui.WidgetConfig;
import com.fr.form.ui.WidgetInfoConfig; import com.fr.form.ui.WidgetInfoConfig;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import javax.swing.Icon;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import javax.swing.Icon;
import static com.fr.design.i18n.Toolkit.i18nText;
public abstract class WidgetOption implements Serializable { public abstract class WidgetOption implements Serializable {
@ -123,7 +125,7 @@ public abstract class WidgetOption implements Serializable {
*/ */
public static WidgetOption[] getReportWidgetInstance() { public static WidgetOption[] getReportWidgetInstance() {
return new WidgetOption[]{TEXTEDITOR, TEXTAREA, NUMBEREDITOR, PASSWORD, BUTTON, CHECKBOX, RADIOGROUP, CHECKBOXGROUP, COMBOBOX, return new WidgetOption[]{TEXTEDITOR, TEXTAREA, NUMBEREDITOR, PASSWORD, BUTTON, CHECKBOX, RADIOGROUP, CHECKBOXGROUP, COMBOBOX,
COMBOCHECKBOX, DATEEDITOR, MULTI_FILEEDITOR, LIST, IFRAMEDITOR, TREECOMBOBOX, TREE}; COMBOCHECKBOX, DATEEDITOR, MULTI_FILEEDITOR, LIST, IFRAMEDITOR, TREECOMBOBOX, TREE};
} }
@ -144,79 +146,102 @@ public abstract class WidgetOption implements Serializable {
*/ */
public static WidgetOption[] getFormWidgetIntance() { public static WidgetOption[] getFormWidgetIntance() {
return new WidgetOption[]{TEXTEDITOR, LABEL, FREEBUTTON, COMBOBOX, COMBOCHECKBOX, DATEEDITOR, return new WidgetOption[]{TEXTEDITOR, LABEL, FREEBUTTON, COMBOBOX, COMBOCHECKBOX, DATEEDITOR,
NUMBEREDITOR, TREECOMBOBOX, RADIOGROUP, CHECKBOXGROUP, TEXTAREA, PASSWORD, CHECKBOX, TREE, MULTI_FILEEDITOR,PICTURE}; NUMBEREDITOR, TREECOMBOBOX, RADIOGROUP, CHECKBOXGROUP, TEXTAREA, PASSWORD, CHECKBOX, TREE, MULTI_FILEEDITOR, PICTURE};
} }
public static final WidgetOption DATEEDITOR = WidgetOptionFactory.createByWidgetClass(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Date"), public static final WidgetOption DATEEDITOR = WidgetOptionFactory.createByWidgetClass(
"/com/fr/design/images/buttonicon/widget/date_16", i18nText("Fine-Design_Basic_Widget_Type_Date"),
"date",
DateEditor.class); DateEditor.class);
public static final WidgetOption TREE = WidgetOptionFactory.createByWidgetClass(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_View_Tree"), public static final WidgetOption TREE = WidgetOptionFactory.createByWidgetClass(
"/com/fr/design/images/buttonicon/widget/tree_16", TreeEditor.class); i18nText("Fine-Design_Report_View_Tree"),
"tree",
TreeEditor.class);
public static final WidgetOption TREECOMBOBOX = WidgetOptionFactory.createByWidgetClass(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Tree_ComboBox"), "/com/fr/design/images/buttonicon/widget/comboboxtree16", public static final WidgetOption TREECOMBOBOX = WidgetOptionFactory.createByWidgetClass(
i18nText("Fine-Design_Report_Tree_ComboBox"),
"comboboxtree",
TreeComboBoxEditor.class); TreeComboBoxEditor.class);
public static final WidgetOption CHECKBOXGROUP = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption CHECKBOXGROUP = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Checkbox_Group"), "/com/fr/design/images/buttonicon/widget/checkbox_group_16", CheckBoxGroup.class); i18nText("Fine-Design_Basic_Widget_Type_Checkbox_Group"),
"checkbox_group",
CheckBoxGroup.class);
public static final WidgetOption RADIOGROUP = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption RADIOGROUP = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Radio_Group"), "/com/fr/design/images/buttonicon/widget/button_group_16", i18nText("Fine-Design_Basic_Widget_Type_Radio_Group"),
"button_group",
RadioGroup.class); RadioGroup.class);
public static final WidgetOption NUMBEREDITOR = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption NUMBEREDITOR = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Number"), "/com/fr/design/images/buttonicon/widget/number_field_16", NumberEditor.class); i18nText("Fine-Design_Basic_Widget_Type_Number"),
"number_field",
NumberEditor.class);
public static final WidgetOption LABEL = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption LABEL = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Label"), "/com/fr/design/images/buttonicon/widget/label_16", i18nText("Fine-Design_Basic_Widget_Type_Label"),
"label",
Label.class); Label.class);
public static final WidgetOption BUTTON = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption BUTTON = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Button"), BaseUtils.readIcon("/com/fr/web/images/form/resources/button_16.png"), i18nText("Fine-Design_Basic_Widget_Type_Button"),
"button",
Button.class); Button.class);
public static final WidgetOption FREEBUTTON = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption FREEBUTTON = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Button"), "/com/fr/design/images/buttonicon/widget/button_16", i18nText("Fine-Design_Basic_Widget_Type_Button"),
"button",
FreeButton.class); FreeButton.class);
public static final WidgetOption MULTI_FILEEDITOR = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption MULTI_FILEEDITOR = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_File"), "/com/fr/design/images/buttonicon/widget/files_up", i18nText("Fine-Design_Basic_Widget_Type_File"),
"files_up",
MultiFileEditor.class); MultiFileEditor.class);
public static final WidgetOption COMBOBOX = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption COMBOBOX = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Combo_Box"), "/com/fr/design/images/buttonicon/widget/combo_box_16", i18nText("Fine-Design_Basic_Widget_Type_Combo_Box"),
"combo_box",
ComboBox.class); ComboBox.class);
public static final WidgetOption COMBOCHECKBOX = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption COMBOCHECKBOX = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Combo_Checkbox"), "/com/fr/design/images/buttonicon/widget/combo_check_16", i18nText("Fine-Design_Basic_Widget_Type_Combo_Checkbox"),
"combo_check",
ComboCheckBox.class); ComboCheckBox.class);
public static final WidgetOption CHECKBOX = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption CHECKBOX = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Checkbox"), "/com/fr/design/images/buttonicon/widget/check_box_16", i18nText("Fine-Design_Basic_Widget_Type_Checkbox"),
"check_box",
CheckBox.class); CheckBox.class);
public static final WidgetOption LIST = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption LIST = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_List"), BaseUtils.readIcon("/com/fr/web/images/form/resources/list_16.png"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_List"),
BaseUtils.readIcon("/com/fr/web/images/form/resources/list_16.png"),
ListEditor.class); ListEditor.class);
public static final WidgetOption TEXTEDITOR = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption TEXTEDITOR = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Text") i18nText("Fine-Design_Basic_Widget_Type_Text"),
, "/com/fr/design/images/buttonicon/widget/text_field_16", "text_field",
TextEditor.class); TextEditor.class);
public static final WidgetOption TEXTAREA = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption TEXTAREA = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Textarea"), "/com/fr/design/images/buttonicon/widget/text_area_16", i18nText("Fine-Design_Basic_Widget_Type_Textarea"),
"text_area",
TextArea.class); TextArea.class);
public static final WidgetOption PASSWORD = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption PASSWORD = WidgetOptionFactory.createByWidgetClass(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Password"), i18nText("Fine-Design_Basic_Widget_Type_Password"),
"/com/fr/design/images/buttonicon/widget/password_field_16", Password.class); "password_field", Password.class);
public static final WidgetOption IFRAMEDITOR = WidgetOptionFactory.createByWidgetClass(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_Iframe"), BaseUtils.readIcon("/com/fr/web/images/form/resources/iframe_16.png"), public static final WidgetOption IFRAMEDITOR = WidgetOptionFactory.createByWidgetClass(
i18nText("Fine-Design_Report_Form_Iframe"),
"iframe",
IframeEditor.class); IframeEditor.class);
public static final WidgetOption PICTURE = WidgetOptionFactory.createByWidgetClass(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Image"), IconUtils.readIcon("/com/fr/web/images/form/resources/picture_widget_16.png"), public static final WidgetOption PICTURE = WidgetOptionFactory.createByWidgetClass(
i18nText("Fine-Design_Basic_Widget_Type_Image"),
"picture",
PictureWidget.class); PictureWidget.class);
} }

3
designer-base/src/main/java/com/fr/design/gui/core/WidgetOptionFactory.java

@ -1,5 +1,6 @@
package com.fr.design.gui.core; package com.fr.design.gui.core;
import com.fine.theme.icon.LazyIcon;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.base.svg.IconUtils; import com.fr.base.svg.IconUtils;
import com.fr.form.ui.Widget; import com.fr.form.ui.Widget;
@ -17,7 +18,7 @@ public class WidgetOptionFactory {
} }
public static WidgetOption createByWidgetClass(String optionName, String resource, Class<? extends Widget> widgetClass) { public static WidgetOption createByWidgetClass(String optionName, String resource, Class<? extends Widget> widgetClass) {
Icon optionIcon = IconUtils.readIcon(resource); Icon optionIcon = resource.startsWith("/")? IconUtils.readIcon(resource):new LazyIcon(resource);
return new CustomWidgetOption(optionName, optionIcon, widgetClass); return new CustomWidgetOption(optionName, optionIcon, widgetClass);
} }
} }

2
designer-base/src/main/java/com/fr/design/mainframe/CenterRegionContainerPane.java

@ -228,7 +228,7 @@ public class CenterRegionContainerPane extends JPanel {
// 颜色,字体那些按钮的工具栏 // 颜色,字体那些按钮的工具栏
toolbarPane.add(toolbarComponent = ad.resetToolBar(toolbarComponent, plus), BorderLayout.CENTER); toolbarPane.add(toolbarComponent = ad.resetToolBar(toolbarComponent, plus), BorderLayout.CENTER);
setStyle(toolbarComponent, TOP_TOOLS); setStyle(toolbarComponent, TOP_TOOLS);
toolbarComponent.setBorder(new ScaledEmptyBorder(0, 10, 10, 10)); toolbarComponent.setBorder(new ScaledEmptyBorder(0, 10, 0, 10));
JPanel customNorthPane = strategy.customNorthPane(toolbarPane, plus); JPanel customNorthPane = strategy.customNorthPane(toolbarPane, plus);
if (!isExist(customNorthPane)) { if (!isExist(customNorthPane)) {
this.removeNorth(); this.removeNorth();

3
designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDockPlus.java

@ -6,7 +6,6 @@ import com.fr.design.menu.ShortCut;
import com.fr.design.menu.ToolBarDef; import com.fr.design.menu.ToolBarDef;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JPanel;
public interface ToolBarMenuDockPlus { public interface ToolBarMenuDockPlus {
/** /**
@ -35,7 +34,7 @@ public interface ToolBarMenuDockPlus {
* *
* @return 表单工具栏 * @return 表单工具栏
*/ */
JPanel[] toolbarPanes4Form(); JComponent[] toolbarPanes4Form();
/** /**
* 表单的工具按钮 * 表单的工具按钮

7
designer-base/src/main/java/com/fr/design/parameter/ParameterDesignerProvider.java

@ -54,7 +54,12 @@ public interface ParameterDesignerProvider {
return 0; return 0;
} }
JPanel[] toolbarPanes4Form(); /**
* 参数界面工具栏
*
* @return 工具栏组件
*/
JComponent[] toolbarPanes4Form();
JComponent[] toolBarButton4Form(); JComponent[] toolBarButton4Form();

13
designer-base/src/main/resources/com/fine/theme/icon/checkbox/checked.svg

@ -1,19 +1,8 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="&#231;&#138;&#182;&#230;&#128;&#129;=&#229;&#183;&#178;&#233;&#128;&#137;,&#229;&#141;&#149;&#233;&#128;&#137;=false"> <g id="&#231;&#138;&#182;&#230;&#128;&#129;=&#229;&#183;&#178;&#233;&#128;&#137;,&#229;&#141;&#149;&#233;&#128;&#137;=false">
<rect id="Rectangle 157" x="4" y="4" width="24" height="24" rx="1" fill="#2576EF" stroke="#2576EF" stroke-width="2"/> <rect id="Rectangle 157" x="4" y="4" width="24" height="24" rx="1" fill="#2576EF" stroke="#2576EF" stroke-width="2"/>
<g id="Path 2" filter="url(#filter0_d_102_12520)"> <g id="Path 2">
<path d="M9.95096 17.4776C9.50465 17.0313 8.78104 17.0313 8.33473 17.4776C7.88842 17.9239 7.88842 18.6475 8.33473 19.0938L12.9061 23.6652C13.4161 24.1752 14.2651 24.0911 14.6651 23.491L23.8079 9.7769C24.1581 9.25173 24.0161 8.54218 23.491 8.19206C22.9658 7.84195 22.2562 7.98386 21.9061 8.50903L13.5366 21.0632L9.95096 17.4776Z" fill="white"/> <path d="M9.95096 17.4776C9.50465 17.0313 8.78104 17.0313 8.33473 17.4776C7.88842 17.9239 7.88842 18.6475 8.33473 19.0938L12.9061 23.6652C13.4161 24.1752 14.2651 24.0911 14.6651 23.491L23.8079 9.7769C24.1581 9.25173 24.0161 8.54218 23.491 8.19206C22.9658 7.84195 22.2562 7.98386 21.9061 8.50903L13.5366 21.0632L9.95096 17.4776Z" fill="white"/>
</g> </g>
</g> </g>
<defs>
<filter id="filter0_d_102_12520" x="7" y="8" width="18" height="18" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="1"/>
<feGaussianBlur stdDeviation="0.5"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.0901961 0 0 0 0 0.341176 0 0 0 0 0.776471 0 0 0 0.5 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_102_12520"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_102_12520" result="shape"/>
</filter>
</defs>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 717 B

6
designer-base/src/main/resources/com/fine/theme/icon/widget/button.svg

@ -0,0 +1,6 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 25.5V6.49999H3V25.5L29 25.5ZM3.00003 4.5C1.89546 4.5 1.00003 5.39543 1.00003 6.5L1 25.5C0.999998 26.6046 1.89543 27.5 3 27.5H29C30.1046 27.5 31 26.6046 31 25.5V6.50004C31 5.39547 30.1046 4.50004 29 4.50004L3.00003 4.5Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M25.5 17.375L22.2782 11.9669C22.1057 11.6774 21.7935 11.5 21.4565 11.5C20.9282 11.5 20.5 11.9282 20.5 12.4565V19.5C20.5 19.9142 20.8358 20.25 21.25 20.25C21.6642 20.25 22 19.9142 22 19.5V14.75L25.2194 20.039C25.3936 20.3253 25.7045 20.5 26.0397 20.5C26.5701 20.5 27 20.0701 27 19.5397V12.25C27 11.8358 26.6642 11.5 26.25 11.5C25.8358 11.5 25.5 11.8358 25.5 12.25V17.375Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M14.75 13.25H12.875C12.3918 13.25 12 12.8582 12 12.375C12 11.8918 12.3918 11.5 12.875 11.5H18.625C19.1082 11.5 19.5 11.8918 19.5 12.375C19.5 12.8582 19.1082 13.25 18.625 13.25H16.5V19.5C16.5 19.9832 16.1082 20.375 15.625 20.375C15.1418 20.375 14.75 19.9832 14.75 19.5V13.25Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.42105 11.5H6C5.44772 11.5 5 11.9477 5 12.5V19.375C5 19.9273 5.44772 20.375 6 20.375H9.01974C10.3895 20.375 11.5 19.267 11.5 17.9002C11.5 16.9536 10.9673 16.1311 10.1847 15.7149C10.6277 15.2678 10.9013 14.6532 10.9013 13.9748C10.9013 12.608 9.79086 11.5 8.42105 11.5ZM6.375 15.125H7.98017C8.68279 15.1179 9.25 14.589 9.25 13.9375C9.25 13.2817 8.67506 12.75 7.96584 12.75H6.375V15.125ZM8.58677 19.125H6.375V16.625H8.57223C9.29173 16.625 9.875 17.1847 9.875 17.875C9.875 18.5608 9.29957 19.1175 8.58677 19.125Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

6
designer-base/src/main/resources/com/fine/theme/icon/widget/button_disable.svg

@ -0,0 +1,6 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 25.5V6.49999H3V25.5L29 25.5ZM3.00003 4.5C1.89546 4.5 1.00003 5.39543 1.00003 6.5L1 25.5C0.999998 26.6046 1.89543 27.5 3 27.5H29C30.1046 27.5 31 26.6046 31 25.5V6.50004C31 5.39547 30.1046 4.50004 29 4.50004L3.00003 4.5Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M25.5 17.375L22.2782 11.9669C22.1057 11.6774 21.7935 11.5 21.4565 11.5C20.9282 11.5 20.5 11.9282 20.5 12.4565V19.5C20.5 19.9142 20.8358 20.25 21.25 20.25C21.6642 20.25 22 19.9142 22 19.5V14.75L25.2194 20.039C25.3936 20.3253 25.7045 20.5 26.0397 20.5C26.5701 20.5 27 20.0701 27 19.5397V12.25C27 11.8358 26.6642 11.5 26.25 11.5C25.8358 11.5 25.5 11.8358 25.5 12.25V17.375Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M14.75 13.25H12.875C12.3918 13.25 12 12.8582 12 12.375C12 11.8918 12.3918 11.5 12.875 11.5H18.625C19.1082 11.5 19.5 11.8918 19.5 12.375C19.5 12.8582 19.1082 13.25 18.625 13.25H16.5V19.5C16.5 19.9832 16.1082 20.375 15.625 20.375C15.1418 20.375 14.75 19.9832 14.75 19.5V13.25Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.42105 11.5H6C5.44772 11.5 5 11.9477 5 12.5V19.375C5 19.9273 5.44772 20.375 6 20.375H9.01974C10.3895 20.375 11.5 19.267 11.5 17.9002C11.5 16.9536 10.9673 16.1311 10.1847 15.7149C10.6277 15.2678 10.9013 14.6532 10.9013 13.9748C10.9013 12.608 9.79086 11.5 8.42105 11.5ZM6.375 15.125H7.98017C8.68279 15.1179 9.25 14.589 9.25 13.9375C9.25 13.2817 8.67506 12.75 7.96584 12.75H6.375V15.125ZM8.58677 19.125H6.375V16.625H8.57223C9.29173 16.625 9.875 17.1847 9.875 17.875C9.875 18.5608 9.29957 19.1175 8.58677 19.125Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

7
designer-base/src/main/resources/com/fine/theme/icon/widget/button_group.svg

@ -0,0 +1,7 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.0001 8C30.0001 7.44772 29.5524 7.00001 29.0001 7.00001L19 7C18.4477 7 18 7.44774 18 8.00004C18.0001 8.55231 18.4478 9 19 9H29.0001C29.5524 9 30.0001 8.55229 30.0001 8Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M30.0001 24.5C30.0001 23.9477 29.5524 23.5 29.0001 23.5L19 23.5C18.4477 23.5 18 23.9477 18 24.5C18.0001 25.0523 18.4478 25.5 19 25.5H29.0001C29.5524 25.5 30.0001 25.0523 30.0001 24.5Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 24.25C2 27.7019 4.79813 30.5 8.25 30.5C11.7019 30.5 14.5 27.7019 14.5 24.25C14.5 20.7981 11.7019 18 8.25 18C4.79813 18 2 20.7981 2 24.25ZM8.25 28.25C9.31087 28.25 10.3283 27.8286 11.0784 27.0784C11.8286 26.3283 12.25 25.3109 12.25 24.25C12.25 23.1891 11.8286 22.1717 11.0784 21.4216C10.3283 20.6714 9.31087 20.25 8.25 20.25C7.18913 20.25 6.17172 20.6714 5.42157 21.4216C4.67143 22.1717 4.25 23.1891 4.25 24.25C4.25 25.3109 4.67143 26.3283 5.42157 27.0784C6.17172 27.8286 7.18913 28.25 8.25 28.25Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 8.25C2 11.7019 4.79813 14.5 8.25 14.5C11.7019 14.5 14.5 11.7019 14.5 8.25C14.5 4.79813 11.7019 2 8.25 2C4.79813 2 2 4.79813 2 8.25ZM8.25 12.25C9.31087 12.25 10.3283 11.8286 11.0784 11.0784C11.8286 10.3283 12.25 9.31087 12.25 8.25C12.25 7.18913 11.8286 6.17172 11.0784 5.42157C10.3283 4.67143 9.31087 4.25 8.25 4.25C7.18913 4.25 6.17172 4.67143 5.42157 5.42157C4.67143 6.17172 4.25 7.18913 4.25 8.25C4.25 9.31087 4.67143 10.3283 5.42157 11.0784C6.17172 11.8286 7.18913 12.25 8.25 12.25Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M9.84099 9.84099C9.41903 10.2629 8.84674 10.5 8.25 10.5C7.65326 10.5 7.08097 10.2629 6.65901 9.84099C6.23705 9.41903 6 8.84674 6 8.25C6 7.65326 6.23705 7.08097 6.65901 6.65901C7.08097 6.23705 7.65326 6 8.25 6C8.84674 6 9.41903 6.23705 9.84099 6.65901C10.2629 7.08097 10.5 7.65326 10.5 8.25C10.5 8.84674 10.2629 9.41903 9.84099 9.84099Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

7
designer-base/src/main/resources/com/fine/theme/icon/widget/button_group_disable.svg

@ -0,0 +1,7 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.0001 8C30.0001 7.44772 29.5524 7.00001 29.0001 7.00001L19 7C18.4477 7 18 7.44774 18 8.00004C18.0001 8.55231 18.4478 9 19 9H29.0001C29.5524 9 30.0001 8.55229 30.0001 8Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M30.0001 24.5C30.0001 23.9477 29.5524 23.5 29.0001 23.5L19 23.5C18.4477 23.5 18 23.9477 18 24.5C18.0001 25.0523 18.4478 25.5 19 25.5H29.0001C29.5524 25.5 30.0001 25.0523 30.0001 24.5Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 24.25C2 27.7019 4.79813 30.5 8.25 30.5C11.7019 30.5 14.5 27.7019 14.5 24.25C14.5 20.7981 11.7019 18 8.25 18C4.79813 18 2 20.7981 2 24.25ZM8.25 28.25C9.31087 28.25 10.3283 27.8286 11.0784 27.0784C11.8286 26.3283 12.25 25.3109 12.25 24.25C12.25 23.1891 11.8286 22.1717 11.0784 21.4216C10.3283 20.6714 9.31087 20.25 8.25 20.25C7.18913 20.25 6.17172 20.6714 5.42157 21.4216C4.67143 22.1717 4.25 23.1891 4.25 24.25C4.25 25.3109 4.67143 26.3283 5.42157 27.0784C6.17172 27.8286 7.18913 28.25 8.25 28.25Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 8.25C2 11.7019 4.79813 14.5 8.25 14.5C11.7019 14.5 14.5 11.7019 14.5 8.25C14.5 4.79813 11.7019 2 8.25 2C4.79813 2 2 4.79813 2 8.25ZM8.25 12.25C9.31087 12.25 10.3283 11.8286 11.0784 11.0784C11.8286 10.3283 12.25 9.31087 12.25 8.25C12.25 7.18913 11.8286 6.17172 11.0784 5.42157C10.3283 4.67143 9.31087 4.25 8.25 4.25C7.18913 4.25 6.17172 4.67143 5.42157 5.42157C4.67143 6.17172 4.25 7.18913 4.25 8.25C4.25 9.31087 4.67143 10.3283 5.42157 11.0784C6.17172 11.8286 7.18913 12.25 8.25 12.25Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M9.84099 9.84099C9.41903 10.2629 8.84674 10.5 8.25 10.5C7.65326 10.5 7.08097 10.2629 6.65901 9.84099C6.23705 9.41903 6 8.84674 6 8.25C6 7.65326 6.23705 7.08097 6.65901 6.65901C7.08097 6.23705 7.65326 6 8.25 6C8.84674 6 9.41903 6.23705 9.84099 6.65901C10.2629 7.08097 10.5 7.65326 10.5 8.25C10.5 8.84674 10.2629 9.41903 9.84099 9.84099Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

4
designer-base/src/main/resources/com/fine/theme/icon/widget/checkbox.svg

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 3.99999H4.00003L4 28L28 28V3.99999ZM4.00003 2C2.89546 2 2.00003 2.89543 2.00003 4L2 28C2 29.1046 2.89543 30 4 30H28C29.1046 30 30 29.1046 30 28V4.00003C30 2.89546 29.1046 2.00003 28 2.00003L4.00003 2Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M25.1192 9.95702C25.5098 10.3475 25.5098 10.9807 25.1193 11.3713L14.5703 21.9202C14.1798 22.3108 13.5466 22.3108 13.1561 21.9202L7.31054 16.0745C6.92006 15.684 6.92006 15.0509 7.31055 14.6604C7.70104 14.2699 8.33417 14.2699 8.72467 14.6604L13.8632 19.7989L23.7051 9.95706C24.0956 9.56656 24.7287 9.56654 25.1192 9.95702Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 761 B

4
designer-base/src/main/resources/com/fine/theme/icon/widget/checkbox_disable.svg

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 3.99999H4.00003L4 28L28 28V3.99999ZM4.00003 2C2.89546 2 2.00003 2.89543 2.00003 4L2 28C2 29.1046 2.89543 30 4 30H28C29.1046 30 30 29.1046 30 28V4.00003C30 2.89546 29.1046 2.00003 28 2.00003L4.00003 2Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M25.1192 9.95702C25.5098 10.3475 25.5098 10.9807 25.1193 11.3713L14.5703 21.9202C14.1798 22.3108 13.5466 22.3108 13.1561 21.9202L7.31054 16.0745C6.92006 15.684 6.92006 15.0509 7.31055 14.6604C7.70104 14.2699 8.33417 14.2699 8.72467 14.6604L13.8632 19.7989L23.7051 9.95706C24.0956 9.56656 24.7287 9.56654 25.1192 9.95702Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 763 B

7
designer-base/src/main/resources/com/fine/theme/icon/widget/checkbox_group.svg

@ -0,0 +1,7 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="6" y="6" width="5" height="5" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 19H4L4 28H13V19ZM4 17C2.89543 17 2 17.8954 2 19V28C2 29.1046 2.89543 30 4 30H13C14.1046 30 15 29.1046 15 28V19C15 17.8954 14.1046 17 13 17H4Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 4H4L4 13H13V4ZM4 2C2.89543 2 2 2.89543 2 4V13C2 14.1046 2.89543 15 4 15H13C14.1046 15 15 14.1046 15 13V4C15 2.89543 14.1046 2 13 2H4Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M30.0001 9C30.0001 8.44772 29.5524 8.00001 29.0001 8.00001L19 8C18.4477 8 18 8.44774 18 9.00004C18.0001 9.55231 18.4478 10 19 10H29.0001C29.5524 10 30.0001 9.55229 30.0001 9Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M30.0001 24C30.0001 23.4477 29.5524 23 29.0001 23L19 23C18.4477 23 18 23.4477 18 24C18.0001 24.5523 18.4478 25 19 25H29.0001C29.5524 25 30.0001 24.5523 30.0001 24Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

7
designer-base/src/main/resources/com/fine/theme/icon/widget/checkbox_group_disable.svg

@ -0,0 +1,7 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="6" y="6" width="5" height="5" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 19H4L4 28H13V19ZM4 17C2.89543 17 2 17.8954 2 19V28C2 29.1046 2.89543 30 4 30H13C14.1046 30 15 29.1046 15 28V19C15 17.8954 14.1046 17 13 17H4Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 4H4L4 13H13V4ZM4 2C2.89543 2 2 2.89543 2 4V13C2 14.1046 2.89543 15 4 15H13C14.1046 15 15 14.1046 15 13V4C15 2.89543 14.1046 2 13 2H4Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M30.0001 9C30.0001 8.44772 29.5524 8.00001 29.0001 8.00001L19 8C18.4477 8 18 8.44774 18 9.00004C18.0001 9.55231 18.4478 10 19 10H29.0001C29.5524 10 30.0001 9.55229 30.0001 9Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M30.0001 24C30.0001 23.4477 29.5524 23 29.0001 23L19 23C18.4477 23 18 23.4477 18 24C18.0001 24.5523 18.4478 25 19 25H29.0001C29.5524 25 30.0001 24.5523 30.0001 24Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

11
designer-base/src/main/resources/com/fine/theme/icon/widget/combo_box.svg

@ -0,0 +1,11 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5062_10632)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 25.5V6.49999H29V25.5L3 25.5ZM29 4.5C30.1045 4.5 31 5.39543 31 6.5L31 25.5C31 26.6046 30.1046 27.5 29 27.5H3C1.89543 27.5 1 26.6046 1 25.5V6.50004C1 5.39547 1.89543 4.50004 3 4.50004L29 4.5Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M23.9981 13H15.378C14.5211 13 14.0611 14.0074 14.6223 14.6549L18.9323 19.6281C19.3311 20.0881 20.045 20.0881 20.4437 19.6281L24.7537 14.6549C25.315 14.0074 24.855 13 23.9981 13Z" fill="#0A1C38" fill-opacity="0.9"/>
</g>
<defs>
<clipPath id="clip0_5062_10632">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 754 B

11
designer-base/src/main/resources/com/fine/theme/icon/widget/combo_box_disable.svg

@ -0,0 +1,11 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5830_164320)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 25.5V6.49999H29V25.5L3 25.5ZM29 4.5C30.1045 4.5 31 5.39543 31 6.5L31 25.5C31 26.6046 30.1046 27.5 29 27.5H3C1.89543 27.5 1 26.6046 1 25.5V6.50004C1 5.39547 1.89543 4.50004 3 4.50004L29 4.5Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M23.9981 13H15.378C14.5211 13 14.0611 14.0074 14.6223 14.6549L18.9323 19.6281C19.3311 20.0881 20.045 20.0881 20.4437 19.6281L24.7537 14.6549C25.315 14.0074 24.855 13 23.9981 13Z" fill="#0A1C38" fill-opacity="0.29"/>
</g>
<defs>
<clipPath id="clip0_5830_164320">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 758 B

7
designer-base/src/main/resources/com/fine/theme/icon/widget/combo_check.svg

@ -0,0 +1,7 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M25 21C25 21.5523 24.5523 22 24 22H19C18.4477 22 18 21.5523 18 21C18 20.4477 18.4477 20 19 20H24C24.5523 20 25 20.4477 25 21Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M24 13C24.5523 13 25 12.5523 25 12C25 11.4477 24.5523 11 24 11L19 11C18.4477 11 18 11.4477 18 12C18 12.5523 18.4477 13 19 13L24 13Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M15.6162 8.70708C16.0068 9.0976 16.0068 9.7308 15.6163 10.1213L11.4313 14.3063C11.0407 14.6969 10.4076 14.6969 10.017 14.3063L7.70701 11.9961C7.31653 11.6056 7.31654 10.9725 7.70702 10.582C8.09752 10.1915 8.73065 10.1915 9.12116 10.582L10.7241 12.185L14.2021 8.70713C14.5926 8.31662 15.2257 8.3166 15.6162 8.70708Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M15.6163 17.7071C16.0068 18.0976 16.0068 18.7308 15.6163 19.1213L11.4313 23.3063C11.0408 23.6968 10.4076 23.6968 10.0171 23.3063L7.70704 20.9961C7.31656 20.6056 7.31657 19.9725 7.70705 19.582C8.09755 19.1915 8.73068 19.1915 9.12118 19.582L10.7242 21.185L14.2021 17.7071C14.5926 17.3166 15.2257 17.3166 15.6163 17.7071Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 3.99999H4.00003L4 28L28 28V3.99999ZM4.00003 2C2.89546 2 2.00003 2.89543 2.00003 4L2 28C2 29.1046 2.89543 30 4 30H28C29.1046 30 30 29.1046 30 28V4.00003C30 2.89546 29.1046 2.00003 28 2.00003L4.00003 2Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

7
designer-base/src/main/resources/com/fine/theme/icon/widget/combo_check_disable.svg

@ -0,0 +1,7 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M25 21C25 21.5523 24.5523 22 24 22H19C18.4477 22 18 21.5523 18 21C18 20.4477 18.4477 20 19 20H24C24.5523 20 25 20.4477 25 21Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M24 13C24.5523 13 25 12.5523 25 12C25 11.4477 24.5523 11 24 11L19 11C18.4477 11 18 11.4477 18 12C18 12.5523 18.4477 13 19 13L24 13Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M15.6162 8.70708C16.0068 9.0976 16.0068 9.7308 15.6163 10.1213L11.4313 14.3063C11.0407 14.6969 10.4076 14.6969 10.017 14.3063L7.70701 11.9961C7.31653 11.6056 7.31654 10.9725 7.70702 10.582C8.09752 10.1915 8.73065 10.1915 9.12116 10.582L10.7241 12.185L14.2021 8.70713C14.5926 8.31662 15.2257 8.3166 15.6162 8.70708Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M15.6163 17.7071C16.0068 18.0976 16.0068 18.7308 15.6163 19.1213L11.4313 23.3063C11.0408 23.6968 10.4076 23.6968 10.0171 23.3063L7.70704 20.9961C7.31656 20.6056 7.31657 19.9725 7.70705 19.582C8.09755 19.1915 8.73068 19.1915 9.12118 19.582L10.7242 21.185L14.2021 17.7071C14.5926 17.3166 15.2257 17.3166 15.6163 17.7071Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 3.99999H4.00003L4 28L28 28V3.99999ZM4.00003 2C2.89546 2 2.00003 2.89543 2.00003 4L2 28C2 29.1046 2.89543 30 4 30H28C29.1046 30 30 29.1046 30 28V4.00003C30 2.89546 29.1046 2.00003 28 2.00003L4.00003 2Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

7
designer-base/src/main/resources/com/fine/theme/icon/widget/comboboxtree.svg

@ -0,0 +1,7 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 30C29.1046 30 30 29.1045 30 28V4C30 2.89543 29.1046 2 28 2L4.00003 2.00001C2.89546 2.00001 2.00003 2.89544 2.00003 4.00001L2 28C2 29.1045 2.89543 30 4 30H28ZM28 4.00001L4.00004 4V28H28L28 4.00001Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 16H4V14H28V16Z" fill="#0A1C38" fill-opacity="0.9"/>
<rect x="8" y="20" width="4" height="4" fill="#0A1C38" fill-opacity="0.9"/>
<rect x="15" y="21" width="11" height="2" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M24.1512 6H16.8488C16.1228 6 15.7332 6.86678 16.2086 7.42398L19.8598 11.7031C20.1976 12.099 20.8024 12.099 21.1402 11.7031L24.7914 7.42398C25.2668 6.86678 24.8772 6 24.1512 6Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 871 B

7
designer-base/src/main/resources/com/fine/theme/icon/widget/comboboxtree_disable.svg

@ -0,0 +1,7 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 30C29.1046 30 30 29.1045 30 28V4C30 2.89543 29.1046 2 28 2L4.00003 2.00001C2.89546 2.00001 2.00003 2.89544 2.00003 4.00001L2 28C2 29.1045 2.89543 30 4 30H28ZM28 4.00001L4.00004 4V28H28L28 4.00001Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 16H4V14H28V16Z" fill="#0A1C38" fill-opacity="0.29"/>
<rect x="8" y="20" width="4" height="4" fill="#0A1C38" fill-opacity="0.29"/>
<rect x="15" y="21" width="11" height="2" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M24.1512 6H16.8488C16.1228 6 15.7332 6.86678 16.2086 7.42398L19.8598 11.7031C20.1976 12.099 20.8024 12.099 21.1402 11.7031L24.7914 7.42398C25.2668 6.86678 24.8772 6 24.1512 6Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 876 B

8
designer-base/src/main/resources/com/fine/theme/icon/widget/date.svg

@ -0,0 +1,8 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 1.00001C10.4477 1.00001 10 1.44773 10 2.00001V4.00001H4C2.89543 4.00001 2 4.89544 2 6.00001L2 27.9999C2 29.1045 2.89543 29.9999 4 29.9999H28C29.1046 29.9999 30 29.1045 30 27.9999V6.00001C30 4.89544 29.1046 4.00001 28 4.00001H22V2C22 1.44772 21.5523 1.00001 21 1C20.4477 0.999993 20 1.44771 20 2V4.00001H12V2.00001C12 1.44773 11.5523 1.00001 11 1.00001ZM20 5.99997V7.99999C20 8.55227 20.4477 8.99999 21 8.99999C21.5523 8.99999 22 8.55227 22 7.99999V5.99997L28 5.99998V27.9999L4.00001 27.9999V5.99997L10 5.99997V7.99999C10 8.55227 10.4477 8.99999 11 8.99999C11.5523 8.99999 12 8.55227 12 7.99999V5.99997H20Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M7 13C7 12.4477 7.44772 12 8 12H10C10.5523 12 11 12.4477 11 13V15C11 15.5523 10.5523 16 10 16H8C7.44772 16 7 15.5523 7 15V13Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M14 13C14 12.4477 14.4477 12 15 12H17C17.5523 12 18 12.4477 18 13V15C18 15.5523 17.5523 16 17 16H15C14.4477 16 14 15.5523 14 15V13Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M21 13C21 12.4477 21.4477 12 22 12H24C24.5523 12 25 12.4477 25 13V15C25 15.5523 24.5523 16 24 16H22C21.4477 16 21 15.5523 21 15V13Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M7 21C7 20.4477 7.44772 20 8 20H10C10.5523 20 11 20.4477 11 21V23C11 23.5523 10.5523 24 10 24H8C7.44772 24 7 23.5523 7 23V21Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M14 21C14 20.4477 14.4477 20 15 20H17C17.5523 20 18 20.4477 18 21V23C18 23.5523 17.5523 24 17 24H15C14.4477 24 14 23.5523 14 23V21Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

8
designer-base/src/main/resources/com/fine/theme/icon/widget/date_disable.svg

@ -0,0 +1,8 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 1.00001C10.4477 1.00001 10 1.44773 10 2.00001V4.00001H4C2.89543 4.00001 2 4.89544 2 6.00001L2 27.9999C2 29.1045 2.89543 29.9999 4 29.9999H28C29.1046 29.9999 30 29.1045 30 27.9999V6.00001C30 4.89544 29.1046 4.00001 28 4.00001H22V2C22 1.44772 21.5523 1.00001 21 1C20.4477 0.999993 20 1.44771 20 2V4.00001H12V2.00001C12 1.44773 11.5523 1.00001 11 1.00001ZM20 5.99997V7.99999C20 8.55227 20.4477 8.99999 21 8.99999C21.5523 8.99999 22 8.55227 22 7.99999V5.99997L28 5.99998V27.9999L4.00001 27.9999V5.99997L10 5.99997V7.99999C10 8.55227 10.4477 8.99999 11 8.99999C11.5523 8.99999 12 8.55227 12 7.99999V5.99997H20Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M7 13C7 12.4477 7.44772 12 8 12H10C10.5523 12 11 12.4477 11 13V15C11 15.5523 10.5523 16 10 16H8C7.44772 16 7 15.5523 7 15V13Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M14 13C14 12.4477 14.4477 12 15 12H17C17.5523 12 18 12.4477 18 13V15C18 15.5523 17.5523 16 17 16H15C14.4477 16 14 15.5523 14 15V13Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M21 13C21 12.4477 21.4477 12 22 12H24C24.5523 12 25 12.4477 25 13V15C25 15.5523 24.5523 16 24 16H22C21.4477 16 21 15.5523 21 15V13Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M7 21C7 20.4477 7.44772 20 8 20H10C10.5523 20 11 20.4477 11 21V23C11 23.5523 10.5523 24 10 24H8C7.44772 24 7 23.5523 7 23V21Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M14 21C14 20.4477 14.4477 20 15 20H17C17.5523 20 18 20.4477 18 21V23C18 23.5523 17.5523 24 17 24H15C14.4477 24 14 23.5523 14 23V21Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

11
designer-base/src/main/resources/com/fine/theme/icon/widget/files_up.svg

@ -0,0 +1,11 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5062_10594)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 26.6C2 28.4778 3.52223 30 5.4 30H24C25.1046 30 26 29.1046 26 28H6C4.89543 28 4 27.1046 4 26L4 6C2.89543 6 2 6.89543 2 8V26.6ZM8 24H28V4H8L8 24ZM6 24C6 25.1046 6.89543 26 8 26H28C29.1046 26 30 25.1046 30 24V4C30 2.89543 29.1046 2 28 2H8C6.89543 2 6 2.89543 6 4V24Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.2733 9.68744L12.7352 14.2255C12.3382 14.6225 11.6947 14.6225 11.2977 14.2255C10.9008 13.8286 10.9008 13.185 11.2977 12.7881L17.7929 6.29289C18.1834 5.90237 18.8166 5.90237 19.2071 6.29289L25.7023 12.7881C26.0992 13.185 26.0992 13.8286 25.7023 14.2255C25.3053 14.6225 24.6618 14.6225 24.2648 14.2255L19.3062 9.26686L19.3062 20.9836C19.3062 21.5449 18.8511 22 18.2897 22C17.7283 22 17.2733 21.5449 17.2733 20.9836L17.2733 9.68744Z" fill="#0A1C38" fill-opacity="0.9"/>
</g>
<defs>
<clipPath id="clip0_5062_10594">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

11
designer-base/src/main/resources/com/fine/theme/icon/widget/files_up_disable.svg

@ -0,0 +1,11 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5830_164303)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 26.6C2 28.4778 3.52223 30 5.4 30H24C25.1046 30 26 29.1046 26 28H6C4.89543 28 4 27.1046 4 26L4 6C2.89543 6 2 6.89543 2 8V26.6ZM8 24H28V4H8L8 24ZM6 24C6 25.1046 6.89543 26 8 26H28C29.1046 26 30 25.1046 30 24V4C30 2.89543 29.1046 2 28 2H8C6.89543 2 6 2.89543 6 4V24Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.2733 9.68744L12.7352 14.2255C12.3382 14.6225 11.6947 14.6225 11.2977 14.2255C10.9008 13.8286 10.9008 13.185 11.2977 12.7881L17.7929 6.29289C18.1834 5.90237 18.8166 5.90237 19.2071 6.29289L25.7023 12.7881C26.0992 13.185 26.0992 13.8286 25.7023 14.2255C25.3053 14.6225 24.6618 14.6225 24.2648 14.2255L19.3062 9.26686L19.3062 20.9836C19.3062 21.5449 18.8511 22 18.2897 22C17.7283 22 17.2733 21.5449 17.2733 20.9836L17.2733 9.68744Z" fill="#0A1C38" fill-opacity="0.29"/>
</g>
<defs>
<clipPath id="clip0_5830_164303">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

13
designer-base/src/main/resources/com/fine/theme/icon/widget/iframe.svg

@ -0,0 +1,13 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5062_10611)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 30C29.1046 30 30 29.1045 30 28V4C30 2.89543 29.1046 2 28 2L4.00003 2.00001C2.89546 2.00001 2.00003 2.89544 2.00003 4.00001L2 28C2 29.1045 2.89543 30 4 30H28ZM28 4.00001L4.00004 4V28H28L28 4.00001Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 14H4V12H28V14Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M6 6.5C6 6.22386 6.22386 6 6.5 6H9.5C9.77614 6 10 6.22386 10 6.5V9.5C10 9.77614 9.77614 10 9.5 10H6.5C6.22386 10 6 9.77614 6 9.5V6.5Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M12 6.5C12 6.22386 12.2239 6 12.5 6H15.5C15.7761 6 16 6.22386 16 6.5V9.5C16 9.77614 15.7761 10 15.5 10H12.5C12.2239 10 12 9.77614 12 9.5V6.5Z" fill="#0A1C38" fill-opacity="0.9"/>
</g>
<defs>
<clipPath id="clip0_5062_10611">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1011 B

13
designer-base/src/main/resources/com/fine/theme/icon/widget/iframe_disable.svg

@ -0,0 +1,13 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5830_164312)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 30C29.1046 30 30 29.1045 30 28V4C30 2.89543 29.1046 2 28 2L4.00003 2.00001C2.89546 2.00001 2.00003 2.89544 2.00003 4.00001L2 28C2 29.1045 2.89543 30 4 30H28ZM28 4.00001L4.00004 4V28H28L28 4.00001Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 14H4V12H28V14Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M6 6.5C6 6.22386 6.22386 6 6.5 6H9.5C9.77614 6 10 6.22386 10 6.5V9.5C10 9.77614 9.77614 10 9.5 10H6.5C6.22386 10 6 9.77614 6 9.5V6.5Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M12 6.5C12 6.22386 12.2239 6 12.5 6H15.5C15.7761 6 16 6.22386 16 6.5V9.5C16 9.77614 15.7761 10 15.5 10H12.5C12.2239 10 12 9.77614 12 9.5V6.5Z" fill="#0A1C38" fill-opacity="0.29"/>
</g>
<defs>
<clipPath id="clip0_5830_164312">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1017 B

4
designer-base/src/main/resources/com/fine/theme/icon/widget/label.svg

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.87184 16.3466L16.014 28.4887L28.0348 16.4679L15.5669 4L3.87187 4.2538L3.87184 16.3466ZM3.83121 2.23775C2.74271 2.25987 1.87186 3.14861 1.87186 4.23734L1.87191 16.3466C1.87192 16.877 2.08263 17.3857 2.4577 17.7608L14.5998 29.9029C15.3808 30.684 16.6472 30.684 17.4282 29.9029L29.449 17.8821C30.2301 17.1011 30.2301 15.8347 29.449 15.0537L16.9807 2.58537C16.5957 2.20033 16.0703 1.98893 15.5258 2L3.83121 2.23775Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M9.21228 9.66629C10.1886 8.68998 11.7715 8.68998 12.7478 9.66629C13.7241 10.6426 13.7241 12.2255 12.7478 13.2018C11.7715 14.1781 10.1886 14.1781 9.21228 13.2018C8.23597 12.2255 8.23597 10.6426 9.21228 9.66629Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 860 B

4
designer-base/src/main/resources/com/fine/theme/icon/widget/label_disable.svg

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.87184 16.3466L16.014 28.4887L28.0348 16.4679L15.5669 4L3.87187 4.2538L3.87184 16.3466ZM3.83121 2.23775C2.74271 2.25987 1.87186 3.14861 1.87186 4.23734L1.87191 16.3466C1.87192 16.877 2.08263 17.3857 2.4577 17.7608L14.5998 29.9029C15.3808 30.684 16.6472 30.684 17.4282 29.9029L29.449 17.8821C30.2301 17.1011 30.2301 15.8347 29.449 15.0537L16.9807 2.58537C16.5957 2.20033 16.0703 1.98893 15.5258 2L3.83121 2.23775Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M9.21228 9.66629C10.1886 8.68998 11.7715 8.68998 12.7478 9.66629C13.7241 10.6426 13.7241 12.2255 12.7478 13.2018C11.7715 14.1781 10.1886 14.1781 9.21228 13.2018C8.23597 12.2255 8.23597 10.6426 9.21228 9.66629Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 862 B

6
designer-base/src/main/resources/com/fine/theme/icon/widget/number_field.svg

@ -0,0 +1,6 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.32355 14.0887C5.17864 14.1791 5 14.0623 5 13.8771V12.2256C5 12.1413 5.03919 12.0632 5.10351 12.0191L7.87937 10.1154C7.91362 10.0919 7.95304 10.0795 7.99325 10.0795H9.41311C9.53317 10.0795 9.6305 10.188 9.6305 10.3219L9.63051 21.5152C9.63051 21.649 9.53318 21.7576 9.41311 21.7576H7.70415C7.58409 21.7576 7.48676 21.649 7.48676 21.5152L7.48676 12.7388L5.32355 14.0887Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M14.9314 19.5677H18.329C18.4491 19.5677 18.5464 19.6762 18.5464 19.8101L18.5464 21.5152C18.5464 21.649 18.4491 21.7576 18.329 21.7576H12.1543C12.0342 21.7576 11.9369 21.649 11.9369 21.5152V20.2138L14.8294 16.3958C15.3267 15.7203 15.6714 15.1926 15.8633 14.8127C16.064 14.4222 16.1644 14.0211 16.1644 13.6095C16.1644 13.1557 16.0597 12.7916 15.8502 12.5172C15.6408 12.2427 15.3573 12.1055 14.9995 12.1055C14.633 12.1055 14.3102 12.2691 14.031 12.5963C13.8027 12.8552 13.6181 13.2059 13.4773 13.6483C13.4287 13.801 13.2662 13.8713 13.1432 13.7852L12.0337 13.0082C11.9528 12.9516 11.9141 12.8425 11.9419 12.7407C12.1761 11.8854 12.5714 11.2252 13.1279 10.7599C13.7212 10.2533 14.4062 10 15.1827 10C15.7935 10 16.3214 10.153 16.7664 10.4591C17.2201 10.7546 17.5648 11.1662 17.8004 11.6939C18.0447 12.2216 18.1669 12.8232 18.1669 13.4987C18.1669 14.1636 18.0316 14.7863 17.7611 15.3668C17.4994 15.9367 17.0282 16.6807 16.3476 17.5989L14.9314 19.5677Z" fill="#0A1C38" fill-opacity="0.9"/>
<path d="M25.364 15.7625C25.8962 16.0053 26.302 16.3641 26.5812 16.8391C26.8604 17.3034 27 17.8839 27 18.5805C27 19.2982 26.8473 19.9156 26.5419 20.4327C26.2452 20.9393 25.8395 21.3298 25.3247 21.6042C24.8186 21.8681 24.2558 22 23.6363 22C22.8423 22 22.1486 21.7731 21.5553 21.3193C21.0115 20.8971 20.6149 20.2969 20.3656 19.5186C20.3322 19.4144 20.3708 19.2995 20.455 19.241L21.5719 18.4657C21.6946 18.3805 21.8561 18.4507 21.9089 18.6008C22.0501 19.0015 22.2507 19.3166 22.5107 19.5462C22.8336 19.8206 23.1957 19.9578 23.5971 19.9578C23.9897 19.9578 24.3169 19.8206 24.5787 19.5462C24.8492 19.2718 24.9844 18.8918 24.9844 18.4063C24.9844 17.3404 24.3126 16.8074 22.9688 16.8074H22.8328C22.7128 16.8074 22.6154 16.6989 22.6154 16.565V15.1501C22.6154 15.0162 22.7128 14.9077 22.8328 14.9077H23.1259C23.6232 14.9077 24.0028 14.7652 24.2646 14.4802C24.5351 14.1847 24.6703 13.8206 24.6703 13.3879C24.6703 12.9868 24.5612 12.6649 24.3431 12.4222C24.125 12.1794 23.8414 12.058 23.4924 12.058C23.1172 12.058 22.79 12.2058 22.5107 12.5013C22.2924 12.7314 22.1138 13.0439 21.9751 13.439C21.9231 13.587 21.764 13.654 21.6429 13.5701L20.5822 12.8353C20.4997 12.7782 20.4607 12.6667 20.4906 12.5637C20.7235 11.7628 21.1046 11.1457 21.6338 10.7124C22.201 10.2375 22.8729 10 23.6494 10C24.2515 10 24.7794 10.1372 25.2331 10.4116C25.6955 10.6755 26.0533 11.0501 26.3063 11.5356C26.5594 12.0211 26.6859 12.5805 26.6859 13.2137C26.6859 13.8047 26.5725 14.3166 26.3456 14.7493C26.1275 15.1821 25.8002 15.5198 25.364 15.7625Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 25.5V6.49999H3V25.5L29 25.5ZM3.00003 4.5C1.89546 4.5 1.00003 5.39543 1.00003 6.5L1 25.5C0.999998 26.6046 1.89543 27.5 3 27.5H29C30.1046 27.5 31 26.6046 31 25.5V6.50004C31 5.39547 30.1046 4.50004 29 4.50004L3.00003 4.5Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

6
designer-base/src/main/resources/com/fine/theme/icon/widget/number_field_disable.svg

@ -0,0 +1,6 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.32355 14.0887C5.17864 14.1791 5 14.0623 5 13.8771V12.2256C5 12.1413 5.03919 12.0632 5.10351 12.0191L7.87937 10.1154C7.91362 10.0919 7.95304 10.0795 7.99325 10.0795H9.41311C9.53317 10.0795 9.6305 10.188 9.6305 10.3219L9.63051 21.5152C9.63051 21.649 9.53318 21.7576 9.41311 21.7576H7.70415C7.58409 21.7576 7.48676 21.649 7.48676 21.5152L7.48676 12.7388L5.32355 14.0887Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M14.9314 19.5677H18.329C18.4491 19.5677 18.5464 19.6762 18.5464 19.8101L18.5464 21.5152C18.5464 21.649 18.4491 21.7576 18.329 21.7576H12.1543C12.0342 21.7576 11.9369 21.649 11.9369 21.5152V20.2138L14.8294 16.3958C15.3267 15.7203 15.6714 15.1926 15.8633 14.8127C16.064 14.4222 16.1644 14.0211 16.1644 13.6095C16.1644 13.1557 16.0597 12.7916 15.8502 12.5172C15.6408 12.2427 15.3573 12.1055 14.9995 12.1055C14.633 12.1055 14.3102 12.2691 14.031 12.5963C13.8027 12.8552 13.6181 13.2059 13.4773 13.6483C13.4287 13.801 13.2662 13.8713 13.1432 13.7852L12.0337 13.0082C11.9528 12.9516 11.9141 12.8425 11.9419 12.7407C12.1761 11.8854 12.5714 11.2252 13.1279 10.7599C13.7212 10.2533 14.4062 10 15.1827 10C15.7935 10 16.3214 10.153 16.7664 10.4591C17.2201 10.7546 17.5648 11.1662 17.8004 11.6939C18.0447 12.2216 18.1669 12.8232 18.1669 13.4987C18.1669 14.1636 18.0316 14.7863 17.7611 15.3668C17.4994 15.9367 17.0282 16.6807 16.3476 17.5989L14.9314 19.5677Z" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M25.364 15.7625C25.8962 16.0053 26.302 16.3641 26.5812 16.8391C26.8604 17.3034 27 17.8839 27 18.5805C27 19.2982 26.8473 19.9156 26.5419 20.4327C26.2452 20.9393 25.8395 21.3298 25.3247 21.6042C24.8186 21.8681 24.2558 22 23.6363 22C22.8423 22 22.1486 21.7731 21.5553 21.3193C21.0115 20.8971 20.6149 20.2969 20.3656 19.5186C20.3322 19.4144 20.3708 19.2995 20.455 19.241L21.5719 18.4657C21.6946 18.3805 21.8561 18.4507 21.9089 18.6008C22.0501 19.0015 22.2507 19.3166 22.5107 19.5462C22.8336 19.8206 23.1957 19.9578 23.5971 19.9578C23.9897 19.9578 24.3169 19.8206 24.5787 19.5462C24.8492 19.2718 24.9844 18.8918 24.9844 18.4063C24.9844 17.3404 24.3126 16.8074 22.9688 16.8074H22.8328C22.7128 16.8074 22.6154 16.6989 22.6154 16.565V15.1501C22.6154 15.0162 22.7128 14.9077 22.8328 14.9077H23.1259C23.6232 14.9077 24.0028 14.7652 24.2646 14.4802C24.5351 14.1847 24.6703 13.8206 24.6703 13.3879C24.6703 12.9868 24.5612 12.6649 24.3431 12.4222C24.125 12.1794 23.8414 12.058 23.4924 12.058C23.1172 12.058 22.79 12.2058 22.5107 12.5013C22.2924 12.7314 22.1138 13.0439 21.9751 13.439C21.9231 13.587 21.764 13.654 21.6429 13.5701L20.5822 12.8353C20.4997 12.7782 20.4607 12.6667 20.4906 12.5637C20.7235 11.7628 21.1046 11.1457 21.6338 10.7124C22.201 10.2375 22.8729 10 23.6494 10C24.2515 10 24.7794 10.1372 25.2331 10.4116C25.6955 10.6755 26.0533 11.0501 26.3063 11.5356C26.5594 12.0211 26.6859 12.5805 26.6859 13.2137C26.6859 13.8047 26.5725 14.3166 26.3456 14.7493C26.1275 15.1821 25.8002 15.5198 25.364 15.7625Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 25.5V6.49999H3V25.5L29 25.5ZM3.00003 4.5C1.89546 4.5 1.00003 5.39543 1.00003 6.5L1 25.5C0.999998 26.6046 1.89543 27.5 3 27.5H29C30.1046 27.5 31 26.6046 31 25.5V6.50004C31 5.39547 30.1046 4.50004 29 4.50004L3.00003 4.5Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

4
designer-base/src/main/resources/com/fine/theme/icon/widget/password_field.svg

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 25.5V6.49999H3V25.5L29 25.5ZM3.00003 4.5C1.89546 4.5 1.00003 5.39543 1.00003 6.5L1 25.5C0.999998 26.6046 1.89543 27.5 3 27.5H29C30.1046 27.5 31 26.6046 31 25.5V6.50004C31 5.39547 30.1046 4.50004 29 4.50004L3.00003 4.5Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.0174 17.5627C14.4345 17.8307 14.5609 18.383 14.302 18.8059C14.0216 19.2639 13.408 19.3815 12.978 19.0597L10.9295 17.5264L11.0006 20.0485C11.0153 20.5696 10.5969 21 10.0756 21C9.55685 21 9.13944 20.5737 9.15036 20.0551L9.20172 17.6145L7.21743 19.0725C6.78193 19.3925 6.1655 19.2681 5.88826 18.8042C5.63512 18.3806 5.76283 17.8327 6.17715 17.5647L8.59612 16L6.17404 14.4139C5.76502 14.146 5.63844 13.6042 5.88645 13.1828C6.16328 12.7125 6.78736 12.587 7.22444 12.9138L9.19281 14.3855L9.14783 11.9426C9.1383 11.4249 9.55541 11 10.0733 11C10.5921 11 11.0096 11.4263 10.9987 11.945L10.9473 14.3953L12.9623 12.9217C13.3971 12.6037 14.0109 12.7258 14.2909 13.1859C14.551 13.6133 14.4218 14.1702 14.0001 14.4394L11.5707 15.9902L14.0174 17.5627ZM25.8246 17.5627C26.2417 17.8307 26.3682 18.383 26.1093 18.8059C25.8288 19.2639 25.2152 19.3815 24.7852 19.0597L22.7367 17.5264L22.8078 20.0485C22.8225 20.5696 22.4041 21 21.8828 21C21.3641 21 20.9467 20.5737 20.9576 20.0551L21.009 17.6145L19.0247 19.0725C18.5892 19.3925 17.9727 19.2681 17.6955 18.8042C17.4424 18.3806 17.5701 17.8327 17.9844 17.5647L20.4034 16L17.9813 14.4139C17.5723 14.146 17.4457 13.6042 17.6937 13.1828C17.9705 12.7125 18.5946 12.587 19.0317 12.9138L21.0001 14.3855L20.9551 11.9426C20.9455 11.4249 21.3627 11 21.8805 11C22.3993 11 22.8168 11.4263 22.8059 11.945L22.7545 14.3953L24.7695 12.9217C25.2044 12.6037 25.8181 12.7258 26.0982 13.1859C26.3583 13.6133 26.2291 14.1702 25.8074 14.4394L23.3779 15.9902L25.8246 17.5627Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

4
designer-base/src/main/resources/com/fine/theme/icon/widget/password_field_disable.svg

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 25.5V6.49999H3V25.5L29 25.5ZM3.00003 4.5C1.89546 4.5 1.00003 5.39543 1.00003 6.5L1 25.5C0.999998 26.6046 1.89543 27.5 3 27.5H29C30.1046 27.5 31 26.6046 31 25.5V6.50004C31 5.39547 30.1046 4.50004 29 4.50004L3.00003 4.5Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.0174 17.5627C14.4345 17.8307 14.5609 18.383 14.302 18.8059C14.0216 19.2639 13.408 19.3815 12.978 19.0597L10.9295 17.5264L11.0006 20.0485C11.0153 20.5696 10.5969 21 10.0756 21C9.55685 21 9.13944 20.5737 9.15036 20.0551L9.20172 17.6145L7.21743 19.0725C6.78193 19.3925 6.1655 19.2681 5.88826 18.8042C5.63512 18.3806 5.76283 17.8327 6.17715 17.5647L8.59612 16L6.17404 14.4139C5.76502 14.146 5.63844 13.6042 5.88645 13.1828C6.16328 12.7125 6.78736 12.587 7.22444 12.9138L9.19281 14.3855L9.14783 11.9426C9.1383 11.4249 9.55541 11 10.0733 11C10.5921 11 11.0096 11.4263 10.9987 11.945L10.9473 14.3953L12.9623 12.9217C13.3971 12.6037 14.0109 12.7258 14.2909 13.1859C14.551 13.6133 14.4218 14.1702 14.0001 14.4394L11.5707 15.9902L14.0174 17.5627ZM25.8246 17.5627C26.2417 17.8307 26.3682 18.383 26.1093 18.8059C25.8288 19.2639 25.2152 19.3815 24.7852 19.0597L22.7367 17.5264L22.8078 20.0485C22.8225 20.5696 22.4041 21 21.8828 21C21.3641 21 20.9467 20.5737 20.9576 20.0551L21.009 17.6145L19.0247 19.0725C18.5892 19.3925 17.9727 19.2681 17.6955 18.8042C17.4424 18.3806 17.5701 17.8327 17.9844 17.5647L20.4034 16L17.9813 14.4139C17.5723 14.146 17.4457 13.6042 17.6937 13.1828C17.9705 12.7125 18.5946 12.587 19.0317 12.9138L21.0001 14.3855L20.9551 11.9426C20.9455 11.4249 21.3627 11 21.8805 11C22.3993 11 22.8168 11.4263 22.8059 11.945L22.7545 14.3953L24.7695 12.9217C25.2044 12.6037 25.8181 12.7258 26.0982 13.1859C26.3583 13.6133 26.2291 14.1702 25.8074 14.4394L23.3779 15.9902L25.8246 17.5627Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

11
designer-base/src/main/resources/com/fine/theme/icon/widget/picture.svg

@ -0,0 +1,11 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5062_10582)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M25 10.5C25 12.433 23.433 14 21.5 14C19.567 14 18 12.433 18 10.5C18 8.567 19.567 7 21.5 7C23.433 7 25 8.567 25 10.5ZM23 10.5C23 11.3284 22.3284 12 21.5 12C20.6716 12 20 11.3284 20 10.5C20 9.67157 20.6716 9 21.5 9C22.3284 9 23 9.67157 23 10.5Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 2C2.89543 2 2 2.89543 2 4V28C2 29.1046 2.89543 30 4 30H28C29.1046 30 30 29.1046 30 28V4C30 2.89543 29.1046 2 28 2H4ZM28 4H4V18.284L10.1658 12.8436C10.9312 12.1683 12.0823 12.1776 12.8366 12.8653L28 26.6908V4ZM4 28V20.9513L11.4891 14.3433L26.4674 28H4Z" fill="#0A1C38" fill-opacity="0.9"/>
</g>
<defs>
<clipPath id="clip0_5062_10582">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 921 B

11
designer-base/src/main/resources/com/fine/theme/icon/widget/picture_disable.svg

@ -0,0 +1,11 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5830_164298)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M25 10.5C25 12.433 23.433 14 21.5 14C19.567 14 18 12.433 18 10.5C18 8.567 19.567 7 21.5 7C23.433 7 25 8.567 25 10.5ZM23 10.5C23 11.3284 22.3284 12 21.5 12C20.6716 12 20 11.3284 20 10.5C20 9.67157 20.6716 9 21.5 9C22.3284 9 23 9.67157 23 10.5Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 2C2.89543 2 2 2.89543 2 4V28C2 29.1046 2.89543 30 4 30H28C29.1046 30 30 29.1046 30 28V4C30 2.89543 29.1046 2 28 2H4ZM28 4H4V18.284L10.1658 12.8436C10.9312 12.1683 12.0823 12.1776 12.8366 12.8653L28 26.6908V4ZM4 28V20.9513L11.4891 14.3433L26.4674 28H4Z" fill="#0A1C38" fill-opacity="0.29"/>
</g>
<defs>
<clipPath id="clip0_5830_164298">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 925 B

11
designer-base/src/main/resources/com/fine/theme/icon/widget/preview.svg

@ -0,0 +1,11 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5062_10664)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 13.7537V6.49999H4V25.5H8.7151C8.97042 26.1897 9.29412 26.8599 9.68619 27.5H4C2.89543 27.5 2 26.6046 2 25.5L2.00003 6.5C2.00003 5.39543 2.89546 4.5 4.00003 4.5L28 4.50004C29.1046 4.50004 30 5.39547 30 6.50004V16.802C29.512 15.7107 28.8453 14.6798 28 13.7537Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M26 21.5C26 25.0899 23.0899 28 19.5 28C15.9101 28 13 25.0899 13 21.5C13 17.9101 15.9101 15 19.5 15C23.0899 15 26 17.9101 26 21.5ZM24.7619 28.176C23.3146 29.3183 21.4869 30 19.5 30C14.8056 30 11 26.1944 11 21.5C11 16.8056 14.8056 13 19.5 13C24.1944 13 28 16.8056 28 21.5C28 23.4868 27.3183 25.3145 26.1761 26.7618L28.2647 28.8504C28.6234 29.2091 28.5977 29.8166 28.2072 30.2071C27.8167 30.5976 27.2092 30.6234 26.8505 30.2646L24.7619 28.176Z" fill="#0A1C38" fill-opacity="0.9"/>
</g>
<defs>
<clipPath id="clip0_5062_10664">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

11
designer-base/src/main/resources/com/fine/theme/icon/widget/preview_disable.svg

@ -0,0 +1,11 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5830_164348)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 13.7537V6.49999H4V25.5H8.7151C8.97042 26.1897 9.29412 26.8599 9.68619 27.5H4C2.89543 27.5 2 26.6046 2 25.5L2.00003 6.5C2.00003 5.39543 2.89546 4.5 4.00003 4.5L28 4.50004C29.1046 4.50004 30 5.39547 30 6.50004V16.802C29.512 15.7107 28.8453 14.6798 28 13.7537Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M26 21.5C26 25.0899 23.0899 28 19.5 28C15.9101 28 13 25.0899 13 21.5C13 17.9101 15.9101 15 19.5 15C23.0899 15 26 17.9101 26 21.5ZM24.7616 28.1762C23.3144 29.3184 21.4868 30 19.5 30C14.8056 30 11 26.1944 11 21.5C11 16.8056 14.8056 13 19.5 13C24.1944 13 28 16.8056 28 21.5C28 23.487 27.3182 25.3147 26.1759 26.762L28.2643 28.8504C28.623 29.2091 28.5973 29.8166 28.2068 30.2071C27.8162 30.5976 27.2088 30.6234 26.85 30.2646L24.7616 28.1762Z" fill="#0A1C38" fill-opacity="0.29"/>
</g>
<defs>
<clipPath id="clip0_5830_164348">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

13
designer-base/src/main/resources/com/fine/theme/icon/widget/prewidget.svg

@ -0,0 +1,13 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5185_49403)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M24 11H8V8H24V11ZM6 13V7C6 6.44772 6.44772 6 7 6H25C25.5523 6 26 6.44772 26 7V13H6Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 17H8V24H11V17ZM6 15V25C6 25.5523 6.44772 26 7 26H13V15H6Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M17 17H24V24H17V17ZM26 15V25C26 25.5523 25.5523 26 25 26H15V15H26Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 2C2.67157 2 2 2.67157 2 3.5V28.5C2 29.3284 2.67157 30 3.5 30H28.5C29.3284 30 30 29.3284 30 28.5V3.5C30 2.67157 29.3284 2 28.5 2H3.5ZM4 28V4H28V28H4Z" fill="#0A1C38" fill-opacity="0.9"/>
</g>
<defs>
<clipPath id="clip0_5185_49403">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 962 B

13
designer-base/src/main/resources/com/fine/theme/icon/widget/prewidget_disable.svg

@ -0,0 +1,13 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5830_164273)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M24 11H8V8H24V11ZM6 13V7C6 6.44772 6.44772 6 7 6H25C25.5523 6 26 6.44772 26 7V13H6Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 17H8V24H11V17ZM6 15V25C6 25.5523 6.44772 26 7 26H13V15H6Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M17 17H24V24H17V17ZM26 15V25C26 25.5523 25.5523 26 25 26H15V15H26Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 2C2.67157 2 2 2.67157 2 3.5V28.5C2 29.3284 2.67157 30 3.5 30H28.5C29.3284 30 30 29.3284 30 28.5V3.5C30 2.67157 29.3284 2 28.5 2H3.5ZM4 28V4H28V28H4Z" fill="#0A1C38" fill-opacity="0.29"/>
</g>
<defs>
<clipPath id="clip0_5830_164273">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 968 B

3
designer-base/src/main/resources/com/fine/theme/icon/widget/tab.svg

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.99997 3.99997V16H10V16L19 16L21 16L28 16V28H3.99997L3.99999 3.99997H9.99997ZM30 16V28C30 29.1046 29.1045 30 28 30H4.00003C2.89546 30 2.00004 29.1046 2.00003 28L2 4C2 2.89543 2.89543 2 3.99999 2L9.99997 2.00001C11.1045 2.00001 12 2.89544 12 4.00001V6H19H21L28 6.00003C29.1046 6.00003 30 6.89546 30 8.00003V16H30ZM28 14V8H21V14H28ZM19 14V8H12V14H19Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 540 B

3
designer-base/src/main/resources/com/fine/theme/icon/widget/tab_disable.svg

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.99997 3.99997V16H10V16L19 16L21 16L28 16V28H3.99997L3.99999 3.99997H9.99997ZM30 16V28C30 29.1046 29.1045 30 28 30H4.00003C2.89546 30 2.00004 29.1046 2.00003 28L2 4C2 2.89543 2.89543 2 3.99999 2L9.99997 2.00001C11.1045 2.00001 12 2.89544 12 4.00001V6H19H21L28 6.00003C29.1046 6.00003 30 6.89546 30 8.00003V16H30ZM28 14V8H21V14H28ZM19 14V8H12V14H19Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 541 B

11
designer-base/src/main/resources/com/fine/theme/icon/widget/text_area.svg

@ -0,0 +1,11 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5095_7329)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 25.5V6.49999H3V25.5L29 25.5ZM3.00003 4.5C1.89546 4.5 1.00003 5.39543 1.00003 6.5L1 25.5C0.999998 26.6046 1.89543 27.5 3 27.5H29C30.1046 27.5 31 26.6046 31 25.5V6.50004C31 5.39547 30.1046 4.50004 29 4.50004L3.00003 4.5Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.5 11C8.5 10.4477 8.05228 10 7.5 10C6.94772 10 6.5 10.4477 6.5 11L6.5 13L5 13C4.44772 13 4 13.4477 4 14C4 14.5523 4.44771 15 5 15H6.5L6.5 19C6.5 20.6569 7.84315 22 9.5 22L10 22C10.5523 22 11 21.5523 11 21C11 20.4477 10.5523 20 10 20C9.17157 20 8.5 19.3284 8.5 18.5L8.5 15H10C10.5523 15 11 14.5523 11 14C11 13.4477 10.5523 13 10 13L8.5 13L8.5 11ZM28 14C28 14.5523 27.5523 15 27 15H25.5V18.5C25.5 19.3284 26.1716 20 27 20C27.5523 20 28 20.4477 28 21C28 21.5523 27.5523 22 27 22L26.5 22C24.8431 22 23.5 20.6569 23.5 19V15H22C21.4477 15 21 14.5523 21 14C21 13.4477 21.4477 13 22 13L23.5 13V11C23.5 10.4477 23.9477 10 24.5 10C25.0523 10 25.5 10.4477 25.5 11V13L27 13C27.5523 13 28 13.4477 28 14ZM18.9112 12C18.55 12 18.2126 12.1642 18.0115 12.4378L15.9842 15.1967L13.9912 12.444C13.7904 12.1668 13.4505 12 13.0862 12C12.2215 12 11.7046 12.8778 12.1822 13.5351L14.7 17L12.1827 20.4642C11.7049 21.1218 12.222 22 13.0871 22C13.4509 22 13.7905 21.8337 13.9915 21.5572L16.0015 18.791L18.012 21.5578C18.2126 21.834 18.5517 22 18.9149 22C19.7795 22 20.2957 21.1217 19.8169 20.4652L17.2833 16.991L19.8121 13.5359C20.2924 12.8796 19.7765 12 18.9112 12Z" fill="#0A1C38" fill-opacity="0.9"/>
</g>
<defs>
<clipPath id="clip0_5095_7329">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

11
designer-base/src/main/resources/com/fine/theme/icon/widget/text_area_disable.svg

@ -0,0 +1,11 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5830_164328)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 25.5V6.49999H3V25.5L29 25.5ZM3.00003 4.5C1.89546 4.5 1.00003 5.39543 1.00003 6.5L1 25.5C0.999998 26.6046 1.89543 27.5 3 27.5H29C30.1046 27.5 31 26.6046 31 25.5V6.50004C31 5.39547 30.1046 4.50004 29 4.50004L3.00003 4.5Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.5 11C8.5 10.4477 8.05228 10 7.5 10C6.94772 10 6.5 10.4477 6.5 11L6.5 13L5 13C4.44772 13 4 13.4477 4 14C4 14.5523 4.44771 15 5 15H6.5L6.5 19C6.5 20.6569 7.84315 22 9.5 22L10 22C10.5523 22 11 21.5523 11 21C11 20.4477 10.5523 20 10 20C9.17157 20 8.5 19.3284 8.5 18.5L8.5 15H10C10.5523 15 11 14.5523 11 14C11 13.4477 10.5523 13 10 13L8.5 13L8.5 11ZM28 14C28 14.5523 27.5523 15 27 15H25.5V18.5C25.5 19.3284 26.1716 20 27 20C27.5523 20 28 20.4477 28 21C28 21.5523 27.5523 22 27 22L26.5 22C24.8431 22 23.5 20.6569 23.5 19V15H22C21.4477 15 21 14.5523 21 14C21 13.4477 21.4477 13 22 13L23.5 13V11C23.5 10.4477 23.9477 10 24.5 10C25.0523 10 25.5 10.4477 25.5 11V13L27 13C27.5523 13 28 13.4477 28 14ZM18.9112 12C18.55 12 18.2126 12.1642 18.0115 12.4378L15.9842 15.1967L13.9912 12.444C13.7904 12.1668 13.4505 12 13.0862 12C12.2215 12 11.7046 12.8778 12.1822 13.5351L14.7 17L12.1827 20.4642C11.7049 21.1218 12.222 22 13.0871 22C13.4509 22 13.7905 21.8337 13.9915 21.5572L16.0015 18.791L18.012 21.5578C18.2126 21.834 18.5517 22 18.9149 22C19.7795 22 20.2957 21.1217 19.8169 20.4652L17.2833 16.991L19.8121 13.5359C20.2924 12.8796 19.7765 12 18.9112 12Z" fill="#0A1C38" fill-opacity="0.29"/>
</g>
<defs>
<clipPath id="clip0_5830_164328">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

3
designer-base/src/main/resources/com/fine/theme/icon/widget/text_field.svg

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.5001 8.99999L28.0001 8.99998V3.99983L4.00002 3.99991L4.00002 9.00006L13.5001 8.99999L13.5001 28H18.5001L18.5001 8.99999ZM20.5001 28C20.5001 29.1046 19.6047 30 18.5001 30H13.5001C12.3956 30 11.5001 29.1046 11.5001 28L11.5001 11H4.00002C2.89545 11 2.00002 10.1046 2.00002 8.99999L2 3.99988C2 2.89531 2.89543 1.99987 4.00001 1.99988L28.0001 1.99995C29.1047 1.99995 30.0001 2.89537 30.0001 3.99994L30.0001 8.99998C30.0001 10.1046 29.1047 11 28.0001 11H20.5001L20.5001 28Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 621 B

3
designer-base/src/main/resources/com/fine/theme/icon/widget/text_field_disable.svg

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.5001 8.99999L28.0001 8.99998V3.99983L4.00002 3.99991L4.00002 9.00006L13.5001 8.99999L13.5001 28H18.5001L18.5001 8.99999ZM20.5001 28C20.5001 29.1046 19.6047 30 18.5001 30H13.5001C12.3956 30 11.5001 29.1046 11.5001 28L11.5001 11H4.00002C2.89545 11 2.00002 10.1046 2.00002 8.99999L2 3.99988C2 2.89531 2.89543 1.99987 4.00001 1.99988L28.0001 1.99995C29.1047 1.99995 30.0001 2.89537 30.0001 3.99994L30.0001 8.99998C30.0001 10.1046 29.1047 11 28.0001 11H20.5001L20.5001 28Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 622 B

4
designer-base/src/main/resources/com/fine/theme/icon/widget/tree.svg

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.00002 2C7.44774 2 7.00002 2.44771 7.00002 3L7 12C6.99999 12.5523 7.44771 13 7.99999 13H15V16L8.00001 16C7.44772 16 7.00001 16.4477 7.00001 17V21H2.00003C1.44774 21 1.00003 21.4477 1.00002 22L1 29C1 29.5523 1.44771 30 2 30H14C14.5523 30 15 29.5523 15 29V22C15 21.4477 14.5523 21 14 21L9.00001 21V18H23V21H25V17C25 16.4477 24.5523 16 24 16H17V13H24C24.5523 13 25 12.5523 25 12V3.00003C25 2.44775 24.5523 2.00003 24 2.00003L8.00002 2ZM23 11V3.99998H8.99999V11L23 11ZM13 23V28H2.99999V23H13Z" fill="#0A1C38" fill-opacity="0.9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 28V23H19V28L29 28ZM18 21C17.4477 21 17 21.4477 17 22L17 29C17 29.5523 17.4477 30 18 30H30C30.5523 30 31 29.5523 31 29V22C31 21.4477 30.5523 21 30 21L18 21Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 926 B

4
designer-base/src/main/resources/com/fine/theme/icon/widget/tree_disable.svg

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.00002 2C7.44774 2 7.00002 2.44771 7.00002 3L7 12C6.99999 12.5523 7.44771 13 7.99999 13H15V16L8.00001 16C7.44772 16 7.00001 16.4477 7.00001 17V21H2.00003C1.44774 21 1.00003 21.4477 1.00002 22L1 29C1 29.5523 1.44771 30 2 30H14C14.5523 30 15 29.5523 15 29V22C15 21.4477 14.5523 21 14 21L9.00001 21V18H23V21H25V17C25 16.4477 24.5523 16 24 16H17V13H24C24.5523 13 25 12.5523 25 12V3.00003C25 2.44775 24.5523 2.00003 24 2.00003L8.00002 2ZM23 11V3.99998H8.99999V11L23 11ZM13 23V28H2.99999V23H13Z" fill="#0A1C38" fill-opacity="0.29"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 28V23H19V28L29 28ZM18 21C17.4477 21 17 21.4477 17 22L17 29C17 29.5523 17.4477 30 18 30H30C30.5523 30 31 29.5523 31 29V22C31 21.4477 30.5523 21 30 21L18 21Z" fill="#0A1C38" fill-opacity="0.29"/>
</svg>

After

Width:  |  Height:  |  Size: 928 B

10
designer-base/src/test/java/com/fr/design/gui/storybook/Storybook.java

@ -143,12 +143,20 @@ public class Storybook {
private static boolean isStory(String className) { private static boolean isStory(String className) {
try { try {
Class<?> aClass = Class.forName(COMPONENTS_PACKAGE + className); Class<?> aClass = Class.forName(COMPONENTS_PACKAGE + className);
return aClass.isAnnotationPresent(Story.class) || StoryBoard.class.isAssignableFrom(aClass); return aClass.isAnnotationPresent(Story.class)
|| StoryBoard.class.isAssignableFrom(aClass)
|| isStoryboardByName(aClass);
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
return false; return false;
} }
} }
private static boolean isStoryboardByName(Class<?> aClass) {
return aClass.getName().toLowerCase().contains("storyboard")
&& !aClass.isMemberClass()
&& !aClass.isAnonymousClass();
}
/** /**
* 应用主题 * 应用主题
*/ */

4
designer-form/src/main/java/com/fr/design/form/parameter/FormParaDesigner.java

@ -726,8 +726,8 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP
* *
* @return 工具栏面板 g * @return 工具栏面板 g
*/ */
public JPanel[] toolbarPanes4Form() { public JComponent[] toolbarPanes4Form() {
return new JPanel[]{FormParaPane.getInstance(this)}; return new JComponent[]{FormParaPane.getInstance(this)};
} }
/** /**

16
designer-form/src/main/java/com/fr/design/form/parameter/FormParaTargetMode.java

@ -6,12 +6,12 @@ import com.fr.design.designer.properties.WidgetPropertyTable;
import com.fr.design.gui.core.WidgetOption; import com.fr.design.gui.core.WidgetOption;
import com.fr.design.gui.core.WidgetOptionFactory; import com.fr.design.gui.core.WidgetOptionFactory;
import com.fr.design.gui.itable.PropertyGroup; import com.fr.design.gui.itable.PropertyGroup;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.FormDesignerModeForSpecial; import com.fr.design.mainframe.FormDesignerModeForSpecial;
import com.fr.form.main.parameter.FormParameterUI; import com.fr.form.main.parameter.FormParameterUI;
import com.fr.form.parameter.FormSubmitButton; import com.fr.form.parameter.FormSubmitButton;
import com.fr.form.ui.PageFixedRowComboBox; import com.fr.form.ui.PageFixedRowComboBox;
import java.util.ArrayList; import java.util.ArrayList;
public class FormParaTargetMode extends FormDesignerModeForSpecial<FormParaDesigner> { public class FormParaTargetMode extends FormDesignerModeForSpecial<FormParaDesigner> {
@ -27,10 +27,14 @@ public class FormParaTargetMode extends FormDesignerModeForSpecial<FormParaDesig
@Override @Override
public WidgetOption[] getPredefinedWidgetOptions() { public WidgetOption[] getPredefinedWidgetOptions() {
return new WidgetOption[]{ return new WidgetOption[]{
WidgetOptionFactory.createByWidgetClass(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Query_Button"), WidgetOptionFactory.createByWidgetClass(
"/com/fr/web/images/form/resources/preview_16", FormSubmitButton.class), Toolkit.i18nText("Fine-Design_Form_Query_Button"),
WidgetOptionFactory.createByWidgetClass(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Page_Fixed_Row_ComboBox"), "preview",
"/com/fr/design/images/buttonicon/widget/combo_box_16", PageFixedRowComboBox.class)}; FormSubmitButton.class),
WidgetOptionFactory.createByWidgetClass(
Toolkit.i18nText("Fine-Design_Form_Page_Fixed_Row_ComboBox"),
"combo_box",
PageFixedRowComboBox.class)};
} }
@Override @Override

8
designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java

@ -53,7 +53,6 @@ import com.fr.design.designer.creator.XWParameterLayout;
import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout;
import com.fr.design.designer.properties.FormWidgetAuthorityEditPane; import com.fr.design.designer.properties.FormWidgetAuthorityEditPane;
import com.fr.design.dialog.FineJOptionPane; import com.fr.design.dialog.FineJOptionPane;
import com.fr.design.event.DesignerOpenedListener;
import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.form.util.XCreatorConstants; import com.fr.design.form.util.XCreatorConstants;
import com.fr.design.fun.RightSelectionHandlerProvider; import com.fr.design.fun.RightSelectionHandlerProvider;
@ -782,12 +781,7 @@ public class FormDesigner extends TargetComponent<Form> implements TreeSelection
}); });
DesignerContext.getDesignerFrame().addDesignerOpenedListener(new DesignerOpenedListener() { DesignerContext.getDesignerFrame().addDesignerOpenedListener(this::setToolbarButtons);
@Override
public void designerOpened() {
setToolbarButtons();
}
});
} }
/** /**

103
designer-form/src/main/java/com/fr/design/mainframe/FormParaPane.java

@ -7,43 +7,40 @@ import com.fr.design.gui.core.UserDefinedWidgetOption;
import com.fr.design.gui.core.WidgetOption; import com.fr.design.gui.core.WidgetOption;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.utils.gui.LayoutUtils; import com.fr.design.gui.itoolbar.UIToolbar;
import com.fr.form.ui.*; import com.fr.design.i18n.Toolkit;
import com.fr.form.ui.UserDefinedWidgetConfig;
import com.fr.form.ui.Widget;
import com.fr.form.ui.WidgetConfig;
import com.fr.form.ui.WidgetInfoConfig;
import com.fr.general.GeneralContext; import com.fr.general.GeneralContext;
import com.fr.plugin.context.PluginContext;
import com.fr.plugin.injectable.PluginModule; import com.fr.plugin.injectable.PluginModule;
import com.fr.plugin.manage.PluginFilter;
import com.fr.plugin.observer.PluginEvent; import com.fr.plugin.observer.PluginEvent;
import com.fr.plugin.observer.PluginEventListener; import com.fr.plugin.observer.PluginEventListener;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator; import java.util.Iterator;
import java.util.List;
/** /**
* Created with IntelliJ IDEA.
* User: zx
* Date: 14-7-8
* Time: 上午10:09
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*
* @author zx
* @since 7.0
* Created on 14-7-8
* Time: 上午10:09
*/ */
public class FormParaPane extends UIToolbar {
public class FormParaPane extends JPanel {
private static final int PANE_HEIGHT = 24;
private static final int TOOLTIP_X = 5; private static final int TOOLTIP_X = 5;
private static final int TOOLTIP_Y = 10;
private static Dimension originalSize;
private static volatile FormParaPane THIS; private static volatile FormParaPane THIS;
private java.util.List<WidgetOption> predifinedwidgeList = new ArrayList<WidgetOption>(); private final List<WidgetOption> predifinedwidgeList = new ArrayList<>();
private UIButton predefineButton; private final UIButton predefineButton;
private final ArrayList<WidgetOption> componentsList4Para = new ArrayList<>();
private FormWidgetPopWindow predifinedWindow; private FormWidgetPopWindow predifinedWindow;
@ -57,41 +54,25 @@ public class FormParaPane extends JPanel {
THIS = null; THIS = null;
} }
}, new PluginFilter() { }, context -> context.contain(PluginModule.ExtraDesign));
@Override
public boolean accept(PluginContext context) {
return context.contain(PluginModule.ExtraDesign);
}
});
} }
public static final FormParaPane getInstance(FormDesigner designer) { /**
if(THIS == null) { * 单例不合适下次重构
*/
public static FormParaPane getInstance(FormDesigner designer) {
if (THIS == null) {
THIS = new FormParaPane(); THIS = new FormParaPane();
} }
THIS.designer = designer; THIS.designer = designer;
THIS.setTarget(designer); THIS.setTarget(designer);
if (originalSize != null) {
THIS.setPreferredSize(originalSize);
}
return THIS; return THIS;
} }
private ArrayList<WidgetOption> componentsList4Para = new ArrayList<WidgetOption>();
public FormParaPane() { public FormParaPane() {
predefineButton = new UIButton(UIConstants.PRE_WIDGET_NORMAL_ICON) { predefineButton = new UIButton(UIConstants.PRE_WIDGET_NORMAL_ICON);
@Override
public Dimension getPreferredSize() {
Dimension dim = super.getPreferredSize();
dim.width = PANE_HEIGHT;
return dim;
}
};
predefineButton.set4ToolbarButton(); predefineButton.set4ToolbarButton();
predefineButton.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_User_Defined_Widget_Config")); predefineButton.setToolTipText(Toolkit.i18nText("Fine-Design_Basic_Widget_User_Defined_Widget_Config"));
predefineButton.addMouseListener(new MouseAdapter() { predefineButton.addMouseListener(new MouseAdapter() {
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
@ -99,22 +80,10 @@ public class FormParaPane extends JPanel {
predifinedWindow = new FormWidgetPopWindow(); predifinedWindow = new FormWidgetPopWindow();
} }
loadPredifinedWidget(); loadPredifinedWidget();
predifinedWindow.showToolTip(predefineButton.getLocationOnScreen().x + predefineButton.getWidth() + TOOLTIP_X, predefineButton.getLocationOnScreen().y - TOOLTIP_Y, (WidgetOption[])predifinedwidgeList.toArray(new WidgetOption[predifinedwidgeList.size()])); predifinedWindow.showToolTip(
} predefineButton.getLocationOnScreen().x + predefineButton.getWidth() + TOOLTIP_X,
}); predefineButton.getLocationOnScreen().y,
setLayout(new FlowLayout(FlowLayout.LEFT)); predifinedwidgeList.toArray(new WidgetOption[predifinedwidgeList.size()]));
DesignerContext.getDesignerFrame().getCenterTemplateCardPane().addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e) {
if (FormParaPane.this.getParent() != null) {
JPanel fother = (JPanel)FormParaPane.this.getParent();
Dimension d = fother.getSize();
int delta_wdith = 0;
for (int i = 0; i < fother.getComponentCount() - 1; i ++) {
delta_wdith += fother.getComponent(i).getWidth();
}
setPreferredSize(new Dimension(d.width - delta_wdith, d.height));
LayoutUtils.layoutContainer(fother);
}
} }
}); });
initParaComponent(); initParaComponent();
@ -132,9 +101,9 @@ public class FormParaPane extends JPanel {
private void loadPredifinedWidget() { private void loadPredifinedWidget() {
predifinedwidgeList.clear(); predifinedwidgeList.clear();
if(designer != null) { if (designer != null) {
WidgetOption[] designerPre = designer.getDesignerMode().getPredefinedWidgetOptions(); WidgetOption[] designerPre = designer.getDesignerMode().getPredefinedWidgetOptions();
for(int i = 0; i < designerPre.length; i++) { for (int i = 0; i < designerPre.length; i++) {
predifinedwidgeList.add(designerPre[i]); predifinedwidgeList.add(designerPre[i]);
} }
} }
@ -150,7 +119,7 @@ public class FormParaPane extends JPanel {
// ... // ...
continue; continue;
} }
if (!XCreatorUtils.createXCreator(widget).canEnterIntoParaPane()){ if (!XCreatorUtils.createXCreator(widget).canEnterIntoParaPane()) {
//预定义控件工具栏这儿不显示工具栏中没有的预定义控件 //预定义控件工具栏这儿不显示工具栏中没有的预定义控件
continue; continue;
} }
@ -172,17 +141,15 @@ public class FormParaPane extends JPanel {
private void initParaButtons() { private void initParaButtons() {
if(componentsList4Para.isEmpty()) { if (componentsList4Para.isEmpty()) {
WidgetOption[] options = WidgetOption.getReportParaWidgetIntance(); WidgetOption[] options = WidgetOption.getReportParaWidgetIntance();
WidgetOption[] basicWidgetArray = (WidgetOption[]) ArrayUtils.addAll( WidgetOption[] basicWidgetArray = ArrayUtils.addAll(
options, ExtraDesignClassManager.getInstance().getParameterWidgetOptions() options, ExtraDesignClassManager.getInstance().getParameterWidgetOptions()
); );
for (WidgetOption no : basicWidgetArray) { Collections.addAll(this.componentsList4Para, basicWidgetArray);
this.componentsList4Para.add(no);
}
} }
} }

15
designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java

@ -17,6 +17,7 @@ import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.imenu.UIPopupMenu; import com.fr.design.gui.imenu.UIPopupMenu;
import com.fr.design.gui.itoolbar.UIToolbar;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.share.ComponentShareUtil; import com.fr.design.mainframe.share.ComponentShareUtil;
import com.fr.design.mainframe.share.ui.online.OnlineWidgetRepoPane; import com.fr.design.mainframe.share.ui.online.OnlineWidgetRepoPane;
@ -44,10 +45,6 @@ import javax.swing.JComponent;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JSeparator; import javax.swing.JSeparator;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Cursor; import java.awt.Cursor;
@ -58,11 +55,19 @@ import java.awt.event.ComponentEvent;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
/** /**
* 参数面板控件工具栏
*
* @author null * @author null
* @since 7.0
* Created on 2008
*/ */
public class FormParaWidgetPane extends JPanel { public class FormParaWidgetPane extends UIToolbar {
private static FormParaWidgetPane THIS; private static FormParaWidgetPane THIS;
private final static int BORDER = 5; private final static int BORDER = 5;
private final static int WIDGET_WIDTHGAP = 4; private final static int WIDGET_WIDTHGAP = 4;

13
designer-form/src/main/java/com/fr/design/mainframe/FormTargetMode.java

@ -1,15 +1,14 @@
package com.fr.design.mainframe; package com.fr.design.mainframe;
import java.util.ArrayList; import com.fr.design.designer.properties.WidgetPropertyTable;
import com.fr.base.svg.IconUtils;
import com.fr.design.gui.core.WidgetOption; import com.fr.design.gui.core.WidgetOption;
import com.fr.design.gui.core.WidgetOptionFactory; import com.fr.design.gui.core.WidgetOptionFactory;
import com.fr.design.gui.itable.PropertyGroup; import com.fr.design.gui.itable.PropertyGroup;
import com.fr.design.designer.properties.WidgetPropertyTable; import com.fr.design.i18n.Toolkit;
import com.fr.form.parameter.FormSubmitButton; import com.fr.form.parameter.FormSubmitButton;
import java.util.ArrayList;
public class FormTargetMode extends FormDesignerModeForSpecial<FormDesigner> { public class FormTargetMode extends FormDesignerModeForSpecial<FormDesigner> {
@ -22,8 +21,8 @@ public class FormTargetMode extends FormDesignerModeForSpecial<FormDesigner> {
*/ */
public WidgetOption[] getPredefinedWidgetOptions() { public WidgetOption[] getPredefinedWidgetOptions() {
return new WidgetOption[]{ return new WidgetOption[]{
WidgetOptionFactory.createByWidgetClass(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Query_Button"), WidgetOptionFactory.createByWidgetClass(Toolkit.i18nText("Fine-Design_Form_Query_Button"),
"/com/fr/web/images/form/resources/preview_16", FormSubmitButton.class)}; "preview", FormSubmitButton.class)};
} }
public ArrayList<PropertyGroup> createRootDesignerPropertyGroup() { public ArrayList<PropertyGroup> createRootDesignerPropertyGroup() {

254
designer-form/src/main/java/com/fr/design/mainframe/FormWidgetPopWindow.java

@ -1,10 +1,14 @@
package com.fr.design.mainframe; package com.fr.design.mainframe;
import com.fr.design.gui.core.WidgetOption;
import com.fr.stable.os.OperatingSystem;
import javax.swing.JPanel;
import javax.swing.JWindow;
import java.awt.AWTEvent; import java.awt.AWTEvent;
import java.awt.Component; import java.awt.Component;
import java.awt.Container; import java.awt.Container;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Insets; import java.awt.Insets;
import java.awt.LayoutManager; import java.awt.LayoutManager;
import java.awt.Point; import java.awt.Point;
@ -12,137 +16,125 @@ import java.awt.Rectangle;
import java.awt.Toolkit; import java.awt.Toolkit;
import java.awt.event.AWTEventListener; import java.awt.event.AWTEventListener;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import javax.swing.JPanel;
import javax.swing.JWindow;
import com.fr.design.constants.UIConstants;
import com.fr.design.gui.core.WidgetOption;
import com.fr.stable.os.OperatingSystem;
//august: //august:
public class FormWidgetPopWindow extends JWindow { public class FormWidgetPopWindow extends JWindow {
private WidgetOption[] options; private WidgetOption[] options;
private EditorChoosePane pane; private EditorChoosePane pane;
public FormWidgetPopWindow() {
super(); public FormWidgetPopWindow() {
} super();
}
private void initComp() {
if(pane != null) { private void initComp() {
this.remove(pane); if (pane != null) {
} this.remove(pane);
pane = new EditorChoosePane(); }
this.getContentPane().add(pane); pane = new EditorChoosePane();
this.setSize(pane.getPreferredSize()); this.getContentPane().add(pane);
} this.setSize(pane.getPreferredSize());
}
public void showToolTip(int xAbs, int yAbs, WidgetOption[] options) {
Toolkit.getDefaultToolkit().addAWTEventListener(awt, AWTEvent.MOUSE_EVENT_MASK); /**
this.setLocation(xAbs, yAbs); * 展示提示
this.options = options; */
initComp(); public void showToolTip(int xAbs, int yAbs, WidgetOption[] options) {
this.setVisible(true); Toolkit.getDefaultToolkit().addAWTEventListener(awt, AWTEvent.MOUSE_EVENT_MASK);
this.doLayout(); this.setLocation(xAbs, yAbs);
} this.options = options;
initComp();
private AWTEventListener awt = new AWTEventListener() { this.setVisible(true);
public void eventDispatched(AWTEvent event) { this.doLayout();
if (event instanceof MouseEvent) { }
MouseEvent mv = (MouseEvent) event;
if (mv.getClickCount() > 0) { private final AWTEventListener awt = event -> {
hideWindow(mv); if (event instanceof MouseEvent) {
} MouseEvent mv = (MouseEvent) event;
} if (mv.getClickCount() > 0) {
} hideWindow(mv);
}; }
}
private void hideWindow(MouseEvent mv){ };
Point point = new Point((int) (mv.getLocationOnScreen().getX()), (int) mv.getLocationOnScreen().getY());
if (OperatingSystem.isWindows()) { private void hideWindow(MouseEvent mv) {
if (!FormWidgetPopWindow.this.contains(point)) { Point point = new Point((int) (mv.getLocationOnScreen().getX()), (int) mv.getLocationOnScreen().getY());
FormWidgetPopWindow.this.setVisible(false); if (OperatingSystem.isWindows()) {
} if (!FormWidgetPopWindow.this.contains(point)) {
}else if(OperatingSystem.isMacos() || OperatingSystem.isLinux()){ FormWidgetPopWindow.this.setVisible(false);
Dimension d = FormWidgetPopWindow.this.getSize(); }
Point p = FormWidgetPopWindow.this.getLocation(); } else if (OperatingSystem.isMacos() || OperatingSystem.isLinux()) {
Rectangle rect = new Rectangle(p, d); Dimension d = FormWidgetPopWindow.this.getSize();
if (!rect.contains(point)) { Point p = FormWidgetPopWindow.this.getLocation();
FormWidgetPopWindow.this.setVisible(false); Rectangle rect = new Rectangle(p, d);
} if (!rect.contains(point)) {
} FormWidgetPopWindow.this.setVisible(false);
} }
}
private class EditorChoosePane extends JPanel { }
public EditorChoosePane() {
super(); private class EditorChoosePane extends JPanel {
this.setLayout(new EditorLayout()); public EditorChoosePane() {
this.initComponents(); super();
} this.setLayout(new EditorLayout());
this.initComponents();
@Override }
public void paintComponent(Graphics g) {
Rectangle r = this.getBounds(); protected void initComponents() {
g.setColor(UIConstants.NORMAL_BACKGROUND); for (WidgetOption o : options) {
g.fillRoundRect(r.x, r.y, r.width, r.height, UIConstants.ARC, UIConstants.ARC); ToolBarButton toolBarButton = new ToolBarButton(o);
g.setColor(UIConstants.LINE_COLOR); this.add(toolBarButton);
g.drawRoundRect(r.x, r.y, r.width - 1, r.height - 1, UIConstants.ARC, UIConstants.ARC); }
} }
}
protected void initComponents() {
for (WidgetOption o : options) { private static class EditorLayout implements LayoutManager {
ToolBarButton toolBarButton = new ToolBarButton(o);
this.add(toolBarButton); int top = 4;
} int left = 4;
} int right = 4;
} int bottom = 4;
int hgap = 5;
private static class EditorLayout implements LayoutManager { int vgap = 4;
int maxLine = 8;
int top = 4;
int left = 4; @Override
int right = 4; public void addLayoutComponent(String name, Component comp) {
int bottom = 4;
int hgap = 5; }
int vgap = 4;
int maxLine = 8; @Override
public void layoutContainer(Container target) {
@Override synchronized (target.getTreeLock()) {
public void addLayoutComponent(String name, Component comp) { Insets insets = target.getInsets();
int nmembers = target.getComponentCount();
} for (int i = 0; i < nmembers; i++) {
Component m = target.getComponent(i);
@Override if (m.isVisible()) {
public void layoutContainer(Container target) { Dimension d = m.getPreferredSize();
synchronized (target.getTreeLock()) { m.setBounds(insets.left + left + i % maxLine * (hgap + d.width), top + insets.top + i / maxLine
Insets insets = target.getInsets(); * (vgap + d.height), d.width, d.height);
int nmembers = target.getComponentCount(); }
for (int i = 0; i < nmembers; i++) { }
Component m = target.getComponent(i); }
if (m.isVisible()) { }
Dimension d = m.getPreferredSize();
m.setBounds(insets.left + left + i % maxLine * (hgap + d.width), top + insets.top + i / maxLine @Override
* (vgap + d.height), d.width, d.height); public Dimension minimumLayoutSize(Container parent) {
} return new Dimension(0, 0);
} }
}
} @Override
public Dimension preferredLayoutSize(Container parent) {
@Override Insets insets = parent.getInsets();
public Dimension minimumLayoutSize(Container parent) { int nmembers = parent.getComponentCount();
return new Dimension(0, 0); return new Dimension(maxLine * 28 + insets.left + insets.right + right + left, (nmembers / maxLine + 1)
} * 24 + insets.top + insets.bottom + top + bottom);
}
@Override
public Dimension preferredLayoutSize(Container parent) { @Override
Insets insets = parent.getInsets(); public void removeLayoutComponent(Component comp) {
int nmembers = parent.getComponentCount();
return new Dimension(maxLine * 28 + insets.left + insets.right + right + left, (nmembers / maxLine + 1) }
* 24 + insets.top + insets.bottom + top + bottom);
} }
@Override
public void removeLayoutComponent(Component comp) {
}
}
} }

6
designer-form/src/main/java/com/fr/design/mainframe/JForm.java

@ -759,10 +759,10 @@ public class JForm extends JTemplate<Form, FormUndoState> implements BaseJForm<F
} }
@Override @Override
public JPanel[] toolbarPanes4Form() { public JComponent[] toolbarPanes4Form() {
return this.index == FORM_TAB ? return this.index == FORM_TAB ?
new JPanel[]{FormParaWidgetPane.getInstance(formDesign)} : new JComponent[]{FormParaWidgetPane.getInstance(formDesign)} :
new JPanel[0]; new JComponent[0];
} }
/** /**

328
designer-form/src/main/java/com/fr/design/mainframe/ToolBarButton.java

@ -1,5 +1,6 @@
package com.fr.design.mainframe; package com.fr.design.mainframe;
import com.fine.theme.utils.FineClientProperties;
import com.fr.base.vcs.DesignerMode; import com.fr.base.vcs.DesignerMode;
import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.designer.creator.XCreatorUtils;
@ -7,12 +8,9 @@ import com.fr.design.file.HistoryTemplateListCache;
import com.fr.design.form.util.FormDesignerUtils; import com.fr.design.form.util.FormDesignerUtils;
import com.fr.design.gui.core.WidgetOption; import com.fr.design.gui.core.WidgetOption;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.ibutton.UIForbiddenButtonUI;
import com.fr.form.ui.Widget; import com.fr.form.ui.Widget;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import javax.swing.plaf.ButtonUI;
import java.awt.Dimension;
import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable; import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.datatransfer.UnsupportedFlavorException;
@ -21,172 +19,178 @@ import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.DragGestureListener; import java.awt.dnd.DragGestureListener;
import java.awt.dnd.DragSource; import java.awt.dnd.DragSource;
import java.awt.dnd.DragSourceAdapter; import java.awt.dnd.DragSourceAdapter;
import java.awt.dnd.DragSourceDragEvent;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener; import java.awt.event.MouseMotionListener;
import java.io.IOException; import java.io.IOException;
import java.io.Serializable; import java.io.Serializable;
/* /**
*august: 控件按钮 * 控件按钮
*
* @author august
* @since 7.0
* Created on 2008
*/ */
public class ToolBarButton extends UIButton implements MouseListener, MouseMotionListener, Serializable { public class ToolBarButton extends UIButton implements MouseListener, MouseMotionListener, Serializable {
private WidgetOption no; private WidgetOption no;
private MouseEvent lastPressEvent; private MouseEvent lastPressEvent;
public ToolBarButton(WidgetOption no) { public ToolBarButton(WidgetOption no) {
super(no.optionIcon()); super(no.optionIcon());
this.no = no; this.no = no;
this.addMouseListener(this); this.addMouseListener(this);
this.addMouseMotionListener(this); this.addMouseMotionListener(this);
this.setToolTipText(no.optionName()); this.setToolTipText(no.optionName());
this.setBorder(null); this.setRequestFocusEnabled(false);
this.setOpaque(false); putClientProperty(FineClientProperties.BUTTON_TYPE, FineClientProperties.BUTTON_TYPE_TOOLBAR_BUTTON);
this.setRequestFocusEnabled(false); // FormEditor那边用的DND的复杂方式 这边还必须也用,不然就方便多了
this.set4ToolbarButton(); new DragAndDropDragGestureListener(this, DnDConstants.ACTION_COPY_OR_MOVE);
// FormEditor那边用的DND的复杂方式 这边还必须也用,不然就方便多了 }
new DragAndDropDragGestureListener(this, DnDConstants.ACTION_COPY_OR_MOVE);
} /**
* 获取控件配置
@Override *
public Dimension getPreferredSize() { * @return 控件配置
return new Dimension(super.getPreferredSize().width, 20); */
} public WidgetOption getNameOption() {
return this.no;
public WidgetOption getNameOption() { }
return this.no;
} /**
* 设置控件配置
public void setNameOption(WidgetOption no) { *
this.no = no; * @param no 控件配置
} */
public void setNameOption(WidgetOption no) {
this.no = no;
public void mouseClicked(MouseEvent e) { }
if (e.getClickCount() >= 2) {
}
} @Override
public void mouseClicked(MouseEvent e) {
public void mousePressed(MouseEvent e) { }
lastPressEvent = e;
} @Override
public void mousePressed(MouseEvent e) {
public void mouseReleased(MouseEvent e) { lastPressEvent = e;
} }
@Override @Override
public void mouseDragged(MouseEvent e) { public void mouseReleased(MouseEvent e) {
if (!isEnabled()) { }
return;
} @Override
public void mouseDragged(MouseEvent e) {
if (DesignerMode.isAuthorityEditing()) { if (!isEnabled()) {
return; return;
} }
if (lastPressEvent == null) {
return; if (DesignerMode.isAuthorityEditing()) {
} return;
getModel().setPressed(false); }
getModel().setSelected(false); if (lastPressEvent == null) {
getModel().setRollover(false); return;
}
Object source = e.getSource(); getModel().setPressed(false);
Widget creatorSource = null; getModel().setSelected(false);
if (source instanceof ToolBarButton) { getModel().setRollover(false);
ToolBarButton no = (ToolBarButton) e.getSource();
if (no == null) { Object source = e.getSource();
return; Widget creatorSource = null;
} if (source instanceof ToolBarButton) {
creatorSource = no.getNameOption().createWidget(); ToolBarButton no = (ToolBarButton) e.getSource();
} if (no == null) {
if (creatorSource != null) { return;
XCreator xCreator = XCreatorUtils.createThemedXCreator(creatorSource); }
WidgetToolBarPane.getTarget().startDraggingNewWidget(xCreator, lastPressEvent, e); creatorSource = no.getNameOption().createWidget();
FormDesignerUtils.addWidgetProcessInfo(xCreator.toData()); }
lastPressEvent = null; if (creatorSource != null) {
this.setBorder(null); XCreator xCreator = XCreatorUtils.createThemedXCreator(creatorSource);
} WidgetToolBarPane.getTarget().startDraggingNewWidget(xCreator, lastPressEvent, e);
} FormDesignerUtils.addWidgetProcessInfo(xCreator.toData());
lastPressEvent = null;
@Override }
public void mouseMoved(MouseEvent e) { }
}
@Override
public class DragAndDropDragGestureListener extends DragSourceAdapter implements DragGestureListener { public void mouseMoved(MouseEvent e) {
private DragSource source; }
public DragAndDropDragGestureListener(ToolBarButton tt, int actions) { /**
source = new DragSource(); * 拖放拖动手势侦听器
source.createDefaultDragGestureRecognizer(tt, actions, this); */
} public static class DragAndDropDragGestureListener extends DragSourceAdapter implements DragGestureListener {
private DragSource source;
public void dragGestureRecognized(DragGestureEvent dge) {
ToolBarButton toolBarButton = (ToolBarButton) dge.getComponent(); public DragAndDropDragGestureListener(ToolBarButton tt, int actions) {
if (toolBarButton != null) { source = new DragSource();
Widget widget = toolBarButton.getNameOption().createWidget(); source.createDefaultDragGestureRecognizer(tt, actions, this);
DragAndDropTransferable dragAndDropTransferable = new DragAndDropTransferable(widget); }
dge.startDrag(DragSource.DefaultCopyDrop, dragAndDropTransferable, this);
} @Override
} public void dragGestureRecognized(DragGestureEvent dge) {
ToolBarButton toolBarButton = (ToolBarButton) dge.getComponent();
@Override if (toolBarButton != null) {
public void dragEnter(DragSourceDragEvent dragSourceDragEvent) { Widget widget = toolBarButton.getNameOption().createWidget();
DragAndDropTransferable dragAndDropTransferable = new DragAndDropTransferable(widget);
} dge.startDrag(DragSource.DefaultCopyDrop, dragAndDropTransferable, this);
} }
}
public class DragAndDropTransferable implements Transferable {
private Widget widget; }
public DragAndDropTransferable(Widget widget) { /**
this.widget = widget; * 拖放转换器
} */
public static class DragAndDropTransferable implements Transferable {
DataFlavor[] flavors = {new DataFlavor(Widget.class, "Widget")}; private Widget widget;
public DataFlavor[] getTransferDataFlavors() { public DragAndDropTransferable(Widget widget) {
return flavors; this.widget = widget;
} }
public boolean isDataFlavorSupported(DataFlavor flavor) { DataFlavor[] flavors = {new DataFlavor(Widget.class, "Widget")};
for (DataFlavor df : flavors) {
if (ComparatorUtils.equals(df, flavor)) { @Override
return true; public DataFlavor[] getTransferDataFlavors() {
} return flavors;
} }
return false;
} @Override
public boolean isDataFlavorSupported(DataFlavor flavor) {
public Object getTransferData(DataFlavor df) throws UnsupportedFlavorException, IOException { for (DataFlavor df : flavors) {
return widget; if (ComparatorUtils.equals(df, flavor)) {
} return true;
} }
}
@Override return false;
public void mouseEntered(MouseEvent e) { }
public Object getTransferData(DataFlavor df) throws UnsupportedFlavorException, IOException {
} return widget;
}
@Override }
public void mouseExited(MouseEvent e) {
} @Override
public void mouseEntered(MouseEvent e) {
@Override
public ButtonUI getUI() {
return new UIForbiddenButtonUI(); }
}
@Override
@Override public void mouseExited(MouseEvent e) {
public boolean isEnabled() { }
JTemplate<?, ?> template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
boolean enable = true; @Override
if (template != null) { public boolean isEnabled() {
enable = super.isEnabled() && template.checkEnable(); JTemplate<?, ?> template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
} boolean enable = true;
return enable; if (template != null) {
} enable = super.isEnabled() && template.checkEnable();
}
return enable;
}
} }

2
designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java

@ -928,7 +928,7 @@ public class JWorkBook extends JTemplate<WorkBook, WorkBookUndoState> {
* @return 表单工具栏 * @return 表单工具栏
*/ */
@Override @Override
public JPanel[] toolbarPanes4Form() { public JComponent[] toolbarPanes4Form() {
if (centerPane.isUpEditMode() && hasParameterPane()) { if (centerPane.isUpEditMode() && hasParameterPane()) {
return parameterPane.toolbarPanes4Form(); return parameterPane.toolbarPanes4Form();
} }

2
designer-realize/src/main/java/com/fr/design/parameter/ParameterDefinitePane.java

@ -541,7 +541,7 @@ public class ParameterDefinitePane extends JPanel implements ToolBarMenuDockPlus
* *
* @return 返回工具 * @return 返回工具
*/ */
public JPanel[] toolbarPanes4Form() { public JComponent[] toolbarPanes4Form() {
return paraDesignEditor.toolbarPanes4Form(); return paraDesignEditor.toolbarPanes4Form();
} }

27
designer-realize/src/main/java/com/fr/start/MainDesigner.java

@ -406,20 +406,21 @@ public class MainDesigner extends BaseDesigner {
} }
} }
if (plus.toolbarPanes4Form().length == 0) { switch (plus.toolbarPanes4Form().length) {
return super.resetToolBar(toolbarComponent, plus); case 0:
} else { return super.resetToolBar(toolbarComponent, plus);
JPanel toolbarPane; case 1:
toolbarPane = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, TOOLBARPANEVGAP)); return plus.toolbarPanes4Form()[0];
Dimension dim = new Dimension(); default: {
dim.height = plus.getToolBarHeight(); JPanel toolbarPane;
toolbarPane.setPreferredSize(dim); toolbarPane = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
toolbarPane.setFocusable(true); toolbarPane.setFocusable(true);
JPanel[] paneArray = plus.toolbarPanes4Form(); JComponent[] paneArray = plus.toolbarPanes4Form();
for (int i = 0; i < paneArray.length; i++) { for (JComponent component : paneArray) {
toolbarPane.add(paneArray[i]); toolbarPane.add(component);
}
return toolbarPane;
} }
return toolbarPane;
} }
} }

Loading…
Cancel
Save