Browse Source

Pull request #3158: REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化

Merge in DESIGN/design from ~YVAN/design:REPORT-42238 to feature/10.0

* commit '131ec5ca099ee8db1d9c11de9ed9ad49d92d3f49':
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.15: 修改打印日志语句,将中文去掉,改成英文
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.14: ①vito建议中的前三点功能其实已经实现了,只是没用一个类似Manager的方式写出来,对这种不是很熟,听vito说要配齐一大套,而这次任务已经是超时了,所以放在下次迭代任务中与缓存一起做;②将几乎所有已经改成svg的图标,传入方式统一为传入url;③补充了test
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.14: 将SVGIconUtils的名字修改为IconUtils
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.13: 上传下因为之前代码冲突丢失的代码
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.12: 删除误传代码
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.11: 替换了菜单栏-帮助和菜单栏-社区的图标
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.10: ①根据开发评审意见,新增SVGIconUtils工具类,之后读取图标都可以用工具类中的方法;②修改UpdateAction、MenuDef、UIButton适配工具类方法;③修改之前上传的图标读取方式以及一些初始化方式;④替换了菜单栏-单元格中的所有子项的图标
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.10: 替换了设计器菜单栏-模板中的子菜单项的图标
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.9: 替换了 菜单栏-文件 下的所有子菜单的图标
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.8: 替换了底部sheet栏与右侧面板的tab栏图标
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.7: ①在SVGIcon中对url做了前缀处理,有些url不是"/"开头的会报npe;②替换了左侧面板-文件管理面板与左侧面板-数据集管理面板中的图标
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.6 :替换了决策报表-工具栏,以及普通报表 && 聚合报表,编辑参数面板时的工具栏图标
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.5: 误传patch,删除掉
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.4: ①为SVGIcon增加可以读取指定宽高Icon的接口;②普通报表-工具栏 && 聚合报表-报表块-工具栏图标替换
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.3: 设计器菜单栏下的工具栏-保存、撤销、重做、剪切、复制、粘贴、格式刷、删除
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.2:提交UpdateAction
  REPORT-42238 【10.0.13】JDK11设计器图标模糊问题优化 No.1 将转化SVG图标的功能先上传
research/11.0
ju|剧浩宇 4 years ago
parent
commit
5d8697ab75
  1. 105
      designer-base/src/main/java/com/fr/base/svg/IconUtils.java
  2. 82
      designer-base/src/main/java/com/fr/base/svg/SVGIcon.java
  3. 92
      designer-base/src/main/java/com/fr/base/svg/SVGLoader.java
  4. 181
      designer-base/src/main/java/com/fr/base/svg/SVGTranscoder.java
  5. 96
      designer-base/src/main/java/com/fr/base/svg/SystemScaleUtils.java
  6. 6
      designer-base/src/main/java/com/fr/design/actions/AllowAuthorityEditAction.java
  7. 4
      designer-base/src/main/java/com/fr/design/actions/ExitAuthorityEditAction.java
  8. 7
      designer-base/src/main/java/com/fr/design/actions/TableDataSourceAction.java
  9. 56
      designer-base/src/main/java/com/fr/design/actions/UpdateAction.java
  10. 8
      designer-base/src/main/java/com/fr/design/actions/community/BBSAction.java
  11. 9
      designer-base/src/main/java/com/fr/design/actions/community/BugAction.java
  12. 4
      designer-base/src/main/java/com/fr/design/actions/community/BugNeedAction.java
  13. 4
      designer-base/src/main/java/com/fr/design/actions/community/CenterAction.java
  14. 5
      designer-base/src/main/java/com/fr/design/actions/community/FacebookFansAction.java
  15. 4
      designer-base/src/main/java/com/fr/design/actions/community/NeedAction.java
  16. 4
      designer-base/src/main/java/com/fr/design/actions/community/QuestionAction.java
  17. 5
      designer-base/src/main/java/com/fr/design/actions/community/SignAction.java
  18. 4
      designer-base/src/main/java/com/fr/design/actions/community/TechSolutionAction.java
  19. 5
      designer-base/src/main/java/com/fr/design/actions/community/VideoAction.java
  20. 5
      designer-base/src/main/java/com/fr/design/actions/edit/CopyAction.java
  21. 5
      designer-base/src/main/java/com/fr/design/actions/edit/CutAction.java
  22. 5
      designer-base/src/main/java/com/fr/design/actions/edit/PasteAction.java
  23. 5
      designer-base/src/main/java/com/fr/design/actions/edit/RedoAction.java
  24. 7
      designer-base/src/main/java/com/fr/design/actions/edit/UndoAction.java
  25. 8
      designer-base/src/main/java/com/fr/design/actions/file/OpenTemplateAction.java
  26. 6
      designer-base/src/main/java/com/fr/design/actions/file/SaveAsTemplateAction.java
  27. 5
      designer-base/src/main/java/com/fr/design/actions/file/SaveTemplateAction.java
  28. 10
      designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java
  29. 4
      designer-base/src/main/java/com/fr/design/actions/help/TutorialAction.java
  30. 6
      designer-base/src/main/java/com/fr/design/actions/help/WebDemoAction.java
  31. 4
      designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineAction.java
  32. 6
      designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java
  33. 8
      designer-base/src/main/java/com/fr/design/actions/server/FunctionManagerAction.java
  34. 6
      designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java
  35. 8
      designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java
  36. 6
      designer-base/src/main/java/com/fr/design/actions/server/PlatformManagerAction.java
  37. 6
      designer-base/src/main/java/com/fr/design/actions/server/PluginManagerAction.java
  38. 2
      designer-base/src/main/java/com/fr/design/constants/UIConstants.java
  39. 4
      designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java
  40. 5
      designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java
  41. 2
      designer-base/src/main/java/com/fr/design/data/datapane/sqlpane/SQLEditPane.java
  42. 31
      designer-base/src/main/java/com/fr/design/gui/core/WidgetOption.java
  43. 8
      designer-base/src/main/java/com/fr/design/gui/core/WidgetOptionFactory.java
  44. 11
      designer-base/src/main/java/com/fr/design/gui/ibutton/UIButton.java
  45. 2
      designer-base/src/main/java/com/fr/design/icon/IconPathConstants.java
  46. 12
      designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java
  47. 18
      designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java
  48. 1
      designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java
  49. 20
      designer-base/src/main/java/com/fr/design/menu/MenuDef.java
  50. 4
      designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java
  51. 4
      designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java
  52. 4
      designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java
  53. 7
      designer-base/src/main/java/com/fr/design/style/color/UIToolbarColorButton.java
  54. 4
      designer-base/src/main/java/com/fr/design/update/actions/SoftwareUpdateAction.java
  55. BIN
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder.png
  56. 8
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder_disabled.svg
  57. 8
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder_normal.svg
  58. BIN
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/refresh.png
  59. 7
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/refresh_normal.svg
  60. BIN
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove.png
  61. 7
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove_disabled.svg
  62. 7
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove_normal.svg
  63. BIN
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename.png
  64. 7
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename_disabled.svg
  65. 7
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename_normal.svg
  66. BIN
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list.png
  67. 7
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list_disabled.svg
  68. 7
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list_normal.svg
  69. BIN
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder.png
  70. 7
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder_disabled.svg
  71. 7
      designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder_normal.svg
  72. 7
      designer-base/src/main/resources/com/fr/design/images/bbs/bbs_normal.svg
  73. 7
      designer-base/src/main/resources/com/fr/design/images/bbs/bug_normal.svg
  74. 7
      designer-base/src/main/resources/com/fr/design/images/bbs/center_normal.svg
  75. 9
      designer-base/src/main/resources/com/fr/design/images/bbs/facebook_normal.svg
  76. 7
      designer-base/src/main/resources/com/fr/design/images/bbs/help_normal.svg
  77. 7
      designer-base/src/main/resources/com/fr/design/images/bbs/need_normal.svg
  78. 7
      designer-base/src/main/resources/com/fr/design/images/bbs/question_normal.svg
  79. 7
      designer-base/src/main/resources/com/fr/design/images/bbs/sign_normal.svg
  80. 7
      designer-base/src/main/resources/com/fr/design/images/bbs/solution_normal.svg
  81. 7
      designer-base/src/main/resources/com/fr/design/images/bbs/video_normal.svg
  82. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/absolute_layout_normal.svg
  83. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/card_layout_16_normal.svg
  84. 8
      designer-base/src/main/resources/com/fr/design/images/buttonicon/new_form3_normal.svg
  85. 11
      designer-base/src/main/resources/com/fr/design/images/buttonicon/newcpts_normal.svg
  86. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/open_normal.svg
  87. 8
      designer-base/src/main/resources/com/fr/design/images/buttonicon/prewidget_normal.svg
  88. 8
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_disabled.svg
  89. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_normal.svg
  90. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_selected.svg
  91. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_disabled.svg
  92. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_normal.svg
  93. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_selected.svg
  94. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_disabled.svg
  95. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_normal.svg
  96. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_selected.svg
  97. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_disabled.svg
  98. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_normal.svg
  99. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_selected.svg
  100. 7
      designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_disabled.svg
  101. Some files were not shown because too many files have changed in this diff Show More

105
designer-base/src/main/java/com/fr/base/svg/IconUtils.java

@ -0,0 +1,105 @@
package com.fr.base.svg;
import com.fr.general.IOUtils;
import com.fr.log.FineLoggerFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
/**
* 主要是用来读取svgIcon的工具类
* @author Yvan
* @version 10.0
* Created by Yvan on 2020/12/23
*/
public class IconUtils {
private static final String ICON_SUFFIX_SVG = ".svg";
private static final String ICON_SUFFIX_PNG = ".png";
private static final String ICON_SUFFIX_GIF = ".gif";
private static final String SUFFIX_SEPARATOR = ".";
public static final String ICON_TYPE_NORMAL= "_normal.svg";
public static final String ICON_TYPE_DISABLED= "_disabled.svg";
public static final String ICON_TYPE_PRESSED= "_pressed.svg";
/**
* 可以读取SVG图标或者普通图标并且可以读取不带扩展名的文件
* 不带扩展名时以svg优先其次png最后gif
* @param resource 图片路径
* @return 图标
*/
public static Icon readIcon(String resource) {
// 判断是否有.XXX文件后缀
if (resource.contains(SUFFIX_SEPARATOR)) {
// 判断是否以.svg结尾
if (resource.endsWith(ICON_SUFFIX_SVG)) {
return SVGIcon.readSVGIcon(resource);
}
return IOUtils.readIcon(resource);
}
// 文件无后缀时
return readNoSuffixResource(resource, ICON_TYPE_NORMAL);
}
/**
* 尝试读取不带扩展名的图标svg优先其次png最后gif都没读到就打印错误日志返回空白Icon
* @param resource 图片路径
* @param svgIconType 针对svg来说的图标类型
* 取值为ICON_TYPE_NORMALICON_TYPE_DISABLEDICON_TYPE_PRESSED
* @return 图标
*/
private static Icon readNoSuffixResource(String resource, String svgIconType) {
String svgPath = resource + svgIconType;
if (IOUtils.readResource(svgPath) != null) {
return SVGIcon.readSVGIcon(svgPath);
}
String pngPath = resource + ICON_SUFFIX_PNG;
if (IOUtils.readResource(pngPath) != null) {
return IOUtils.readIcon(pngPath);
}
String gifPath = resource + ICON_SUFFIX_GIF;
if (IOUtils.readResource(gifPath) != null) {
return IOUtils.readIcon(gifPath);
}
FineLoggerFactory.getLogger().error("File not exists:{}", resource);
return new ImageIcon();
}
/**
* 读取指定类型的svgIcon
* @param resource
* @param svgIconType
* @return
*/
public static Icon readSVGIcon(String resource, String svgIconType) {
// 判断下是否有后缀
if (!resource.contains(SUFFIX_SEPARATOR)) {
return readNoSuffixResource(resource, svgIconType);
}
// 如果是".png"后缀,就替换为传入的svgIconType,然后读取图标
if (resource.endsWith(ICON_SUFFIX_PNG)) {
return readSpecifiedTypeIcon(resource, ICON_SUFFIX_PNG, svgIconType);
}
// 如果是"_XXXXXX.svg"后缀
if (resource.endsWith(ICON_TYPE_NORMAL)) {
return readSpecifiedTypeIcon(resource, ICON_TYPE_NORMAL, svgIconType);
}
if (resource.endsWith(ICON_TYPE_DISABLED)) {
return readSpecifiedTypeIcon(resource, ICON_TYPE_DISABLED, svgIconType);
}
if (resource.endsWith(ICON_TYPE_PRESSED)) {
return readSpecifiedTypeIcon(resource, ICON_TYPE_PRESSED, svgIconType);
}
return readIcon(resource);
}
private static Icon readSpecifiedTypeIcon(String resource, String oldSuffix, String newSuffix) {
String iconPath = resource.replace(oldSuffix, newSuffix);
if (IOUtils.readResource(iconPath) != null) {
return SVGIcon.readSVGIcon(iconPath);
}
return readIcon(resource);
}
}

82
designer-base/src/main/java/com/fr/base/svg/SVGIcon.java

@ -0,0 +1,82 @@
package com.fr.base.svg;
import com.fr.general.IOUtils;
import javax.swing.Icon;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
/**
* SVG转化而来的Icon
* @author Yvan
* @version 10.0
* Created by Yvan on 2020/12/17
*/
public class SVGIcon implements Icon {
private BufferedImage image;
private static final boolean HI_DPI_SURPORT = SystemScaleUtils.isJreHiDPIEnabled();
public static final float SYSTEM_SCALE = SystemScaleUtils.sysScale();
private static final String ICON_PREFIX = "/";
public SVGIcon(BufferedImage image) {
this.image = image;
}
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
if (HI_DPI_SURPORT) {
Graphics2D graphics = (Graphics2D) g.create(x, y, image.getWidth(null), image.getHeight(null));
float scale = SYSTEM_SCALE;
graphics.scale(1 / scale, 1 / scale);
graphics.drawImage(image, 0, 0, null);
graphics.scale(1.0D, 1.0D);
graphics.dispose();
} else {
g.drawImage(image, x, y, null);
}
}
@Override
public int getIconWidth() {
return HI_DPI_SURPORT ? (int) (image.getWidth() / SYSTEM_SCALE) : image.getWidth();
}
@Override
public int getIconHeight() {
return HI_DPI_SURPORT ? (int) (image.getHeight() / SYSTEM_SCALE) : image.getHeight();
}
/**
* 读取高清图标
* @param url
* @return
*/
public static Icon readSVGIcon(String url) {
if (!url.startsWith(ICON_PREFIX)) {
url = ICON_PREFIX + url;
}
BufferedImage image = (BufferedImage) SVGLoader.load(url);
return image == null ? IOUtils.readIcon(url) : new SVGIcon(image);
}
/**
* 读取指定尺寸的图标
* @param url 资源路径
* @param width 宽度
* @param height 高度
* @return
*/
public static Icon readSVGIcon(String url, float width, float height) {
if (!url.startsWith(ICON_PREFIX)) {
url = ICON_PREFIX + url;
}
BufferedImage image = (BufferedImage) SVGLoader.load(url, width, height);
return image == null ? IOUtils.readIcon(url) : new SVGIcon(image);
}
}

92
designer-base/src/main/java/com/fr/base/svg/SVGLoader.java

@ -0,0 +1,92 @@
package com.fr.base.svg;
import com.fr.general.IOUtils;
import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.xmlgraphics.java2d.Dimension2DDouble;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.awt.Image;
import java.io.IOException;
import java.net.URL;
/**
* SVG图标加载器
* @author Yvan
* @version 10.0
* Created by Yvan on 2020/12/17
*/
public class SVGLoader {
public static final int ICON_DEFAULT_SIZE = 16;
public SVGLoader() {
}
@Nullable
public static Image load(@NotNull String url) {
try {
URL resource = IOUtils.getResource(url, SVGLoader.class);
if (resource == null) {
return null;
}
return load(resource, SVGIcon.SYSTEM_SCALE);
} catch (IOException ignore) {
return null;
}
}
@Nullable
public static Image load(@NotNull URL url) throws IOException {
return load(url, SVGIcon.SYSTEM_SCALE);
}
@Nullable
public static Image load(@NotNull URL url, double scale) throws IOException {
try {
String svgUri = url.toString();
TranscoderInput input = new TranscoderInput(svgUri);
return SVGTranscoder.createImage(scale, input).getImage();
} catch (TranscoderException ignore) {
return null;
}
}
@Nullable
public static Image load(@NotNull URL url, double scale, Dimension2DDouble dimension) throws IOException {
try {
String svgUri = url.toString();
TranscoderInput input = new TranscoderInput(svgUri);
return SVGTranscoder.createImage(scale, input,
(float) (dimension.getWidth() * scale), (float) (dimension.getHeight() * scale)).getImage();
} catch (TranscoderException ignore) {
return null;
}
}
@Nullable
public static Image load(@NotNull URL url, double scale, double overriddenWidth, double overriddenHeight) throws IOException {
try {
String svgUri = url.toString();
TranscoderInput input = new TranscoderInput(svgUri);
return SVGTranscoder.createImage(scale, input, (float) (overriddenWidth * scale), (float) (overriddenHeight * scale)).getImage();
} catch (TranscoderException ignore) {
return null;
}
}
@Nullable
public static Image load(@NotNull String url, float width, float height) {
try {
URL resource = IOUtils.getResource(url, SVGLoader.class);
if (resource == null) {
return null;
}
TranscoderInput input = new TranscoderInput(resource.toString());
return SVGTranscoder.createImage(SVGIcon.SYSTEM_SCALE, input, -1, -1, width, height).getImage();
} catch (TranscoderException ignore) {
return null;
}
}
}

181
designer-base/src/main/java/com/fr/base/svg/SVGTranscoder.java

@ -0,0 +1,181 @@
package com.fr.base.svg;
import com.fr.stable.AssistUtils;
import com.fr.value.AtomicNotNullLazyValue;
import org.apache.batik.anim.dom.SAXSVGDocumentFactory;
import org.apache.batik.anim.dom.SVGOMDocument;
import org.apache.batik.bridge.BridgeContext;
import org.apache.batik.bridge.UserAgent;
import org.apache.batik.transcoder.SVGAbstractTranscoder;
import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.ImageTranscoder;
import org.apache.batik.util.XMLResourceDescriptor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.w3c.dom.Element;
import org.w3c.dom.svg.SVGDocument;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.StringReader;
/**
* 可以根据某个缩放倍数scale将SVG图片转化为Image对象
* @author Yvan
* @version 10.0
* Created by Yvan on 2020/12/17
*/
public class SVGTranscoder extends ImageTranscoder {
private static final float DEFAULT_VALUE = -1.0F;
public static final float ICON_DEFAULT_SIZE = 16F;
private float origDocWidth;
private float origDocHeight;
@Nullable
private BufferedImage image;
private final double scale;
@NotNull
private static AtomicNotNullLazyValue<Double> iconMaxSize = new AtomicNotNullLazyValue<Double>() {
@NotNull
@Override
protected Double compute() {
double maxSize = Double.MAX_VALUE;
if (!GraphicsEnvironment.isHeadless()) {
GraphicsDevice defaultScreenDevice = GraphicsEnvironment
.getLocalGraphicsEnvironment()
.getDefaultScreenDevice();
Rectangle bounds = defaultScreenDevice.getDefaultConfiguration().getBounds();
AffineTransform tx = defaultScreenDevice
.getDefaultConfiguration()
.getDefaultTransform();
maxSize = Math.max(bounds.width * tx.getScaleX(), bounds.height * tx.getScaleY());
}
return maxSize;
}
};
public SVGTranscoder(double scale) {
this.scale = scale;
this.width = ICON_DEFAULT_SIZE;
this.height = ICON_DEFAULT_SIZE;
}
public SVGTranscoder(double scale, float width, float height) {
this.scale = scale;
this.width = width;
this.height = height;
}
public final float getOrigDocWidth() {
return this.origDocWidth;
}
public final void setOrigDocWidth(float origDocWidth) {
this.origDocWidth = origDocWidth;
}
public final float getOrigDocHeight() {
return this.origDocHeight;
}
public final void setOrigDocHeight(float origDocHeight) {
this.origDocHeight = origDocHeight;
}
public static double getIconMaxSize() {
return iconMaxSize.getValue();
}
@Nullable
public final BufferedImage getImage() {
return this.image;
}
@NotNull
public static SVGTranscoder createImage(double scale, @NotNull TranscoderInput input) throws TranscoderException {
return createImage(scale, input, -1, -1);
}
@NotNull
public static SVGTranscoder createImage(double scale, @NotNull TranscoderInput input, float overriddenWidth, float overriddenHeight) throws TranscoderException {
return createImage(scale, input, overriddenWidth, overriddenHeight, ICON_DEFAULT_SIZE, ICON_DEFAULT_SIZE);
}
@NotNull
public static SVGTranscoder createImage(double scale, @NotNull TranscoderInput input, float overriddenWidth, float overriddenHeight, float width, float height) throws TranscoderException {
SVGTranscoder transcoder = new SVGTranscoder(scale, width, height);
if (!AssistUtils.equals(overriddenWidth, DEFAULT_VALUE)) {
transcoder.addTranscodingHint(SVGAbstractTranscoder.KEY_WIDTH, overriddenWidth);
}
if (!AssistUtils.equals(overriddenHeight, DEFAULT_VALUE)) {
transcoder.addTranscodingHint(SVGAbstractTranscoder.KEY_HEIGHT, overriddenHeight);
}
double iconMaxSize = SVGTranscoder.iconMaxSize.getValue();
transcoder.addTranscodingHint(SVGAbstractTranscoder.KEY_MAX_WIDTH, (float) iconMaxSize);
transcoder.addTranscodingHint(SVGAbstractTranscoder.KEY_MAX_HEIGHT, (float) iconMaxSize);
transcoder.transcode(input, null);
return transcoder;
}
private static SVGDocument createFallbackPlaceholder() {
try {
String fallbackIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n" +
" <rect x=\"1\" y=\"1\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"red\" stroke-width=\"2\"/>\n" +
" <line x1=\"1\" y1=\"1\" x2=\"15\" y2=\"15\" stroke=\"red\" stroke-width=\"2\"/>\n" +
" <line x1=\"1\" y1=\"15\" x2=\"15\" y2=\"1\" stroke=\"red\" stroke-width=\"2\"/>\n" +
"</svg>\n";
SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory(XMLResourceDescriptor.getXMLParserClassName());
return (SVGDocument) factory.createDocument(null, new StringReader(fallbackIcon));
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
@Override
protected void setImageSize(float docWidth, float docHeight) {
super.setImageSize((float) (docWidth * this.scale), (float) (docHeight * this.scale));
this.origDocWidth = docWidth;
this.origDocHeight = docHeight;
}
@Override
@NotNull
public BufferedImage createImage(int width, int height) {
return new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
}
@Override
public void writeImage(@NotNull BufferedImage image, @Nullable TranscoderOutput output) {
this.image = image;
}
@Override
@NotNull
protected UserAgent createUserAgent() {
return new SVGAbstractTranscoderUserAgent() {
@Override
@NotNull
public SVGDocument getBrokenLinkDocument(@NotNull Element e, @NotNull String url, @NotNull String message) {
return createFallbackPlaceholder();
}
};
}
/**
* 开放访问权限
*/
@Override
public BridgeContext createBridgeContext(SVGOMDocument doc) {
return super.createBridgeContext(doc);
}
}

96
designer-base/src/main/java/com/fr/base/svg/SystemScaleUtils.java

@ -0,0 +1,96 @@
package com.fr.base.svg;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StableUtils;
import com.fr.stable.os.OperatingSystem;
import org.jetbrains.annotations.NotNull;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.lang.reflect.Method;
import java.util.concurrent.atomic.AtomicReference;
/**
* 获取系统Scale相关的工具类
* @author Yvan
* @version 10.0
* Created by Yvan on 2020/12/17
*/
public class SystemScaleUtils {
private static final AtomicReference<Boolean> JRE_HIDPI = new AtomicReference<>();
private static final String HI_DPI = "hidpi";
/**
* 判断是否支持高清
* @return
*/
public static boolean isJreHiDPIEnabled() {
if (JRE_HIDPI.get() != null) {
return JRE_HIDPI.get();
}
if (OperatingSystem.isMacos()) {
// 如果是mac os系统,直接返回true
return true;
}
if (OperatingSystem.isWindows() && StableUtils.getMajorJavaVersion() <= 8) {
// 如果是jdk8 + Windows系统,直接返回false
return false;
}
synchronized (JRE_HIDPI) {
if (JRE_HIDPI.get() != null) {
return JRE_HIDPI.get();
}
boolean result = false;
if (getBooleanProperty(HI_DPI, true)) {
try {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
Class<?> sunGraphicsEnvironmentClass = Class.forName("sun.java2d.SunGraphicsEnvironment");
if (sunGraphicsEnvironmentClass.isInstance(ge)) {
try {
Method method = sunGraphicsEnvironmentClass.getDeclaredMethod("isUIScaleEnabled");
method.setAccessible(true);
result = (Boolean)method.invoke(ge);
}
catch (NoSuchMethodException e) {
FineLoggerFactory.getLogger().error(e.getMessage());
}
}
}
catch (Throwable ignore) {
}
}
JRE_HIDPI.set(result);
return result;
}
}
public static boolean getBooleanProperty(@NotNull final String key, final boolean defaultValue) {
final String value = System.getProperty(key);
return value == null ? defaultValue : Boolean.parseBoolean(value);
}
/**
* 获取系统Scale
* @return
*/
public static float sysScale() {
float scale = 1.0f;
// 先判断是否支持高清,不支持代表此时是Windows + jdk8 的设计器,返回的scale值为1.0
if (isJreHiDPIEnabled()) {
// 获取屏幕图形设备对象
GraphicsDevice graphicsDevice = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
if (graphicsDevice != null) {
// 获取图形配置对象
GraphicsConfiguration configuration = graphicsDevice.getDefaultConfiguration();
if (configuration != null && configuration.getDevice().getType() != GraphicsDevice.TYPE_PRINTER) {
// 获取屏幕缩放率,mac下固定为2,Windows+jdk11则将得到用户设置的dpi值
scale = (float) configuration.getDefaultTransform().getScaleX();
}
}
}
return scale;
}
}

6
designer-base/src/main/java/com/fr/design/actions/AllowAuthorityEditAction.java

@ -1,6 +1,6 @@
package com.fr.design.actions; package com.fr.design.actions;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.base.vcs.DesignerMode; import com.fr.base.vcs.DesignerMode;
import com.fr.design.constants.UIConstants; import com.fr.design.constants.UIConstants;
import com.fr.design.menu.KeySetUtils; import com.fr.design.menu.KeySetUtils;
@ -22,7 +22,7 @@ public class AllowAuthorityEditAction extends TemplateComponentAction {
this.setMenuKeySet(KeySetUtils.ALLOW_AUTHORITY_EDIT); this.setMenuKeySet(KeySetUtils.ALLOW_AUTHORITY_EDIT);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/allow_authority_edit.png")); this.setSmallIcon("/com/fr/design/images/m_report/allow_authority_edit");
} }
/** /**
@ -78,4 +78,4 @@ public class AllowAuthorityEditAction extends TemplateComponentAction {
} }
} }
} }

4
designer-base/src/main/java/com/fr/design/actions/ExitAuthorityEditAction.java

@ -1,6 +1,6 @@
package com.fr.design.actions; package com.fr.design.actions;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.base.vcs.DesignerMode; import com.fr.base.vcs.DesignerMode;
import com.fr.design.data.datapane.TableDataTreePane; import com.fr.design.data.datapane.TableDataTreePane;
import com.fr.design.DesignModelAdapter; import com.fr.design.DesignModelAdapter;
@ -19,7 +19,7 @@ public class ExitAuthorityEditAction extends TemplateComponentAction {
public ExitAuthorityEditAction(TargetComponent t) { public ExitAuthorityEditAction(TargetComponent t) {
super(t); super(t);
this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Authority_Edit_Status_Exit")); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Authority_Edit_Status_Exit"));
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/exit_authority_edit.png")); this.setSmallIcon("/com/fr/design/images/m_report/exit_authority_edit");
} }

7
designer-base/src/main/java/com/fr/design/actions/TableDataSourceAction.java

@ -1,8 +1,7 @@
package com.fr.design.actions; package com.fr.design.actions;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import com.fr.base.svg.IconUtils;
import com.fr.base.BaseUtils;
import com.fr.design.data.DesignTableDataManager; import com.fr.design.data.DesignTableDataManager;
import com.fr.data.TableDataSource; import com.fr.data.TableDataSource;
import com.fr.design.data.datapane.ReportTableDataPane; import com.fr.design.data.datapane.ReportTableDataPane;
@ -27,7 +26,7 @@ public class TableDataSourceAction extends TemplateComponentAction<JTemplate<?,
this.setMenuKeySet(KeySetUtils.TEMPLATE_TABLE_DATA_SOURCE); this.setMenuKeySet(KeySetUtils.TEMPLATE_TABLE_DATA_SOURCE);
this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setName(getMenuKeySet().getMenuKeySetName() + "...");
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_web/datasource.png")); this.setSmallIcon("/com/fr/design/images/m_web/datasource");
} }
/** /**
@ -91,4 +90,4 @@ public class TableDataSourceAction extends TemplateComponentAction<JTemplate<?,
public void fireDSChanged(Map<String, String> map) { public void fireDSChanged(Map<String, String> map) {
DesignTableDataManager.fireDSChanged(map); DesignTableDataManager.fireDSChanged(map);
} }
} }

56
designer-base/src/main/java/com/fr/design/actions/UpdateAction.java

@ -6,6 +6,8 @@ package com.fr.design.actions;
import com.fr.base.NameStyle; import com.fr.base.NameStyle;
import com.fr.base.ScreenResolution; import com.fr.base.ScreenResolution;
import com.fr.base.Style; import com.fr.base.Style;
import com.fr.base.svg.SVGIcon;
import com.fr.base.svg.IconUtils;
import com.fr.design.actions.core.ActionFactory; import com.fr.design.actions.core.ActionFactory;
import com.fr.design.constants.UIConstants; import com.fr.design.constants.UIConstants;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
@ -78,6 +80,16 @@ public abstract class UpdateAction extends ShortCut implements Action {
private String searchText = StringUtils.EMPTY; private String searchText = StringUtils.EMPTY;
/**
* 按钮在按压状态的图标key
*/
public static final String PRESSED_ICON = "pressedIcon";
/**
* 按钮在灰化状态的图标key
*/
public static final String DISABLED_ICON = "disabledIcon";
/** /**
@ -162,6 +174,19 @@ public abstract class UpdateAction extends ShortCut implements Action {
this.putValue(Action.SMALL_ICON, smallIcon); this.putValue(Action.SMALL_ICON, smallIcon);
} }
/**
* 使用传入资源url的方式设置Icon可以自动设置对应的"_normal.svg""_disabled.svg"
* 但是要保证文件名的统一例如a.png对应a_normal.svga_disabled.svg
* 如果a_disabled.svg或者a_pressed.svg缺失则不会被设置成灰化状态或者按压状态图标
* 如果a_normal.svg缺失则会读到a.png这也就不是一个SVGIcon了
* 如果连 a.png 也不存在那么这个action的图标就是空白的
* @param resource
*/
public void setSmallIcon(String resource) {
this.putValue(Action.SMALL_ICON, IconUtils.readIcon(resource));
this.putValue(UpdateAction.DISABLED_ICON, IconUtils.readSVGIcon(resource, IconUtils.ICON_TYPE_DISABLED));
}
public void setSmallIcon(Icon[] smallIcon, boolean white) { public void setSmallIcon(Icon[] smallIcon, boolean white) {
this.putValue(Action.SMALL_ICON, smallIcon); this.putValue(Action.SMALL_ICON, smallIcon);
} }
@ -251,6 +276,14 @@ public abstract class UpdateAction extends ShortCut implements Action {
} }
public void setPressedIcon(Icon pressedIcon) {
this.putValue(UpdateAction.PRESSED_ICON, pressedIcon);
}
public void setDisabledIcon(Icon disabledIcon) {
this.putValue(UpdateAction.DISABLED_ICON, disabledIcon);
}
@Override @Override
public synchronized void addPropertyChangeListener(PropertyChangeListener listener) { public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
@ -271,6 +304,8 @@ public abstract class UpdateAction extends ShortCut implements Action {
UIMenuItem menuItem = new UIMenuItem(this); UIMenuItem menuItem = new UIMenuItem(this);
// 设置名字用作单元测 // 设置名字用作单元测
menuItem.setName(getName()); menuItem.setName(getName());
setPressedIcon4Button(menuItem);
setDisabledIcon4Button(menuItem);
object = menuItem; object = menuItem;
this.putValue(UIMenuItem.class.getName(), object); this.putValue(UIMenuItem.class.getName(), object);
@ -282,6 +317,8 @@ public abstract class UpdateAction extends ShortCut implements Action {
UIMenuEastAttrItem menuItem = new UIMenuEastAttrItem(this); UIMenuEastAttrItem menuItem = new UIMenuEastAttrItem(this);
// 设置名字用作单元测 // 设置名字用作单元测
menuItem.setName(getName()); menuItem.setName(getName());
setPressedIcon4Button(menuItem);
setDisabledIcon4Button(menuItem);
this.putValue(UIMenuItem.class.getName(), menuItem); this.putValue(UIMenuItem.class.getName(), menuItem);
return menuItem; return menuItem;
} }
@ -307,6 +344,8 @@ public abstract class UpdateAction extends ShortCut implements Action {
} }
button.setIcon((Icon) this.getValue(Action.SMALL_ICON)); button.setIcon((Icon) this.getValue(Action.SMALL_ICON));
setPressedIcon4Button(button);
setDisabledIcon4Button(button);
button.addActionListener(this); button.addActionListener(this);
button.registerKeyboardAction(this, this.getAccelerator(), JComponent.WHEN_IN_FOCUSED_WINDOW); button.registerKeyboardAction(this, this.getAccelerator(), JComponent.WHEN_IN_FOCUSED_WINDOW);
@ -454,6 +493,8 @@ public abstract class UpdateAction extends ShortCut implements Action {
object = new UseMenuItem(this); object = new UseMenuItem(this);
this.putValue(UseMenuItem.class.getName(), object); this.putValue(UseMenuItem.class.getName(), object);
} }
setPressedIcon4Button((UseMenuItem) object);
setDisabledIcon4Button((UseMenuItem) object);
return (UseMenuItem) object; return (UseMenuItem) object;
} }
@ -594,4 +635,17 @@ public abstract class UpdateAction extends ShortCut implements Action {
shortPinyin.append(PinyinHelper.getShortPinyin(title)).append(separator); shortPinyin.append(PinyinHelper.getShortPinyin(title)).append(separator);
} }
} private void setPressedIcon4Button(AbstractButton button) {
Icon pressedIcon = (Icon) this.getValue(UpdateAction.PRESSED_ICON);
if (pressedIcon != null && pressedIcon instanceof SVGIcon) {
button.setPressedIcon(pressedIcon);
}
}
private void setDisabledIcon4Button(AbstractButton button) {
Icon disabledIcon = (Icon) this.getValue(UpdateAction.DISABLED_ICON);
if (disabledIcon != null && disabledIcon instanceof SVGIcon) {
button.setDisabledIcon(disabledIcon);
}
}
}

8
designer-base/src/main/java/com/fr/design/actions/community/BBSAction.java

@ -1,6 +1,6 @@
package com.fr.design.actions.community; package com.fr.design.actions.community;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
@ -13,15 +13,15 @@ import java.awt.event.ActionEvent;
public class BBSAction extends UpdateAction public class BBSAction extends UpdateAction
{ {
public BBSAction() public BBSAction()
{ {
this.setMenuKeySet(BBS); this.setMenuKeySet(BBS);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/bbs.png")); this.setSmallIcon("/com/fr/design/images/bbs/bbs");
} }
/** /**

9
designer-base/src/main/java/com/fr/design/actions/community/BugAction.java

@ -1,6 +1,6 @@
package com.fr.design.actions.community; package com.fr.design.actions.community;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.design.utils.BrowseUtils; import com.fr.design.utils.BrowseUtils;
@ -17,8 +17,7 @@ public class BugAction extends UpdateAction
{ this.setMenuKeySet(BUG); { this.setMenuKeySet(BUG);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/bug.png")); this.setSmallIcon("/com/fr/design/images/bbs/bug");
} }
@Override @Override
@ -29,7 +28,7 @@ public void actionPerformed(ActionEvent arg0)
} }
public static final MenuKeySet BUG = new MenuKeySet() { public static final MenuKeySet BUG = new MenuKeySet() {
@Override @Override
public String getMenuName() { public String getMenuName() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Community_Bug"); return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Community_Bug");
@ -43,7 +42,7 @@ public void actionPerformed(ActionEvent arg0)
@Override @Override
public char getMnemonic() public char getMnemonic()
{ {
return 'U'; return 'U';
} }
}; };

4
designer-base/src/main/java/com/fr/design/actions/community/BugNeedAction.java

@ -1,6 +1,6 @@
package com.fr.design.actions.community; package com.fr.design.actions.community;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.locale.impl.BugNeedMark; import com.fr.design.locale.impl.BugNeedMark;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
@ -20,7 +20,7 @@ public class BugNeedAction extends UpdateAction {
this.setMenuKeySet(BugAndNeed); this.setMenuKeySet(BugAndNeed);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/need.png")); this.setSmallIcon("/com/fr/design/images/bbs/need");
} }
@Override @Override

4
designer-base/src/main/java/com/fr/design/actions/community/CenterAction.java

@ -1,6 +1,6 @@
package com.fr.design.actions.community; package com.fr.design.actions.community;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.design.utils.BrowseUtils; import com.fr.design.utils.BrowseUtils;
import com.fr.general.CloudCenter; import com.fr.general.CloudCenter;
@ -17,7 +17,7 @@ public class CenterAction extends UpAction{
this.setMenuKeySet(CENTER); this.setMenuKeySet(CENTER);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/center.png")); this.setSmallIcon("/com/fr/design/images/bbs/center");
} }

5
designer-base/src/main/java/com/fr/design/actions/community/FacebookFansAction.java

@ -1,10 +1,9 @@
package com.fr.design.actions.community; package com.fr.design.actions.community;
import com.fr.base.svg.IconUtils;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.design.utils.BrowseUtils; import com.fr.design.utils.BrowseUtils;
import com.fr.general.CloudCenter; import com.fr.general.CloudCenter;
import com.fr.general.IOUtils;
import javax.swing.KeyStroke; import javax.swing.KeyStroke;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
@ -14,7 +13,7 @@ public class FacebookFansAction extends UpAction {
this.setMenuKeySet(FACEBOOKFANS); this.setMenuKeySet(FACEBOOKFANS);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/bbs/facebook.png")); this.setSmallIcon("/com/fr/design/images/bbs/facebook");
} }
@Override @Override

4
designer-base/src/main/java/com/fr/design/actions/community/NeedAction.java

@ -1,6 +1,6 @@
package com.fr.design.actions.community; package com.fr.design.actions.community;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.design.utils.BrowseUtils; import com.fr.design.utils.BrowseUtils;
@ -18,7 +18,7 @@ public class NeedAction extends UpdateAction
this.setMenuKeySet(NEED); this.setMenuKeySet(NEED);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/need.png")); this.setSmallIcon("/com/fr/design/images/bbs/need");
} }

4
designer-base/src/main/java/com/fr/design/actions/community/QuestionAction.java

@ -1,6 +1,6 @@
package com.fr.design.actions.community; package com.fr.design.actions.community;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.design.utils.BrowseUtils; import com.fr.design.utils.BrowseUtils;
@ -16,7 +16,7 @@ public class QuestionAction extends UpdateAction {
this.setMenuKeySet(QUESTIONS); this.setMenuKeySet(QUESTIONS);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/question.png")); this.setSmallIcon("/com/fr/design/images/bbs/question");
} }

5
designer-base/src/main/java/com/fr/design/actions/community/SignAction.java

@ -1,6 +1,6 @@
package com.fr.design.actions.community; package com.fr.design.actions.community;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
@ -19,8 +19,7 @@ public class SignAction extends UpdateAction
this.setMenuKeySet(SIGN); this.setMenuKeySet(SIGN);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/sign.png")); this.setSmallIcon("/com/fr/design/images/bbs/sign");
} }
@Override @Override

4
designer-base/src/main/java/com/fr/design/actions/community/TechSolutionAction.java

@ -1,6 +1,6 @@
package com.fr.design.actions.community; package com.fr.design.actions.community;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.design.utils.BrowseUtils; import com.fr.design.utils.BrowseUtils;
@ -21,7 +21,7 @@ public class TechSolutionAction extends UpdateAction{
this.setMenuKeySet(TSO); this.setMenuKeySet(TSO);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/solution.png")); this.setSmallIcon("/com/fr/design/images/bbs/solution");
} }

5
designer-base/src/main/java/com/fr/design/actions/community/VideoAction.java

@ -1,10 +1,10 @@
package com.fr.design.actions.community; package com.fr.design.actions.community;
import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.locale.impl.VideoMark; import com.fr.design.locale.impl.VideoMark;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.design.utils.BrowseUtils; import com.fr.design.utils.BrowseUtils;
import com.fr.general.IOUtils;
import com.fr.general.locale.LocaleCenter; import com.fr.general.locale.LocaleCenter;
import com.fr.general.locale.LocaleMark; import com.fr.general.locale.LocaleMark;
@ -20,8 +20,7 @@ public class VideoAction extends UpdateAction
this.setMenuKeySet(VIDEO); this.setMenuKeySet(VIDEO);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/bbs/video.png")); this.setSmallIcon("/com/fr/design/images/bbs/video");
} }
@Override @Override

5
designer-base/src/main/java/com/fr/design/actions/edit/CopyAction.java

@ -3,7 +3,6 @@
*/ */
package com.fr.design.actions.edit; package com.fr.design.actions.edit;
import com.fr.base.BaseUtils;
import com.fr.design.actions.TemplateComponentAction; import com.fr.design.actions.TemplateComponentAction;
import com.fr.design.base.mode.DesignModeContext; import com.fr.design.base.mode.DesignModeContext;
import com.fr.design.designer.TargetComponent; import com.fr.design.designer.TargetComponent;
@ -22,7 +21,7 @@ public class CopyAction extends TemplateComponentAction {
this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_M_Edit_Copy")); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_M_Edit_Copy"));
this.setMnemonic('C'); this.setMnemonic('C');
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/copy.png")); this.setSmallIcon("/com/fr/design/images/m_edit/copy");
this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, DEFAULT_MODIFIER)); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, DEFAULT_MODIFIER));
this.setEnabled(!DesignModeContext.isBanCopyAndCut()); this.setEnabled(!DesignModeContext.isBanCopyAndCut());
} }
@ -32,4 +31,4 @@ public class CopyAction extends TemplateComponentAction {
DesignModeContext.doCopy(getEditingComponent()); DesignModeContext.doCopy(getEditingComponent());
return false; return false;
} }
} }

5
designer-base/src/main/java/com/fr/design/actions/edit/CutAction.java

@ -3,7 +3,6 @@
*/ */
package com.fr.design.actions.edit; package com.fr.design.actions.edit;
import com.fr.base.BaseUtils;
import com.fr.design.actions.TemplateComponentAction; import com.fr.design.actions.TemplateComponentAction;
import com.fr.design.base.mode.DesignModeContext; import com.fr.design.base.mode.DesignModeContext;
import com.fr.design.designer.TargetComponent; import com.fr.design.designer.TargetComponent;
@ -26,7 +25,7 @@ public class CutAction extends TemplateComponentAction {
this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_M_Edit_Cut")); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_M_Edit_Cut"));
this.setMnemonic('T'); this.setMnemonic('T');
this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/m_edit/cut.png")); this.setSmallIcon("/com/fr/design/images/m_edit/cut");
this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER)); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER));
this.setEnabled(!DesignModeContext.isBanCopyAndCut()); this.setEnabled(!DesignModeContext.isBanCopyAndCut());
} }
@ -35,4 +34,4 @@ public class CutAction extends TemplateComponentAction {
public boolean executeActionReturnUndoRecordNeeded() { public boolean executeActionReturnUndoRecordNeeded() {
return DesignModeContext.doCut(getEditingComponent()); return DesignModeContext.doCut(getEditingComponent());
} }
} }

5
designer-base/src/main/java/com/fr/design/actions/edit/PasteAction.java

@ -3,7 +3,6 @@
*/ */
package com.fr.design.actions.edit; package com.fr.design.actions.edit;
import com.fr.base.BaseUtils;
import com.fr.design.actions.TemplateComponentAction; import com.fr.design.actions.TemplateComponentAction;
import com.fr.design.base.mode.DesignModeContext; import com.fr.design.base.mode.DesignModeContext;
import com.fr.design.designer.TargetComponent; import com.fr.design.designer.TargetComponent;
@ -25,7 +24,7 @@ public class PasteAction extends TemplateComponentAction {
this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_M_Edit_Paste")); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_M_Edit_Paste"));
this.setMnemonic('P'); this.setMnemonic('P');
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/paste.png")); this.setSmallIcon("/com/fr/design/images/m_edit/paste");
this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, DEFAULT_MODIFIER)); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, DEFAULT_MODIFIER));
} }
@ -33,4 +32,4 @@ public class PasteAction extends TemplateComponentAction {
public boolean executeActionReturnUndoRecordNeeded() { public boolean executeActionReturnUndoRecordNeeded() {
return DesignModeContext.doPaste(getEditingComponent()); return DesignModeContext.doPaste(getEditingComponent());
} }
} }

5
designer-base/src/main/java/com/fr/design/actions/edit/RedoAction.java

@ -5,7 +5,6 @@ package com.fr.design.actions.edit;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import com.fr.base.BaseUtils;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.actions.TemplateComponentActionInterface; import com.fr.design.actions.TemplateComponentActionInterface;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
@ -23,7 +22,7 @@ public class RedoAction extends UpdateAction implements TemplateComponentActionI
this.setMenuKeySet(KeySetUtils.REDO); this.setMenuKeySet(KeySetUtils.REDO);
this.setName(getMenuKeySet().getMenuKeySetName()); this.setName(getMenuKeySet().getMenuKeySetName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/redo.png")); this.setSmallIcon("com/fr/design/images/m_edit/redo");
this.setAccelerator(getMenuKeySet().getKeyStroke()); this.setAccelerator(getMenuKeySet().getKeyStroke());
} }
@ -56,4 +55,4 @@ public class RedoAction extends UpdateAction implements TemplateComponentActionI
} }
} }
} }

7
designer-base/src/main/java/com/fr/design/actions/edit/UndoAction.java

@ -5,7 +5,6 @@ package com.fr.design.actions.edit;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import com.fr.base.BaseUtils;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.actions.TemplateComponentActionInterface; import com.fr.design.actions.TemplateComponentActionInterface;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
@ -23,10 +22,10 @@ public class UndoAction extends UpdateAction implements TemplateComponentActionI
this.setMenuKeySet(KeySetUtils.UNDO); this.setMenuKeySet(KeySetUtils.UNDO);
this.setName(getMenuKeySet().getMenuKeySetName()); this.setName(getMenuKeySet().getMenuKeySetName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/undo.png")); this.setSmallIcon("/com/fr/design/images/m_edit/undo");
this.setAccelerator(getMenuKeySet().getKeyStroke()); this.setAccelerator(getMenuKeySet().getKeyStroke());
} }
@Override @Override
public JTemplate<?, ?> getEditingComponent() { public JTemplate<?, ?> getEditingComponent() {
return t; return t;
@ -57,4 +56,4 @@ public class UndoAction extends UpdateAction implements TemplateComponentActionI
} }
} }

8
designer-base/src/main/java/com/fr/design/actions/file/OpenTemplateAction.java

@ -5,7 +5,7 @@ package com.fr.design.actions.file;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.menu.KeySetUtils; import com.fr.design.menu.KeySetUtils;
@ -17,12 +17,12 @@ import com.fr.file.FILEChooserPane;
* Open Template. * Open Template.
*/ */
public class OpenTemplateAction extends UpdateAction { public class OpenTemplateAction extends UpdateAction {
public OpenTemplateAction() { public OpenTemplateAction() {
this.setMenuKeySet(KeySetUtils.OPEN_TEMPLATE); this.setMenuKeySet(KeySetUtils.OPEN_TEMPLATE);
this.setName(getMenuKeySet().getMenuKeySetName()); this.setName(getMenuKeySet().getMenuKeySetName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/buttonicon/open.png")); this.setSmallIcon("/com/fr/design/images/buttonicon/open");
this.setAccelerator(getMenuKeySet().getKeyStroke()); this.setAccelerator(getMenuKeySet().getKeyStroke());
} }
@ -42,4 +42,4 @@ public class OpenTemplateAction extends UpdateAction {
DesignerContext.getDesignerFrame().openTemplate(file); DesignerContext.getDesignerFrame().openTemplate(file);
} }
} }
} }

6
designer-base/src/main/java/com/fr/design/actions/file/SaveAsTemplateAction.java

@ -5,7 +5,7 @@ package com.fr.design.actions.file;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.actions.JTemplateAction; import com.fr.design.actions.JTemplateAction;
import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.JTemplate;
import com.fr.design.menu.KeySetUtils; import com.fr.design.menu.KeySetUtils;
@ -20,7 +20,7 @@ public class SaveAsTemplateAction extends JTemplateAction<JTemplate<?, ?>> {
this.setMenuKeySet(KeySetUtils.SAVE_AS_TEMPLATE); this.setMenuKeySet(KeySetUtils.SAVE_AS_TEMPLATE);
this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setName(getMenuKeySet().getMenuKeySetName() + "...");
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/saveAs.png")); this.setSmallIcon("/com/fr/design/images/m_file/saveAs");
} }
/** /**
@ -45,4 +45,4 @@ public class SaveAsTemplateAction extends JTemplateAction<JTemplate<?, ?>> {
// 另存为按钮应该一直可用使用 // 另存为按钮应该一直可用使用
this.setEnabled(true); this.setEnabled(true);
} }
} }

5
designer-base/src/main/java/com/fr/design/actions/file/SaveTemplateAction.java

@ -5,7 +5,6 @@ package com.fr.design.actions.file;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import com.fr.base.BaseUtils;
import com.fr.design.actions.JTemplateAction; import com.fr.design.actions.JTemplateAction;
import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.JTemplate;
import com.fr.design.menu.KeySetUtils; import com.fr.design.menu.KeySetUtils;
@ -21,7 +20,7 @@ public class SaveTemplateAction extends JTemplateAction<JTemplate<?, ?>> {
this.setMenuKeySet(KeySetUtils.SAVE_TEMPLATE); this.setMenuKeySet(KeySetUtils.SAVE_TEMPLATE);
this.setName(getMenuKeySet().getMenuKeySetName()); this.setName(getMenuKeySet().getMenuKeySetName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/save.png")); this.setSmallIcon("/com/fr/design/images/m_file/save");
this.setAccelerator(getMenuKeySet().getKeyStroke()); this.setAccelerator(getMenuKeySet().getKeyStroke());
} }
@ -42,4 +41,4 @@ public class SaveTemplateAction extends JTemplateAction<JTemplate<?, ?>> {
this.setEnabled(!this.getEditingComponent().isSaved()); this.setEnabled(!this.getEditingComponent().isSaved());
} }
} }

10
designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java

@ -1,6 +1,6 @@
package com.fr.design.actions.file; package com.fr.design.actions.file;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.EnvChangeEntrance; import com.fr.design.EnvChangeEntrance;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
@ -21,11 +21,11 @@ public class SwitchExistEnv extends MenuDef {
initMenuDef(); initMenuDef();
} }
private void initMenuDef() { private void initMenuDef() {
Iterator<String> nameIt = DesignerEnvManager.getEnvManager().getEnvNameIterator(); Iterator<String> nameIt = DesignerEnvManager.getEnvManager().getEnvNameIterator();
while (nameIt.hasNext()) { while (nameIt.hasNext()) {
String name = nameIt.next(); String name = nameIt.next();
this.setIconPath("com/fr/design/images/m_file/switch.png"); this.setIconPath("com/fr/design/images/m_file/switch");
this.addShortCut(new GetExistEnvAction(name)); this.addShortCut(new GetExistEnvAction(name));
} }
this.addShortCut(SeparatorDef.DEFAULT); this.addShortCut(SeparatorDef.DEFAULT);
@ -42,11 +42,11 @@ public class SwitchExistEnv extends MenuDef {
DesignerWorkspaceInfo env = DesignerEnvManager.getEnvManager().getWorkspaceInfo(envName); DesignerWorkspaceInfo env = DesignerEnvManager.getEnvManager().getWorkspaceInfo(envName);
switch (env.getType()) { switch (env.getType()) {
case Local: { case Local: {
this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/data/bind/localconnect.png")); this.setSmallIcon("com/fr/design/images/data/bind/localconnect");
break; break;
} }
case Remote: { case Remote: {
this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/data/bind/distanceconnect.png")); this.setSmallIcon("com/fr/design/images/data/bind/distanceconnect");
break; break;
} }
} }

4
designer-base/src/main/java/com/fr/design/actions/help/TutorialAction.java

@ -1,10 +1,10 @@
package com.fr.design.actions.help; package com.fr.design.actions.help;
import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.general.CloudCenter; import com.fr.general.CloudCenter;
import com.fr.general.GeneralContext; import com.fr.general.GeneralContext;
import com.fr.general.IOUtils;
import com.fr.general.http.HttpToolbox; import com.fr.general.http.HttpToolbox;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.stable.CommonUtils; import com.fr.stable.CommonUtils;
@ -28,7 +28,7 @@ public class TutorialAction extends UpdateAction {
this.setMenuKeySet(HELP_TUTORIAL); this.setMenuKeySet(HELP_TUTORIAL);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/bbs/help.png")); this.setSmallIcon("/com/fr/design/images/bbs/help");
this.setAccelerator(getMenuKeySet().getKeyStroke()); this.setAccelerator(getMenuKeySet().getKeyStroke());
} }

6
designer-base/src/main/java/com/fr/design/actions/help/WebDemoAction.java

@ -1,6 +1,6 @@
package com.fr.design.actions.help; package com.fr.design.actions.help;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
@ -16,7 +16,7 @@ public class WebDemoAction extends UpdateAction {
this.setMenuKeySet(PRODUCT_DEMO); this.setMenuKeySet(PRODUCT_DEMO);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_help/demo.png")); this.setSmallIcon("/com/fr/design/images/m_help/demo");
} }
/** /**
@ -45,4 +45,4 @@ public class WebDemoAction extends UpdateAction {
} }
}; };
} }

4
designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineAction.java

@ -1,5 +1,6 @@
package com.fr.design.actions.help.alphafine; package com.fr.design.actions.help.alphafine;
import com.fr.base.svg.SVGIcon;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicDialog;
@ -8,7 +9,6 @@ import com.fr.design.dialog.DialogActionListener;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.DesignerFrame; import com.fr.design.mainframe.DesignerFrame;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.general.IOUtils;
import javax.swing.KeyStroke; import javax.swing.KeyStroke;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
@ -21,7 +21,7 @@ public class AlphaFineAction extends UpdateAction {
this.setMenuKeySet(ALPHAFINE); this.setMenuKeySet(ALPHAFINE);
this.setName(getMenuKeySet().getMenuName()); this.setName(getMenuKeySet().getMenuName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(IOUtils.readIcon("/com/fr/design/mainframe/alphafine/images/smallsearch.png")); this.setSmallIcon("com/fr/design/mainframe/alphafine/images/smallsearch");
this.generateAndSetSearchText(AlphaFineConfigPane.class.getName()); this.generateAndSetSearchText(AlphaFineConfigPane.class.getName());
} }

6
designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java

@ -1,5 +1,6 @@
package com.fr.design.actions.server; package com.fr.design.actions.server;
import com.fr.base.svg.IconUtils;
import com.fr.data.impl.Connection; import com.fr.data.impl.Connection;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.data.datapane.connect.ConnectionShowPane; import com.fr.design.data.datapane.connect.ConnectionShowPane;
@ -11,7 +12,6 @@ import com.fr.stable.os.support.OSBasedAction;
import com.fr.stable.os.support.OSSupportCenter; import com.fr.stable.os.support.OSSupportCenter;
import com.fr.design.os.impl.DatabaseDialogAction; import com.fr.design.os.impl.DatabaseDialogAction;
import com.fr.file.ConnectionConfig; import com.fr.file.ConnectionConfig;
import com.fr.general.IOUtils;
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
@ -26,7 +26,7 @@ public class ConnectionListAction extends UpdateAction {
this.setMenuKeySet(DEFINE_DATA_CONNECTION); this.setMenuKeySet(DEFINE_DATA_CONNECTION);
this.setName(getMenuKeySet().getMenuKeySetName()); this.setName(getMenuKeySet().getMenuKeySetName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/m_web/connection.png")); this.setSmallIcon("/com/fr/design/images/m_web/connection");
this.generateAndSetSearchText(DatabaseConnectionPane.JDBC.class.getName()); this.generateAndSetSearchText(DatabaseConnectionPane.JDBC.class.getName());
} }
@ -96,4 +96,4 @@ public class ConnectionListAction extends UpdateAction {
public void update() { public void update() {
this.setEnabled(true); this.setEnabled(true);
} }
} }

8
designer-base/src/main/java/com/fr/design/actions/server/FunctionManagerAction.java

@ -4,6 +4,7 @@
package com.fr.design.actions.server; package com.fr.design.actions.server;
import com.fr.base.svg.IconUtils;
import com.fr.config.Configuration; import com.fr.config.Configuration;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicDialog;
@ -12,7 +13,6 @@ import com.fr.design.formula.FunctionManagerPane;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.file.FunctionConfig; import com.fr.file.FunctionConfig;
import com.fr.general.IOUtils;
import com.fr.transaction.Configurations; import com.fr.transaction.Configurations;
import com.fr.transaction.Worker; import com.fr.transaction.Worker;
@ -29,7 +29,7 @@ public class FunctionManagerAction extends UpdateAction {
this.setMenuKeySet(FUNCTION_MANAGER); this.setMenuKeySet(FUNCTION_MANAGER);
this.setName(getMenuKeySet().getMenuKeySetName()+"..."); this.setName(getMenuKeySet().getMenuKeySetName()+"...");
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/m_web/function.png")); this.setSmallIcon("/com/fr/design/images/m_web/function");
this.generateAndSetSearchText(FunctionManagerPane.class.getName()); this.generateAndSetSearchText(FunctionManagerPane.class.getName());
} }
@ -63,7 +63,7 @@ public class FunctionManagerAction extends UpdateAction {
functionManagerPane.populate(mirror); functionManagerPane.populate(mirror);
functionManagerDialog.setVisible(true); functionManagerDialog.setVisible(true);
} }
public void update() { public void update() {
this.setEnabled(true); this.setEnabled(true);
} }
@ -84,4 +84,4 @@ public class FunctionManagerAction extends UpdateAction {
return null; return null;
} }
}; };
} }

6
designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java

@ -3,8 +3,8 @@
*/ */
package com.fr.design.actions.server; package com.fr.design.actions.server;
import com.fr.base.BaseUtils;
import com.fr.base.ParameterConfig; import com.fr.base.ParameterConfig;
import com.fr.base.svg.IconUtils;
import com.fr.config.ServerPreferenceConfig; import com.fr.config.ServerPreferenceConfig;
import com.fr.design.DesignModelAdapter; import com.fr.design.DesignModelAdapter;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
@ -31,7 +31,7 @@ public class GlobalParameterAction extends UpdateAction {
this.setMenuKeySet(GLOBAL_PARAMETER); this.setMenuKeySet(GLOBAL_PARAMETER);
this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setName(getMenuKeySet().getMenuKeySetName() + "...");
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/p.png")); this.setSmallIcon("/com/fr/design/images/m_report/p");
} }
/** /**
@ -91,4 +91,4 @@ public class GlobalParameterAction extends UpdateAction {
return null; return null;
} }
}; };
} }

8
designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java

@ -3,8 +3,8 @@
*/ */
package com.fr.design.actions.server; package com.fr.design.actions.server;
import com.fr.base.BaseUtils;
import com.fr.base.TableData; import com.fr.base.TableData;
import com.fr.base.svg.IconUtils;
import com.fr.design.DesignModelAdapter; import com.fr.design.DesignModelAdapter;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.data.DesignTableDataManager; import com.fr.design.data.DesignTableDataManager;
@ -40,7 +40,7 @@ public class GlobalTableDataAction extends UpdateAction implements ResponseDataS
this.setMenuKeySet(SERVER_TABLEDATA); this.setMenuKeySet(SERVER_TABLEDATA);
this.setName(getMenuKeySet().getMenuKeySetName()); this.setName(getMenuKeySet().getMenuKeySetName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/data/dock/serverdatabase.png")); this.setSmallIcon("/com/fr/design/images/data/dock/serverdatabase");
} }
public static final MenuKeySet SERVER_TABLEDATA = new MenuKeySet() { public static final MenuKeySet SERVER_TABLEDATA = new MenuKeySet() {
@ -70,7 +70,7 @@ public class GlobalTableDataAction extends UpdateAction implements ResponseDataS
final TableDataConfig tableDataConfig = TableDataConfig.getInstance(); final TableDataConfig tableDataConfig = TableDataConfig.getInstance();
final TableDataManagerPane globalTableDataPane = new TableDataManagerPane() { final TableDataManagerPane globalTableDataPane = new TableDataManagerPane() {
public void complete() { public void complete() {
TableDataConfig mirror = tableDataConfig.mirror(); TableDataConfig mirror = tableDataConfig.mirror();
populate(mirror); populate(mirror);
} }
@ -166,4 +166,4 @@ public class GlobalTableDataAction extends UpdateAction implements ResponseDataS
public void fireDSChanged(Map<String, String> map) { public void fireDSChanged(Map<String, String> map) {
DesignTableDataManager.fireDSChanged(map); DesignTableDataManager.fireDSChanged(map);
} }
} }

6
designer-base/src/main/java/com/fr/design/actions/server/PlatformManagerAction.java

@ -1,6 +1,6 @@
package com.fr.design.actions.server; package com.fr.design.actions.server;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.design.utils.DesignUtils; import com.fr.design.utils.DesignUtils;
@ -14,7 +14,7 @@ public class PlatformManagerAction extends UpdateAction {
this.setMenuKeySet(PLATEFORM_MANAGER); this.setMenuKeySet(PLATEFORM_MANAGER);
this.setName(getMenuKeySet().getMenuKeySetName()); this.setName(getMenuKeySet().getMenuKeySetName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/server/platform_16_16.png")); this.setSmallIcon("/com/fr/design/images/server/platform_16_16");
} }
/** /**
@ -41,4 +41,4 @@ public class PlatformManagerAction extends UpdateAction {
return null; return null;
} }
}; };
} }

6
designer-base/src/main/java/com/fr/design/actions/server/PluginManagerAction.java

@ -1,9 +1,9 @@
package com.fr.design.actions.server; package com.fr.design.actions.server;
import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.design.os.impl.PMDialogAction; import com.fr.design.os.impl.PMDialogAction;
import com.fr.general.IOUtils;
import com.fr.stable.os.support.OSBasedAction; import com.fr.stable.os.support.OSBasedAction;
import com.fr.stable.os.support.OSSupportCenter; import com.fr.stable.os.support.OSSupportCenter;
@ -20,7 +20,7 @@ public class PluginManagerAction extends UpdateAction {
this.setMenuKeySet(PLUGIN_MANAGER); this.setMenuKeySet(PLUGIN_MANAGER);
this.setName(getMenuKeySet().getMenuKeySetName()); this.setName(getMenuKeySet().getMenuKeySetName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/server/plugin.png")); this.setSmallIcon("/com/fr/design/images/server/plugin");
} }
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -45,4 +45,4 @@ public class PluginManagerAction extends UpdateAction {
return null; return null;
} }
}; };
} }

2
designer-base/src/main/java/com/fr/design/constants/UIConstants.java

@ -3,6 +3,7 @@
*/ */
package com.fr.design.constants; package com.fr.design.constants;
import com.fr.base.svg.IconUtils;
import com.fr.general.IOUtils; import com.fr.general.IOUtils;
import com.fr.stable.Constants; import com.fr.stable.Constants;
@ -179,6 +180,7 @@ public interface UIConstants {
public static final Icon YES_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/yes.png"); public static final Icon YES_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/yes.png");
public static final Icon CHOOSEN_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/select_item.png"); public static final Icon CHOOSEN_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/select_item.png");
public static final Icon PRE_WIDGET_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/prewidget.png"); public static final Icon PRE_WIDGET_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/prewidget.png");
public static final Icon PRE_WIDGET_NORMAL_ICON = IconUtils.readIcon("com/fr/design/images/buttonicon/prewidget");
public static final Icon EDIT_NORMAL_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/editn.png"); public static final Icon EDIT_NORMAL_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/editn.png");
public static final Icon EDIT_PRESSED_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/editp.png"); public static final Icon EDIT_PRESSED_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/editp.png");
public static final Icon HIDE_NORMAL_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/hiden.png"); public static final Icon HIDE_NORMAL_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/hiden.png");

4
designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java

@ -398,7 +398,7 @@ public abstract class BasicTableDataTreePane extends DockingView implements Resp
public PreviewTableDataAction(TableDataTree dataTree) { public PreviewTableDataAction(TableDataTree dataTree) {
this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview")); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"));
this.setMnemonic('p'); this.setMnemonic('p');
this.setSmallIcon(BaseUtils.readIcon(IconPathConstants.PREVIEW_ICON_PATH)); this.setSmallIcon("/com/fr/design/images/m_file/preview");
this.dataTree = dataTree; this.dataTree = dataTree;
} }
@ -437,7 +437,7 @@ public abstract class BasicTableDataTreePane extends DockingView implements Resp
public ConnectionTableAction() { public ConnectionTableAction() {
this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Server_Define_Data_Connection")); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Server_Define_Data_Connection"));
this.setMnemonic('D'); this.setMnemonic('D');
this.setSmallIcon(BaseUtils.readIcon(IconPathConstants.TD_CONNECTION_ICON_PATH)); this.setSmallIcon("/com/fr/design/images/m_web/connection");
} }
} }

5
designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java

@ -1,6 +1,5 @@
package com.fr.design.data.datapane; package com.fr.design.data.datapane;
import com.fr.base.BaseUtils;
import com.fr.base.TableData; import com.fr.base.TableData;
import com.fr.data.TableDataSource; import com.fr.data.TableDataSource;
import com.fr.data.impl.TableDataSourceDependent; import com.fr.data.impl.TableDataSourceDependent;
@ -279,7 +278,7 @@ public class TableDataTreePane extends BasicTableDataTreePane {
public EditAction() { public EditAction() {
this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Edit")); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Edit"));
this.setMnemonic('E'); this.setMnemonic('E');
this.setSmallIcon(BaseUtils.readIcon(IconPathConstants.TD_EDIT_ICON_PATH)); this.setSmallIcon("/com/fr/design/images/control/edit");
} }
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -297,7 +296,7 @@ public class TableDataTreePane extends BasicTableDataTreePane {
public RemoveAction() { public RemoveAction() {
this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Remove")); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Remove"));
this.setMnemonic('R'); this.setMnemonic('R');
this.setSmallIcon(BaseUtils.readIcon(IconPathConstants.TD_REMOVE_ICON_PATH)); this.setSmallIcon("/com/fr/design/images/control/remove");
} }
@Override @Override

2
designer-base/src/main/java/com/fr/design/data/datapane/sqlpane/SQLEditPane.java

File diff suppressed because one or more lines are too long

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

@ -1,6 +1,7 @@
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.*; import com.fr.form.ui.*;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
@ -127,27 +128,27 @@ public abstract class WidgetOption implements Serializable {
} }
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.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Date"),
BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/date_16.png"), "/com/fr/design/images/buttonicon/widget/date_16",
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.i18n.Toolkit.i18nText("Fine-Design_Report_View_Tree"),
BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/tree_16.png"), TreeEditor.class); "/com/fr/design/images/buttonicon/widget/tree_16", TreeEditor.class);
public static final WidgetOption TREECOMBOBOX = WidgetOptionFactory.createByWidgetClass(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Tree_ComboBox"), BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/comboboxtree.png"), 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",
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"), BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/checkbox_group_16.png"), CheckBoxGroup.class); com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Checkbox_Group"), "/com/fr/design/images/buttonicon/widget/checkbox_group_16", 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"), BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/button_group_16.png"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Radio_Group"), "/com/fr/design/images/buttonicon/widget/button_group_16",
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"), BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/number_field_16.png"), NumberEditor.class); com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Number"), "/com/fr/design/images/buttonicon/widget/number_field_16", 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"), BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/label_16.png"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Label"), "/com/fr/design/images/buttonicon/widget/label_16",
Label.class); Label.class);
public static final WidgetOption BUTTON = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption BUTTON = WidgetOptionFactory.createByWidgetClass(
@ -155,23 +156,23 @@ public abstract class WidgetOption implements Serializable {
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"), BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/button_16.png"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Button"), "/com/fr/design/images/buttonicon/widget/button_16",
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"), BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/files_up.png"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_File"), "/com/fr/design/images/buttonicon/widget/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"), BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/combo_box_16.png"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Combo_Box"), "/com/fr/design/images/buttonicon/widget/combo_box_16",
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"), BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/combo_check_16.png"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Combo_Checkbox"), "/com/fr/design/images/buttonicon/widget/combo_check_16",
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"), BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/check_box_16.png"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Checkbox"), "/com/fr/design/images/buttonicon/widget/check_box_16",
CheckBox.class); CheckBox.class);
public static final WidgetOption LIST = WidgetOptionFactory.createByWidgetClass( public static final WidgetOption LIST = WidgetOptionFactory.createByWidgetClass(
@ -181,16 +182,16 @@ public abstract class WidgetOption implements Serializable {
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") com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Text")
, BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/text_field_16.png"), , "/com/fr/design/images/buttonicon/widget/text_field_16",
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"), BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/text_area_16.png"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Textarea"), "/com/fr/design/images/buttonicon/widget/text_area_16",
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"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Type_Password"),
BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/password_field_16.png"), Password.class); "/com/fr/design/images/buttonicon/widget/password_field_16", 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(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Form_Iframe"), BaseUtils.readIcon("/com/fr/web/images/form/resources/iframe_16.png"),
IframeEditor.class); IframeEditor.class);

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

@ -1,6 +1,7 @@
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.Widget; import com.fr.form.ui.Widget;
import javax.swing.*; import javax.swing.*;
@ -14,4 +15,9 @@ public class WidgetOptionFactory {
public static WidgetOption createByWidgetClass(String optionName, Icon optionIcon, Class<? extends Widget> widgetClass) { public static WidgetOption createByWidgetClass(String optionName, Icon optionIcon, Class<? extends Widget> widgetClass) {
return new CustomWidgetOption(optionName, optionIcon, widgetClass); return new CustomWidgetOption(optionName, optionIcon, widgetClass);
} }
}
public static WidgetOption createByWidgetClass(String optionName, String resource, Class<? extends Widget> widgetClass) {
Icon optionIcon = IconUtils.readIcon(resource);
return new CustomWidgetOption(optionName, optionIcon, widgetClass);
}
}

11
designer-base/src/main/java/com/fr/design/gui/ibutton/UIButton.java

@ -3,6 +3,7 @@ package com.fr.design.gui.ibutton;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.base.CellBorderStyle; import com.fr.base.CellBorderStyle;
import com.fr.base.GraphHelper; import com.fr.base.GraphHelper;
import com.fr.base.svg.IconUtils;
import com.fr.design.constants.UIConstants; import com.fr.design.constants.UIConstants;
import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserver;
import com.fr.design.event.UIObserverListener; import com.fr.design.event.UIObserverListener;
@ -97,6 +98,14 @@ public class UIButton extends JButton implements UIObserver, UITextComponent {
initListener(); initListener();
} }
public UIButton(String resource, boolean needSetDisabledIcon) {
super(IconUtils.readSVGIcon(resource, IconUtils.ICON_TYPE_NORMAL));
if (needSetDisabledIcon) {
this.setDisabledIcon(IconUtils.readSVGIcon(resource, IconUtils.ICON_TYPE_DISABLED));
}
init();
}
protected void initListener() { protected void initListener() {
if (shouldResponseChangeListener()) { if (shouldResponseChangeListener()) {
this.addActionListener(new ActionListener() { this.addActionListener(new ActionListener() {
@ -388,4 +397,4 @@ public class UIButton extends JButton implements UIObserver, UITextComponent {
public boolean shouldResponseChangeListener() { public boolean shouldResponseChangeListener() {
return true; return true;
} }
} }

2
designer-base/src/main/java/com/fr/design/icon/IconPathConstants.java

@ -26,7 +26,7 @@ public class IconPathConstants {
public static final String TD_EDIT_ICON_PATH = "/com/fr/design/images/control/edit.png"; public static final String TD_EDIT_ICON_PATH = "/com/fr/design/images/control/edit.png";
public static final String TD_EL_SHARE_HELP_ICON_PATH = "/com/fr/design/images/control/help_open.png"; public static final String TD_EL_SHARE_HELP_ICON_PATH = "/com/fr/design/images/control/help_open.png";
public static final String TD_EL_SHARE_CLOSE_ICON_PATH = "/com/fr/design/images/control/help_close.png"; public static final String TD_EL_SHARE_CLOSE_ICON_PATH = "/com/fr/design/images/control/help_close.png";
public static final String TD_REMOVE_ICON_PATH = "/com/fr/design/images/control/tab/remove.png"; public static final String TD_REMOVE_ICON_PATH = "/com/fr/design/images/control/remove.png";
public static final String TD_CONNECTION_ICON_PATH = "/com/fr/design/images/m_web/connection.png"; public static final String TD_CONNECTION_ICON_PATH = "/com/fr/design/images/m_web/connection.png";
public static final String SP_SHOW_ICON_PATH = "/com/fr/design/images/data/store_procedure.png"; public static final String SP_SHOW_ICON_PATH = "/com/fr/design/images/data/store_procedure.png";
public static final String STD_SHOW_ICON_PATH = "/com/fr/design/images/data/dock/serverdatabase.png"; public static final String STD_SHOW_ICON_PATH = "/com/fr/design/images/data/dock/serverdatabase.png";

12
designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java

@ -316,7 +316,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt
public NewFolderAction() { public NewFolderAction() {
this.setName(KeySetUtils.NEW_FOLDER.getMenuKeySetName()); this.setName(KeySetUtils.NEW_FOLDER.getMenuKeySetName());
this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/icon_NewFolderIcon_normal.png")); this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/new_folder");
} }
@Override @Override
@ -342,7 +342,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt
private class VcsAction extends UpdateAction { private class VcsAction extends UpdateAction {
public VcsAction() { public VcsAction() {
this.setSmallIcon(VcsHelper.VCS_LIST_PNG); this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/vcs_list");
} }
@Override @Override
@ -424,7 +424,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt
public ShowInExplorerAction() { public ShowInExplorerAction() {
this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Show_In_Containing_Folder")); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Show_In_Containing_Folder"));
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/view_folder.png")); this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/view_folder");
} }
@Override @Override
@ -441,7 +441,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt
public RefreshTreeAction() { public RefreshTreeAction() {
this.setName(Toolkit.i18nText("Fine-Design_Basic_Refresh")); this.setName(Toolkit.i18nText("Fine-Design_Basic_Refresh"));
this.setSmallIcon(UIConstants.REFRESH_ICON); this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/refresh");
} }
@Override @Override
@ -459,7 +459,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt
public RenameAction() { public RenameAction() {
this.setName(Toolkit.i18nText("Fine-Design_Basic_Rename")); this.setName(Toolkit.i18nText("Fine-Design_Basic_Rename"));
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/data/source/rename.png")); this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/rename");
} }
@Override @Override
@ -498,7 +498,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt
public DelFileAction() { public DelFileAction() {
this.setName(Toolkit.i18nText("Fine-Design_Basic_Remove")); this.setName(Toolkit.i18nText("Fine-Design_Basic_Remove"));
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/data/source/delete.png")); this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/remove");
} }
@Override @Override

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

@ -1,7 +1,8 @@
package com.fr.design.mainframe; package com.fr.design.mainframe;
import com.fr.base.BaseUtils;
import com.fr.base.FRContext; import com.fr.base.FRContext;
import com.fr.base.svg.IconUtils;
import com.fr.base.vcs.DesignerMode; import com.fr.base.vcs.DesignerMode;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.ExtraDesignClassManager; import com.fr.design.ExtraDesignClassManager;
@ -701,9 +702,11 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
// 完整icon路径为 ICON_BASE_DIR + btnIconName + iconSuffix // 完整icon路径为 ICON_BASE_DIR + btnIconName + iconSuffix
private static final String ICON_BASE_DIR = "/com/fr/design/images/buttonicon/propertiestab/"; private static final String ICON_BASE_DIR = "/com/fr/design/images/buttonicon/propertiestab/";
private static final String ICON_SUFFIX_NORMAL = "_normal.png"; private static final String ICON_SUFFIX_NORMAL = "_normal.svg";
private static final String ICON_SUFFIX_DISABLED = "_disabled.png"; private static final String ICON_SUFFIX_DISABLED = "_disabled.svg";
private static final String ICON_SUFFIX_SELECTED = "_selected.png"; private static final String ICON_SUFFIX_SELECTED = "_selected.svg";
private static final int ICON_WIDTH = 18;
private static final int ICON_HEIGHT = 18;
private String btnIconName; private String btnIconName;
private String iconBaseDir; private String iconBaseDir;
private String iconSuffix = ICON_SUFFIX_NORMAL; // normal, diabled, selected, 三者之一 private String iconSuffix = ICON_SUFFIX_NORMAL; // normal, diabled, selected, 三者之一
@ -888,7 +891,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
public void resetButtonIcon() { public void resetButtonIcon() {
if (iconSuffix.equals(ICON_SUFFIX_SELECTED)) { if (iconSuffix.equals(ICON_SUFFIX_SELECTED)) {
iconSuffix = ICON_SUFFIX_NORMAL; iconSuffix = ICON_SUFFIX_NORMAL;
button.setIcon(BaseUtils.readIcon(getBtnIconUrl())); button.setIcon(IconUtils.readIcon(getBtnIconUrl()));
button.setBackground(originBtnBackground); button.setBackground(originBtnBackground);
button.setOpaque(false); button.setOpaque(false);
} }
@ -897,7 +900,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
public void setTabButtonSelected() { public void setTabButtonSelected() {
resetPropertyIcons(); resetPropertyIcons();
iconSuffix = ICON_SUFFIX_SELECTED; iconSuffix = ICON_SUFFIX_SELECTED;
button.setIcon(BaseUtils.readIcon(getBtnIconUrl())); button.setIcon(IconUtils.readIcon(getBtnIconUrl()));
button.setBackground(selectedBtnBackground); button.setBackground(selectedBtnBackground);
button.setOpaque(true); button.setOpaque(true);
selectedItem = this; selectedItem = this;
@ -908,7 +911,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
} }
private void initButton() { private void initButton() {
button = new UIButton(BaseUtils.readIcon(getBtnIconUrl())) { button = new UIButton(IconUtils.readIcon(getBtnIconUrl())) {
public Dimension getPreferredSize() { public Dimension getPreferredSize() {
return new Dimension(TAB_BUTTON_WIDTH, TAB_BUTTON_HEIGHT); return new Dimension(TAB_BUTTON_WIDTH, TAB_BUTTON_HEIGHT);
} }
@ -921,6 +924,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
} }
} }
}; };
button.setDisabledIcon(IconUtils.readIcon(getIconBaseDir() + btnIconName + ICON_SUFFIX_DISABLED));
button.set4LargeToolbarButton(); button.set4LargeToolbarButton();
button.setUI(new UIButtonUI() { button.setUI(new UIButtonUI() {
@Override @Override

1
designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java

@ -1,5 +1,6 @@
package com.fr.design.mainframe.vcs.common; package com.fr.design.mainframe.vcs.common;
import com.fr.concurrent.NamedThreadFactory; import com.fr.concurrent.NamedThreadFactory;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.file.HistoryTemplateListCache; import com.fr.design.file.HistoryTemplateListCache;

20
designer-base/src/main/java/com/fr/design/menu/MenuDef.java

@ -1,6 +1,6 @@
package com.fr.design.menu; package com.fr.design.menu;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.imenu.*; import com.fr.design.gui.imenu.*;
import com.fr.design.gui.iscrollbar.UIScrollBar; import com.fr.design.gui.iscrollbar.UIScrollBar;
@ -141,7 +141,7 @@ public class MenuDef extends ShortCut {
addShortCut(i); addShortCut(i);
} }
} }
public void addShortCut(ShortCut shortCut) { public void addShortCut(ShortCut shortCut) {
this.shortcutList.add(shortCut); this.shortcutList.add(shortCut);
} }
@ -166,7 +166,7 @@ public class MenuDef extends ShortCut {
public UIButton createUIButton() { public UIButton createUIButton() {
if (createdButton == null) { if (createdButton == null) {
if (iconPath != null) { if (iconPath != null) {
createdButton = new UIButton(BaseUtils.readIcon(iconPath)); createdButton = new UIButton(IconUtils.readIcon(iconPath));
createdButton.set4ToolbarButton(); createdButton.set4ToolbarButton();
} else { } else {
createdButton = new UIButton(name); createdButton = new UIButton(name);
@ -194,7 +194,7 @@ public class MenuDef extends ShortCut {
createdJMenu = createJMenu0(); createdJMenu = createJMenu0();
createdJMenu.setMnemonic(this.getMnemonic()); createdJMenu.setMnemonic(this.getMnemonic());
if (this.iconPath != null) { if (this.iconPath != null) {
createdJMenu.setIcon(BaseUtils.readIcon(this.iconPath)); createdJMenu.setIcon(IconUtils.readIcon(iconPath));
} }
MenuListener menuListener = createMenuListener(); MenuListener menuListener = createMenuListener();
createdJMenu.addMenuListener(menuListener); createdJMenu.addMenuListener(menuListener);
@ -206,9 +206,9 @@ public class MenuDef extends ShortCut {
return createdJMenu; return createdJMenu;
} }
protected UIMenu createJMenu0() { protected UIMenu createJMenu0() {
UIMenu createdJMenu; UIMenu createdJMenu;
if (hasScrollSubMenu) { if (hasScrollSubMenu) {
createdJMenu = new UIScrollMenu(this.getName()); createdJMenu = new UIScrollMenu(this.getName());
@ -219,7 +219,7 @@ public class MenuDef extends ShortCut {
} }
return createdJMenu; return createdJMenu;
} }
protected ContainerListener getContainerListener() { protected ContainerListener getContainerListener() {
return null; return null;
} }
@ -389,9 +389,9 @@ public class MenuDef extends ShortCut {
public void intoJToolBar(JToolBar toolBar) { public void intoJToolBar(JToolBar toolBar) {
toolBar.add(this.createUIButton()); toolBar.add(this.createUIButton());
} }
protected MenuListener createMenuListener() { protected MenuListener createMenuListener() {
return menuDefListener; return menuDefListener;
} }
@ -456,4 +456,4 @@ public class MenuDef extends ShortCut {
} }
} }

4
designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java

@ -1,6 +1,6 @@
package com.fr.design.remote.action; package com.fr.design.remote.action;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.DialogActionAdapter;
@ -27,7 +27,7 @@ public class RemoteDesignAuthManagerAction extends UpdateAction {
public RemoteDesignAuthManagerAction() { public RemoteDesignAuthManagerAction() {
this.setName(Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Authority_Manager")); this.setName(Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Authority_Manager"));
// 远程设计权限管理 // 远程设计权限管理
this.setSmallIcon(BaseUtils.readIcon("com/fr/design/remote/images/icon_Remote_Design_Auth_Manager_normal@1x.png")); this.setSmallIcon("com/fr/design/remote/images/icon_Remote_Design_Auth_Manager_normal@1x");
} }

4
designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java

@ -1,5 +1,6 @@
package com.fr.design.report.fit.menupane; package com.fr.design.report.fit.menupane;
import com.fr.base.svg.IconUtils;
import com.fr.design.actions.JTemplateAction; import com.fr.design.actions.JTemplateAction;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.DialogActionAdapter;
@ -8,7 +9,6 @@ import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.JTemplate;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.general.IOUtils;
import com.fr.report.fit.FitProvider; import com.fr.report.fit.FitProvider;
import com.fr.report.fit.ReportFitAttr; import com.fr.report.fit.ReportFitAttr;
@ -66,7 +66,7 @@ public class ReportFitAttrAction extends JTemplateAction {
} }
this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setName(getMenuKeySet().getMenuKeySetName() + "...");
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/reportfit/fit.png")); this.setSmallIcon("/com/fr/design/images/reportfit/fit");
} }
/** /**

4
designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java

@ -181,7 +181,7 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo
} }
private void initbuttonGroup() { private void initbuttonGroup() {
Icon[] iconArray = new Icon[]{BaseUtils.readIcon("/com/fr/web/images/platform/demo.png")}; Icon[] iconArray = new Icon[]{BaseUtils.readIcon("/com/fr/web/images/platform/demo.png")};
String[] textArray = new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FS_Name")}; String[] textArray = new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FS_Name")};
buttonGroup = new UIHeadGroup(iconArray, textArray) { buttonGroup = new UIHeadGroup(iconArray, textArray) {
@ -254,7 +254,7 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo
public RefreshAction() { public RefreshAction() {
this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Refresh")); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Refresh"));
this.setSmallIcon(UIConstants.REFRESH_ICON); this.setSmallIcon("/com/fr/design/images/buttonicon/refresh");
} }
@Override @Override

7
designer-base/src/main/java/com/fr/design/style/color/UIToolbarColorButton.java

@ -3,7 +3,8 @@
*/ */
package com.fr.design.style.color; package com.fr.design.style.color;
import com.fr.base.BaseUtils;
import com.fr.base.svg.IconUtils;
import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserver;
import com.fr.design.event.UIObserverListener; import com.fr.design.event.UIObserverListener;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
@ -34,7 +35,7 @@ public class UIToolbarColorButton extends UICombinationButton implements PopupHi
private UIObserverListener uiObserverListener; private UIObserverListener uiObserverListener;
public UIToolbarColorButton(Icon icon) { public UIToolbarColorButton(Icon icon) {
super(new UIColorButton(icon), new UIButton(BaseUtils.readIcon("/com/fr/design/images/gui/popup.gif"))); super(new UIColorButton(icon), new UIButton(IconUtils.readIcon("/com/fr/design/images/gui/popup")));
getLeftButton().setEventBanned(true); getLeftButton().setEventBanned(true);
getRightButton().addFocusListener(new FocusListener() { getRightButton().addFocusListener(new FocusListener() {
@ -244,4 +245,4 @@ public class UIToolbarColorButton extends UICombinationButton implements PopupHi
public boolean shouldResponseChangeListener() { public boolean shouldResponseChangeListener() {
return true; return true;
} }
} }

4
designer-base/src/main/java/com/fr/design/update/actions/SoftwareUpdateAction.java

@ -1,6 +1,6 @@
package com.fr.design.update.actions; package com.fr.design.update.actions;
import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.os.impl.UpdateDialogAction; import com.fr.design.os.impl.UpdateDialogAction;
import com.fr.stable.os.support.OSBasedAction; import com.fr.stable.os.support.OSBasedAction;
@ -15,7 +15,7 @@ public class SoftwareUpdateAction extends UpdateAction {
public SoftwareUpdateAction() { public SoftwareUpdateAction() {
setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Updater_UpdateAndUpgrade")); setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Updater_UpdateAndUpgrade"));
setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/update/update_new.png")); setSmallIcon("/com/fr/design/images/update/update_new");
} }

BIN
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 B

8
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder_disabled.svg

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_NewFolderIcon_disable</title>
<g id="icon_NewFolderIcon_disable" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.3">
<path d="M7,2 L14,2 C14.55,2 15,2.45 15,3 L15,4.26865267 C14.7056021,4.09786765 14.363952,4 14,4 L9,4 C8.82858946,4 8.52433038,3.81190466 8.44778989,3.65851255 L8.33972031,3.4443888 C8.01577562,2.79516387 7.33247527,2.27587935 6.60444984,2.08202852 C6.7259209,2.02927911 6.85970721,2 7,2 Z M10,14 L2,14 C1.45,14 1,13.55 1,13 L1,4 C1,3.45 1.45,3 2,3 L6,3 C6.55,3 7.201,3.402 7.447,3.895 L7.553,4.105 C7.799,4.598 8.45,5 9,5 L14,5 C14.55,5 15,5.45 15,6 L15,9 L14,9 L14,6 L9,6 C8.07067731,6 7.07334254,5.38343985 6.66027969,4.5556112 L6.55221011,4.34148745 C6.47566962,4.18809534 6.17141054,4 6,4 L2,4 L2,13 L10,13 L10,14 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
<path d="M12.5,8 C12.7761424,8 13,8.22385763 13,8.5 L13,11 L15.5,11 C15.7761424,11 16,11.2238576 16,11.5 C16,11.7761424 15.7761424,12 15.5,12 L13,12 L13,14.5 C13,14.7761424 12.7761424,15 12.5,15 C12.2238576,15 12,14.7761424 12,14.5 L12,12 L9.5,12 C9.22385763,12 9,11.7761424 9,11.5 C9,11.2238576 9.22385763,11 9.5,11 L12,11 L12,8.5 C12,8.22385763 12.2238576,8 12.5,8 Z" id="Combined-Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

8
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder_normal.svg

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_NewFolderIcon_normal</title>
<g id="icon_NewFolderIcon_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M7,2 L14,2 C14.55,2 15,2.45 15,3 L15,4.26865267 C14.7056021,4.09786765 14.363952,4 14,4 L9,4 C8.82858946,4 8.52433038,3.81190466 8.44778989,3.65851255 L8.33972031,3.4443888 C8.01577562,2.79516387 7.33247527,2.27587935 6.60444984,2.08202852 C6.7259209,2.02927911 6.85970721,2 7,2 Z M10,14 L2,14 C1.45,14 1,13.55 1,13 L1,4 C1,3.45 1.45,3 2,3 L6,3 C6.55,3 7.201,3.402 7.447,3.895 L7.553,4.105 C7.799,4.598 8.45,5 9,5 L14,5 C14.55,5 15,5.45 15,6 L15,9 L14,9 L14,6 L9,6 C8.07067731,6 7.07334254,5.38343985 6.66027969,4.5556112 L6.55221011,4.34148745 C6.47566962,4.18809534 6.17141054,4 6,4 L2,4 L2,13 L10,13 L10,14 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
<path d="M12.5,8 C12.7761424,8 13,8.22385763 13,8.5 L13,11 L15.5,11 C15.7761424,11 16,11.2238576 16,11.5 C16,11.7761424 15.7761424,12 15.5,12 L13,12 L13,14.5 C13,14.7761424 12.7761424,15 12.5,15 C12.2238576,15 12,14.7761424 12,14.5 L12,12 L9.5,12 C9.22385763,12 9,11.7761424 9,11.5 C9,11.2238576 9.22385763,11 9.5,11 L12,11 L12,8.5 C12,8.22385763 12.2238576,8 12.5,8 Z" id="Combined-Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/refresh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 B

7
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/refresh_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_刷新_normal</title>
<g id="icon_刷新_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M13.0593807,1 C13.4802225,1 13.8213822,1.34115968 13.8213822,1.76200147 L13.8213822,1.76200147 L13.8213822,5.2534957 C13.8213822,5.67433749 13.4802225,6.01549717 13.0593807,6.01549717 L13.0593807,6.01549717 L9.56788646,6.01549717 C9.14704467,6.01549717 8.80588499,5.67433749 8.80588499,5.2534957 C8.80588499,4.83265391 9.14704467,4.49149423 9.56788646,4.49149423 L9.56788646,4.49149423 L11.169634,4.48959417 C10.8434607,4.27112237 10.4895308,4.09123525 10.1125367,3.95402064 C7.56533579,3.02691531 4.74885407,4.34026231 3.82174874,6.88746326 C2.89464341,9.43466421 4.20799041,12.2511459 6.75519136,13.1782513 C9.30239231,14.1053566 12.118874,12.7920096 13.0459794,10.2448086 C13.1899157,9.84934672 13.6271844,9.64544497 14.0226464,9.78938133 C14.4181083,9.9333177 14.62201,10.3705864 14.4780737,10.7660483 C13.2630956,14.1041731 9.57207646,15.8253236 6.23395166,14.6103456 C2.89582685,13.3953675 1.17467636,9.70434836 2.38965442,6.36622356 C3.60463249,3.02809876 7.29565164,1.30694826 10.6337764,2.52192632 C11.3047108,2.76612647 11.9217951,3.11486447 12.467588,3.55405023 L12.297,3.423 L12.2973792,1.76200147 C12.2973792,1.37622983 12.5840481,1.05741329 12.9559816,1.00695618 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

7
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove_disabled.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_删除_disabled</title>
<g id="icon_删除_disabled" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.3">
<path d="M11,1 L11,3 L15,3 L15,4 L13,4 L13,15 L3,15 L3,4 L1,4 L1,3 L5,3 L5,1 L11,1 Z M12,4 L4,4 L4,14 L12,14 L12,4 Z M7,6 L7,12 L6,12 L6,6 L7,6 Z M10,6 L10,12 L9,12 L9,6 L10,6 Z M10,2 L6,2 L6,3 L10,3 L10,2 Z" id="Combined-Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 610 B

7
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_删除_normal copy</title>
<g id="icon_删除_normal-copy" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M11,1 L11,3 L15,3 L15,4 L13,4 L13,15 L3,15 L3,4 L1,4 L1,3 L5,3 L5,1 L11,1 Z M12,4 L4,4 L4,14 L12,14 L12,4 Z M7,6 L7,12 L6,12 L6,6 L7,6 Z M10,6 L10,12 L9,12 L9,6 L10,6 Z M10,2 L6,2 L6,3 L10,3 L10,2 Z" id="Combined-Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 602 B

BIN
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

7
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename_disabled.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_重命名_disable</title>
<g id="icon_重命名_disable" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.3">
<path d="M16,1.875 L16,14.875 L2,14.875 L2,10.875 L3,10.875 L3,13.875 L10.9999,13.8756 L10.9999,9.8746 L15,9.874 L15,2.875 L11,2.875 L11,1.875 L16,1.875 Z M15.0009,11.8756 L13.9999,11.8756 L13.9999,12.8756 L12.9999,12.8756 L12.9999,13.8756 L15.0009,13.8756 L15.0009,11.8756 Z M13.9379,10.8756 L11.9999,10.8756 L11.9999,12.8756 L12.9999,12.8756 L12.9999,11.8756 L13.9379,11.8756 L13.9379,10.8756 Z M7,1 L7.00095826,3.17100877 C7.10111582,3.20644169 7.1988298,3.24704235 7.29377984,3.2924904 L8.8281,1.757 L10.2421,3.171 L8.70798211,4.70720778 C8.75338867,4.80216052 8.79394842,4.89987512 8.82934116,5.00003141 L11,5 L11,7 L8.82899123,7.00095826 C8.79343547,7.10146305 8.75267608,7.19950728 8.70703675,7.29476726 L10.242,8.8291 L8.828,10.2431 L7.29279222,8.70798211 C7.19815226,8.7532391 7.1007686,8.79368115 7.00095826,8.82899123 L7,11 L5,11 L5.00003141,8.82934116 C4.89952784,8.79382569 4.80148292,8.75310733 4.70622016,8.7075096 L3.1719,10.243 L1.7579,8.829 L3.29201789,7.29279222 C3.2467609,7.19815226 3.20631885,7.1007686 3.17100877,7.00095826 L1,7 L1,5 L3.17065884,5.00003141 C3.20629703,4.89918056 3.24717413,4.80080537 3.29296325,4.70523274 L1.758,3.1709 L3.172,1.7569 L4.70720778,3.29201789 C4.80216052,3.24661133 4.89987512,3.20605158 5.00003141,3.17065884 L5,1 L7,1 Z M6,4 C4.897,4 4,4.897 4,6 C4,7.103 4.897,8 6,8 C7.103,8 8,7.103 8,6 C8,4.897 7.103,4 6,4 Z" id="Combined-Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

7
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_重命名_normal</title>
<g id="icon_重命名_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M16,1.875 L16,14.875 L2,14.875 L2,10.875 L3,10.875 L3,13.875 L10.9999,13.8756 L10.9999,9.8746 L15,9.874 L15,2.875 L11,2.875 L11,1.875 L16,1.875 Z M15.0009,11.8756 L13.9999,11.8756 L13.9999,12.8756 L12.9999,12.8756 L12.9999,13.8756 L15.0009,13.8756 L15.0009,11.8756 Z M13.9379,10.8756 L11.9999,10.8756 L11.9999,12.8756 L12.9999,12.8756 L12.9999,11.8756 L13.9379,11.8756 L13.9379,10.8756 Z M7,1 L7.00095826,3.17100877 C7.10111582,3.20644169 7.1988298,3.24704235 7.29377984,3.2924904 L8.8281,1.757 L10.2421,3.171 L8.70798211,4.70720778 C8.75338867,4.80216052 8.79394842,4.89987512 8.82934116,5.00003141 L11,5 L11,7 L8.82899123,7.00095826 C8.79343547,7.10146305 8.75267608,7.19950728 8.70703675,7.29476726 L10.242,8.8291 L8.828,10.2431 L7.29279222,8.70798211 C7.19815226,8.7532391 7.1007686,8.79368115 7.00095826,8.82899123 L7,11 L5,11 L5.00003141,8.82934116 C4.89952784,8.79382569 4.80148292,8.75310733 4.70622016,8.7075096 L3.1719,10.243 L1.7579,8.829 L3.29201789,7.29279222 C3.2467609,7.19815226 3.20631885,7.1007686 3.17100877,7.00095826 L1,7 L1,5 L3.17065884,5.00003141 C3.20629703,4.89918056 3.24717413,4.80080537 3.29296325,4.70523274 L1.758,3.1709 L3.172,1.7569 L4.70720778,3.29201789 C4.80216052,3.24661133 4.89987512,3.20605158 5.00003141,3.17065884 L5,1 L7,1 Z M6,4 C4.897,4 4,4.897 4,6 C4,7.103 4.897,8 6,8 C7.103,8 8,7.103 8,6 C8,4.897 7.103,4 6,4 Z" id="Combined-Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

7
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list_disabled.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_版本管理_disabled</title>
<g id="icon_版本管理_disabled" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.3">
<path d="M12,13 C12,14.1045695 11.1045695,15 10,15 L10,15 L3,15 C1.8954305,15 1,14.1045695 1,13 L1,13 L1,6 C1,4.8954305 1.8954305,4 3,4 L3,4 L4,4 L4,3 C4,1.8954305 4.8954305,1 6,1 L13,1 C14.1045695,1 15,1.8954305 15,3 L15,10 C15,11.1045695 14.1045695,12 13,12 L12,12 Z M13,2 L6,2 C5.44771525,2 5,2.44771525 5,3 L5,10 C5,10.5522847 5.44771525,11 6,11 L13,11 C13.5522847,11 14,10.5522847 14,10 L14,3 C14,2.44771525 13.5522847,2 13,2 Z M6,12 C4.8954305,12 4,11.1045695 4,10 L4,5 L3,5 C2.44771525,5 2,5.44771525 2,6 L2,6 L2,13 C2,13.5522847 2.44771525,14 3,14 L3,14 L10,14 C10.5522847,14 11,13.5522847 11,13 L11,13 L11,12 L6,12 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

7
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_版本管理_normal</title>
<g id="icon_版本管理_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,13 C12,14.1045695 11.1045695,15 10,15 L10,15 L3,15 C1.8954305,15 1,14.1045695 1,13 L1,13 L1,6 C1,4.8954305 1.8954305,4 3,4 L3,4 L4,4 L4,3 C4,1.8954305 4.8954305,1 6,1 L13,1 C14.1045695,1 15,1.8954305 15,3 L15,10 C15,11.1045695 14.1045695,12 13,12 L12,12 Z M13,2 L6,2 C5.44771525,2 5,2.44771525 5,3 L5,10 C5,10.5522847 5.44771525,11 6,11 L13,11 C13.5522847,11 14,10.5522847 14,10 L14,3 C14,2.44771525 13.5522847,2 13,2 Z M6,12 C4.8954305,12 4,11.1045695 4,10 L4,5 L3,5 C2.44771525,5 2,5.44771525 2,6 L2,6 L2,13 C2,13.5522847 2.44771525,14 3,14 L3,14 L10,14 C10.5522847,14 11,13.5522847 11,13 L11,13 L11,12 L6,12 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

7
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder_disabled.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_打开文件_disable</title>
<g id="icon_打开文件_disable" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.3">
<path d="M16,1 L16,14.937 L0,14.937 L0,1 L16,1 Z M3,4.937 L1,4.937 L1,13.937 L7,13.937 L7.001,12.937 L3,12.937 L3,4.937 Z M9,11.937 L9,13.937 L15,13.937 L15,4.937 L4,4.937 L4,5.937 L9,5.937 L9,7.937 L7,7.937 L7.001,6.937 L4,6.937 L4,8.937 L9,8.937 L9,10.937 L7,10.937 L7.001,9.937 L4,9.937 L4,11.937 L9,11.937 Z M15,1.937 L1,1.937 L1,3.937 L15,3.937 L15,1.937 Z" id="Combined-Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 774 B

7
designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_所在文件夹_normal</title>
<g id="icon_所在文件夹_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M15,1 C15.5522847,1 16,1.44771525 16,2 L16,14 C16,14.5522847 15.5522847,15 15,15 L1,15 C0.44771525,15 0,14.5522847 0,14 L0,2 C0,1.44771525 0.44771525,1 1,1 L15,1 Z M3,5 L1,5 L1,14 L7,14 L7,13 L3,13 L3,5 Z M9,12 L9,14 L15,14 L15,5 L4,5 L4,6 L9,6 L9,8 L7,8 L7,7 L4,7 L4,9 L9,9 L9,11 L7,11 L7,10 L4,10 L4,12 L9,12 Z M15,2 L1,2 L1,4 L15,4 L15,2 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 774 B

7
designer-base/src/main/resources/com/fr/design/images/bbs/bbs_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon/社区/首页_normal</title>
<g id="icon/社区/首页_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M2.41421356,7 L3,7 L3,14 L6,14 L6,10 L10,10 L10,14 L13,14 L13,7 L13.5857864,7 L8,1.41421356 L2.41421356,7 Z M0.341421356,7.65857864 L8,0 L15.6585786,7.65857864 C15.7366835,7.7366835 15.7366835,7.8633165 15.6585786,7.94142136 C15.6210714,7.97892863 15.5702006,8 15.5171573,8 L14,8 L14,15 L9,15 L9,11 L7,11 L7,15 L2,15 L2,8 L0.482842712,8 C0.372385763,8 0.282842712,7.91045695 0.282842712,7.8 C0.282842712,7.7469567 0.303914081,7.69608592 0.341421356,7.65857864 Z" id="Rectangle-148" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 888 B

7
designer-base/src/main/resources/com/fr/design/images/bbs/bug_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon/社区/bug反馈_normal</title>
<g id="icon/社区/bug反馈_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M15.2720866,8.99108296 C15.2720866,9.1455772 15.2157608,9.27952294 15.1031246,9.3929202 C14.9904884,9.50631745 14.8565427,9.56263555 14.7012874,9.56187449 L12.703517,9.56187449 C12.703517,10.5786445 12.5045011,11.4409202 12.1064691,12.1487017 L13.9615416,14.0129068 C14.0741778,14.125543 14.1304959,14.2594888 14.1304959,14.4147441 C14.1304959,14.5699994 14.0741778,14.7039451 13.9615416,14.8165813 C13.8542328,14.9292175 13.720287,14.9855356 13.5597043,14.9855356 C13.3991217,14.9855356 13.2651759,14.9292175 13.1578671,14.8165813 L11.3918381,13.059685 C11.362157,13.0893661 11.3176352,13.12818 11.2582729,13.1761264 C11.1989106,13.2240729 11.0740975,13.3089306 10.8838337,13.4306995 C10.6935698,13.5524683 10.5002618,13.6609187 10.3039095,13.7560506 C10.1075572,13.8511826 9.86363895,13.9375623 9.57215475,14.01519 C9.28067054,14.0928176 8.99223056,14.1316315 8.70683479,14.1316315 L8.70683479,6.14055007 L7.56525174,6.14055007 L7.56525174,14.1316315 C7.2623517,14.1316315 6.96059324,14.0916761 6.65997637,14.0117652 C6.35935949,13.9318544 6.10060067,13.8336783 5.88369989,13.7172368 C5.66679911,13.6007953 5.47044683,13.4847344 5.29464304,13.369054 C5.11883925,13.2533736 4.98945984,13.1567195 4.90650481,13.0790919 L4.77293959,12.9546593 L3.14047582,14.8005991 C3.02175118,14.9254122 2.8790533,14.9878188 2.71238218,14.9878188 C2.57006483,14.9878188 2.44220753,14.9402528 2.32881028,14.8451209 C2.21617408,14.7378121 2.15528965,14.6053884 2.14615699,14.44785 C2.13702433,14.2903115 2.18306818,14.15218 2.28428854,14.0334553 L4.08570661,12.0094286 C3.74094853,11.3313282 3.56856949,10.5166185 3.56856949,9.56529926 L1.57079914,9.56529926 C1.4163049,9.56529926 1.28235916,9.50898116 1.1689619,9.39634497 C1.05556465,9.28370877 0.999246554,9.14976303 1,8.99450773 C1.00076867,8.83925243 1.05708677,8.70530669 1.1689619,8.59267049 C1.28083704,8.48003429 1.41478279,8.42371619 1.57079914,8.42371619 L3.56856949,8.42371619 L3.56856949,5.80149992 L2.0251492,4.25807962 C1.912513,4.14544343 1.8561949,4.01149768 1.8561949,3.85624238 C1.8561949,3.70098709 1.912513,3.56704134 2.0251492,3.45440514 C2.13778539,3.34176895 2.27173114,3.28545085 2.42698644,3.28545085 C2.58224173,3.28545085 2.71618748,3.34176895 2.82882368,3.45440514 L4.37224397,4.99782544 L11.8998426,4.99782544 L13.4432629,3.45440514 C13.5558991,3.34176895 13.6898449,3.28545085 13.8451002,3.28545085 C14.0003555,3.28545085 14.1343012,3.34176895 14.2469374,3.45440514 C14.3595736,3.56704134 14.4158917,3.70098709 14.4158917,3.85624238 C14.4158917,4.01149768 14.3595736,4.14544343 14.2469374,4.25807962 L12.7035171,5.80149992 L12.7035171,8.42371619 L14.7012875,8.42371619 C14.8557817,8.42371619 14.9897274,8.48003429 15.1031247,8.59267049 C15.2165219,8.70530669 15.27284,8.83925243 15.2720866,8.99450773 L15.2720866,8.99108296 Z M10.9911425,3.8539592 L5.2832272,3.8539592 C5.2832272,3.06322266 5.56101241,2.38968866 6.11658283,1.83335719 C6.67215326,1.27702572 7.34568726,0.999240513 8.13718484,1 C8.92868242,1.00076261 9.60221642,1.27854782 10.1577868,1.83335719 C10.7133573,2.38816657 10.9911425,3.06170057 10.9911425,3.8539592 Z" id="Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

7
designer-base/src/main/resources/com/fr/design/images/bbs/center_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon/社区/活动中心_normal</title>
<g id="icon/社区/活动中心_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M5.8,1 C5.91045695,1 6,1.08954305 6,1.2 L6,2 L10,2 L10,1.2 C10,1.08954305 10.0895431,1 10.2,1 L11.8,1 C11.9104569,1 12,1.08954305 12,1.2 L12,2 L14,2 C14.5522847,2 15,2.44771525 15,3 L15,14 C15,14.5522847 14.5522847,15 14,15 L2,15 C1.44771525,15 1,14.5522847 1,14 L1,3 C1,2.44771525 1.44771525,2 2,2 L4,2 L4,1.2 C4,1.08954305 4.08954305,1 4.2,1 L5.8,1 Z M14,3 L2,3 L2,14 L14,14 L14,3 Z M5.8,9 C5.91045695,9 6,9.08954305 6,9.2 L6,10.8 C6,10.9104569 5.91045695,11 5.8,11 L4.2,11 C4.08954305,11 4,10.9104569 4,10.8 L4,9.2 C4,9.08954305 4.08954305,9 4.2,9 L5.8,9 Z M8.8,9 C8.91045695,9 9,9.08954305 9,9.2 L9,10.8 C9,10.9104569 8.91045695,11 8.8,11 L7.2,11 C7.08954305,11 7,10.9104569 7,10.8 L7,9.2 C7,9.08954305 7.08954305,9 7.2,9 L8.8,9 Z M11.8,9 C11.9104569,9 12,9.08954305 12,9.2 L12,10.8 C12,10.9104569 11.9104569,11 11.8,11 L10.2,11 C10.0895431,11 10,10.9104569 10,10.8 L10,9.2 C10,9.08954305 10.0895431,9 10.2,9 L11.8,9 Z M5.8,6 C5.91045695,6 6,6.08954305 6,6.2 L6,7.8 C6,7.91045695 5.91045695,8 5.8,8 L4.2,8 C4.08954305,8 4,7.91045695 4,7.8 L4,6.2 C4,6.08954305 4.08954305,6 4.2,6 L5.8,6 Z M8.8,6 C8.91045695,6 9,6.08954305 9,6.2 L9,7.8 C9,7.91045695 8.91045695,8 8.8,8 L7.2,8 C7.08954305,8 7,7.91045695 7,7.8 L7,6.2 C7,6.08954305 7.08954305,6 7.2,6 L8.8,6 Z M11.8,6 C11.9104569,6 12,6.08954305 12,6.2 L12,7.8 C12,7.91045695 11.9104569,8 11.8,8 L10.2,8 C10.0895431,8 10,7.91045695 10,7.8 L10,6.2 C10,6.08954305 10.0895431,6 10.2,6 L11.8,6 Z" id="形状结合" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

9
designer-base/src/main/resources/com/fr/design/images/bbs/facebook_normal.svg

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_facebook粉丝圈_normal</title>
<g id="icon_facebook粉丝圈_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="icomoonfacebook2" fill="#333334" fill-rule="nonzero">
<path d="M14.5,0 L1.5,0 C0.672484996,0.00219792664 0.00219792664,0.672484996 0,1.5 L0,14.5 C0.00219792664,15.327515 0.672484996,15.9978021 1.5,16 L8,16 L8,9 L6,9 L6,7 L8,7 L8,6 C8.00256968,4.34421132 9.34421132,3.00256968 11,3 L13,3 L13,5 L11,5 C10.4477153,5 10,5.44771525 10,6 L10,7 L13,7 L12.5,9 L10,9 L10,16 L14.5,16 C15.327515,15.9978021 15.9978021,15.327515 16,14.5 L16,1.5 C15.9978021,0.672484996 15.327515,0.00219792664 14.5,0 Z" id="路径"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 905 B

7
designer-base/src/main/resources/com/fr/design/images/bbs/help_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon/社区/帮助文档_normal</title>
<g id="icon/社区/帮助文档_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M13.1428571,1 C13.6142857,1 14,1.39375 14,1.875 L14,1.875 L14,14.125 C14,14.60625 13.6142857,15 13.1428571,15 L13.1428571,15 L2.85714286,15 C2.38571429,15 2,14.60625 2,14.125 L2,14.125 L2,1.875 C2,1.39375 2.38571429,1 2.85714286,1 L2.85714286,1 Z M4,2 L3,2 L3,14 L4,14 L4,2 Z M13,2 L5,2 L5,14 L13,14 L13,2 Z M11,11 L11,12 L7,12 L7,11 L11,11 Z M11,9 L11,10 L7,10 L7,9 L11,9 Z M10.5,4 C10.7761424,4 11,4.22385763 11,4.5 L11,4.5 L11,6.5 C11,6.77614237 10.7761424,7 10.5,7 L10.5,7 L7.5,7 C7.22385763,7 7,6.77614237 7,6.5 L7,6.5 L7,4.5 C7,4.22385763 7.22385763,4 7.5,4 L7.5,4 Z" id="Combined-Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 992 B

7
designer-base/src/main/resources/com/fr/design/images/bbs/need_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon/社区/需求反馈_normal</title>
<g id="icon/社区/需求反馈_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M13.0758389,9.75977829 L14.7397914,11.4242307 L11.4118864,14.7516357 L8.49996964,15.9996 L9.74793398,13.0876832 L13.0758389,9.75977829 Z M13,1 L13,8.42 L12.7847053,8.63674856 L12.0768284,9.34385513 L12.077,9.344 L12,9.42 L12,2 L2,2 L2,14 L8.268,14 L7.84,15 L1,15 L1,1 L13,1 Z M15.1553795,9.34424016 C15.6148663,9.80372704 15.6148663,10.5487057 15.1553795,11.0081926 L13.491427,9.34424016 C13.9509139,8.88525328 14.6958926,8.88525328 15.1553795,9.34424016 Z M8,8 L8,9 L3,9 L3,8 L8,8 Z M11,6 L11,7 L3,7 L3,6 L11,6 Z M11,3 L11,5 L3,5 L3,3 L11,3 Z" id="Combined-Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 963 B

7
designer-base/src/main/resources/com/fr/design/images/bbs/question_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon/社区/问题求助_normal</title>
<g id="icon/社区/问题求助_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M8,1 C11.86575,1 15,4.14762257 15,8.03060058 C15,9.67082164 14.4343113,11.1731005 13.4943112,12.3667764 C13.2764824,12.6414842 13.0569382,12.8824315 12.822125,13.1074719 L13.5110424,13.7061268 L13.5140482,13.829443 C13.5360683,13.8083393 13.5579585,13.7871261 13.579718,13.7658045 L15,15 L7.40325,15 C3.821875,14.6921111 1,11.7083193 1,8.03060058 C1,4.14762257 4.13425,1 8,1 Z M8,2 C4.68739322,2 2,4.69905398 2,8.03060058 C2,11.156684 4.39197001,13.7374333 7.40325,14 L12.3246641,14 L11.3391614,13.1436187 L12.1302018,12.3855008 C13.3178542,11.2472776 14,9.69476956 14,8.03060058 C14,4.69905398 11.3126068,2 8,2 Z M7.644,11.308 C7.88290176,11.308 8.08464923,11.3832279 8.24271068,11.5412893 C8.39608638,11.694665 8.476,11.8892373 8.476,12.116 C8.476,12.3579755 8.3937042,12.553428 8.22757246,12.7057154 C8.06134606,12.8580896 7.8682638,12.936 7.644,12.936 C7.4197362,12.936 7.22665394,12.8580896 7.05728932,12.7027107 C6.89782446,12.5432458 6.824,12.3519733 6.824,12.116 C6.824,11.8776413 6.89929,11.685994 7.05728932,11.5412893 C7.21675418,11.3818245 7.40802665,11.308 7.644,11.308 Z M7.824,4 C8.62306191,4 9.25637141,4.21625203 9.73966253,4.66236725 C10.20762,5.09238226 10.444,5.68490802 10.444,6.428 C10.444,6.9849335 10.2836914,7.47528934 9.96482213,7.89601844 C9.83439467,8.05253139 9.49188194,8.37918705 8.98136199,8.8316823 C8.73225307,9.04682182 8.55658949,9.25365152 8.43809265,9.46687293 C8.29344163,9.71166697 8.224,9.98110049 8.224,10.292 L8.224,10.568 L8.124,10.668 L7.164,10.668 L7.064,10.568 L7.064,10.292 C7.064,9.88163075 7.13905012,9.51888851 7.28938169,9.20571145 C7.46498014,8.82942905 7.86990853,8.36406359 8.52128932,7.78528932 C8.78038614,7.52619251 8.86304576,7.43993899 8.92191312,7.3615305 C9.14935705,7.07722558 9.26,6.78678784 9.26,6.476 C9.26,6.02939509 9.1302719,5.67969326 8.87980118,5.42919054 C8.62961934,5.16813122 8.2647239,5.04 7.776,5.04 C7.20272311,5.04 6.79107378,5.22079193 6.52263183,5.58978216 C6.27310143,5.9073663 6.148,6.3423781 6.148,6.908 L6.048,7.008 L5.1,7.008 L5,6.908 C5,6.03512495 5.24136908,5.34196247 5.73400599,4.82473272 C6.2340788,4.27465264 6.9331946,4 7.824,4 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

7
designer-base/src/main/resources/com/fr/design/images/bbs/sign_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon/社区/报表工程师认证_normal</title>
<g id="icon/社区/报表工程师认证_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M11,1 C11.5522847,1 12,1.44771525 12,2 L12,7 L11,8.05 L11,2 L2,2 L2,14 L6.5,14 L7.64285714,15 L2,15 C1.44771525,15 1,14.5522847 1,14 L1,2 C1,1.44771525 1.44771525,1 2,1 L11,1 Z M12,13.325 L12,14 C12,14.5522847 11.5522847,15 11,15 L10.4047619,15 L12,13.325 Z M14.8448344,6.15342954 C15.0447996,6.36527011 15.0525188,6.71731806 14.8620758,6.93975065 L8.81720991,14 L6.17075455,11.424173 C5.96293623,11.2219009 5.94187748,10.8705282 6.1237185,10.6393601 C6.30555953,10.408192 6.62144084,10.3847672 6.82925915,10.5870393 L8.75423236,12.460639 L14.1379379,6.17260811 C14.3283809,5.95017552 14.6448693,5.94158898 14.8448344,6.15342954 Z M9,7 L9,8 L3,8 L3,7 L9,7 Z M10,5 L10,6 L3,6 L3,5 L10,5 Z M10,3 L10,4 L3,4 L3,3 L10,3 Z" id="形状结合" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

7
designer-base/src/main/resources/com/fr/design/images/bbs/solution_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon/社区/技术方案_normal</title>
<g id="icon/社区/技术方案_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M9,1 L9,2 L14,2 L14,4 L13,4 L13,3 L8,3 L8,2 L2,2 L2,14 L14,14 L14,15 L1,15 L1,1 L9,1 Z M15,5 L15,13 L3,13 L3,5 L15,5 Z M6.26634295,6.58859116 L6.20156691,6.64644661 L4,9 L6.20156691,11.3535534 C6.38421953,11.5488155 6.68035793,11.5488155 6.86301054,11.3535534 C7.02283158,11.182699 7.04280921,10.9189587 6.92294343,10.7248829 L6.86301054,10.6464466 L5.32288726,9 L6.86301054,7.35355339 C7.04566315,7.15829124 7.04566315,6.84170876 6.86301054,6.64644661 C6.72094739,6.49457605 6.51023236,6.46082704 6.33765726,6.54519957 L6.26634295,6.58859116 Z M11.1369895,6.64644661 C10.9543368,6.84170876 10.9543368,7.15829124 11.1369895,7.35355339 L12.6771127,9 L11.1369895,10.6464466 C10.9543368,10.8417088 10.9543368,11.1582912 11.1369895,11.3535534 C11.3196421,11.5488155 11.6157805,11.5488155 11.7984331,11.3535534 L14,9 L11.7984331,6.64644661 C11.6157805,6.45118446 11.3196421,6.45118446 11.1369895,6.64644661 Z M10,7 L9,7 L8,11 L9,11 L10,7 Z" id="形状" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

7
designer-base/src/main/resources/com/fr/design/images/bbs/video_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon/社区/视频教程_normal</title>
<g id="icon/社区/视频教程_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M8,1 C11.8659932,1 15,4.13400675 15,8 C15,11.8659932 11.8659932,15 8,15 C4.13400675,15 1,11.8659932 1,8 C1,4.13400675 4.13400675,1 8,1 Z M8,2 C4.6862915,2 2,4.6862915 2,8 C2,11.3137085 4.6862915,14 8,14 C11.3137085,14 14,11.3137085 14,8 C14,4.6862915 11.3137085,2 8,2 Z M7.24590914,5 C7.3017481,5 7.35592446,5.01892169 7.39952736,5.05365284 L10.9384667,7.87253508 C11.0091675,7.92885063 11.0206304,8.03156938 10.9640697,8.10196382 C10.9565069,8.11137637 10.9479202,8.11992586 10.9384667,8.1274559 L7.39952736,10.9463381 C7.29347611,11.0308115 7.13872736,11.0136917 7.05388636,10.9081 C7.01900404,10.8646861 7,10.8107445 7,10.7551475 L7,5.24484346 C7,5.10962015 7.11009727,5 7.24590914,5 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/absolute_layout_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_绝对画薄块_normal</title>
<g id="icon_绝对画薄块_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M15,1 L15,15 L1,15 L1,1 L15,1 Z M14,8 L1.999,8 L2,14 L14,14 L14,8 Z M14,2 L2,2 L1.999,7 L9,7 L9,2 L10,2 L10,7 L14,7 L14,2 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 555 B

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/card_layout_16_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_tab块_normal</title>
<g id="icon_tab块_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M7,1 L7,2 L15,2 L15,15 L1,15 L1,1 L7,1 Z M6,2 L2,2 L2,14 L14,14 L14,7 L6,7 L6,2 Z M12,11 L12,12 L4,12 L4,11 L12,11 Z M12,9 L12,10 L4,10 L4,9 L12,9 Z M10,3 L7,3 L7,6 L10,6 L10,3 Z M14,3 L11,3 L11,6 L14,6 L14,3 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 624 B

8
designer-base/src/main/resources/com/fr/design/images/buttonicon/new_form3_normal.svg

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_新建表单_normal</title>
<g id="icon_新建表单_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,-8.13151629e-20 L12,0.0008 L15.9998,4.0008 L15.9998,15.9998 L1.9998,15.9998 L1.999,13.9998 L0,14.0004 L0,3.0004 L1.999,2.9998 L1.9998,-0.0002 L12,-8.13151629e-20 Z M15,4.9998 L12,4.9998 L14,7.0004 L14,14.0004 L2.999,13.9998 L2.9998,14.9998 L15.0008,14.9998 L15,4.9998 Z M9,4 L1,4 L1,13 L13,13 L13,8 L9,8 L9,4 Z M4,9 L4,11 L2,11 L2,9 L4,9 Z M12,9 L12,11 L5,11 L5,9 L12,9 Z M4,6 L4,8 L2,8 L2,6 L4,6 Z M8,6 L8,8 L5,8 L5,6 L8,6 Z M12,1.4148 L12,3.9998 L14.586,3.9998 L12,1.4148 Z M11,0.9998 L2.9998,0.9998 L2.999,2.9998 L10,3.0004 L11,3.9998 L11,0.9998 Z" id="Combined-Shape" fill="#333334"></path>
<polygon id="Fill-7" fill="#FFFFFF" points="12 7 10 5 10 7 11 7"></polygon>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

11
designer-base/src/main/resources/com/fr/design/images/buttonicon/newcpts_normal.svg

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_标签栏_工作簿_normal</title>
<g id="icon_标签栏_工作簿_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Group" transform="translate(1.000000, 1.000000)">
<path d="M13,5 L5,5 L5,13 L0,13 L0,0 L13,0 L13,5 Z M4,9 L1,9 L1,12 L4,12 L4,9 Z M4,5 L1,5 L1,8 L4,8 L4,5 Z M12,1 L9,1 L9,4 L12,4 L12,1 Z M8,1 L5,1 L5,4 L8,4 L8,1 Z M4,1 L1,1 L1,4 L4,4 L4,1 Z" id="Combined-Shape" fill="#333334" transform="translate(6.500000, 6.500000) scale(-1, 1) translate(-6.500000, -6.500000) "></path>
<path d="M2,6 L2,9 L4,9 L4,11 L2,11 L2,13 L0,13 L0,7.00292933 C0,6.44902676 0.443864822,6 1,6 L2,6 Z" id="Combined-Shape" fill="#0757A1"></path>
<path d="M3,8 L3,6 L7,6 L7,12.0001925 C7,12.5523709 6.55613518,13 6,13 L5,13 L5,8 L3,8 Z" id="Combined-Shape" fill="#3BAAE0"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/open_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_导入文件_normal</title>
<g id="icon_导入文件_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M13.272,12.787 C13.25,12.875 13.09,13 13,13 L12,13 L7.5,13 L6,13 L4.5,13 L1.387,13 L2.632,9.265 C2.67,9.151 2.879,9 3,9 L6,9 C6.922,9 7.929,8.378 8.341,7.553 L8.447,7.342 C8.523,7.188 8.828,7 9,7 L14.719,7 L13.272,12.787 Z M5,3 C5.038,3 5.072,3.002 5.103,3.005 C5.361,3.603 6.081,4 7,4 L13,4 L13,6 L9,6 C8.45,6 7.798,6.402 7.552,6.894 L7.447,7.105 C7.201,7.598 6.549,8 6,8 L3,8 C2.45,8 1.857,8.427 1.683,8.949 L1,11 L1,3 L5,3 Z M15,6 L14,6 L14,4 C14,3.45 13.549,3 13,3 L7,3 C6.45,3 6,2.775 6,2.5 C6,2.225 5.549,2 5,2 L1,2 C0.45,2 0,2.45 0,3 L0,13 C0,13.55 0.45,14 1,14 L4.5,14 L6,14 L7.5,14 L13,14 C13.549,14 14.108,13.563 14.242,13.03 L15.757,6.97 C15.891,6.436 15.549,6 15,6 L15,6 Z" id="Fill-1" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

8
designer-base/src/main/resources/com/fr/design/images/buttonicon/prewidget_normal.svg

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="30px" height="20px" viewBox="0 0 30 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_控件管理 有小箭头_normal</title>
<g id="icon_控件管理-有小箭头_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M16.0758389,11.7597783 L17.7397914,13.4242307 L14.4118864,16.7516357 L11.4999696,17.9996 L12.747934,15.0876832 L16.0758389,11.7597783 Z M17,3 C17.5522847,3 18,3.44771525 18,4 L18.0005048,10.107534 C17.6771796,10.0020594 17.3340722,9.9742129 17.0003341,10.0239839 L17,4 L5,4 L5,15 L11.697,15 L11.268,16 L5,16 C4.44771525,16 4,15.5522847 4,15 L4,4 C4,3.44771525 4.44771525,3 5,3 L17,3 Z M18,14.577 L18,15 C18,15.5522847 17.5522847,16 17,16 L16.576,16 L18,14.577 Z M18.1553795,11.3442402 C18.6148663,11.803727 18.6148663,12.5487057 18.1553795,13.0081926 L16.491427,11.3442402 C16.9509139,10.8852533 17.6958926,10.8852533 18.1553795,11.3442402 Z M15,10 L15,11.42 L13.42,13 L9,13 L9,10 L15,10 Z M8,10 L8,12 L6,12 L6,10 L8,10 Z M14,11 L10,11 L10,12 L14,12 L14,11 Z M15,6 L15,9 L9,9 L9,6 L15,6 Z M8,6 L8,8 L6,8 L6,6 L8,6 Z M14,7 L10,7 L10,8 L14,8 L14,7 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
<path d="M23.3414214,10.3414214 L27,14 L27,14 L23.3414214,17.6585786 C23.2633165,17.7366835 23.1366835,17.7366835 23.0585786,17.6585786 C23.0210714,17.6210714 23,17.5702006 23,17.5171573 L23,10.4828427 C23,10.3723858 23.0895431,10.2828427 23.2,10.2828427 C23.2530433,10.2828427 23.3039141,10.3039141 23.3414214,10.3414214 Z" id="Rectangle-2" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

8
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_disabled.svg

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_权限编辑_disabled</title>
<g id="icon_属性_权限编辑_disabled" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.3">
<path d="M9,5 C10.1045695,5 11,5.8954305 11,7 C11,7.7398375 10.5982846,8.38584934 10.0010775,8.73181186 L10,11 C10,11.5522847 9.55228475,12 9,12 C8.44771525,12 8,11.5522847 8,11 L7.99992752,8.73239368 C7.40216612,8.38657394 7,7.74025244 7,7 C7,5.8954305 7.8954305,5 9,5 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
<path d="M9,2.36417668 C7.4854345,3.18748636 5.7676434,3.63037957 4,3.6310317 L4,9.0821584 C4,9.45104665 4.17312121,10.0431453 4.5311549,10.7404681 C4.95854929,11.5729051 5.62212701,12.5045187 6.44436469,13.4137689 C7.1880488,14.236172 8.06071333,15.0361293 8.88429196,15.6520343 C8.91798794,15.6531625 8.93413837,15.641016 8.95037407,15.628759 C9.81328106,14.9772657 10.7176871,14.1566565 11.4814426,13.3314693 C12.3377436,12.4063102 13.0263882,11.4692542 13.4666268,10.6435552 C13.8275377,9.96665349 14,9.40512489 14,9.08215841 L14,3.63103171 C12.23235,3.63038272 10.514552,3.18748928 9,2.36417668 Z M14.0038909,1.63103242 C14.3296318,1.63103242 14.7913276,1.56301051 15.3889782,1.4269667 C15.6582471,1.36562643 15.9262313,1.53422973 15.9875275,1.80350869 C15.9958164,1.83992242 16,1.87715012 16,1.91449535 L16,9.08215842 C16,9.77619285 15.7342394,10.6415117 15.2314445,11.584522 C14.7050914,12.5717347 13.9159202,13.645573 12.9492231,14.6900054 C12.1057303,15.6013435 11.1135511,16.5015748 10.1554738,17.2249214 C9.74266787,17.5365673 9.39859373,17.7693418 9.12860813,17.9378543 C8.99842505,18.0191043 8.83359313,18.0208462 8.70184453,17.9421247 C8.43538605,17.7829022 8.09483905,17.5590619 7.68650327,17.2536904 C6.75785014,16.5592065 5.78988933,15.6718988 4.96093887,14.7552039 C4.02753262,13.7230208 3.26367368,12.6506248 2.75195723,11.6539535 C2.26002664,10.695847 2,9.80651646 2,9.0821584 L2,1.91446377 C2,1.63833384 2.22387007,1.4144863 2.5,1.4144863 C2.53734105,1.4144863 2.57456457,1.41866951 2.61097419,1.42695767 C3.20863679,1.56300751 3.67034214,1.63103242 3.99609024,1.63103242 C5.84903947,1.63103242 7.59636348,1.03323193 9,0 C10.4036177,1.03323193 12.1509417,1.63103242 14.0038909,1.63103242 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_权限编辑_normal</title>
<g id="icon_属性_权限编辑_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M9,0 C10.4036177,1.03323193 12.1509417,1.63103242 14.0038909,1.63103242 C14.3296318,1.63103242 14.7913276,1.56301051 15.3889782,1.4269667 C15.6582471,1.36562643 15.9262313,1.53422973 15.9875275,1.80350869 C15.9958164,1.83992242 16,1.87715012 16,1.91449535 L16,9.08215842 C16,9.77619285 15.7342394,10.6415117 15.2314445,11.584522 C14.7050914,12.5717347 13.9159202,13.645573 12.9492231,14.6900054 C12.1057303,15.6013435 11.1135511,16.5015748 10.1554738,17.2249214 C9.74266787,17.5365673 9.39859373,17.7693418 9.12860813,17.9378543 C8.99842505,18.0191043 8.83359313,18.0208462 8.70184453,17.9421247 C8.43538605,17.7829022 8.09483905,17.5590619 7.68650327,17.2536904 C6.75785014,16.5592065 5.78988933,15.6718988 4.96093887,14.7552039 C4.02753262,13.7230208 3.26367368,12.6506248 2.75195723,11.6539535 C2.26002664,10.695847 2,9.80651646 2,9.0821584 L2,1.91446377 C2,1.63833384 2.22387007,1.4144863 2.5,1.4144863 C2.53734105,1.4144863 2.57456457,1.41866951 2.61097419,1.42695767 C3.20863679,1.56300751 3.67034214,1.63103242 3.99609024,1.63103242 C5.84903947,1.63103242 7.59636348,1.03323193 9,0 Z M9,2.36417668 C7.4854345,3.18748636 5.7676434,3.63037957 4,3.6310317 L4,9.0821584 C4,9.45104665 4.17312121,10.0431453 4.5311549,10.7404681 C4.95854929,11.5729051 5.62212701,12.5045187 6.44436469,13.4137689 C7.1880488,14.236172 8.06071333,15.0361293 8.88429196,15.6520343 C8.91798794,15.6531625 8.93413837,15.641016 8.95037407,15.628759 C9.81328106,14.9772657 10.7176871,14.1566565 11.4814426,13.3314693 C12.3377436,12.4063102 13.0263882,11.4692542 13.4666268,10.6435552 C13.8275377,9.96665349 14,9.40512489 14,9.08215841 L14,3.63103171 C12.23235,3.63038272 10.514552,3.18748928 9,2.36417668 Z M9,5 C10.1045695,5 11,5.8954305 11,7 C11,7.7398375 10.5982846,8.38584934 10.0010775,8.73181186 L10,11 C10,11.5522847 9.55228475,12 9,12 C8.44771525,12 8,11.5522847 8,11 L7.99992752,8.73239368 C7.40216612,8.38657394 7,7.74025244 7,7 C7,5.8954305 7.8954305,5 9,5 Z" id="Combined-Shape" fill="#62646E" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_selected.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_权限编辑_selected</title>
<g id="icon_属性_权限编辑_selected" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M9,0 C10.4036177,1.03323193 12.1509417,1.63103242 14.0038909,1.63103242 C14.3296318,1.63103242 14.7913276,1.56301051 15.3889782,1.4269667 C15.6582471,1.36562643 15.9262313,1.53422973 15.9875275,1.80350869 C15.9958164,1.83992242 16,1.87715012 16,1.91449535 L16,9.08215842 C16,9.77619285 15.7342394,10.6415117 15.2314445,11.584522 C14.7050914,12.5717347 13.9159202,13.645573 12.9492231,14.6900054 C12.1057303,15.6013435 11.1135511,16.5015748 10.1554738,17.2249214 C9.74266787,17.5365673 9.39859373,17.7693418 9.12860813,17.9378543 C8.99842505,18.0191043 8.83359313,18.0208462 8.70184453,17.9421247 C8.43538605,17.7829022 8.09483905,17.5590619 7.68650327,17.2536904 C6.75785014,16.5592065 5.78988933,15.6718988 4.96093887,14.7552039 C4.02753262,13.7230208 3.26367368,12.6506248 2.75195723,11.6539535 C2.26002664,10.695847 2,9.80651646 2,9.0821584 L2,1.91446377 C2.00002254,1.63833384 2.22387007,1.4144863 2.5,1.4144863 C2.53734105,1.4144863 2.57456457,1.41866951 2.61097419,1.42695767 C3.20863679,1.56300751 3.67034214,1.63103242 3.99609024,1.63103242 C5.84903947,1.63103242 7.59636348,1.03323193 9,0 Z M9,5 C7.8954305,5 7,5.8954305 7,7 C7,7.7398375 7.40171539,8.38584934 7.9989225,8.73181186 L8,11 C8,11.5522847 8.44771525,12 9,12 C9.55228475,12 10,11.5522847 10,11 L10,11 L10.0000725,8.73239368 C10.5978339,8.38657394 11,7.74025244 11,7 C11,5.8954305 10.1045695,5 9,5 Z" id="Combined-Shape" fill="#419BF9" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_disabled.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_单元格属性_disabled</title>
<g id="icon_属性_单元格属性_disabled" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.3">
<path d="M16,1 C16.5522847,1 17,1.44771525 17,2 L17,5 C17,5.55228475 16.5522847,6 16,6 C15.4477153,6 15,5.55228475 15,5 L15,3 L12,3 L12,5.5 C12,5.77614237 11.7761424,6 11.5,6 C11.2238576,6 11,5.77614237 11,5.5 L11,3 L7,3 L7,6 L8.5,6 C8.77614237,6 9,6.22385763 9,6.5 C9,6.77614237 8.77614237,7 8.5,7 L7,7 L7,8.5 C7,8.77614237 6.77614237,9 6.5,9 C6.22385763,9 6,8.77614237 6,8.5 L6,7 L3,7 L3,11 L5.5,11 C5.77614237,11 6,11.2238576 6,11.5 C6,11.7761424 5.77614237,12 5.5,12 L3,12 L3,15 L5,15 C5.55228475,15 6,15.4477153 6,16 C6,16.5522847 5.55228475,17 5,17 L2,17 C1.44771525,17 1,16.5522847 1,16 L1,2 C1,1.44771525 1.44771525,1 2,1 L16,1 Z M11.8,6.8 C14.5614237,6.8 16.8,9.03857625 16.8,11.8 C16.8,14.5614237 14.5614237,16.8 11.8,16.8 C9.03857625,16.8 6.8,14.5614237 6.8,11.8 C6.8,9.03857625 9.03857625,6.8 11.8,6.8 Z M11.8,10.8 C11.2477153,10.8 10.8,11.2477153 10.8,11.8 L10.8,11.8 L10.8,14.8 C10.8,15.3522847 11.2477153,15.8 11.8,15.8 C12.3522847,15.8 12.8,15.3522847 12.8,14.8 L12.8,14.8 L12.8,11.8 C12.8,11.2477153 12.3522847,10.8 11.8,10.8 Z M11.8,7.8 C11.2477153,7.8 10.8,8.24771525 10.8,8.8 C10.8,9.35228475 11.2477153,9.8 11.8,9.8 C12.3522847,9.8 12.8,9.35228475 12.8,8.8 C12.8,8.24771525 12.3522847,7.8 11.8,7.8 Z M6,3 L3,3 L3,6 L6,6 L6,3 Z" id="Combined-Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_单元格属性_normal</title>
<g id="icon_属性_单元格属性_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M16,1 C16.5522847,1 17,1.44771525 17,2 L17,5 C17,5.55228475 16.5522847,6 16,6 C15.4477153,6 15,5.55228475 15,5 L15,3 L12,3 L12,5.5 C12,5.77614237 11.7761424,6 11.5,6 C11.2238576,6 11,5.77614237 11,5.5 L11,3 L7,3 L7,6 L8.5,6 C8.77614237,6 9,6.22385763 9,6.5 C9,6.77614237 8.77614237,7 8.5,7 L7,7 L7,8.5 C7,8.77614237 6.77614237,9 6.5,9 C6.22385763,9 6,8.77614237 6,8.5 L6,7 L3,7 L3,11 L5.5,11 C5.77614237,11 6,11.2238576 6,11.5 C6,11.7761424 5.77614237,12 5.5,12 L3,12 L3,15 L5,15 C5.55228475,15 6,15.4477153 6,16 C6,16.5522847 5.55228475,17 5,17 L2,17 C1.44771525,17 1,16.5522847 1,16 L1,2 C1,1.44771525 1.44771525,1 2,1 L16,1 Z M11.8,6.8 C14.5614237,6.8 16.8,9.03857625 16.8,11.8 C16.8,14.5614237 14.5614237,16.8 11.8,16.8 C9.03857625,16.8 6.8,14.5614237 6.8,11.8 C6.8,9.03857625 9.03857625,6.8 11.8,6.8 Z M11.8,10.8 C11.2477153,10.8 10.8,11.2477153 10.8,11.8 L10.8,11.8 L10.8,14.8 C10.8,15.3522847 11.2477153,15.8 11.8,15.8 C12.3522847,15.8 12.8,15.3522847 12.8,14.8 L12.8,14.8 L12.8,11.8 C12.8,11.2477153 12.3522847,10.8 11.8,10.8 Z M11.8,7.8 C11.2477153,7.8 10.8,8.24771525 10.8,8.8 C10.8,9.35228475 11.2477153,9.8 11.8,9.8 C12.3522847,9.8 12.8,9.35228475 12.8,8.8 C12.8,8.24771525 12.3522847,7.8 11.8,7.8 Z M6,3 L3,3 L3,6 L6,6 L6,3 Z" id="Combined-Shape" fill="#62646E"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_selected.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_单元格属性_selected</title>
<g id="icon_属性_单元格属性_selected" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M6,13 L6,17 L2,17 C1.44771525,17 1,16.5522847 1,16 L1,13 L6,13 Z M12,7 C14.7614237,7 17,9.23857625 17,12 C17,14.7614237 14.7614237,17 12,17 C9.23857625,17 7,14.7614237 7,12 C7,9.23857625 9.23857625,7 12,7 Z M12,11 C11.4477153,11 11,11.4477153 11,12 L11,12 L11,15 C11,15.5522847 11.4477153,16 12,16 C12.5522847,16 13,15.5522847 13,15 L13,15 L13,12 C13,11.4477153 12.5522847,11 12,11 Z M6,7 L6,12 L1,12 L1,7 L6,7 Z M12,8 C11.4477153,8 11,8.44771525 11,9 C11,9.55228475 11.4477153,10 12,10 C12.5522847,10 13,9.55228475 13,9 C13,8.44771525 12.5522847,8 12,8 Z M6,1 L6,6 L1,6 L1,2 C1,1.44771525 1.44771525,1 2,1 L6,1 Z M12,1 L12,6 L7,6 L7,1 L12,1 Z M16,1 C16.5522847,1 17,1.44771525 17,2 L17,6 L13,6 L13,1 L16,1 Z" id="Combined-Shape" fill="#419BF9"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_disabled.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_单元格元素_disabled</title>
<g id="icon_属性_单元格元素_disabled" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.3">
<path d="M11,11 L11,3 L3,3 L3,11 L11,11 Z M11,13 L8,13 L8,16 C8,16.5522847 7.55228475,17 7,17 C6.44771525,17 6,16.5522847 6,16 L6,13 L3,13 L3,16 C3,16.5522847 2.55228475,17 2,17 C1.44771525,17 1,16.5522847 1,16 L1,1.80000001 C1,1.35817221 1.35817221,1 1.80000001,1 L16,1 C16.5522847,1 17,1.44771525 17,2 C17,2.55228475 16.5522847,3 16,3 L13,3 L13,6 L16,6 C16.5522847,6 17,6.44771525 17,7 C17,7.55228475 16.5522847,8 16,8 L13,8 L13,11 L16,11 C16.5522847,11 17,11.4477153 17,12 C17,12.5522847 16.5522847,13 16,13 L13,13 L13,16 C13,16.5522847 12.5522847,17 12,17 C11.4477153,17 11,16.5522847 11,16 L11,13 Z" id="Combined-Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_单元格元素_normal</title>
<g id="icon_属性_单元格元素_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M11,11 L11,3 L3,3 L3,11 L11,11 Z M11,13 L8,13 L8,16 C8,16.5522847 7.55228475,17 7,17 C6.44771525,17 6,16.5522847 6,16 L6,13 L3,13 L3,16 C3,16.5522847 2.55228475,17 2,17 C1.44771525,17 1,16.5522847 1,16 L1,1.80000001 C1,1.35817221 1.35817221,1 1.80000001,1 L16,1 C16.5522847,1 17,1.44771525 17,2 C17,2.55228475 16.5522847,3 16,3 L13,3 L13,6 L16,6 C16.5522847,6 17,6.44771525 17,7 C17,7.55228475 16.5522847,8 16,8 L13,8 L13,11 L16,11 C16.5522847,11 17,11.4477153 17,12 C17,12.5522847 16.5522847,13 16,13 L13,13 L13,16 C13,16.5522847 12.5522847,17 12,17 C11.4477153,17 11,16.5522847 11,16 L11,13 Z" id="Combined-Shape" fill="#62646E"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1020 B

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_selected.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_单元格元素_selected</title>
<g id="icon_属性_单元格元素_selected" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M6,12 L6,17 L2,17 C1.44771525,17 1,16.5522847 1,16 L1,12 L6,12 Z M11,12 L11,17 L7,17 L7,12 L11,12 Z M17,12 L17,16 C17,16.5522847 16.5522847,17 16,17 L12,17 L12,12 L17,12 Z M11,1 L11,11 L1,11 L1,2 C1,1.44771525 1.44771525,1 2,1 L11,1 Z M17,7 L17,11 L12,11 L12,7 L17,7 Z M16,1 C16.5522847,1 17,1.44771525 17,2 L17,6 L12,6 L12,1 L16,1 Z" id="Combined-Shape" fill="#419BF9"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 763 B

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_disabled.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_条件属性_disabled</title>
<g id="icon_属性_条件属性_disabled" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.3">
<path d="M1,6 L2.5,6 C2.77614237,6 3,5.77614237 3,5.5 C3,5.22385763 2.77614237,5 2.5,5 L0.5,5 C0.361928813,5 0.236928813,5.05596441 0.146446609,5.14644661 C0.0559644063,5.23692881 0,5.36192881 0,5.5 L0,12.5 C0,12.6380712 0.0559644063,12.7630712 0.146446609,12.8535534 C0.236928813,12.9440356 0.361928813,13 0.5,13 L2.5,13 C2.77614237,13 3,12.7761424 3,12.5 C3,12.2238576 2.77614237,12 2.5,12 L1,12 L1,6 Z M5,3 L17,3 C17.5522847,3 18,3.44771525 18,4 L18,7 C18,7.55228475 17.5522847,8 17,8 L5,8 C4.44771525,8 4,7.55228475 4,7 L4,4 C4,3.44771525 4.44771525,3 5,3 Z M5,10 L14,10 C14.5522847,10 15,10.4477153 15,11 L15,14 C15,14.5522847 14.5522847,15 14,15 L5,15 C4.44771525,15 4,14.5522847 4,14 L4,11 C4,10.4477153 4.44771525,10 5,10 Z M6,6 L16,6 L16,5 L6,5 L6,6 Z M6,13 L13,13 L13,12 L6,12 L6,13 Z" id="Combined-Shape" fill="#333334"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_normal.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_条件属性_normal</title>
<g id="icon_属性_条件属性_normal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M1,6 L2.5,6 C2.77614237,6 3,5.77614237 3,5.5 C3,5.22385763 2.77614237,5 2.5,5 L0.5,5 C0.361928813,5 0.236928813,5.05596441 0.146446609,5.14644661 C0.0559644063,5.23692881 0,5.36192881 0,5.5 L0,12.5 C0,12.6380712 0.0559644063,12.7630712 0.146446609,12.8535534 C0.236928813,12.9440356 0.361928813,13 0.5,13 L2.5,13 C2.77614237,13 3,12.7761424 3,12.5 C3,12.2238576 2.77614237,12 2.5,12 L1,12 L1,6 Z M5,3 L17,3 C17.5522847,3 18,3.44771525 18,4 L18,7 C18,7.55228475 17.5522847,8 17,8 L5,8 C4.44771525,8 4,7.55228475 4,7 L4,4 C4,3.44771525 4.44771525,3 5,3 Z M5,10 L14,10 C14.5522847,10 15,10.4477153 15,11 L15,14 C15,14.5522847 14.5522847,15 14,15 L5,15 C4.44771525,15 4,14.5522847 4,14 L4,11 C4,10.4477153 4.44771525,10 5,10 Z M6,6 L16,6 L16,5 L6,5 L6,6 Z M6,13 L13,13 L13,12 L6,12 L6,13 Z" id="Combined-Shape" fill="#62646E"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_selected.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_条件属性_selected</title>
<g id="icon_属性_条件属性_selected" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M14.5,10 C14.7761424,10 15,10.2238576 15,10.5 L15,14.5 C15,14.7761424 14.7761424,15 14.5,15 L4.5,15 C4.22385763,15 4,14.7761424 4,14.5 L4,10.5 C4,10.2238576 4.22385763,10 4.5,10 L14.5,10 Z M2.5,5 C2.77614237,5 3,5.22385763 3,5.5 C3,5.77614237 2.77614237,6 2.5,6 L1,6 L1,12 L2.5,12 C2.77614237,12 3,12.2238576 3,12.5 C3,12.7761424 2.77614237,13 2.5,13 L0.5,13 C0.223857625,13 0,12.7761424 0,12.5 L0,5.5 C0,5.22385763 0.223857625,5 0.5,5 L2.5,5 Z M17.5,3 C17.7761424,3 18,3.22385763 18,3.5 L18,7.5 C18,7.77614237 17.7761424,8 17.5,8 L4.5,8 C4.22385763,8 4,7.77614237 4,7.5 L4,3.5 C4,3.22385763 4.22385763,3 4.5,3 L17.5,3 Z" id="Combined-Shape" fill="#419BF9"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

7
designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_disabled.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon_属性_配置角色_disabled</title>
<g id="icon_属性_配置角色_disabled" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.3">
<path d="M4.01632125,15.58159 C5.15138437,15.8653558 6.77993827,16 8.7625,16 C10.754965,16 12.3653254,15.8634211 13.4725502,15.5731777 C13.9124868,15.4578545 14.231192,15.3277744 14.4125,15.2119576 C14.4125,15.1652894 14.4125,15.1548971 14.4125,15.13125 L14.4125,14.85 C14.4125,14.9557804 14.4200946,14.975694 14.3765447,14.9152512 C14.2506619,14.7405383 14.0239801,14.5217976 13.7118083,14.2899231 C13.0424081,13.792707 12.0970381,13.3197127 11.0993043,12.9850097 C9.49607329,12.6883775 8.50959183,10.7841703 9.20263379,8.70504447 L9.35193628,8.25713697 L9.68578682,7.92328644 C10.4105557,7.19851756 10.925,5.80034921 10.925,4.3875 C10.925,2.77389367 10.1213412,2 8.7625,2 C7.40365881,2 6.6,2.77389367 6.6,4.3875 C6.6,5.80409932 7.11195135,7.20102415 7.83421364,7.92328644 L8.12449186,8.21356466 L8.27695346,8.59471865 C8.89523505,10.1404226 8.35007114,11.5173382 7.22038505,12.3604538 C7.04790989,12.4891767 6.87469271,12.5964931 6.6948119,12.6928413 C6.59686449,12.7453041 6.49795664,12.7935942 6.45442713,12.8138544 L6.32729717,12.8774194 L6.19245547,12.9223666 C5.20751555,13.2506799 4.28915526,13.7335539 3.65828876,14.2481897 C3.38090155,14.4744712 3.18081392,14.6895331 3.06721218,14.8679092 C3.00991736,14.9578729 3,14.9878135 3,14.9625 C3,15.1239178 3,15.1763444 3,15.2063588 C3.20221523,15.3301561 3.54752216,15.4643902 4.01632125,15.58159 Z M11.1000004,9.3375 C10.6500004,10.6875 11.4275,11.025 11.54,11.025 C14.015,11.8125 16.4125,13.3875 16.4125,14.85 L16.4125,15.4125 C16.4125,17.55 12.475,18 8.7625,18 C5.05,18 1.1125,17.55 1,15.525 L1,14.9625 C1,13.3875 3.19749994,11.8125 5.55999994,11.025 C5.78499994,10.9125 6.87000008,10.4625 6.42000008,9.3375 C5.29500008,8.2125 4.6,6.3 4.6,4.3875 C4.6,1.4625 6.5125,0 8.7625,0 C11.0125,0 12.925,1.4625 12.925,4.3875 C12.925,6.3 12.2250004,8.2125 11.1000004,9.3375 Z" id="Combined-Shape" fill="#333334" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save