diff --git a/designer-base/src/main/java/com/fr/base/svg/IconUtils.java b/designer-base/src/main/java/com/fr/base/svg/IconUtils.java new file mode 100644 index 000000000..119471dce --- /dev/null +++ b/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_NORMAL、ICON_TYPE_DISABLED、ICON_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); + } +} diff --git a/designer-base/src/main/java/com/fr/base/svg/SVGIcon.java b/designer-base/src/main/java/com/fr/base/svg/SVGIcon.java new file mode 100644 index 000000000..aebb22ae1 --- /dev/null +++ b/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); + } +} diff --git a/designer-base/src/main/java/com/fr/base/svg/SVGLoader.java b/designer-base/src/main/java/com/fr/base/svg/SVGLoader.java new file mode 100644 index 000000000..3c0b7a036 --- /dev/null +++ b/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; + } + } +} diff --git a/designer-base/src/main/java/com/fr/base/svg/SVGTranscoder.java b/designer-base/src/main/java/com/fr/base/svg/SVGTranscoder.java new file mode 100644 index 000000000..dd47bc575 --- /dev/null +++ b/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 iconMaxSize = new AtomicNotNullLazyValue() { + @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 = "\n" + + " \n" + + " \n" + + " \n" + + "\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); + } +} diff --git a/designer-base/src/main/java/com/fr/base/svg/SystemScaleUtils.java b/designer-base/src/main/java/com/fr/base/svg/SystemScaleUtils.java new file mode 100644 index 000000000..ee289b4c8 --- /dev/null +++ b/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 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; + } +} diff --git a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java index 0ddb74926..ed67299f6 100644 --- a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java +++ b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java @@ -1,6 +1,7 @@ package com.fr.design; import com.fr.common.report.ReportState; +import com.fr.decision.webservice.v10.plugin.helper.PluginErrorRemindHandler; import com.fr.design.data.DesignTableDataManager; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; @@ -35,6 +36,7 @@ import com.fr.process.engine.core.FineProcessContext; import com.fr.rpc.Result; import com.fr.stable.AssistUtils; import com.fr.stable.StringUtils; +import com.fr.env.PluginErrorRemindDialog; import com.fr.start.server.ServerTray; import com.fr.workspace.WorkContext; import com.fr.workspace.WorkContextCallback; @@ -144,6 +146,7 @@ public class EnvChangeEntrance { template.refreshToolArea(); } showServiceDialog(selectedEnv); + pluginErrorRemind(selectedEnv); } catch (WorkspaceAuthException | RegistEditionException e) { // String title = Toolkit.i18nText("Fine-Design_Basic_Remote_Connect_Auth_Failed"); // String title = Toolkit.i18nText("Fine-Design_Basic_Lic_Does_Not_Support_Remote"); @@ -297,6 +300,22 @@ public class EnvChangeEntrance { } } + /** + * 插件启动错误信息提示 + * @param selectedEnv 选择的工作环境 + */ + public void pluginErrorRemind(DesignerWorkspaceInfo selectedEnv) { + if (selectedEnv.getType() == DesignerWorkspaceType.Remote) { + return; + } + + String content = PluginErrorRemindHandler.pluginErrorContent(); + if (StringUtils.isNotEmpty(content)) { + PluginErrorRemindDialog dialog = new PluginErrorRemindDialog(DesignerContext.getDesignerFrame(), content); + dialog.setVisible(true); + } + } + /** * 判断是否需要做版本验证,判断依据为 * 1、选择的环境为远程环境 diff --git a/designer-base/src/main/java/com/fr/design/actions/AllowAuthorityEditAction.java b/designer-base/src/main/java/com/fr/design/actions/AllowAuthorityEditAction.java index 507632c72..1a0509d26 100644 --- a/designer-base/src/main/java/com/fr/design/actions/AllowAuthorityEditAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/AllowAuthorityEditAction.java @@ -1,6 +1,6 @@ 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.design.constants.UIConstants; import com.fr.design.menu.KeySetUtils; @@ -22,7 +22,7 @@ public class AllowAuthorityEditAction extends TemplateComponentAction { this.setMenuKeySet(KeySetUtils.ALLOW_AUTHORITY_EDIT); this.setName(getMenuKeySet().getMenuName()); 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 { } } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/ExitAuthorityEditAction.java b/designer-base/src/main/java/com/fr/design/actions/ExitAuthorityEditAction.java index 44bd365a2..77ae198d0 100644 --- a/designer-base/src/main/java/com/fr/design/actions/ExitAuthorityEditAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/ExitAuthorityEditAction.java @@ -1,6 +1,6 @@ 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.design.data.datapane.TableDataTreePane; import com.fr.design.DesignModelAdapter; @@ -19,7 +19,7 @@ public class ExitAuthorityEditAction extends TemplateComponentAction { public ExitAuthorityEditAction(TargetComponent t) { super(t); 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"); } diff --git a/designer-base/src/main/java/com/fr/design/actions/TableDataSourceAction.java b/designer-base/src/main/java/com/fr/design/actions/TableDataSourceAction.java index a0ca4d955..2903b12a1 100644 --- a/designer-base/src/main/java/com/fr/design/actions/TableDataSourceAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/TableDataSourceAction.java @@ -1,8 +1,7 @@ package com.fr.design.actions; import javax.swing.SwingUtilities; - -import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.data.DesignTableDataManager; import com.fr.data.TableDataSource; import com.fr.design.data.datapane.ReportTableDataPane; @@ -27,7 +26,7 @@ public class TableDataSourceAction extends TemplateComponentAction map) { DesignTableDataManager.fireDSChanged(map); } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/UpdateAction.java b/designer-base/src/main/java/com/fr/design/actions/UpdateAction.java index 4fd7e6c42..1fc6e1444 100644 --- a/designer-base/src/main/java/com/fr/design/actions/UpdateAction.java +++ b/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.ScreenResolution; 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.constants.UIConstants; import com.fr.design.gui.ibutton.UIButton; @@ -78,6 +80,16 @@ public abstract class UpdateAction extends ShortCut implements Action { 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); } + /** + * 使用传入资源url的方式设置Icon,可以自动设置对应的"_normal.svg"、"_disabled.svg" + * 但是要保证文件名的统一,例如a.png对应a_normal.svg、a_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) { 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 public synchronized void addPropertyChangeListener(PropertyChangeListener listener) { @@ -271,6 +304,8 @@ public abstract class UpdateAction extends ShortCut implements Action { UIMenuItem menuItem = new UIMenuItem(this); // 设置名字用作单元测 menuItem.setName(getName()); + setPressedIcon4Button(menuItem); + setDisabledIcon4Button(menuItem); object = menuItem; this.putValue(UIMenuItem.class.getName(), object); @@ -282,6 +317,8 @@ public abstract class UpdateAction extends ShortCut implements Action { UIMenuEastAttrItem menuItem = new UIMenuEastAttrItem(this); // 设置名字用作单元测 menuItem.setName(getName()); + setPressedIcon4Button(menuItem); + setDisabledIcon4Button(menuItem); this.putValue(UIMenuItem.class.getName(), menuItem); return menuItem; } @@ -307,6 +344,8 @@ public abstract class UpdateAction extends ShortCut implements Action { } button.setIcon((Icon) this.getValue(Action.SMALL_ICON)); + setPressedIcon4Button(button); + setDisabledIcon4Button(button); button.addActionListener(this); 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); this.putValue(UseMenuItem.class.getName(), object); } + setPressedIcon4Button((UseMenuItem) object); + setDisabledIcon4Button((UseMenuItem) object); return (UseMenuItem) object; } @@ -594,4 +635,17 @@ public abstract class UpdateAction extends ShortCut implements Action { shortPinyin.append(PinyinHelper.getShortPinyin(title)).append(separator); } -} \ No newline at end of file + 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); + } + } +} diff --git a/designer-base/src/main/java/com/fr/design/actions/community/BBSAction.java b/designer-base/src/main/java/com/fr/design/actions/community/BBSAction.java index 98ad28c9c..05a1d2b20 100644 --- a/designer-base/src/main/java/com/fr/design/actions/community/BBSAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/community/BBSAction.java @@ -1,6 +1,6 @@ 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.menu.MenuKeySet; @@ -13,15 +13,15 @@ import java.awt.event.ActionEvent; public class BBSAction extends UpdateAction { - + public BBSAction() { this.setMenuKeySet(BBS); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/bbs.png")); - + this.setSmallIcon("/com/fr/design/images/bbs/bbs"); + } /** diff --git a/designer-base/src/main/java/com/fr/design/actions/community/BugAction.java b/designer-base/src/main/java/com/fr/design/actions/community/BugAction.java index d9c75321d..cebaa6956 100644 --- a/designer-base/src/main/java/com/fr/design/actions/community/BugAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/community/BugAction.java @@ -1,6 +1,6 @@ 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.menu.MenuKeySet; import com.fr.design.utils.BrowseUtils; @@ -17,8 +17,7 @@ public class BugAction extends UpdateAction { this.setMenuKeySet(BUG); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/bug.png")); - + this.setSmallIcon("/com/fr/design/images/bbs/bug"); } @Override @@ -29,7 +28,7 @@ public void actionPerformed(ActionEvent arg0) } public static final MenuKeySet BUG = new MenuKeySet() { - + @Override public String getMenuName() { return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Community_Bug"); @@ -43,7 +42,7 @@ public void actionPerformed(ActionEvent arg0) @Override public char getMnemonic() { - + return 'U'; } }; diff --git a/designer-base/src/main/java/com/fr/design/actions/community/BugNeedAction.java b/designer-base/src/main/java/com/fr/design/actions/community/BugNeedAction.java index 17ee23b53..74646ef92 100644 --- a/designer-base/src/main/java/com/fr/design/actions/community/BugNeedAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/community/BugNeedAction.java @@ -1,6 +1,6 @@ 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.locale.impl.BugNeedMark; import com.fr.design.menu.MenuKeySet; @@ -20,7 +20,7 @@ public class BugNeedAction extends UpdateAction { this.setMenuKeySet(BugAndNeed); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/need.png")); + this.setSmallIcon("/com/fr/design/images/bbs/need"); } @Override diff --git a/designer-base/src/main/java/com/fr/design/actions/community/CenterAction.java b/designer-base/src/main/java/com/fr/design/actions/community/CenterAction.java index 3ba97c0fc..64288b9c9 100644 --- a/designer-base/src/main/java/com/fr/design/actions/community/CenterAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/community/CenterAction.java @@ -1,6 +1,6 @@ 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.utils.BrowseUtils; import com.fr.general.CloudCenter; @@ -17,7 +17,7 @@ public class CenterAction extends UpAction{ this.setMenuKeySet(CENTER); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/center.png")); + this.setSmallIcon("/com/fr/design/images/bbs/center"); } diff --git a/designer-base/src/main/java/com/fr/design/actions/community/FacebookFansAction.java b/designer-base/src/main/java/com/fr/design/actions/community/FacebookFansAction.java index 9ab799bcc..192d921fa 100644 --- a/designer-base/src/main/java/com/fr/design/actions/community/FacebookFansAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/community/FacebookFansAction.java @@ -1,10 +1,9 @@ package com.fr.design.actions.community; +import com.fr.base.svg.IconUtils; import com.fr.design.menu.MenuKeySet; import com.fr.design.utils.BrowseUtils; import com.fr.general.CloudCenter; -import com.fr.general.IOUtils; - import javax.swing.KeyStroke; import java.awt.event.ActionEvent; @@ -14,7 +13,7 @@ public class FacebookFansAction extends UpAction { this.setMenuKeySet(FACEBOOKFANS); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/bbs/facebook.png")); + this.setSmallIcon("/com/fr/design/images/bbs/facebook"); } @Override diff --git a/designer-base/src/main/java/com/fr/design/actions/community/NeedAction.java b/designer-base/src/main/java/com/fr/design/actions/community/NeedAction.java index c604e51d0..61834547f 100644 --- a/designer-base/src/main/java/com/fr/design/actions/community/NeedAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/community/NeedAction.java @@ -1,6 +1,6 @@ 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.menu.MenuKeySet; import com.fr.design.utils.BrowseUtils; @@ -18,7 +18,7 @@ public class NeedAction extends UpdateAction this.setMenuKeySet(NEED); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/need.png")); + this.setSmallIcon("/com/fr/design/images/bbs/need"); } diff --git a/designer-base/src/main/java/com/fr/design/actions/community/QuestionAction.java b/designer-base/src/main/java/com/fr/design/actions/community/QuestionAction.java index 9a19ef4cc..94234b1bc 100644 --- a/designer-base/src/main/java/com/fr/design/actions/community/QuestionAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/community/QuestionAction.java @@ -1,6 +1,6 @@ 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.menu.MenuKeySet; import com.fr.design.utils.BrowseUtils; @@ -16,7 +16,7 @@ public class QuestionAction extends UpdateAction { this.setMenuKeySet(QUESTIONS); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/question.png")); + this.setSmallIcon("/com/fr/design/images/bbs/question"); } diff --git a/designer-base/src/main/java/com/fr/design/actions/community/SignAction.java b/designer-base/src/main/java/com/fr/design/actions/community/SignAction.java index c08619b23..4944ecc3c 100644 --- a/designer-base/src/main/java/com/fr/design/actions/community/SignAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/community/SignAction.java @@ -1,6 +1,6 @@ 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.menu.MenuKeySet; @@ -19,8 +19,7 @@ public class SignAction extends UpdateAction this.setMenuKeySet(SIGN); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/sign.png")); - + this.setSmallIcon("/com/fr/design/images/bbs/sign"); } @Override diff --git a/designer-base/src/main/java/com/fr/design/actions/community/TechSolutionAction.java b/designer-base/src/main/java/com/fr/design/actions/community/TechSolutionAction.java index a09921609..740ca2387 100644 --- a/designer-base/src/main/java/com/fr/design/actions/community/TechSolutionAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/community/TechSolutionAction.java @@ -1,6 +1,6 @@ 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.menu.MenuKeySet; import com.fr.design.utils.BrowseUtils; @@ -21,7 +21,7 @@ public class TechSolutionAction extends UpdateAction{ this.setMenuKeySet(TSO); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/bbs/solution.png")); + this.setSmallIcon("/com/fr/design/images/bbs/solution"); } diff --git a/designer-base/src/main/java/com/fr/design/actions/community/VideoAction.java b/designer-base/src/main/java/com/fr/design/actions/community/VideoAction.java index f3cb21bc7..62ccf845e 100644 --- a/designer-base/src/main/java/com/fr/design/actions/community/VideoAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/community/VideoAction.java @@ -1,10 +1,10 @@ package com.fr.design.actions.community; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.UpdateAction; import com.fr.design.locale.impl.VideoMark; import com.fr.design.menu.MenuKeySet; import com.fr.design.utils.BrowseUtils; -import com.fr.general.IOUtils; import com.fr.general.locale.LocaleCenter; import com.fr.general.locale.LocaleMark; @@ -20,8 +20,7 @@ public class VideoAction extends UpdateAction this.setMenuKeySet(VIDEO); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/bbs/video.png")); - + this.setSmallIcon("/com/fr/design/images/bbs/video"); } @Override diff --git a/designer-base/src/main/java/com/fr/design/actions/edit/CopyAction.java b/designer-base/src/main/java/com/fr/design/actions/edit/CopyAction.java index a31177374..65f136176 100644 --- a/designer-base/src/main/java/com/fr/design/actions/edit/CopyAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/edit/CopyAction.java @@ -3,7 +3,6 @@ */ package com.fr.design.actions.edit; -import com.fr.base.BaseUtils; import com.fr.design.actions.TemplateComponentAction; import com.fr.design.base.mode.DesignModeContext; 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.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.setEnabled(!DesignModeContext.isBanCopyAndCut()); } @@ -32,4 +31,4 @@ public class CopyAction extends TemplateComponentAction { DesignModeContext.doCopy(getEditingComponent()); return false; } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/edit/CutAction.java b/designer-base/src/main/java/com/fr/design/actions/edit/CutAction.java index c03d5d3de..4da98d733 100644 --- a/designer-base/src/main/java/com/fr/design/actions/edit/CutAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/edit/CutAction.java @@ -3,7 +3,6 @@ */ package com.fr.design.actions.edit; -import com.fr.base.BaseUtils; import com.fr.design.actions.TemplateComponentAction; import com.fr.design.base.mode.DesignModeContext; 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.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.setEnabled(!DesignModeContext.isBanCopyAndCut()); } @@ -35,4 +34,4 @@ public class CutAction extends TemplateComponentAction { public boolean executeActionReturnUndoRecordNeeded() { return DesignModeContext.doCut(getEditingComponent()); } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/edit/PasteAction.java b/designer-base/src/main/java/com/fr/design/actions/edit/PasteAction.java index 6c8a9a515..22093acb7 100644 --- a/designer-base/src/main/java/com/fr/design/actions/edit/PasteAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/edit/PasteAction.java @@ -3,7 +3,6 @@ */ package com.fr.design.actions.edit; -import com.fr.base.BaseUtils; import com.fr.design.actions.TemplateComponentAction; import com.fr.design.base.mode.DesignModeContext; 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.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)); } @@ -33,4 +32,4 @@ public class PasteAction extends TemplateComponentAction { public boolean executeActionReturnUndoRecordNeeded() { return DesignModeContext.doPaste(getEditingComponent()); } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/edit/RedoAction.java b/designer-base/src/main/java/com/fr/design/actions/edit/RedoAction.java index 2d4c99d29..abfd9c045 100644 --- a/designer-base/src/main/java/com/fr/design/actions/edit/RedoAction.java +++ b/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 com.fr.base.BaseUtils; import com.fr.design.DesignerEnvManager; import com.fr.design.actions.TemplateComponentActionInterface; import com.fr.design.actions.UpdateAction; @@ -23,7 +22,7 @@ public class RedoAction extends UpdateAction implements TemplateComponentActionI this.setMenuKeySet(KeySetUtils.REDO); this.setName(getMenuKeySet().getMenuKeySetName()); 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()); } @@ -56,4 +55,4 @@ public class RedoAction extends UpdateAction implements TemplateComponentActionI } } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/edit/UndoAction.java b/designer-base/src/main/java/com/fr/design/actions/edit/UndoAction.java index d775ff955..ff337620c 100644 --- a/designer-base/src/main/java/com/fr/design/actions/edit/UndoAction.java +++ b/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 com.fr.base.BaseUtils; import com.fr.design.DesignerEnvManager; import com.fr.design.actions.TemplateComponentActionInterface; import com.fr.design.actions.UpdateAction; @@ -23,10 +22,10 @@ public class UndoAction extends UpdateAction implements TemplateComponentActionI this.setMenuKeySet(KeySetUtils.UNDO); this.setName(getMenuKeySet().getMenuKeySetName()); 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()); } - + @Override public JTemplate getEditingComponent() { return t; @@ -57,4 +56,4 @@ public class UndoAction extends UpdateAction implements TemplateComponentActionI } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/file/OpenTemplateAction.java b/designer-base/src/main/java/com/fr/design/actions/file/OpenTemplateAction.java index 091fb112a..699119fe5 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/OpenTemplateAction.java +++ b/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 com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.UpdateAction; import com.fr.design.mainframe.DesignerContext; import com.fr.design.menu.KeySetUtils; @@ -17,12 +17,12 @@ import com.fr.file.FILEChooserPane; * Open Template. */ public class OpenTemplateAction extends UpdateAction { - + public OpenTemplateAction() { this.setMenuKeySet(KeySetUtils.OPEN_TEMPLATE); this.setName(getMenuKeySet().getMenuKeySetName()); 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()); } @@ -42,4 +42,4 @@ public class OpenTemplateAction extends UpdateAction { DesignerContext.getDesignerFrame().openTemplate(file); } } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/file/SaveAsTemplateAction.java b/designer-base/src/main/java/com/fr/design/actions/file/SaveAsTemplateAction.java index 5d2ab1570..a60b39762 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/SaveAsTemplateAction.java +++ b/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 com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.JTemplateAction; import com.fr.design.mainframe.JTemplate; import com.fr.design.menu.KeySetUtils; @@ -20,7 +20,7 @@ public class SaveAsTemplateAction extends JTemplateAction> { this.setMenuKeySet(KeySetUtils.SAVE_AS_TEMPLATE); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); 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> { // 另存为按钮应该一直可用使用 this.setEnabled(true); } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/file/SaveTemplateAction.java b/designer-base/src/main/java/com/fr/design/actions/file/SaveTemplateAction.java index de2cf1e42..920f5b41a 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/SaveTemplateAction.java +++ b/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 com.fr.base.BaseUtils; import com.fr.design.actions.JTemplateAction; import com.fr.design.mainframe.JTemplate; import com.fr.design.menu.KeySetUtils; @@ -21,7 +20,7 @@ public class SaveTemplateAction extends JTemplateAction> { this.setMenuKeySet(KeySetUtils.SAVE_TEMPLATE); this.setName(getMenuKeySet().getMenuKeySetName()); 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()); } @@ -42,4 +41,4 @@ public class SaveTemplateAction extends JTemplateAction> { this.setEnabled(!this.getEditingComponent().isSaved()); } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java b/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java index 1e222dd26..bc88f72fd 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java @@ -1,6 +1,6 @@ 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.EnvChangeEntrance; import com.fr.design.actions.UpdateAction; @@ -21,11 +21,11 @@ public class SwitchExistEnv extends MenuDef { initMenuDef(); } - private void initMenuDef() { + private void initMenuDef() { Iterator nameIt = DesignerEnvManager.getEnvManager().getEnvNameIterator(); while (nameIt.hasNext()) { 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(SeparatorDef.DEFAULT); @@ -42,11 +42,11 @@ public class SwitchExistEnv extends MenuDef { DesignerWorkspaceInfo env = DesignerEnvManager.getEnvManager().getWorkspaceInfo(envName); switch (env.getType()) { case Local: { - this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/data/bind/localconnect.png")); + this.setSmallIcon("com/fr/design/images/data/bind/localconnect"); break; } case Remote: { - this.setSmallIcon(BaseUtils.readIcon("com/fr/design/images/data/bind/distanceconnect.png")); + this.setSmallIcon("com/fr/design/images/data/bind/distanceconnect"); break; } } diff --git a/designer-base/src/main/java/com/fr/design/actions/help/TutorialAction.java b/designer-base/src/main/java/com/fr/design/actions/help/TutorialAction.java index 5de31eb31..af0ea605f 100644 --- a/designer-base/src/main/java/com/fr/design/actions/help/TutorialAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/help/TutorialAction.java @@ -1,10 +1,10 @@ package com.fr.design.actions.help; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.UpdateAction; import com.fr.design.menu.MenuKeySet; import com.fr.general.CloudCenter; import com.fr.general.GeneralContext; -import com.fr.general.IOUtils; import com.fr.general.http.HttpToolbox; import com.fr.log.FineLoggerFactory; import com.fr.stable.CommonUtils; @@ -28,7 +28,7 @@ public class TutorialAction extends UpdateAction { this.setMenuKeySet(HELP_TUTORIAL); this.setName(getMenuKeySet().getMenuName()); 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()); } diff --git a/designer-base/src/main/java/com/fr/design/actions/help/WebDemoAction.java b/designer-base/src/main/java/com/fr/design/actions/help/WebDemoAction.java index 613982abd..53ef796b3 100644 --- a/designer-base/src/main/java/com/fr/design/actions/help/WebDemoAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/help/WebDemoAction.java @@ -1,6 +1,6 @@ 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.actions.UpdateAction; import com.fr.design.menu.MenuKeySet; @@ -16,7 +16,7 @@ public class WebDemoAction extends UpdateAction { this.setMenuKeySet(PRODUCT_DEMO); this.setName(getMenuKeySet().getMenuName()); 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 { } }; -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineAction.java b/designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineAction.java index f78d341a5..3dc951578 100644 --- a/designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineAction.java @@ -1,5 +1,6 @@ package com.fr.design.actions.help.alphafine; +import com.fr.base.svg.SVGIcon; import com.fr.design.DesignerEnvManager; import com.fr.design.actions.UpdateAction; 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.DesignerFrame; import com.fr.design.menu.MenuKeySet; -import com.fr.general.IOUtils; import javax.swing.KeyStroke; import java.awt.event.ActionEvent; @@ -21,7 +21,7 @@ public class AlphaFineAction extends UpdateAction { this.setMenuKeySet(ALPHAFINE); this.setName(getMenuKeySet().getMenuName()); 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()); } diff --git a/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java b/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java index 50ecd0ea6..820de79e5 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java @@ -1,5 +1,6 @@ package com.fr.design.actions.server; +import com.fr.base.svg.IconUtils; import com.fr.data.impl.Connection; import com.fr.design.actions.UpdateAction; 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.design.os.impl.DatabaseDialogAction; import com.fr.file.ConnectionConfig; -import com.fr.general.IOUtils; import javax.swing.*; import java.awt.event.ActionEvent; @@ -26,7 +26,7 @@ public class ConnectionListAction extends UpdateAction { this.setMenuKeySet(DEFINE_DATA_CONNECTION); this.setName(getMenuKeySet().getMenuKeySetName()); 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()); } @@ -96,4 +96,4 @@ public class ConnectionListAction extends UpdateAction { public void update() { this.setEnabled(true); } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/server/FunctionManagerAction.java b/designer-base/src/main/java/com/fr/design/actions/server/FunctionManagerAction.java index bbc324ffd..d7f1cdbb7 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/FunctionManagerAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/FunctionManagerAction.java @@ -4,6 +4,7 @@ package com.fr.design.actions.server; +import com.fr.base.svg.IconUtils; import com.fr.config.Configuration; import com.fr.design.actions.UpdateAction; 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.menu.MenuKeySet; import com.fr.file.FunctionConfig; -import com.fr.general.IOUtils; import com.fr.transaction.Configurations; import com.fr.transaction.Worker; @@ -29,7 +29,7 @@ public class FunctionManagerAction extends UpdateAction { this.setMenuKeySet(FUNCTION_MANAGER); this.setName(getMenuKeySet().getMenuKeySetName()+"..."); 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()); } @@ -63,7 +63,7 @@ public class FunctionManagerAction extends UpdateAction { functionManagerPane.populate(mirror); functionManagerDialog.setVisible(true); } - + public void update() { this.setEnabled(true); } @@ -84,4 +84,4 @@ public class FunctionManagerAction extends UpdateAction { return null; } }; -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java b/designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java index c546129e9..d3f035972 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java @@ -3,8 +3,8 @@ */ package com.fr.design.actions.server; -import com.fr.base.BaseUtils; import com.fr.base.ParameterConfig; +import com.fr.base.svg.IconUtils; import com.fr.config.ServerPreferenceConfig; import com.fr.design.DesignModelAdapter; import com.fr.design.actions.UpdateAction; @@ -31,7 +31,7 @@ public class GlobalParameterAction extends UpdateAction { this.setMenuKeySet(GLOBAL_PARAMETER); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); 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; } }; -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java b/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java index 627a862fb..468fb1f98 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java @@ -3,8 +3,8 @@ */ package com.fr.design.actions.server; -import com.fr.base.BaseUtils; import com.fr.base.TableData; +import com.fr.base.svg.IconUtils; import com.fr.design.DesignModelAdapter; import com.fr.design.actions.UpdateAction; import com.fr.design.data.DesignTableDataManager; @@ -40,7 +40,7 @@ public class GlobalTableDataAction extends UpdateAction implements ResponseDataS this.setMenuKeySet(SERVER_TABLEDATA); this.setName(getMenuKeySet().getMenuKeySetName()); 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() { @@ -70,7 +70,7 @@ public class GlobalTableDataAction extends UpdateAction implements ResponseDataS final TableDataConfig tableDataConfig = TableDataConfig.getInstance(); final TableDataManagerPane globalTableDataPane = new TableDataManagerPane() { public void complete() { - + TableDataConfig mirror = tableDataConfig.mirror(); populate(mirror); } @@ -166,4 +166,4 @@ public class GlobalTableDataAction extends UpdateAction implements ResponseDataS public void fireDSChanged(Map map) { DesignTableDataManager.fireDSChanged(map); } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/server/PlatformManagerAction.java b/designer-base/src/main/java/com/fr/design/actions/server/PlatformManagerAction.java index 5f364303a..f62327ad9 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/PlatformManagerAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/PlatformManagerAction.java @@ -1,6 +1,6 @@ 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.menu.MenuKeySet; import com.fr.design.utils.DesignUtils; @@ -14,7 +14,7 @@ public class PlatformManagerAction extends UpdateAction { this.setMenuKeySet(PLATEFORM_MANAGER); this.setName(getMenuKeySet().getMenuKeySetName()); 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; } }; -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/actions/server/PluginManagerAction.java b/designer-base/src/main/java/com/fr/design/actions/server/PluginManagerAction.java index d000dbbbb..bb9339568 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/PluginManagerAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/PluginManagerAction.java @@ -1,9 +1,9 @@ package com.fr.design.actions.server; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.UpdateAction; import com.fr.design.menu.MenuKeySet; 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.OSSupportCenter; @@ -20,7 +20,7 @@ public class PluginManagerAction extends UpdateAction { this.setMenuKeySet(PLUGIN_MANAGER); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/server/plugin.png")); + this.setSmallIcon("/com/fr/design/images/server/plugin"); } @Override public void actionPerformed(ActionEvent e) { @@ -45,4 +45,4 @@ public class PluginManagerAction extends UpdateAction { return null; } }; -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/constants/UIConstants.java b/designer-base/src/main/java/com/fr/design/constants/UIConstants.java index 93dc57a8f..8887f7986 100644 --- a/designer-base/src/main/java/com/fr/design/constants/UIConstants.java +++ b/designer-base/src/main/java/com/fr/design/constants/UIConstants.java @@ -3,6 +3,7 @@ */ package com.fr.design.constants; +import com.fr.base.svg.IconUtils; import com.fr.general.IOUtils; 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 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_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_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"); diff --git a/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java b/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java index 5ba801ca8..83740f685 100644 --- a/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java +++ b/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) { this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview")); this.setMnemonic('p'); - this.setSmallIcon(BaseUtils.readIcon(IconPathConstants.PREVIEW_ICON_PATH)); + this.setSmallIcon("/com/fr/design/images/m_file/preview"); this.dataTree = dataTree; } @@ -437,7 +437,7 @@ public abstract class BasicTableDataTreePane extends DockingView implements Resp public ConnectionTableAction() { this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Server_Define_Data_Connection")); this.setMnemonic('D'); - this.setSmallIcon(BaseUtils.readIcon(IconPathConstants.TD_CONNECTION_ICON_PATH)); + this.setSmallIcon("/com/fr/design/images/m_web/connection"); } } diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java index a2cc5b7d2..539e06665 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java @@ -1,6 +1,5 @@ package com.fr.design.data.datapane; -import com.fr.base.BaseUtils; import com.fr.base.TableData; import com.fr.data.TableDataSource; import com.fr.data.impl.TableDataSourceDependent; @@ -279,7 +278,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { public EditAction() { this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Edit")); 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) { @@ -297,7 +296,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { public RemoveAction() { this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Remove")); this.setMnemonic('R'); - this.setSmallIcon(BaseUtils.readIcon(IconPathConstants.TD_REMOVE_ICON_PATH)); + this.setSmallIcon("/com/fr/design/images/control/remove"); } @Override diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/sqlpane/SQLEditPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/sqlpane/SQLEditPane.java index 3241e0588..1cba4df96 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/sqlpane/SQLEditPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/sqlpane/SQLEditPane.java @@ -1 +1 @@ -package com.fr.design.data.datapane.sqlpane; import com.fr.data.core.DataCoreUtils; import com.fr.data.core.db.TableProcedure; import com.fr.design.actions.UpdateAction; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.ComparatorUtils; import com.fr.log.FineLoggerFactory; import javax.swing.JPopupMenu; import javax.swing.text.BadLocationException; import javax.swing.text.Document; import java.awt.Point; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetAdapter; import java.awt.dnd.DropTargetContext; import java.awt.dnd.DropTargetDragEvent; import java.awt.dnd.DropTargetDropEvent; import java.awt.event.ActionEvent; /** * Created by IntelliJ IDEA. * Author : Richer * Version: 7.0.3 * Date: 13-5-2 * Time: 上午11:09 */ public class SQLEditPane extends RSyntaxTextArea { public static final boolean REQUEST_DROPTARGET = true; public static final boolean UNREQUEST_DROPTARGET = false; public SQLEditPane() { this(REQUEST_DROPTARGET); } public SQLEditPane(boolean requestDroptarget) { super(); setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_SQL); setAnimateBracketMatching(true); setAntiAliasingEnabled(true); setAutoIndentEnabled(true); setCodeFoldingEnabled(true); setUseSelectedTextColor(true); setCloseCurlyBraces(true); setBracketMatchingEnabled(true); setAntiAliasingEnabled(true); setCloseMarkupTags(true); setLineWrap(true); if (requestDroptarget) { new SQLPaneDropTarget(this); } } private static class SQLPaneDropTarget extends DropTargetAdapter { private TableProcedure sqlTable; public SQLPaneDropTarget(SQLEditPane sqlTextPane) { new DropTarget(sqlTextPane, this); } public void dragEnter(DropTargetDragEvent dtde) { dtde.acceptDrag(dtde.getDropAction()); } public void dragOver(DropTargetDragEvent dtde) { dtde.acceptDrag(dtde.getDropAction()); } public void drop(DropTargetDropEvent dtde) { Point p = dtde.getLocation(); DropTargetContext dtc = dtde.getDropTargetContext(); SQLEditPane jTextPane = (SQLEditPane) dtc.getComponent(); try { Transferable tr = dtde.getTransferable(); DataFlavor[] flavors = tr.getTransferDataFlavors(); for (int i = 0; i < flavors.length; i++) { if (!tr.isDataFlavorSupported(flavors[i])) { continue; } dtde.acceptDrop(dtde.getDropAction()); Object userObj = tr.getTransferData(flavors[i]); if (userObj instanceof TableProcedure) { this.sqlTable = (TableProcedure) userObj; JPopupMenu popupMenu = new JPopupMenu(); popupMenu.add(new NameAction(jTextPane, sqlTable).createMenuItem()); if (ComparatorUtils.equals(sqlTable.getType(), TableProcedure.PROCEDURE)) { popupMenu.add(new CallAction(jTextPane, sqlTable).createMenuItem()); } else { popupMenu.add(new SelectAction(jTextPane, sqlTable).createMenuItem()); } GUICoreUtils.showPopupMenu(popupMenu, jTextPane, (int) p.getX() + 1, (int) p.getY() + 1); } dtde.dropComplete(true); } dtde.rejectDrop(); } catch (Exception e) { dtde.rejectDrop(); } } class NameAction extends UpdateAction { private SQLEditPane sqlTextPane; private TableProcedure sqlTable; public NameAction(SQLEditPane sqlTextPane, TableProcedure sqlTable) { this.sqlTextPane = sqlTextPane; this.sqlTable = sqlTable; this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Name")); this.setMnemonic('N'); this.setSmallIcon(null); } public void actionPerformed(ActionEvent evt) { if (sqlTable != null) { insertStringTo(sqlTextPane, sqlTable.toString()); } } } class SelectAction extends UpdateAction { private SQLEditPane sqlTextPane; private TableProcedure sqlTable; public SelectAction(SQLEditPane sqlTextPane, TableProcedure sqlTable) { this.sqlTextPane = sqlTextPane; this.sqlTable = sqlTable; this.setName("SELECT *"); this.setMnemonic('s'); this.setSmallIcon(null); } public void actionPerformed(ActionEvent evt) { //daniel: 添加参数 insertStringTo(sqlTextPane, DataCoreUtils.createSelectSQL(sqlTable.getSchema(), sqlTable.getName(), sqlTable.getDialect())); } } class CallAction extends UpdateAction { private SQLEditPane sqlTextPane; private TableProcedure sqlTable; public CallAction(SQLEditPane sqlTextPane, TableProcedure sqlTable) { this.sqlTextPane = sqlTextPane; this.sqlTable = sqlTable; this.setName("CALL PROCEDURE "); this.setMnemonic('s'); this.setSmallIcon(null); } public void actionPerformed(ActionEvent evt) { StringBuffer sBuf = new StringBuffer(); sBuf.append("{call "); if (sqlTable != null) { sBuf.append(sqlTable.toString()).append("()"); } sBuf.append('}'); insertStringTo(sqlTextPane, sBuf.toString()); } } private void insertStringTo(SQLEditPane sqlTextPane, String str) { Document document = sqlTextPane.getDocument(); try { document.insertString(sqlTextPane.getCaretPosition(), str, null); } catch (BadLocationException badLocationException) { FineLoggerFactory.getLogger().error(badLocationException.getMessage(), badLocationException); } sqlTextPane.requestFocus(); } } } \ No newline at end of file +package com.fr.design.data.datapane.sqlpane; import com.fr.data.core.DataCoreUtils; import com.fr.data.core.db.TableProcedure; import com.fr.design.actions.UpdateAction; import com.fr.design.constants.UIConstants; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.ComparatorUtils; import com.fr.log.FineLoggerFactory; import javax.swing.JPopupMenu; import javax.swing.text.BadLocationException; import javax.swing.text.Document; import java.awt.Point; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetAdapter; import java.awt.dnd.DropTargetContext; import java.awt.dnd.DropTargetDragEvent; import java.awt.dnd.DropTargetDropEvent; import java.awt.event.ActionEvent; /** * Created by IntelliJ IDEA. * Author : Richer * Version: 7.0.3 * Date: 13-5-2 * Time: 上午11:09 */ public class SQLEditPane extends RSyntaxTextArea { public static final boolean REQUEST_DROPTARGET = true; public static final boolean UNREQUEST_DROPTARGET = false; public SQLEditPane() { this(REQUEST_DROPTARGET); } public SQLEditPane(boolean requestDroptarget) { super(); setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_SQL); setAnimateBracketMatching(true); setAntiAliasingEnabled(true); setAutoIndentEnabled(true); setCodeFoldingEnabled(true); setUseSelectedTextColor(true); setCloseCurlyBraces(true); setBracketMatchingEnabled(true); setAntiAliasingEnabled(true); setCloseMarkupTags(true); setLineWrap(true); if (requestDroptarget) { new SQLPaneDropTarget(this); } } private static class SQLPaneDropTarget extends DropTargetAdapter { private TableProcedure sqlTable; public SQLPaneDropTarget(SQLEditPane sqlTextPane) { new DropTarget(sqlTextPane, this); } public void dragEnter(DropTargetDragEvent dtde) { dtde.acceptDrag(dtde.getDropAction()); } public void dragOver(DropTargetDragEvent dtde) { dtde.acceptDrag(dtde.getDropAction()); } public void drop(DropTargetDropEvent dtde) { Point p = dtde.getLocation(); DropTargetContext dtc = dtde.getDropTargetContext(); SQLEditPane jTextPane = (SQLEditPane) dtc.getComponent(); try { Transferable tr = dtde.getTransferable(); DataFlavor[] flavors = tr.getTransferDataFlavors(); for (int i = 0; i < flavors.length; i++) { if (!tr.isDataFlavorSupported(flavors[i])) { continue; } dtde.acceptDrop(dtde.getDropAction()); Object userObj = tr.getTransferData(flavors[i]); if (userObj instanceof TableProcedure) { this.sqlTable = (TableProcedure) userObj; JPopupMenu popupMenu = new JPopupMenu(); popupMenu.add(new NameAction(jTextPane, sqlTable).createMenuItem()); if (ComparatorUtils.equals(sqlTable.getType(), TableProcedure.PROCEDURE)) { popupMenu.add(new CallAction(jTextPane, sqlTable).createMenuItem()); } else { popupMenu.add(new SelectAction(jTextPane, sqlTable).createMenuItem()); } GUICoreUtils.showPopupMenu(popupMenu, jTextPane, (int) p.getX() + 1, (int) p.getY() + 1); } dtde.dropComplete(true); } dtde.rejectDrop(); } catch (Exception e) { dtde.rejectDrop(); } } class NameAction extends UpdateAction { private SQLEditPane sqlTextPane; private TableProcedure sqlTable; public NameAction(SQLEditPane sqlTextPane, TableProcedure sqlTable) { this.sqlTextPane = sqlTextPane; this.sqlTable = sqlTable; this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Name")); this.setMnemonic('N'); this.setSmallIcon(UIConstants.BLACK_ICON); } public void actionPerformed(ActionEvent evt) { if (sqlTable != null) { insertStringTo(sqlTextPane, sqlTable.toString()); } } } class SelectAction extends UpdateAction { private SQLEditPane sqlTextPane; private TableProcedure sqlTable; public SelectAction(SQLEditPane sqlTextPane, TableProcedure sqlTable) { this.sqlTextPane = sqlTextPane; this.sqlTable = sqlTable; this.setName("SELECT *"); this.setMnemonic('s'); this.setSmallIcon(UIConstants.BLACK_ICON); } public void actionPerformed(ActionEvent evt) { //daniel: 添加参数 insertStringTo(sqlTextPane, DataCoreUtils.createSelectSQL(sqlTable.getSchema(), sqlTable.getName(), sqlTable.getDialect())); } } class CallAction extends UpdateAction { private SQLEditPane sqlTextPane; private TableProcedure sqlTable; public CallAction(SQLEditPane sqlTextPane, TableProcedure sqlTable) { this.sqlTextPane = sqlTextPane; this.sqlTable = sqlTable; this.setName("CALL PROCEDURE "); this.setMnemonic('s'); this.setSmallIcon(UIConstants.BLACK_ICON); } public void actionPerformed(ActionEvent evt) { StringBuffer sBuf = new StringBuffer(); sBuf.append("{call "); if (sqlTable != null) { sBuf.append(sqlTable.toString()).append("()"); } sBuf.append('}'); insertStringTo(sqlTextPane, sBuf.toString()); } } private void insertStringTo(SQLEditPane sqlTextPane, String str) { Document document = sqlTextPane.getDocument(); try { document.insertString(sqlTextPane.getCaretPosition(), str, null); } catch (BadLocationException badLocationException) { FineLoggerFactory.getLogger().error(badLocationException.getMessage(), badLocationException); } sqlTextPane.requestFocus(); } } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/extra/PluginOperateUtils.java b/designer-base/src/main/java/com/fr/design/extra/PluginOperateUtils.java index 801b4e369..113815a22 100644 --- a/designer-base/src/main/java/com/fr/design/extra/PluginOperateUtils.java +++ b/designer-base/src/main/java/com/fr/design/extra/PluginOperateUtils.java @@ -18,6 +18,7 @@ import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; import com.fr.plugin.context.PluginContext; import com.fr.plugin.context.PluginMarker; +import com.fr.plugin.context.PluginMarkerAdapter; import com.fr.plugin.manage.PluginManager; import com.fr.plugin.manage.control.PluginControllerHelper; import com.fr.plugin.manage.control.PluginTask; @@ -26,7 +27,8 @@ import com.fr.plugin.manage.control.PluginTaskResult; import com.fr.plugin.view.PluginView; import com.fr.stable.StringUtils; -import javax.swing.*; +import javax.swing.JOptionPane; +import javax.swing.SwingUtilities; import java.io.File; import java.net.HttpURLConnection; import java.util.List; @@ -38,11 +40,23 @@ import java.util.List; public class PluginOperateUtils { public static void installPluginOnline(final PluginMarker pluginMarker, JSCallback jsCallback) { + PluginMarker marker = updateMarker2Online(pluginMarker); //下载插件 - PluginTask pluginTask = PluginTask.installTask(pluginMarker); + PluginTask pluginTask = PluginTask.installTask(marker); PluginControllerHelper.installOnline(pluginMarker, new InstallOnlineCallback(pluginTask, jsCallback)); } + public static PluginMarker updateMarker2Online(PluginMarker pluginMarker) { + try { + JSONObject latestPluginInfo = PluginUtils.getLatestPluginInfo(pluginMarker.getPluginID()); + String pluginName = latestPluginInfo.getString("name"); + return PluginMarkerAdapter.create(pluginMarker, pluginName); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return pluginMarker; + } + public static void installPluginFromDisk(File zipFile, JSCallback jsCallback) { PluginManager.getController().install(zipFile, new InstallFromDiskCallback(zipFile, jsCallback)); } @@ -57,10 +71,11 @@ public class PluginOperateUtils { public static void updatePluginOnline(PluginMarker pluginMarker, JSCallback jsCallback) { try { JSONObject latestPluginInfo = PluginUtils.getLatestPluginInfo(pluginMarker.getPluginID()); - String latestPluginVersion = (String) latestPluginInfo.get("version"); - PluginMarker toPluginMarker = PluginMarker.create(pluginMarker.getPluginID(), latestPluginVersion); + String latestPluginVersion = latestPluginInfo.getString("version"); + String pluginName = latestPluginInfo.getString("name"); + PluginMarker toPluginMarker = PluginMarkerAdapter.create(pluginMarker.getPluginID(), latestPluginVersion, pluginName); //当前已经安装的相同ID插件marker - PluginMarker currentMarker = PluginUtils.getInstalledPluginMarkerByID(pluginMarker.getPluginID()); + PluginMarker currentMarker = PluginMarkerAdapter.create(PluginUtils.getInstalledPluginMarkerByID(pluginMarker.getPluginID()), pluginName); PluginTask pluginTask = PluginTask.updateTask(currentMarker, toPluginMarker); PluginControllerHelper.updateOnline(currentMarker, toPluginMarker, new UpdateOnlineCallback(pluginTask, jsCallback)); } catch (Exception e) { @@ -128,6 +143,10 @@ public class PluginOperateUtils { } public static void dealParams(StringBuilder url, String category, String seller, String fee, String scope) { + dealParams(url, category, seller, fee, StringUtils.EMPTY); + } + + public static void dealParams(StringBuilder url, String category, String seller, String fee, String scope, String language) { if (StringUtils.isNotBlank(category)) { url.append("cid=").append(category.split("-")[1]); } else { @@ -169,6 +188,9 @@ public class PluginOperateUtils { url.append("&scope=").append(StringUtils.EMPTY); } } + if (StringUtils.isNotBlank(language)) { + url.append("&language=").append(language.split("-")[1]); + } } public static void getLoginInfo(JSCallback jsCallback, UILabel uiLabel) { @@ -203,16 +225,22 @@ public class PluginOperateUtils { continue; } PluginMarker pluginMarker = pluginTask.getToMarker(); - PluginContext pluginContext = PluginManager.getContext(pluginMarker); - if (pluginContext != null) { - pluginInfo.append(pluginContext.getName()).append(PluginUtils.getMessageByErrorCode(pluginTaskResult.errorCode())); - } else { - pluginInfo.append(pluginMarker.getPluginID()).append(PluginUtils.getMessageByErrorCode(pluginTaskResult.errorCode())); - } + PluginContext pluginContext = PluginManager.getContext(pluginMarker.getPluginID()); + pluginInfo.append(getPluginName(pluginContext, pluginMarker)).append(PluginUtils.getMessageByErrorCode(pluginTaskResult.errorCode())); } return pluginInfo.toString(); } + private static String getPluginName(PluginContext pluginContext, PluginMarker pluginMarker) { + if (pluginContext != null) { + return pluginContext.getName(); + } + else if (pluginMarker instanceof PluginMarkerAdapter) { + return ((PluginMarkerAdapter) pluginMarker).getPluginName(); + } + return pluginMarker == null ? StringUtils.EMPTY : pluginMarker.getPluginID(); + } + public static String getSwitchedInfo(PluginTaskResult result) { StringBuilder pluginInfo = new StringBuilder(); List pluginTaskResults = result.asList(); diff --git a/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java b/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java index bec02a200..ed7253bad 100644 --- a/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java +++ b/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java @@ -10,6 +10,7 @@ import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; import com.fr.plugin.PluginVerifyException; import com.fr.plugin.basic.version.Version; +import com.fr.plugin.basic.version.VersionIntervalType; import com.fr.plugin.basic.version.VersionIntervalFactory; import com.fr.plugin.context.PluginContext; import com.fr.plugin.context.PluginMarker; diff --git a/designer-base/src/main/java/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java b/designer-base/src/main/java/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java index 3bf7b2cb3..b3d66d510 100644 --- a/designer-base/src/main/java/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java +++ b/designer-base/src/main/java/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java @@ -21,19 +21,26 @@ public class GetPluginFromStoreExecutor implements Executor { private String seller; private String fee; private String scope; + private String language; public GetPluginFromStoreExecutor(JSONObject info) { this.category = info.optString("categories"); this.fee = info.optString("fee"); this.seller = info.optString("seller"); this.scope = info.optString("scope"); + this.language = info.optString("language"); } public GetPluginFromStoreExecutor(String category, String seller, String fee, String scope) { + this(category, seller, fee, scope, StringUtils.EMPTY); + } + + public GetPluginFromStoreExecutor(String category, String seller, String fee, String scope, String language) { this.category = category; this.seller = seller; this.fee = fee; this.scope = scope; + this.language = language; } @Override @@ -53,7 +60,7 @@ public class GetPluginFromStoreExecutor implements Executor { @Override public void run(Process process) { String plistUrl = CloudCenter.getInstance().acquireUrlByKind("shop.plugin.plist"); - boolean getRecommend = StringUtils.isEmpty(category) && StringUtils.isEmpty(seller) && StringUtils.isEmpty(fee) && StringUtils.isEmpty(scope); + boolean getRecommend = StringUtils.isEmpty(category) && StringUtils.isEmpty(seller) && StringUtils.isEmpty(fee) && StringUtils.isEmpty(scope) & StringUtils.isEmpty(language); if (getRecommend) { result = PluginOperateUtils.getRecommendPlugins(); return; @@ -62,7 +69,7 @@ public class GetPluginFromStoreExecutor implements Executor { if (StringUtils.isNotBlank(plistUrl)) { StringBuilder url = new StringBuilder(); url.append(plistUrl).append("?"); - PluginOperateUtils.dealParams(url, category, seller, fee, scope); + PluginOperateUtils.dealParams(url, category, seller, fee, scope, language); try { HttpClient httpClient = new HttpClient(url.toString()); httpClient.asGet(); diff --git a/designer-base/src/main/java/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java b/designer-base/src/main/java/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java index 19bd89ef1..81e76fa45 100644 --- a/designer-base/src/main/java/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java +++ b/designer-base/src/main/java/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java @@ -3,7 +3,7 @@ package com.fr.design.extra.exe.callback; import com.fr.design.bridge.exec.JSCallback; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.extra.PluginOperateUtils; -import com.fr.design.extra.PluginUtils; +import com.fr.design.i18n.Toolkit; import com.fr.log.FineLoggerFactory; import com.fr.plugin.context.PluginMarker; @@ -12,7 +12,6 @@ import com.fr.plugin.manage.PluginManager; import com.fr.plugin.manage.control.PluginTask; import com.fr.plugin.manage.control.PluginTaskResult; -import javax.swing.*; import java.io.File; import java.util.List; @@ -41,20 +40,21 @@ public class InstallFromDiskCallback extends AbstractPluginTaskCallback { if (result.isSuccess()) { String switchedInfo = PluginOperateUtils.getSwitchedInfo(result); jsCallback.execute("success"); - FineLoggerFactory.getLogger().info(pluginInfo + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Install_Success") + switchedInfo); - FineJOptionPane.showMessageDialog(null, pluginInfo + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Install_Success") + switchedInfo); + String successInfo = pluginInfo + Toolkit.i18nText("Fine-Design_Basic_Plugin_Install_Success") + switchedInfo; + FineLoggerFactory.getLogger().info(successInfo); + FineJOptionPane.showMessageDialog(null, successInfo); } else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) { - int rv = JOptionPane.showOptionDialog( + int rv = FineJOptionPane.showOptionDialog( null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Install_Dependence"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.INFORMATION_MESSAGE, + FineJOptionPane.YES_NO_CANCEL_OPTION, + FineJOptionPane.INFORMATION_MESSAGE, null, FineJOptionPane.OPTION_YES_NO_CANCEL, null ); - if (rv == JOptionPane.NO_OPTION || rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { + if (rv == FineJOptionPane.NO_OPTION || rv == FineJOptionPane.CANCEL_OPTION || rv == FineJOptionPane.CLOSED_OPTION) { return; } List pluginTasks = result.getPreTasks(); @@ -64,24 +64,24 @@ public class InstallFromDiskCallback extends AbstractPluginTaskCallback { } PluginManager.getController().install(zipFile, new InstallFromDiskCallback(zipFile, jsCallback)); } else if(result.errorCode() == PluginErrorCode.HasLowerPluginWhenInstall){ - int rv = JOptionPane.showOptionDialog( + int rv = FineJOptionPane.showOptionDialog( null, - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Has_Install_Lower"), - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.INFORMATION_MESSAGE, + Toolkit.i18nText("Fine-Design_Basic_Plugin_Has_Install_Lower"), + Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), + FineJOptionPane.YES_NO_CANCEL_OPTION, + FineJOptionPane.INFORMATION_MESSAGE, null, FineJOptionPane.OPTION_YES_NO_CANCEL, null ); - if (rv == JOptionPane.NO_OPTION || rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { + if (rv == FineJOptionPane.NO_OPTION || rv == FineJOptionPane.CANCEL_OPTION || rv == FineJOptionPane.CLOSED_OPTION) { return; } PluginOperateUtils.updatePluginFromDisk(zipFile, jsCallback); }else { jsCallback.execute("failed"); - FineLoggerFactory.getLogger().info(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Install_Failed")); - FineJOptionPane.showMessageDialog(null, PluginUtils.getMessageByErrorCode(result.errorCode()), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Install_Failed"), JOptionPane.ERROR_MESSAGE); + FineLoggerFactory.getLogger().info(Toolkit.i18nText("Fine-Design_Basic_Plugin_Install_Failed")); + FineJOptionPane.showMessageDialog(null, pluginInfo, Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), FineJOptionPane.ERROR_MESSAGE); } } } diff --git a/designer-base/src/main/java/com/fr/design/extra/exe/callback/InstallOnlineCallback.java b/designer-base/src/main/java/com/fr/design/extra/exe/callback/InstallOnlineCallback.java index f597180e8..c7059f50d 100644 --- a/designer-base/src/main/java/com/fr/design/extra/exe/callback/InstallOnlineCallback.java +++ b/designer-base/src/main/java/com/fr/design/extra/exe/callback/InstallOnlineCallback.java @@ -3,6 +3,7 @@ package com.fr.design.extra.exe.callback; import com.fr.design.bridge.exec.JSCallback; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.extra.PluginOperateUtils; +import com.fr.design.i18n.Toolkit; import com.fr.log.FineLoggerFactory; import com.fr.plugin.context.PluginMarker; @@ -11,8 +12,6 @@ import com.fr.plugin.manage.control.AbstractDealPreTaskCallback; import com.fr.plugin.manage.control.PluginTask; import com.fr.plugin.manage.control.PluginTaskResult; -import javax.swing.*; - /** * Created by ibm on 2017/5/26. @@ -38,28 +37,30 @@ public class InstallOnlineCallback extends AbstractDealPreTaskCallback { if (result.isSuccess()) { String switchedInfo = PluginOperateUtils.getSwitchedInfo(result); jsCallback.execute("success"); - FineLoggerFactory.getLogger().info(pluginInfo + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Install_Success") + switchedInfo); - FineJOptionPane.showMessageDialog(null, pluginInfo + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Install_Success") + switchedInfo); + String successInfo = pluginInfo + Toolkit.i18nText("Fine-Design_Basic_Plugin_Install_Success") + switchedInfo; + FineLoggerFactory.getLogger().info(successInfo); + FineJOptionPane.showMessageDialog(null, successInfo); } else if(result.errorCode() == PluginErrorCode.HasLowerPluginWhenInstall){ - int rv = JOptionPane.showOptionDialog( + int rv = FineJOptionPane.showOptionDialog( null, - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Has_Install_Lower"), - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.INFORMATION_MESSAGE, + Toolkit.i18nText("Fine-Design_Basic_Plugin_Has_Install_Lower"), + Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), + FineJOptionPane.YES_NO_CANCEL_OPTION, + FineJOptionPane.INFORMATION_MESSAGE, null, FineJOptionPane.OPTION_YES_NO_CANCEL, null ); - if (rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { + if (rv == FineJOptionPane.NO_OPTION || rv == FineJOptionPane.CANCEL_OPTION || rv == FineJOptionPane.CLOSED_OPTION) { + jsCallback.execute("success"); return; } PluginMarker pluginMarker = result.getCurrentTask().getMarker(); PluginOperateUtils.updatePluginOnline(pluginMarker, jsCallback); - }else { + } else { jsCallback.execute("failed"); - FineLoggerFactory.getLogger().info(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Install_Failed")); - FineJOptionPane.showMessageDialog(null, pluginInfo, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), JOptionPane.ERROR_MESSAGE); + FineLoggerFactory.getLogger().info(Toolkit.i18nText("Fine-Design_Basic_Plugin_Install_Failed")); + FineJOptionPane.showMessageDialog(null, pluginInfo, Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), FineJOptionPane.ERROR_MESSAGE); } } diff --git a/designer-base/src/main/java/com/fr/design/extra/exe/callback/ModifyStatusCallback.java b/designer-base/src/main/java/com/fr/design/extra/exe/callback/ModifyStatusCallback.java index c48a47fae..8015e00fb 100644 --- a/designer-base/src/main/java/com/fr/design/extra/exe/callback/ModifyStatusCallback.java +++ b/designer-base/src/main/java/com/fr/design/extra/exe/callback/ModifyStatusCallback.java @@ -2,12 +2,14 @@ package com.fr.design.extra.exe.callback; import com.fr.design.bridge.exec.JSCallback; import com.fr.design.dialog.FineJOptionPane; -import com.fr.design.extra.PluginUtils; +import com.fr.design.extra.PluginOperateUtils; +import com.fr.design.i18n.Toolkit; +import com.fr.log.FineLoggerFactory; import com.fr.plugin.manage.control.PluginTaskCallback; import com.fr.plugin.manage.control.PluginTaskResult; -import javax.swing.*; +import javax.swing.JOptionPane; /** * Created by ibm on 2017/5/27. @@ -22,12 +24,16 @@ public class ModifyStatusCallback implements PluginTaskCallback{ } @Override public void done(PluginTaskResult result) { + String pluginInfo = PluginOperateUtils.getSuccessInfo(result); if (result.isSuccess()) { jsCallback.execute("success"); - String modifyMessage = isActive ? com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Has_Been_Disabled_Duplicate") : com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Plugin_Has_Been_Actived_Duplicate"); + String modifyMessage = isActive ? + pluginInfo + Toolkit.i18nText("Fine-Design_Basic_Plugin_Has_Been_Disabled_Duplicate") : + pluginInfo + Toolkit.i18nText("Fine-Design_Plugin_Has_Been_Actived_Duplicate"); + FineLoggerFactory.getLogger().info(modifyMessage); FineJOptionPane.showMessageDialog(null, modifyMessage); } else { - FineJOptionPane.showMessageDialog(null, PluginUtils.getMessageByErrorCode(result.errorCode()), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), JOptionPane.ERROR_MESSAGE); + FineJOptionPane.showMessageDialog(null, pluginInfo, Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), JOptionPane.ERROR_MESSAGE); } } diff --git a/designer-base/src/main/java/com/fr/design/extra/exe/callback/UninstallPluginCallback.java b/designer-base/src/main/java/com/fr/design/extra/exe/callback/UninstallPluginCallback.java index b3773ef6f..df3839427 100644 --- a/designer-base/src/main/java/com/fr/design/extra/exe/callback/UninstallPluginCallback.java +++ b/designer-base/src/main/java/com/fr/design/extra/exe/callback/UninstallPluginCallback.java @@ -2,7 +2,8 @@ package com.fr.design.extra.exe.callback; import com.fr.design.bridge.exec.JSCallback; import com.fr.design.dialog.FineJOptionPane; -import com.fr.design.extra.PluginUtils; +import com.fr.design.extra.PluginOperateUtils; +import com.fr.design.i18n.Toolkit; import com.fr.log.FineLoggerFactory; import com.fr.plugin.context.PluginMarker; @@ -10,8 +11,6 @@ import com.fr.plugin.error.PluginErrorCode; import com.fr.plugin.manage.PluginManager; import com.fr.plugin.manage.control.PluginTaskResult; -import javax.swing.*; - /** * Created by ibm on 2017/5/27. */ @@ -25,29 +24,31 @@ public class UninstallPluginCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { + String pluginInfo = PluginOperateUtils.getSuccessInfo(result); if (result.isSuccess()) { jsCallback.execute("success"); - FineLoggerFactory.getLogger().info(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Delete_Success")); - FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Delete_Success")); + String successInfo = pluginInfo + Toolkit.i18nText("Fine-Design_Basic_Plugin_Delete_Success"); + FineLoggerFactory.getLogger().info(successInfo); + FineJOptionPane.showMessageDialog(null, successInfo); }else if (result.errorCode() == PluginErrorCode.NeedUninstallDependingPluginFirst) { - int rv = JOptionPane.showOptionDialog( + int rv = FineJOptionPane.showOptionDialog( null, - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Delete_Dependence"), - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.INFORMATION_MESSAGE, + Toolkit.i18nText("Fine-Design_Basic_Plugin_Delete_Dependence"), + Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), + FineJOptionPane.YES_NO_CANCEL_OPTION, + FineJOptionPane.INFORMATION_MESSAGE, null, FineJOptionPane.OPTION_YES_NO_CANCEL, null ); - if (rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { + if (rv == FineJOptionPane.CANCEL_OPTION || rv == FineJOptionPane.CLOSED_OPTION) { return; } PluginManager.getController().uninstall(pluginMarker, true, new UninstallPluginCallback(pluginMarker, jsCallback)); } else { jsCallback.execute("failed"); - FineLoggerFactory.getLogger().info(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Delete_Failed")); - FineJOptionPane.showMessageDialog(null, PluginUtils.getMessageByErrorCode(result.errorCode()), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), JOptionPane.ERROR_MESSAGE); + FineLoggerFactory.getLogger().info(Toolkit.i18nText("Fine-Design_Basic_Plugin_Delete_Failed")); + FineJOptionPane.showMessageDialog(null, pluginInfo, Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), FineJOptionPane.ERROR_MESSAGE); } } } diff --git a/designer-base/src/main/java/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java b/designer-base/src/main/java/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java index 7cced40f0..e5396d35c 100644 --- a/designer-base/src/main/java/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java +++ b/designer-base/src/main/java/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java @@ -3,7 +3,7 @@ package com.fr.design.extra.exe.callback; import com.fr.design.bridge.exec.JSCallback; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.extra.PluginOperateUtils; -import com.fr.design.extra.PluginUtils; +import com.fr.design.i18n.Toolkit; import com.fr.log.FineLoggerFactory; import com.fr.plugin.context.PluginMarker; @@ -12,7 +12,6 @@ import com.fr.plugin.manage.PluginManager; import com.fr.plugin.manage.control.PluginTask; import com.fr.plugin.manage.control.PluginTaskResult; -import javax.swing.*; import java.io.File; import java.util.List; @@ -37,22 +36,24 @@ public class UpdateFromDiskCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { + String pluginInfo = PluginOperateUtils.getSuccessInfo(result); if (result.isSuccess()) { jsCallback.execute("success"); - FineLoggerFactory.getLogger().info(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Update_Success")); - FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Update_Success")); + String successInfo = pluginInfo + Toolkit.i18nText("Fine-Design_Basic_Plugin_Update_Success"); + FineLoggerFactory.getLogger().info(successInfo); + FineJOptionPane.showMessageDialog(null, successInfo); } else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) { - int rv = JOptionPane.showOptionDialog( + int rv = FineJOptionPane.showOptionDialog( null, - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Update_Dependence"), - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.INFORMATION_MESSAGE, + Toolkit.i18nText("Fine-Design_Basic_Plugin_Update_Dependence"), + Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), + FineJOptionPane.YES_NO_CANCEL_OPTION, + FineJOptionPane.INFORMATION_MESSAGE, null, FineJOptionPane.OPTION_YES_NO_CANCEL, null ); - if (rv == JOptionPane.NO_OPTION || rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { + if (rv == FineJOptionPane.NO_OPTION || rv == FineJOptionPane.CANCEL_OPTION || rv == FineJOptionPane.CLOSED_OPTION) { return; } List pluginTasks = result.getPreTasks(); @@ -62,24 +63,24 @@ public class UpdateFromDiskCallback extends AbstractPluginTaskCallback { } PluginManager.getController().update(zipFile, new UpdateFromDiskCallback(zipFile, jsCallback)); } else if(result.errorCode() == PluginErrorCode.NoPluginToUpdate){ - int rv = JOptionPane.showOptionDialog( + int rv = FineJOptionPane.showOptionDialog( null, - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_No_Plugin_Update"), - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.INFORMATION_MESSAGE, + Toolkit.i18nText("Fine-Design_Basic_Plugin_No_Plugin_Update"), + Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), + FineJOptionPane.YES_NO_CANCEL_OPTION, + FineJOptionPane.INFORMATION_MESSAGE, null, FineJOptionPane.OPTION_YES_NO_CANCEL, null ); - if (rv == JOptionPane.NO_OPTION || rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { + if (rv == FineJOptionPane.NO_OPTION || rv == FineJOptionPane.CANCEL_OPTION || rv == FineJOptionPane.CLOSED_OPTION) { return; } PluginOperateUtils.installPluginFromDisk(zipFile, jsCallback); }else { jsCallback.execute("failed"); - FineLoggerFactory.getLogger().info(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Update_Failed")); - FineJOptionPane.showMessageDialog(null, PluginUtils.getMessageByErrorCode(result.errorCode()), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), JOptionPane.ERROR_MESSAGE); + FineLoggerFactory.getLogger().info(Toolkit.i18nText("Fine-Design_Basic_Plugin_Update_Failed")); + FineJOptionPane.showMessageDialog(null, pluginInfo, Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), FineJOptionPane.ERROR_MESSAGE); } } } diff --git a/designer-base/src/main/java/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java b/designer-base/src/main/java/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java index 69998a316..8dbad6a54 100644 --- a/designer-base/src/main/java/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java +++ b/designer-base/src/main/java/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java @@ -3,14 +3,13 @@ package com.fr.design.extra.exe.callback; import com.fr.design.bridge.exec.JSCallback; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.extra.PluginOperateUtils; +import com.fr.design.i18n.Toolkit; import com.fr.log.FineLoggerFactory; import com.fr.plugin.manage.control.AbstractDealPreTaskCallback; import com.fr.plugin.manage.control.PluginTask; import com.fr.plugin.manage.control.PluginTaskResult; -import javax.swing.*; - /** * Created by ibm on 2017/5/26. */ @@ -33,12 +32,13 @@ public class UpdateOnlineCallback extends AbstractDealPreTaskCallback { String pluginInfo = PluginOperateUtils.getSuccessInfo(result); if (result.isSuccess()) { jsCallback.execute("success"); - FineLoggerFactory.getLogger().info(pluginInfo + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Update_Success")); - FineJOptionPane.showMessageDialog(null,pluginInfo + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Update_Success")); + String successInfo = pluginInfo + Toolkit.i18nText("Fine-Design_Basic_Plugin_Update_Success"); + FineLoggerFactory.getLogger().info(successInfo); + FineJOptionPane.showMessageDialog(null, successInfo); } else { jsCallback.execute("failed"); - FineLoggerFactory.getLogger().info(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Update_Failed")); - FineJOptionPane.showMessageDialog(null, pluginInfo, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), JOptionPane.ERROR_MESSAGE); + FineLoggerFactory.getLogger().info(Toolkit.i18nText("Fine-Design_Basic_Plugin_Update_Failed")); + FineJOptionPane.showMessageDialog(null, pluginInfo, Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), FineJOptionPane.ERROR_MESSAGE); } } } diff --git a/designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java b/designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java index 763ffcd1f..7b13c94a0 100644 --- a/designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java +++ b/designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java @@ -2,7 +2,6 @@ package com.fr.design.file; import com.fr.base.chart.chartdata.CallbackEvent; import com.fr.base.io.BaseBook; -import com.fr.design.DesignModelAdapter; import com.fr.design.DesignerEnvManager; import com.fr.design.base.mode.DesignModeContext; import com.fr.design.data.DesignTableDataManager; @@ -23,7 +22,6 @@ import com.fr.stable.CoreConstants; import com.fr.stable.StringUtils; import com.fr.third.org.apache.commons.io.FilenameUtils; -import javax.swing.SwingUtilities; import java.io.ByteArrayOutputStream; import java.util.ArrayList; import java.util.Collections; @@ -441,4 +439,5 @@ public class HistoryTemplateListCache implements CallbackEvent { } }); } + } diff --git a/designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java b/designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java index 69aee1b50..269918448 100644 --- a/designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java +++ b/designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java @@ -18,8 +18,6 @@ import com.fr.general.ComparatorUtils; import com.fr.log.FineLoggerFactory; import com.fr.stable.Constants; import com.fr.third.javax.annotation.Nonnull; -import com.fr.workspace.WorkContext; -import com.fr.workspace.server.lock.TplOperator; import javax.swing.BorderFactory; import javax.swing.ButtonModel; @@ -707,7 +705,7 @@ public class MutilTempalteTabPane extends JComponent { // 只有是环境内的文件,才执行释放锁 if (file != null && file.isEnvFile()) { // release lock - WorkContext.getCurrent().get(TplOperator.class).closeAndFreeFile(file.getPath()); + TemplateResourceManager.getResource().closeTemplate(file.getPath()); } } diff --git a/designer-base/src/main/java/com/fr/design/file/TemplateResource.java b/designer-base/src/main/java/com/fr/design/file/TemplateResource.java new file mode 100644 index 000000000..f394822d6 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/file/TemplateResource.java @@ -0,0 +1,71 @@ +package com.fr.design.file; + +import com.fr.common.annotations.Open; +import com.fr.file.FILE; +import java.io.InputStream; +import java.io.OutputStream; + +/** + * 模板资源操作,可操作模板及模板目录 + * + * @author hades + * @version 10.0 + * Created by hades on 2020/12/23 + */ +@Open +public interface TemplateResource { + + /** + * 读取模板 + * @param path + * @return + * @throws Exception + */ + InputStream readTemplate(String path) throws Exception; + + /** + * 保存模板 + * @param file + * @return + * @throws Exception + */ + OutputStream saveTemplate(FILE file) throws Exception; + + /** + * 删除某个目录/某个模板 + * @param file + * @return + */ + boolean delete(FILE file); + + /** + * 关闭模板 + * @param path + * @return + */ + boolean closeTemplate(String path); + + /** + * 重命名模板/目录 + * @param from + * @param to + * @return + */ + boolean rename(String from, String to); + + /** + * 模板/目录是否存在 + * @param path + * @return + */ + boolean exist(String path); + + /** + * 创建目录 + * @param path + * @return + */ + boolean mkdir(String path); + + +} diff --git a/designer-base/src/main/java/com/fr/design/file/TemplateResourceManager.java b/designer-base/src/main/java/com/fr/design/file/TemplateResourceManager.java new file mode 100644 index 000000000..384b1a3e1 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/file/TemplateResourceManager.java @@ -0,0 +1,66 @@ +package com.fr.design.file; + +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.file.impl.DefaultTemplateResource; +import com.fr.design.fun.LocalResourceProvider; +import com.fr.design.mainframe.DesignerFrameFileDealerPane; +import com.fr.design.ui.util.UIUtil; +import com.fr.file.filetree.FileNodes; +import com.fr.file.filetree.LocalFileNodes; +import com.fr.plugin.injectable.PluginModule; +import com.fr.plugin.manage.PluginFilter; +import com.fr.plugin.observer.PluginEvent; +import com.fr.plugin.observer.PluginEventListener; +import com.fr.plugin.observer.PluginEventType; +import com.fr.plugin.observer.PluginListenerRegistration; +import com.fr.workspace.WorkContext; +import com.fr.workspace.engine.base.FineObjectPool; + +/** + * @author hades + * @version 10.0 + * Created by hades on 2020/12/23 + */ +public class TemplateResourceManager { + + private static final TemplateResource DEFAULT_OPERATION = new DefaultTemplateResource(); + + private static TemplateResource OPERATION = DEFAULT_OPERATION; + + static { + PluginFilter filter = pluginContext -> pluginContext.contain(PluginModule.ExtraDesign, LocalResourceProvider.XML_TAG); + + PluginListenerRegistration.getInstance().listen(PluginEventType.AfterStop, new PluginEventListener() { + @Override + public void on(PluginEvent event) { + registerOperation(new DefaultTemplateResource()); + FineObjectPool.getInstance().getLocalPool().put(FileNodes.class, new LocalFileNodes()); + UIUtil.invokeLaterIfNeeded(() -> DesignerFrameFileDealerPane.getInstance().refresh()); + } + }, filter); + + PluginListenerRegistration.getInstance().listen(PluginEventType.AfterRun, new PluginEventListener() { + @Override + public void on(PluginEvent event) { + LocalResourceProvider provider = ExtraDesignClassManager.getInstance().getSingle(LocalResourceProvider.XML_TAG); + if (provider != null && WorkContext.getCurrent().isLocal()) { + registerOperation(provider.createResourceOperation()); + FineObjectPool.getInstance().getLocalPool().put(FileNodes.class, provider.createFileNodes()); + UIUtil.invokeLaterIfNeeded(() -> DesignerFrameFileDealerPane.getInstance().refresh()); + } + } + }, filter); + } + + private static void registerOperation(TemplateResource operation) { + OPERATION = operation; + } + + public static TemplateResource getResource() { + if (OPERATION == null) { + return DEFAULT_OPERATION; + } + return OPERATION; + } + +} diff --git a/designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java b/designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java index 5041cc34a..0fc3ca728 100644 --- a/designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java +++ b/designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java @@ -4,7 +4,9 @@ package com.fr.design.file; import com.fr.base.FRContext; +import com.fr.design.ExtraDesignClassManager; import com.fr.design.dialog.FineJOptionPane; +import com.fr.design.fun.TemplateTreeDefineProcessor; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.itree.filetree.TemplateFileTree; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; @@ -23,12 +25,11 @@ import com.fr.stable.CoreConstants; import com.fr.stable.StableUtils; import com.fr.stable.project.ProjectConstants; import com.fr.workspace.WorkContext; -import com.fr.workspace.server.lock.TplOperator; import javax.swing.JOptionPane; import javax.swing.JPanel; +import javax.swing.SwingUtilities; import javax.swing.ToolTipManager; -import javax.swing.UIManager; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; @@ -87,6 +88,16 @@ public class TemplateTreePane extends JPanel implements FileOperations { } } + @Override + public void mouseClicked(MouseEvent e) { + if (SwingUtilities.isRightMouseButton(e)) { + TemplateTreeDefineProcessor processor = ExtraDesignClassManager.getInstance().getSingle(TemplateTreeDefineProcessor.XML_TAG); + if (processor != null) { + processor.rightClickAction(e); + } + } + } + @Override public void mouseReleased(MouseEvent e) { if (toolBarStateChangeListener != null) { @@ -182,7 +193,7 @@ public class TemplateTreePane extends JPanel implements FileOperations { @Override public boolean mkdir(String path) { - return WorkContext.getWorkResource().createDirectory(path); + return TemplateResourceManager.getResource().mkdir(path); } /** @@ -325,7 +336,7 @@ public class TemplateTreePane extends JPanel implements FileOperations { if (node instanceof FileNode) { FileNodeFILE nodeFILE = new FileNodeFILE((FileNode) node); if (nodeFILE.exists()) { - if (WorkContext.getCurrent().get(TplOperator.class).delete(nodeFILE.getPath())) { + if (TemplateResourceManager.getResource().delete(nodeFILE)) { HistoryTemplateListCache.getInstance().deleteFile(nodeFILE); } else { success = false; @@ -427,7 +438,7 @@ public class TemplateTreePane extends JPanel implements FileOperations { try { // 接收的是WEB-INF下的路径 - return WorkContext.getCurrent().get(TplOperator.class).rename(from, to); + return TemplateResourceManager.getResource().rename(from, to); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); return false; diff --git a/designer-base/src/main/java/com/fr/design/file/impl/AbstractTemplateResource.java b/designer-base/src/main/java/com/fr/design/file/impl/AbstractTemplateResource.java new file mode 100644 index 000000000..cb76792a1 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/file/impl/AbstractTemplateResource.java @@ -0,0 +1,19 @@ +package com.fr.design.file.impl; + + +import com.fr.design.file.TemplateResource; +import com.fr.file.FILE; +import com.fr.workspace.WorkContext; +import com.fr.workspace.server.lock.TplOperator; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.OutputStream; + +/** + * @author hades + * @version 10.0 + * Created by hades on 2020/12/23 + */ +public abstract class AbstractTemplateResource implements TemplateResource { + +} diff --git a/designer-base/src/main/java/com/fr/design/file/impl/DefaultTemplateResource.java b/designer-base/src/main/java/com/fr/design/file/impl/DefaultTemplateResource.java new file mode 100644 index 000000000..8c54cc8cc --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/file/impl/DefaultTemplateResource.java @@ -0,0 +1,52 @@ +package com.fr.design.file.impl; + +import com.fr.file.FILE; +import com.fr.workspace.WorkContext; +import com.fr.workspace.server.lock.TplOperator; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.OutputStream; + +/** + * @author hades + * @version 10.0 + * Created by hades on 2020/12/23 + */ +public class DefaultTemplateResource extends AbstractTemplateResource { + + @Override + public InputStream readTemplate(String path) throws Exception { + return new ByteArrayInputStream(WorkContext.getCurrent().get(TplOperator.class).readAndLockFile(path)); + } + + @Override + public OutputStream saveTemplate(FILE file) throws Exception { + return file.asOutputStream(); + } + + @Override + public boolean closeTemplate(String path) { + return WorkContext.getCurrent().get(TplOperator.class).closeAndFreeFile(path); + } + + @Override + public boolean delete(FILE file) { + return WorkContext.getCurrent().get(TplOperator.class).delete(file.getPath()); + } + + @Override + public boolean rename(String from, String to) { + return WorkContext.getCurrent().get(TplOperator.class).rename(from, to); + } + + @Override + public boolean exist(String path) { + return WorkContext.getWorkResource().exist(path); + } + + @Override + public boolean mkdir(String path) { + return WorkContext.getWorkResource().createDirectory(path); + } + +} diff --git a/designer-base/src/main/java/com/fr/design/fun/LocalResourceProvider.java b/designer-base/src/main/java/com/fr/design/fun/LocalResourceProvider.java new file mode 100644 index 000000000..56a98a235 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/fun/LocalResourceProvider.java @@ -0,0 +1,34 @@ +package com.fr.design.fun; + +import com.fr.design.file.TemplateResource; +import com.fr.file.filetree.FileNodes; +import com.fr.stable.fun.mark.Immutable; + +/** + * 本地资源操作插件接口 + * + * @author hades + * @version 10.0 + * Created by hades on 2020/12/22 + */ +public interface LocalResourceProvider extends Immutable { + + String XML_TAG = "LocalResourceProvider"; + + int CURRENT_LEVEL = 1; + + /** + * eg: DefaultResourceOperation + * + * @return 目录/模板的各种操作 + */ + TemplateResource createResourceOperation(); + + /** + * eg: LocalFileNodes + * + * @return 构建目录树的方式 + */ + FileNodes createFileNodes(); + +} diff --git a/designer-base/src/main/java/com/fr/design/fun/TemplateTreeDefineProcessor.java b/designer-base/src/main/java/com/fr/design/fun/TemplateTreeDefineProcessor.java new file mode 100644 index 000000000..cfa5bcecb --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/fun/TemplateTreeDefineProcessor.java @@ -0,0 +1,19 @@ +package com.fr.design.fun; + +import com.fr.stable.fun.mark.Immutable; +import java.awt.event.MouseEvent; + +/** + * @author hades + * @version 10.0 + * Created by hades on 2020/12/14 + */ +public interface TemplateTreeDefineProcessor extends Immutable { + + String XML_TAG = "TemplateTreeDefineProcessor"; + + int CURRENT_LEVEL = 1; + + void rightClickAction(MouseEvent mouseEvent); + +} diff --git a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractLocalResourceProvider.java b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractLocalResourceProvider.java new file mode 100644 index 000000000..ebefc2ba6 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractLocalResourceProvider.java @@ -0,0 +1,23 @@ +package com.fr.design.fun.impl; + +import com.fr.design.fun.LocalResourceProvider; +import com.fr.stable.fun.mark.API; + +/** + * @author hades + * @version 10.0 + * Created by hades on 2020/12/22 + */ +@API(level = LocalResourceProvider.CURRENT_LEVEL) +public abstract class AbstractLocalResourceProvider implements LocalResourceProvider { + + @Override + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + @Override + public int layerIndex() { + return DEFAULT_LAYER_INDEX; + } +} diff --git a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractTemplateTreeDefineProcessor.java b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractTemplateTreeDefineProcessor.java new file mode 100644 index 000000000..eba101aad --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractTemplateTreeDefineProcessor.java @@ -0,0 +1,24 @@ +package com.fr.design.fun.impl; + +import com.fr.design.fun.TemplateTreeDefineProcessor; +import com.fr.stable.fun.mark.API; + +/** + * @author hades + * @version 10.0 + * Created by hades on 2020/12/21 + */ +@API(level = TemplateTreeDefineProcessor.CURRENT_LEVEL) +public abstract class AbstractTemplateTreeDefineProcessor implements TemplateTreeDefineProcessor { + + @Override + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + @Override + public int layerIndex() { + return DEFAULT_LAYER_INDEX; + } + +} diff --git a/designer-base/src/main/java/com/fr/design/gui/core/WidgetOption.java b/designer-base/src/main/java/com/fr/design/gui/core/WidgetOption.java index e3bf61e9d..71289376a 100644 --- a/designer-base/src/main/java/com/fr/design/gui/core/WidgetOption.java +++ b/designer-base/src/main/java/com/fr/design/gui/core/WidgetOption.java @@ -1,6 +1,7 @@ package com.fr.design.gui.core; import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.form.ui.*; 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"), - BaseUtils.readIcon("/com/fr/design/images/buttonicon/widget/date_16.png"), + "/com/fr/design/images/buttonicon/widget/date_16", DateEditor.class); 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); 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( - 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); 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( - 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); public static final WidgetOption BUTTON = WidgetOptionFactory.createByWidgetClass( @@ -155,23 +156,23 @@ public abstract class WidgetOption implements Serializable { Button.class); 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); 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); 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); 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); 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); public static final WidgetOption LIST = WidgetOptionFactory.createByWidgetClass( @@ -181,16 +182,16 @@ public abstract class WidgetOption implements Serializable { public static final WidgetOption TEXTEDITOR = WidgetOptionFactory.createByWidgetClass( 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); 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); public static final WidgetOption PASSWORD = WidgetOptionFactory.createByWidgetClass( 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"), IframeEditor.class); diff --git a/designer-base/src/main/java/com/fr/design/gui/core/WidgetOptionFactory.java b/designer-base/src/main/java/com/fr/design/gui/core/WidgetOptionFactory.java index 0266d9eb9..e9ba42788 100644 --- a/designer-base/src/main/java/com/fr/design/gui/core/WidgetOptionFactory.java +++ b/designer-base/src/main/java/com/fr/design/gui/core/WidgetOptionFactory.java @@ -1,6 +1,7 @@ package com.fr.design.gui.core; import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.form.ui.Widget; import javax.swing.*; @@ -14,4 +15,9 @@ public class WidgetOptionFactory { public static WidgetOption createByWidgetClass(String optionName, Icon optionIcon, Class widgetClass) { return new CustomWidgetOption(optionName, optionIcon, widgetClass); } -} \ No newline at end of file + + public static WidgetOption createByWidgetClass(String optionName, String resource, Class widgetClass) { + Icon optionIcon = IconUtils.readIcon(resource); + return new CustomWidgetOption(optionName, optionIcon, widgetClass); + } +} diff --git a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIButton.java b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIButton.java index 32f20ad56..335397d90 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIButton.java +++ b/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.CellBorderStyle; import com.fr.base.GraphHelper; +import com.fr.base.svg.IconUtils; import com.fr.design.constants.UIConstants; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; @@ -97,6 +98,14 @@ public class UIButton extends JButton implements UIObserver, UITextComponent { 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() { if (shouldResponseChangeListener()) { this.addActionListener(new ActionListener() { @@ -388,4 +397,4 @@ public class UIButton extends JButton implements UIObserver, UITextComponent { public boolean shouldResponseChangeListener() { return true; } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java b/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java index cccf64e26..73da78151 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java +++ b/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java @@ -106,6 +106,13 @@ public class TableViewList extends UIList { if (!status) { throw new Exception(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Database_Connection_Failed")); } + String[] schemas = DataCoreUtils.getDatabaseSchema(datasource); + schemas = (schemas == null || schemas.length == 0) ? new String[]{null} : schemas; + for (String schema : schemas) { + DataCoreUtils.refreshTables(datasource, TableProcedure.TABLE, schema); + DataCoreUtils.refreshTables(datasource, TableProcedure.VIEW, schema); + DataCoreUtils.refreshTables(datasource, TableProcedure.PROCEDURE, schema); + } return processDataInAnotherThread(databaseName, searchFilter, typesFilter); } diff --git a/designer-base/src/main/java/com/fr/design/icon/IconPathConstants.java b/designer-base/src/main/java/com/fr/design/icon/IconPathConstants.java index e01aa5251..e3802161b 100644 --- a/designer-base/src/main/java/com/fr/design/icon/IconPathConstants.java +++ b/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_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_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 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"; diff --git a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java index 4f59032dc..d2771cd49 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java @@ -17,7 +17,6 @@ import com.fr.design.file.FileToolbarStateChangeListener; import com.fr.design.file.HistoryTemplateListCache; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.file.MutilTempalteTabPane; -import com.fr.design.file.SaveSomeTemplatePane; import com.fr.design.file.TemplateTreePane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ilable.UILabel; @@ -58,7 +57,6 @@ import javax.swing.JDialog; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.SwingConstants; -import javax.swing.UIManager; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import java.awt.BorderLayout; @@ -318,7 +316,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt public NewFolderAction() { 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 @@ -344,7 +342,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt private class VcsAction extends UpdateAction { public VcsAction() { - this.setSmallIcon(VcsHelper.VCS_LIST_PNG); + this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/vcs_list"); } @Override @@ -426,7 +424,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt public ShowInExplorerAction() { 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 @@ -443,7 +441,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt public RefreshTreeAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Refresh")); - this.setSmallIcon(UIConstants.REFRESH_ICON); + this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/refresh"); } @Override @@ -461,7 +459,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt public RenameAction() { 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 @@ -500,7 +498,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt public DelFileAction() { 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 diff --git a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java index a95b92400..76422555f 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java @@ -1,7 +1,8 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; import com.fr.base.FRContext; + +import com.fr.base.svg.IconUtils; import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; @@ -105,7 +106,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { FORM_REPORT, // 表单报表块 POLY, // 聚合报表 POLY_REPORT, // 聚合报表-报表块 - POLY_CHART, // 聚合报表-图表块 + POLY_CHART(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Component_Settings")), // 聚合报表-图表块 AUTHORITY_EDITION, // 权限编辑 AUTHORITY_EDITION_DISABLED; // 权限编辑 @@ -701,9 +702,11 @@ public class EastRegionContainerPane extends UIEastResizableContainer { // 完整icon路径为 ICON_BASE_DIR + btnIconName + iconSuffix 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_DISABLED = "_disabled.png"; - private static final String ICON_SUFFIX_SELECTED = "_selected.png"; + private static final String ICON_SUFFIX_NORMAL = "_normal.svg"; + private static final String ICON_SUFFIX_DISABLED = "_disabled.svg"; + 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 iconBaseDir; private String iconSuffix = ICON_SUFFIX_NORMAL; // normal, diabled, selected, 三者之一 @@ -888,7 +891,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { public void resetButtonIcon() { if (iconSuffix.equals(ICON_SUFFIX_SELECTED)) { iconSuffix = ICON_SUFFIX_NORMAL; - button.setIcon(BaseUtils.readIcon(getBtnIconUrl())); + button.setIcon(IconUtils.readIcon(getBtnIconUrl())); button.setBackground(originBtnBackground); button.setOpaque(false); } @@ -897,7 +900,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { public void setTabButtonSelected() { resetPropertyIcons(); iconSuffix = ICON_SUFFIX_SELECTED; - button.setIcon(BaseUtils.readIcon(getBtnIconUrl())); + button.setIcon(IconUtils.readIcon(getBtnIconUrl())); button.setBackground(selectedBtnBackground); button.setOpaque(true); selectedItem = this; @@ -908,7 +911,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { } private void initButton() { - button = new UIButton(BaseUtils.readIcon(getBtnIconUrl())) { + button = new UIButton(IconUtils.readIcon(getBtnIconUrl())) { public Dimension getPreferredSize() { 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.setUI(new UIButtonUI() { @Override diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java index 6c6de287e..5cfd7a13d 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java @@ -3,7 +3,6 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; import com.fr.base.FRContext; import com.fr.base.Parameter; -import com.fr.base.ScreenResolution; import com.fr.base.io.BaseBook; import com.fr.base.iofile.attr.DesignBanCopyAttrMark; import com.fr.base.iofile.attr.TemplateIdAttrMark; @@ -24,6 +23,7 @@ import com.fr.design.designer.TargetComponent; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.dialog.InformationWarnPane; import com.fr.design.file.HistoryTemplateListPane; +import com.fr.design.file.TemplateResourceManager; import com.fr.design.file.TemplateTreePane; import com.fr.design.fun.DesignerFrameUpButtonProvider; import com.fr.design.fun.MenuHandler; @@ -49,6 +49,7 @@ import com.fr.design.menu.ShortCut; import com.fr.design.preview.PagePreview; import com.fr.design.write.submit.DBManipulationInWidgetEventPane; import com.fr.design.write.submit.DBManipulationPane; +import com.fr.event.EventDispatcher; import com.fr.file.FILE; import com.fr.file.FILEChooserPane; import com.fr.file.MemFILE; @@ -107,7 +108,6 @@ public abstract class JTemplate> private DesignModelAdapter designModel; private PreviewProvider previewType; protected TimeConsumeTimer consumeTimer = new TimeConsumeTimer(); - public int resolution = ScreenResolution.getScreenResolution(); private PluginEventListener pluginListener; @@ -125,6 +125,7 @@ public abstract class JTemplate> public JTemplate(T t, FILE file, boolean isNewFile) { super(t); + beforeInit(); // 判断是否切换设计器状态到禁止拷贝剪切 if (t.getAttrMark(DesignBanCopyAttrMark.XML_TAG) != null) { DesignModeContext.switchTo(com.fr.design.base.mode.DesignerMode.BAN_COPY_AND_CUT); @@ -301,6 +302,20 @@ public abstract class JTemplate> } + /** + * 模板初始化之前 + */ + private void beforeInit() { + EventDispatcher.fire(JTemplateEvent.BEFORE_TEMPLATE_INIT, this); + } + + /** + * 模板激活之前之前 + */ + protected void beforeActive() { + EventDispatcher.fire(JTemplateEvent.BEFORE_TEMPLATE_ACTIVE, this); + } + /** * 模板关闭时 */ @@ -309,6 +324,7 @@ public abstract class JTemplate> PluginListenerRegistration.getInstance().stopListen(this.pluginListener); } + /** * 刷新内部资源 * @@ -797,7 +813,7 @@ public abstract class JTemplate> return false; } try { - this.getTarget().export(editingFILE.asOutputStream()); + this.getTarget().export(TemplateResourceManager.getResource().saveTemplate(editingFILE)); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), e.getMessage(), "Save Error", JOptionPane.ERROR_MESSAGE); @@ -1076,6 +1092,7 @@ public abstract class JTemplate> * 激活指定的template */ public void activeJTemplate(int index, JTemplate jt) { + beforeActive(); DesignerContext.getDesignerFrame().activateJTemplate(this); } @@ -1083,6 +1100,7 @@ public abstract class JTemplate> * 激活已存在的模板 */ public void activeOldJTemplate() { + beforeActive(); DesignerContext.getDesignerFrame().activateJTemplate(this); } @@ -1090,6 +1108,7 @@ public abstract class JTemplate> * 激活新的模板 */ public void activeNewJTemplate() { + beforeActive(); DesignerContext.getDesignerFrame().addAndActivateJTemplate(this); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplateEvent.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplateEvent.java new file mode 100644 index 000000000..d60d06474 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/mainframe/JTemplateEvent.java @@ -0,0 +1,19 @@ +package com.fr.design.mainframe; + +import com.fr.event.Event; + +/** + * Created by kerry on 2020-12-11 + */ +public enum JTemplateEvent implements Event { + /** + * 模板初始化之前 + */ + BEFORE_TEMPLATE_INIT, + + /** + * 模板激活之前 + */ + BEFORE_TEMPLATE_ACTIVE + +} diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JVirtualTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JVirtualTemplate.java index 64a10c88f..911c0dc17 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JVirtualTemplate.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/JVirtualTemplate.java @@ -208,6 +208,7 @@ public class JVirtualTemplate extends JTemplate { @Override public void activeJTemplate(int index, JTemplate jt) { + beforeActive(); List> historyList = HistoryTemplateListPane.getInstance().getHistoryList(); historyList.set(index, jt); DesignerContext.getDesignerFrame().addAndActivateJTemplate(jt); @@ -217,11 +218,13 @@ public class JVirtualTemplate extends JTemplate { @Override public void activeOldJTemplate() { + beforeActive(); DesignerContext.getDesignerFrame().openTemplate(this.getEditingFILE()); } @Override public void activeNewJTemplate() { + beforeActive(); DesignerContext.getDesignerFrame().openTemplate(this.getEditingFILE()); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java index 8229c9f8d..0ec5b9c4f 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsHelper.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.vcs.common; + import com.fr.concurrent.NamedThreadFactory; import com.fr.design.DesignerEnvManager; import com.fr.design.file.HistoryTemplateListCache; diff --git a/designer-base/src/main/java/com/fr/design/menu/MenuDef.java b/designer-base/src/main/java/com/fr/design/menu/MenuDef.java index 10f994494..f2ed81394 100644 --- a/designer-base/src/main/java/com/fr/design/menu/MenuDef.java +++ b/designer-base/src/main/java/com/fr/design/menu/MenuDef.java @@ -1,6 +1,6 @@ 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.imenu.*; import com.fr.design.gui.iscrollbar.UIScrollBar; @@ -141,7 +141,7 @@ public class MenuDef extends ShortCut { addShortCut(i); } } - + public void addShortCut(ShortCut shortCut) { this.shortcutList.add(shortCut); } @@ -166,7 +166,7 @@ public class MenuDef extends ShortCut { public UIButton createUIButton() { if (createdButton == null) { if (iconPath != null) { - createdButton = new UIButton(BaseUtils.readIcon(iconPath)); + createdButton = new UIButton(IconUtils.readIcon(iconPath)); createdButton.set4ToolbarButton(); } else { createdButton = new UIButton(name); @@ -194,7 +194,7 @@ public class MenuDef extends ShortCut { createdJMenu = createJMenu0(); createdJMenu.setMnemonic(this.getMnemonic()); if (this.iconPath != null) { - createdJMenu.setIcon(BaseUtils.readIcon(this.iconPath)); + createdJMenu.setIcon(IconUtils.readIcon(iconPath)); } MenuListener menuListener = createMenuListener(); createdJMenu.addMenuListener(menuListener); @@ -206,9 +206,9 @@ public class MenuDef extends ShortCut { return createdJMenu; } - + protected UIMenu createJMenu0() { - + UIMenu createdJMenu; if (hasScrollSubMenu) { createdJMenu = new UIScrollMenu(this.getName()); @@ -219,7 +219,7 @@ public class MenuDef extends ShortCut { } return createdJMenu; } - + protected ContainerListener getContainerListener() { return null; } @@ -389,9 +389,9 @@ public class MenuDef extends ShortCut { public void intoJToolBar(JToolBar toolBar) { toolBar.add(this.createUIButton()); } - + protected MenuListener createMenuListener() { - + return menuDefListener; } @@ -456,4 +456,4 @@ public class MenuDef extends ShortCut { } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java b/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java index f48cb12ed..30112dc7a 100644 --- a/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java +++ b/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java @@ -1,6 +1,6 @@ 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.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; @@ -27,7 +27,7 @@ public class RemoteDesignAuthManagerAction extends UpdateAction { public RemoteDesignAuthManagerAction() { 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"); } diff --git a/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java b/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java index 06770c1b4..ae0cfd2b6 100644 --- a/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java +++ b/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java @@ -1,5 +1,6 @@ package com.fr.design.report.fit.menupane; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.JTemplateAction; import com.fr.design.beans.BasicBeanPane; 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.JTemplate; import com.fr.design.menu.MenuKeySet; -import com.fr.general.IOUtils; import com.fr.report.fit.FitProvider; import com.fr.report.fit.ReportFitAttr; @@ -66,7 +66,7 @@ public class ReportFitAttrAction extends JTemplateAction { } this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/reportfit/fit.png")); + this.setSmallIcon("/com/fr/design/images/reportfit/fit"); } /** diff --git a/designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java b/designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java index 65f66290e..f393b1a09 100644 --- a/designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java +++ b/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() { - + 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")}; buttonGroup = new UIHeadGroup(iconArray, textArray) { @@ -254,7 +254,7 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo public RefreshAction() { 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 diff --git a/designer-base/src/main/java/com/fr/design/style/color/UIToolbarColorButton.java b/designer-base/src/main/java/com/fr/design/style/color/UIToolbarColorButton.java index 9066b4a90..9a8640f62 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/UIToolbarColorButton.java +++ b/designer-base/src/main/java/com/fr/design/style/color/UIToolbarColorButton.java @@ -3,7 +3,8 @@ */ 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.UIObserverListener; import com.fr.design.gui.ibutton.UIButton; @@ -34,7 +35,7 @@ public class UIToolbarColorButton extends UICombinationButton implements PopupHi private UIObserverListener uiObserverListener; 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); getRightButton().addFocusListener(new FocusListener() { @@ -244,4 +245,4 @@ public class UIToolbarColorButton extends UICombinationButton implements PopupHi public boolean shouldResponseChangeListener() { return true; } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/update/actions/SoftwareUpdateAction.java b/designer-base/src/main/java/com/fr/design/update/actions/SoftwareUpdateAction.java index d65d8fec5..2b768d995 100644 --- a/designer-base/src/main/java/com/fr/design/update/actions/SoftwareUpdateAction.java +++ b/designer-base/src/main/java/com/fr/design/update/actions/SoftwareUpdateAction.java @@ -1,6 +1,6 @@ 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.os.impl.UpdateDialogAction; import com.fr.stable.os.support.OSBasedAction; @@ -15,7 +15,7 @@ public class SoftwareUpdateAction extends UpdateAction { public SoftwareUpdateAction() { 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"); } diff --git a/designer-base/src/main/java/com/fr/design/widget/WidgetBoundsPaneFactory.java b/designer-base/src/main/java/com/fr/design/widget/WidgetBoundsPaneFactory.java index 9b2b64d09..d91f89b89 100644 --- a/designer-base/src/main/java/com/fr/design/widget/WidgetBoundsPaneFactory.java +++ b/designer-base/src/main/java/com/fr/design/widget/WidgetBoundsPaneFactory.java @@ -19,6 +19,30 @@ import java.awt.Component; * Created by plough on 2017/8/7. */ public class WidgetBoundsPaneFactory { + + public enum NameAttribute { + //默认的名称 + DEFAULT(Toolkit.i18nText("Fine-Design_Basic_Component_Position"), Toolkit.i18nText("Fine-Design_Basic_Component_Size")), + //控件对应的名称 + WIDGET(Toolkit.i18nText("Fine-Design_Basic_Widget_Position"), Toolkit.i18nText("Fine-Design_Basic_Widget_Size")); + + private String positionName; + private String sizeName; + + NameAttribute(String positionName, String sizeName) { + this.positionName = positionName; + this.sizeName = sizeName; + } + + public String getPositionName() { + return positionName; + } + + public String getSizeName() { + return sizeName; + } + } + private static final int RIGHT_PANE_WIDTH = 145; public static UIExpandablePane createBoundsPane(UISpinner width, UISpinner height) { @@ -37,7 +61,8 @@ public class WidgetBoundsPaneFactory { boundsPane.add(panel); return new UIExpandablePane(Toolkit.i18nText("Fine-Design_Form_Coords_And_Size"), 280, 24, boundsPane); } - public static JPanel createRightPane(Component com1, Component com2){ + + public static JPanel createRightPane(Component com1, Component com2) { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; double[] rowSize = {p}; @@ -49,16 +74,16 @@ public class WidgetBoundsPaneFactory { return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_L6, IntervalConstants.INTERVAL_L1); } - public static UIExpandablePane createAbsoluteBoundsPane(UISpinner x, UISpinner y, UISpinner width, UISpinner height) { + public static UIExpandablePane createAbsoluteBoundsPane(UISpinner x, UISpinner y, UISpinner width, UISpinner height, NameAttribute nameAttribute) { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] northComponents = new Component[][]{ - new Component[]{FRWidgetFactory.createLineWrapLabel(Toolkit.i18nText("Fine-Design_Basic_Widget_Position")), createRightPane(x, y)}, + new Component[]{FRWidgetFactory.createLineWrapLabel(nameAttribute.getPositionName()), createRightPane(x, y)}, new Component[]{null, createRightPane(new UILabel(Toolkit.i18nText("Fine-Design_Basic_X_Coordinate"), SwingConstants.CENTER), new UILabel(Toolkit.i18nText("Fine-Design_Basic_Y_Coordinate"), SwingConstants.CENTER))}, }; Component[][] centerComponents = new Component[][]{ - new Component[]{FRWidgetFactory.createLineWrapLabel(Toolkit.i18nText("Fine-Design_Basic_Widget_Size")), createRightPane(width, height)}, + new Component[]{FRWidgetFactory.createLineWrapLabel(nameAttribute.getSizeName()), createRightPane(width, height)}, new Component[]{null, createRightPane(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Tree_Width"), SwingConstants.CENTER), new UILabel(Toolkit.i18nText("Fine-Design_Basic_Tree_Height"), SwingConstants.CENTER))}, }; double[] rowSize = {p, p}; @@ -74,6 +99,10 @@ public class WidgetBoundsPaneFactory { return new UIExpandablePane(Toolkit.i18nText("Fine-Design_Form_Coords_And_Size"), 230, 24, boundsPane); } + public static UIExpandablePane createAbsoluteBoundsPane(UISpinner x, UISpinner y, UISpinner width, UISpinner height) { + return createAbsoluteBoundsPane(x, y, width, height, NameAttribute.DEFAULT); + } + public static UIExpandablePane createCardTagBoundPane(UISpinner width) { JPanel boundsPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); diff --git a/designer-base/src/main/java/com/fr/design/widget/component/NumberEditorValidatePane.java b/designer-base/src/main/java/com/fr/design/widget/component/NumberEditorValidatePane.java index 72a199a5b..ab4f7e4e2 100644 --- a/designer-base/src/main/java/com/fr/design/widget/component/NumberEditorValidatePane.java +++ b/designer-base/src/main/java/com/fr/design/widget/component/NumberEditorValidatePane.java @@ -150,6 +150,7 @@ public class NumberEditorValidatePane extends JPanel { setMaxListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { + errorMsgTextFieldPane.setVisible(setMaxValueCheckBox.isSelected() || setMinValueCheckBox.isSelected()); if (setMaxValueCheckBox.isSelected()) { maxValueSpinner.setEnabled(true); Double value = (double) 0; @@ -171,6 +172,7 @@ public class NumberEditorValidatePane extends JPanel { setMinListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { + errorMsgTextFieldPane.setVisible(setMaxValueCheckBox.isSelected() || setMinValueCheckBox.isSelected()); if (setMinValueCheckBox.isSelected()) { minValueSpinner.setEnabled(true); Double value = (double) 0; diff --git a/designer-base/src/main/java/com/fr/env/PluginErrorRemindDialog.java b/designer-base/src/main/java/com/fr/env/PluginErrorRemindDialog.java new file mode 100644 index 000000000..3654cca2d --- /dev/null +++ b/designer-base/src/main/java/com/fr/env/PluginErrorRemindDialog.java @@ -0,0 +1,108 @@ +package com.fr.env; + +import com.fr.design.actions.server.PluginManagerAction; +import com.fr.design.gui.ibutton.UIButton; +import com.fr.design.i18n.Toolkit; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.general.FRFont; +import com.fr.general.GeneralContext; +import com.fr.general.IOUtils; + +import javax.swing.BorderFactory; +import javax.swing.Icon; +import javax.swing.JDialog; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextArea; +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Frame; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Locale; + +/** + * 插件启动失败提示窗 + */ +public class PluginErrorRemindDialog extends JDialog implements ActionListener { + + public PluginErrorRemindDialog(Frame parent, String areaText) { + super(parent, true); + //上面的标签面板 + JPanel topPanel = FRGUIPaneFactory.createBorderLayout_L_Pane(); + JPanel imagePanel = new JPanel(); + Icon icon = IOUtils.readIcon("com/fr/design/images/warnings/warning5.png"); + + JLabel imageLabel = new JLabel(); + imageLabel.setIcon(icon); + imagePanel.add(imageLabel); + imagePanel.setPreferredSize(new Dimension(130, 100)); + + JPanel verticalPanel = FRGUIPaneFactory.createVerticalFlowLayout_S_Pane(true); + + JLabel label = new JLabel(Toolkit.i18nText("Fine-Design_Plugin_Error_Remind_Title")); + label.setFont(FRFont.getInstance().applySize(18).applyStyle(1)); + label.setPreferredSize(new Dimension(650, 100)); + + verticalPanel.add(label); + + topPanel.add(imagePanel, BorderLayout.WEST); + topPanel.add(verticalPanel, BorderLayout.CENTER); + topPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 10)); + + //中间的文本域面板 + JPanel centerPanel = FRGUIPaneFactory.createBorderLayout_L_Pane(); + centerPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10)); + centerPanel.setPreferredSize(new Dimension(480, 320)); + + JTextArea checkArea = new JTextArea(areaText); + checkArea.setEnabled(false); + centerPanel.add(checkArea, BorderLayout.CENTER); + + UIButton cancelButton = new UIButton(Toolkit.i18nText("Fine-Design_Plugin_Error_Remind_Not_Deal_With")); + UIButton okButton = new UIButton(Toolkit.i18nText("Fine-Design_Plugin_Error_Remind_Deal_With")); + + cancelButton.addActionListener(this); + okButton.addActionListener(new PluginManagerActionAdapter(this)); + + // 按钮 + JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); + buttonPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10)); + buttonPanel.add(cancelButton); + buttonPanel.add(okButton); + + + this.setTitle(Toolkit.i18nText("Fine-Design_Basic_Tool_Tips")); + this.setResizable(false); + + this.add(topPanel, BorderLayout.NORTH); + this.add(centerPanel, BorderLayout.CENTER); + this.add(buttonPanel, BorderLayout.SOUTH); + this.setSize(new Dimension(GeneralContext.getLocale().equals(Locale.US) ? 750 : 600, 500)); + + GUICoreUtils.centerWindow(this); + } + + @Override + public void actionPerformed(ActionEvent e) { + this.dispose(); + } + + private static class PluginManagerActionAdapter extends PluginManagerAction { + + private JDialog jDialog; + + public PluginManagerActionAdapter(JDialog jDialog) { + this.jDialog = jDialog; + } + + @Override + public void actionPerformed(ActionEvent e) { + this.jDialog.dispose(); + super.actionPerformed(e); + } + } + +} diff --git a/designer-base/src/main/java/com/fr/file/FileNodeFILE.java b/designer-base/src/main/java/com/fr/file/FileNodeFILE.java index b033d229b..d096faf8a 100644 --- a/designer-base/src/main/java/com/fr/file/FileNodeFILE.java +++ b/designer-base/src/main/java/com/fr/file/FileNodeFILE.java @@ -2,6 +2,7 @@ package com.fr.file; import com.fr.base.BaseUtils; import com.fr.base.FRContext; +import com.fr.design.file.TemplateResourceManager; import com.fr.io.FineEncryptUtils; import com.fr.base.io.XMLEncryptUtils; import com.fr.design.file.NodeAuthProcessor; @@ -22,10 +23,8 @@ import com.fr.workspace.WorkContext; import com.fr.workspace.Workspace; import com.fr.workspace.WorkspaceEvent; import com.fr.workspace.resource.WorkResourceTempRenameStream; -import com.fr.workspace.server.lock.TplOperator; import javax.swing.*; -import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.Arrays; @@ -324,7 +323,7 @@ public class FileNodeFILE implements FILE { } try { - return WorkContext.getWorkResource().exist(node.getEnvPath()); + return TemplateResourceManager.getResource().exist(node.getEnvPath()); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); return false; @@ -379,14 +378,11 @@ public class FileNodeFILE implements FILE { if (!envPath.startsWith(ProjectConstants.REPORTLETS_NAME)) { return null; } - InputStream in = new ByteArrayInputStream( - WorkContext.getCurrent().get(TplOperator.class).readAndLockFile( - StableUtils.pathJoin( - ProjectConstants.REPORTLETS_NAME, - envPath.substring(ProjectConstants.REPORTLETS_NAME.length() + 1) - ) - ) - ); + InputStream in = TemplateResourceManager.getResource().readTemplate( + StableUtils.pathJoin( + ProjectConstants.REPORTLETS_NAME, + envPath.substring(ProjectConstants.REPORTLETS_NAME.length() + 1) + )); return envPath.endsWith(".cpt") || envPath.endsWith(".frm") ? XMLEncryptUtils.decodeInputStream(EncryptUtils.decodeInputStream(FineEncryptUtils.decode(in))) : in; diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder.png b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder.png new file mode 100644 index 000000000..9ea75fc6d Binary files /dev/null and b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder.png differ diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder_disabled.svg new file mode 100644 index 000000000..f3936e153 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder_disabled.svg @@ -0,0 +1,8 @@ + + + icon_NewFolderIcon_disable + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder_normal.svg b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder_normal.svg new file mode 100644 index 000000000..85f41e26a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/new_folder_normal.svg @@ -0,0 +1,8 @@ + + + icon_NewFolderIcon_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/refresh.png b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/refresh.png new file mode 100644 index 000000000..37df06647 Binary files /dev/null and b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/refresh.png differ diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/refresh_normal.svg b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/refresh_normal.svg new file mode 100644 index 000000000..4e3fd9c14 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/refresh_normal.svg @@ -0,0 +1,7 @@ + + + icon_刷新_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove.png b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove.png new file mode 100644 index 000000000..6fb2baac5 Binary files /dev/null and b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove.png differ diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove_disabled.svg new file mode 100644 index 000000000..1245fbd4e --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove_disabled.svg @@ -0,0 +1,7 @@ + + + icon_删除_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove_normal.svg b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove_normal.svg new file mode 100644 index 000000000..69a3011fa --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/remove_normal.svg @@ -0,0 +1,7 @@ + + + icon_删除_normal copy + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename.png b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename.png new file mode 100644 index 000000000..5c244dd5d Binary files /dev/null and b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename.png differ diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename_disabled.svg new file mode 100644 index 000000000..953e12eaa --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename_disabled.svg @@ -0,0 +1,7 @@ + + + icon_重命名_disable + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename_normal.svg b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename_normal.svg new file mode 100644 index 000000000..a2c287789 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/rename_normal.svg @@ -0,0 +1,7 @@ + + + icon_重命名_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list.png b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list.png new file mode 100644 index 000000000..df6cd02de Binary files /dev/null and b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list.png differ diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list_disabled.svg new file mode 100644 index 000000000..b88ee0998 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list_disabled.svg @@ -0,0 +1,7 @@ + + + icon_版本管理_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list_normal.svg b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list_normal.svg new file mode 100644 index 000000000..ebfca4389 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/vcs_list_normal.svg @@ -0,0 +1,7 @@ + + + icon_版本管理_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder.png b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder.png new file mode 100644 index 000000000..4d16dc7ae Binary files /dev/null and b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder.png differ diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder_disabled.svg new file mode 100644 index 000000000..376d372d4 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder_disabled.svg @@ -0,0 +1,7 @@ + + + icon_打开文件_disable + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder_normal.svg b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder_normal.svg new file mode 100644 index 000000000..42ae6cbd3 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/FileDealerPaneIcon/view_folder_normal.svg @@ -0,0 +1,7 @@ + + + icon_所在文件夹_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/bbs_normal.svg b/designer-base/src/main/resources/com/fr/design/images/bbs/bbs_normal.svg new file mode 100644 index 000000000..4a9711e35 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/bbs/bbs_normal.svg @@ -0,0 +1,7 @@ + + + icon/社区/首页_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/bug_normal.svg b/designer-base/src/main/resources/com/fr/design/images/bbs/bug_normal.svg new file mode 100644 index 000000000..d3f4a599e --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/bbs/bug_normal.svg @@ -0,0 +1,7 @@ + + + icon/社区/bug反馈_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/center_normal.svg b/designer-base/src/main/resources/com/fr/design/images/bbs/center_normal.svg new file mode 100644 index 000000000..4fbcfa77d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/bbs/center_normal.svg @@ -0,0 +1,7 @@ + + + icon/社区/活动中心_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/facebook_normal.svg b/designer-base/src/main/resources/com/fr/design/images/bbs/facebook_normal.svg new file mode 100644 index 000000000..be85b39f1 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/bbs/facebook_normal.svg @@ -0,0 +1,9 @@ + + + icon_facebook粉丝圈_normal + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/help_normal.svg b/designer-base/src/main/resources/com/fr/design/images/bbs/help_normal.svg new file mode 100644 index 000000000..d5b808fc9 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/bbs/help_normal.svg @@ -0,0 +1,7 @@ + + + icon/社区/帮助文档_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/need_normal.svg b/designer-base/src/main/resources/com/fr/design/images/bbs/need_normal.svg new file mode 100644 index 000000000..ab21bc50f --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/bbs/need_normal.svg @@ -0,0 +1,7 @@ + + + icon/社区/需求反馈_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/question_normal.svg b/designer-base/src/main/resources/com/fr/design/images/bbs/question_normal.svg new file mode 100644 index 000000000..e94015aaf --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/bbs/question_normal.svg @@ -0,0 +1,7 @@ + + + icon/社区/问题求助_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/sign_normal.svg b/designer-base/src/main/resources/com/fr/design/images/bbs/sign_normal.svg new file mode 100644 index 000000000..3f3f3d875 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/bbs/sign_normal.svg @@ -0,0 +1,7 @@ + + + icon/社区/报表工程师认证_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/solution_normal.svg b/designer-base/src/main/resources/com/fr/design/images/bbs/solution_normal.svg new file mode 100644 index 000000000..1538ce2cf --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/bbs/solution_normal.svg @@ -0,0 +1,7 @@ + + + icon/社区/技术方案_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/video_normal.svg b/designer-base/src/main/resources/com/fr/design/images/bbs/video_normal.svg new file mode 100644 index 000000000..2cde6094d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/bbs/video_normal.svg @@ -0,0 +1,7 @@ + + + icon/社区/视频教程_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/absolute_layout_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/absolute_layout_normal.svg new file mode 100644 index 000000000..f7cbf331c --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/absolute_layout_normal.svg @@ -0,0 +1,7 @@ + + + icon_绝对画薄块_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/card_layout_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/card_layout_16_normal.svg new file mode 100644 index 000000000..df9499aa0 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/card_layout_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_tab块_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/new_form3_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/new_form3_normal.svg new file mode 100644 index 000000000..82797df98 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/new_form3_normal.svg @@ -0,0 +1,8 @@ + + + icon_新建表单_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/newcpts_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/newcpts_normal.svg new file mode 100644 index 000000000..22e258dc2 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/newcpts_normal.svg @@ -0,0 +1,11 @@ + + + icon_标签栏_工作簿_normal + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/open_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/open_normal.svg new file mode 100644 index 000000000..e39847cf2 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/open_normal.svg @@ -0,0 +1,7 @@ + + + icon_导入文件_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/prewidget_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/prewidget_normal.svg new file mode 100644 index 000000000..542c02c26 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/prewidget_normal.svg @@ -0,0 +1,8 @@ + + + icon_控件管理 有小箭头_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_disabled.svg new file mode 100644 index 000000000..cd22a33fc --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_disabled.svg @@ -0,0 +1,8 @@ + + + icon_属性_权限编辑_disabled + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_normal.svg new file mode 100644 index 000000000..6326e5dc5 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_权限编辑_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_selected.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_selected.svg new file mode 100644 index 000000000..aee04091e --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_selected.svg @@ -0,0 +1,7 @@ + + + icon_属性_权限编辑_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_disabled.svg new file mode 100644 index 000000000..676e2123f --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_disabled.svg @@ -0,0 +1,7 @@ + + + icon_属性_单元格属性_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_normal.svg new file mode 100644 index 000000000..17c1c3ad7 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_单元格属性_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_selected.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_selected.svg new file mode 100644 index 000000000..20ec3d345 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_selected.svg @@ -0,0 +1,7 @@ + + + icon_属性_单元格属性_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_disabled.svg new file mode 100644 index 000000000..2996337a6 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_disabled.svg @@ -0,0 +1,7 @@ + + + icon_属性_单元格元素_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_normal.svg new file mode 100644 index 000000000..486824f88 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_单元格元素_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_selected.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_selected.svg new file mode 100644 index 000000000..8fd7efb32 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_selected.svg @@ -0,0 +1,7 @@ + + + icon_属性_单元格元素_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_disabled.svg new file mode 100644 index 000000000..30c6ee777 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_disabled.svg @@ -0,0 +1,7 @@ + + + icon_属性_条件属性_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_normal.svg new file mode 100644 index 000000000..7d05f4183 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_条件属性_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_selected.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_selected.svg new file mode 100644 index 000000000..0a2896f52 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_selected.svg @@ -0,0 +1,7 @@ + + + icon_属性_条件属性_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_disabled.svg new file mode 100644 index 000000000..238d5cb3b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_disabled.svg @@ -0,0 +1,7 @@ + + + icon_属性_配置角色_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_normal.svg new file mode 100644 index 000000000..b10014568 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_配置角色_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_selected.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_selected.svg new file mode 100644 index 000000000..af3a5e3a6 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_selected.svg @@ -0,0 +1,7 @@ + + + icon_属性_配置角色_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/floatelement_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/floatelement_disabled.svg new file mode 100644 index 000000000..78d8cfb9b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/floatelement_disabled.svg @@ -0,0 +1,7 @@ + + + icon_属性_悬浮元素_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/floatelement_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/floatelement_normal.svg new file mode 100644 index 000000000..d80ac6497 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/floatelement_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_悬浮元素_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/floatelement_selected.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/floatelement_selected.svg new file mode 100644 index 000000000..c4f2503c5 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/floatelement_selected.svg @@ -0,0 +1,8 @@ + + + icon_属性_悬浮元素_selected + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/hyperlink_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/hyperlink_disabled.svg new file mode 100644 index 000000000..fbb24140c --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/hyperlink_disabled.svg @@ -0,0 +1,7 @@ + + + icon_属性_超级链接_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/hyperlink_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/hyperlink_normal.svg new file mode 100644 index 000000000..85b0fd1d4 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/hyperlink_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_超级链接_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/hyperlink_selected.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/hyperlink_selected.svg new file mode 100644 index 000000000..96105ce35 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/hyperlink_selected.svg @@ -0,0 +1,7 @@ + + + icon_属性_超级链接_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetlib_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetlib_disabled.svg new file mode 100644 index 000000000..813523a35 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetlib_disabled.svg @@ -0,0 +1,7 @@ + + + icon_属性_组件库_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetlib_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetlib_normal.svg new file mode 100644 index 000000000..e4e76fda3 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetlib_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_组件库_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetlib_selected.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetlib_selected.svg new file mode 100644 index 000000000..8e66ad8b1 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetlib_selected.svg @@ -0,0 +1,7 @@ + + + icon_属性_组件库_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetsettings_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetsettings_disabled.svg new file mode 100644 index 000000000..eded04289 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetsettings_disabled.svg @@ -0,0 +1,7 @@ + + + icon_属性_控件设置_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetsettings_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetsettings_normal.svg new file mode 100644 index 000000000..cc63ec865 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetsettings_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_控件设置_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetsettings_selected.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetsettings_selected.svg new file mode 100644 index 000000000..a5dd18b3e --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetsettings_selected.svg @@ -0,0 +1,7 @@ + + + icon_属性_控件设置_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/redo_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/redo_disabled.svg new file mode 100644 index 000000000..7866d7b44 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/redo_disabled.svg @@ -0,0 +1,7 @@ + + + icon_重做_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/redo_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/redo_normal.svg new file mode 100644 index 000000000..3f1e16e89 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/redo_normal.svg @@ -0,0 +1,7 @@ + + + icon_重做_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/report_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/report_16_normal.svg new file mode 100644 index 000000000..ba2772495 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/report_16_normal.svg @@ -0,0 +1,10 @@ + + + icon_报表块_normal + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/save_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/save_disabled.svg new file mode 100644 index 000000000..7b44ca672 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/save_disabled.svg @@ -0,0 +1,12 @@ + + + icon_保存_disabled + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/save_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/save_normal.svg new file mode 100644 index 000000000..c821dbecf --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/save_normal.svg @@ -0,0 +1,12 @@ + + + icon_保存_normal + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/undo_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/undo_disabled.svg new file mode 100644 index 000000000..ca7b9f1c6 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/undo_disabled.svg @@ -0,0 +1,7 @@ + + + icon_撤销_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/undo_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/undo_normal.svg new file mode 100644 index 000000000..72f9e2933 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/undo_normal.svg @@ -0,0 +1,7 @@ + + + icon_撤销_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/button_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/button_16_normal.svg new file mode 100644 index 000000000..55601500d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/button_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_按钮_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/button_group_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/button_group_16_normal.svg new file mode 100644 index 000000000..97d0a7ae8 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/button_group_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_单选框组_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/check_box_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/check_box_16_normal.svg new file mode 100644 index 000000000..89f848654 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/check_box_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_复选框_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/checkbox_group_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/checkbox_group_16_normal.svg new file mode 100644 index 000000000..67c95d63e --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/checkbox_group_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_复选框组_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/combo_box_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/combo_box_16_normal.svg new file mode 100644 index 000000000..f90c2e496 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/combo_box_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_下拉框_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/combo_check_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/combo_check_16_normal.svg new file mode 100644 index 000000000..b491ff55f --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/combo_check_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_下拉复选框_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/comboboxtree16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/comboboxtree16_normal.svg new file mode 100644 index 000000000..dda6ba788 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/comboboxtree16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_下拉树_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/date_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/date_16_normal.svg new file mode 100644 index 000000000..4f8d4437b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/date_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_日期_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/files_up_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/files_up_normal.svg new file mode 100644 index 000000000..34cd6083a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/files_up_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_文件控件_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/label_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/label_16_normal.svg new file mode 100644 index 000000000..270db542f --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/label_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_标签_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/number_field_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/number_field_16_normal.svg new file mode 100644 index 000000000..8384ab70b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/number_field_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_数字_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/password_field_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/password_field_16_normal.svg new file mode 100644 index 000000000..25884c095 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/password_field_16_normal.svg @@ -0,0 +1,8 @@ + + + icon_控件_密码_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/text_area_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/text_area_16_normal.svg new file mode 100644 index 000000000..6f57cb809 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/text_area_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_文本域_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/text_field_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/text_field_16_normal.svg new file mode 100644 index 000000000..97089c513 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/text_field_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_文本框_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/tree_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/tree_16_normal.svg new file mode 100644 index 000000000..bd685702d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/buttonicon/widget/tree_16_normal.svg @@ -0,0 +1,7 @@ + + + icon_控件_目录树_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/chart/ChartType_normal.svg b/designer-base/src/main/resources/com/fr/design/images/chart/ChartType_normal.svg new file mode 100644 index 000000000..b4e4dcb5b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/chart/ChartType_normal.svg @@ -0,0 +1,9 @@ + + + icon_图表预定义配色_normal + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/control/addPopup_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/control/addPopup_disabled.svg new file mode 100644 index 000000000..d48e1a27b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/control/addPopup_disabled.svg @@ -0,0 +1,16 @@ + + + 编组 + + + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/control/addPopup_normal.svg b/designer-base/src/main/resources/com/fr/design/images/control/addPopup_normal.svg new file mode 100644 index 000000000..8cec802fe --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/control/addPopup_normal.svg @@ -0,0 +1,14 @@ + + + 编组备份 + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/control/edit_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/control/edit_disabled.svg new file mode 100644 index 000000000..9b001cfc5 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/control/edit_disabled.svg @@ -0,0 +1,8 @@ + + + icon_编辑_disable + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/control/edit_normal.svg b/designer-base/src/main/resources/com/fr/design/images/control/edit_normal.svg new file mode 100644 index 000000000..291719452 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/control/edit_normal.svg @@ -0,0 +1,8 @@ + + + icon_编辑_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/control/remove_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/control/remove_disabled.svg new file mode 100644 index 000000000..b57f9a853 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/control/remove_disabled.svg @@ -0,0 +1,11 @@ + + + icon_删除_normal + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/control/remove_normal.svg b/designer-base/src/main/resources/com/fr/design/images/control/remove_normal.svg new file mode 100644 index 000000000..b09268f45 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/control/remove_normal.svg @@ -0,0 +1,9 @@ + + + icon_删除_normal备份 + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/data/bind/distanceconnect_normal.svg b/designer-base/src/main/resources/com/fr/design/images/data/bind/distanceconnect_normal.svg new file mode 100644 index 000000000..ff87b3e47 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/data/bind/distanceconnect_normal.svg @@ -0,0 +1,10 @@ + + + icon_distanceconnect_normal + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/data/bind/localconnect_normal.svg b/designer-base/src/main/resources/com/fr/design/images/data/bind/localconnect_normal.svg new file mode 100644 index 000000000..dad50a605 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/data/bind/localconnect_normal.svg @@ -0,0 +1,8 @@ + + + icon_HomeFolderIcon_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/data/dock/serverdatabase_normal.svg b/designer-base/src/main/resources/com/fr/design/images/data/dock/serverdatabase_normal.svg new file mode 100644 index 000000000..0371b6c90 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/data/dock/serverdatabase_normal.svg @@ -0,0 +1,13 @@ + + + icon_服务器数据集_normal + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/data/source/dataDictionary_normal.svg b/designer-base/src/main/resources/com/fr/design/images/data/source/dataDictionary_normal.svg new file mode 100644 index 000000000..5ca77fe5b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/data/source/dataDictionary_normal.svg @@ -0,0 +1,7 @@ + + + icon_形态_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/edit/redo_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/edit/redo_disabled.svg new file mode 100644 index 000000000..7866d7b44 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/edit/redo_disabled.svg @@ -0,0 +1,7 @@ + + + icon_重做_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/edit/redo_normal.svg b/designer-base/src/main/resources/com/fr/design/images/edit/redo_normal.svg new file mode 100644 index 000000000..6723f533a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/edit/redo_normal.svg @@ -0,0 +1,7 @@ + + + icon_重做_下拉列表用 + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/edit/undo_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/edit/undo_disabled.svg new file mode 100644 index 000000000..ca7b9f1c6 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/edit/undo_disabled.svg @@ -0,0 +1,7 @@ + + + icon_撤销_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/edit/undo_normal.svg b/designer-base/src/main/resources/com/fr/design/images/edit/undo_normal.svg new file mode 100644 index 000000000..f66553747 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/edit/undo_normal.svg @@ -0,0 +1,7 @@ + + + icon_撤销_下拉列表用 + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/expand/cellAttr_normal.svg b/designer-base/src/main/resources/com/fr/design/images/expand/cellAttr_normal.svg new file mode 100644 index 000000000..557ab9d03 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/expand/cellAttr_normal.svg @@ -0,0 +1,7 @@ + + + icon_扩展_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/gui/color/background_normal.svg b/designer-base/src/main/resources/com/fr/design/images/gui/color/background_normal.svg new file mode 100644 index 000000000..112cfef2a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/gui/color/background_normal.svg @@ -0,0 +1,8 @@ + + + icon_文本背景色_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/gui/color/foreground_normal.svg b/designer-base/src/main/resources/com/fr/design/images/gui/color/foreground_normal.svg new file mode 100644 index 000000000..0eaa40e93 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/gui/color/foreground_normal.svg @@ -0,0 +1,7 @@ + + + icon_文本前景色_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/images/gui/popup_normal.svg b/designer-base/src/main/resources/com/fr/design/images/gui/popup_normal.svg new file mode 100644 index 000000000..81e81b0a1 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/gui/popup_normal.svg @@ -0,0 +1,7 @@ + + + icon_组件分隔_箭头下_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/copy_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/copy_disabled.svg new file mode 100644 index 000000000..8f4820de1 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/copy_disabled.svg @@ -0,0 +1,7 @@ + + + icon_复制_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/copy_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/copy_normal.svg new file mode 100644 index 000000000..31127a957 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/copy_normal.svg @@ -0,0 +1,10 @@ + + + icon_复制_normal + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/cut_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/cut_disabled.svg new file mode 100644 index 000000000..c4982036b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/cut_disabled.svg @@ -0,0 +1,9 @@ + + + icon_剪切_disabled + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/cut_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/cut_normal.svg new file mode 100644 index 000000000..a4cc6a17d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/cut_normal.svg @@ -0,0 +1,10 @@ + + + icon_剪切_normal + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/formatBrush_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/formatBrush_normal.svg new file mode 100644 index 000000000..009e60355 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/formatBrush_normal.svg @@ -0,0 +1,9 @@ + + + icon_格式刷_normal + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/merge_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/merge_disabled.svg new file mode 100644 index 000000000..a2b0f3ddf --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/merge_disabled.svg @@ -0,0 +1,11 @@ + + + icon_合并单元格_disabled + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/merge_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/merge_normal.svg new file mode 100644 index 000000000..4a79d5a64 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/merge_normal.svg @@ -0,0 +1,11 @@ + + + icon_合并单元格_normal + + + + a + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/paste_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/paste_disabled.svg new file mode 100644 index 000000000..c2536b377 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/paste_disabled.svg @@ -0,0 +1,10 @@ + + + icon_粘贴_disabled + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/paste_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/paste_normal.svg new file mode 100644 index 000000000..5ae337072 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/paste_normal.svg @@ -0,0 +1,11 @@ + + + icon_粘贴_normal + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/redo_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/redo_disabled.svg new file mode 100644 index 000000000..7866d7b44 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/redo_disabled.svg @@ -0,0 +1,7 @@ + + + icon_重做_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/redo_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/redo_normal.svg new file mode 100644 index 000000000..6723f533a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/redo_normal.svg @@ -0,0 +1,7 @@ + + + icon_重做_下拉列表用 + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/undo_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/undo_disabled.svg new file mode 100644 index 000000000..ca7b9f1c6 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/undo_disabled.svg @@ -0,0 +1,7 @@ + + + icon_撤销_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/undo_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/undo_normal.svg new file mode 100644 index 000000000..f66553747 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/undo_normal.svg @@ -0,0 +1,7 @@ + + + icon_撤销_下拉列表用 + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/unmerge_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/unmerge_disabled.svg new file mode 100644 index 000000000..7ab193216 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/unmerge_disabled.svg @@ -0,0 +1,10 @@ + + + icon_拆分单元格_disabled + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_edit/unmerge_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_edit/unmerge_normal.svg new file mode 100644 index 000000000..faad95c00 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_edit/unmerge_normal.svg @@ -0,0 +1,8 @@ + + + icon_拆分单元格_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_file/export_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_file/export_normal.svg new file mode 100644 index 000000000..693fba938 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_file/export_normal.svg @@ -0,0 +1,8 @@ + + + icon_服务器工具栏_输出_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_file/formExport_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_file/formExport_normal.svg new file mode 100644 index 000000000..cf751fc18 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_file/formExport_normal.svg @@ -0,0 +1,11 @@ + + + icon_新建聚合报表_normal + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_file/pageSetup_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_file/pageSetup_normal.svg new file mode 100644 index 000000000..565fc0aee --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_file/pageSetup_normal.svg @@ -0,0 +1,7 @@ + + + icon_页面设置_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_file/preview_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_file/preview_disabled.svg new file mode 100644 index 000000000..3edcffdc6 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_file/preview_disabled.svg @@ -0,0 +1,11 @@ + + + icon_报表web属性_打印预览_normal + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_file/preview_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_file/preview_normal.svg new file mode 100644 index 000000000..a29073712 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_file/preview_normal.svg @@ -0,0 +1,9 @@ + + + icon_报表web属性_打印预览_normal备份 + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_file/repeatAndFrozen_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_file/repeatAndFrozen_normal.svg new file mode 100644 index 000000000..537d76854 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_file/repeatAndFrozen_normal.svg @@ -0,0 +1,7 @@ + + + icon_重复与冻结设置_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_file/saveAs_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_file/saveAs_normal.svg new file mode 100644 index 000000000..a94f78754 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_file/saveAs_normal.svg @@ -0,0 +1,7 @@ + + + icon_另存为_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_file/save_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_file/save_disabled.svg new file mode 100644 index 000000000..7158a2c9f --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_file/save_disabled.svg @@ -0,0 +1,11 @@ + + + icon_save_disable + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_file/save_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_file/save_normal.svg new file mode 100644 index 000000000..6da2e13e8 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_file/save_normal.svg @@ -0,0 +1,11 @@ + + + icon_save_normal + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_file/switch_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_file/switch_normal.svg new file mode 100644 index 000000000..2bde0dd52 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_file/switch_normal.svg @@ -0,0 +1,7 @@ + + + icon_切换工作目录_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellAttr_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellAttr_normal.svg new file mode 100644 index 000000000..2c8311fed --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellAttr_normal.svg @@ -0,0 +1,7 @@ + + + icon_其他属性_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/bold_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/bold_normal.svg new file mode 100644 index 000000000..173782b1d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/bold_normal.svg @@ -0,0 +1,7 @@ + + + icon_文本工具_加粗_nomal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/bold_selected.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/bold_selected.svg new file mode 100644 index 000000000..16c56767a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/bold_selected.svg @@ -0,0 +1,7 @@ + + + icon_文本工具_加粗_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_center_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_center_normal.svg new file mode 100644 index 000000000..c7ca8f889 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_center_normal.svg @@ -0,0 +1,7 @@ + + + icon_对齐 居中对齐_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_center_selected.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_center_selected.svg new file mode 100644 index 000000000..84625ef78 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_center_selected.svg @@ -0,0 +1,7 @@ + + + icon_对齐 居中对齐_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_left_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_left_normal.svg new file mode 100644 index 000000000..6adf58034 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_left_normal.svg @@ -0,0 +1,7 @@ + + + icon_对齐 左对齐_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_left_selected.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_left_selected.svg new file mode 100644 index 000000000..36d615ae4 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_left_selected.svg @@ -0,0 +1,7 @@ + + + icon_对齐 左对齐_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_right_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_right_normal.svg new file mode 100644 index 000000000..39d4a3336 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_right_normal.svg @@ -0,0 +1,7 @@ + + + icon_对齐 右对齐_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_right_selected.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_right_selected.svg new file mode 100644 index 000000000..7ec881db6 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/h_right_selected.svg @@ -0,0 +1,7 @@ + + + icon_对齐 右对齐_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/italic_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/italic_normal.svg new file mode 100644 index 000000000..7873d4d1a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/italic_normal.svg @@ -0,0 +1,9 @@ + + + icon_文本工具_斜体_normal + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/italic_selected.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/italic_selected.svg new file mode 100644 index 000000000..c942c51ec --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/italic_selected.svg @@ -0,0 +1,9 @@ + + + icon_文本工具_斜体_selected + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/underline_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/underline_normal.svg new file mode 100644 index 000000000..377791ff1 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/underline_normal.svg @@ -0,0 +1,7 @@ + + + icon_文本工具_下划线_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/underline_selected.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/underline_selected.svg new file mode 100644 index 000000000..35df2737d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/underline_selected.svg @@ -0,0 +1,7 @@ + + + icon_文本工具_下划线_selected + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/highlight_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/highlight_normal.svg new file mode 100644 index 000000000..7d05f4183 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/highlight_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_条件属性_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/modified_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/modified_normal.svg new file mode 100644 index 000000000..93b9e7a6d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/modified_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_控件设置_下拉列表用_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/noborder_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/noborder_normal.svg new file mode 100644 index 000000000..f91b02e10 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/noborder_normal.svg @@ -0,0 +1,7 @@ + + + icon_边框_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_help/demo_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_help/demo_normal.svg new file mode 100644 index 000000000..6f18bd2f0 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_help/demo_normal.svg @@ -0,0 +1,7 @@ + + + icon_产品演示_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/bias_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/bias_disabled.svg new file mode 100644 index 000000000..68d174f00 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/bias_disabled.svg @@ -0,0 +1,7 @@ + + + icon_斜线_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/bias_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/bias_normal.svg new file mode 100644 index 000000000..d7cfbd261 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/bias_normal.svg @@ -0,0 +1,7 @@ + + + icon_斜线_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/bindColumn_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/bindColumn_disabled.svg new file mode 100644 index 000000000..9e883967b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/bindColumn_disabled.svg @@ -0,0 +1,7 @@ + + + icon_插入数据列_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/bindColumn_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/bindColumn_normal.svg new file mode 100644 index 000000000..2f6c20966 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/bindColumn_normal.svg @@ -0,0 +1,7 @@ + + + icon_插入数据列_nomal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/cell_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/cell_normal.svg new file mode 100644 index 000000000..7122f3db8 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/cell_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_单元格元素_下拉列表用_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/chart_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/chart_disabled.svg new file mode 100644 index 000000000..9e178473a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/chart_disabled.svg @@ -0,0 +1,7 @@ + + + icon_图表_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/chart_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/chart_normal.svg new file mode 100644 index 000000000..434600201 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/chart_normal.svg @@ -0,0 +1,7 @@ + + + icon_图表_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/floatPop_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/floatPop_normal.svg new file mode 100644 index 000000000..6098d54ff --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/floatPop_normal.svg @@ -0,0 +1,9 @@ + + + icon_悬浮元素&三角_normal + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/float_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/float_normal.svg new file mode 100644 index 000000000..ba67578c1 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/float_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_悬浮元素_下拉列表用_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/formula_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/formula_disabled.svg new file mode 100644 index 000000000..f7070f3d0 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/formula_disabled.svg @@ -0,0 +1,7 @@ + + + icon_公式_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/formula_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/formula_normal.svg new file mode 100644 index 000000000..de9f4effd --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/formula_normal.svg @@ -0,0 +1,7 @@ + + + icon_公式_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/hyperLink_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/hyperLink_normal.svg new file mode 100644 index 000000000..85b0fd1d4 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/hyperLink_normal.svg @@ -0,0 +1,7 @@ + + + icon_属性_超级链接_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/image_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/image_disabled.svg new file mode 100644 index 000000000..d1e0811d3 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/image_disabled.svg @@ -0,0 +1,12 @@ + + + icon_图片__disabled + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/image_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/image_normal.svg new file mode 100644 index 000000000..510537126 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/image_normal.svg @@ -0,0 +1,10 @@ + + + icon_图片_normal + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/insertColumn_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/insertColumn_normal.svg new file mode 100644 index 000000000..358dcc357 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/insertColumn_normal.svg @@ -0,0 +1,13 @@ + + + icon_列_normal + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/insertRow_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/insertRow_normal.svg new file mode 100644 index 000000000..ecf535ba6 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/insertRow_normal.svg @@ -0,0 +1,14 @@ + + + icon_行_normal + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/richtext_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/richtext_disabled.svg new file mode 100644 index 000000000..5951896bb --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/richtext_disabled.svg @@ -0,0 +1,7 @@ + + + icon_富文本_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/richtext_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/richtext_normal.svg new file mode 100644 index 000000000..fa017a755 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/richtext_normal.svg @@ -0,0 +1,7 @@ + + + icon_富文本_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/subReport_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/subReport_disabled.svg new file mode 100644 index 000000000..02889deb4 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/subReport_disabled.svg @@ -0,0 +1,12 @@ + + + icon_子报表_disabled + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/subReport_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/subReport_normal.svg new file mode 100644 index 000000000..37ba3195d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/subReport_normal.svg @@ -0,0 +1,10 @@ + + + icon_子报表_normal + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/text_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/text_disabled.svg new file mode 100644 index 000000000..9f66f8834 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/text_disabled.svg @@ -0,0 +1,7 @@ + + + icon_普通文本_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_insert/text_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_insert/text_normal.svg new file mode 100644 index 000000000..4673b661d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_insert/text_normal.svg @@ -0,0 +1,7 @@ + + + icon_普通文本_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/allow_authority_edit_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/allow_authority_edit_normal.svg new file mode 100644 index 000000000..9d8bff279 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/allow_authority_edit_normal.svg @@ -0,0 +1,8 @@ + + + icon_进入权限编辑_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/background_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/background_normal.svg new file mode 100644 index 000000000..4cacc0f6d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/background_normal.svg @@ -0,0 +1,10 @@ + + + icon_纸张背景_normal + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/delete_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/delete_disabled.svg new file mode 100644 index 000000000..bc72176ba --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/delete_disabled.svg @@ -0,0 +1,7 @@ + + + icon_关闭_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/delete_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/delete_normal.svg new file mode 100644 index 000000000..90832de79 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/delete_normal.svg @@ -0,0 +1,7 @@ + + + icon_关闭_red + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/exit_authority_edit_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/exit_authority_edit_normal.svg new file mode 100644 index 000000000..cb214cf19 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/exit_authority_edit_normal.svg @@ -0,0 +1,7 @@ + + + icon_退出权限编辑_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/footer_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/footer_normal.svg new file mode 100644 index 000000000..a9ebb2515 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/footer_normal.svg @@ -0,0 +1,7 @@ + + + icon_页脚_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/header_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/header_normal.svg new file mode 100644 index 000000000..5a4073df1 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/header_normal.svg @@ -0,0 +1,7 @@ + + + icon_页眉_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/linearAttr_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/linearAttr_normal.svg new file mode 100644 index 000000000..35c6a92e3 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/linearAttr_normal.svg @@ -0,0 +1,7 @@ + + + icon_报表分栏_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/mobile_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/mobile_normal.svg new file mode 100644 index 000000000..f13090adb --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/mobile_normal.svg @@ -0,0 +1,7 @@ + + + icon_移动端属性_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/p_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/p_normal.svg new file mode 100644 index 000000000..326b33cf3 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/p_normal.svg @@ -0,0 +1,7 @@ + + + icon_参数 模板参数_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/reportEngineAttr_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/reportEngineAttr_normal.svg new file mode 100644 index 000000000..b9d5b48bd --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/reportEngineAttr_normal.svg @@ -0,0 +1,14 @@ + + + icon_报表引擎属性_normal + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/reportWriteAttr_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/reportWriteAttr_normal.svg new file mode 100644 index 000000000..d70ac6e2c --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/reportWriteAttr_normal.svg @@ -0,0 +1,11 @@ + + + icon_报表填报属性_normal + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/watermark_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/watermark_normal.svg new file mode 100644 index 000000000..52b0581e8 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/watermark_normal.svg @@ -0,0 +1,7 @@ + + + icon_水印_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_report/webreportattribute_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_report/webreportattribute_normal.svg new file mode 100644 index 000000000..f1929fd4f --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_report/webreportattribute_normal.svg @@ -0,0 +1,8 @@ + + + icon_模板web属性_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_web/connection_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_web/connection_normal.svg new file mode 100644 index 000000000..7c865b45e --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_web/connection_normal.svg @@ -0,0 +1,11 @@ + + + icon_定义数据连接_normal备份 + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_web/datasource_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_web/datasource_normal.svg new file mode 100644 index 000000000..626af16f0 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_web/datasource_normal.svg @@ -0,0 +1,9 @@ + + + icon_模板数据集_normal + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_web/edit_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_web/edit_normal.svg new file mode 100644 index 000000000..8145a3a18 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_web/edit_normal.svg @@ -0,0 +1,8 @@ + + + icon_服务器配置_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_web/function_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_web/function_normal.svg new file mode 100644 index 000000000..349c6ae7a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_web/function_normal.svg @@ -0,0 +1,7 @@ + + + icon_函数管理器_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/m_web/style_normal.svg b/designer-base/src/main/resources/com/fr/design/images/m_web/style_normal.svg new file mode 100644 index 000000000..de5f21cc5 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_web/style_normal.svg @@ -0,0 +1,7 @@ + + + icon_样式_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/reportfit/fit_normal.svg b/designer-base/src/main/resources/com/fr/design/images/reportfit/fit_normal.svg new file mode 100644 index 000000000..21717e20a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/reportfit/fit_normal.svg @@ -0,0 +1,7 @@ + + + icon_模板自适应属性_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/server/platform_16_16_normal.svg b/designer-base/src/main/resources/com/fr/design/images/server/platform_16_16_normal.svg new file mode 100644 index 000000000..2363d22f2 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/server/platform_16_16_normal.svg @@ -0,0 +1,8 @@ + + + icon_报表平台管理_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/server/plugin_normal.svg b/designer-base/src/main/resources/com/fr/design/images/server/plugin_normal.svg new file mode 100644 index 000000000..0ecf1d294 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/server/plugin_normal.svg @@ -0,0 +1,8 @@ + + + icon_插件管理_normal + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/sheet/add_polysheet_normal.svg b/designer-base/src/main/resources/com/fr/design/images/sheet/add_polysheet_normal.svg new file mode 100644 index 000000000..581db9cfb --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/sheet/add_polysheet_normal.svg @@ -0,0 +1,16 @@ + + + icon_sheet_添加数据集_normal + + + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/sheet/next_page_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/sheet/next_page_disabled.svg new file mode 100644 index 000000000..4bbe1ebb4 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/sheet/next_page_disabled.svg @@ -0,0 +1,7 @@ + + + icon_sheet_下一页_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/sheet/next_page_normal.svg b/designer-base/src/main/resources/com/fr/design/images/sheet/next_page_normal.svg new file mode 100644 index 000000000..5526b5488 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/sheet/next_page_normal.svg @@ -0,0 +1,7 @@ + + + icon_sheet_下一页_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/sheet/polysheet_normal.svg b/designer-base/src/main/resources/com/fr/design/images/sheet/polysheet_normal.svg new file mode 100644 index 000000000..508a3eedb --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/sheet/polysheet_normal.svg @@ -0,0 +1,9 @@ + + + icon_sheet_normal + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/sheet/pre_page_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/sheet/pre_page_disabled.svg new file mode 100644 index 000000000..9f8493271 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/sheet/pre_page_disabled.svg @@ -0,0 +1,7 @@ + + + icon_sheet_上一页_disabled + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/sheet/pre_page_normal.svg b/designer-base/src/main/resources/com/fr/design/images/sheet/pre_page_normal.svg new file mode 100644 index 000000000..58c1fb016 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/sheet/pre_page_normal.svg @@ -0,0 +1,7 @@ + + + icon_sheet_上一页_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/images/update/update_new_normal.svg b/designer-base/src/main/resources/com/fr/design/images/update/update_new_normal.svg new file mode 100644 index 000000000..c163c82f2 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/update/update_new_normal.svg @@ -0,0 +1,7 @@ + + + icon_更新升级_normal + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/remote/images/icon_Remote_Design_Auth_Manager_normal@1x_normal.svg b/designer-base/src/main/resources/com/fr/design/remote/images/icon_Remote_Design_Auth_Manager_normal@1x_normal.svg new file mode 100644 index 000000000..d4e2a743e --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/remote/images/icon_Remote_Design_Auth_Manager_normal@1x_normal.svg @@ -0,0 +1,9 @@ + + + icon_远程设计权限管理_normal + + + + + + \ No newline at end of file diff --git a/designer-base/src/test/java/com/fr/base/svg/IconUtilsTest.java b/designer-base/src/test/java/com/fr/base/svg/IconUtilsTest.java new file mode 100644 index 000000000..a1979db1d --- /dev/null +++ b/designer-base/src/test/java/com/fr/base/svg/IconUtilsTest.java @@ -0,0 +1,41 @@ +package com.fr.base.svg; + +import com.fr.cert.token.lang.Assert; +import junit.framework.TestCase; + +import javax.swing.Icon; +import javax.swing.ImageIcon; + +/** + * @author Yvan + * @version 10.0 + * Created by Yvan on 2020/12/25 + */ +public class IconUtilsTest extends TestCase { + + public void testReadIcon() { + String resource = "com/fr/design/images/m_edit/copy.png"; + + Icon pngIcon = IconUtils.readIcon(resource); + assertTrue(pngIcon instanceof ImageIcon); + + resource = "com/fr/design/images/m_edit/copy_normal.svg"; + Icon suffixIcon = IconUtils.readIcon(resource); + assertTrue(suffixIcon instanceof SVGIcon); + + resource = "com/fr/design/images/m_edit/copy"; + Icon noSuffixIcon = IconUtils.readIcon(resource); + assertTrue(noSuffixIcon instanceof SVGIcon); + } + + public void testReadSVGIcon() { + String resource = "com/fr/design/images/m_edit/copy.png"; + + Icon suffixIcon = IconUtils.readSVGIcon(resource, IconUtils.ICON_TYPE_NORMAL); + assertTrue(suffixIcon instanceof SVGIcon); + + resource = "com/fr/design/images/m_edit/copy"; + Icon noSuffixIcon = IconUtils.readSVGIcon(resource, IconUtils.ICON_TYPE_NORMAL); + assertTrue(noSuffixIcon instanceof SVGIcon); + } +} diff --git a/designer-base/src/test/java/com/fr/design/EnvChangeEntranceTest.java b/designer-base/src/test/java/com/fr/design/EnvChangeEntranceTest.java index d9d6e4484..3b680915c 100644 --- a/designer-base/src/test/java/com/fr/design/EnvChangeEntranceTest.java +++ b/designer-base/src/test/java/com/fr/design/EnvChangeEntranceTest.java @@ -1,103 +1,143 @@ -package com.fr.design; - -import com.fr.design.env.DesignerWorkspaceInfo; -import com.fr.design.env.DesignerWorkspaceType; -import com.fr.design.env.LocalDesignerWorkspaceInfo; -import com.fr.design.env.RemoteDesignerWorkspaceInfo; -import com.fr.env.CheckServiceDialog; -import com.fr.invoke.Reflect; -import com.fr.workspace.connect.WorkspaceConnectionInfo; -import com.fr.workspace.engine.channel.http.FunctionalHttpRequest; -import org.easymock.EasyMock; -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.powermock.api.easymock.PowerMock; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -/** - * @author: Maksim - * @Date: Created in 2020/3/5 - * @Description: - */ -@RunWith(PowerMockRunner.class) -@PrepareForTest({FunctionalHttpRequest.class,EnvChangeEntrance.class,CheckServiceDialog.class, DesignerEnvManager.class}) -public class EnvChangeEntranceTest { - - @Test - public void showServiceDialog() throws Exception { - try { - EnvChangeEntrance entrance = EnvChangeEntrance.getInstance(); - DesignerWorkspaceInfo selectedEnv = EasyMock.mock(DesignerWorkspaceInfo.class); - WorkspaceConnectionInfo connectionInfo = EasyMock.mock(WorkspaceConnectionInfo.class); - - String remoteBranch = "Build#persist-2020.02.15.01.01.12.12"; - EasyMock.expect(selectedEnv.getConnection()).andReturn(connectionInfo); - EasyMock.expect(selectedEnv.getType()).andReturn(DesignerWorkspaceType.Remote); - EasyMock.expect(selectedEnv.getRemindTime()).andReturn(null); - - FunctionalHttpRequest request = EasyMock.mock(FunctionalHttpRequest.class); - EasyMock.expect(request.getServiceList()).andReturn(null); - - PowerMock.expectNew(FunctionalHttpRequest.class, connectionInfo).andReturn(request).anyTimes(); - EasyMock.expect(request.getServerBranch()).andReturn(remoteBranch); - - CheckServiceDialog dialog = EasyMock.mock(CheckServiceDialog.class); - PowerMock.expectNew(CheckServiceDialog.class, EasyMock.anyObject(), EasyMock.anyObject(), EasyMock.anyObject(), EasyMock.anyObject()).andReturn(dialog); - - EasyMock.replay(request); - EasyMock.replay(selectedEnv); - EasyMock.replay(connectionInfo); - PowerMock.replayAll(); - - entrance.showServiceDialog(selectedEnv); - Assert.assertTrue(true); - }catch (Exception e){ - Assert.assertTrue(false); - } - } - - @Test - public void testUpdateNotRememberPwdEnv() { - - DesignerEnvManager manager = new DesignerEnvManager(); - - PowerMock.mockStatic(DesignerEnvManager.class); - EasyMock.expect(DesignerEnvManager.getEnvManager()).andReturn(manager).anyTimes(); - - PowerMock.replayAll(); - - EnvChangeEntrance entrance = EnvChangeEntrance.getInstance(); - - manager.putEnv("test1", RemoteDesignerWorkspaceInfo.create(new WorkspaceConnectionInfo("url", "userName", "password", "", "", true))); - manager.putEnv("test2", RemoteDesignerWorkspaceInfo.create(new WorkspaceConnectionInfo("url", "userName", "password", "", "", false))); - manager.putEnv("test3", LocalDesignerWorkspaceInfo.create("name", "path")); - - Reflect.on(entrance).call("updateNotRememberPwdEnv"); - - Assert.assertEquals(manager.getWorkspaceInfo("test1").getConnection(), RemoteDesignerWorkspaceInfo.create(new WorkspaceConnectionInfo("url", "userName", "password", "", "", true)).getConnection()); - Assert.assertEquals(manager.getWorkspaceInfo("test2").getConnection(), RemoteDesignerWorkspaceInfo.create(new WorkspaceConnectionInfo("url", "userName", "", "", "", false)).getConnection()); - Assert.assertEquals(manager.getWorkspaceInfo("test3").getName(), "name"); - Assert.assertEquals(manager.getWorkspaceInfo("test3").getPath(), "path"); - - PowerMock.verifyAll(); - - } - - @Test - public void testIsNotRememberPwd() { - EnvChangeEntrance entrance = EnvChangeEntrance.getInstance(); - - DesignerWorkspaceInfo info1 = RemoteDesignerWorkspaceInfo.create(new WorkspaceConnectionInfo("url", "userName", "password", "", "", true)); - DesignerWorkspaceInfo info2 = RemoteDesignerWorkspaceInfo.create(new WorkspaceConnectionInfo("url", "userName", "111", "", "", false)); - DesignerWorkspaceInfo info3 = LocalDesignerWorkspaceInfo.create("name", "path"); - DesignerWorkspaceInfo info4 = null; - - Assert.assertFalse((boolean) Reflect.on(entrance).call("isNotRememberPwd", info1).get()); - Assert.assertTrue((boolean) Reflect.on(entrance).call("isNotRememberPwd", info2).get()); - Assert.assertFalse((boolean) Reflect.on(entrance).call("isNotRememberPwd", info3).get()); - Assert.assertFalse((boolean) Reflect.on(entrance).call("isNotRememberPwd", info4).get()); - } - -} \ No newline at end of file +//package com.fr.design; +// +////import com.fr.decision.webservice.v10.plugin.helper.PluginErrorRemindHandler; +//import com.fr.design.env.DesignerWorkspaceInfo; +//import com.fr.design.env.DesignerWorkspaceType; +//import com.fr.design.env.LocalDesignerWorkspaceInfo; +//import com.fr.design.env.RemoteDesignerWorkspaceInfo; +//import com.fr.env.CheckServiceDialog; +//import com.fr.env.PluginErrorRemindDialog; +//import com.fr.invoke.Reflect; +//import com.fr.workspace.connect.WorkspaceConnectionInfo; +//import com.fr.workspace.engine.channel.http.FunctionalHttpRequest; +//import org.easymock.EasyMock; +//import org.junit.Assert; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.powermock.api.easymock.PowerMock; +//import org.powermock.core.classloader.annotations.PrepareForTest; +//import org.powermock.modules.junit4.PowerMockRunner; +// +//import java.awt.Frame; +// +///** +// * @author: Maksim +// * @Date: Created in 2020/3/5 +// * @Description: +// */ +//@RunWith(PowerMockRunner.class) +//@PrepareForTest({FunctionalHttpRequest.class, +// EnvChangeEntrance.class, +// CheckServiceDialog.class, +// DesignerEnvManager.class, +// PluginErrorRemindHandler.class}) +//public class EnvChangeEntranceTest { +// +// @Test +// public void showServiceDialog() throws Exception { +// try { +// EnvChangeEntrance entrance = EnvChangeEntrance.getInstance(); +// DesignerWorkspaceInfo selectedEnv = EasyMock.mock(DesignerWorkspaceInfo.class); +// WorkspaceConnectionInfo connectionInfo = EasyMock.mock(WorkspaceConnectionInfo.class); +// +// String remoteBranch = "Build#persist-2020.02.15.01.01.12.12"; +// EasyMock.expect(selectedEnv.getConnection()).andReturn(connectionInfo); +// EasyMock.expect(selectedEnv.getType()).andReturn(DesignerWorkspaceType.Remote); +// EasyMock.expect(selectedEnv.getRemindTime()).andReturn(null); +// +// FunctionalHttpRequest request = EasyMock.mock(FunctionalHttpRequest.class); +// EasyMock.expect(request.getServiceList()).andReturn(null); +// +// PowerMock.expectNew(FunctionalHttpRequest.class, connectionInfo).andReturn(request).anyTimes(); +// EasyMock.expect(request.getServerBranch()).andReturn(remoteBranch); +// +// CheckServiceDialog dialog = EasyMock.mock(CheckServiceDialog.class); +// PowerMock.expectNew(CheckServiceDialog.class, EasyMock.anyObject(Frame.class), EasyMock.anyString(), EasyMock.anyString(), EasyMock.anyString()).andReturn(dialog); +// +// EasyMock.replay(request, selectedEnv, connectionInfo); +// PowerMock.replayAll(); +// +// entrance.showServiceDialog(selectedEnv); +// +// }catch (Exception e){ +// Assert.fail(); +// } +// } +// +// @Test +// public void testUpdateNotRememberPwdEnv() { +// +// DesignerEnvManager manager = new DesignerEnvManager(); +// +// PowerMock.mockStatic(DesignerEnvManager.class); +// EasyMock.expect(DesignerEnvManager.getEnvManager()).andReturn(manager).anyTimes(); +// +// PowerMock.replayAll(); +// +// EnvChangeEntrance entrance = EnvChangeEntrance.getInstance(); +// +// manager.putEnv("test1", RemoteDesignerWorkspaceInfo.create(new WorkspaceConnectionInfo("url", "userName", "password", "", "", true))); +// manager.putEnv("test2", RemoteDesignerWorkspaceInfo.create(new WorkspaceConnectionInfo("url", "userName", "password", "", "", false))); +// manager.putEnv("test3", LocalDesignerWorkspaceInfo.create("name", "path")); +// +// Reflect.on(entrance).call("updateNotRememberPwdEnv"); +// +// Assert.assertEquals(manager.getWorkspaceInfo("test1").getConnection(), RemoteDesignerWorkspaceInfo.create(new WorkspaceConnectionInfo("url", "userName", "password", "", "", true)).getConnection()); +// Assert.assertEquals(manager.getWorkspaceInfo("test2").getConnection(), RemoteDesignerWorkspaceInfo.create(new WorkspaceConnectionInfo("url", "userName", "", "", "", false)).getConnection()); +// Assert.assertEquals(manager.getWorkspaceInfo("test3").getName(), "name"); +// Assert.assertEquals(manager.getWorkspaceInfo("test3").getPath(), "path"); +// +// PowerMock.verifyAll(); +// +// } +// +// @Test +// public void testIsNotRememberPwd() { +// EnvChangeEntrance entrance = EnvChangeEntrance.getInstance(); +// +// DesignerWorkspaceInfo info1 = RemoteDesignerWorkspaceInfo.create(new WorkspaceConnectionInfo("url", "userName", "password", "", "", true)); +// DesignerWorkspaceInfo info2 = RemoteDesignerWorkspaceInfo.create(new WorkspaceConnectionInfo("url", "userName", "111", "", "", false)); +// DesignerWorkspaceInfo info3 = LocalDesignerWorkspaceInfo.create("name", "path"); +// DesignerWorkspaceInfo info4 = null; +// +// Assert.assertFalse(Reflect.on(entrance).call("isNotRememberPwd", info1).get()); +// Assert.assertTrue(Reflect.on(entrance).call("isNotRememberPwd", info2).get()); +// Assert.assertFalse(Reflect.on(entrance).call("isNotRememberPwd", info3).get()); +// Assert.assertFalse(Reflect.on(entrance).call("isNotRememberPwd", info4).get()); +// } +// +// @Test +// public void testPluginErrorRemind() throws Exception { +// +// try { +// DesignerWorkspaceInfo selectedEnv = EasyMock.mock(DesignerWorkspaceInfo.class); +// EasyMock.expect(selectedEnv.getType()).andReturn(DesignerWorkspaceType.Remote).once(); +// EasyMock.expect(selectedEnv.getType()).andReturn(DesignerWorkspaceType.Local).times(2); +// +// PowerMock.mockStatic(PluginErrorRemindHandler.class); +// EasyMock.expect(PluginErrorRemindHandler.pluginErrorContent()).andReturn("").once(); +// EasyMock.expect(PluginErrorRemindHandler.pluginErrorContent()).andReturn("111").once(); +// +// PluginErrorRemindDialog dialog = EasyMock.mock(PluginErrorRemindDialog.class); +// PowerMock.expectNew(PluginErrorRemindDialog.class, EasyMock.anyObject(Frame.class), EasyMock.anyString()).andReturn(dialog).once(); +// +// dialog.setVisible(true); +// EasyMock.expectLastCall(); +// +// EasyMock.replay(selectedEnv, dialog); +// PowerMock.replayAll(); +// +// EnvChangeEntrance entrance = EnvChangeEntrance.getInstance(); +// +// entrance.pluginErrorRemind(selectedEnv); +// entrance.pluginErrorRemind(selectedEnv); +// entrance.pluginErrorRemind(selectedEnv); +// +// +// EasyMock.verify(selectedEnv, dialog); +// PowerMock.verifyAll(); +// } catch (Exception e) { +// Assert.fail(); +// } +// } +//} diff --git a/designer-base/src/test/java/com/fr/design/extra/PluginOperateUtilsTest.java b/designer-base/src/test/java/com/fr/design/extra/PluginOperateUtilsTest.java new file mode 100644 index 000000000..edcde5d11 --- /dev/null +++ b/designer-base/src/test/java/com/fr/design/extra/PluginOperateUtilsTest.java @@ -0,0 +1,155 @@ +//package com.fr.design.extra; +// +//import com.fr.invoke.Reflect; +//import com.fr.json.JSONObject; +//import com.fr.plugin.context.PluginContext; +//import com.fr.plugin.context.PluginMarker; +//import com.fr.plugin.context.PluginMarkerAdapter; +//import com.fr.plugin.error.PluginErrorCode; +//import com.fr.plugin.manage.PluginManager; +//import com.fr.plugin.manage.control.PluginTask; +//import com.fr.plugin.manage.control.PluginTaskResult; +//import org.easymock.EasyMock; +//import org.junit.Assert; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.powermock.api.easymock.PowerMock; +//import org.powermock.core.classloader.annotations.PrepareForTest; +//import org.powermock.modules.junit4.PowerMockRunner; +// +//import java.util.ArrayList; +//import java.util.List; +// +///** +// * @author Lucian.Chen +// * @version 10.0 +// * Created by Lucian.Chen on 2020/12/17 +// */ +//@RunWith(PowerMockRunner.class) +//@PrepareForTest({PluginManager.class, PluginUtils.class}) +//public class PluginOperateUtilsTest { +// +// @Test +// public void testGetSuccessInfo() { +// PluginTaskResult pluginTaskResult = EasyMock.mock(PluginTaskResult.class); +// PluginTaskResult pluginTaskResult1 = EasyMock.mock(PluginTaskResult.class); +// PluginTaskResult pluginTaskResult2 = EasyMock.mock(PluginTaskResult.class); +// +// List pluginTaskResults1 = new ArrayList<>(); +// pluginTaskResults1.add(pluginTaskResult1); +// List pluginTaskResults2 = new ArrayList<>(); +// pluginTaskResults2.add(pluginTaskResult1); +// pluginTaskResults2.add(pluginTaskResult2); +// +// PluginMarker pluginMarker1 = PluginMarker.create("plugin-1", "1.0"); +// PluginMarker pluginMarker2 = PluginMarkerAdapter.create("plugin-2", "2.0", "name-2"); +// PluginTask pluginTask1 = PluginTask.installTask(pluginMarker1); +// PluginTask pluginTask2 = PluginTask.installTask(pluginMarker2); +// +// EasyMock.expect(pluginTaskResult.asList()).andReturn(pluginTaskResults1).times(2); +// EasyMock.expect(pluginTaskResult.asList()).andReturn(pluginTaskResults2).times(2); +// EasyMock.expect(pluginTaskResult1.getCurrentTask()).andReturn(pluginTask1).anyTimes(); +// EasyMock.expect(pluginTaskResult2.getCurrentTask()).andReturn(pluginTask2).anyTimes(); +// +// EasyMock.expect(pluginTaskResult1.errorCode()).andReturn(PluginErrorCode.BelowSystem).anyTimes(); +// EasyMock.expect(pluginTaskResult2.errorCode()).andReturn(PluginErrorCode.BeyondSystem).anyTimes(); +// +// PluginContext plugin1 = EasyMock.mock(PluginContext.class); +// PluginContext plugin2 = EasyMock.mock(PluginContext.class); +// EasyMock.expect(plugin1.getName()).andReturn("context-1").anyTimes(); +// EasyMock.expect(plugin2.getName()).andReturn("context-2").anyTimes(); +// PowerMock.mockStatic(PluginManager.class); +// EasyMock.expect(PluginManager.getContext(pluginMarker1.getPluginID())) +// .andReturn(plugin1).once().andReturn(null).once().andReturn(plugin1).once().andReturn(null).once(); +// EasyMock.expect(PluginManager.getContext(pluginMarker2.getPluginID())) +// .andReturn(plugin2).once().andReturn(null).once(); +// +// EasyMock.replay(pluginTaskResult, pluginTaskResult1, pluginTaskResult2, plugin1, plugin2); +// PowerMock.replayAll(); +// +// // 1个 +// Assert.assertEquals(PluginOperateUtils.getSuccessInfo(pluginTaskResult), "context-1Fine-Core_Plugin_Error_BelowSystem"); +// Assert.assertEquals(PluginOperateUtils.getSuccessInfo(pluginTaskResult), "plugin-1Fine-Core_Plugin_Error_BelowSystem"); +// +// +// // 2个 +// Assert.assertEquals(PluginOperateUtils.getSuccessInfo(pluginTaskResult), "context-1Fine-Core_Plugin_Error_BelowSystem\ncontext-2Fine-Core_Plugin_Error_BeyondSystem"); +// Assert.assertEquals(PluginOperateUtils.getSuccessInfo(pluginTaskResult), "plugin-1Fine-Core_Plugin_Error_BelowSystem\nname-2Fine-Core_Plugin_Error_BeyondSystem"); +// +// EasyMock.verify(pluginTaskResult, pluginTaskResult1, pluginTaskResult2, plugin1, plugin2); +// PowerMock.verifyAll(); +// +// } +// +// +// @Test +// public void testGetPluginName() { +// PluginContext pluginContext = EasyMock.mock(PluginContext.class); +// EasyMock.expect(pluginContext.getName()).andReturn("pluginContext").once(); +// +// PluginMarker pluginMarker1 = PluginMarker.create("id-1", "1"); +// PluginMarker pluginMarker2 = PluginMarkerAdapter.create("id-2", "2", "name-2"); +// +// EasyMock.replay(pluginContext); +// +// Assert.assertEquals(Reflect.on(PluginOperateUtils.class).call("getPluginName", null, null).get(), ""); +// Assert.assertEquals(Reflect.on(PluginOperateUtils.class).call("getPluginName", pluginContext, pluginMarker1).get(), "pluginContext"); +// Assert.assertEquals(Reflect.on(PluginOperateUtils.class).call("getPluginName", null, pluginMarker1).get(), "id-1"); +// Assert.assertEquals(Reflect.on(PluginOperateUtils.class).call("getPluginName", null, pluginMarker2).get(), "name-2"); +// +// EasyMock.verify(pluginContext); +// } +// +// @Test +// public void testUpdateMarker2Online() { +// +// try { +// PluginMarker pluginMarker = PluginMarker.create("plugin-1", "1.0"); +// String pluginJson = "{\"id\": plugin-1,\"name\": \"图表(新特性)\",\"version\": \"8.6.16\"}"; +// JSONObject object = new JSONObject(pluginJson); +// +// PowerMock.mockStatic(PluginUtils.class); +// EasyMock.expect(PluginUtils.getLatestPluginInfo("plugin-1")).andReturn(object).once(); +// EasyMock.expect(PluginUtils.getLatestPluginInfo("plugin-1")).andThrow(new NullPointerException()).once(); +// +// PowerMock.replayAll(); +// +// PluginMarker marker1 = PluginOperateUtils.updateMarker2Online(pluginMarker); +// PluginMarker marker2 = PluginOperateUtils.updateMarker2Online(pluginMarker); +// +// Assert.assertTrue(marker1 instanceof PluginMarkerAdapter); +// Assert.assertEquals(marker1.getPluginID(), "plugin-1"); +// Assert.assertEquals(marker1.getVersion(), "1.0"); +// Assert.assertEquals(((PluginMarkerAdapter) marker1).getPluginName(), "图表(新特性)"); +// Assert.assertEquals(marker2, pluginMarker); +// +// PowerMock.verifyAll(); +// } catch (Exception e) { +// Assert.fail(); +// } +// +// } +// +// +// @Test +// public void testUpdatePluginOnline() { +// try { +// PluginMarker pluginMarker = PluginMarker.create("plugin-1", "1.0"); +// String pluginJson = "{\"id\": plugin-1,\"name\": \"图表(新特性)\",\"version\": \"8.6.16\"}"; +// JSONObject object = new JSONObject(pluginJson); +// +// PowerMock.mockStatic(PluginUtils.class); +// EasyMock.expect(PluginUtils.getLatestPluginInfo("plugin-1")).andReturn(object).once(); +// EasyMock.expect(PluginUtils.getInstalledPluginMarkerByID("plugin-1")).andReturn(pluginMarker).once(); +// +// PowerMock.replayAll(); +// +// PluginOperateUtils.updatePluginOnline(pluginMarker, null); +// +// PowerMock.verifyAll(); +// } catch (Exception e) { +// Assert.fail(); +// } +// } +// +//} diff --git a/designer-base/src/test/java/com/fr/design/extra/PluginUtilsTest.java b/designer-base/src/test/java/com/fr/design/extra/PluginUtilsTest.java new file mode 100644 index 000000000..bbb809ebf --- /dev/null +++ b/designer-base/src/test/java/com/fr/design/extra/PluginUtilsTest.java @@ -0,0 +1,23 @@ +package com.fr.design.extra; + +import com.fr.invoke.Reflect; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author Lucian.Chen + * @version 10.0 + * Created by Lucian.Chen on 2020/12/18 + */ +public class PluginUtilsTest { + + @Test + public void testIsCompatibleCurrentEnv() { + Assert.assertFalse(Reflect.on(PluginUtils.class).call("isCompatibleCurrentEnv", "~9.0").get()); + Assert.assertTrue(Reflect.on(PluginUtils.class).call("isCompatibleCurrentEnv", "9.0").get()); + Assert.assertTrue(Reflect.on(PluginUtils.class).call("isCompatibleCurrentEnv", "9~").get()); + Assert.assertTrue(Reflect.on(PluginUtils.class).call("isCompatibleCurrentEnv", "10").get()); + Assert.assertFalse(Reflect.on(PluginUtils.class).call("isCompatibleCurrentEnv", "11").get()); + } + +} diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartPreStyleAction.java b/designer-chart/src/main/java/com/fr/design/module/ChartPreStyleAction.java index 5d7a9e67d..61b9a8c4f 100644 --- a/designer-chart/src/main/java/com/fr/design/module/ChartPreStyleAction.java +++ b/designer-chart/src/main/java/com/fr/design/module/ChartPreStyleAction.java @@ -1,6 +1,7 @@ package com.fr.design.module; import com.fr.base.ChartPreStyleConfig; +import com.fr.base.svg.IconUtils; import com.fr.concurrent.NamedThreadFactory; import com.fr.design.actions.UpdateAction; import com.fr.design.dialog.BasicDialog; @@ -8,7 +9,6 @@ import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; import com.fr.design.menu.MenuKeySet; -import com.fr.general.IOUtils; import com.fr.module.ModuleContext; import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; @@ -33,7 +33,7 @@ public class ChartPreStyleAction extends UpdateAction { this.setMenuKeySet(CHART_DEFAULT_STYLE); this.setName(getMenuKeySet().getMenuKeySetName()+ "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(IOUtils.readIcon("com/fr/design/images/chart/ChartType.png")); + this.setSmallIcon("com/fr/design/images/chart/ChartType"); this.generateAndSetSearchText(ChartPreStyleManagerPane.class.getName()); } @@ -101,4 +101,4 @@ public class ChartPreStyleAction extends UpdateAction { return null; } }; -} \ No newline at end of file +} diff --git a/designer-chart/src/main/java/com/fr/extended/chart/UIComboBoxWithNone.java b/designer-chart/src/main/java/com/fr/extended/chart/UIComboBoxWithNone.java index 65e7bbb43..9c6636fd7 100644 --- a/designer-chart/src/main/java/com/fr/extended/chart/UIComboBoxWithNone.java +++ b/designer-chart/src/main/java/com/fr/extended/chart/UIComboBoxWithNone.java @@ -23,7 +23,11 @@ public class UIComboBoxWithNone extends UIComboBox { } protected void setDefaultSelectedItem() { - setSelectedItem(StringUtils.EMPTY); + // JComboBox.setSelectedItem(o) + // if(o!=null)寻找o对应的下拉选项 如果找不到 还是选中之前选中的 + // 所以空字符串 不是选中空 是选中上次选中的 + // 所以这边 可以写setSelectedItem(null) or setSelectedIndex(-1) + setSelectedIndex(-1); } @Override diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/gauge/VanChartGaugeDetailAxisPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/gauge/VanChartGaugeDetailAxisPane.java index 1a4fccf58..cd6c4fcf6 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/gauge/VanChartGaugeDetailAxisPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/gauge/VanChartGaugeDetailAxisPane.java @@ -176,6 +176,7 @@ public class VanChartGaugeDetailAxisPane extends VanChartValueAxisPane { gaugeStyle = gaugePlot.getGaugeStyle(); reLayoutPane(false); parent.initAllListeners(); + setParentPane(parent); } populateBean(gaugePlot.getGaugeAxis()); } diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java index 20ce7452b..624e6c879 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java @@ -158,14 +158,14 @@ public class VanChartPlotLabelDetailPane extends BasicPane { return jPanel; } - private JPanel createLabelBorderPane() { + protected JPanel createLabelBorderPane() { borderPane = new VanChartBorderWithShapePane(); borderPaneWithTitle = TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Fine-Design_Chart_Border"), borderPane); return borderPaneWithTitle; } - private JPanel createLabelBackgroundPane() { + protected JPanel createLabelBackgroundPane() { backgroundPane = new VanChartBackgroundWithOutImagePane() { protected Component[][] getPaneComponents() { diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/VanChartMapSeriesPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/VanChartMapSeriesPane.java index 00a847e2e..db257de3d 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/map/VanChartMapSeriesPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/map/VanChartMapSeriesPane.java @@ -37,6 +37,7 @@ import com.fr.van.chart.designer.component.marker.VanChartImageMarkerPane; import com.fr.van.chart.designer.other.VanChartInteractivePane; import com.fr.van.chart.designer.style.series.VanChartColorValueSeriesPane; import com.fr.van.chart.designer.style.series.VanChartEffectPane; +import com.fr.van.chart.map.designer.style.series.VanChartMapAnchorMarkerPane; import com.fr.van.chart.map.designer.style.series.VanChartMapScatterMarkerPane; import com.fr.van.chart.map.line.VanChartCurvePane; import com.fr.van.chart.map.line.VanChartLineMapEffectPane; @@ -61,16 +62,24 @@ import java.awt.event.ItemListener; * 地图-系列界面 */ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { - private static final String AREA_STRING = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Region"); - private static final String POINT_STRING = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Point"); - private static final String LINE_STRING = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Flow"); + private static final String AREA_STRING = Toolkit.i18nText("Fine-Design_Chart_Region"); + private static final String POINT_STRING = Toolkit.i18nText("Fine-Design_Chart_Point"); + private static final String LINE_STRING = Toolkit.i18nText("Fine-Design_Chart_Flow"); - private static final String[] MARKER_TYPES = new String[]{MapMarkerType.DEFAULT.toLocalString(), + private static final String[] MARKER_TYPES = new String[]{MapMarkerType.ANCHOR.toLocalString(), MapMarkerType.COMMON.toLocalString(), MapMarkerType.BUBBLE.toLocalString(), MapMarkerType.IMAGE.toLocalString()}; - private static final String[] LARGE_MARKER_TYPES = new String[]{MapMarkerType.DEFAULT.toLocalString(), + private static final String[] LARGE_MARKER_TYPES = new String[]{MapMarkerType.ANCHOR.toLocalString(), MapMarkerType.COMMON.toLocalString(), MapMarkerType.BUBBLE.toLocalString()}; + private static final String[] COMPATIBLE_MARKER_TYPES = new String[]{MapMarkerType.DEFAULT.toLocalString(), + MapMarkerType.ANCHOR.toLocalString(), MapMarkerType.COMMON.toLocalString(), + MapMarkerType.BUBBLE.toLocalString(), MapMarkerType.IMAGE.toLocalString()}; + + private static final String[] COMPATIBLE_LARGE_MARKER_TYPES = new String[]{MapMarkerType.DEFAULT.toLocalString(), + MapMarkerType.ANCHOR.toLocalString(), MapMarkerType.COMMON.toLocalString(), + MapMarkerType.BUBBLE.toLocalString()}; + //custom private UIButtonGroup areaPointAndLineGroup; @@ -85,9 +94,15 @@ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { //point private UIComboBox markerTypeCom; + + private VanChartMapAnchorMarkerPane anchorMarkerPane; private VanChartMapScatterMarkerPane commonMarkerPane; private VanChartBubblePane bubblePane; private VanChartImageMarkerPane imageMarkerPane; + + private CardLayout markerTypeLayout; + private JPanel markerContentPane; + private UINumberDragPane pointAlphaPane; private VanChartEffectPane pointEffectPane; @@ -147,7 +162,7 @@ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { checkLineMapLarge(); } }); - JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Large_Model"), lineMapLargeDataModelGroup); + JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Large_Model"), lineMapLargeDataModelGroup); return createLargeDataModelPane(panel); } @@ -162,14 +177,11 @@ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { if (pointEffectPane != null) { GUICoreUtils.setEnabled(pointEffectPane, !largeModel); } - if (markerTypeCom != null) { - Object selectedItem = markerTypeCom.getSelectedItem(); - markerTypeCom.setModel(new DefaultComboBoxModel(largeModel ? LARGE_MARKER_TYPES : MARKER_TYPES)); - if (ComparatorUtils.equals(MapMarkerType.IMAGE.toLocalString(), selectedItem) && largeModel) { - markerTypeCom.setSelectedItem(MapMarkerType.COMMON.toLocalString()); - } else { - markerTypeCom.setSelectedItem(selectedItem); - } + + VanChartMapPlot mapPlot = (VanChartMapPlot) plot; + refreshMarkerComboboxModel(mapPlot); + if (largeModel) { + checkLargeModelPlotSelectedItem(mapPlot); } } @@ -182,6 +194,56 @@ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { } } + private void checkLargeModelPlotSelectedItem(VanChartMapPlot plot) { + String selected = plot.getMapMarkerType().toLocalString(); + + if (ComparatorUtils.equals(MapMarkerType.IMAGE.toLocalString(), selected)) { + markerTypeCom.setSelectedItem(MapMarkerType.COMMON.toLocalString()); + } else { + markerTypeCom.setSelectedItem(selected); + } + } + + private boolean shouldRefreshComboboxModel(VanChartMapPlot plot) { + if (markerTypeCom == null) { + return false; + } + + MapMarkerType selectedType = plot.getMapMarkerType(); + DefaultComboBoxModel model = (DefaultComboBoxModel) markerTypeCom.getModel(); + + if (selectedType == MapMarkerType.DEFAULT) { + return model.getIndexOf(MapMarkerType.DEFAULT.toLocalString()) < 0; + } + + return model.getIndexOf(MapMarkerType.DEFAULT.toLocalString()) > -1; + } + + private void refreshMarkerComboboxModel(VanChartMapPlot plot) { + if (largeModel(plot)) { + + if (plot.getMapMarkerType() == MapMarkerType.DEFAULT) { + markerTypeCom.setModel(new DefaultComboBoxModel<>(COMPATIBLE_LARGE_MARKER_TYPES)); + } else { + markerTypeCom.setModel(new DefaultComboBoxModel<>(LARGE_MARKER_TYPES)); + } + } else { + + if (plot.getMapMarkerType() == MapMarkerType.DEFAULT) { + markerTypeCom.setModel(new DefaultComboBoxModel<>(COMPATIBLE_MARKER_TYPES)); + } else { + markerTypeCom.setModel(new DefaultComboBoxModel<>(MARKER_TYPES)); + } + } + + String selected = plot.getMapMarkerType().toLocalString(); + + markerTypeCom.setSelectedItem(selected); + if (markerTypeLayout != null && markerContentPane != null) { + markerTypeLayout.show(markerContentPane, selected); + } + } + @Override protected JPanel getContentPane(boolean custom) { JPanel panel = new JPanel(new BorderLayout()); @@ -272,7 +334,7 @@ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { Component[][] components = new Component[][]{ new Component[]{getColorPane(MapType.AREA)}, - new Component[]{TableLayout4VanChartHelper.createExpandablePaneWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Border"), borderWithAlphaPane)}, + new Component[]{TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Fine-Design_Chart_Border"), borderWithAlphaPane)}, }; return TableLayoutHelper.createTableLayoutPane(components, row, col); @@ -357,28 +419,29 @@ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { private Component createCurvePane() { curvePane = new VanChartCurvePane(); - return TableLayout4VanChartHelper.createExpandablePaneWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Curve"), curvePane); + return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Fine-Design_Chart_Curve"), curvePane); } private Component createAnimationPane() { lineMapEffectPane = new VanChartLineMapEffectPane(); - return TableLayout4VanChartHelper.createExpandablePaneWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Animation"), lineMapEffectPane); + return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Fine-Design_Chart_Animation"), lineMapEffectPane); } //不透明度 private JPanel createPointAlphaPane() { pointAlphaPane = new UINumberDragPane(0, 100); - return TableLayout4VanChartHelper.createGapTableLayoutPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Alpha"), pointAlphaPane); + return TableLayout4VanChartHelper.createGapTableLayoutPane(Toolkit.i18nText("Fine-Design_Report_Alpha"), pointAlphaPane); } private JPanel createPointEffectPane() { pointEffectPane = new VanChartEffectPane(); - return TableLayout4VanChartHelper.createExpandablePaneWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Animation"), pointEffectPane); + return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Fine-Design_Chart_Animation"), pointEffectPane); } private JPanel createMarkerComPane() { - markerTypeCom = new UIComboBox(MARKER_TYPES); + markerTypeCom = new UIComboBox(COMPATIBLE_MARKER_TYPES); + anchorMarkerPane = new VanChartMapAnchorMarkerPane(); commonMarkerPane = new VanChartMapScatterMarkerPane(); commonMarkerPane.setBorder(TableLayout4VanChartHelper.SECOND_EDIT_AREA_BORDER); bubblePane = new VanChartBubblePane() { @@ -396,31 +459,34 @@ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { }; imageMarkerPane = new VanChartImageMarkerPane(); - final JPanel[] panes = new JPanel[]{new JPanel(), commonMarkerPane, bubblePane, imageMarkerPane}; - final CardLayout cardLayout = new CardLayout(); - final JPanel cardPane = new JPanel(cardLayout) { + final JPanel[] panes = new JPanel[]{new JPanel(), anchorMarkerPane, commonMarkerPane, bubblePane, imageMarkerPane}; + + markerTypeLayout = new CardLayout(); + markerContentPane = new JPanel(markerTypeLayout) { @Override public Dimension getPreferredSize() { - return panes[markerTypeCom.getSelectedIndex()].getPreferredSize(); + int index = MapMarkerType.parse((String) markerTypeCom.getSelectedItem()).ordinal(); + + return panes[index].getPreferredSize(); } }; - for (int i = 0, len = MARKER_TYPES.length; i < len; i++) { - cardPane.add(panes[i], MARKER_TYPES[i]); + for (int i = 0, len = COMPATIBLE_MARKER_TYPES.length; i < len; i++) { + markerContentPane.add(panes[i], COMPATIBLE_MARKER_TYPES[i]); } markerTypeCom.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { - cardLayout.show(cardPane, MARKER_TYPES[markerTypeCom.getSelectedIndex()]); + markerTypeLayout.show(markerContentPane, (String) markerTypeCom.getSelectedItem()); } }); - JPanel northPane = TableLayout4VanChartHelper.createGapTableLayoutPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Point_Style"), markerTypeCom); + JPanel northPane = TableLayout4VanChartHelper.createGapTableLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Point_Style"), markerTypeCom); JPanel markerPane = new JPanel(new BorderLayout(0, 6)); markerPane.add(northPane, BorderLayout.NORTH); - markerPane.add(cardPane, BorderLayout.CENTER); - return TableLayout4VanChartHelper.createExpandablePaneWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Marker"), markerPane); + markerPane.add(markerContentPane, BorderLayout.CENTER); + return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Toolkit.i18nText("Fine-Design_Chart_Marker"), markerPane); } private JPanel createCustomPane(Plot plot) { @@ -500,9 +566,16 @@ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { } public void populateBean(Plot plot) { - if (plot != null && plot instanceof VanChartMapPlot) { + if (plot instanceof VanChartMapPlot) { + VanChartMapPlot mapPlot = (VanChartMapPlot) plot; + if (markerTypeCom != null) { - markerTypeCom.setSelectedItem(((VanChartMapPlot) plot).getMapMarkerType().toLocalString()); + + if (shouldRefreshComboboxModel(mapPlot)) { + refreshMarkerComboboxModel(mapPlot); + } + + markerTypeCom.setSelectedItem(mapPlot.getMapMarkerType().toLocalString()); } if (nullValueColorBox != null) { //TODO Bjorn 地图空值背景自动 @@ -513,29 +586,35 @@ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { } nullValueColorBox.setSelectObject(((VanChartMapPlot) plot).getNullValueColor()); checkNullValueButton();*/ - nullValueColorBox.setSelectObject(((VanChartMapPlot) plot).getNullValueColor()); + nullValueColorBox.setSelectObject(mapPlot.getNullValueColor()); } //大数据模式 恢复用注释。下面3行删除。 if (lineMapLargeDataModelGroup != null) { - lineMapLargeDataModelGroup.setSelectedItem(((VanChartMapPlot) plot).getLineMapDataProcessor()); + lineMapLargeDataModelGroup.setSelectedItem(mapPlot.getLineMapDataProcessor()); } } super.populateBean(plot); } public void updateBean(Plot plot) { - if (plot != null && plot instanceof VanChartMapPlot) { + if (plot instanceof VanChartMapPlot) { + VanChartMapPlot mapPlot = (VanChartMapPlot) plot; + if (markerTypeCom != null) { - ((VanChartMapPlot) plot).setMapMarkerType(MapMarkerType.parseInt(markerTypeCom.getSelectedIndex())); + mapPlot.setMapMarkerType(MapMarkerType.parse((String) markerTypeCom.getSelectedItem())); + + if (shouldRefreshComboboxModel(mapPlot)) { + refreshMarkerComboboxModel(mapPlot); + } } if (nullValueColorBox != null) { //TODO Bjorn 地图空值背景自动 //((VanChartMapPlot) plot).setAutoNullValue(nullValueAuto.getSelectedIndex() == 0); - ((VanChartMapPlot) plot).setNullValueColor(nullValueColorBox.getSelectObject()); + mapPlot.setNullValueColor(nullValueColorBox.getSelectObject()); } //大数据模式 恢复用注释。下面3行删除。 if (lineMapLargeDataModelGroup != null) { - ((VanChartMapPlot) plot).setLineMapDataProcessor(lineMapLargeDataModelGroup.getSelectedItem()); + mapPlot.setLineMapDataProcessor(lineMapLargeDataModelGroup.getSelectedItem()); } } super.updateBean(plot); @@ -587,6 +666,10 @@ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { } VanChartAttrMarker attrMarker = defaultAttr.getExisted(VanChartAttrMarker.class); + + if (anchorMarkerPane != null) { + anchorMarkerPane.populateBean(attrMarker); + } if (commonMarkerPane != null) { commonMarkerPane.populateBean(attrMarker); } @@ -669,11 +752,16 @@ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { VanChartAttrBubble attrBubble = defaultAttr.getExisted(VanChartAttrBubble.class); defaultAttr.remove(attrBubble); if (markerTypeCom != null) { - if (markerTypeCom.getSelectedIndex() == 1) { + String selected = (String) markerTypeCom.getSelectedItem(); + MapMarkerType markerType = MapMarkerType.parse(selected); + + if (markerType == MapMarkerType.ANCHOR) { + defaultAttr.addDataSeriesCondition(anchorMarkerPane.updateBean()); + } else if (markerType == MapMarkerType.COMMON) { defaultAttr.addDataSeriesCondition(commonMarkerPane.updateBean()); - } else if (markerTypeCom.getSelectedIndex() == 2) { + } else if (markerType == MapMarkerType.BUBBLE) { defaultAttr.addDataSeriesCondition(bubblePane.updateBean()); - } else if (markerTypeCom.getSelectedIndex() == 3) { + } else if (markerType == MapMarkerType.IMAGE) { defaultAttr.addDataSeriesCondition(imageMarkerPane.updateBean()); } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/designer/other/VanChartMapConditionAttrContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/designer/other/VanChartMapConditionAttrContentPane.java index a29a6dd03..b659aee19 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/map/designer/other/VanChartMapConditionAttrContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/map/designer/other/VanChartMapConditionAttrContentPane.java @@ -9,6 +9,7 @@ import com.fr.plugin.chart.type.MapType; import com.fr.van.chart.designer.other.VanChartConditionAttrContentPane; import com.fr.van.chart.map.designer.VanMapAreaAndPointGroupPane; import com.fr.van.chart.map.designer.VanMapAreaPointAndLineGroupPane; +import com.fr.van.chart.map.designer.other.condition.pane.VanChartAnchorPointMapConditionPane; import com.fr.van.chart.map.designer.other.condition.pane.VanChartBubblePointMapConditionPane; import com.fr.van.chart.map.designer.other.condition.pane.VanChartCommonPointMapConditionPane; import com.fr.van.chart.map.designer.other.condition.pane.VanChartDefaultPointMapConditionPane; @@ -99,6 +100,8 @@ public class VanChartMapConditionAttrContentPane extends VanChartConditionAttrCo private Class getPointMapConditionClassPane(VanChartMapPlot plot) { MapMarkerType mapMarkerType = plot.getMapMarkerType(); switch (mapMarkerType){ + case ANCHOR: + return VanChartAnchorPointMapConditionPane.class; case COMMON: return VanChartCommonPointMapConditionPane.class; case BUBBLE: diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/designer/other/condition/item/VanChartAnchorMarkerConditionPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/designer/other/condition/item/VanChartAnchorMarkerConditionPane.java new file mode 100644 index 000000000..fd8dc9669 --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/map/designer/other/condition/item/VanChartAnchorMarkerConditionPane.java @@ -0,0 +1,42 @@ +package com.fr.van.chart.map.designer.other.condition.item; + +import com.fr.chart.base.DataSeriesCondition; +import com.fr.design.condition.ConditionAttributesPane; +import com.fr.design.i18n.Toolkit; +import com.fr.plugin.chart.base.VanChartAttrMarker; +import com.fr.van.chart.designer.other.condition.item.AbstractNormalMultiLineConditionPane; +import com.fr.van.chart.map.designer.style.series.VanChartMapAnchorMarkerPane; + +import javax.swing.JPanel; + +public class VanChartAnchorMarkerConditionPane extends AbstractNormalMultiLineConditionPane { + private VanChartMapAnchorMarkerPane anchorMarkerPane; + + public VanChartAnchorMarkerConditionPane(ConditionAttributesPane conditionAttributesPane) { + super(conditionAttributesPane); + } + + protected String getItemLabelString() { + return Toolkit.i18nText("Fine-Design_Chart_Marker"); + } + + protected JPanel initContentPane() { + anchorMarkerPane = new VanChartMapAnchorMarkerPane(); + return anchorMarkerPane; + } + + public String nameForPopupMenuItem() { + return Toolkit.i18nText("Fine-Design_Chart_Marker"); + } + + public void populate(DataSeriesCondition condition) { + if (condition instanceof VanChartAttrMarker) { + anchorMarkerPane.populateBean((VanChartAttrMarker) condition); + } + } + + public DataSeriesCondition update() { + return anchorMarkerPane.updateBean(); + } +} + diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/designer/other/condition/pane/VanChartAnchorPointMapConditionPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/designer/other/condition/pane/VanChartAnchorPointMapConditionPane.java new file mode 100644 index 000000000..aba352a2d --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/map/designer/other/condition/pane/VanChartAnchorPointMapConditionPane.java @@ -0,0 +1,26 @@ +package com.fr.van.chart.map.designer.other.condition.pane; + +import com.fr.chart.chartattr.Plot; +import com.fr.plugin.chart.attr.EffectHelper; +import com.fr.plugin.chart.base.AttrEffect; +import com.fr.plugin.chart.base.AttrFloatColor; +import com.fr.plugin.chart.base.VanChartAttrMarker; +import com.fr.van.chart.designer.other.condition.item.VanChartEffectConditionPane; +import com.fr.van.chart.designer.other.condition.item.VanChartFloatColorConditionPane; +import com.fr.van.chart.map.designer.other.condition.item.VanChartAnchorMarkerConditionPane; + +public class VanChartAnchorPointMapConditionPane extends VanChartMapConditionPane { + + public VanChartAnchorPointMapConditionPane(Plot plot) { + super(plot); + } + + protected void addDiffAction() { + classPaneMap.put(VanChartAttrMarker.class, new VanChartAnchorMarkerConditionPane(this)); + if (addLabelOrEffectAction()) { + addLabelAction(); + classPaneMap.put(AttrFloatColor.class, new VanChartFloatColorConditionPane(this)); + classPaneMap.put(AttrEffect.class, new VanChartEffectConditionPane(this, EffectHelper.getScatterPlotDefaultEffect())); + } + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/series/VanChartMapAnchorMarkerPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/series/VanChartMapAnchorMarkerPane.java new file mode 100644 index 000000000..d4c1f477b --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/series/VanChartMapAnchorMarkerPane.java @@ -0,0 +1,64 @@ +package com.fr.van.chart.map.designer.style.series; + +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.i18n.Toolkit; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.plugin.chart.base.VanChartAttrMarker; +import com.fr.plugin.chart.marker.type.MarkerType; +import com.fr.van.chart.designer.TableLayout4VanChartHelper; + +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.Component; + +public class VanChartMapAnchorMarkerPane extends BasicBeanPane { + + private UISpinner anchorSize; + + public VanChartMapAnchorMarkerPane() { + anchorSize = new UISpinner(0, Double.MAX_VALUE, 0.5, 28); + + Component[][] components = new Component[][]{ + new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Size")), anchorSize} + }; + + double p = TableLayout.PREFERRED; + double f = TableLayout.FILL; + double e = TableLayout4VanChartHelper.SECOND_EDIT_AREA_WIDTH; + double[] row = {p}; + double[] col = {f, e}; + + JPanel content = TableLayoutHelper.createTableLayoutPane(components, row, col); + content.setBorder(TableLayout4VanChartHelper.SECOND_EDIT_AREA_BORDER); + + this.setLayout(new BorderLayout()); + this.add(content, BorderLayout.CENTER); + } + + public void populateBean(VanChartAttrMarker marker) { + if (marker == null) { + marker = new VanChartAttrMarker(); + marker.setCommon(false); + marker.setMarkerType(MarkerType.MARKER_AUTO); + } + + this.anchorSize.setValue(marker.getAnchorSize()); + } + + public VanChartAttrMarker updateBean() { + VanChartAttrMarker marker = new VanChartAttrMarker(); + + marker.setCommon(false); + marker.setMarkerType(MarkerType.MARKER_AUTO); + marker.setAnchorSize(this.anchorSize.getValue()); + + return marker; + } + + protected String title4PopupWindow() { + return "anchorMarker"; + } +} diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/server/ChartMapEditorAction.java b/designer-chart/src/main/java/com/fr/van/chart/map/server/ChartMapEditorAction.java index dc64adef1..e9b0373a8 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/map/server/ChartMapEditorAction.java +++ b/designer-chart/src/main/java/com/fr/van/chart/map/server/ChartMapEditorAction.java @@ -1,10 +1,10 @@ package com.fr.van.chart.map.server; import com.fr.base.ServerConfig; +import com.fr.base.svg.IconUtils; import com.fr.design.DesignerEnvManager; import com.fr.design.actions.UpdateAction; import com.fr.general.GeneralContext; -import com.fr.general.IOUtils; import com.fr.start.ServerStarter; import com.fr.workspace.WorkContext; @@ -17,7 +17,7 @@ import java.awt.event.ActionEvent; public class ChartMapEditorAction extends UpdateAction { public ChartMapEditorAction(){ - this.setSmallIcon(IOUtils.readIcon("/com/fr/van/chart/map/images/mapData.png")); + this.setSmallIcon("/com/fr/van/chart/map/images/mapData"); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Map_Data")); } diff --git a/designer-chart/src/main/resources/com/fr/van/chart/map/images/mapData_normal.svg b/designer-chart/src/main/resources/com/fr/van/chart/map/images/mapData_normal.svg new file mode 100644 index 000000000..086e6d9ef --- /dev/null +++ b/designer-chart/src/main/resources/com/fr/van/chart/map/images/mapData_normal.svg @@ -0,0 +1,8 @@ + + + icon_地图数据_normal + + + + + \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/actions/NewFormAction.java b/designer-form/src/main/java/com/fr/design/actions/NewFormAction.java index 8004b739f..c867be8d2 100644 --- a/designer-form/src/main/java/com/fr/design/actions/NewFormAction.java +++ b/designer-form/src/main/java/com/fr/design/actions/NewFormAction.java @@ -1,7 +1,7 @@ package com.fr.design.actions; -import com.fr.base.BaseUtils; -import com.fr.design.actions.UpdateAction; + +import com.fr.base.svg.IconUtils; import com.fr.design.mainframe.BaseJForm; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JTemplate; @@ -21,7 +21,7 @@ public class NewFormAction extends UpdateAction { this.setMenuKeySet(NEW_FORM); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/buttonicon/new_form3.png")); + this.setSmallIcon("/com/fr/design/images/buttonicon/new_form3"); this.setAccelerator(getMenuKeySet().getKeyStroke()); } diff --git a/designer-form/src/main/java/com/fr/design/designer/beans/actions/CopyAction.java b/designer-form/src/main/java/com/fr/design/designer/beans/actions/CopyAction.java index 47f7e3924..c577a8693 100644 --- a/designer-form/src/main/java/com/fr/design/designer/beans/actions/CopyAction.java +++ b/designer-form/src/main/java/com/fr/design/designer/beans/actions/CopyAction.java @@ -1,6 +1,6 @@ package com.fr.design.designer.beans.actions; -import com.fr.base.BaseUtils; + import com.fr.design.base.mode.DesignModeContext; import com.fr.design.designer.beans.actions.behavior.ComponentEnable; import com.fr.design.mainframe.FormDesigner; @@ -16,7 +16,7 @@ public class CopyAction extends FormWidgetEditAction { super(t); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_M_Edit_Copy")); 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)); setUpdateBehavior(new ComponentEnable()); this.setEnabled(!DesignModeContext.isBanCopyAndCut()); @@ -27,4 +27,4 @@ public class CopyAction extends FormWidgetEditAction { DesignModeContext.doCopy(getEditingComponent()); return false; } -} \ No newline at end of file +} diff --git a/designer-form/src/main/java/com/fr/design/designer/beans/actions/CutAction.java b/designer-form/src/main/java/com/fr/design/designer/beans/actions/CutAction.java index 421cae2e6..e93eebd72 100644 --- a/designer-form/src/main/java/com/fr/design/designer/beans/actions/CutAction.java +++ b/designer-form/src/main/java/com/fr/design/designer/beans/actions/CutAction.java @@ -1,6 +1,6 @@ package com.fr.design.designer.beans.actions; -import com.fr.base.BaseUtils; + import com.fr.design.base.mode.DesignModeContext; import com.fr.design.designer.beans.actions.behavior.ComponentEnable; import com.fr.design.mainframe.FormDesigner; @@ -16,7 +16,7 @@ public class CutAction extends FormWidgetEditAction { super(t); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_M_Edit_Cut")); this.setMnemonic('T'); - this.setSmallIcon(BaseUtils.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.setUpdateBehavior(new ComponentEnable()); this.setEnabled(!DesignModeContext.isBanCopyAndCut()); @@ -26,4 +26,4 @@ public class CutAction extends FormWidgetEditAction { public boolean executeActionReturnUndoRecordNeeded() { return DesignModeContext.doCut(getEditingComponent()); } -} \ No newline at end of file +} diff --git a/designer-form/src/main/java/com/fr/design/designer/beans/actions/FormDeleteAction.java b/designer-form/src/main/java/com/fr/design/designer/beans/actions/FormDeleteAction.java index 7492f8cc8..5f9a59de5 100644 --- a/designer-form/src/main/java/com/fr/design/designer/beans/actions/FormDeleteAction.java +++ b/designer-form/src/main/java/com/fr/design/designer/beans/actions/FormDeleteAction.java @@ -7,7 +7,7 @@ import java.awt.event.KeyEvent; import javax.swing.*; -import com.fr.base.BaseUtils; + import com.fr.design.designer.beans.actions.behavior.ComponentEnable; import com.fr.design.mainframe.FormDesigner; @@ -24,7 +24,7 @@ public class FormDeleteAction extends FormWidgetEditAction { this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_M_Edit_Delete")); this.setMnemonic('D'); // Richie:删除菜单图标 - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/delete.png")); + this.setSmallIcon("/com/fr/design/images/m_report/delete"); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0)); this.setUpdateBehavior(new ComponentEnable()); } diff --git a/designer-form/src/main/java/com/fr/design/designer/beans/actions/PasteAction.java b/designer-form/src/main/java/com/fr/design/designer/beans/actions/PasteAction.java index c02295f0f..ef35097b2 100644 --- a/designer-form/src/main/java/com/fr/design/designer/beans/actions/PasteAction.java +++ b/designer-form/src/main/java/com/fr/design/designer/beans/actions/PasteAction.java @@ -1,6 +1,5 @@ package com.fr.design.designer.beans.actions; -import com.fr.base.BaseUtils; import com.fr.design.base.mode.DesignModeContext; import com.fr.design.mainframe.FormDesigner; @@ -15,7 +14,7 @@ public class PasteAction extends FormWidgetEditAction { super(t); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_M_Edit_Paste")); 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)); } @@ -29,4 +28,4 @@ public class PasteAction extends FormWidgetEditAction { this.setEnabled(true); } -} \ No newline at end of file +} diff --git a/designer-form/src/main/java/com/fr/design/form/parameter/FormParaTargetMode.java b/designer-form/src/main/java/com/fr/design/form/parameter/FormParaTargetMode.java index d39e5620e..72c7b8bfd 100644 --- a/designer-form/src/main/java/com/fr/design/form/parameter/FormParaTargetMode.java +++ b/designer-form/src/main/java/com/fr/design/form/parameter/FormParaTargetMode.java @@ -1,6 +1,7 @@ package com.fr.design.form.parameter; -import com.fr.base.BaseUtils; + +import com.fr.base.svg.IconUtils; import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.designer.properties.WidgetPropertyTable; import com.fr.design.gui.core.WidgetOption; @@ -27,7 +28,7 @@ public class FormParaTargetMode extends FormDesignerModeForSpecial predifinedwidgeList = new ArrayList(); private UIButton predefineButton; @@ -48,25 +48,25 @@ public class FormParaPane extends JPanel { private FormDesigner designer; - + static { GeneralContext.listenPluginRunningChanged(new PluginEventListener() { - + @Override public void on(PluginEvent event) { - + THIS = null; } }, new PluginFilter() { - + @Override public boolean accept(PluginContext context) { - + return context.contain(PluginModule.ExtraDesign); } }); } - + public static final FormParaPane getInstance(FormDesigner designer) { if(THIS == null) { THIS = new FormParaPane(); @@ -82,7 +82,7 @@ public class FormParaPane extends JPanel { public FormParaPane() { - predefineButton = new UIButton(UIConstants.PRE_WIDGET_ICON) { + predefineButton = new UIButton(UIConstants.PRE_WIDGET_NORMAL_ICON) { @Override public Dimension getPreferredSize() { Dimension dim = super.getPreferredSize(); diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java b/designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java index 27e765f3f..ddd78c13f 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.ExtraDesignClassManager; import com.fr.design.constants.UIConstants; import com.fr.design.designer.beans.events.DesignerEditListener; @@ -373,7 +374,7 @@ public class FormParaWidgetPane extends JPanel { private class paraButton extends ToolBarButton { public paraButton(WidgetOption no) { super(no); - this.setDisabledIcon(BaseUtils.readIcon("/com/fr/web/images/form/resources/layout_parameter2.png")); + this.setDisabledIcon(IconUtils.readIcon("/com/fr/web/images/form/resources/layout_parameter2_disabled.svg")); if (designer != null) { this.setEnabled(designer.getParaComponent() == null); } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormTargetMode.java b/designer-form/src/main/java/com/fr/design/mainframe/FormTargetMode.java index f80ce94eb..948796f49 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormTargetMode.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormTargetMode.java @@ -2,7 +2,8 @@ package com.fr.design.mainframe; import java.util.ArrayList; -import com.fr.base.BaseUtils; + +import com.fr.base.svg.IconUtils; import com.fr.design.gui.core.WidgetOption; import com.fr.design.gui.core.WidgetOptionFactory; import com.fr.design.gui.itable.PropertyGroup; @@ -22,7 +23,7 @@ public class FormTargetMode extends FormDesignerModeForSpecial { public WidgetOption[] getPredefinedWidgetOptions() { return new WidgetOption[]{ WidgetOptionFactory.createByWidgetClass(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Query_Button"), - BaseUtils.readIcon("/com/fr/web/images/form/resources/preview_16.png"), FormSubmitButton.class)}; + "/com/fr/web/images/form/resources/preview_16", FormSubmitButton.class)}; } public ArrayList createRootDesignerPropertyGroup() { @@ -38,9 +39,9 @@ public class FormTargetMode extends FormDesignerModeForSpecial { public int getMinDesignHeight() { return getTarget().getTarget().getContainer().getMinDesignSize().height; } - + @Override public int getMinDesignWidth() { return getTarget().getTarget().getContainer().getMinDesignSize().width; } -} \ No newline at end of file +} diff --git a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java index 43aa58d9b..b39dc9188 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java @@ -247,7 +247,7 @@ public class JForm extends JTemplate implements BaseJForm { private boolean hasTestECReport() { ElementCaseEditorProvider[] elementCaseEditorProviders = this.template.getElementCases(); for (ElementCaseEditorProvider elementCaseEditorProvider : elementCaseEditorProviders) { - FormElementCaseProvider elementCase = elementCaseEditorProvider.getElementCase(); - Iterator it = elementCase.cellIterator(); - if (!it.hasNext()) { + if (isTestECReport(elementCaseEditorProvider)) { return true; } - while (it.hasNext()) { - DefaultTemplateCellElement ce = (DefaultTemplateCellElement) it.next(); - Object value = ce.getValue(); - if (isTestCell(value, ce.getStyle())) { - return true; - } - } - } return false; } + private boolean isTestECReport(ElementCaseEditorProvider elementCaseEditorProvider) { + FormElementCaseProvider elementCase = elementCaseEditorProvider.getElementCase(); + if (!isTestElementCaseEditor((ElementCaseEditor) elementCaseEditorProvider)) { + return false; + } + Iterator it = elementCase.cellIterator(); + if (!it.hasNext()) { + return true; + } + while (it.hasNext()) { + DefaultTemplateCellElement ce = (DefaultTemplateCellElement) it.next(); + Object value = ce.getValue(); + if (!isTestCell(value, ce.getStyle())) { + return false; + } + } + return true; + } + + private boolean isTestElementCaseEditor(ElementCaseEditor editor) { + return editor.getToolBars().length == 0 && editor.getListenerSize() == 0 + && ComparatorUtils.equals(editor.getBorderStyle(), new LayoutBorderStyle()) + && ComparatorUtils.equals(editor.getMargin(), new PaddingMargin()) + && editor.getBackground() == null; + + } + private boolean hasTestChart() { final boolean[] hasTestChart = {false}; Form.traversalWidget(this.template.getContainer(), new WidgetGather() { @@ -226,7 +245,7 @@ public class JFormProcessInfo extends TemplateProcessInfo
{ private void addComponentRemoveInfo(JSONObject jsonObject) { String componentID = jsonObject.getString("componentID"); - if (componentID == null){ + if (componentID == null) { return; } JSONObject info = componentProcessInfoMap.get(componentID); diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetAbsoluteBoundPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetAbsoluteBoundPane.java index 7ddff022f..5604ef4be 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetAbsoluteBoundPane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetAbsoluteBoundPane.java @@ -34,7 +34,7 @@ public class WidgetAbsoluteBoundPane extends WidgetBoundPane { y.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Coords_And_Size")); width.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Coords_And_Size")); height.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Coords_And_Size")); - this.add(WidgetBoundsPaneFactory.createAbsoluteBoundsPane(x, y, width, height)); + this.add(WidgetBoundsPaneFactory.createAbsoluteBoundsPane(x, y, width, height, WidgetBoundsPaneFactory.NameAttribute.WIDGET)); } @Override diff --git a/designer-form/src/test/java/com/fr/design/mainframe/template/info/JFormProcessInfoTest.java b/designer-form/src/test/java/com/fr/design/mainframe/template/info/JFormProcessInfoTest.java index 663be8758..04327d354 100644 --- a/designer-form/src/test/java/com/fr/design/mainframe/template/info/JFormProcessInfoTest.java +++ b/designer-form/src/test/java/com/fr/design/mainframe/template/info/JFormProcessInfoTest.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.template.info; +import com.fr.base.background.ColorBackground; import com.fr.chart.chartattr.ChartCollection; import com.fr.form.main.Form; import com.fr.form.ui.CardSwitchButton; @@ -21,6 +22,8 @@ import com.fr.report.worksheet.FormElementCase; import org.junit.Assert; import org.junit.Test; +import java.awt.Color; + /** * Created by kerry on 2020-05-08 */ @@ -35,14 +38,36 @@ public class JFormProcessInfoTest { wFitLayout.addWidget(editor); form.setContainer(wFitLayout); JFormProcessInfo jFormProcessInfo = new JFormProcessInfo(form); - boolean result1 = Reflect.on(jFormProcessInfo).call("hasTestECReport").get(); - Assert.assertTrue(result1); + boolean result = Reflect.on(jFormProcessInfo).call("hasTestECReport").get(); + Assert.assertTrue(result); elementCase.addCellElement(new DefaultTemplateCellElement()); - boolean result2 = Reflect.on(jFormProcessInfo).call("hasTestECReport").get(); - Assert.assertTrue(result2); + result = Reflect.on(jFormProcessInfo).call("hasTestECReport").get(); + Assert.assertTrue(result); + + DefaultTemplateCellElement templateCellElement = new DefaultTemplateCellElement(); + templateCellElement.setValue(123); + + elementCase.addCellElement(templateCellElement); + result = Reflect.on(jFormProcessInfo).call("hasTestECReport").get(); + Assert.assertFalse(result); + + elementCase.removeCellElement(templateCellElement); + result = Reflect.on(jFormProcessInfo).call("hasTestECReport").get(); + Assert.assertTrue(result); + + editor.setBackground(ColorBackground.getInstance(Color.WHITE)); + result = Reflect.on(jFormProcessInfo).call("hasTestECReport").get(); + Assert.assertFalse(result); + + + editor.setBackground(null); + result = Reflect.on(jFormProcessInfo).call("hasTestECReport").get(); + Assert.assertTrue(result); } + + @Test public void testHasTestChart() { Form form = new Form(); diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/CellAttributeAction.java b/designer-realize/src/main/java/com/fr/design/actions/cell/CellAttributeAction.java index e9d5501a4..6dff89dfd 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/CellAttributeAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/CellAttributeAction.java @@ -1,6 +1,6 @@ package com.fr.design.actions.cell; -import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.menu.KeySetUtils; @@ -12,7 +12,7 @@ public class CellAttributeAction extends CellAttributeTableAction { this.setMenuKeySet(KeySetUtils.CELL_OTHER_ATTR); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_format/cellAttr.png")); + this.setSmallIcon("/com/fr/design/images/m_format/cellAttr"); } @Override @@ -20,4 +20,4 @@ public class CellAttributeAction extends CellAttributeTableAction { return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Datasource_Other_Attributes"); } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/CellExpandAttrAction.java b/designer-realize/src/main/java/com/fr/design/actions/cell/CellExpandAttrAction.java index f6b6a3123..62f2db312 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/CellExpandAttrAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/CellExpandAttrAction.java @@ -1,6 +1,6 @@ package com.fr.design.actions.cell; -import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.menu.KeySetUtils; @@ -11,7 +11,7 @@ public class CellExpandAttrAction extends CellAttributeTableAction{ this.setMenuKeySet(KeySetUtils.CELL_EXPAND_ATTR); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/expand/cellAttr.gif")); + this.setSmallIcon("/com/fr/design/images/expand/cellAttr"); } @@ -21,4 +21,4 @@ public class CellExpandAttrAction extends CellAttributeTableAction{ return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ExpandD_Expand_Attribute"); } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/CellWidgetAttrAction.java b/designer-realize/src/main/java/com/fr/design/actions/cell/CellWidgetAttrAction.java index 0736151a1..f1110187a 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/CellWidgetAttrAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/CellWidgetAttrAction.java @@ -1,6 +1,6 @@ package com.fr.design.actions.cell; -import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.UpdateAction; import com.fr.design.mainframe.EastRegionContainerPane; import com.fr.design.menu.KeySetUtils; @@ -16,7 +16,7 @@ public class CellWidgetAttrAction extends UpdateAction { this.setMenuKeySet(KeySetUtils.CELL_WIDGET_ATTR); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_format/modified.png")); + this.setSmallIcon("/com/fr/design/images/m_format/modified"); } @Override @@ -30,4 +30,4 @@ public class CellWidgetAttrAction extends UpdateAction { super.update(); this.setEnabled(EastRegionContainerPane.getInstance().isWidgetSettingsPaneEnabled()); } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/ConditionAttributesAction.java b/designer-realize/src/main/java/com/fr/design/actions/cell/ConditionAttributesAction.java index 1aecf94d5..d019c978b 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/ConditionAttributesAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/ConditionAttributesAction.java @@ -3,7 +3,7 @@ */ package com.fr.design.actions.cell; -import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.UpdateAction; import com.fr.design.mainframe.EastRegionContainerPane; import com.fr.design.menu.KeySetUtils; @@ -18,7 +18,7 @@ public class ConditionAttributesAction extends UpdateAction { this.setMenuKeySet(KeySetUtils.CONDITION_ATTR); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_format/highlight.png")); + this.setSmallIcon("/com/fr/design/images/m_format/highlight"); } @Override @@ -32,4 +32,4 @@ public class ConditionAttributesAction extends UpdateAction { super.update(); this.setEnabled(EastRegionContainerPane.getInstance().isConditionAttrPaneEnabled()); } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/EditCellAction.java b/designer-realize/src/main/java/com/fr/design/actions/cell/EditCellAction.java index 1876bce35..81c7f3cfb 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/EditCellAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/EditCellAction.java @@ -3,7 +3,8 @@ */ package com.fr.design.actions.cell; -import com.fr.base.BaseUtils; + +import com.fr.base.svg.IconUtils; import com.fr.design.actions.ElementCaseAction; import com.fr.design.mainframe.ElementCasePane; @@ -16,10 +17,10 @@ import java.awt.event.ActionEvent; public class EditCellAction extends ElementCaseAction { public EditCellAction(ElementCasePane t) { super(t); - + this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Edit")); this.setMnemonic('I'); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/control/edit.png")); + this.setSmallIcon("/com/fr/design/images/control/edit"); } @Override @@ -31,7 +32,7 @@ public class EditCellAction extends ElementCaseAction { Toolkit.getDefaultToolkit().beep(); } } - + // TODO ALEX_SEP 这里的undo redo又是怎么回事呢? @Override public boolean executeActionReturnUndoRecordNeeded() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/GlobalStyleMenuDef.java b/designer-realize/src/main/java/com/fr/design/actions/cell/GlobalStyleMenuDef.java index 8cb0b81fb..4699ab886 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/GlobalStyleMenuDef.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/GlobalStyleMenuDef.java @@ -33,7 +33,7 @@ public class GlobalStyleMenuDef extends MenuDef { this.setMenuKeySet(KeySetUtils.GLOBAL_STYLE); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setIconPath("/com/fr/design/images/m_web/style.png"); + this.setIconPath("/com/fr/design/images/m_web/style"); } protected ContainerListener getContainerListener() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/UIToolbarBorderButton.java b/designer-realize/src/main/java/com/fr/design/actions/cell/UIToolbarBorderButton.java index 8a93bb227..52f753ad0 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/UIToolbarBorderButton.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/UIToolbarBorderButton.java @@ -1,7 +1,8 @@ package com.fr.design.actions.cell; -import com.fr.base.BaseUtils; import com.fr.base.CellBorderStyle; + +import com.fr.base.svg.IconUtils; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.gui.ibutton.UIButton; @@ -35,9 +36,9 @@ import java.awt.event.MouseEvent; /** * 这个Pane用来显示常用边框和设置自定义边框 - * + * * @author richer - * + * */ public class UIToolbarBorderButton extends UICombinationButton implements PopupHider { private EventListenerList styleChangeListenerList = new EventListenerList(); @@ -46,7 +47,7 @@ public class UIToolbarBorderButton extends UICombinationButton implements PopupH private JPopupMenu popupWin; public UIToolbarBorderButton(Icon icon, ElementCasePane reportPane) { - super(new UIButton(icon), new UIButton(BaseUtils.readIcon("/com/fr/design/images/gui/popup.gif"))); + super(new UIButton(icon), new UIButton(IconUtils.readIcon("/com/fr/design/images/gui/popup"))); this.reportPane = reportPane; } @@ -80,7 +81,7 @@ public class UIToolbarBorderButton extends UICombinationButton implements PopupH rightButton.setToolTipText(tooltipText); } - + private void showPopupMenu() { if (popupWin != null && popupWin.isVisible()) { hidePopupMenu(); @@ -102,12 +103,12 @@ public class UIToolbarBorderButton extends UICombinationButton implements PopupH return popupWin; } - + protected void leftButtonClickEvent() { UIToolbarBorderButton.this.cellBorderStyle = ((BorderIcon)getLeftButton().getIcon()).cellBorderStyle; UIToolbarBorderButton.this.fireStyleStateChanged(); } - + @Override protected void rightButtonClickEvent() { showPopupMenu(); @@ -223,7 +224,7 @@ public class UIToolbarBorderButton extends UICombinationButton implements PopupH return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Border"); } } - + /** * Adds a new StyleChangeListener */ @@ -237,9 +238,9 @@ public class UIToolbarBorderButton extends UICombinationButton implements PopupH public void removeColorChangeListener(ChangeListener changeListener) { styleChangeListenerList.remove(ChangeListener.class, changeListener); } - + /** - * + * */ public void fireStyleStateChanged() { Object[] listeners = styleChangeListenerList.getListenerList(); @@ -254,7 +255,7 @@ public class UIToolbarBorderButton extends UICombinationButton implements PopupH } } } - + public boolean isCanBeNull() { return this.isCanBeNull; } diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/style/AlignmentAction.java b/designer-realize/src/main/java/com/fr/design/actions/cell/style/AlignmentAction.java index 8dab29a0d..cd5a0e788 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/style/AlignmentAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/style/AlignmentAction.java @@ -3,6 +3,8 @@ package com.fr.design.actions.cell.style; import com.fr.base.BaseUtils; import com.fr.base.Style; import com.fr.base.chart.BaseChartCollection; + +import com.fr.base.svg.IconUtils; import com.fr.design.actions.ButtonGroupAction; import com.fr.design.actions.utils.ReportActionUtils; import com.fr.design.constants.UIConstants; @@ -21,9 +23,9 @@ import javax.swing.*; public class AlignmentAction extends ButtonGroupAction implements StyleActionInterface { private static final Icon[][] ICONS = new Icon[][]{ - {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left_normal_white.png")}, - {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center_normal_white.png")}, - {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_right_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_right_normal_white.png")}}; + {IconUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left"), IconUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left_selected.svg")}, + {IconUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center"), IconUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center_selected.svg")}, + {IconUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_right"), IconUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_right_selected.svg")}}; private static final Integer[] valueArray = new Integer[]{Constants.LEFT, Constants.CENTER, Constants.RIGHT}; diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontBoldAction.java b/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontBoldAction.java index e819eb6fc..6e78baf2d 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontBoldAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontBoldAction.java @@ -3,9 +3,9 @@ */ package com.fr.design.actions.cell.style; -import com.fr.base.BaseUtils; import com.fr.base.Style; import com.fr.base.core.StyleUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.ToggleButtonUpdateAction; import com.fr.design.gui.ibutton.UIToggleButton; import com.fr.design.mainframe.ElementCasePane; @@ -21,7 +21,7 @@ import javax.swing.*; public class ReportFontBoldAction extends AbstractStyleAction implements ToggleButtonUpdateAction { private UIToggleButton button; protected Style style; - private final static Icon[] ICONS = {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/bold.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/bold_white.png")}; + private final static Icon[] ICONS = {IconUtils.readIcon("/com/fr/design/images/m_format/cellstyle/bold"), IconUtils.readIcon("/com/fr/design/images/m_format/cellstyle/bold_selected.svg")}; public ReportFontBoldAction(ElementCasePane t) { super(t); @@ -92,4 +92,4 @@ public class ReportFontBoldAction extends AbstractStyleAction implements ToggleB } return button; } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontForegroundAction.java b/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontForegroundAction.java index 1a50b3f53..677fd0491 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontForegroundAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontForegroundAction.java @@ -3,9 +3,10 @@ */ package com.fr.design.actions.cell.style; -import com.fr.base.BaseUtils; import com.fr.base.Style; import com.fr.base.core.StyleUtils; + +import com.fr.base.svg.IconUtils; import com.fr.design.actions.core.ActionFactory; import com.fr.design.mainframe.ElementCasePane; import com.fr.design.style.color.UIToolbarColorButton; @@ -50,7 +51,7 @@ public class ReportFontForegroundAction extends AbstractStyleAction implements C public JComponent createToolBarComponent() { Object object = this.getValue(UIToolbarColorButton.class.getName()); if (object == null || !(object instanceof UIToolbarColorButton)) { - UIToolbarColorButton tbButton = new UIToolbarColorButton(BaseUtils.readIcon("/com/fr/design/images/gui/color/foreground.png")); + UIToolbarColorButton tbButton = new UIToolbarColorButton(IconUtils.readIcon("/com/fr/design/images/gui/color/foreground")); this.putValue(UIToolbarColorButton.class.getName(), tbButton); tbButton.set4Toolbar(); tbButton.setEnabled(this.isEnabled()); @@ -63,4 +64,4 @@ public class ReportFontForegroundAction extends AbstractStyleAction implements C return (JComponent) object; } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontItalicAction.java b/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontItalicAction.java index 765e6d319..d8f85b7c6 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontItalicAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontItalicAction.java @@ -3,9 +3,9 @@ */ package com.fr.design.actions.cell.style; -import com.fr.base.BaseUtils; import com.fr.base.Style; import com.fr.base.core.StyleUtils; +import com.fr.base.svg.IconUtils; import com.fr.general.FRFont; import com.fr.design.mainframe.ElementCasePane; @@ -17,7 +17,7 @@ import javax.swing.*; */ public class ReportFontItalicAction extends ReportFontBoldAction { - private final static Icon[] ICONS = {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/italic.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/italic_white.png")}; + private final static Icon[] ICONS = {IconUtils.readIcon("/com/fr/design/images/m_format/cellstyle/italic"), IconUtils.readIcon("/com/fr/design/images/m_format/cellstyle/italic_selected.svg")}; public ReportFontItalicAction(ElementCasePane t) { super(t); diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontUnderlineAction.java b/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontUnderlineAction.java index d96d22b88..ed68f22e0 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontUnderlineAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/style/ReportFontUnderlineAction.java @@ -3,9 +3,9 @@ */ package com.fr.design.actions.cell.style; -import com.fr.base.BaseUtils; import com.fr.base.Style; import com.fr.base.core.StyleUtils; +import com.fr.base.svg.IconUtils; import com.fr.general.FRFont; import com.fr.design.mainframe.ElementCasePane; @@ -18,7 +18,7 @@ import javax.swing.*; */ public class ReportFontUnderlineAction extends ReportFontBoldAction { - private final static Icon[] ICONS = {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/underline.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/underline_white.png")}; + private final static Icon[] ICONS = {IconUtils.readIcon("/com/fr/design/images/m_format/cellstyle/underline"), IconUtils.readIcon("/com/fr/design/images/m_format/cellstyle/underline_selected.svg")}; public ReportFontUnderlineAction(ElementCasePane t) { super(t); @@ -40,4 +40,4 @@ public class ReportFontUnderlineAction extends ReportFontBoldAction { return frFont.getUnderline() != Constants.LINE_NONE; } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/cell/style/StyleBackgroundAction.java b/designer-realize/src/main/java/com/fr/design/actions/cell/style/StyleBackgroundAction.java index 4ce5d2f70..7d4376f3c 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/cell/style/StyleBackgroundAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/cell/style/StyleBackgroundAction.java @@ -9,9 +9,10 @@ import javax.swing.JComponent; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import com.fr.base.BaseUtils; import com.fr.base.Style; import com.fr.base.background.ColorBackground; + +import com.fr.base.svg.IconUtils; import com.fr.design.actions.core.ActionFactory; import com.fr.general.ComparatorUtils; @@ -24,7 +25,7 @@ import com.fr.design.style.color.UIToolbarColorButton; public class StyleBackgroundAction extends AbstractStyleAction implements ChangeListener { public StyleBackgroundAction(ElementCasePane t) { super(t); - + this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background")); } @@ -49,7 +50,7 @@ public class StyleBackgroundAction extends AbstractStyleAction implements Change return style; } - + @Override public boolean isFontStye() { return false; @@ -59,7 +60,7 @@ public class StyleBackgroundAction extends AbstractStyleAction implements Change public JComponent createToolBarComponent() { Object object = this.getValue(UIToolbarColorButton.class.getName()); if (object == null || !(object instanceof UIToolbarColorButton)) { - UIToolbarColorButton tbButton = new UIToolbarColorButton(BaseUtils.readIcon("/com/fr/design/images/gui/color/background.png")); + UIToolbarColorButton tbButton = new UIToolbarColorButton(IconUtils.readIcon("/com/fr/design/images/gui/color/background")); tbButton.set4Toolbar(); this.putValue(UIToolbarColorButton.class.getName(), tbButton); @@ -74,4 +75,4 @@ public class StyleBackgroundAction extends AbstractStyleAction implements Change return (JComponent) object; } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/columnrow/InsertColumnAction.java b/designer-realize/src/main/java/com/fr/design/actions/columnrow/InsertColumnAction.java index c093fde0e..954128f82 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/columnrow/InsertColumnAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/columnrow/InsertColumnAction.java @@ -3,7 +3,7 @@ */ package com.fr.design.actions.columnrow; -import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.CellSelectionAction; import com.fr.design.mainframe.ElementCasePane; import com.fr.design.menu.MenuKeySet; @@ -27,7 +27,7 @@ public class InsertColumnAction extends CellSelectionAction { this.setName(name); this.setMnemonic(INSERT_COLUMN.getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/insertColumn.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/insertColumn"); } public static final MenuKeySet INSERT_COLUMN = new MenuKeySet() { @@ -59,4 +59,4 @@ public class InsertColumnAction extends CellSelectionAction { } return true; } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/columnrow/InsertRowAction.java b/designer-realize/src/main/java/com/fr/design/actions/columnrow/InsertRowAction.java index edd4dd98e..f05a71ffe 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/columnrow/InsertRowAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/columnrow/InsertRowAction.java @@ -3,7 +3,7 @@ */ package com.fr.design.actions.columnrow; -import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.CellSelectionAction; import com.fr.design.mainframe.ElementCasePane; import com.fr.design.menu.MenuKeySet; @@ -26,7 +26,7 @@ public class InsertRowAction extends CellSelectionAction { super(t); this.setName(name); this.setMnemonic(INSERT_ROW.getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/insertRow.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/insertRow"); } public static final MenuKeySet INSERT_ROW = new MenuKeySet() { @@ -59,4 +59,4 @@ public class InsertRowAction extends CellSelectionAction { return true; } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/edit/DeleteAction.java b/designer-realize/src/main/java/com/fr/design/actions/edit/DeleteAction.java index e7ca0bd96..c82bf748d 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/edit/DeleteAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/edit/DeleteAction.java @@ -3,7 +3,7 @@ */ package com.fr.design.actions.edit; -import com.fr.base.BaseUtils; + import com.fr.design.actions.ElementCaseAction; import com.fr.design.mainframe.ElementCasePane; @@ -17,18 +17,17 @@ public class DeleteAction extends ElementCaseAction { */ public DeleteAction(ElementCasePane t) { super(t); - this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_M_Edit_Delete")); this.setMnemonic('D'); //Richie:删除菜单图标 - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/delete.png")); + this.setSmallIcon("/com/fr/design/images/m_report/delete"); // this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0)); } - + @Override public boolean executeActionReturnUndoRecordNeeded() { ElementCasePane ePane = getEditingComponent(); - + return ePane.getSelection().triggerDeleteAction(ePane); } } diff --git a/designer-realize/src/main/java/com/fr/design/actions/edit/HyperlinkAction.java b/designer-realize/src/main/java/com/fr/design/actions/edit/HyperlinkAction.java index 269d50917..41aba3688 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/edit/HyperlinkAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/edit/HyperlinkAction.java @@ -3,7 +3,7 @@ */ package com.fr.design.actions.edit; -import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.UpdateAction; import com.fr.design.mainframe.EastRegionContainerPane; import com.fr.design.menu.KeySetUtils; @@ -19,7 +19,7 @@ public class HyperlinkAction extends UpdateAction { this.setMenuKeySet(KeySetUtils.HYPER_LINK); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/hyperLink.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/hyperLink"); } @Override @@ -27,4 +27,4 @@ public class HyperlinkAction extends UpdateAction { EastRegionContainerPane.getInstance().switchTabTo(EastRegionContainerPane.KEY_HYPERLINK); EastRegionContainerPane.getInstance().setWindow2PreferWidth(); } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/edit/merge/MergeCellAction.java b/designer-realize/src/main/java/com/fr/design/actions/edit/merge/MergeCellAction.java index a0fc125dc..0bf48382d 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/edit/merge/MergeCellAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/edit/merge/MergeCellAction.java @@ -3,7 +3,7 @@ */ package com.fr.design.actions.edit.merge; -import com.fr.base.BaseUtils; + import com.fr.design.actions.ElementCaseAction; import com.fr.design.menu.KeySetUtils; import com.fr.design.mainframe.ElementCasePane; @@ -21,7 +21,7 @@ public class MergeCellAction extends ElementCaseAction { this.setMenuKeySet(KeySetUtils.MERGE_CELL); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/merge.png")); + this.setSmallIcon("/com/fr/design/images/m_edit/merge"); } /** @@ -43,4 +43,4 @@ public class MergeCellAction extends ElementCaseAction { this.setEnabled(reportPane.canMergeCell()); } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/edit/merge/UnmergeCellAction.java b/designer-realize/src/main/java/com/fr/design/actions/edit/merge/UnmergeCellAction.java index 42e6a9f4c..8a35b16d3 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/edit/merge/UnmergeCellAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/edit/merge/UnmergeCellAction.java @@ -3,7 +3,7 @@ */ package com.fr.design.actions.edit.merge; -import com.fr.base.BaseUtils; + import com.fr.design.actions.ElementCaseAction; import com.fr.design.menu.KeySetUtils; import com.fr.design.mainframe.ElementCasePane; @@ -20,7 +20,7 @@ public class UnmergeCellAction extends ElementCaseAction { this.setMenuKeySet(KeySetUtils.UNMERGE_CELL); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/unmerge.png")); + this.setSmallIcon("/com/fr/design/images/m_edit/unmerge"); } @Override @@ -42,4 +42,4 @@ public class UnmergeCellAction extends ElementCaseAction { return reportPane.unMergeCell(); } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/file/newReport/NewPolyReportAction.java b/designer-realize/src/main/java/com/fr/design/actions/file/newReport/NewPolyReportAction.java index 3a368f696..95115cd04 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/file/newReport/NewPolyReportAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/file/newReport/NewPolyReportAction.java @@ -5,7 +5,8 @@ import java.awt.event.KeyEvent; import javax.swing.KeyStroke; -import com.fr.base.BaseUtils; + +import com.fr.base.svg.IconUtils; import com.fr.design.actions.UpdateAction; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JPolyWorkBook; @@ -18,17 +19,17 @@ public class NewPolyReportAction extends UpdateAction { public NewPolyReportAction() { this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_M_New_Multi_Report")); this.setMnemonic('F'); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/formExport.png")); + this.setSmallIcon("/com/fr/design/images/m_file/formExport"); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, DEFAULT_MODIFIER)); } /** * Action触发后 - * + * * @param e 触发的事件 - * + * * @date 2015-2-5-上午11:43:13 - * + * */ public void actionPerformed(ActionEvent e) { DesignerContext.getDesignerFrame().addAndActivateJTemplate(new JPolyWorkBook()); diff --git a/designer-realize/src/main/java/com/fr/design/actions/file/newReport/NewWorkBookAction.java b/designer-realize/src/main/java/com/fr/design/actions/file/newReport/NewWorkBookAction.java index 6a5e8ba19..371e952ba 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/file/newReport/NewWorkBookAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/file/newReport/NewWorkBookAction.java @@ -1,6 +1,7 @@ package com.fr.design.actions.file.newReport; -import com.fr.base.BaseUtils; + +import com.fr.base.svg.IconUtils; import com.fr.design.actions.UpdateAction; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JWorkBook; @@ -25,7 +26,7 @@ public class NewWorkBookAction extends UpdateAction { } protected Icon icon() { - return BaseUtils.readIcon("/com/fr/design/images/buttonicon/newcpts.png"); + return IconUtils.readIcon("/com/fr/design/images/buttonicon/newcpts"); } /** diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/BiasCellAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/BiasCellAction.java index a709be937..e88366c15 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/BiasCellAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/BiasCellAction.java @@ -3,7 +3,7 @@ */ package com.fr.design.actions.insert.cell; -import com.fr.base.BaseUtils; + import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.mainframe.ElementCasePane; import com.fr.design.menu.MenuKeySet; @@ -30,7 +30,7 @@ public class BiasCellAction extends AbstractCellAction implements WorkBookSuppor this.setMenuKeySet(INSERT_SLOPE_LINE); this.setName(getMenuKeySet().getMenuKeySetName()+ "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/bias.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/bias"); } public static final MenuKeySet INSERT_SLOPE_LINE = new MenuKeySet() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/ChartCellAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/ChartCellAction.java index 59e2c3e3c..7eb36fe24 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/ChartCellAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/ChartCellAction.java @@ -3,7 +3,7 @@ */ package com.fr.design.actions.insert.cell; -import com.fr.base.BaseUtils; + import com.fr.design.actions.core.ActionFactory; import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.mainframe.ElementCasePane; @@ -29,7 +29,7 @@ public class ChartCellAction extends AbstractCellAction implements WorkBookSuppo this.setMenuKeySet(INSERT_CHART); this.setName(getMenuKeySet().getMenuKeySetName()+ "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/chart.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/chart"); } public static final MenuKeySet INSERT_CHART = new MenuKeySet() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/DSColumnCellAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/DSColumnCellAction.java index af0fd6bab..498d1e00e 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/DSColumnCellAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/DSColumnCellAction.java @@ -1,10 +1,10 @@ package com.fr.design.actions.insert.cell; + import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.dscolumn.DSColumnPane; import com.fr.design.mainframe.ElementCasePane; import com.fr.design.menu.KeySetUtils; -import com.fr.general.IOUtils; import com.fr.report.cell.cellattr.core.group.DSColumn; public class DSColumnCellAction extends AbstractCellAction implements WorkBookSupportable { @@ -22,11 +22,11 @@ public class DSColumnCellAction extends AbstractCellAction implements WorkBookSu this.setMenuKeySet(KeySetUtils.INSERT_DATA_COLUMN); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/m_insert/bindColumn.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/bindColumn"); } @Override public Class getCellValueClass() { return DSColumn.class; } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/FormulaCellAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/FormulaCellAction.java index 733045b20..4e0e858c3 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/FormulaCellAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/FormulaCellAction.java @@ -4,7 +4,7 @@ package com.fr.design.actions.insert.cell; import com.fr.base.BaseFormula; -import com.fr.base.BaseUtils; + import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.mainframe.ElementCasePane; import com.fr.design.menu.MenuKeySet; @@ -26,7 +26,7 @@ public class FormulaCellAction extends AbstractCellAction implements WorkBookSup this.setMenuKeySet(INSERT_FORMULA); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/formula.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/formula"); } public static final MenuKeySet INSERT_FORMULA = new MenuKeySet() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/GeneralCellAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/GeneralCellAction.java index 402c7ead1..ae805e027 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/GeneralCellAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/GeneralCellAction.java @@ -3,7 +3,7 @@ */ package com.fr.design.actions.insert.cell; -import com.fr.base.BaseUtils; + import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.mainframe.ElementCasePane; import com.fr.design.menu.MenuKeySet; @@ -28,7 +28,7 @@ public class GeneralCellAction extends AbstractCellAction implements WorkBookSup this.setMenuKeySet(INSERT_TEXT); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/text.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/text"); } public static final MenuKeySet INSERT_TEXT = new MenuKeySet() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/ImageCellAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/ImageCellAction.java index 68b64f293..a315aee69 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/ImageCellAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/ImageCellAction.java @@ -3,7 +3,7 @@ */ package com.fr.design.actions.insert.cell; -import com.fr.base.BaseUtils; + import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.mainframe.ElementCasePane; import com.fr.design.menu.MenuKeySet; @@ -29,7 +29,7 @@ public class ImageCellAction extends AbstractCellAction implements WorkBookSuppo this.setMenuKeySet(INSERT_IMAGE); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/image.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/image"); } public static final MenuKeySet INSERT_IMAGE = new MenuKeySet() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/RichTextCellAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/RichTextCellAction.java index cf266f82a..bbdba8312 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/RichTextCellAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/RichTextCellAction.java @@ -1,6 +1,6 @@ package com.fr.design.actions.insert.cell; -import com.fr.base.BaseUtils; + import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.mainframe.ElementCasePane; import com.fr.design.menu.MenuKeySet; @@ -25,8 +25,7 @@ public class RichTextCellAction extends AbstractCellAction implements WorkBookSu this.setMenuKeySet(INSERT_RICHTEXT); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon( - "/com/fr/design/images/m_insert/richtext.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/richtext"); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/SubReportCellAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/SubReportCellAction.java index 0d572fe84..9fa6fabf4 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/SubReportCellAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/SubReportCellAction.java @@ -1,6 +1,6 @@ package com.fr.design.actions.insert.cell; -import com.fr.base.BaseUtils; + import com.fr.design.mainframe.ElementCasePane; import com.fr.design.menu.MenuKeySet; import com.fr.general.ComparatorUtils; @@ -24,8 +24,7 @@ public class SubReportCellAction extends AbstractCellAction { this.setMenuKeySet(INSERT_SUB_REPORT); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon( - "/com/fr/design/images/m_insert/subReport.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/subReport"); } public static final MenuKeySet INSERT_SUB_REPORT = new MenuKeySet() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ChartFloatAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ChartFloatAction.java index 1d1e07c62..67fcaae59 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ChartFloatAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ChartFloatAction.java @@ -3,10 +3,10 @@ */ package com.fr.design.actions.insert.flot; -import com.fr.base.BaseUtils; import com.fr.base.DynamicUnitList; import com.fr.base.Style; import com.fr.base.chart.BaseChartCollection; + import com.fr.design.actions.ElementCaseAction; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.file.HistoryTemplateListPane; @@ -48,7 +48,7 @@ public class ChartFloatAction extends ElementCaseAction { this.setMenuKeySet(FLOAT_INSERT_CHART); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/chart.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/chart"); } public static final MenuKeySet FLOAT_INSERT_CHART = new MenuKeySet() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/flot/FormulaFloatAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/flot/FormulaFloatAction.java index 0c97ee61b..9cbd7e876 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/flot/FormulaFloatAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/flot/FormulaFloatAction.java @@ -4,8 +4,8 @@ package com.fr.design.actions.insert.flot; import com.fr.base.BaseFormula; -import com.fr.base.BaseUtils; import com.fr.base.DynamicUnitList; + import com.fr.design.actions.ElementCaseAction; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; @@ -37,7 +37,7 @@ public class FormulaFloatAction extends ElementCaseAction { this.setMenuKeySet(FLOAT_INSERT_FORMULA); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/formula.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/formula"); } public static final MenuKeySet FLOAT_INSERT_FORMULA = new MenuKeySet() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ImageFloatAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ImageFloatAction.java index d7f98a212..e514c88df 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ImageFloatAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ImageFloatAction.java @@ -3,8 +3,8 @@ */ package com.fr.design.actions.insert.flot; -import com.fr.base.BaseUtils; import com.fr.base.DynamicUnitList; + import com.fr.design.actions.ElementCaseAction; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; @@ -39,7 +39,7 @@ public class ImageFloatAction extends ElementCaseAction { this.setMenuKeySet(FLOAT_INSERT_IMAGE); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/image.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/image"); } public static final MenuKeySet FLOAT_INSERT_IMAGE = new MenuKeySet() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/flot/TextBoxFloatAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/flot/TextBoxFloatAction.java index 0803092ba..82aa17f2d 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/flot/TextBoxFloatAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/flot/TextBoxFloatAction.java @@ -3,7 +3,6 @@ */ package com.fr.design.actions.insert.flot; -import com.fr.base.BaseUtils; import com.fr.base.DynamicUnitList; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.mainframe.ElementCasePane; @@ -28,7 +27,7 @@ public class TextBoxFloatAction extends AbstractShapeAction { this.setMenuKeySet(FLOAT_INSERT_TEXT); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/text.png")); + this.setSmallIcon("/com/fr/design/images/m_insert/text"); } public static final MenuKeySet FLOAT_INSERT_TEXT = new MenuKeySet() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/report/ReportBackgroundAction.java b/designer-realize/src/main/java/com/fr/design/actions/report/ReportBackgroundAction.java index 62a0e00eb..fa4055807 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/report/ReportBackgroundAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/report/ReportBackgroundAction.java @@ -3,9 +3,9 @@ */ package com.fr.design.actions.report; -import com.fr.base.BaseUtils; + +import com.fr.base.svg.IconUtils; import com.fr.design.actions.ReportComponentAction; -import com.fr.design.dialog.BasicDialog; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.ReportComponent; import com.fr.design.menu.KeySetUtils; @@ -23,7 +23,7 @@ public class ReportBackgroundAction extends ReportComponentAction { @@ -17,7 +18,7 @@ public class ReportEngineAttrAction extends ReportComponentAction { this.setMenuKeySet(KeySetUtils.REPORT_FOOTER); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/footer.png")); + this.setSmallIcon("/com/fr/design/images/m_report/footer"); } /** @@ -88,4 +89,4 @@ public class ReportFooterAction extends ReportComponentAction { } } } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/report/ReportHeaderAction.java b/designer-realize/src/main/java/com/fr/design/actions/report/ReportHeaderAction.java index 5ee5c9792..c23ed10b5 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/report/ReportHeaderAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/report/ReportHeaderAction.java @@ -3,7 +3,8 @@ */ package com.fr.design.actions.report; -import com.fr.base.BaseUtils; + +import com.fr.base.svg.IconUtils; import com.fr.design.actions.ReportComponentAction; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.headerfooter.EditHeaderPane; @@ -32,7 +33,7 @@ public class ReportHeaderAction extends ReportComponentAction { this.setMenuKeySet(KeySetUtils.REPORT_HEADER); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/header.png")); + this.setSmallIcon("/com/fr/design/images/m_report/header"); } /** @@ -90,4 +91,4 @@ public class ReportHeaderAction extends ReportComponentAction { } } } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/report/ReportMobileAttrAction.java b/designer-realize/src/main/java/com/fr/design/actions/report/ReportMobileAttrAction.java index a002f56e8..b18c62b08 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/report/ReportMobileAttrAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/report/ReportMobileAttrAction.java @@ -2,6 +2,7 @@ package com.fr.design.actions.report; import com.fr.base.PaperSize; import com.fr.base.iofile.attr.MobileOnlyTemplateAttrMark; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.JWorkBookAction; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; @@ -10,7 +11,6 @@ import com.fr.design.mainframe.JWorkBook; import com.fr.design.menu.MenuKeySet; import com.fr.design.report.mobile.ReportMobileAttrPane; import com.fr.file.FILE; -import com.fr.general.IOUtils; import com.fr.intelli.record.Focus; import com.fr.main.TemplateWorkBook; @@ -35,7 +35,7 @@ public class ReportMobileAttrAction extends JWorkBookAction{ this.setMenuKeySet(REPORT_APP_ATTR); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/m_report/mobile.png")); + this.setSmallIcon("/com/fr/design/images/m_report/mobile"); this.generateAndSetSearchText(ReportMobileAttrPane.class.getName()); } diff --git a/designer-realize/src/main/java/com/fr/design/actions/report/ReportPageAttrAction.java b/designer-realize/src/main/java/com/fr/design/actions/report/ReportPageAttrAction.java index 2b819a398..9177f4d30 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/report/ReportPageAttrAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/report/ReportPageAttrAction.java @@ -3,13 +3,13 @@ */ package com.fr.design.actions.report; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.ReportComponentAction; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.mainframe.WorkSheetDesigner; import com.fr.design.menu.KeySetUtils; import com.fr.design.report.freeze.RepeatAndFreezeSettingPane; -import com.fr.general.IOUtils; import com.fr.report.worksheet.WorkSheet; import javax.swing.SwingUtilities; @@ -27,7 +27,7 @@ public class ReportPageAttrAction extends ReportComponentAction extends Tar return false; } Object clipObject = getClipObject(); - //如果是悬浮元素,则不允许粘贴到表单 + //如果是悬浮元素,则不允许粘贴到表单 if (!DesignerContext.getDesignerFrame().getSelectedJTemplate().accept(clipObject)) { return false; } @@ -1330,7 +1330,7 @@ public abstract class ElementCasePane extends Tar MenuDef insertFloatMenu = new MenuDef(); insertFloatMenu.setName(KeySetUtils.INSERT_FLOAT.getMenuKeySetName()); insertFloatMenu.setTooltip(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_T_Insert_Float")); - insertFloatMenu.setIconPath("/com/fr/design/images/m_insert/floatPop.png"); + insertFloatMenu.setIconPath("/com/fr/design/images/m_insert/floatPop"); UpdateAction[] actions = ActionFactory.createFloatInsertAction(ElementCasePane.class, this); for (int i = 0; i < actions.length; i++) { diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java index 83a1c0850..44992a84b 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java @@ -182,7 +182,7 @@ public class ElementCasePaneDelegate extends ElementCasePane { private void addInsertFloatMenuDef(MenuDef menuDef) { // 悬浮元素菜单 MenuDef subMenuDef = new MenuDef(KeySetUtils.INSERT_FLOAT.getMenuName()); - subMenuDef.setIconPath("/com/fr/design/images/m_insert/float.png"); + subMenuDef.setIconPath("/com/fr/design/images/m_insert/float_normal.svg"); menuDef.addShortCut(subMenuDef); UpdateAction[] actions = ActionFactory.createFloatInsertAction(ElementCasePane.class, this); for (int i = 0; i < actions.length; i++) { diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/FormatBrushAction.java b/designer-realize/src/main/java/com/fr/design/mainframe/FormatBrushAction.java index 76298161f..9b89864b6 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/FormatBrushAction.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/FormatBrushAction.java @@ -1,7 +1,7 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; import com.fr.base.Style; + import com.fr.design.actions.ElementCaseAction; import com.fr.grid.selection.CellSelection; @@ -31,7 +31,7 @@ public class FormatBrushAction extends ElementCaseAction { super(t); this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_M_Edit_FormatBrush")); this.setMnemonic('B'); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/formatBrush.png")); + this.setSmallIcon("/com/fr/design/images/m_edit/formatBrush"); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B, DEFAULT_MODIFIER)); } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java b/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java index 7fba01358..ff14d54f4 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java @@ -682,7 +682,7 @@ public class JWorkBook extends JTemplate { .addShortCut(new PageExcelExportAction(this), new ExcelExportAction(this), new PageToSheetExcelExportAction(this)); // Export - MenuDef MenuDef exportMenuDef = new MenuDef(KeySetUtils.EXPORT.getMenuName()); - exportMenuDef.setIconPath("/com/fr/design/images/m_file/export.png"); + exportMenuDef.setIconPath("/com/fr/design/images/m_file/export"); addShortCut(exportMenuDef, excelExportMenuDef); return exportMenuDef; } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/SheetNameTabPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/SheetNameTabPane.java index ead1cf2f1..7b6fbff6f 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/SheetNameTabPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/SheetNameTabPane.java @@ -24,6 +24,8 @@ import javax.swing.UIManager; import com.fr.base.BaseUtils; import com.fr.base.GraphHelper; + +import com.fr.base.svg.IconUtils; import com.fr.base.vcs.DesignerMode; import com.fr.design.actions.UpdateAction; import com.fr.design.constants.UIConstants; @@ -57,14 +59,14 @@ public class SheetNameTabPane extends JComponent implements MouseListener, Mouse private static final Color LINE_COLOR = new Color(0xababab); - private static final Icon ADD_WORK_SHEET = IOUtils.readIcon("com/fr/base/images/oem/addworksheet.png"); - protected static final Icon ADD_POLY_SHEET = IOUtils.readIcon("com/fr/design/images/sheet/addpolysheet.png"); - private static final Icon WORK_SHEET_ICON = IOUtils.readIcon("com/fr/base/images/oem/worksheet.png"); - private static final Icon POLY_SHEET_ICON = IOUtils.readIcon("com/fr/design/images/sheet/polysheet.png"); - private static final Icon LEFT_ICON = IOUtils.readIcon("com/fr/design/images/sheet/left_normal@1x.png"); - private static final Icon RIGHT_ICON = IOUtils.readIcon("com/fr/design/images/sheet/right_normal@1x.png"); - private static final Icon DISABLED_LEFT_ICON = IOUtils.readIcon("com/fr/design/images/sheet/left_hover@1x.png"); - private static final Icon DISABLED_RIGHT_ICON = IOUtils.readIcon("com/fr/design/images/sheet/right_hover@1x.png"); + private static final Icon ADD_WORK_SHEET = IconUtils.readIcon("com/fr/base/images/oem/add_worksheet"); + protected static final Icon ADD_POLY_SHEET = IconUtils.readIcon("com/fr/design/images/sheet/add_polysheet"); + private static final Icon WORK_SHEET_ICON = IconUtils.readIcon("com/fr/base/images/oem/worksheet"); + private static final Icon POLY_SHEET_ICON = IconUtils.readIcon("com/fr/design/images/sheet/polysheet"); + private static final Icon LEFT_ICON = IconUtils.readIcon("com/fr/design/images/sheet/pre_page"); + private static final Icon RIGHT_ICON = IconUtils.readIcon("com/fr/design/images/sheet/next_page"); + private static final Icon DISABLED_LEFT_ICON = IconUtils.readIcon("com/fr/design/images/sheet/pre_page_disabled.svg"); + private static final Icon DISABLED_RIGHT_ICON = IconUtils.readIcon("com/fr/design/images/sheet/next_page_disabled.svg"); private static final int NUM = 10; private static final int ICON_SEP_DISTANCE = 8; diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java index a902d0e00..31a1b18ed 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java @@ -11,15 +11,14 @@ import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvi import com.fr.general.ComparatorUtils; import com.fr.general.http.HttpToolbox; import com.fr.json.JSONArray; -import com.fr.json.JSONException; import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; import com.fr.plugin.basic.version.Version; +import com.fr.plugin.basic.version.VersionIntervalType; import com.fr.plugin.basic.version.VersionIntervalFactory; import com.fr.stable.ArrayUtils; import com.fr.stable.EncodeConstants; -import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; diff --git a/designer-realize/src/main/java/com/fr/grid/GridUI.java b/designer-realize/src/main/java/com/fr/grid/GridUI.java index 5f5476511..711ecee83 100644 --- a/designer-realize/src/main/java/com/fr/grid/GridUI.java +++ b/designer-realize/src/main/java/com/fr/grid/GridUI.java @@ -49,6 +49,7 @@ import com.fr.stable.script.CalculatorUtils; import com.fr.stable.unit.FU; import com.fr.stable.AssistUtils; import com.fr.third.antlr.ANTLRException; +import com.fr.third.guava.collect.HashMultimap; import javax.swing.JComponent; import javax.swing.UIManager; @@ -73,6 +74,7 @@ import java.awt.geom.Rectangle2D; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Objects; public class GridUI extends ComponentUI { @@ -91,6 +93,7 @@ public class GridUI extends ComponentUI { protected List paintCellElementList = new ArrayList(); protected List paintCellElementRectangleList = new ArrayList(); protected List paginateLineList = new ArrayList(); // 分页线 + protected HashMultimap mergeCellElementTable = HashMultimap.create(); // 为了画白色的背景. protected static Background WHITE_Backgorund = ColorBackground.getInstance(Color.WHITE); // CellElementPainter @@ -247,7 +250,7 @@ public class GridUI extends ComponentUI { - reportSettings.getFooterHeight().toPixD(resolution); } - private void paintGridLine(Graphics g, Grid grid, double realWidth, double realHeight, + private void paintGridLine(Graphics g, Grid grid, TemplateElementCase report, double realWidth, double realHeight, int resolution) { Graphics2D g2d = (Graphics2D) g; @@ -257,22 +260,51 @@ public class GridUI extends ComponentUI { // 分页线 paginateLineList.clear(); + // 合并单元格 + mergeCellElementTable.clear(); boolean isShowVerticalPaginateLine = grid.getPaginateLineShowType() == Grid.MULTIPLE_PAGINATE_LINE; boolean isShowHorizontalPaginateLine = grid.getPaginateLineShowType() != Grid.NO_PAGINATE_LINE; - new DrawVerticalLineHelper(grid.getVerticalBeginValue(), verticalEndValue, - grid.isShowGridLine(), isShowVerticalPaginateLine, rowHeightList, paperPaintHeight, - paginateLineList, realWidth, resolution).iterateStart2End(g2d); + Iterator cells = report.intersect(grid.getHorizontalBeginValue(), grid.getVerticalBeginValue(), + horizontalEndValue - grid.getHorizontalBeginValue(), verticalEndValue - grid.getVerticalBeginValue()); + while (cells.hasNext()) { + TemplateCellElement cellElement = (TemplateCellElement) cells.next(); + if (cellElement == null) { + continue; + } + int columnSpan = cellElement.getColumnSpan(); + int rowSpan = cellElement.getRowSpan(); + if (columnSpan > 1 || rowSpan > 1) { + for (int c = 0; c < columnSpan - 1; c++) { + for (int r = 0; r < rowSpan; r++) { + mergeCellElementTable.put(CellPosition.value(cellElement.getRow() + r, cellElement.getColumn() + c), CellPosition.RIGHT); + } + } + for (int r = 0; r < rowSpan - 1; r++) { + for (int c = 0; c < columnSpan; c++) { + mergeCellElementTable.put(CellPosition.value(cellElement.getRow() + r, cellElement.getColumn() + c), CellPosition.BOTTOM); + } + } + } + } + GridRange gridRange = GridRange.range(grid.getHorizontalBeginValue(), horizontalEndValue, grid.getVerticalBeginValue(), verticalEndValue) + .rangeList(rowHeightList, columnWidthList) + .realSize(realWidth, realHeight); + + new DrawVerticalLineHelper(gridRange, grid.isShowGridLine(), + isShowVerticalPaginateLine, paperPaintHeight, + paginateLineList, resolution).iterateStart2End(g2d); - new DrawHorizontalLineHelper(grid.getHorizontalBeginValue(), horizontalEndValue, - grid.isShowGridLine(), isShowHorizontalPaginateLine, columnWidthList, paperPaintWidth, - paginateLineList, realHeight, resolution).iterateStart2End(g2d); + new DrawHorizontalLineHelper(gridRange, grid.isShowGridLine(), + isShowHorizontalPaginateLine, paperPaintWidth, + paginateLineList, resolution).iterateStart2End(g2d); } /** * 最后处理 */ + @Override public void finalize() { try { super.finalize(); @@ -285,80 +317,34 @@ public class GridUI extends ComponentUI { } private static abstract class DrawLineHelper { - private int startIndex; - private int endIndex; + protected GridRange gridRange; - private boolean showGridLine; - private boolean showPaginateLine; + protected boolean showGridLine; + protected boolean showPaginateLine; - private DynamicUnitList sizeList; - private double paperPaintSize; + protected double paperPaintSize; - private List paginateLineList; + protected List paginateLineList; Line2D tmpLine2D = new Line2D.Double(0, 0, 0, 0); - private int resolution; + protected int resolution; - private static final double THRESHOLD = 1.0E-4D; + protected static final double THRESHOLD = 1.0E-4D; - DrawLineHelper(int startIndex, int endIndex, boolean showGridLine, - boolean showPaginateLine, DynamicUnitList sizeList, double paperPaintSize, + DrawLineHelper(GridRange gridRange, boolean showGridLine, + boolean showPaginateLine, double paperPaintSize, List paginateLineList, int resolution) { - this.startIndex = startIndex; - this.endIndex = endIndex; + this.gridRange = gridRange; this.showGridLine = showGridLine; this.showPaginateLine = showPaginateLine; - this.sizeList = sizeList; this.paperPaintSize = paperPaintSize; this.paginateLineList = paginateLineList; this.resolution = resolution; } - protected void iterateStart2End(Graphics2D g2d) { - float tmpSize = 0, paperSumSize = 0, sumSize = 0; - for (int i = 0; i <= endIndex; i++) { - // denny: 开始 - if (i == 0) { - i = startIndex; - - // denny: 增加从0到Grid左边被hide的列宽 - for (int k = 0; k < startIndex; k++) { - tmpSize = sizeList.get(k).toPixF(resolution); - - paperSumSize += tmpSize; - if (paperSumSize >= paperPaintSize) { - paperSumSize = tmpSize; - } - } - } - - // adjust height. - tmpSize = sizeList.get(i).toPixF(resolution); - paperSumSize += tmpSize; - - if (showGridLine) {// paint line. - setLine2D((int) sumSize); - g2d.draw(tmpLine2D); - } - - // paint paper margin line. - if (showPaginateLine && paperSumSize - paperPaintSize > THRESHOLD) { - paginateLineList.add(getPaginateLine2D((int) sumSize)); - paperSumSize = tmpSize; - } - - sumSize += tmpSize; - } - - // paint 最后一个横线.. - if (showGridLine) { - drawLastLine(g2d, (int) sumSize); - } - } - - protected abstract void setLine2D(int sumSize); + protected abstract void iterateStart2End(Graphics2D g2d); protected abstract Line2D.Double getPaginateLine2D(int sumSize); @@ -366,14 +352,12 @@ public class GridUI extends ComponentUI { } private class DrawVerticalLineHelper extends DrawLineHelper { - private double realWidth; - DrawVerticalLineHelper(int startIndex, int endIndex, boolean showGridLine, - boolean showPaginateLine, DynamicUnitList unitSizeList, double paperPaintSize, - List paginateLineList, double realWidth, int resolution) { - super(startIndex, endIndex, showGridLine, showPaginateLine, unitSizeList, + DrawVerticalLineHelper(GridRange gridRange, boolean showGridLine, + boolean showPaginateLine, double paperPaintSize, + List paginateLineList, int resolution) { + super(gridRange, showGridLine, showPaginateLine, paperPaintSize, paginateLineList, resolution); - this.realWidth = realWidth; } @Override @@ -382,25 +366,58 @@ public class GridUI extends ComponentUI { } @Override - protected void setLine2D(int sumHeight) { - tmpLine2D.setLine(0, sumHeight, realWidth, sumHeight); + protected void drawLastLine(Graphics2D g2d, int sumHeight) { + GraphHelper.drawLine(g2d, 0, sumHeight, gridRange.realWidth, sumHeight); } @Override - protected void drawLastLine(Graphics2D g2d, int sumHeight) { - GraphHelper.drawLine(g2d, 0, sumHeight, realWidth, sumHeight); + protected void iterateStart2End(Graphics2D g2d) { + float rowHeight, paperYAxisSumSize = 0, yAxisSumSize = 0; + for (int i = 0; i <= gridRange.yEndIndex; i++) { + if (i == 0) { + i = gridRange.yBeginIndex; + for (int k = 0; k < gridRange.yBeginIndex; k++) { + rowHeight = gridRange.rowHeightList.get(k).toPixF(resolution); + + paperYAxisSumSize += rowHeight; + if (paperYAxisSumSize >= paperPaintSize) { + paperYAxisSumSize = rowHeight; + } + } + } + rowHeight = gridRange.rowHeightList.get(i).toPixF(resolution); + paperYAxisSumSize += rowHeight; + if (showGridLine) { + float columnWidth, xAxisSumSize = 0; + for (int j = gridRange.xBeginIndex; j <= gridRange.xEndIndex; j++) { + columnWidth = gridRange.columnWidthList.get(j).toPixF(resolution); + if (!mergeCellElementTable.get(CellPosition.value(i - 1, j)).contains(CellPosition.BOTTOM)) { + tmpLine2D.setLine(xAxisSumSize, yAxisSumSize, xAxisSumSize + columnWidth, yAxisSumSize); + g2d.draw(tmpLine2D); + } + xAxisSumSize += columnWidth; + } + } + if (showPaginateLine && paperYAxisSumSize - paperPaintSize > THRESHOLD) { + paginateLineList.add(getPaginateLine2D((int) yAxisSumSize)); + paperYAxisSumSize = rowHeight; + } + yAxisSumSize += rowHeight; + } + // paint 最后一个横线.. + if (showGridLine) { + drawLastLine(g2d, (int) yAxisSumSize); + } } } private class DrawHorizontalLineHelper extends DrawLineHelper { - private double realHeight; - DrawHorizontalLineHelper(int startIndex, int endIndex, boolean showGridLine, - boolean showPaginateLine, DynamicUnitList unitSizeList, double paperPaintSize, - List paginateLineList, double realHeight, int resolution) { - super(startIndex, endIndex, showGridLine, showPaginateLine, unitSizeList, + DrawHorizontalLineHelper(GridRange gridRange, boolean showGridLine, + boolean showPaginateLine, double paperPaintSize, + List paginateLineList, int resolution) { + super(gridRange, showGridLine, showPaginateLine, paperPaintSize, paginateLineList, resolution); - this.realHeight = realHeight; } @Override @@ -409,13 +426,47 @@ public class GridUI extends ComponentUI { } @Override - protected void setLine2D(int sumWidth) { - tmpLine2D.setLine(sumWidth, 0, sumWidth, realHeight); + protected void drawLastLine(Graphics2D g2d, int sumWidth) { + GraphHelper.drawLine(g2d, sumWidth, 0, sumWidth, gridRange.realHeight); } @Override - protected void drawLastLine(Graphics2D g2d, int sumWidth) { - GraphHelper.drawLine(g2d, sumWidth, 0, sumWidth, realHeight); + protected void iterateStart2End(Graphics2D g2d) { + float columnWidth, paperXAxisSumSize = 0, xAxisSumSize = 0; + for (int i = 0; i <= gridRange.xEndIndex; i++) { + if (i == 0) { + i = gridRange.xBeginIndex; + for (int k = 0; k < gridRange.xBeginIndex; k++) { + columnWidth = gridRange.columnWidthList.get(k).toPixF(resolution); + paperXAxisSumSize += columnWidth; + if (paperXAxisSumSize >= paperPaintSize) { + paperXAxisSumSize = columnWidth; + } + } + } + columnWidth = gridRange.columnWidthList.get(i).toPixF(resolution); + paperXAxisSumSize += columnWidth; + if (showGridLine) { + float rowHeight, yAxisSumSize = 0; + for (int j = gridRange.yBeginIndex; j <= gridRange.yEndIndex; j++) { + rowHeight = gridRange.rowHeightList.get(j).toPixF(resolution); + if (!mergeCellElementTable.get(CellPosition.value(j, i - 1)).contains(CellPosition.RIGHT)) { + tmpLine2D.setLine(xAxisSumSize, yAxisSumSize, xAxisSumSize, yAxisSumSize + rowHeight); + g2d.draw(tmpLine2D); + } + yAxisSumSize += rowHeight; + } + } + if (showPaginateLine && paperXAxisSumSize - paperPaintSize > THRESHOLD) { + paginateLineList.add(getPaginateLine2D((int) xAxisSumSize)); + paperXAxisSumSize = columnWidth; + } + xAxisSumSize += columnWidth; + } + // paint 最后一个横线.. + if (showGridLine) { + drawLastLine(g2d, (int) xAxisSumSize); + } } } @@ -482,18 +533,6 @@ public class GridUI extends ComponentUI { // peter:tmpRectangle2D_3只是一个临时的Rectangle2D,由于后面不少地方需要用到这个矩形 this.cell_back_rect.setRect(0, 0, this.tmpRectangle.getWidth() - 1, this.tmpRectangle.getHeight() - 1.5); - // peter:对于合并的单元格,需要先白色的背景来清除背景. - if (tmpCellElement.getColumnSpan() > 1 || tmpCellElement.getRowSpan() > 1) { - // REPORT-23492 要看下是否设置了纸张背景 如果设置了按照背景来画 - ReportSettingsProvider reportSettings = getReportSettings(report); - Background currentBackground = reportSettings.getBackground(); - if (currentBackground != null) { - currentBackground.paint(g2d, this.cell_back_rect); - } else { - WHITE_Backgorund.paint(g2d, this.cell_back_rect); - } - //daniel:上面这里就有问题了啊....报表的背景在这个之前画的 会覆盖报表背景....不过只是设计器中看到预览浏览没问题 - } // peter:将这个元素添加到需要paint的元素列表当中去,留着画边框线.. paintCellElementList.add(tmpCellElement); paintCellElementRectangleList.add(this.tmpRectangle.clone()); @@ -1093,8 +1132,7 @@ public class GridUI extends ComponentUI { this.paintBackground(g2d, grid, elementCase, resolution); // 画Grid Line - this.paintGridLine(g2d, grid, realWidth, realHeight, resolution); - + this.paintGridLine(g2d, grid, elementCase, realWidth, realHeight, resolution); // peter:添上线程的支持,有时候,paint元素的时候,可能会有元素被删除了. // 需要先清除画Border需要的元素. paintCellElementList.clear(); @@ -1277,4 +1315,101 @@ public class GridUI extends ComponentUI { paginateLineList.add(new Line2D.Double(0, sumHeight, width, sumHeight)); } } + + /** + * 描述单元格位置的POJO + */ + private static class CellPosition { + public final static int TOP = 0; + public static final int LEFT = 1; + public final static int BOTTOM = 2; + public static final int RIGHT = 4; + public int x; + public int y; + + public CellPosition(int x, int y) { + this.x = x; + this.y = y; + } + + public static CellPosition value(int x, int y) { + return new CellPosition(x, y); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CellPosition that = (CellPosition) o; + return x == that.x && y == that.y; + } + + @Override + public int hashCode() { + return Objects.hash(x, y); + } + } + + /** + * 描述表格范围的POJO + * x轴为水平方向,对应的宽度表为列宽列表 + * y轴为垂直方向,对应的宽度表为行高列表 + */ + private static class GridRange { + + public int xBeginIndex; + public int xEndIndex; + public int yBeginIndex; + public int yEndIndex; + double realWidth; + double realHeight; + /** + * 行高列表,对应y方向线段 + */ + public DynamicUnitList rowHeightList; + + /** + * 列宽列表,对应x方向线段 + */ + public DynamicUnitList columnWidthList; + + public GridRange(int xBeginIndex, int xEndIndex, int yBeginIndex, int yEndIndex) { + this.xBeginIndex = xBeginIndex; + this.xEndIndex = xEndIndex; + this.yBeginIndex = yBeginIndex; + this.yEndIndex = yEndIndex; + } + + /** + * 设置行高列宽列表 + * + * @param rowHeightList 行高列表 + * @param columnWidthList 列宽列表 + */ + public GridRange rangeList(DynamicUnitList rowHeightList, DynamicUnitList columnWidthList) { + this.rowHeightList = rowHeightList; + this.columnWidthList = columnWidthList; + return this; + } + + /** + * 设置表格真实宽高 + * + * @param realWidth 宽度 + * @param realHeight 高度 + */ + public GridRange realSize(double realWidth, double realHeight) { + this.realWidth = realWidth; + this.realHeight = realHeight; + return this; + } + + public static GridRange range(int xBeginIndex, int xEndIndex, int yBeginIndex, int yEndIndex) { + return new GridRange(xBeginIndex, xEndIndex, yBeginIndex, yEndIndex); + } + } } diff --git a/designer-realize/src/main/java/com/fr/poly/actions/DeleteBlockAction.java b/designer-realize/src/main/java/com/fr/poly/actions/DeleteBlockAction.java index 908e235a6..1acda00e6 100644 --- a/designer-realize/src/main/java/com/fr/poly/actions/DeleteBlockAction.java +++ b/designer-realize/src/main/java/com/fr/poly/actions/DeleteBlockAction.java @@ -8,7 +8,7 @@ import java.awt.event.KeyEvent; import javax.swing.KeyStroke; -import com.fr.base.BaseUtils; + import com.fr.base.vcs.DesignerMode; import com.fr.design.actions.TemplateComponentActionInterface; import com.fr.design.actions.UpdateAction; @@ -26,7 +26,7 @@ public class DeleteBlockAction extends UpdateAction implements TemplateComponent this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_M_Edit_Delete")); this.setMnemonic('D'); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0)); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/delete.png")); + this.setSmallIcon("/com/fr/design/images/m_report/delete"); } @Override diff --git a/designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellDSColumnEditor.java b/designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellDSColumnEditor.java index cfc0e9adb..c1882270b 100644 --- a/designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellDSColumnEditor.java +++ b/designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellDSColumnEditor.java @@ -4,6 +4,7 @@ import com.fr.base.BaseFormula; import com.fr.design.actions.columnrow.DSColumnConditionAction; import com.fr.design.actions.core.ActionFactory; import com.fr.design.actions.insert.cell.DSColumnCellAction; +import com.fr.design.constants.UIConstants; import com.fr.design.data.DesignTableDataManager; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dscolumn.DSColumnAdvancedPane; @@ -259,8 +260,8 @@ public class CellDSColumnEditor extends CellQuickEditor { condition.setEditingComponent(tc); } //丢掉icon,修改按钮名称为编辑 - condition.setSmallIcon(null); - condition.setName(Toolkit.i18nText("Fine-Design_Basic_Edit")); + condition.setSmallIcon(UIConstants.BLACK_ICON); + condition.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Edit")); conditionUIButton = new UIButton(condition); Component[][] components = new Component[][]{ new Component[]{uiLabel, UIComponentUtils.wrapWithBorderLayoutPane(conditionUIButton)} diff --git a/designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellRichTextEditor.java b/designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellRichTextEditor.java index 438d440f6..a515c7204 100644 --- a/designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellRichTextEditor.java +++ b/designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellRichTextEditor.java @@ -2,6 +2,7 @@ package com.fr.quickeditor.cellquick; import com.fr.design.actions.core.ActionFactory; import com.fr.design.actions.insert.cell.RichTextCellAction; +import com.fr.design.constants.UIConstants; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; @@ -47,7 +48,7 @@ public class CellRichTextEditor extends CellQuickEditor { protected void refreshDetails() { RichTextCellAction subReportCellAction = new RichTextCellAction(tc); subReportCellAction.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Edit")); - subReportCellAction.setSmallIcon(null); + subReportCellAction.setSmallIcon(UIConstants.BLACK_ICON); richTextButton.setAction(subReportCellAction); } diff --git a/designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellSubReportEditor.java b/designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellSubReportEditor.java index 3f29b592a..e6c3ddf82 100644 --- a/designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellSubReportEditor.java +++ b/designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellSubReportEditor.java @@ -2,6 +2,7 @@ package com.fr.quickeditor.cellquick; import com.fr.design.actions.core.ActionFactory; import com.fr.design.actions.insert.cell.SubReportCellAction; +import com.fr.design.constants.UIConstants; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; @@ -43,7 +44,7 @@ public class CellSubReportEditor extends CellQuickEditor { protected void refreshDetails() { SubReportCellAction subReportCellAction = new SubReportCellAction(tc); subReportCellAction.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Edit")); - subReportCellAction.setSmallIcon(null); + subReportCellAction.setSmallIcon(UIConstants.BLACK_ICON); subReportButton.setAction(subReportCellAction); } diff --git a/designer-realize/src/main/java/com/fr/start/MainDesigner.java b/designer-realize/src/main/java/com/fr/start/MainDesigner.java index ff3aadd36..a9a1ccbd1 100644 --- a/designer-realize/src/main/java/com/fr/start/MainDesigner.java +++ b/designer-realize/src/main/java/com/fr/start/MainDesigner.java @@ -1,6 +1,6 @@ package com.fr.start; -import com.fr.base.BaseUtils; + import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignerEnvManager; import com.fr.design.actions.file.WebPreviewUtils; @@ -222,7 +222,7 @@ public class MainDesigner extends BaseDesigner { private void createSaveButton() { - saveButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/buttonicon/save.png")); + saveButton = new UIButton("/com/fr/design/images/buttonicon/save.png", true); saveButton.setToolTipText(KeySetUtils.SAVE_TEMPLATE.getMenuKeySetName()); saveButton.set4ToolbarButton(); saveButton.addActionListener(new ActionListener() { @@ -238,7 +238,7 @@ public class MainDesigner extends BaseDesigner { private void createUndoButton() { - undo = new UIButton(BaseUtils.readIcon("/com/fr/design/images/buttonicon/undo.png")); + undo = new UIButton("/com/fr/design/images/buttonicon/undo.png", true); undo.setToolTipText(KeySetUtils.UNDO.getMenuKeySetName()); undo.set4ToolbarButton(); undo.addActionListener(new ActionListener() { @@ -253,7 +253,7 @@ public class MainDesigner extends BaseDesigner { } private void createRedoButton() { - redo = new UIButton(BaseUtils.readIcon("/com/fr/design/images/buttonicon/redo.png")); + redo = new UIButton("/com/fr/design/images/buttonicon/redo.png", true); redo.setToolTipText(KeySetUtils.REDO.getMenuKeySetName()); redo.set4ToolbarButton(); redo.addActionListener(new ActionListener() { diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java b/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java index 420f0f2b6..14bb23b18 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java @@ -71,6 +71,7 @@ public class DesignerWorkspaceProvider extends Activator { } catch (Exception e) { FineLoggerFactory.getLogger().warn("Check Service Failed"); } + EnvChangeEntrance.getInstance().pluginErrorRemind(selectEnv); } }); } diff --git a/designer-realize/src/main/java/com/fr/start/preload/ImagePreLoader.java b/designer-realize/src/main/java/com/fr/start/preload/ImagePreLoader.java index 0c38d731e..138e7df2b 100644 --- a/designer-realize/src/main/java/com/fr/start/preload/ImagePreLoader.java +++ b/designer-realize/src/main/java/com/fr/start/preload/ImagePreLoader.java @@ -46,11 +46,13 @@ public class ImagePreLoader { private String[] preLoadImages = { "com/fr/design/images/m_file/formExport.png", - "com/fr/base/images/oem/cpt.png", + "com/fr/design/images/m_file/formExport_normal.svg", + "com/fr/base/images/oem/cpt.xpng", "com/fr/design/images/data/store_procedure.png", "/com/fr/design/images/m_file/preview.png", "com/fr/base/images/cell/blank.gif", "com/fr/design/images/data/dock/serverdatabase.png", + "com/fr/design/images/data/dock/serverdatabase_normal.svg", "/com/fr/design/images/data/dock/serverclasstabledata.png", "/com/fr/design/images/data/dock/serverdatatable.png", "/com/fr/design/images/data/file.png", @@ -73,6 +75,7 @@ public class ImagePreLoader { "com/fr/design/images/buttonicon/run24.png", "com/fr/design/images/buttonicon/runs.png", "com/fr/design/mainframe/alphafine/images/smallsearch.png", + "com/fr/design/mainframe/alphafine/images/smallsearch_normal.svg", "com/fr/design/images/buttonicon/pageb24.png", "com/fr/design/images/buttonicon/writeb24.png", "com/fr/design/images/buttonicon/anab24.png", @@ -81,6 +84,7 @@ public class ImagePreLoader { "com/fr/design/images/buttonicon/anas.png", "com/fr/design/images/buttonicon/refresh.png", "com/fr/design/images/gui/color/foreground.png", + "com/fr/design/images/gui/color/foreground_normal.svg", "com/fr/design/images/buttonicon/history.png", "com/fr/design/images/m_file/close.png", "com/fr/design/images/m_file/edit.png", @@ -94,8 +98,14 @@ public class ImagePreLoader { "com/fr/design/images/m_report/close_over.png", "com/fr/design/images/m_report/close_press.png", "com/fr/design/images/buttonicon/save.png", + "com/fr/design/images/buttonicon/save_normal.svg", + "com/fr/design/images/buttonicon/save_disabled.svg", "com/fr/design/images/buttonicon/undo.png", + "com/fr/design/images/buttonicon/undo_normal.svg", + "com/fr/design/images/buttonicon/undo_disabled.svg", "com/fr/design/images/buttonicon/redo.png", + "com/fr/design/images/buttonicon/redo_normal.svg", + "com/fr/design/images/buttonicon/redo_disabled.svg", "com/fr/design/images/buttonicon/additicon_grey.png", "com/fr/design/images/buttonicon/addicon.png", "com/fr/design/images/buttonicon/list_normal.png", @@ -104,6 +114,7 @@ public class ImagePreLoader { "com/fr/design/images/buttonicon/mouseoverclose icon.png", "com/fr/design/images/buttonicon/pressclose icon.png", "com/fr/design/images/buttonicon/open.png", + "com/fr/design/images/buttonicon/open_normal.svg", "com/fr/design/images/m_file/view_folder.png", "com/fr/design/images/data/source/rename.png", "com/fr/design/images/buttonicon/minus.png", @@ -117,6 +128,7 @@ public class ImagePreLoader { "com/fr/design/images/control/tab/remove.png", "com/fr/design/images/m_file/preview.png", "com/fr/design/images/m_web/connection.png", + "com/fr/design/images/m_web/connection_normal.svg", "com/fr/design/images/control/addPopup.png", "com/fr/design/images/buttonicon/propertiestab/cellelement_normal.png", "com/fr/design/images/buttonicon/propertiestab/cellattr_normal.png", @@ -130,15 +142,19 @@ public class ImagePreLoader { "com/fr/design/images/buttonicon/propertiestab/cellelement_selected.png", "com/fr/design/images/log/selectedall.png", "com/fr/design/images/m_edit/copy.png", + "com/fr/design/images/m_edit/copy_normal.svg", + "com/fr/design/images/m_edit/copy_disabled.svg", "com/fr/design/images/log/clear.png", "com/fr/design/images/log/clear.png", "com/fr/design/images/log/selectedall.png", "com/fr/design/images/log/setting.png", "com/fr/design/images/buttonicon/newcpts.png", + "com/fr/design/images/buttonicon/newcpts_normal.svg", "com/fr/base/images/oem/logo.png", "com/fr/design/images/data/bind/localconnect.png", "com/fr/design/images/gui/tab_add_normal.png", "com/fr/design/images/m_help/demo.png", + "com/fr/design/images/m_help/demo_normal.svg", "com/fr/design/images/gui/tab_add_hover.png", "com/fr/design/images/gui/tab_add_click.png", "com/fr/design/images/gui/tab_delete.png", @@ -149,6 +165,17 @@ public class ImagePreLoader { "com/fr/design/images/update.png", "com/fr/design/images/need.png", "com/fr/design/images/bug.png", + "/com/fr/design/images/bbs/video_normal.svg", + "/com/fr/design/images/bbs/help_normal.svg", + "/com/fr/design/images/bbs/bbs_normal.svg", + "/com/fr/design/images/bbs/question_normal.svg", + "/com/fr/design/images/bbs/solution_normal.svg", + "/com/fr/design/images/bbs/bug_normal.svg", + "/com/fr/design/images/bbs/need_normal.svg", + "/com/fr/design/images/bbs/center_normal.svg", + "/com/fr/design/images/bbs/sign_normal.svg", + "/com/fr/design/images/bbs/facebook_normal.svg", + "/com/fr/design/images/update/update_new_normal.svg", "com/fr/design/images/signature.png", "com/fr/design/images/m_file/switch.png", "com/fr/design/images/gui/blank.gif", @@ -167,13 +194,17 @@ public class ImagePreLoader { "com/fr/design/images/gui/frm.png", "com/fr/design/images/gui/cht.png", "com/fr/design/images/chart/ChartType.png", + "com/fr/design/images/chart/ChartType_normal.svg", "com/fr/van/chart/map/images/mapData.png", + "com/fr/van/chart/map/images/mapData_normal.svg", "com/fr/design/images/buttonicon/add.png", "com/fr/base/images/cell/control/remove.png", "com/fr/design/images/control/up.png", "com/fr/design/images/control/down.png", "com/fr/design/images/control/sortAsc.png", "com/fr/design/images/m_insert/formula.png", + "com/fr/design/images/m_insert/formula_normal.svg", + "com/fr/design/images/m_insert/formula_disabled.svg", "com/fr/design/images/calender/year_reduce.png", "com/fr/design/images/calender/year_reduce_hover.png", "com/fr/design/images/calender/year_reduce_click.png", @@ -189,27 +220,43 @@ public class ImagePreLoader { "com/fr/design/images/buttonicon/type_string.png", "com/fr/base/images/cell/control/add.png", "com/fr/design/images/expand/cellAttr.gif", + "com/fr/design/images/expand/cellAttr_normal.svg", "com/fr/design/images/expand/none16x16.png", "com/fr/design/images/expand/asc.png", "com/fr/design/images/expand/des.png", "com/fr/design/images/form/toolbar/pie.png", "com/fr/design/images/buttonicon/widget/date_16.png", + "com/fr/design/images/buttonicon/widget/date_16_normal.svg", "com/fr/design/images/buttonicon/widget/tree_16.png", + "com/fr/design/images/buttonicon/widget/tree_16_normal.svg", "com/fr/design/images/buttonicon/widget/comboboxtree.png", + "com/fr/design/images/buttonicon/widget/comboboxtree16_normal.svg", "com/fr/design/images/buttonicon/widget/checkbox_group_16.png", + "com/fr/design/images/buttonicon/widget/checkbox_group_16_normal.svg", "com/fr/design/images/buttonicon/widget/button_group_16.png", + "com/fr/design/images/buttonicon/widget/button_group_16_normal.svg", "com/fr/design/images/buttonicon/widget/number_field_16.png", + "com/fr/design/images/buttonicon/widget/number_field_16_normal.svg", "com/fr/design/images/buttonicon/widget/label_16.png", + "com/fr/design/images/buttonicon/widget/label_16_normal.svg", "com/fr/web/images/form/resources/button_16.png", "com/fr/design/images/buttonicon/widget/button_16.png", + "com/fr/design/images/buttonicon/widget/button_16_normal.svg", "com/fr/design/images/buttonicon/widget/files_up.png", + "com/fr/design/images/buttonicon/widget/files_up_normal.svg", "com/fr/design/images/buttonicon/widget/combo_box_16.png", + "com/fr/design/images/buttonicon/widget/combo_box_16_normal.svg", "com/fr/design/images/buttonicon/widget/combo_check_16.png", + "com/fr/design/images/buttonicon/widget/combo_check_16_normal.svg", "com/fr/design/images/buttonicon/widget/check_box_16.png", + "com/fr/design/images/buttonicon/widget/check_box_16_normal.svg", "com/fr/web/images/form/resources/list_16.png", "com/fr/design/images/buttonicon/widget/text_field_16.png", + "com/fr/design/images/buttonicon/widget/text_field_16_normal.svg", "com/fr/design/images/buttonicon/widget/text_area_16.png", + "com/fr/design/images/buttonicon/widget/text_area_16_normal.svg", "com/fr/design/images/buttonicon/widget/password_field_16.png", + "com/fr/design/images/buttonicon/widget/password_field_16_normal.svg", "com/fr/web/images/form/resources/iframe_16.png", "com/fr/design/images/form/toolbar/column.png", "com/fr/design/images/form/toolbar/bar.png", @@ -233,8 +280,14 @@ public class ImagePreLoader { "com/fr/web/images/form/forbid.png", "com/fr/web/images/form/resources/layout_absolute.png", "com/fr/design/images/m_edit/cut.png", + "com/fr/design/images/m_edit/cut_normal.svg", + "com/fr/design/images/m_edit/cut_disabled.svg", "com/fr/design/images/m_edit/paste.png", + "com/fr/design/images/m_edit/paste_normal.svg", + "com/fr/design/images/m_edit/paste_disabled.svg", "com/fr/design/images/m_report/delete.png", + "com/fr/design/images/m_report/delete_normal.svg", + "com/fr/design/images/m_report/delete_disabled.svg", "com/fr/design/images/toolbarbtn/parametersetting.png", "com/fr/base/images/oem/addworksheet.png", "com/fr/design/images/sheet/addpolysheet.png", @@ -249,6 +302,7 @@ public class ImagePreLoader { "com/fr/design/images/data/source/normalUp20.png", "com/fr/design/images/data/source/hoverUp20.png", "com/fr/design/images/m_edit/formatBrush.png", + "com/fr/design/images/m_edit/formatBrush_normal.svg", "com/fr/design/images/expand/none16x16_selected@1x.png", "com/fr/design/images/expand/vertical.png", "com/fr/design/images/expand/vertical_selected@1x.png", @@ -258,8 +312,14 @@ public class ImagePreLoader { "com/fr/design/images/expand/asc_selected.png", "com/fr/design/images/expand/des_selected.png", "com/fr/design/images/m_format/cellstyle/bold.png", + "com/fr/design/images/m_format/cellstyle/bold_normal.svg", + "com/fr/design/images/m_format/cellstyle/bold_selected.svg", "com/fr/design/images/m_format/cellstyle/italic.png", + "com/fr/design/images/m_format/cellstyle/italic_normal.svg", + "com/fr/design/images/m_format/cellstyle/italic_selected.svg", "com/fr/design/images/m_format/cellstyle/underline.png", + "com/fr/design/images/m_format/cellstyle/underline_normal.svg", + "com/fr/design/images/m_format/cellstyle/underline_selected.svg", "com/fr/design/images/m_format/cellstyle/strikethrough.png", "com/fr/design/images/m_format/cellstyle/shadow.png", "com/fr/design/images/m_format/cellstyle/sup.png", @@ -282,10 +342,16 @@ public class ImagePreLoader { "com/fr/design/images/m_format/cellstyle/in_white.png", "com/fr/design/images/m_format/cellstyle/h_left_normal.png", "com/fr/design/images/m_format/cellstyle/h_left_normal_white.png", + "com/fr/design/images/m_format/cellstyle/h_left_normal.svg", + "com/fr/design/images/m_format/cellstyle/h_left_selected.svg", "com/fr/design/images/m_format/cellstyle/h_center_normal.png", "com/fr/design/images/m_format/cellstyle/h_center_normal_white.png", + "com/fr/design/images/m_format/cellstyle/h_center_normal.svg", + "com/fr/design/images/m_format/cellstyle/h_center_selected.svg", "com/fr/design/images/m_format/cellstyle/h_right_normal.png", "com/fr/design/images/m_format/cellstyle/h_right_normal_white.png", + "com/fr/design/images/m_format/cellstyle/h_right_normal.svg", + "com/fr/design/images/m_format/cellstyle/h_right_selected.svg", "com/fr/design/images/m_format/cellstyle/h_s_normal.png", "com/fr/design/images/m_format/cellstyle/h_s_normal_white.png", "com/fr/design/images/m_format/cellstyle/defaultAlignment.png", @@ -299,8 +365,12 @@ public class ImagePreLoader { "com/fr/design/images/control/refresh.png", "com/fr/design/images/toolbarbtn/close.png", "com/fr/design/images/buttonicon/new_form3.png", + "com/fr/design/images/buttonicon/new_form3_normal.svg", "com/fr/design/images/m_file/save.png", + "com/fr/design/images/m_file/save_normal.svg", + "com/fr/design/images/m_file/save_disabled.svg", "com/fr/design/images/m_file/saveAs.png", + "com/fr/design/images/m_file/saveAs_normal.svg", "com/fr/design/images/m_edit/undo.png", "com/fr/design/images/m_edit/redo.png", "com/fr/design/images/m_file/excel.png", @@ -311,61 +381,104 @@ public class ImagePreLoader { "com/fr/design/images/m_file/text.png", "com/fr/design/images/m_web/datasource.png", "com/fr/design/images/m_report/webreportattribute.png", + "com/fr/design/images/m_report/webreportattribute_normal.svg", "com/fr/design/images/m_report/exportAttr.png", "com/fr/design/images/m_report/p.png", + "com/fr/design/images/m_report/p_normal.svg", "com/fr/design/images/m_report/mobile.png", + "com/fr/design/images/m_report/mobile_normal.svg", "com/fr/web/images/print.png", + "com/fr/web/images/print_normal.svg", "com/fr/design/images/m_report/watermark.png", + "com/fr/design/images/m_report/watermark_normal.svg", "com/fr/design/images/m_file/pageSetup.png", - "com/fr/design/images/m_file/repeatAndFrozen.png", + "com/fr/design/images/m_file/pageSetup_normal.svg", + "com/fr/design/images/m_file/repeatAndFrozen_normal.svg", "com/fr/design/images/m_report/header.png", + "com/fr/design/images/m_report/header_normal.svg", "com/fr/design/images/m_report/footer.png", + "com/fr/design/images/m_report/footer_normal.svg", "com/fr/design/images/m_report/background.png", + "com/fr/design/images/m_report/background_normal.svg", "com/fr/design/images/m_report/reportWriteAttr.png", + "com/fr/design/images/m_report/reportWriteAttr_normal.svg", "com/fr/design/images/m_report/linearAttr.png", + "com/fr/design/images/m_report/linearAttr_normal.svg", "com/fr/design/images/m_report/reportEngineAttr.png", + "com/fr/design/images/m_report/reportEngineAttr_normal.svg", "com/fr/design/images/m_report/allow_authority_edit.png", + "com/fr/design/images/m_report/allow_authority_edit_normal.svg", "com/fr/design/images/m_insert/bindColumn.png", + "com/fr/design/images/m_insert/bindColumn_normal.svg", + "com/fr/design/images/m_insert/bindColumn_disabled.svg", "com/fr/design/images/m_insert/text.png", + "com/fr/design/images/m_insert/text_normal.svg", + "com/fr/design/images/m_insert/text_disabled.svg", "com/fr/design/images/m_insert/richtext.png", + "com/fr/design/images/m_insert/richtext_normal.svg", + "com/fr/design/images/m_insert/richtext_disabled.svg", "com/fr/design/images/m_insert/chart.png", + "com/fr/design/images/m_insert/chart_normal.svg", + "com/fr/design/images/m_insert/chart_disabled.svg", "com/fr/design/images/m_insert/image.png", + "com/fr/design/images/m_insert/image_normal.svg", + "com/fr/design/images/m_insert/image_disabled.svg", "com/fr/design/images/m_insert/bias.png", + "/com/fr/design/images/m_insert/bias_normal.svg", + "/com/fr/design/images/m_insert/bias_disabled.svg", "com/fr/design/images/arrow/arrow_up.png", "com/fr/design/images/m_insert/subReport.png", + "com/fr/design/images/m_insert/subReport_normal.svg", + "com/fr/design/images/m_insert/subReport_disabled.svg", "com/fr/design/images/arrow/arrow_down.png", "com/fr/design/images/toolbarbtn/toolbarbtnsetting.png", "com/fr/design/images/control/addPopup.png", "com/fr/design/images/toolbarbtn/toolbarbtnclear.png", "com/fr/design/images/m_insert/insertRow.png", + "com/fr/design/images/m_insert/insertRow_normal.svg", "com/fr/design/images/m_insert/insertColumn.png", + "com/fr/design/images/m_insert/insertColumn_normal.svg", "com/fr/design/images/m_format/modified.png", + "com/fr/design/images/m_format/modified_normal.svg", "com/fr/design/images/m_format/highlight.png", + "com/fr/design/images/m_format/highlight_normal.svg", "com/fr/web/images/form/resources/preview_16.png", + "com/fr/web/images/form/resources/preview_16_normal.svg", "com/fr/web/images/save.png", "com/fr/design/images/m_insert/hyperLink.png", + "com/fr/design/images/m_insert/hyperLink_normal.svg", "com/fr/web/images/flashPrint.png", "com/fr/design/images/m_edit/merge.png", + "com/fr/design/images/m_edit/merge_normal.svg", + "com/fr/design/images/m_edit/merge_disabled.svg", "com/fr/web/images/appletPrint.png", "com/fr/design/images/m_edit/unmerge.png", + "com/fr/design/images/m_edit/unmerge_normal.svg", + "com/fr/design/images/m_edit/unmerge_disabled.svg", "com/fr/web/images/pdf.png", "com/fr/design/images/m_format/cellAttr.png", + "com/fr/design/images/m_format/cellAttr_normal.svg", "com/fr/web/images/pdfPrint.png", "com/fr/web/images/serverPrint.png", "com/fr/web/images/email.png", "com/fr/web/images/preview.png", "com/fr/design/images/server/platform_16_16.png", + "com/fr/design/images/server/platform_16_16_normal.svg", "com/fr/design/images/data/user_widget.png", "com/fr/design/images/server/plugin.png", + "com/fr/design/images/server/plugin_normal.svg", "com/fr/web/images/excel.png", "com/fr/design/images/m_web/function.png", + "com/fr/design/images/m_web/function_normal.svg", "com/fr/web/images/word.png", "com/fr/web/images/pageSetup.png", "com/fr/web/images/export.png", "com/fr/design/images/m_web/edit.png", + "com/fr/design/images/m_web/edit_normal.svg", "com/fr/web/images/pageNumber.png", "com/fr/web/images/first.png", "com/fr/design/images/m_web/style.png", + "com/fr/design/images/m_web/style_normal.svg", "com/fr/web/images/last.png", "com/fr/web/images/previous.png", "com/fr/web/images/next.png", @@ -375,22 +488,29 @@ public class ImagePreLoader { "com/fr/web/images/verify.png", "com/fr/web/images/save2.png", "com/fr/design/images/m_file/export.png", + "com/fr/design/images/m_file/export_normal.svg", "com/fr/web/images/showValue.png", "com/fr/web/images/pianyi.png", "com/fr/web/images/writeOffline.png", "com/fr/web/images/edit/stash.png", "com/fr/web/images/edit/clearstash.png", "com/fr/design/images/m_insert/cell.png", + "com/fr/design/images/m_insert/cell_normal.svg", "com/fr/design/images/m_insert/float.png", "com/fr/design/images/gui/color/background.png", + "com/fr/design/images/gui/color/background_normal.svg", "com/fr/design/images/m_format/cell.png", "com/fr/design/images/data/source/dataDictionary.png", + "com/fr/design/images/data/source/dataDictionary_normal.svg", "com/fr/design/images/m_format/cellstyle/bold_white.png", "com/fr/design/images/m_format/cellstyle/italic_white.png", "com/fr/design/images/m_format/cellstyle/underline_white.png", "com/fr/design/images/m_format/noboder.png", + "com/fr/design/images/m_format/noborder_normal.svg", "com/fr/design/images/gui/popup.gif", + "com/fr/design/images/gui/popup_normal.svg", "com/fr/design/images/m_insert/floatPop.png", + "com/fr/design/images/m_insert/floatPop_normal.svg", "com/fr/web/images/platform/demo.png", "com/fr/base/images/dialog/pagesetup/down.png", "com/fr/base/images/dialog/pagesetup/over.png", @@ -406,6 +526,17 @@ public class ImagePreLoader { "com/fr/design/images/condition/unBracket.png", "com/fr/design/images/buttonicon/user_search_normal.png", "com/fr/design/remote/images/icon_Member_normal@1x.png", - "/com/fr/design/images/buttonicon/add.png" + "/com/fr/design/images/buttonicon/add.png", + "com/fr/design/images/FileDealerPaneIcon/new_folder_normal.svg", + "com/fr/design/images/FileDealerPaneIcon/new_folder_disabled.svg", + "com/fr/design/images/FileDealerPaneIcon/refresh_normal.svg", + "com/fr/design/images/FileDealerPaneIcon/remove_disabled.svg", + "com/fr/design/images/FileDealerPaneIcon/remove_normal.svg", + "com/fr/design/images/FileDealerPaneIcon/rename_normal.svg", + "com/fr/design/images/FileDealerPaneIcon/rename_disabled.svg", + "com/fr/design/images/FileDealerPaneIcon/vcs_list_disabled.svg", + "com/fr/design/images/FileDealerPaneIcon/vcs_list_normal.svg", + "com/fr/design/images/FileDealerPaneIcon/view_folder_normal.svg", + "com/fr/design/images/FileDealerPaneIcon/view_folder_disabled.svg" }; } diff --git a/designer-realize/src/main/resources/com/fr/design/mainframe/alphafine/images/smallsearch_normal.svg b/designer-realize/src/main/resources/com/fr/design/mainframe/alphafine/images/smallsearch_normal.svg new file mode 100644 index 000000000..2bd8d0a15 --- /dev/null +++ b/designer-realize/src/main/resources/com/fr/design/mainframe/alphafine/images/smallsearch_normal.svg @@ -0,0 +1,7 @@ + + + icon_搜索_normal + + + + \ No newline at end of file diff --git a/designer-realize/src/test/java/com.fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManagerTest.java b/designer-realize/src/test/java/com.fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManagerTest.java new file mode 100644 index 000000000..f4c9c1b7a --- /dev/null +++ b/designer-realize/src/test/java/com.fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManagerTest.java @@ -0,0 +1,25 @@ +package com.fr.design.mainframe.alphafine.search.manager.impl; + + +import com.fr.invoke.Reflect; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author Lucian.Chen + * @version 10.0 + * Created by Lucian.Chen on 2020/12/17 + */ +public class PluginSearchManagerTest { + + @Test + public void testIsCompatibleCurrentEnv() { + + Assert.assertFalse(Reflect.on(PluginSearchManager.class).call("isCompatibleCurrentEnv", "~9.0").get()); + Assert.assertTrue(Reflect.on(PluginSearchManager.class).call("isCompatibleCurrentEnv", "9.0").get()); + Assert.assertTrue(Reflect.on(PluginSearchManager.class).call("isCompatibleCurrentEnv", "9~").get()); + Assert.assertTrue(Reflect.on(PluginSearchManager.class).call("isCompatibleCurrentEnv", "10").get()); + Assert.assertFalse(Reflect.on(PluginSearchManager.class).call("isCompatibleCurrentEnv", "11").get()); + } + +}