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 index 172b10dac..832fd33e9 100644 --- a/designer-base/src/main/java/com/fr/base/svg/SVGIcon.java +++ b/designer-base/src/main/java/com/fr/base/svg/SVGIcon.java @@ -1,9 +1,12 @@ package com.fr.base.svg; +import com.fr.design.utils.SvgDrawUtils; import com.fr.general.IOUtils; -import javax.swing.*; -import java.awt.*; +import javax.swing.Icon; +import java.awt.Component; +import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -34,10 +37,7 @@ public class SVGIcon implements Icon { 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); + SvgDrawUtils.doDrawSVG(graphics, () -> SvgDrawUtils.drawImage(graphics, image, 0, 0, null)); graphics.dispose(); } else { g.drawImage(image, x, y, null); 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 d38def283..17d7d5883 100644 --- a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java +++ b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java @@ -65,6 +65,9 @@ import java.util.HashSet; import static javax.swing.JOptionPane.QUESTION_MESSAGE; public class EnvChangeEntrance { + private static final String BRANCH_TAG = "#"; + private static final String BRANCH_BEGIN = "-"; + private static final int BRANCH_SUB_LENGTH = 13; public static EnvChangeEntrance getInstance() { return HOLDER.singleton; @@ -116,19 +119,14 @@ public class EnvChangeEntrance { if (!checkValid) { return false; } - - WorkContext.switchTo(workspace, new WorkContextCallback() { - @Override - public void done() { - DesignerEnvManager.getEnvManager().setCurEnvName(envName); - DesignUtils.refreshDesignerFrame(); - DesignTableDataManager.fireDSChanged(new HashMap()); - if (WorkContext.getCurrent().isLocal()) { - //初始化一下serverTray - ServerTray.init(); - } - } - }); + //如果是相同环境 + if (isSameEnv(workspace)) { + //目前切换到相同环境需要更新一下名字,后续如果有别的操作直接往里面加就行了 + switch2SameEnv(envName); + } else { + //切换到新环境,做下封装 + switch2OtherEnv(workspace, envName); + } // REPORT-25688如果是war包部署的服务器,给与提示 if (WorkContext.getCurrent().isWarDeploy()) { FineJOptionPane.showMessageDialog(null, Toolkit.i18nText("Fine-Design_Basic_War_Deploy_Tip"), @@ -156,6 +154,47 @@ public class EnvChangeEntrance { return true; } + /** + * 切换到其他环境 + * + * @param workspace 要切换的环境 + * @param envName 要切换的环境名称 + */ + private void switch2OtherEnv(Workspace workspace, String envName) { + WorkContext.switchTo(workspace, new WorkContextCallback() { + @Override + public void done() { + DesignerEnvManager.getEnvManager().setCurEnvName(envName); + DesignUtils.refreshDesignerFrame(); + DesignTableDataManager.fireDSChanged(new HashMap()); + if (WorkContext.getCurrent().isLocal()) { + //初始化一下serverTray + ServerTray.init(); + } + } + }); + } + + /** + * 切换到相同环境要做的事情 + * + * @param envName 当前的环境名 + */ + private void switch2SameEnv(String envName) { + //当前环境名称可能重命名更改过,需要更新一下,防止启动失败 + DesignerEnvManager.getEnvManager().setCurEnvName(envName); + } + + /** + * 是否切换到相同环境 + * + * @param workspace 要切换的环境 + * @return 是则返回true + */ + private boolean isSameEnv(Workspace workspace) { + return AssistUtils.equals(WorkContext.getCurrent(), workspace); + } + /** * 这个功能留着,可能会加回来,先做注释处理 * 切换远程环境之前,进行版本检测,当版本不一致的时候,提示。 @@ -201,13 +240,14 @@ public class EnvChangeEntrance { return true; } - /** + /** * 对选择的环境做服务检测 + * * @param selectedEnv 选择的工作环境 */ public void showServiceDialog(DesignerWorkspaceInfo selectedEnv) throws Exception { //是否需要做服务校验 - if(needCheckBranch(selectedEnv)) { + if (needCheckBranch(selectedEnv)) { String localBranch; String remoteBranch; WorkspaceConnectionInfo connectionInfo = selectedEnv.getConnection(); @@ -228,18 +268,18 @@ public class EnvChangeEntrance { StringBuilder textBuilder = new StringBuilder(); for (Class clazz : noExistServiceSet) { WorkspaceAPI workspaceAPI = (WorkspaceAPI) clazz.getAnnotation(WorkspaceAPI.class); - if(workspaceAPI == null){ + if (workspaceAPI == null) { FineLoggerFactory.getLogger().info("workspace service {} get annotation failed", clazz); continue; } - if(workspaceAPI.ignore()){ + if (workspaceAPI.ignore()) { continue; } String descriptionOfCN = InterProviderFactory.getProvider().getLocText(workspaceAPI.description()); textBuilder.append(descriptionOfCN).append("\n"); } String areaText = textBuilder.toString(); - if(StringUtils.isEmpty(areaText)){ + if (StringUtils.isEmpty(areaText)) { return; } @@ -251,24 +291,25 @@ public class EnvChangeEntrance { * 判断是否需要做版本验证,判断依据为 * 1、选择的环境为远程环境 * 2、一个月内不弹出是否勾选 + * * @param selectedEnv 选择的环境 * @return */ - private boolean needCheckBranch(DesignerWorkspaceInfo selectedEnv){ - if(selectedEnv.getType() == DesignerWorkspaceType.Remote){ + private boolean needCheckBranch(DesignerWorkspaceInfo selectedEnv) { + if (selectedEnv.getType() == DesignerWorkspaceType.Remote) { try { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); - if(StringUtils.isEmpty(selectedEnv.getRemindTime())){ + if (StringUtils.isEmpty(selectedEnv.getRemindTime())) { return true; } //获取记录的时间 Date remindTime = format.parse(selectedEnv.getRemindTime()); calendar.setTime(remindTime); //获取一个月后的时间 - calendar.add(Calendar.MONTH,1); + calendar.add(Calendar.MONTH, 1); //与当前时间作对比,然后判断是否提示 - if(new Date().after(calendar.getTime())){ + if (new Date().after(calendar.getTime())) { return true; } } catch (ParseException e) { @@ -280,21 +321,22 @@ public class EnvChangeEntrance { /** * 获取不存在的服务列表 + * * @param info 环境连接信息 * @return 以Set形式返回不存在的服务 */ - public Set getNoExistServiceSet(WorkspaceConnectionInfo info){ + public Set getNoExistServiceSet(WorkspaceConnectionInfo info) { Set noExistServiceSet = new HashSet(); Set remoteServiceSet = new HashSet(); Set localServiceSet = FineObjectPool.getInstance().getServerPool().keySet(); try { JSONArray serviceArray = new FunctionalHttpRequest(info).getServiceList(); - for(int i = 0; i < serviceArray.size(); i++){ - try{ + for (int i = 0; i < serviceArray.size(); i++) { + try { Class clazz = Class.forName((String) serviceArray.get(i)); remoteServiceSet.add(clazz); - } catch (Exception e){ + } catch (Exception e) { continue; } } @@ -304,12 +346,12 @@ public class EnvChangeEntrance { } catch (WorkspaceConnectionException e) { FineLoggerFactory.getLogger().info(e.getMessage()); //根据本地的服务列表做逐一检测 - for(Class clazz : localServiceSet) { + for (Class clazz : localServiceSet) { Method testMethod = Reflect.on(Method.class).create(clazz, "connectTest", new Class[0], String.class, new Class[0], 1025, 8, null, null, null, null).get(); WorkspaceProxyPool proxyPool = (WorkspaceProxyPool) (((RemoteWorkspace) WorkContext.getCurrent()).getClient()).getPool(); Result result = proxyPool.testInvoker(testMethod); Exception invokeException = (Exception) result.getException(); - if(invokeException != null){ + if (invokeException != null) { Exception cause = (Exception) invokeException.getCause(); //获取被包装最底层的异常 while (cause != null) { @@ -317,26 +359,27 @@ public class EnvChangeEntrance { cause = (Exception) invokeException.getCause(); } //该异常表示服务不存在 - if(invokeException instanceof ClassNotFoundException){ + if (invokeException instanceof ClassNotFoundException) { noExistServiceSet.add(clazz); } } } return noExistServiceSet; - } catch (Exception e){ - FineLoggerFactory.getLogger().error(e.getMessage(),e); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); return noExistServiceSet; } } /** * 格式化分支版本号 + * * @param branch 初始的分支版本号 * @return 格式化后的版本号 */ - private String formatBranch(String branch){ - if(branch.contains("#")){ - return branch.substring(branch.lastIndexOf("-") + 1, branch.length() - 13); + private String formatBranch(String branch) { + if (branch.contains(BRANCH_TAG)) { + return branch.substring(branch.lastIndexOf(BRANCH_BEGIN) + 1, branch.length() - BRANCH_SUB_LENGTH); } return branch; } 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 65f136176..0505a8e14 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 @@ -21,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("/com/fr/design/images/m_edit/copy"); + this.setSmallIcon("/com/fr/design/standard/copy/copy"); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, DEFAULT_MODIFIER)); this.setEnabled(!DesignModeContext.isBanCopyAndCut()); } 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 4da98d733..c15e96227 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 @@ -25,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("/com/fr/design/images/m_edit/cut"); + this.setSmallIcon("/com/fr/design/standard/cut/cut"); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER)); this.setEnabled(!DesignModeContext.isBanCopyAndCut()); } 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 22093acb7..c14fcabf5 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 @@ -24,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("/com/fr/design/images/m_edit/paste"); + this.setSmallIcon("/com/fr/design/standard/paste/paste"); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, DEFAULT_MODIFIER)); } diff --git a/designer-base/src/main/java/com/fr/design/actions/file/DelFileAction.java b/designer-base/src/main/java/com/fr/design/actions/file/DelFileAction.java index 896c51878..f7851d7af 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/DelFileAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/DelFileAction.java @@ -22,7 +22,7 @@ public class DelFileAction extends UpdateAction { public DelFileAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Remove")); - this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/remove"); + this.setSmallIcon("/com/fr/design/standard/remove/remove"); } @Override diff --git a/designer-base/src/main/java/com/fr/design/actions/file/LocateAction.java b/designer-base/src/main/java/com/fr/design/actions/file/LocateAction.java index 1b1bb4d32..0c039b4af 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/LocateAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/LocateAction.java @@ -28,7 +28,7 @@ public class LocateAction extends UpdateAction { public LocateAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Locate")); - this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/locate.png"); + this.setSmallIcon("/com/fr/design/standard/locate/locate"); } @Override diff --git a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java index e09d6f7a0..46485409b 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java @@ -356,6 +356,8 @@ public class PreferencePane extends BasicPane { useIntervalCheckBox = new UICheckBox(); //gc面板 + JPanel gcControlPane = createGcControlPane(); + JPanel enableVcsPanel = new JPanel(FRGUIPaneFactory.createLeftZeroLayout()); enableVcsPanel.add(vcsEnableCheckBox); enableVcsPanel.add(remindVcsLabel); @@ -388,31 +390,7 @@ public class PreferencePane extends BasicPane { vcsPane.add(enableVcsPanel); vcsPane.add(intervalPanel); vcsPane.add(saveCommitCheckBox); - - initGcControlPane(vcsPane); - } - - private void initGcControlPane(JPanel vcsPane) { - JPanel gcControlPane = createGcControlPane(); - new SwingWorker() { - @Override - protected Boolean doInBackground() throws Exception { - return WorkContext.getCurrent().get(VcsOperator.class).isLegacyMode(); - } - - @Override - protected void done() { - try { - if (Boolean.TRUE.equals(get())) { - // 老版本时才显示gc选项 - vcsPane.add(gcControlPane); - vcsPane.updateUI(); - } - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e, "[Vcs] retrieve legacy mode error: {}", e.getMessage()); - } - } - }.execute(); + vcsPane.add(gcControlPane); } /** diff --git a/designer-base/src/main/java/com/fr/design/actions/file/RenameAction.java b/designer-base/src/main/java/com/fr/design/actions/file/RenameAction.java index c1efc4f5e..842292ce2 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/RenameAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/RenameAction.java @@ -62,7 +62,7 @@ public class RenameAction extends UpdateAction { public RenameAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Rename")); - this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/rename"); + this.setSmallIcon("/com/fr/design/standard/rename/rename"); } @Override 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 850a6b5aa..eba4a5634 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 @@ -4,14 +4,13 @@ package com.fr.design.constants; import com.fr.base.svg.IconUtils; -import com.fr.base.svg.SVGIcon; +import com.fr.base.svg.SVGLoader; import com.fr.general.IOUtils; import com.fr.stable.Constants; import com.fr.stable.StringUtils; import javax.swing.BorderFactory; import javax.swing.Icon; -import javax.swing.ImageIcon; import javax.swing.border.Border; import java.awt.BasicStroke; import java.awt.Color; @@ -154,53 +153,55 @@ public interface UIConstants { public static final BufferedImage DRAG_BAR = IOUtils.readImage("com/fr/design/images/control/bar.png"); public static final BufferedImage DRAG_BAR_LIGHT = IOUtils.readImage("com/fr/design/images/control/bar-light.png"); - public static final BufferedImage ARROW_NORTH = IOUtils.readImage("com/fr/design/images/control/up_arrow.png"); - public static final BufferedImage ARROW_SOUTH = IOUtils.readImage("com/fr/design/images/control/down_arrow.png"); - public static final BufferedImage ARROW_EAST = IOUtils.readImage("com/fr/design/images/control/east_arrow.png"); - public static final BufferedImage ARROW_WEST = IOUtils.readImage("com/fr/design/images/control/west_arrow.png"); + public static final Image ARROW_NORTH = SVGLoader.load("/com/fr/design/standard/arrowlinear/up_arrow.svg"); + public static final Image ARROW_SOUTH = SVGLoader.load("/com/fr/design/standard/arrowlinear/down_arrow.svg"); + public static final Image ARROW_EAST = SVGLoader.load("/com/fr/design/standard/arrowlinear/east_arrow.svg"); + public static final Image ARROW_WEST = SVGLoader.load("/com/fr/design/standard/arrowlinear/west_arrow.svg"); public static final BufferedImage DRAG_BAR_RIGHT = IOUtils.readImage("com/fr/design/images/control/barm.png"); public static final BufferedImage DRAG_BAR_LEFT = IOUtils.readImage("com/fr/design/images/control/barl.png"); - public static final BufferedImage DRAG_UP_NORMAL = IOUtils.readImage("com/fr/design/images/control/upnor.png"); - public static final BufferedImage DRAG_UP_PRESS = IOUtils.readImage("com/fr/design/images/control/uppre.png"); - public static final BufferedImage DRAG_DOWN_NORMAL = IOUtils.readImage("com/fr/design/images/control/downnor.png"); - public static final BufferedImage DRAG_DOWN_PRESS = IOUtils.readImage("com/fr/design/images/control/downpre.png"); - public static final BufferedImage DRAG_RIGHT_NORMAL = IOUtils.readImage("com/fr/design/images/control/rightnor.png"); - public static final BufferedImage DRAG_RIGHT_PRESS = IOUtils.readImage("com/fr/design/images/control/rightpre.png"); - public static final BufferedImage DRAG_LEFT_NORMAL = IOUtils.readImage("com/fr/design/images/control/leftnor.png"); - public static final BufferedImage DRAG_LEFT_PRESS = IOUtils.readImage("com/fr/design/images/control/leftpre.png"); + public static final Image DRAG_UP_NORMAL = SVGLoader.load("/com/fr/design/standard/triangle.arrow/up_normal.svg"); + public static final Image DRAG_UP_PRESS = SVGLoader.load("/com/fr/design/standard/triangle.arrow/up_hover.svg"); + public static final Image DRAG_DOWN_NORMAL = SVGLoader.load("/com/fr/design/standard/triangle.arrow/down_normal.svg"); + public static final Image DRAG_DOWN_PRESS = SVGLoader.load("/com/fr/design/standard/triangle.arrow/down_hover.svg"); + public static final Image DRAG_RIGHT_NORMAL = SVGLoader.load("/com/fr/design/standard/drag/right_normal.svg"); + public static final Image DRAG_RIGHT_PRESS = SVGLoader.load("/com/fr/design/standard/drag/right_pressed.svg"); + public static final Image DRAG_LEFT_NORMAL = SVGLoader.load("/com/fr/design/standard/drag/left_normal.svg"); + public static final Image DRAG_LEFT_PRESS = SVGLoader.load("/com/fr/design/standard/drag/left_pressed.svg"); public static final BufferedImage DRAG_DOT = IOUtils.readImage("com/fr/design/images/control/dot.png"); - public static final BufferedImage DRAG_LINE = IOUtils.readImage("com/fr/design/images/control/dot-line.png"); + public static final Image DRAG_LINE = SVGLoader.load("/com/fr/design/standard/dot_line_normal.svg"); public static final BufferedImage ACCESSIBLE_EDITOR_DOT = IOUtils.readImage("com/fr/design/images/control/dot.png"); public static final BufferedImage DRAG_DOT_VERTICAL = IOUtils.readImage("com/fr/design/images/control/dotv.png"); - public static final BufferedImage POP_BUTTON_DOWN = IOUtils.readImage("com/fr/design/images/buttonicon/popdownarrow.png"); - public static final BufferedImage POP_BUTTON_UP = IOUtils.readImage("com/fr/design/images/buttonicon/popuparrow.png"); + public static final Image POP_BUTTON_DOWN = SVGLoader.load("/com/fr/design/standard/poparrow/pop_down_arrow.svg"); + public static final Image POP_BUTTON_UP = SVGLoader.load("/com/fr/design/standard/poparrow/pop_up_arrow.svg"); public static final BufferedImage DRAG_DOWN_SELECTED_SMALL = IOUtils.readImage("com/fr/design/images/buttonicon/downSelected.png"); public static final BufferedImage DRAG_LEFT_NORMAL_SMALL = IOUtils.readImage("com/fr/design/images/buttonicon/leftNormal.png"); public static final BufferedImage WATERMARK_BACKGROUND = IOUtils.readImage("/com/fr/design/images/dialog/watermark/" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_WaterMark_Background_Icon_File_Name")); public static final int MODEL_NORMAL = 0; public static final int MODEL_PRESS = 1; - public static final Icon ARROW_DOWN_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/arrowdown.png"); + public static final Icon ARROW_DOWN_ICON = IconUtils.readIcon("/com/fr/design/standard/arrowlinear/down_arrow.svg"); public static final Icon ARROW_UP_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/arrowup.png"); public static final Icon YES_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/yes.png"); public static final Icon CHOOSEN_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/select_item.png"); public static final Icon 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"); - public static final Icon HIDE_PRESSED_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/hidep.png"); - public static final Icon VIEW_NORMAL_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/viewn.png"); - public static final Icon VIEW_PRESSED_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/viewp.png"); - public static final Icon RUN_BIG_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/run24.png"); - public static final Icon RUN_SMALL_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/runs.png"); - public static final Icon PAGE_BIG_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/pageb24.png"); - public static final Icon WRITE_BIG_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/writeb24.png"); - public static final Icon ANA_BIG_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/anab24.png"); - public static final Icon PAGE_SMALL_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/pages.png"); - public static final Icon WRITE_SMALL_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/writes.png"); - public static final Icon ANA_SMALL_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/anas.png"); + public static final Icon EDIT_NORMAL_ICON = IconUtils.readIcon("/com/fr/design/standard/uimode/edit"); + public static final Icon EDIT_PRESSED_ICON = IconUtils.readIcon("/com/fr/design/standard/uimode/edit_pressed.svg"); + public static final Icon HIDE_NORMAL_ICON = IconUtils.readIcon("/com/fr/design/standard/uimode/hide"); + public static final Icon HIDE_PRESSED_ICON = IconUtils.readIcon("/com/fr/design/standard/uimode/hide_pressed.svg"); + public static final Icon VIEW_NORMAL_ICON = IconUtils.readIcon("/com/fr/design/standard/uimode/view"); + //public static final Icon VIEW_PRESSED_ICON = IconUtils.readIcon("/com/fr/design/standard/uimode/view"); + + public static final Icon RUN_BIG_ICON = IconUtils.readIcon("/com/fr/design/standard/preview/run24.svg"); + public static final Icon RUN_SMALL_ICON = IconUtils.readIcon("/com/fr/design/standard/preview/runs.svg"); + public static final Icon PAGE_BIG_ICON = IconUtils.readIcon("/com/fr/design/standard/preview/pageb24.svg"); + public static final Icon WRITE_BIG_ICON = IconUtils.readIcon("/com/fr/design/standard/preview/writeb24.svg"); + public static final Icon ANA_BIG_ICON = IconUtils.readIcon("/com/fr/design/standard/preview/anab24.svg"); + public static final Icon PAGE_SMALL_ICON = IconUtils.readIcon("/com/fr/design/standard/preview/pages.svg"); + public static final Icon WRITE_SMALL_ICON = IconUtils.readIcon("/com/fr/design/standard/preview/writes.svg"); + public static final Icon ANA_SMALL_ICON = IconUtils.readIcon("/com/fr/design/standard/preview/anas.svg"); + public static final Icon REFRESH_ICON = IOUtils.readIcon("com/fr/design/images/buttonicon/refresh.png"); public static final Icon FONT_ICON = IOUtils.readIcon("/com/fr/design/images/gui/color/foreground.png"); public static final Icon AUTO_FONT_ICON = IOUtils.readIcon("/com/fr/design/images/gui/color/autoForeground.png"); @@ -220,7 +221,7 @@ public interface UIConstants { public static final int BUTTON_GROUP_ARC = 0; public static final int LARGEARC = 6; public static final Stroke BS = new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 2f, new float[]{3, 1}, 0); - public static final Icon PREVIEW_DOWN = IOUtils.readIcon("com/fr/design/images/buttonicon/prevew_down_icon.png"); + public static final Icon PREVIEW_DOWN = IconUtils.readIcon("/com/fr/design/standard/preview_down_icon"); public static final Icon CLOSE_OF_AUTHORITY = IOUtils.readIcon("/com/fr/design/images/m_report/close.png"); public static final Icon CLOSE_OVER_AUTHORITY = IOUtils.readIcon("/com/fr/design/images/m_report/close_over.png"); public static final Icon CLOSE_PRESS_AUTHORITY = IOUtils.readIcon("/com/fr/design/images/m_report/close_press.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 b3c090d54..b3a076a92 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 @@ -2,6 +2,7 @@ package com.fr.design.data; import com.fr.base.BaseUtils; import com.fr.base.TableData; +import com.fr.base.svg.IconUtils; import com.fr.data.MultiResultTableData; import com.fr.data.TableDataSource; import com.fr.design.DesignModelAdapter; @@ -114,7 +115,7 @@ public abstract class BasicTableDataTreePane extends DockingView implements Resp */ @Override public Icon getViewIcon() { - return BaseUtils.readIcon(IconPathConstants.DS_ICON_PATH); + return IconUtils.readIcon(IconPathConstants.DS_ICON_PATH); } /** @@ -424,7 +425,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("/com/fr/design/images/m_file/preview"); + this.setSmallIcon("/com/fr/design/standard/previewdateset/preview"); this.dataTree = dataTree; } @@ -463,7 +464,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("/com/fr/design/images/m_web/connection"); + this.setSmallIcon("/com/fr/design/standard/connection", false); } @Override diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataCreatorProducer.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataCreatorProducer.java index 51bd8b49b..8db517d61 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataCreatorProducer.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataCreatorProducer.java @@ -33,33 +33,33 @@ public class TableDataCreatorProducer { public TableDataNameObjectCreator[] createReportTableDataCreator() { TableDataNameObjectCreator dataBase = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_DS_Database_Query"), "ds", - "/com/fr/design/images/data/database.png", DBTableData.class, DBTableDataPane.class); + "/com/fr/design/standard/database_normal.svg", DBTableData.class, DBTableDataPane.class); TableDataNameObjectCreator ds_Class = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Type_Class"), "Class", - "/com/fr/design/images/data/source/classTableData.png", ClassTableData.class, ClassTableDataPane.class); + "/com/fr/design/standard/class_table_data_normal.svg", ClassTableData.class, ClassTableDataPane.class); TableDataNameObjectCreator table = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Type_Embedded"), "Embedded", - "/com/fr/design/images/data/dataTable.png", EmbeddedTableData.class, EmbeddedTableDataPane.class); + "/com/fr/design/standard/data_table_normal.svg", EmbeddedTableData.class, EmbeddedTableDataPane.class); TableDataNameObjectCreator multiTable = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Type_Relation"), "Multi", - "/com/fr/design/images/data/multi.png", ConditionTableData.class, MultiTDTableDataPane.class) { + "/com/fr/design/standard/multi_normal.svg", ConditionTableData.class, MultiTDTableDataPane.class) { public boolean isNeedParameterWhenPopulateJControlPane() { return true; } }; TableDataNameObjectCreator fileTable = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Type_File"), "File", - "/com/fr/design/images/data/file.png", FileTableData.class, FileTableDataSmallHeightPane.class); + "/com/fr/design/standard/file_normal.svg", FileTableData.class, FileTableDataSmallHeightPane.class); TableDataNameObjectCreator treeTable = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Type_Tree"), "Tree", - "/com/fr/design/images/data/tree.png", RecursionTableData.class, TreeTableDataPane.class) { + "/com/fr/design/standard/tree_normal.svg", RecursionTableData.class, TreeTableDataPane.class) { public boolean isNeedParameterWhenPopulateJControlPane() { return true; } }; TableDataNameObjectCreator storeProcedure = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Datasource_Stored_Procedure"), "Proc", - "/com/fr/design/images/data/store_procedure.png", + "/com/fr/design/standard/store_procedure_normal.svg", StoreProcedure.class, ProcedureDataPane.class) { @Override public boolean shouldInsertSeparator() { @@ -72,33 +72,33 @@ public class TableDataCreatorProducer { public TableDataNameObjectCreator[] createServerTableDataCreator() { TableDataNameObjectCreator dataBase = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_DS_Database_Query"), - "/com/fr/design/images/data/dock/serverdatabase.png", DBTableData.class, + "/com/fr/design/standard/server_database_normal.svg", DBTableData.class, DBTableDataPane.class); TableDataNameObjectCreator ds_Class = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Type_Class"), - "/com/fr/design/images/data/dock/serverclasstabledata.png", ClassTableData.class, + "/com/fr/design/standard/class_table_data_normal.svg", ClassTableData.class, ClassTableDataPane.class); TableDataNameObjectCreator table = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Type_Embedded"), - "/com/fr/design/images/data/dock/serverdatatable.png", EmbeddedTableData.class, + "/com/fr/design/standard/data_table_normal.svg", EmbeddedTableData.class, EmbeddedTableDataPane.class); TableDataNameObjectCreator fileTable = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Type_File"), - "/com/fr/design/images/data/file.png", FileTableData.class, + "/com/fr/design/standard/file_normal.svg", FileTableData.class, FileTableDataSmallPane.class); TableDataNameObjectCreator treeTable = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Type_Tree"), - "/com/fr/design/images/data/tree.png", + "/com/fr/design/standard/tree_normal.svg", RecursionTableData.class, GlobalTreeTableDataPane.class) { public boolean isNeedParameterWhenPopulateJControlPane() { return true; } }; TableDataNameObjectCreator multiTable = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Type_Relation"), - "/com/fr/design/images/data/multi.png", + "/com/fr/design/standard/multi_normal.svg", ConditionTableData.class, GlobalMultiTDTableDataPane.class) { public boolean isNeedParameterWhenPopulateJControlPane() { return true; } }; TableDataNameObjectCreator storeProcedure = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Type_Stored_Procedure"), - "/com/fr/design/images/data/store_procedure.png", + "/com/fr/design/standard/store_procedure_normal.svg", StoreProcedure.class, ProcedureDataPane.class) { @Override public boolean shouldInsertSeparator() { diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataNameObjectCreator.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataNameObjectCreator.java index 7dedc9f47..0ee459915 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataNameObjectCreator.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataNameObjectCreator.java @@ -1,6 +1,8 @@ package com.fr.design.data.datapane; import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; +import com.fr.base.svg.SVGLoader; import com.fr.data.impl.DBTableData; import com.fr.design.actions.tabledata.TableDataAction; import com.fr.design.beans.BasicBeanPane; @@ -39,7 +41,7 @@ public class TableDataNameObjectCreator extends NameObjectCreator { public TableDataNameObjectCreator(TableDataAction action) { super(action.getDisplayName(), action.getIconPath(), action.getTableDataClass(), action.getUpdateTableDataPaneClass()); this.iconPath = action.getIconPath(); - menuImage = BaseUtils.readImage(iconPath); + menuImage = SVGLoader.load(iconPath); isNeedInsertSeparator = action.isNeedInsertSeparator(); prefix = action.getPrefix(); } @@ -54,7 +56,7 @@ public class TableDataNameObjectCreator extends NameObjectCreator { super(menuName, iconPath, clazz, updatePane); if (iconPath != null) { this.iconPath = iconPath; - menuImage = BaseUtils.readImage(iconPath); + menuImage = SVGLoader.load(iconPath); } } @@ -62,7 +64,7 @@ public class TableDataNameObjectCreator extends NameObjectCreator { super(menuName, iconPath, clazz, updatePane); if (iconPath != null) { this.iconPath = iconPath; - menuImage = BaseUtils.readImage(iconPath); + menuImage = SVGLoader.load(iconPath); } this.prefix = prefix; } @@ -71,7 +73,7 @@ public class TableDataNameObjectCreator extends NameObjectCreator { super(menuName, iconPath, clazz, clazz4Init, updatePane); if (iconPath != null) { this.iconPath = iconPath; - menuImage = BaseUtils.readImage(iconPath); + menuImage = SVGLoader.load(iconPath); } } @@ -79,7 +81,7 @@ public class TableDataNameObjectCreator extends NameObjectCreator { super(menuName, iconPath, clazz, clazz4Init, updatePane); if (iconPath != null) { this.iconPath = iconPath; - menuImage = BaseUtils.readImage(iconPath); + menuImage = SVGLoader.load(iconPath); } this.prefix = prefix; } diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTree.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTree.java index e8ac19fd0..ed08cffdd 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTree.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTree.java @@ -1,10 +1,9 @@ package com.fr.design.data.datapane; -import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.data.MultiResultTableData; import com.fr.design.constants.UIConstants; import com.fr.design.data.datapane.management.search.TableDataTreeSearchManager; -import com.fr.design.data.tabledata.wrapper.AbstractTableDataWrapper; import com.fr.design.data.tabledata.wrapper.TableDataWrapper; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.gui.itree.refreshabletree.UserObjectRefreshJTree; @@ -55,7 +54,7 @@ public class TableDataTree extends UserObjectRefreshJTree { Object userObj = treeNode.getUserObject(); if (userObj instanceof String) { // p:这个是column field. - this.setIcon(BaseUtils.readIcon("com/fr/design/images/data/field.png")); + this.setIcon(IconUtils.readIcon("/com/fr/design/standard/field")); this.setText((String) userObj); } else if (userObj instanceof NameObject) { NameObject nameObject = (NameObject) userObj; @@ -66,14 +65,14 @@ public class TableDataTree extends UserObjectRefreshJTree { } else if (nameObject.getObject() instanceof Integer) { int num = (Integer) nameObject.getObject(); if (num == TableDataSourceOP.SERVER_TABLE_DATA) { - this.setIcon(BaseUtils.readIcon(IconPathConstants.STD_SHOW_ICON_PATH)); + this.setIcon(IconUtils.readIcon(IconPathConstants.STD_SHOW_ICON_PATH)); } else if (num == TableDataSourceOP.STORE_PRECEDURE_DATA) { - this.setIcon(BaseUtils.readIcon(IconPathConstants.SP_SHOW_ICON_PATH)); + this.setIcon(IconUtils.readIcon(IconPathConstants.SP_SHOW_ICON_PATH)); } else { - this.setIcon(BaseUtils.readIcon(IconPathConstants.DS_QUERY_ICON_PATH)); + this.setIcon(IconUtils.readIcon(IconPathConstants.DS_QUERY_ICON_PATH)); } } else { - this.setIcon(BaseUtils.readIcon("/com/fr/design/images/data/store_procedure.png")); + this.setIcon(IconUtils.readIcon("/com/fr/design/images/data/store_procedure.png")); } } else if (userObj == PENDING) { this.setIcon(null); 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 880cccd2d..149fa87dc 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 @@ -229,7 +229,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { private TreeSearchToolbarPane initToolBarPane() { // toolbar addMenuDef = new MenuDef(Toolkit.i18nText("Fine-Design_Basic_Action_Add")); - addMenuDef.setIconPath("/com/fr/design/images/control/addPopup"); + addMenuDef.setDisabledIcon("/com/fr/design/standard/addpopup/addPopup", true); createAddMenuDef(); // 创建插件监听 createPluginListener(); @@ -895,7 +895,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { @Override public String getIconResource() { - return "/com/fr/design/images/control/batch_esd_on"; + return "/com/fr/design/standard/batchesdon/batch_esd_on"; } @Override @@ -942,7 +942,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { @Override public String getIconResource() { - return "/com/fr/design/images/control/batch_esd_off"; + return "/com/fr/design/standard/batchesdoff/batch_esd_off"; } @Override @@ -1036,7 +1036,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { public EditAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Edit")); this.setMnemonic('E'); - this.setSmallIcon("/com/fr/design/images/control/edit"); + this.setSmallIcon("/com/fr/design/standard/editdataset/edit"); } @Override @@ -1101,7 +1101,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { public RemoveAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Remove")); this.setMnemonic('R'); - this.setSmallIcon("/com/fr/design/images/control/remove"); + this.setSmallIcon("/com/fr/design/standard/remove/remove"); } @Override @@ -1177,7 +1177,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { public CopyAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Copy")); this.setMnemonic('C'); - this.setSmallIcon("/com/fr/design/images/m_edit/copy"); + this.setSmallIcon("/com/fr/design/standard/copy/copy"); } @Override @@ -1227,7 +1227,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { public SwitchAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Search")); this.setMnemonic('S'); - this.setSmallIcon("/com/fr/design/images/data/search"); + this.setSmallIcon("/com/fr/design/standard/search", false); } @Override diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java index 613eed9a4..79e75a0b8 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java @@ -21,6 +21,7 @@ import com.fr.general.GeneralContext; import com.fr.stable.ArrayUtils; import javax.swing.BorderFactory; +import javax.swing.DefaultComboBoxModel; import javax.swing.JPanel; import javax.swing.ToolTipManager; import javax.swing.event.DocumentEvent; @@ -109,6 +110,8 @@ public class ConnectionTableProcedurePane extends BasicPane { if (parent != null) { parent.switchTo(SwitchableTableDataPane.CONTENT_PANE_NAME); } + DefaultComboBoxModel model = ((DefaultComboBoxModel) itemComboBox.getModel()); + model.removeElement(EMPTY); } @Override diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/management/search/pane/TreeSearchToolbarPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/management/search/pane/TreeSearchToolbarPane.java index 6752fc1f1..f5266c9b6 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/management/search/pane/TreeSearchToolbarPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/management/search/pane/TreeSearchToolbarPane.java @@ -103,7 +103,7 @@ public class TreeSearchToolbarPane extends JPanel implements TreeSearchStatusCha searchPane.setBorder(BorderFactory.createLineBorder(UIConstants.TOOLBAR_BORDER_COLOR)); searchPane.setBackground(Color.WHITE); // 左侧搜索图标 - UILabel searchLabel = new UILabel(IconUtils.readIcon("/com/fr/design/images/data/search")); + UILabel searchLabel = new UILabel(IconUtils.readIcon("/com/fr/design/standard/search")); searchLabel.setBorder(BorderFactory.createEmptyBorder(0, 12, 0, 0)); searchLabel.addMouseListener(new MouseAdapter() { @Override @@ -149,7 +149,7 @@ public class TreeSearchToolbarPane extends JPanel implements TreeSearchStatusCha }); this.searchTextField.addKeyListener(enterPressed); // 右侧返回图标 - UILabel returnLabel = new UILabel(IconUtils.readIcon("/com/fr/design/images/data/clear")); + UILabel returnLabel = new UILabel(IconUtils.readIcon("/com/fr/design/standard/clear")); returnLabel.setToolTipText(Toolkit.i18nText("Fine-Design_Tree_Search_Return")); returnLabel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 11)); returnLabel.addMouseListener(new MouseAdapter() { diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/rule/DesensitizationRuleChoosePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/rule/DesensitizationRuleChoosePane.java index 11e30a2e9..d37ed152d 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/rule/DesensitizationRuleChoosePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/rule/DesensitizationRuleChoosePane.java @@ -12,6 +12,7 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itableeditorpane.UITableEditAction; import com.fr.design.gui.itableeditorpane.UITableEditorPane; import com.fr.design.gui.itableeditorpane.UITableModelAdapter; +import com.fr.design.i18n.DesignSizeI18nManager; import com.fr.design.i18n.Toolkit; import com.fr.stable.StringUtils; import com.fr.stable.collections.CollectionUtils; @@ -25,6 +26,7 @@ import javax.swing.table.TableCellRenderer; import java.awt.CardLayout; import java.awt.Color; import java.awt.Component; +import java.awt.Dimension; import java.awt.event.ActionEvent; import java.util.LinkedHashSet; import java.util.List; @@ -177,6 +179,15 @@ public class DesensitizationRuleChoosePane extends JPanel { .collect(Collectors.toSet()); } + /** + * 根据语言环境获取规则编辑页面的宽高 + * + * @return + */ + private Dimension getRuleEditPaneDimensionByLocale() { + return DesignSizeI18nManager.getInstance().i18nDimension("com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane"); + } + /** * 规则状态展示页面 */ @@ -256,7 +267,7 @@ public class DesensitizationRuleChoosePane extends JPanel { public void doCancel() { super.doCancel(); } - }, BasicDialog.DEFAULT); + }, getRuleEditPaneDimensionByLocale()); basicDialog.setVisible(true); } } @@ -301,7 +312,7 @@ public class DesensitizationRuleChoosePane extends JPanel { public void doCancel() { super.doCancel(); } - }, BasicDialog.DEFAULT); + }, getRuleEditPaneDimensionByLocale()); basicDialog.setVisible(true); } } diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapperHelper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapperHelper.java index 91ca35d7f..45211c095 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapperHelper.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapperHelper.java @@ -1,6 +1,7 @@ package com.fr.design.data.tabledata.wrapper; import com.fr.base.TableData; +import com.fr.base.svg.IconUtils; import com.fr.design.data.datapane.TableDataCreatorProducer; import com.fr.design.data.datapane.TableDataNameObjectCreator; import com.fr.design.fun.ServerTableDataDefineProvider; @@ -8,7 +9,6 @@ import com.fr.design.fun.TableDataDefineProvider; import com.fr.event.Event; import com.fr.event.EventDispatcher; import com.fr.event.Listener; -import com.fr.general.IOUtils; import com.fr.plugin.context.PluginContext; import com.fr.plugin.observer.PluginEventType; import com.fr.stable.Filter; @@ -25,7 +25,7 @@ import java.util.Map; */ class MultiResultTableDataWrapperHelper { private static final Map, Icon> TABLE_DATA_ICON_PATHS = new HashMap<>(); - private static final String DEFAULT_MULTI_RESULT_TD_ICON = "/com/fr/design/images/data/multi.png"; + private static final String DEFAULT_MULTI_RESULT_TD_ICON = "/com/fr/design/standard/multi"; static { @@ -45,10 +45,10 @@ class MultiResultTableDataWrapperHelper { return TABLE_DATA_ICON_PATHS.computeIfAbsent(tableDataClass, cls -> { for (TableDataNameObjectCreator creator : TableDataCreatorProducer.getInstance().createReportTableDataCreator()) { if (creator.createObject().getClass().isAssignableFrom(tableDataClass)) { - return IOUtils.readIcon(creator.getIconPath()); + return IconUtils.readIcon(creator.getIconPath()); } } - return IOUtils.readIcon(DEFAULT_MULTI_RESULT_TD_ICON); + return IconUtils.readIcon(DEFAULT_MULTI_RESULT_TD_ICON); }); } } diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/ServerTableDataWrapper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/ServerTableDataWrapper.java index c309e1fde..cf66d9700 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/ServerTableDataWrapper.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/ServerTableDataWrapper.java @@ -2,6 +2,8 @@ package com.fr.design.data.tabledata.wrapper; import com.fr.base.BaseUtils; import com.fr.base.TableData; +import com.fr.base.svg.IconUtils; +import com.fr.base.svg.SVGLoader; import com.fr.data.impl.ClassTableData; import com.fr.data.impl.DBTableData; import com.fr.data.impl.EmbeddedTableData; @@ -24,20 +26,22 @@ public final class ServerTableDataWrapper extends AbstractTableDataWrapper { @Override public Icon getIcon() { if (tabledata instanceof DBTableData) { - if (StringUtils.isBlank(((DBTableData) tabledata).getQuery())) - return new WarningIcon(BaseUtils.readImage("/com/fr/design/images/data/dock/serverdatabase.png")); - else - return BaseUtils.readIcon("/com/fr/design/images/data/dock/serverdatabase.png"); + if (StringUtils.isBlank(((DBTableData) tabledata).getQuery())) { + return new WarningIcon(SVGLoader.load("/com/fr/design/standard/server_database_normal.svg")); + } + else { + return IconUtils.readIcon("/com/fr/design/standard/server_database"); + } } else if (tabledata instanceof ClassTableData) { - return BaseUtils.readIcon("/com/fr/design/images/data/dock/serverclasstabledata.png"); + return IconUtils.readIcon("/com/fr/design/standard/class_table_data"); } else if (tabledata instanceof EmbeddedTableData) { - return BaseUtils.readIcon("/com/fr/design/images/data/dock/serverdatatable.png"); + return IconUtils.readIcon("/com/fr/design/standard/data_table"); }else if(tabledata instanceof RecursionTableData){ - return BaseUtils.readIcon("/com/fr/design/images/data/tree.png"); + return IconUtils.readIcon("/com/fr/design/standard/tree"); } else if (tabledata instanceof StoreProcedure) { - return BaseUtils.readIcon("/com/fr/design/images/data/store_procedure.png"); + return IconUtils.readIcon("/com/fr/design/standard/store_procedure"); } - return BaseUtils.readIcon("/com/fr/design/images/data/dock/serverdatabase.png"); + return IconUtils.readIcon("/com/fr/design/standard/server_database"); } /** diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/StoreProcedureDataWrapper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/StoreProcedureDataWrapper.java index 9eb09376e..6c9af4827 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/StoreProcedureDataWrapper.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/StoreProcedureDataWrapper.java @@ -1,7 +1,7 @@ package com.fr.design.data.tabledata.wrapper; -import com.fr.base.BaseUtils; import com.fr.base.TableData; +import com.fr.base.svg.IconUtils; import com.fr.data.impl.storeproc.ProcedureDataModel; import com.fr.data.impl.storeproc.StoreProcedure; import com.fr.data.operator.DataOperator; @@ -150,7 +150,7 @@ public final class StoreProcedureDataWrapper implements TableDataWrapper { @Override public Icon getIcon() { - return BaseUtils.readIcon("/com/fr/design/images/data/store_procedure.png"); + return IconUtils.readIcon("/com/fr/design/standard/store_procedure"); } /** diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/StoreProcedureNameWrapper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/StoreProcedureNameWrapper.java index 11aeedbab..c2c815e8a 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/StoreProcedureNameWrapper.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/StoreProcedureNameWrapper.java @@ -1,7 +1,7 @@ package com.fr.design.data.tabledata.wrapper; -import com.fr.base.BaseUtils; import com.fr.base.TableData; +import com.fr.base.svg.IconUtils; import com.fr.data.impl.storeproc.ProcedureDataModel; import com.fr.data.impl.storeproc.StoreProcedure; import com.fr.design.data.DesignTableDataManager; @@ -71,7 +71,7 @@ public final class StoreProcedureNameWrapper implements TableDataWrapper { @Override public Icon getIcon() { - return BaseUtils.readIcon("/com/fr/design/images/data/store_procedure.png"); + return IconUtils.readIcon("/com/fr/design/standard/store_procedure"); } private void createStore(boolean needLoadingBar) { diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java index 6bc9e21ed..8345bde94 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java @@ -55,15 +55,15 @@ public abstract class TableDataFactory { * 同一类型的只能加一次,就加最上层的类,因为要排序。如果将所有的 FileTableData都加进来,那么FileTableData的排序就不正确了 */ static { - defaultMap.put(DBTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/images/data/database.png", DBTableData.class, DBTableDataPane.class)); - defaultMap.put(ClassTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/images/data/source/classTableData.png", ClassTableData.class, ClassTableDataPane.class)); - defaultMap.put(EmbeddedTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/images/data/dataTable.png", EmbeddedTableData.class, EmbeddedTableDataPane.class)); - defaultMap.put(DecoratedTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/images/data/multi.png", DecoratedTableData.class, DecoratedTableDataPane.class)); - defaultMap.put(StoreProcedure.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/images/data/store_procedure.png", StoreProcedure.class, ProcedureDataPane.class)); - defaultMap.put(MultiTDTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/images/data/multi.png", MultiTDTableData.class, MultiTDTableDataPane.class)); - defaultMap.put(FileTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/images/data/file.png", FileTableData.class, FileTableDataPane.class)); - defaultMap.put(RecursionTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/images/data/tree.png", RecursionTableData.class, TreeTableDataPane.class)); - defaultMap.put(MultiFieldTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/images/data/database.png", MultiFieldTableData.class, null)); + defaultMap.put(DBTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/standard/database_normal.svg", DBTableData.class, DBTableDataPane.class)); + defaultMap.put(ClassTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/standard/class_table_data_normal.svg", ClassTableData.class, ClassTableDataPane.class)); + defaultMap.put(EmbeddedTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/standard/data_table_normal.svg", EmbeddedTableData.class, EmbeddedTableDataPane.class)); + defaultMap.put(DecoratedTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/standard/multi_normal.svg", DecoratedTableData.class, DecoratedTableDataPane.class)); + defaultMap.put(StoreProcedure.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/standard/store_procedure_normal.svg", StoreProcedure.class, ProcedureDataPane.class)); + defaultMap.put(MultiTDTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/standard/multi_normal.svg", MultiTDTableData.class, MultiTDTableDataPane.class)); + defaultMap.put(FileTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/standard/file_normal.svg", FileTableData.class, FileTableDataPane.class)); + defaultMap.put(RecursionTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/standard/tree_normal.svg", RecursionTableData.class, TreeTableDataPane.class)); + defaultMap.put(MultiFieldTableData.class.getName(), new TableDataNameObjectCreator(null, "/com/fr/design/standard/database_normal.svg", MultiFieldTableData.class, null)); map.putAll(defaultMap); } @@ -151,7 +151,7 @@ public abstract class TableDataFactory { if (tableDataNameObjectCreator != null && tableDataNameObjectCreator.getIconPath() != null) { return tableDataNameObjectCreator.getIconPath(); } - return "/com/fr/design/images/data/database.png"; + return "/com/fr/design/standard/database_normal.svg"; } /** diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TemplateTableDataWrapper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TemplateTableDataWrapper.java index 49e6f625a..93bb7bf3b 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TemplateTableDataWrapper.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TemplateTableDataWrapper.java @@ -2,8 +2,9 @@ package com.fr.design.data.tabledata.wrapper; import javax.swing.Icon; -import com.fr.base.BaseUtils; import com.fr.base.TableData; +import com.fr.base.svg.IconUtils; +import com.fr.base.svg.SVGLoader; import com.fr.data.impl.DBTableData; import com.fr.design.icon.WarningIcon; import com.fr.stable.StringUtils; @@ -20,9 +21,9 @@ public final class TemplateTableDataWrapper extends AbstractTableDataWrapper { @Override public Icon getIcon() { if (tabledata instanceof DBTableData && StringUtils.isBlank(((DBTableData) tabledata).getQuery())) { - return new WarningIcon(BaseUtils.readImage("/com/fr/design/images/data/database.png")); + return new WarningIcon(SVGLoader.load("/com/fr/design/standard/database_normal.svg")); } - return BaseUtils.readIcon(TableDataFactory.getIconPath(tabledata)); + return IconUtils.readIcon(TableDataFactory.getIconPath(tabledata)); } @Override diff --git a/designer-base/src/main/java/com/fr/design/extra/exe/callback/handle/PluginTaskResultErrorDialog.java b/designer-base/src/main/java/com/fr/design/extra/exe/callback/handle/PluginTaskResultErrorDialog.java index da4f43208..5cc0dce95 100644 --- a/designer-base/src/main/java/com/fr/design/extra/exe/callback/handle/PluginTaskResultErrorDialog.java +++ b/designer-base/src/main/java/com/fr/design/extra/exe/callback/handle/PluginTaskResultErrorDialog.java @@ -53,7 +53,7 @@ public class PluginTaskResultErrorDialog extends JDialog { private void initContentPane() { this.contentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); // error图标 - errorLabel = new UILabel(IconUtils.readIcon("/com/fr/design/standard/system/error_tips.svg")); + errorLabel = new UILabel(IconUtils.readIcon("/com/fr/design/standard/system/error_tips")); errorLabel.setPreferredSize(LABEL); errorLabel.setBorder(BorderFactory.createEmptyBorder(10, 20, 40, 20)); // 提示内容 diff --git a/designer-base/src/main/java/com/fr/design/file/MultiTemplateTabPane.java b/designer-base/src/main/java/com/fr/design/file/MultiTemplateTabPane.java index b506dd81c..8e302fd97 100644 --- a/designer-base/src/main/java/com/fr/design/file/MultiTemplateTabPane.java +++ b/designer-base/src/main/java/com/fr/design/file/MultiTemplateTabPane.java @@ -3,6 +3,7 @@ package com.fr.design.file; 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.actions.file.LocateAction; @@ -85,12 +86,12 @@ import static javax.swing.JOptionPane.WARNING_MESSAGE; **/ public class MultiTemplateTabPane extends JComponent { - private static Icon LIST_DOWN = BaseUtils.readIcon("/com/fr/design/images/buttonicon/list_normal.png"); - private static Icon MOUSE_OVER_LIST_DOWN = BaseUtils.readIcon("/com/fr/design/images/buttonicon/list_pressed.png"); - private static Icon MOUSE_PRESS_LIST_DOWN = BaseUtils.readIcon("/com/fr/design/images/buttonicon/list_pressed.png"); - private static Icon CLOSE = BaseUtils.readIcon("/com/fr/design/images/buttonicon/close_icon.png"); - private static Icon MOUSE_OVER_CLOSE = BaseUtils.readIcon("/com/fr/design/images/buttonicon/mouseoverclose icon.png"); - private static Icon MOUSE_PRESS_CLOSE = BaseUtils.readIcon("/com/fr/design/images/buttonicon/pressclose icon.png"); + private static Icon LIST_DOWN = IconUtils.readIcon("/com/fr/design/standard/list/list"); + private static Icon MOUSE_OVER_LIST_DOWN = IconUtils.readIcon("/com/fr/design/standard/list/list_pressed.svg"); + private static Icon MOUSE_PRESS_LIST_DOWN = IconUtils.readIcon("/com/fr/design/standard/list/list_pressed.svg"); + private static Icon CLOSE = IconUtils.readIcon("/com/fr/design/standard/close/close"); + private static Icon MOUSE_OVER_CLOSE = IconUtils.readIcon("/com/fr/design/standard/close/close_mouseover.svg"); + private static Icon MOUSE_PRESS_CLOSE = IconUtils.readIcon("/com/fr/design/standard/close/close_press.svg"); private static final Icon WHITE_SAVING_CLOSE_ICON = new ImageIcon(IOUtils.readImage("/com/fr/design/images/file/white_saving_close.gif")); private static final Icon GREY_SAVING_CLOSE_ICON = new ImageIcon(IOUtils.readImage("/com/fr/design/images/file/grey_saving_close.gif")); private static final String ELLIPSIS = "..."; @@ -1171,6 +1172,10 @@ public class MultiTemplateTabPane extends JComponent { return; } } + //参考CloseCurrentTemplateAction,在closeFormat与closeSpecifiedTemplate之前要先设定isCloseCurrent,这样关闭之后才会自动切换tab + if (checkCurrentClose(template)) { + setIsCloseCurrent(true); + } closeFormat(template); closeSpecifiedTemplate(template); DesignerContext.getDesignerFrame().getContentFrame().repaint(); @@ -1204,6 +1209,11 @@ public class MultiTemplateTabPane extends JComponent { } + private boolean checkCurrentClose(JTemplate template) { + JTemplate currentTemplate = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); + return JTemplate.isValid(currentTemplate) && ComparatorUtils.equals(template.getPath(), currentTemplate.getPath()); + } + private class MultiTemplateTabMouseMotionListener implements MouseMotionListener { /** * 鼠标拖拽 diff --git a/designer-base/src/main/java/com/fr/design/gui/UILookAndFeel.java b/designer-base/src/main/java/com/fr/design/gui/UILookAndFeel.java index 488cbad37..c33f3e0fc 100644 --- a/designer-base/src/main/java/com/fr/design/gui/UILookAndFeel.java +++ b/designer-base/src/main/java/com/fr/design/gui/UILookAndFeel.java @@ -1,5 +1,6 @@ package com.fr.design.gui; +import com.fr.base.svg.IconUtils; import com.fr.design.gui.borders.UIFrameBorder; import com.fr.design.gui.borders.UIInternalFrameBorder; import com.fr.design.gui.borders.UITableHeaderBorder; @@ -163,7 +164,7 @@ public class UILookAndFeel extends MetalLookAndFeel { table.put("Tree.leafIcon", loadIcon("TreeLeafIcon.png", this)); table.put("FileView.directoryIcon", loadIcon("DirectoryIcon.png", this)); table.put("FileView.computerIcon", loadIcon("ComputerIcon.png", this)); - table.put("FileView.fileIcon", loadIcon("FileIcon.png", this)); + table.put("FileView.fileIcon", IconUtils.readIcon("/com/fr/design/images/lookandfeel/FileIcon.svg")); table.put("FileView.floppyDriveIcon", loadIcon("FloppyIcon.png", this)); table.put("FileView.hardDriveIcon", loadIcon("HarddiskIcon.png", this)); table.put("FileChooser.detailsViewIcon", loadIcon("FileDetailsIcon.png", this)); diff --git a/designer-base/src/main/java/com/fr/design/gui/controlpane/AbstractNameableCreator.java b/designer-base/src/main/java/com/fr/design/gui/controlpane/AbstractNameableCreator.java index 45c940ed4..9ad08a9e6 100644 --- a/designer-base/src/main/java/com/fr/design/gui/controlpane/AbstractNameableCreator.java +++ b/designer-base/src/main/java/com/fr/design/gui/controlpane/AbstractNameableCreator.java @@ -1,6 +1,7 @@ package com.fr.design.gui.controlpane; import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.beans.BasicBeanPane; import com.fr.general.ComparatorUtils; import com.fr.general.NameObject; @@ -25,14 +26,14 @@ public abstract class AbstractNameableCreator implements NameableCreator { public AbstractNameableCreator(String menuName, String iconPath, Class clazz) { this.menuName = menuName; - this.menuIcon = BaseUtils.readIcon(iconPath); + this.menuIcon = IconUtils.readIcon(iconPath); this.clazzOfObject = clazz; this.clazzOfInitCase = clazz; } public AbstractNameableCreator(String menuName, String iconPath, Class clazz, Class clazzOfEditor) { this.menuName = menuName; - this.menuIcon = BaseUtils.readIcon(iconPath); + this.menuIcon = IconUtils.readIcon(iconPath); this.clazzOfObject = clazz; this.clazzOfEditor = clazzOfEditor; this.clazzOfInitCase = clazz; @@ -40,7 +41,7 @@ public abstract class AbstractNameableCreator implements NameableCreator { public AbstractNameableCreator(String menuName, String iconPath, Class clazz, Class clazz4Init, Class clazzOfEditor) { this.menuName = menuName; - this.menuIcon = BaseUtils.readIcon(iconPath); + this.menuIcon = IconUtils.readIcon(iconPath); this.clazzOfObject = clazz; this.clazzOfEditor = clazzOfEditor; this.clazzOfInitCase = clazz; diff --git a/designer-base/src/main/java/com/fr/design/gui/controlpane/UIListGroupControlPane.java b/designer-base/src/main/java/com/fr/design/gui/controlpane/UIListGroupControlPane.java index ed07ecc2d..47581fb62 100644 --- a/designer-base/src/main/java/com/fr/design/gui/controlpane/UIListGroupControlPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/controlpane/UIListGroupControlPane.java @@ -28,14 +28,7 @@ import javax.swing.event.ListDataEvent; import javax.swing.event.ListDataListener; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import java.awt.AlphaComposite; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.Graphics2D; +import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.lang.reflect.Constructor; @@ -146,7 +139,7 @@ public abstract class UIListGroupControlPane extends UIControlPane implements Li } this.checkButtonEnabled(); refreshEventListWrapperPane(); - this.checkGroupPaneSize(); + this.updateGroupPaneSize(contentPane); isPopulating = false; } @@ -214,7 +207,7 @@ public abstract class UIListGroupControlPane extends UIControlPane implements Li nameEdList.addModNameActionListener(new ModNameActionListener() { @Override public void nameModed(int index, String oldName, String newName) { - checkGroupPaneSize(); + updateGroupPaneSize(contentPane); saveSettings(); } }); @@ -304,24 +297,30 @@ public abstract class UIListGroupControlPane extends UIControlPane implements Li public void onAddItem(NameableCreator creator) { updateSelectedNameList(creator); getCommonHandlers().onAddItem(creator); - checkGroupPaneSize(); + updateGroupPaneSize(contentPane); } @Override public void onRemoveItem() { getCommonHandlers().onRemoveItem(); refreshEventListWrapperPane(); - checkGroupPaneSize(); + updateGroupPaneSize(contentPane); } @Override public void onCopyItem() { getCommonHandlers().onCopyItem(); - checkGroupPaneSize(); + updateGroupPaneSize(contentPane); } - private void checkGroupPaneSize() { + /** + * 根据父面板更新对应的面板宽度 + * (如果小于父面板的宽度就填充到与父面板宽度一致) + * + * @param parentPane 父面板 + */ + private void updateGroupPaneSize(JPanel parentPane) { int width = 180; Iterator> iterator = nameEdListMap.entrySet().iterator(); while (iterator.hasNext()) { @@ -331,7 +330,9 @@ public abstract class UIListGroupControlPane extends UIControlPane implements Li width = Math.max(width, calculateUIListMaxCellWidth(uiList.getModel(), uiList.getFontMetrics(uiList.getFont()))); } iterator = nameEdListMap.entrySet().iterator(); - width += 30; + //contentPane是外层的Panel,如果不进行判断的话宽度就可能会小于contentPanel,右侧会有空隙 + //所以需要判断一下,如果外层比较宽就取外层的宽度,防止空隙出现 + width = Math.max(width + 30, parentPane == null ? 0 : parentPane.getWidth()); while (iterator.hasNext()) { Map.Entry entry = iterator.next(); ListWrapperPane wrapperPane = entry.getValue(); diff --git a/designer-base/src/main/java/com/fr/design/gui/icontainer/UIEastResizableContainer.java b/designer-base/src/main/java/com/fr/design/gui/icontainer/UIEastResizableContainer.java index 125cd3aa1..cec4b840a 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icontainer/UIEastResizableContainer.java +++ b/designer-base/src/main/java/com/fr/design/gui/icontainer/UIEastResizableContainer.java @@ -5,10 +5,21 @@ import com.fr.design.base.mode.DesignModeContext; import com.fr.design.constants.UIConstants; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.mainframe.DesignerContext; +import com.fr.design.utils.SvgDrawUtils; import com.fr.design.utils.gui.GUICoreUtils; -import javax.swing.*; -import java.awt.*; +import javax.swing.JComponent; +import javax.swing.JFrame; +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Container; +import java.awt.Cursor; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.Image; +import java.awt.LayoutManager; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; @@ -313,7 +324,6 @@ public class UIEastResizableContainer extends JPanel { @Override public void paint(Graphics g) { Image button; - if (containerWidth == leftPaneWidth) { if (model == UIConstants.MODEL_NORMAL) { button = UIConstants.DRAG_LEFT_NORMAL; @@ -327,7 +337,7 @@ public class UIEastResizableContainer extends JPanel { button = UIConstants.DRAG_RIGHT_PRESS; } } - g.drawImage(button, 18, 7, 5, 10, null); + SvgDrawUtils.doDrawSVG(g, () -> SvgDrawUtils.drawImage(g, button, 10, 7, null)); } } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/gui/icontainer/UIModeControlContainer.java b/designer-base/src/main/java/com/fr/design/gui/icontainer/UIModeControlContainer.java index 1837711cd..627baf6b9 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icontainer/UIModeControlContainer.java +++ b/designer-base/src/main/java/com/fr/design/gui/icontainer/UIModeControlContainer.java @@ -282,7 +282,7 @@ public class UIModeControlContainer extends JLayeredPane { setLayout(new FlowLayout(FlowLayout.CENTER, 10, -3)); setBackground(UIConstants.NORMAL_BACKGROUND); add(new UILabel("" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Parameter_Panel") + "")); - UIButton viewButton = new UIButton(UIConstants.VIEW_NORMAL_ICON, UIConstants.VIEW_PRESSED_ICON, UIConstants.VIEW_PRESSED_ICON) { + UIButton viewButton = new UIButton(UIConstants.VIEW_NORMAL_ICON, UIConstants.VIEW_NORMAL_ICON, UIConstants.VIEW_NORMAL_ICON) { @Override public Dimension getPreferredSize() { return new Dimension(32, 32); diff --git a/designer-base/src/main/java/com/fr/design/gui/icontainer/UIResizableContainer.java b/designer-base/src/main/java/com/fr/design/gui/icontainer/UIResizableContainer.java index f3f45768f..a7682107e 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icontainer/UIResizableContainer.java +++ b/designer-base/src/main/java/com/fr/design/gui/icontainer/UIResizableContainer.java @@ -3,11 +3,22 @@ package com.fr.design.gui.icontainer; import com.fr.base.vcs.DesignerMode; import com.fr.design.constants.UIConstants; import com.fr.design.mainframe.DesignerContext; -import com.fr.stable.Constants; +import com.fr.design.utils.SvgDrawUtils; import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.stable.Constants; -import javax.swing.*; -import java.awt.*; +import javax.swing.JComponent; +import javax.swing.JFrame; +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Container; +import java.awt.Cursor; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.Image; +import java.awt.LayoutManager; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; @@ -406,13 +417,13 @@ public class UIResizableContainer extends JPanel { @Override public void paint(Graphics g) { + Image upButton = (upModel == UIConstants.MODEL_NORMAL ? UIConstants.DRAG_UP_NORMAL : UIConstants.DRAG_UP_PRESS); Image downButton = (downModel == UIConstants.MODEL_NORMAL ? UIConstants.DRAG_DOWN_NORMAL : UIConstants.DRAG_DOWN_PRESS); - g.drawImage(UIConstants.DRAG_BAR_LIGHT, 0, 0, getWidth(), getHeight(), null); - g.drawImage(UIConstants.DRAG_LINE, (getWidth() - toolPaneHeight) / 2, 3, toolPaneHeight, 5, null); - g.drawImage(upButton, ARROW_MARGIN, 3, toolPaneHeight, 5, null); - g.drawImage(downButton, getWidth() - toolPaneHeight - ARROW_MARGIN, 3, toolPaneHeight, 5, null); + SvgDrawUtils.doDrawSVG(g, () -> SvgDrawUtils.drawImage(g, UIConstants.DRAG_LINE, (getWidth() - toolPaneHeight) / 2, 3, null)); + SvgDrawUtils.doDrawSVG(g, () -> SvgDrawUtils.drawImage(g, upButton, ARROW_MARGIN, 0, null)); + SvgDrawUtils.doDrawSVG(g, () -> SvgDrawUtils.drawImage(g, downButton, (getWidth() - toolPaneHeight - ARROW_MARGIN), 0, null)); } } @@ -509,7 +520,7 @@ public class UIResizableContainer extends JPanel { button = UIConstants.DRAG_LEFT_PRESS; } } - g.drawImage(button, 3, ARROW_MARGIN_VERTICAL, 5, toolPaneHeight, null); + SvgDrawUtils.doDrawSVG(g, () -> SvgDrawUtils.drawImage(g, button, -6, ARROW_MARGIN_VERTICAL, VerticalToolPane.this)); } else { g.drawImage(UIConstants.DRAG_BAR_LIGHT, 0, 0, toolPaneHeight, getHeight(), null); if (containerWidth == toolPaneHeight) { @@ -525,7 +536,7 @@ public class UIResizableContainer extends JPanel { button = UIConstants.DRAG_RIGHT_PRESS; } } - g.drawImage(button, 2, ARROW_MARGIN_VERTICAL, 5, toolPaneHeight, null); + SvgDrawUtils.doDrawSVG(g, () -> SvgDrawUtils.drawImage(g, button, 10, ARROW_MARGIN_VERTICAL, VerticalToolPane.this)); } if (isLeftRightDragEnabled) { g.drawImage(UIConstants.DRAG_DOT_VERTICAL, 2, getHeight() / 2, 5, toolPaneHeight, null); diff --git a/designer-base/src/main/java/com/fr/design/gui/ilist/JNameEdList.java b/designer-base/src/main/java/com/fr/design/gui/ilist/JNameEdList.java index 4c530c0fc..c12a22505 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ilist/JNameEdList.java +++ b/designer-base/src/main/java/com/fr/design/gui/ilist/JNameEdList.java @@ -175,7 +175,8 @@ public class JNameEdList extends UIList implements CellEditorListener { } public void setIllegalIndex(int index) { - setNameAt(NameInspector.ILLEGAL_NAME_HOLDER, index); + //环境如果重名会被命名为请重命名,这个请重命名也会重复,后面加个索引区别一下 + setNameAt(NameInspector.ILLEGAL_NAME_HOLDER + index, index); this.repaint(); } diff --git a/designer-base/src/main/java/com/fr/design/gui/itree/UITreeUI.java b/designer-base/src/main/java/com/fr/design/gui/itree/UITreeUI.java index fde3bf646..a4d66c438 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itree/UITreeUI.java +++ b/designer-base/src/main/java/com/fr/design/gui/itree/UITreeUI.java @@ -1,6 +1,7 @@ package com.fr.design.gui.itree; import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.utils.ThemeUtils; import javax.swing.*; @@ -27,8 +28,8 @@ public class UITreeUI extends MetalTreeUI { protected void installDefaults() { super.installDefaults(); - setExpandedIcon(BaseUtils.readIcon("/com/fr/design/images/buttonicon/minus.png")); - setCollapsedIcon(BaseUtils.readIcon("/com/fr/design/images/buttonicon/plus.png")); + setExpandedIcon(IconUtils.readIcon("/com/fr/design/standard/fileicon/minus.svg")); + setCollapsedIcon(IconUtils.readIcon("/com/fr/design/standard/fileicon/plus.svg")); if (tree.getCellRenderer() instanceof DefaultTreeCellRenderer) { DefaultTreeCellRenderer r = (DefaultTreeCellRenderer) tree.getCellRenderer(); r.setBackgroundNonSelectionColor(ThemeUtils.TEXT_BG_COLOR); diff --git a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileTreeIcon.java b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileTreeIcon.java index b2956b70f..194dfa82d 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileTreeIcon.java +++ b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileTreeIcon.java @@ -1,6 +1,7 @@ package com.fr.design.gui.itree.filetree; import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.ExtraDesignClassManager; import com.fr.design.icon.LocalFileIcon; import com.fr.design.icon.LockIcon; @@ -24,9 +25,9 @@ public class FileTreeIcon { public static final Icon BLANK_IMAGE_ICON = BaseUtils.readIcon("/com/fr/design/images/gui/blank.gif"); - public static final Icon FOLDER_IMAGE_ICON = BaseUtils.readIcon("/com/fr/design/images/gui/folder.png"); + public static final Icon FOLDER_IMAGE_ICON = IconUtils.readIcon("/com/fr/design/standard/fileicon/folder.svg"); public static final Icon FOLDER_HALF_IMAGE_ICON = - BaseUtils.readIcon("/com/fr/design/images/gui/filetree_folder_half_authority_normal.png"); + IconUtils.readIcon("/com/fr/design/standard/fileicon/folder_half_authority.svg"); public static final Icon FILE_IMAGE_ICON = UIManager.getIcon("FileView.fileIcon"); @@ -45,14 +46,14 @@ public class FileTreeIcon { public static final Icon CHT_FILE_IMAGE_ICON = BaseUtils.readIcon("/com/fr/design/images/gui/cht.png"); public static final Icon MODERN_CPT_FILE_IMAGE_ICON = - BaseUtils.readIcon("/com/fr/design/images/gui/modern_style_cpt_file_icon_16x16.png"); + IconUtils.readIcon("/com/fr/design/standard/fileicon/cpt_icon.svg"); public static final Icon MODERN_FRM_FILE_IMAGE_ICON = - BaseUtils.readIcon("/com/fr/design/images/gui/modern_style_frm_file_icon_16x16.png"); + IconUtils.readIcon("/com/fr/design/standard/fileicon/frm_icon.svg"); public static final Icon MODERN_CHT_FILE_IMAGE_ICON = - BaseUtils.readIcon("/com/fr/design/images/gui/modern_style_cht_file_icon_16x16.png"); + IconUtils.readIcon("/com/fr/design/standard/fileicon/cht_icon.svg"); - public static final Icon CPTX_ICON = BaseUtils.readIcon("/com/fr/nx/app/designer/cptx_file_icon.png"); - public static final Icon CPTX_LOCKED_ICON = BaseUtils.readIcon("/com/fr/nx/app/designer/cptx_file_icon_locked.png"); + public static final Icon CPTX_ICON = IconUtils.readIcon("/com/fr/design/standard/fileicon/cptx_icon.svg"); + public static final Icon CPTX_LOCKED_ICON = IconUtils.readIcon("/com/fr/design/standard/fileicon/cptx_icon_locked.svg"); public static final LockIcon FOLDER_LOCK_ICON = new LockIcon(BaseUtils.readImage("/com/fr/design/images/gui/fold.png")); 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 e3802161b..8fa97cfd5 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 @@ -15,21 +15,21 @@ public class IconPathConstants { public static final String ADD_POPMENU_ICON_PATH = "/com/fr/design/images/control/addPopup.png"; - public static final String DS_ICON_PATH = "/com/fr/design/images/data/datasource.png"; + public static final String DS_ICON_PATH = "/com/fr/design/standard/server_database"; public static final String CLASS_TD_ICON_PATH = "/com/fr/design/images/data/source/classTableData.png"; public static final String EMB_TD_ICON_PATH = "/com/fr/design/images/data/dataTable.png"; public static final String DS_RELATION_TD_ICON_PATH = "/com/fr/design/images/data/multi.png"; public static final String FILE_TD_ICON_PATH = "/com/fr/design/images/data/file.png"; public static final String DS_TREE_TD_ICON_PATH = "/com/fr/design/images/data/tree.png"; - public static final String DS_QUERY_ICON_PATH = "/com/fr/design/images/data/database.png"; + public static final String DS_QUERY_ICON_PATH = "/com/fr/design/standard/database"; public static final String PREVIEW_ICON_PATH = "/com/fr/design/images/m_file/preview.png"; public static final String TD_EDIT_ICON_PATH = "/com/fr/design/images/control/edit.png"; public static final String TD_EL_SHARE_HELP_ICON_PATH = "/com/fr/design/images/control/help_open.png"; public static final String TD_EL_SHARE_CLOSE_ICON_PATH = "/com/fr/design/images/control/help_close.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"; + public static final String SP_SHOW_ICON_PATH = "/com/fr/design/standard/store_procedure"; + public static final String STD_SHOW_ICON_PATH = "/com/fr/design/standard/server_database"; public static final String XMLA_ICON_PATH = "/com/fr/design/images/data/cube.png"; public static final String FORBID_ICON_PATH = "/com/fr/web/images/form/forbid.png"; public static final String EDIT_ICON_PATH = "/com/fr/design/images/control/newEdit.png"; diff --git a/designer-base/src/main/java/com/fr/design/icon/WarningIcon.java b/designer-base/src/main/java/com/fr/design/icon/WarningIcon.java index 50b70ccec..a50bb3996 100644 --- a/designer-base/src/main/java/com/fr/design/icon/WarningIcon.java +++ b/designer-base/src/main/java/com/fr/design/icon/WarningIcon.java @@ -1,12 +1,15 @@ package com.fr.design.icon; -import com.fr.base.BaseUtils; +import com.fr.base.svg.SVGLoader; +import com.fr.base.svg.SystemScaleUtils; +import com.fr.design.utils.SvgDrawUtils; import com.fr.log.FineLoggerFactory; import javax.swing.GrayFilter; import javax.swing.ImageIcon; import java.awt.Component; import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.Image; import java.awt.MediaTracker; import java.awt.image.ImageObserver; @@ -18,11 +21,12 @@ import java.awt.image.ImageObserver; * @since 2012-3-28下午10:20:29 */ public class WarningIcon extends ImageIcon { - protected final static Component component = new Component() { + protected final static Component COMPONENT = new Component() { }; - protected final static MediaTracker tracker = new MediaTracker(component); - private final static Image warnighImage = BaseUtils.readImage("/com/fr/design/images/gui/warning.png"); - + protected final static MediaTracker TRACKER = new MediaTracker(COMPONENT); + private final static Image WARNING_IMAGE = SVGLoader.load("/com/fr/design/standard/warning.svg"); + private static final boolean HI_DPI_SUPPORT = SystemScaleUtils.isJreHiDPIEnabled(); + public static final float SYSTEM_SCALE = SystemScaleUtils.sysScale(); private Image mainImage = null; private ImageObserver imageObserver; private int width = -1; @@ -38,12 +42,15 @@ public class WarningIcon extends ImageIcon { @Override public synchronized void paintIcon(Component c, Graphics g, int x, int y) { + //裁剪绘制svg的位置,以免影响到图标右侧的文字 + Graphics2D graphics = (Graphics2D) g.create(x, y, WARNING_IMAGE.getWidth(null), WARNING_IMAGE.getHeight(null)); if (mainImage != null) { - g.drawImage(mainImage, x, y, c); + SvgDrawUtils.doDrawSVG(graphics, () -> SvgDrawUtils.drawImage(graphics, mainImage, x, y, null)); } - if (warnighImage != null) { - g.drawImage(warnighImage, x, y, c); + if (WARNING_IMAGE != null) { + SvgDrawUtils.doDrawSVG(graphics, () -> SvgDrawUtils.drawImage(graphics, WARNING_IMAGE, x, y, null)); } + graphics.dispose(); } /** @@ -53,17 +60,17 @@ public class WarningIcon extends ImageIcon { * the image */ protected void loadImage(Image image) { - synchronized (tracker) { - tracker.addImage(image, 0); + synchronized (TRACKER) { + TRACKER.addImage(image, 0); try { - tracker.waitForID(0, 0); + TRACKER.waitForID(0, 0); } catch (InterruptedException e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); Thread.currentThread().interrupt(); } - tracker.statusID(0, false); - tracker.removeImage(image, 0); + TRACKER.statusID(0, false); + TRACKER.removeImage(image, 0); width = image.getWidth(imageObserver); height = image.getHeight(imageObserver); @@ -91,7 +98,8 @@ public class WarningIcon extends ImageIcon { * @return the width in pixels of this icon */ public int getIconWidth() { - return width; + //如果环境支持高清化,drawImage可能会缩放绘制的图像比例,需要保证svg正常显示的同时调整绘制范围 + return HI_DPI_SUPPORT ? (int) (width / SYSTEM_SCALE) : width; } /** @@ -100,10 +108,11 @@ public class WarningIcon extends ImageIcon { * @return the height in pixels of this icon */ public int getIconHeight() { - return height; + //如果环境支持高清化,drawImage可能会缩放绘制的图像比例,需要保证svg正常显示的同时调整绘制范围 + return HI_DPI_SUPPORT ? (int) (height / SYSTEM_SCALE) : height; } { - loadImage(warnighImage); + loadImage(WARNING_IMAGE); } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/lock/LockInfoDialog.java b/designer-base/src/main/java/com/fr/design/lock/LockInfoDialog.java index 003215ca6..44c95c44c 100644 --- a/designer-base/src/main/java/com/fr/design/lock/LockInfoDialog.java +++ b/designer-base/src/main/java/com/fr/design/lock/LockInfoDialog.java @@ -99,7 +99,7 @@ public class LockInfoDialog extends JDialog { return; } final String selectedFilePath = StableUtils.pathJoin(ProjectConstants.REPORTLETS_NAME, TemplateTreePane.getInstance().getFilePath()); - TemplateUtils.createAndOpenTemplate( + TemplateUtils.createAndReOpenTemplate( Toolkit.i18nText("Fine_Design_Template_Lock_Copy"), new FileNodeFILE(new FileNode(selectedFilePath, false)), false, 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 87864ffd2..8cfd26342 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 @@ -427,7 +427,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt public NewFolderAction() { this.setName(KeySetUtils.NEW_FOLDER.getMenuKeySetName()); - this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/new_folder"); + this.setSmallIcon("/com/fr/design/standard/newfolder/new_folder"); } @Override @@ -452,7 +452,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt public SwitchAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Search")); this.setMnemonic('S'); - this.setSmallIcon("/com/fr/design/images/data/search"); + this.setSmallIcon("/com/fr/design/standard/search", false); } @Override @@ -469,7 +469,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt public CollapseAllAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Collapse_All")); - this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/collapse-all.png"); + this.setSmallIcon("/com/fr/design/standard/collapse_all", false); } @Override @@ -485,7 +485,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt private class VcsAction extends UpdateAction { public VcsAction() { - this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/vcs_list"); + this.setSmallIcon("/com/fr/design/standard/vcslist/vcs_list"); } @Override @@ -567,7 +567,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("/com/fr/design/images/FileDealerPaneIcon/view_folder"); + this.setSmallIcon("/com/fr/design/standard/viewfolder/view_folder"); } @Override @@ -584,7 +584,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt public RefreshTreeAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Refresh")); - this.setSmallIcon("/com/fr/design/images/FileDealerPaneIcon/refresh"); + this.setSmallIcon("/com/fr/design/standard/refresh", false); } @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 d32a54ca4..c8f7281a3 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 @@ -19,6 +19,7 @@ import com.fr.design.notification.SnapChat; import com.fr.design.notification.SnapChatFactory; import com.fr.design.ui.util.UIUtil; import com.fr.design.utils.DesignUtils; +import com.fr.design.utils.SvgDrawUtils; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUIPaintUtils; import com.fr.log.FineLoggerFactory; @@ -729,7 +730,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { private Set enableModes; // 完整icon路径为 ICON_BASE_DIR + btnIconName + iconSuffix - private static final String ICON_BASE_DIR = "/com/fr/design/images/buttonicon/propertiestab/"; + private static final String ICON_BASE_DIR = "/com/fr/design/standard/propertiestab/"; 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"; @@ -1313,7 +1314,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { } else { button = UIConstants.POP_BUTTON_UP; } - g.drawImage(button, ARROW_RANGE_START + 8, 4, 16, 16, null); + SvgDrawUtils.doDrawSVG(g, () -> SvgDrawUtils.drawImage(g, button, (ARROW_RANGE_START + 8), 4, null)); } } 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 444ef577f..0082e091f 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 @@ -1,6 +1,5 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; import com.fr.base.Parameter; import com.fr.base.TRL; import com.fr.base.extension.FileExtension; @@ -8,6 +7,7 @@ import com.fr.base.io.BaseBook; import com.fr.base.iofile.attr.DesignBanCopyAttrMark; import com.fr.base.iofile.attr.TemplateIdAttrMark; import com.fr.base.iofile.attr.TemplateThemeAttrMark; +import com.fr.base.svg.IconUtils; import com.fr.base.theme.TemplateTheme; import com.fr.base.theme.TemplateThemeCompatible; import com.fr.base.theme.TemplateThemeConfig; @@ -72,7 +72,6 @@ import com.fr.file.StashedFILE; import com.fr.form.ui.NoneWidget; import com.fr.form.ui.Widget; import com.fr.general.ComparatorUtils; -import com.fr.general.IOUtils; import com.fr.locale.InterProviderFactory; import com.fr.log.FineLoggerFactory; import com.fr.nx.app.designer.toolbar.TemplateTransformer; @@ -1425,7 +1424,7 @@ public abstract class JTemplate> public Icon getPreviewLargeIcon() { PreviewProvider provider = getPreviewType(); String iconPath = provider.iconPathForLarge(); - return BaseUtils.readIcon(iconPath); + return IconUtils.readIcon(iconPath); } /** @@ -1573,7 +1572,7 @@ public abstract class JTemplate> } protected UIButton createTemplateThemeButton() { - UIButton button = new UIButton(IOUtils.readIcon("/com/fr/design/icon/icon_predefined_style.png")) { + UIButton button = new UIButton(IconUtils.readIcon("/com/fr/design/standard/template_theme")) { @Override public Dimension getPreferredSize() { FontMetrics metrics = getFontMetrics(getFont()); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/ToolBarNewTemplatePane.java b/designer-base/src/main/java/com/fr/design/mainframe/ToolBarNewTemplatePane.java index 1f7cab6d6..64d58bd8e 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/ToolBarNewTemplatePane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/ToolBarNewTemplatePane.java @@ -1,6 +1,6 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.file.NewTemplatePane; import javax.swing.Icon; @@ -21,16 +21,16 @@ public class ToolBarNewTemplatePane extends NewTemplatePane { @Override public Icon getNew() { - return BaseUtils.readIcon("/com/fr/design/images/buttonicon/addicon.png"); + return IconUtils.readIcon("/com/fr/design/standard/addicon/addicon"); } @Override public Icon getMouseOverNew() { - return BaseUtils.readIcon("/com/fr/design/images/buttonicon/add_press.png"); + return IconUtils.readIcon("/com/fr/design/standard/addicon/add_press.svg"); } @Override public Icon getMousePressNew() { - return BaseUtils.readIcon("/com/fr/design/images/buttonicon/add_press.png"); + return IconUtils.readIcon("/com/fr/design/standard/addicon/add_press.svg"); } } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/check/CheckButton.java b/designer-base/src/main/java/com/fr/design/mainframe/check/CheckButton.java index 0ec50ef24..1d09f2482 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/check/CheckButton.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/check/CheckButton.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe.check; import com.fr.base.BaseUtils; +import com.fr.base.svg.IconUtils; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ilable.UILabel; @@ -44,7 +45,7 @@ public class CheckButton extends UIButton { private UILabel imageLabel; public CheckButton() { - this.setIcon(BaseUtils.readIcon("/com/fr/design/images/buttonicon/check.png")); + this.setIcon(IconUtils.readIcon("/com/fr/design/standard/font_miss_check")); this.setToolTipText(Toolkit.i18nText("Fine_Designer_Check_Font")); this.set4ToolbarButton(); this.addActionListener(checkListener); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/manager/search/searcher/control/pane/TemplateTreeSearchToolbarPane.java b/designer-base/src/main/java/com/fr/design/mainframe/manager/search/searcher/control/pane/TemplateTreeSearchToolbarPane.java index e2deb1325..ee9b861b1 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/manager/search/searcher/control/pane/TemplateTreeSearchToolbarPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/manager/search/searcher/control/pane/TemplateTreeSearchToolbarPane.java @@ -107,7 +107,7 @@ public class TemplateTreeSearchToolbarPane extends JPanel implements TreeSearchS searchPane.setBorder(BorderFactory.createLineBorder(UIConstants.TOOLBAR_BORDER_COLOR)); searchPane.setBackground(Color.WHITE); // 左侧搜索图标 - UILabel searchLabel = new UILabel(IconUtils.readIcon("/com/fr/design/images/data/search")); + UILabel searchLabel = new UILabel(IconUtils.readIcon("/com/fr/design/standard/search")); searchLabel.setBorder(BorderFactory.createEmptyBorder(0, 12, 0, 0)); searchLabel.addMouseListener(new MouseAdapter() { @Override @@ -118,7 +118,7 @@ public class TemplateTreeSearchToolbarPane extends JPanel implements TreeSearchS // 中间输入框 initSearchTextField(); // 右侧返回图标 - UILabel returnLabel = new UILabel(IconUtils.readIcon("/com/fr/design/images/data/clear")); + UILabel returnLabel = new UILabel(IconUtils.readIcon("/com/fr/design/standard/clear")); returnLabel.setToolTipText(Toolkit.i18nText("Fine-Design_Tree_Search_Return")); returnLabel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 11)); returnLabel.addMouseListener(new MouseAdapter() { 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 c72fa68dc..980ccb5a3 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 @@ -25,7 +25,6 @@ import com.fr.workspace.server.vcs.filesystem.VcsFileSystem; import com.fr.workspace.server.vcs.git.config.GcConfig; import javax.swing.Icon; -import javax.swing.SwingUtilities; import javax.swing.border.EmptyBorder; import java.awt.Color; import java.util.List; @@ -138,18 +137,20 @@ public class VcsHelper implements JTemplateActionListener { String fileName = getEditingFilename(); VcsOperator operator = WorkContext.getCurrent().get(VcsOperator.class); VcsEntity entity = operator.getFileVersionByIndex(fileName, 0); - boolean replace = needDeleteVersion(entity); int latestFileVersion = 0; if (entity != null) { latestFileVersion = entity.getVersion(); } if (jt.getEditingFILE() instanceof VcsCacheFileNodeFile) { - operator.saveVersionFromCache(getCurrentUsername(), fileName, StringUtils.EMPTY, latestFileVersion + 1, replace); + operator.saveVersionFromCache(getCurrentUsername(), fileName, StringUtils.EMPTY, latestFileVersion + 1); String path = DesignerFrameFileDealerPane.getInstance().getSelectedOperation().getFilePath(); - List updatedList = WorkContext.getCurrent().get(VcsOperator.class).getVersions(path.replaceFirst(VCS_FILE_SLASH, StringUtils.EMPTY)); - SwingUtilities.invokeLater(() -> FileVersionTable.getInstance().updateModel(1, updatedList)); + FileVersionTable.getInstance().updateModel(1, WorkContext.getCurrent().get(VcsOperator.class).getVersions(path.replaceFirst(VCS_FILE_SLASH, StringUtils.EMPTY))); } else { - operator.saveVersion(getCurrentUsername(), fileName, StringUtils.EMPTY, latestFileVersion + 1, replace); + operator.saveVersion(getCurrentUsername(), fileName, StringUtils.EMPTY, latestFileVersion + 1); + } + VcsEntity oldEntity = WorkContext.getCurrent().get(VcsOperator.class).getFileVersionByIndexAndUsername(fileName, getCurrentUsername(), 1); + if (needDeleteVersion(oldEntity)) { + operator.deleteVersion(oldEntity.getFilename(), oldEntity.getVersion()); } if (GcConfig.getInstance().isGcEnable()) { operator.gc(); 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 798d4870a..ee82d256e 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 @@ -3,25 +3,32 @@ package com.fr.design.menu; import com.fr.base.svg.IconUtils; import com.fr.design.file.HistoryTemplateListCache; import com.fr.design.gui.ibutton.UIButton; -import com.fr.design.gui.imenu.*; +import com.fr.design.gui.imenu.UIHeadMenu; +import com.fr.design.gui.imenu.UIMenu; +import com.fr.design.gui.imenu.UIPopupEastAttrMenu; +import com.fr.design.gui.imenu.UIPopupMenu; +import com.fr.design.gui.imenu.UIScrollMenu; import com.fr.design.gui.iscrollbar.UIScrollBar; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.JTemplate; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.stable.StringUtils; -import java.util.HashSet; -import java.util.Set; -import javax.swing.*; +import javax.swing.JMenu; +import javax.swing.JPopupMenu; +import javax.swing.JToolBar; import javax.swing.event.MenuEvent; import javax.swing.event.MenuListener; -import java.awt.*; +import java.awt.Component; +import java.awt.Dimension; import java.awt.event.ContainerListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; /** * Define Menu. @@ -46,6 +53,7 @@ public class MenuDef extends ShortCut { protected Boolean isEastAttr = false; protected char mnemonic; protected String iconPath; + private boolean needDisabled; protected String tooltip; //item List. private List shortcutList = new ArrayList(); @@ -112,9 +120,19 @@ public class MenuDef extends ShortCut { } public void setIconPath(String iconPath) { - this.iconPath = iconPath; + setDisabledIcon(iconPath, false); } + /** + * 设置不可用图标时,注意传递路径问题,若路径为"view_normal.svg",请传递"view",不带后缀 + * 读取disable图标的文件名应当为"xxx_disabled.svg",也是项目中的svg命名规范 + * 注意必须是svg图标路径才能使用此函数设置正常和禁用状态 + * + * */ + public void setDisabledIcon(String iconPath, boolean needDisabled) { + this.iconPath = iconPath; + this.needDisabled = needDisabled; + } public int getShortCutCount() { return this.shortcutList.size(); } @@ -183,6 +201,9 @@ public class MenuDef extends ShortCut { if (createdButton == null) { if (iconPath != null) { createdButton = new UIButton(IconUtils.readIcon(iconPath)); + if(needDisabled) { + createdButton.setDisabledIcon(IconUtils.readIcon(iconPath + IconUtils.ICON_TYPE_DISABLED)); + } createdButton.set4ToolbarButton(); } else { createdButton = new UIButton(name); diff --git a/designer-base/src/main/java/com/fr/design/notification/ui/NotificationCenterPane.java b/designer-base/src/main/java/com/fr/design/notification/ui/NotificationCenterPane.java index 3ec5a53a9..8e5c3ff40 100644 --- a/designer-base/src/main/java/com/fr/design/notification/ui/NotificationCenterPane.java +++ b/designer-base/src/main/java/com/fr/design/notification/ui/NotificationCenterPane.java @@ -1,5 +1,6 @@ package com.fr.design.notification.ui; +import com.fr.base.svg.IconUtils; import com.fr.design.constants.UIConstants; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.ibutton.UIButton; @@ -20,7 +21,7 @@ public class NotificationCenterPane extends BasicPane { setPreferredSize(new Dimension(24, 24)); setLayout(new BorderLayout()); notificationCenterButton = new UIButton(); - notificationCenterButton.setIcon(IOUtils.readIcon("/com/fr/design/notification/ui/notificationCenter.png")); + notificationCenterButton.setIcon(IconUtils.readIcon("/com/fr/design/standard/notification/notification")); notificationCenterButton.setToolTipText(Toolkit.i18nText("Fine-Design_Basic_Show_Notification")); notificationCenterButton.set4ToolbarButton(); notificationCenterButton.setRolloverEnabled(false); @@ -41,9 +42,9 @@ public class NotificationCenterPane extends BasicPane { public void refreshButton() { if (NotificationCenter.getInstance().getNotificationsCount() > 0) { - notificationCenterButton.setIcon(IOUtils.readIcon("/com/fr/design/notification/ui/notificationCenterDot.png")); + notificationCenterButton.setIcon(IconUtils.readIcon("/com/fr/design/standard/notification/notification_dot.svg")); } else { - notificationCenterButton.setIcon(IOUtils.readIcon("/com/fr/design/notification/ui/notificationCenter.png")); + notificationCenterButton.setIcon(IconUtils.readIcon("/com/fr/design/standard/notification/notification")); } } diff --git a/designer-base/src/main/java/com/fr/design/preview/FormPreview.java b/designer-base/src/main/java/com/fr/design/preview/FormPreview.java index 178779f51..83b8a353f 100644 --- a/designer-base/src/main/java/com/fr/design/preview/FormPreview.java +++ b/designer-base/src/main/java/com/fr/design/preview/FormPreview.java @@ -18,12 +18,12 @@ public class FormPreview extends AbstractPreviewProvider { @Override public String iconPathForPopupItem() { - return "com/fr/design/images/buttonicon/runs.png"; + return "/com/fr/design/standard/preview/runs.svg"; } @Override public String iconPathForLarge() { - return "com/fr/design/images/buttonicon/run24.png"; + return "/com/fr/design/standard/preview/run24.svg"; } @Override diff --git a/designer-base/src/main/java/com/fr/design/preview/MobilePreview.java b/designer-base/src/main/java/com/fr/design/preview/MobilePreview.java index c0f9e973d..a55eb2573 100644 --- a/designer-base/src/main/java/com/fr/design/preview/MobilePreview.java +++ b/designer-base/src/main/java/com/fr/design/preview/MobilePreview.java @@ -19,12 +19,12 @@ public class MobilePreview extends AbstractPreviewProvider { @Override public String iconPathForPopupItem() { - return "com/fr/design/images/buttonicon/mobile.png"; + return "/com/fr/design/standard/preview/mobile.svg"; } @Override public String iconPathForLarge() { - return "com/fr/design/images/buttonicon/mobileb24.png"; + return "/com/fr/design/standard/preview/mobileb24.svg"; } @Override diff --git a/designer-base/src/main/java/com/fr/design/preview/PagePreview.java b/designer-base/src/main/java/com/fr/design/preview/PagePreview.java index e46e1f06c..c2f15c915 100644 --- a/designer-base/src/main/java/com/fr/design/preview/PagePreview.java +++ b/designer-base/src/main/java/com/fr/design/preview/PagePreview.java @@ -17,12 +17,12 @@ public class PagePreview extends AbstractPreviewProvider { @Override public String iconPathForPopupItem() { - return "com/fr/design/images/buttonicon/pages.png"; + return "/com/fr/design/standard/preview/pages.svg"; } @Override public String iconPathForLarge() { - return "com/fr/design/images/buttonicon/pageb24.png"; + return "/com/fr/design/standard/preview/pageb24.svg"; } @Override diff --git a/designer-base/src/main/java/com/fr/design/preview/ViewPreview.java b/designer-base/src/main/java/com/fr/design/preview/ViewPreview.java index 02809ba38..5df602649 100644 --- a/designer-base/src/main/java/com/fr/design/preview/ViewPreview.java +++ b/designer-base/src/main/java/com/fr/design/preview/ViewPreview.java @@ -20,12 +20,12 @@ public class ViewPreview extends AbstractPreviewProvider { @Override public String iconPathForPopupItem() { - return "com/fr/design/images/buttonicon/anas.png"; + return "/com/fr/design/standard/preview/anas.svg"; } @Override public String iconPathForLarge() { - return "com/fr/design/images/buttonicon/anab24.png"; + return "/com/fr/design/standard/preview/anab24.svg"; } @Override diff --git a/designer-base/src/main/java/com/fr/design/preview/WritePreview.java b/designer-base/src/main/java/com/fr/design/preview/WritePreview.java index 3d027dca7..8cac86f39 100644 --- a/designer-base/src/main/java/com/fr/design/preview/WritePreview.java +++ b/designer-base/src/main/java/com/fr/design/preview/WritePreview.java @@ -20,12 +20,12 @@ public class WritePreview extends AbstractPreviewProvider { @Override public String iconPathForPopupItem() { - return "com/fr/design/images/buttonicon/writes.png"; + return "/com/fr/design/standard/preview/writes.svg"; } @Override public String iconPathForLarge() { - return "com/fr/design/images/buttonicon/writeb24.png"; + return "/com/fr/design/standard/preview/writeb24.svg"; } @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 8627f27a5..c7c32f795 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 @@ -35,7 +35,7 @@ public class UIToolbarColorButton extends UICombinationButton implements PopupHi private UIObserverListener uiObserverListener; public UIToolbarColorButton(Icon icon) { - super(new UIColorButton(icon), new UIButton(IconUtils.readIcon("/com/fr/design/images/gui/popup"))); + super(new UIColorButton(icon), new UIButton(IconUtils.readIcon("/com/fr/design/standard/popup"))); getLeftButton().setEventBanned(true); getRightButton().addFocusListener(new FocusListener() { diff --git a/designer-base/src/main/java/com/fr/design/utils/SvgDraw.java b/designer-base/src/main/java/com/fr/design/utils/SvgDraw.java new file mode 100644 index 000000000..0ae7ff7af --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/utils/SvgDraw.java @@ -0,0 +1,16 @@ +package com.fr.design.utils; + +/** + * 绘制SVG图标的函数式接口 + * + * @author obo + * @since 11.0 + * Created on 2023/3/24 + */ +public interface SvgDraw { + + /** + * 绘制svg图标的具体逻辑,方法体 + * */ + void drawSVG(); +} diff --git a/designer-base/src/main/java/com/fr/design/utils/SvgDrawUtils.java b/designer-base/src/main/java/com/fr/design/utils/SvgDrawUtils.java new file mode 100644 index 000000000..5754b2f8d --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/utils/SvgDrawUtils.java @@ -0,0 +1,73 @@ +package com.fr.design.utils; + +import com.fr.base.svg.SVGLoader; +import com.fr.base.svg.SystemScaleUtils; +import org.jetbrains.annotations.NotNull; + +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.image.ImageObserver; + +/** + * 用于绘制svg图片缩放(高分屏下) + * + * @author hades + * @since 11.0 + * Created on 2022/5/6 + */ +public class SvgDrawUtils { + + private static final boolean HI_DPI_ENABLED = SystemScaleUtils.isJreHiDPIEnabled(); + + /** + * 绘制svg前若环境支持高清化则对缩放比例进行适配 + * */ + public static void beforeDraw(Graphics2D g2) { + if (HI_DPI_ENABLED) { + g2.scale(1 / SVGLoader.SYSTEM_SCALE, 1 / SVGLoader.SYSTEM_SCALE); + } + } + + /** + * 绘制svg后还原缩放矩阵 + * */ + public static void afterDraw(Graphics2D g2) { + if (HI_DPI_ENABLED) { + g2.scale(SVGLoader.SYSTEM_SCALE, SVGLoader.SYSTEM_SCALE); + } + } + + /** + * 计算高缩放下绘制svg图标时新的的位置x,y + * @param position 旧坐标的值 + * @return 新的position值 + * */ + public static int calculatePosition(int position) { + return HI_DPI_ENABLED ? (int) (position * SVGLoader.SYSTEM_SCALE) : position; + } + + /** + * 绘制svg图像的完整逻辑 + * @param graphics 绘图 + * @param svgDraw 具体绘制逻辑 + * */ + public static void doDrawSVG(@NotNull Graphics graphics, @NotNull final SvgDraw svgDraw) { + SvgDrawUtils.beforeDraw((Graphics2D) graphics); + svgDraw.drawSVG(); + SvgDrawUtils.afterDraw((Graphics2D) graphics); + } + + /** + * 绘制前对坐标x和y进行处理 + * @param graphics 绘图 + * @param image svg的Image对象 + * @param x x坐标 + * @param y y坐标 + * @param imageObserver 图像观察器 + * */ + public static void drawImage(Graphics graphics, Image image, int x, int y, ImageObserver imageObserver) { + //如果环境支持高清化,在调整缩放比例时绘制svg会影响到位置的变化,若图标无确定裁剪位置,则需要进行调整 + graphics.drawImage(image, SvgDrawUtils.calculatePosition(x), SvgDrawUtils.calculatePosition(y), imageObserver); + } +} diff --git a/designer-base/src/main/java/com/fr/design/utils/SvgPaintUtils.java b/designer-base/src/main/java/com/fr/design/utils/SvgPaintUtils.java deleted file mode 100644 index fdb460eb4..000000000 --- a/designer-base/src/main/java/com/fr/design/utils/SvgPaintUtils.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.fr.design.utils; - -import com.fr.base.svg.SVGLoader; -import com.fr.base.svg.SystemScaleUtils; -import java.awt.Graphics2D; - -/** - * 用于绘制svg图片缩放(高分屏下) - * - * @author hades - * @version 11.0 - * Created by hades on 2022/5/6 - */ -public class SvgPaintUtils { - - public static void beforePaint(Graphics2D g2) { - if (SystemScaleUtils.isJreHiDPIEnabled()) { - g2.scale(1 / SVGLoader.SYSTEM_SCALE, 1 / SVGLoader.SYSTEM_SCALE); - } - } - - public static void afterPaint(Graphics2D g2) { - if (SystemScaleUtils.isJreHiDPIEnabled()) { - g2.scale(SVGLoader.SYSTEM_SCALE, SVGLoader.SYSTEM_SCALE); - } - } - -} diff --git a/designer-base/src/main/java/com/fr/design/utils/TemplateUtils.java b/designer-base/src/main/java/com/fr/design/utils/TemplateUtils.java index 9fb1e632a..f3d062946 100644 --- a/designer-base/src/main/java/com/fr/design/utils/TemplateUtils.java +++ b/designer-base/src/main/java/com/fr/design/utils/TemplateUtils.java @@ -16,8 +16,10 @@ import com.fr.log.FineLoggerFactory; import com.fr.stable.ArrayUtils; import com.fr.stable.CoreConstants; import com.fr.stable.ProductConstants; +import com.fr.stable.StringUtils; import com.fr.workspace.WorkContext; import com.fr.workspace.server.lock.TplOperator; +import org.jetbrains.annotations.Nullable; import javax.swing.SwingWorker; import java.io.OutputStream; @@ -33,22 +35,63 @@ public class TemplateUtils { /** * 创建新的模板文件并打开模板 - * @param prefix 模板文件名称前缀 - * @param file 模板文件 + * + * @param prefix 模板文件名称前缀 + * @param file 模板文件 * @param createByEditingTemplate 是否根据 当前编辑模板 来创建新模板 * 为true时以CurrentEditingTemplate为准创建新模板 * 为false时以传入的File文件为准创建新模板,此文件可以不是编辑状态 - * @param openNewTemplate 是否需要在创建后打开模板 + * @param openNewTemplate 是否需要在创建后打开模板 */ public static void createAndOpenTemplate(String prefix, FILE file, boolean createByEditingTemplate, boolean openNewTemplate) { - String fileName = file.getName(); + createAndOpenTemplate(prefix, file, createByEditingTemplate, openNewTemplate, () -> {}); + } + + /** + * 创建新的模板文件并并判断新的模板文件是否之前已经被开打,如果已经打开需要reOpen + * + * @param prefix 模板文件名称前缀 + * @param file 模板文件 + * @param createByEditingTemplate 是否根据 当前编辑模板 来创建新模板 + * 为true时以CurrentEditingTemplate为准创建新模板 + * 为false时以传入的File文件为准创建新模板,此文件可以不是编辑状态 + * @param openNewTemplate 是否需要在创建后打开模板 + */ + public static void createAndReOpenTemplate(String prefix, FILE file, boolean createByEditingTemplate, boolean openNewTemplate) { String oldPath = file.getPath(); + file = getSavedFile(prefix, file); + if (file == null) { + return; + } + Runnable doAfterCreateTemplate; + //判断一下要保存的文件是否已打开 + int index = HistoryTemplateListCache.getInstance().contains(file); + if (index == -1) { + doAfterCreateTemplate = () -> {}; + } else { + JTemplate template = HistoryTemplateListCache.getInstance().getHistoryList().get(index); + doAfterCreateTemplate = () -> HistoryTemplateListCache.getInstance().closeSelectedReport(template); + } + createAndOpenTemplate0(file, oldPath, createByEditingTemplate, openNewTemplate, doAfterCreateTemplate); + } + + + /** + * 返回值可以为null, 为null表示没有点击保存按钮或者传递进来的文件file本身不满足格式要求 + * + * @param prefix 模板文件名称前缀 + * @param file 模板文件 + * @return 最后选择的要保存的文件 + */ + @Nullable + private static FILE getSavedFile(String prefix, FILE file) { + String fileName = file.getName(); int indexOfLastDot = fileName.lastIndexOf(CoreConstants.DOT); if (indexOfLastDot < 0) { - return; + return null; } String suffix = fileName.substring(indexOfLastDot + 1); - FILEChooserPane fileChooserPane = FILEChooserPane.getInstance(true, true); + FILEChooserPane fileChooserPane = FILEChooserPane.getInstance(true, true); fileChooserPane.setFileNameTextField(prefix + fileName, suffix); FileExtension fileExtension = FileExtension.parse(suffix); fileChooserPane.addChooseFILEFilter(new ChooseFileFilter(fileExtension, ProductConstants.APP_NAME + Toolkit.i18nText("Fine-Design_Report_Template_File"))); @@ -57,36 +100,52 @@ public class TemplateUtils { fileChooserPane.enableFileNameTextFiled(); if (isCancel(result)) { - return; + return null; } if (isOk(result)) { - file = fileChooserPane.getSelectedFILE(); - _createAndOpenTemplate(file, oldPath, createByEditingTemplate, openNewTemplate); + return fileChooserPane.getSelectedFILE(); } + + return null; } + /** + * 创建新的模板文件并打开模板,并在创建备份模板成功后执行doAfterCreate + * + * @param prefix 模板文件名称前缀 + * @param file 模板文件 + * @param createByEditingTemplate 是否根据 当前编辑模板 来创建新模板 + * 为true时以CurrentEditingTemplate为准创建新模板 + * 为false时以传入的File文件为准创建新模板,此文件可以不是编辑状态 + * @param openNewTemplate 是否需要在创建后打开模板 + * @param doAfterCreateTemplate 创建备份模板成功后调用 + */ + public static void createAndOpenTemplate(String prefix, FILE file, boolean createByEditingTemplate, boolean openNewTemplate, Runnable doAfterCreateTemplate) { + String oldPath = file.getPath(); + file = getSavedFile(prefix, file); + if (file == null) { + return; + } - private static void _createAndOpenTemplate(FILE file, String oldPath, boolean createByEditingTemplate, boolean openNewTemplate){ - new SwingWorker() { + createAndOpenTemplate0(file, oldPath, createByEditingTemplate, openNewTemplate, doAfterCreateTemplate); + } + + private static void createAndOpenTemplate0(FILE file, String oldPath, boolean createByEditingTemplate, boolean openNewTemplate, Runnable doAfterCreateTemplate) { + new SwingWorker() { @Override - protected Void doInBackground() throws Exception { - byte[] content = new byte[0]; - if (createByEditingTemplate) { - // 从当前编辑模板中生成备份文件 - JTemplate template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); - content = template.exportData(); - } else { - content = WorkContext.getWorkResource().readFully(oldPath); - } - if (ArrayUtils.isEmpty(content)) { - throw new Exception(oldPath + " content is empty" ); - } + protected Boolean doInBackground() throws Exception { + // 读取模板数据 + byte[] content = getTemplateData(createByEditingTemplate, oldPath); OutputStream out = null; try { // 加锁 - WorkContext.getCurrent().get(TplOperator.class).saveAs(file.getPath()); + boolean saveAsLock = WorkContext.getCurrent().get(TplOperator.class).saveAs(file.getPath()); + if (!saveAsLock) { + // 加锁失败时,直接返回 + return false; + } out = file.asOutputStream(); out.write(content); } finally { @@ -98,15 +157,18 @@ public class TemplateUtils { // 解锁 WorkContext.getCurrent().get(TplOperator.class).closeAndFreeFile(file.getPath()); } - } - return null; + return true; } @Override protected void done() { try { - get(); + if (!get()) { + throw new Exception("[RemoteDesign] back up template file failed"); + } + // 创建备份成功后,关闭原模板 + doAfterCreateTemplate.run(); if (openNewTemplate) { DesignerContext.getDesignerFrame().openTemplate(file); } @@ -118,7 +180,31 @@ public class TemplateUtils { } } }.execute(); + } + /** + * 读取模板文件数据 + * + * @param readCurrentEditingTemplate 是否读取当前编辑模板 + * @param path 模板路径 + * @return 模板文件数据 + */ + private static byte[] getTemplateData(boolean readCurrentEditingTemplate, String path) throws Exception { + byte[] content = new byte[0]; + if (readCurrentEditingTemplate) { + // 从当前编辑模板中读取模板文件数据 + JTemplate template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); + if (JTemplate.isValid(template)) { + content = template.exportData(); + } + } else { + // 从给定的模板路径中读取模板文件数据 + content = WorkContext.getWorkResource().readFully(path); + } + if (ArrayUtils.isEmpty(content)) { + throw new Exception(StringUtils.messageFormat("{} content is empty", path)); + } + return content; } private static boolean isCancel(int result) { diff --git a/designer-base/src/main/java/com/fr/design/worker/save/SaveFailureHandler.java b/designer-base/src/main/java/com/fr/design/worker/save/SaveFailureHandler.java index 080b9ddbc..42ef95978 100644 --- a/designer-base/src/main/java/com/fr/design/worker/save/SaveFailureHandler.java +++ b/designer-base/src/main/java/com/fr/design/worker/save/SaveFailureHandler.java @@ -113,12 +113,14 @@ public class SaveFailureHandler implements ThrowableHandler { new Object[] {Toolkit.i18nText("Fine_Design_Template_SaveAs_Backup"), Toolkit.i18nText("Fine-Design_Basic_Button_Cancel")}, null); if (option == JOptionPane.YES_OPTION) { JTemplate template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); - if (template != null) { + if (JTemplate.isValid(template)) { TemplateUtils.createAndOpenTemplate( Toolkit.i18nText("Fine_Design_Template_Backup"), new FileNodeFILE(new FileNode(template.getPath(), false)), true, - false); + true, + // 创建并打开备份模板后,关闭原模板,无需释放原模板锁(因为已经被超管手动清除了) + () -> HistoryTemplateListCache.getInstance().closeSelectedReport(template)); } } } @@ -133,14 +135,14 @@ public class SaveFailureHandler implements ThrowableHandler { new Object[] {Toolkit.i18nText("Fine_Design_Template_SaveAs_Backup"), Toolkit.i18nText("Fine-Design_Basic_Button_Cancel")}, null); if (option == JOptionPane.YES_OPTION) { JTemplate template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); - if (template != null) { + if (JTemplate.isValid(template)) { TemplateUtils.createAndOpenTemplate( Toolkit.i18nText("Fine_Design_Template_Backup"), new FileNodeFILE(new FileNode(template.getPath(), false)), true, - true); - // 创建并打开备份模板后,关闭原模板 - HistoryTemplateListCache.getInstance().closeSelectedReport(template); + true, + // 创建并打开备份模板后,关闭原模板,无需释放原模板锁(锁定信息不一致 = 此用户模板锁信息已被清除) + () -> HistoryTemplateListCache.getInstance().closeSelectedReport(template)); } } } 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 bcf1ff768..d0fd62896 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.base.svg.IconUtils; import com.fr.design.file.TemplateResourceManager; import com.fr.io.FineEncryptUtils; import com.fr.base.io.XMLEncryptUtils; @@ -168,7 +169,7 @@ public class FileNodeFILE implements FILE { } if (ComparatorUtils.equals(node.getEnvPath(), ProjectConstants.REPORTLETS_NAME)) { - return BaseUtils.readIcon("/com/fr/base/images/oem/logo.png"); + return IconUtils.readIcon("/com/fr/base/images/oem/logo.svg"); } else { if (!hasFullAuth) { diff --git a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java index 41cd75890..43d2fd970 100644 --- a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java +++ b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java @@ -363,7 +363,7 @@ public class StartupPageWindow extends JFrame { for (String recentFile : recentFiles) { JPanel recentItemPanel = new JPanel(); recentItemPanel.setLayout(new FlowLayout(FlowLayout.LEFT, ITEM_VERTICAL_GAP, 0)); - recentItemPanel.add(new UILabel(IconUtils.readIcon("/com/fr/design/standard/system/cpt.svg"))); + recentItemPanel.add(new UILabel(IconUtils.readIcon("/com/fr/design/standard/system/cpt"))); UILabel recentFileLabel = new UILabel(recentFile); Color recentFileLabelForeground = recentFileLabel.getForeground(); recentItemPanel.add(recentFileLabel); diff --git a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java index 3cd6b7877..e41304e23 100644 --- a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java +++ b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java @@ -525,7 +525,7 @@ public class StartupPageWorkspacePanel extends JPanel { selectAndCreatePanel.setBorder(new EmptyBorder(0, 0, 0, 0)); selectAndCreatePanel.setLayout(new BorderLayout()); { - UILabel label = new UILabel(IconUtils.readIcon("/com/fr/design/standard/system/add.svg")); + UILabel label = new UILabel(IconUtils.readIcon("/com/fr/design/standard/system/add")); label.setPreferredSize(new Dimension(ARC_DIAMETER, ARC_DIAMETER)); label.setForeground(HOVER_COLOR); selectAndCreatePanel.add(label, BorderLayout.CENTER); @@ -540,7 +540,7 @@ public class StartupPageWorkspacePanel extends JPanel { @Override public void mouseExited(MouseEvent e) { borderColorRef.set(null); - label.setIcon(IconUtils.readIcon("/com/fr/design/standard/system/add.svg")); + label.setIcon(IconUtils.readIcon("/com/fr/design/standard/system/add")); repaintAll(); } @Override diff --git a/designer-base/src/main/resources/com/fr/design/i18n/dimension_en.properties b/designer-base/src/main/resources/com/fr/design/i18n/dimension_en.properties index d1f8ee17b..5098bc3c9 100644 --- a/designer-base/src/main/resources/com/fr/design/i18n/dimension_en.properties +++ b/designer-base/src/main/resources/com/fr/design/i18n/dimension_en.properties @@ -24,3 +24,4 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.dialog=600*500 com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369 com.fr.design.report.WatermarkSettingPane=720*600 com.fr.design.file.MultiTemplateTabPane.popUpMenu=350*65 +com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane=800*600 diff --git a/designer-base/src/main/resources/com/fr/design/i18n/dimension_ja_JP.properties b/designer-base/src/main/resources/com/fr/design/i18n/dimension_ja_JP.properties index a5b3a03fe..6c3ac0e58 100644 --- a/designer-base/src/main/resources/com/fr/design/i18n/dimension_ja_JP.properties +++ b/designer-base/src/main/resources/com/fr/design/i18n/dimension_ja_JP.properties @@ -23,3 +23,4 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.dialog=600*500 com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369 com.fr.design.report.WatermarkSettingPane=720*600 com.fr.design.file.MultiTemplateTabPane.popUpMenu=240*65 +com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane=800*600 diff --git a/designer-base/src/main/resources/com/fr/design/i18n/dimension_ko_KR.properties b/designer-base/src/main/resources/com/fr/design/i18n/dimension_ko_KR.properties index 4e8b3f9cd..eaa75e14a 100644 --- a/designer-base/src/main/resources/com/fr/design/i18n/dimension_ko_KR.properties +++ b/designer-base/src/main/resources/com/fr/design/i18n/dimension_ko_KR.properties @@ -23,3 +23,4 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.dialog=600*500 com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369 com.fr.design.report.WatermarkSettingPane=720*600 com.fr.design.file.MultiTemplateTabPane.popUpMenu=240*65 +com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane=800*600 diff --git a/designer-base/src/main/resources/com/fr/design/images/control/dot-line.png b/designer-base/src/main/resources/com/fr/design/images/control/dot-line.png deleted file mode 100644 index 874408025..000000000 Binary files a/designer-base/src/main/resources/com/fr/design/images/control/dot-line.png and /dev/null differ diff --git a/designer-base/src/main/resources/com/fr/design/images/control/down_arrow.png b/designer-base/src/main/resources/com/fr/design/images/control/down_arrow.png deleted file mode 100644 index 26a780d5e..000000000 Binary files a/designer-base/src/main/resources/com/fr/design/images/control/down_arrow.png and /dev/null differ diff --git a/designer-base/src/main/resources/com/fr/design/images/control/east_arrow.png b/designer-base/src/main/resources/com/fr/design/images/control/east_arrow.png deleted file mode 100644 index 918d75a9f..000000000 Binary files a/designer-base/src/main/resources/com/fr/design/images/control/east_arrow.png and /dev/null differ diff --git a/designer-base/src/main/resources/com/fr/design/images/control/up_arrow.png b/designer-base/src/main/resources/com/fr/design/images/control/up_arrow.png deleted file mode 100644 index 3d79ee07b..000000000 Binary files a/designer-base/src/main/resources/com/fr/design/images/control/up_arrow.png and /dev/null differ diff --git a/designer-base/src/main/resources/com/fr/design/images/control/west_arrow.png b/designer-base/src/main/resources/com/fr/design/images/control/west_arrow.png deleted file mode 100644 index 5693190f9..000000000 Binary files a/designer-base/src/main/resources/com/fr/design/images/control/west_arrow.png and /dev/null differ diff --git a/designer-base/src/main/resources/com/fr/design/images/gui/modern_style_cht_file_icon_16x16.png b/designer-base/src/main/resources/com/fr/design/images/gui/modern_style_cht_file_icon_16x16.png deleted file mode 100644 index a1e244a9b..000000000 Binary files a/designer-base/src/main/resources/com/fr/design/images/gui/modern_style_cht_file_icon_16x16.png and /dev/null differ diff --git a/designer-base/src/main/resources/com/fr/design/images/gui/modern_style_cpt_file_icon_16x16.png b/designer-base/src/main/resources/com/fr/design/images/gui/modern_style_cpt_file_icon_16x16.png deleted file mode 100644 index 15966d96d..000000000 Binary files a/designer-base/src/main/resources/com/fr/design/images/gui/modern_style_cpt_file_icon_16x16.png and /dev/null differ diff --git a/designer-base/src/main/resources/com/fr/design/images/gui/modern_style_frm_file_icon_16x16.png b/designer-base/src/main/resources/com/fr/design/images/gui/modern_style_frm_file_icon_16x16.png deleted file mode 100644 index 6258f4baf..000000000 Binary files a/designer-base/src/main/resources/com/fr/design/images/gui/modern_style_frm_file_icon_16x16.png and /dev/null differ diff --git a/designer-base/src/main/resources/com/fr/design/images/lookandfeel/FileIcon.svg b/designer-base/src/main/resources/com/fr/design/images/lookandfeel/FileIcon.svg new file mode 100644 index 000000000..8b3b40bbe --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/lookandfeel/FileIcon.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/lookandfeel/TreeLeafIcon.svg b/designer-base/src/main/resources/com/fr/design/images/lookandfeel/TreeLeafIcon.svg new file mode 100644 index 000000000..c2971da64 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/lookandfeel/TreeLeafIcon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/mainframe/guide/guide.png b/designer-base/src/main/resources/com/fr/design/mainframe/guide/guide.png deleted file mode 100644 index ef5a19783..000000000 Binary files a/designer-base/src/main/resources/com/fr/design/mainframe/guide/guide.png and /dev/null differ diff --git a/designer-base/src/main/resources/com/fr/design/notification/ui/notificationCenter.png b/designer-base/src/main/resources/com/fr/design/notification/ui/notificationCenter.png deleted file mode 100644 index 0445f3134..000000000 Binary files a/designer-base/src/main/resources/com/fr/design/notification/ui/notificationCenter.png and /dev/null differ diff --git a/designer-base/src/main/resources/com/fr/design/notification/ui/notificationCenterDot.png b/designer-base/src/main/resources/com/fr/design/notification/ui/notificationCenterDot.png deleted file mode 100644 index 599a9ba64..000000000 Binary files a/designer-base/src/main/resources/com/fr/design/notification/ui/notificationCenterDot.png and /dev/null differ 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/standard/add_polysheet_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/sheet/add_polysheet_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/add_polysheet_normal.svg diff --git a/designer-base/src/main/resources/com/fr/design/standard/add_worksheet_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/add_worksheet_normal.svg new file mode 100644 index 000000000..e373bd448 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/add_worksheet_normal.svg @@ -0,0 +1,17 @@ + + + icon_sheet_添加一页_normal + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/addicon/add_press.svg b/designer-base/src/main/resources/com/fr/design/standard/addicon/add_press.svg new file mode 100644 index 000000000..c23b1b8ad --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/addicon/add_press.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/addicon/addicon_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/addicon/addicon_normal.svg new file mode 100644 index 000000000..586122fd2 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/addicon/addicon_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/addpopup/addPopup_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/addpopup/addPopup_disabled.svg new file mode 100644 index 000000000..d48e1a27b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/addpopup/addPopup_disabled.svg @@ -0,0 +1,16 @@ + + + 编组 + + + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/addpopup/addPopup_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/addpopup/addPopup_normal.svg new file mode 100644 index 000000000..8cec802fe --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/addpopup/addPopup_normal.svg @@ -0,0 +1,14 @@ + + + 编组备份 + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/alpha_fine_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/alpha_fine_normal.svg new file mode 100644 index 000000000..efe176cea --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/alpha_fine_normal.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/arrowlinear/down_arrow.svg b/designer-base/src/main/resources/com/fr/design/standard/arrowlinear/down_arrow.svg new file mode 100644 index 000000000..fc5d318bf --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/arrowlinear/down_arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/arrowlinear/east_arrow.svg b/designer-base/src/main/resources/com/fr/design/standard/arrowlinear/east_arrow.svg new file mode 100644 index 000000000..b4b54dea8 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/arrowlinear/east_arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/arrowlinear/up_arrow.svg b/designer-base/src/main/resources/com/fr/design/standard/arrowlinear/up_arrow.svg new file mode 100644 index 000000000..cf615f3f3 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/arrowlinear/up_arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/arrowlinear/west_arrow.svg b/designer-base/src/main/resources/com/fr/design/standard/arrowlinear/west_arrow.svg new file mode 100644 index 000000000..d5260bfd0 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/arrowlinear/west_arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/background_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/background_normal.svg new file mode 100644 index 000000000..577e8bd8a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/background_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/standard/batchesdoff/batch_esd_off_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/batchesdoff/batch_esd_off_disabled.svg new file mode 100644 index 000000000..ed225a99b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/batchesdoff/batch_esd_off_disabled.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/batchesdoff/batch_esd_off_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/batchesdoff/batch_esd_off_normal.svg new file mode 100644 index 000000000..c81b5419a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/batchesdoff/batch_esd_off_normal.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/batchesdon/batch_esd_on_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/batchesdon/batch_esd_on_disabled.svg new file mode 100644 index 000000000..23d8c5da5 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/batchesdon/batch_esd_on_disabled.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/batchesdon/batch_esd_on_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/batchesdon/batch_esd_on_normal.svg new file mode 100644 index 000000000..13f924d88 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/batchesdon/batch_esd_on_normal.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/bias/bias_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/bias/bias_disabled.svg new file mode 100644 index 000000000..bc8c7ac44 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/bias/bias_disabled.svg @@ -0,0 +1,7 @@ + + + icon_斜线_disabled + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/bias/bias_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/bias/bias_normal.svg new file mode 100644 index 000000000..92af8e076 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/bias/bias_normal.svg @@ -0,0 +1,7 @@ + + + icon_斜线_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/bindcolunm/bind_column_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/bindcolunm/bind_column_disabled.svg new file mode 100644 index 000000000..6c80b82af --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/bindcolunm/bind_column_disabled.svg @@ -0,0 +1,7 @@ + + + icon_插入数据列_disabled + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/bindcolunm/bind_column_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/bindcolunm/bind_column_normal.svg new file mode 100644 index 000000000..ea35ccb27 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/bindcolunm/bind_column_normal.svg @@ -0,0 +1,7 @@ + + + icon_插入数据列_nomal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/bold/bold_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/bold/bold_normal.svg new file mode 100644 index 000000000..fa9d66022 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/bold/bold_normal.svg @@ -0,0 +1,7 @@ + + + icon_文本工具_加粗_nomal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/bold/bold_selected.svg b/designer-base/src/main/resources/com/fr/design/standard/bold/bold_selected.svg new file mode 100644 index 000000000..638fadc32 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/bold/bold_selected.svg @@ -0,0 +1,7 @@ + + + icon_文本工具_加粗_selected + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/cell_default_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/cell_default_normal.svg new file mode 100644 index 000000000..d897c1793 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/cell_default_normal.svg @@ -0,0 +1,13 @@ + + + icon/鼠标状态/十字光标 + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_center_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_center_normal.svg new file mode 100644 index 000000000..46c784803 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_center_normal.svg @@ -0,0 +1,7 @@ + + + icon_对齐 居中对齐_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_center_selected.svg b/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_center_selected.svg new file mode 100644 index 000000000..ca8717204 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_center_selected.svg @@ -0,0 +1,7 @@ + + + icon_对齐 居中对齐_selected + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_left_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_left_normal.svg new file mode 100644 index 000000000..480e12e8c --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_left_normal.svg @@ -0,0 +1,7 @@ + + + icon_对齐 左对齐_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_left_selected.svg b/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_left_selected.svg new file mode 100644 index 000000000..b859a9ac9 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_left_selected.svg @@ -0,0 +1,7 @@ + + + icon_对齐 左对齐_selected + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_right_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_right_normal.svg new file mode 100644 index 000000000..9707e270d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_right_normal.svg @@ -0,0 +1,7 @@ + + + icon_对齐 右对齐_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_right_selected.svg b/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_right_selected.svg new file mode 100644 index 000000000..f2ca4708c --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/cellstyle/h_right_selected.svg @@ -0,0 +1,7 @@ + + + icon_对齐 右对齐_selected + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/chart/chart_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/chart/chart_disabled.svg new file mode 100644 index 000000000..b2b724c64 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/chart/chart_disabled.svg @@ -0,0 +1,7 @@ + + + icon_图表_disabled + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/chart/chart_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/chart/chart_normal.svg new file mode 100644 index 000000000..59fc97567 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/chart/chart_normal.svg @@ -0,0 +1,7 @@ + + + icon_图表_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/class_table_data_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/class_table_data_normal.svg new file mode 100644 index 000000000..19fc851ec --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/class_table_data_normal.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/clear_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/clear_normal.svg new file mode 100644 index 000000000..11f60a553 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/clear_normal.svg @@ -0,0 +1,10 @@ + + + icon_关闭_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/close/close_mouseover.svg b/designer-base/src/main/resources/com/fr/design/standard/close/close_mouseover.svg new file mode 100644 index 000000000..bc0afc24d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/close/close_mouseover.svg @@ -0,0 +1,9 @@ + + + icon_关闭_hover + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/close/close_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/close/close_normal.svg new file mode 100644 index 000000000..23c1cbe2c --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/close/close_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/close/close_press.svg b/designer-base/src/main/resources/com/fr/design/standard/close/close_press.svg new file mode 100644 index 000000000..bc0afc24d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/close/close_press.svg @@ -0,0 +1,9 @@ + + + icon_关闭_hover + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/collapse_all_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/collapse_all_normal.svg new file mode 100644 index 000000000..45b28a56b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/collapse_all_normal.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/connection_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/connection_normal.svg new file mode 100644 index 000000000..7c865b45e --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/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/standard/copy/copy_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/copy/copy_disabled.svg new file mode 100644 index 000000000..05585d3ab --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/copy/copy_disabled.svg @@ -0,0 +1,7 @@ + + + icon_复制_disabled + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/copy/copy_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/copy/copy_normal.svg new file mode 100644 index 000000000..7e45e6935 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/copy/copy_normal.svg @@ -0,0 +1,10 @@ + + + icon_复制_normal + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/cut/cut_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/cut/cut_disabled.svg new file mode 100644 index 000000000..6f469f8e6 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/cut/cut_disabled.svg @@ -0,0 +1,9 @@ + + + icon_剪切_disabled + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/cut/cut_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/cut/cut_normal.svg new file mode 100644 index 000000000..485201206 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/cut/cut_normal.svg @@ -0,0 +1,10 @@ + + + icon_剪切_normal + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/data_table_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/data_table_normal.svg new file mode 100644 index 000000000..220cd9526 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/data_table_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/database_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/database_normal.svg new file mode 100644 index 000000000..8c0361dcd --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/database_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/dot_line_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/dot_line_normal.svg new file mode 100644 index 000000000..989837d58 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/dot_line_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/drag/left_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/drag/left_normal.svg new file mode 100644 index 000000000..d20fea5a8 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/drag/left_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/drag/left_pressed.svg b/designer-base/src/main/resources/com/fr/design/standard/drag/left_pressed.svg new file mode 100644 index 000000000..db0dca395 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/drag/left_pressed.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/drag/right_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/drag/right_normal.svg new file mode 100644 index 000000000..4b3cb3aad --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/drag/right_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/drag/right_pressed.svg b/designer-base/src/main/resources/com/fr/design/standard/drag/right_pressed.svg new file mode 100644 index 000000000..fafe76388 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/drag/right_pressed.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/editdataset/edit_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/editdataset/edit_disabled.svg new file mode 100644 index 000000000..9b001cfc5 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/editdataset/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/standard/editdataset/edit_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/editdataset/edit_normal.svg new file mode 100644 index 000000000..291719452 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/editdataset/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/standard/field_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/field_normal.svg new file mode 100644 index 000000000..608d1fd58 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/field_normal.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/file_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/file_normal.svg new file mode 100644 index 000000000..cafbff652 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/file_normal.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/fileicon/cht_icon.svg b/designer-base/src/main/resources/com/fr/design/standard/fileicon/cht_icon.svg new file mode 100644 index 000000000..0a764389b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/fileicon/cht_icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/fileicon/cpt_icon.svg b/designer-base/src/main/resources/com/fr/design/standard/fileicon/cpt_icon.svg new file mode 100644 index 000000000..d691f38b6 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/fileicon/cpt_icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/fileicon/cptx_icon.svg b/designer-base/src/main/resources/com/fr/design/standard/fileicon/cptx_icon.svg new file mode 100644 index 000000000..79eff5861 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/fileicon/cptx_icon.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/fileicon/cptx_icon_locked.svg b/designer-base/src/main/resources/com/fr/design/standard/fileicon/cptx_icon_locked.svg new file mode 100644 index 000000000..1b662d0bf --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/fileicon/cptx_icon_locked.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/fileicon/folder.svg b/designer-base/src/main/resources/com/fr/design/standard/fileicon/folder.svg new file mode 100644 index 000000000..ebafeec23 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/fileicon/folder.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/fileicon/folder_half_authority.svg b/designer-base/src/main/resources/com/fr/design/standard/fileicon/folder_half_authority.svg new file mode 100644 index 000000000..55be60bd4 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/fileicon/folder_half_authority.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/fileicon/frm_icon.svg b/designer-base/src/main/resources/com/fr/design/standard/fileicon/frm_icon.svg new file mode 100644 index 000000000..fa61a511f --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/fileicon/frm_icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/fileicon/minus.svg b/designer-base/src/main/resources/com/fr/design/standard/fileicon/minus.svg new file mode 100644 index 000000000..db4e76f2a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/fileicon/minus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/fileicon/plus.svg b/designer-base/src/main/resources/com/fr/design/standard/fileicon/plus.svg new file mode 100644 index 000000000..f012490ae --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/fileicon/plus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/floatpop_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/floatpop_normal.svg new file mode 100644 index 000000000..a9e45f1c8 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/floatpop_normal.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/font_miss_check_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/font_miss_check_normal.svg new file mode 100644 index 000000000..3b87159e1 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/font_miss_check_normal.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/foreground_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/foreground_normal.svg new file mode 100644 index 000000000..0eaa40e93 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/foreground_normal.svg @@ -0,0 +1,7 @@ + + + icon_文本前景色_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/formatbrush/formatBrush_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/formatbrush/formatBrush_normal.svg new file mode 100644 index 000000000..f02c9cb61 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/formatbrush/formatBrush_normal.svg @@ -0,0 +1,9 @@ + + + icon_格式刷_normal + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/formula/formula_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/formula/formula_disabled.svg new file mode 100644 index 000000000..18eb078e7 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/formula/formula_disabled.svg @@ -0,0 +1,7 @@ + + + icon_公式_disabled + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/formula/formula_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/formula/formula_normal.svg new file mode 100644 index 000000000..981ec11b4 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/formula/formula_normal.svg @@ -0,0 +1,7 @@ + + + icon_公式_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/guide_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/guide_normal.svg new file mode 100644 index 000000000..acf81b1e4 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/guide_normal.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/image/image_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/image/image_disabled.svg new file mode 100644 index 000000000..b18058f59 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/image/image_disabled.svg @@ -0,0 +1,12 @@ + + + icon_图片__disabled + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/image/image_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/image/image_normal.svg new file mode 100644 index 000000000..19eb76199 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/image/image_normal.svg @@ -0,0 +1,10 @@ + + + icon_图片_normal + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/italic/italic_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/italic/italic_normal.svg new file mode 100644 index 000000000..97ed4dd1a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/italic/italic_normal.svg @@ -0,0 +1,9 @@ + + + icon_文本工具_斜体_normal + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/italic/italic_selected.svg b/designer-base/src/main/resources/com/fr/design/standard/italic/italic_selected.svg new file mode 100644 index 000000000..1a84fd6da --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/italic/italic_selected.svg @@ -0,0 +1,9 @@ + + + icon_文本工具_斜体_selected + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/list/list_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/list/list_normal.svg new file mode 100644 index 000000000..b6fccb033 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/list/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/standard/list/list_pressed.svg b/designer-base/src/main/resources/com/fr/design/standard/list/list_pressed.svg new file mode 100644 index 000000000..a6b49b76b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/list/list_pressed.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/locate/locate_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/locate/locate_disabled.svg new file mode 100644 index 000000000..3a94510fb --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/locate/locate_disabled.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/locate/locate_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/locate/locate_normal.svg new file mode 100644 index 000000000..6c78878c0 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/locate/locate_normal.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/merge/merge_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/merge/merge_disabled.svg new file mode 100644 index 000000000..a54f56a5b --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/merge/merge_disabled.svg @@ -0,0 +1,11 @@ + + + icon_合并单元格_disabled + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/merge/merge_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/merge/merge_normal.svg new file mode 100644 index 000000000..ad7584497 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/merge/merge_normal.svg @@ -0,0 +1,11 @@ + + + icon_合并单元格_normal + + + + a + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/multi_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/multi_normal.svg new file mode 100644 index 000000000..0c8144e63 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/multi_normal.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/newfolder/new_folder_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/newfolder/new_folder_disabled.svg new file mode 100644 index 000000000..f3936e153 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/newfolder/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/standard/newfolder/new_folder_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/newfolder/new_folder_normal.svg new file mode 100644 index 000000000..85f41e26a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/newfolder/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/sheet/next_page_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/nextpage/next_page_disabled.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/sheet/next_page_disabled.svg rename to designer-base/src/main/resources/com/fr/design/standard/nextpage/next_page_disabled.svg 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/standard/nextpage/next_page_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/sheet/next_page_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/nextpage/next_page_normal.svg diff --git a/designer-base/src/main/resources/com/fr/design/standard/noboder_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/noboder_normal.svg new file mode 100644 index 000000000..b3ef846a9 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/noboder_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/notification/notification_dot.svg b/designer-base/src/main/resources/com/fr/design/standard/notification/notification_dot.svg new file mode 100644 index 000000000..a78a45944 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/notification/notification_dot.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/notification/notification_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/notification/notification_normal.svg new file mode 100644 index 000000000..783aabaff --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/notification/notification_normal.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/paste/paste_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/paste/paste_disabled.svg new file mode 100644 index 000000000..778257c33 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/paste/paste_disabled.svg @@ -0,0 +1,10 @@ + + + icon_粘贴_disabled + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/paste/paste_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/paste/paste_normal.svg new file mode 100644 index 000000000..3a2f31404 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/paste/paste_normal.svg @@ -0,0 +1,11 @@ + + + icon_粘贴_normal + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/polysheet_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/polysheet_normal.svg new file mode 100644 index 000000000..85674ff03 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/polysheet_normal.svg @@ -0,0 +1,9 @@ + + + icon_sheet_normal + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/poparrow/pop_down_arrow.svg b/designer-base/src/main/resources/com/fr/design/standard/poparrow/pop_down_arrow.svg new file mode 100644 index 000000000..8e4260b37 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/poparrow/pop_down_arrow.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/poparrow/pop_up_arrow.svg b/designer-base/src/main/resources/com/fr/design/standard/poparrow/pop_up_arrow.svg new file mode 100644 index 000000000..5c797c1f0 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/poparrow/pop_up_arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/popup_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/popup_normal.svg new file mode 100644 index 000000000..81e81b0a1 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/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/sheet/pre_page_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/prepage/pre_page_disabled.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/sheet/pre_page_disabled.svg rename to designer-base/src/main/resources/com/fr/design/standard/prepage/pre_page_disabled.svg 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/standard/prepage/pre_page_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/sheet/pre_page_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/prepage/pre_page_normal.svg diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview/anab24.svg b/designer-base/src/main/resources/com/fr/design/standard/preview/anab24.svg new file mode 100644 index 000000000..ed3352bed --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview/anab24.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview/anas.svg b/designer-base/src/main/resources/com/fr/design/standard/preview/anas.svg new file mode 100644 index 000000000..f4d02b287 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview/anas.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview/developer_preview.svg b/designer-base/src/main/resources/com/fr/design/standard/preview/developer_preview.svg new file mode 100644 index 000000000..e47c0eb4f --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview/developer_preview.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview/developer_preview24.svg b/designer-base/src/main/resources/com/fr/design/standard/preview/developer_preview24.svg new file mode 100644 index 000000000..5da0955b1 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview/developer_preview24.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview/mobile.svg b/designer-base/src/main/resources/com/fr/design/standard/preview/mobile.svg new file mode 100644 index 000000000..788e303b2 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview/mobile.svg @@ -0,0 +1,19 @@ + + + icon_预览_移动端预览_小图 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview/mobileb24.svg b/designer-base/src/main/resources/com/fr/design/standard/preview/mobileb24.svg new file mode 100644 index 000000000..ce7cb4026 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview/mobileb24.svg @@ -0,0 +1,19 @@ + + + icon_预览_移动端预览_大图标 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview/pageb24.svg b/designer-base/src/main/resources/com/fr/design/standard/preview/pageb24.svg new file mode 100644 index 000000000..f9f144875 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview/pageb24.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview/pages.svg b/designer-base/src/main/resources/com/fr/design/standard/preview/pages.svg new file mode 100644 index 000000000..b9a18a706 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview/pages.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview/run24.svg b/designer-base/src/main/resources/com/fr/design/standard/preview/run24.svg new file mode 100644 index 000000000..f9f144875 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview/run24.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview/runs.svg b/designer-base/src/main/resources/com/fr/design/standard/preview/runs.svg new file mode 100644 index 000000000..b9a18a706 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview/runs.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview/writeb24.svg b/designer-base/src/main/resources/com/fr/design/standard/preview/writeb24.svg new file mode 100644 index 000000000..ecf74889a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview/writeb24.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview/writes.svg b/designer-base/src/main/resources/com/fr/design/standard/preview/writes.svg new file mode 100644 index 000000000..e8f936824 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview/writes.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/preview_down_icon_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/preview_down_icon_normal.svg new file mode 100644 index 000000000..da4dd8c30 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/preview_down_icon_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/previewdateset/preview_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/previewdateset/preview_disabled.svg new file mode 100644 index 000000000..6f2c4afa1 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/previewdateset/preview_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/standard/previewdateset/preview_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/previewdateset/preview_normal.svg new file mode 100644 index 000000000..0412b5e10 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/previewdateset/preview_normal.svg @@ -0,0 +1,7 @@ + + + icon_预览_normal + + + + 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/standard/propertiestab/authorityedit_disabled.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_disabled.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/authorityedit_disabled.svg 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/standard/propertiestab/authorityedit_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/authorityedit_normal.svg 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/standard/propertiestab/authorityedit_selected.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/authorityedit_selected.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/authorityedit_selected.svg 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/standard/propertiestab/cellattr_disabled.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_disabled.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/cellattr_disabled.svg 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/standard/propertiestab/cellattr_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/cellattr_normal.svg 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/standard/propertiestab/cellattr_selected.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellattr_selected.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/cellattr_selected.svg 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/standard/propertiestab/cellelement_disabled.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_disabled.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/cellelement_disabled.svg 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/standard/propertiestab/cellelement_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/cellelement_normal.svg 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/standard/propertiestab/cellelement_selected.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/cellelement_selected.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/cellelement_selected.svg 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/standard/propertiestab/conditionattr_disabled.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_disabled.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/conditionattr_disabled.svg 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/standard/propertiestab/conditionattr_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/conditionattr_normal.svg 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/standard/propertiestab/conditionattr_selected.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/conditionattr_selected.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/conditionattr_selected.svg 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/standard/propertiestab/configuredroles_disabled.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_disabled.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/configuredroles_disabled.svg 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/standard/propertiestab/configuredroles_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/configuredroles_normal.svg 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/standard/propertiestab/configuredroles_selected.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/configuredroles_selected.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/configuredroles_selected.svg 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/standard/propertiestab/floatelement_disabled.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/floatelement_disabled.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/floatelement_disabled.svg 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/standard/propertiestab/floatelement_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/floatelement_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/floatelement_normal.svg 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/standard/propertiestab/floatelement_selected.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/floatelement_selected.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/floatelement_selected.svg 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/standard/propertiestab/hyperlink_disabled.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/hyperlink_disabled.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/hyperlink_disabled.svg 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/standard/propertiestab/hyperlink_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/hyperlink_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/hyperlink_normal.svg 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/standard/propertiestab/hyperlink_selected.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/hyperlink_selected.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/hyperlink_selected.svg 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/standard/propertiestab/widgetlib_disabled.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetlib_disabled.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/widgetlib_disabled.svg 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/standard/propertiestab/widgetlib_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetlib_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/widgetlib_normal.svg 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/standard/propertiestab/widgetlib_selected.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetlib_selected.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/widgetlib_selected.svg 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/standard/propertiestab/widgetsettings_disabled.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetsettings_disabled.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/widgetsettings_disabled.svg 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/standard/propertiestab/widgetsettings_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetsettings_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/widgetsettings_normal.svg 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/standard/propertiestab/widgetsettings_selected.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/buttonicon/propertiestab/widgetsettings_selected.svg rename to designer-base/src/main/resources/com/fr/design/standard/propertiestab/widgetsettings_selected.svg diff --git a/designer-base/src/main/resources/com/fr/design/standard/redo/redo_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/redo/redo_disabled.svg new file mode 100644 index 000000000..ae600230c --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/redo/redo_disabled.svg @@ -0,0 +1,7 @@ + + + icon_重做_disabled + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/redo/redo_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/redo/redo_normal.svg new file mode 100644 index 000000000..8c26e8925 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/redo/redo_normal.svg @@ -0,0 +1,7 @@ + + + icon_重做_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/refresh/refresh_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/refresh_normal.svg similarity index 100% rename from designer-base/src/main/resources/com/fr/design/standard/refresh/refresh_normal.svg rename to designer-base/src/main/resources/com/fr/design/standard/refresh_normal.svg diff --git a/designer-base/src/main/resources/com/fr/design/standard/remove/remove_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/remove/remove_disabled.svg new file mode 100644 index 000000000..b57f9a853 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/remove/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/standard/remove/remove_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/remove/remove_normal.svg new file mode 100644 index 000000000..b09268f45 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/remove/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/standard/remove_red_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/remove_red_normal.svg new file mode 100644 index 000000000..74ff5ab38 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/remove_red_normal.svg @@ -0,0 +1,7 @@ + + + icon_关闭_red + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/removefile/remove_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/removefile/remove_disabled.svg new file mode 100644 index 000000000..1245fbd4e --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/removefile/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/standard/removefile/remove_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/removefile/remove_normal.svg new file mode 100644 index 000000000..69a3011fa --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/removefile/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/standard/rename/rename_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/rename/rename_disabled.svg new file mode 100644 index 000000000..953e12eaa --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/rename/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/standard/rename/rename_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/rename/rename_normal.svg new file mode 100644 index 000000000..a2c287789 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/rename/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/standard/richtext/richtext_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/richtext/richtext_disabled.svg new file mode 100644 index 000000000..916c43303 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/richtext/richtext_disabled.svg @@ -0,0 +1,7 @@ + + + icon_富文本_disabled + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/richtext/richtext_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/richtext/richtext_normal.svg new file mode 100644 index 000000000..3665dd01e --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/richtext/richtext_normal.svg @@ -0,0 +1,7 @@ + + + icon_富文本_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/save/save_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/save/save_disabled.svg new file mode 100644 index 000000000..99087a805 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/save/save_disabled.svg @@ -0,0 +1,12 @@ + + + icon_保存_disabled + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/save/save_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/save/save_normal.svg new file mode 100644 index 000000000..f1caf5d1e --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/save/save_normal.svg @@ -0,0 +1,12 @@ + + + icon_保存_normal + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/search_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/search_normal.svg new file mode 100644 index 000000000..673548dfa --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/search_normal.svg @@ -0,0 +1,7 @@ + + + icon_搜索_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/server_database_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/server_database_normal.svg new file mode 100644 index 000000000..50a509fcb --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/server_database_normal.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/smallsearch_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/smallsearch_normal.svg new file mode 100644 index 000000000..efe176cea --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/smallsearch_normal.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/store_procedure_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/store_procedure_normal.svg new file mode 100644 index 000000000..55393d59a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/store_procedure_normal.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/subreport/sub_report_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/subreport/sub_report_disabled.svg new file mode 100644 index 000000000..14ee3f16c --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/subreport/sub_report_disabled.svg @@ -0,0 +1,12 @@ + + + icon_子报表_disabled + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/subreport/sub_report_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/subreport/sub_report_normal.svg new file mode 100644 index 000000000..d06985a52 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/subreport/sub_report_normal.svg @@ -0,0 +1,10 @@ + + + icon_子报表_normal + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/system/add.svg b/designer-base/src/main/resources/com/fr/design/standard/system/add_normal.svg old mode 100755 new mode 100644 similarity index 100% rename from designer-base/src/main/resources/com/fr/design/standard/system/add.svg rename to designer-base/src/main/resources/com/fr/design/standard/system/add_normal.svg diff --git a/designer-base/src/main/resources/com/fr/design/standard/system/cpt.svg b/designer-base/src/main/resources/com/fr/design/standard/system/cpt_normal.svg old mode 100755 new mode 100644 similarity index 100% rename from designer-base/src/main/resources/com/fr/design/standard/system/cpt.svg rename to designer-base/src/main/resources/com/fr/design/standard/system/cpt_normal.svg diff --git a/designer-base/src/main/resources/com/fr/design/standard/system/error_tips.svg b/designer-base/src/main/resources/com/fr/design/standard/system/error_tips_normal.svg old mode 100755 new mode 100644 similarity index 100% rename from designer-base/src/main/resources/com/fr/design/standard/system/error_tips.svg rename to designer-base/src/main/resources/com/fr/design/standard/system/error_tips_normal.svg diff --git a/designer-base/src/main/resources/com/fr/design/standard/template_theme_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/template_theme_normal.svg new file mode 100644 index 000000000..c9e90de47 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/template_theme_normal.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/text/text_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/text/text_disabled.svg new file mode 100644 index 000000000..a25d12a70 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/text/text_disabled.svg @@ -0,0 +1,7 @@ + + + icon_普通文本_disabled + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/text/text_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/text/text_normal.svg new file mode 100644 index 000000000..bf3b0c687 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/text/text_normal.svg @@ -0,0 +1,7 @@ + + + icon_普通文本_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/tree_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/tree_normal.svg new file mode 100644 index 000000000..cc965888e --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/tree_normal.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/triangle.arrow/down_hover.svg b/designer-base/src/main/resources/com/fr/design/standard/triangle.arrow/down_hover.svg new file mode 100644 index 000000000..b89e82635 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/triangle.arrow/down_hover.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/triangle.arrow/down_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/triangle.arrow/down_normal.svg new file mode 100644 index 000000000..597fe8c9c --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/triangle.arrow/down_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/triangle.arrow/up_hover.svg b/designer-base/src/main/resources/com/fr/design/standard/triangle.arrow/up_hover.svg new file mode 100644 index 000000000..9ddff6971 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/triangle.arrow/up_hover.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/triangle.arrow/up_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/triangle.arrow/up_normal.svg new file mode 100644 index 000000000..cfd49c95d --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/triangle.arrow/up_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/uimode/edit_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/uimode/edit_normal.svg new file mode 100644 index 000000000..591c5e146 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/uimode/edit_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/uimode/edit_pressed.svg b/designer-base/src/main/resources/com/fr/design/standard/uimode/edit_pressed.svg new file mode 100644 index 000000000..c2b325255 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/uimode/edit_pressed.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/uimode/hide_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/uimode/hide_normal.svg new file mode 100644 index 000000000..aa140c6e2 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/uimode/hide_normal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/uimode/hide_pressed.svg b/designer-base/src/main/resources/com/fr/design/standard/uimode/hide_pressed.svg new file mode 100644 index 000000000..6d7175023 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/uimode/hide_pressed.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/uimode/view_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/uimode/view_normal.svg new file mode 100644 index 000000000..8a44f2805 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/uimode/view_normal.svg @@ -0,0 +1,7 @@ + + + icon 显示 + + + + \ No newline at end of file diff --git a/designer-base/src/main/resources/com/fr/design/standard/underline/underline_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/underline/underline_normal.svg new file mode 100644 index 000000000..51a6fd783 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/underline/underline_normal.svg @@ -0,0 +1,7 @@ + + + icon_文本工具_下划线_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/underline/underline_selected.svg b/designer-base/src/main/resources/com/fr/design/standard/underline/underline_selected.svg new file mode 100644 index 000000000..ccaafc40a --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/underline/underline_selected.svg @@ -0,0 +1,7 @@ + + + icon_文本工具_下划线_selected + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/undo/undo_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/undo/undo_disabled.svg new file mode 100644 index 000000000..24c5cd7c9 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/undo/undo_disabled.svg @@ -0,0 +1,7 @@ + + + icon_撤销_disabled + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/undo/undo_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/undo/undo_normal.svg new file mode 100644 index 000000000..d36032371 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/undo/undo_normal.svg @@ -0,0 +1,7 @@ + + + icon_撤销_normal + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/unmerge/unmerge_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/unmerge/unmerge_disabled.svg new file mode 100644 index 000000000..bb9f7a22f --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/unmerge/unmerge_disabled.svg @@ -0,0 +1,10 @@ + + + icon_拆分单元格_disabled + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/unmerge/unmerge_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/unmerge/unmerge_normal.svg new file mode 100644 index 000000000..3af2c0ff3 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/unmerge/unmerge_normal.svg @@ -0,0 +1,8 @@ + + + icon_拆分单元格_normal + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/vcslist/vcs_list_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/vcslist/vcs_list_disabled.svg new file mode 100644 index 000000000..b88ee0998 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/vcslist/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/standard/vcslist/vcs_list_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/vcslist/vcs_list_normal.svg new file mode 100644 index 000000000..ebfca4389 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/vcslist/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/standard/viewfolder/view_folder_disabled.svg b/designer-base/src/main/resources/com/fr/design/standard/viewfolder/view_folder_disabled.svg new file mode 100644 index 000000000..376d372d4 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/viewfolder/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/standard/viewfolder/view_folder_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/viewfolder/view_folder_normal.svg new file mode 100644 index 000000000..42ae6cbd3 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/viewfolder/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/standard/warning.svg b/designer-base/src/main/resources/com/fr/design/standard/warning.svg new file mode 100644 index 000000000..8b5d47014 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/warning.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/standard/worksheet_normal.svg b/designer-base/src/main/resources/com/fr/design/standard/worksheet_normal.svg new file mode 100644 index 000000000..dcf4e572c --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/standard/worksheet_normal.svg @@ -0,0 +1,10 @@ + + + icon_sheet_page_normal + + + + + + + \ No newline at end of file diff --git a/designer-base/src/test/java/com/fr/design/data/BasicTableDataUtilsTest.java b/designer-base/src/test/java/com/fr/design/data/BasicTableDataUtilsTest.java index 7391924ac..a5721a36a 100644 --- a/designer-base/src/test/java/com/fr/design/data/BasicTableDataUtilsTest.java +++ b/designer-base/src/test/java/com/fr/design/data/BasicTableDataUtilsTest.java @@ -50,19 +50,19 @@ public class BasicTableDataUtilsTest extends TestCase { TableDataSource source = EasyMock.mock(TableDataSource.class); TableData tableData = EasyMock.mock(TableData.class); EasyMock.expect(source.getTableData("ds1")).andReturn(tableData).anyTimes(); - EasyMock.expect(source.getTableData("test-ds1")).andReturn(tableData).anyTimes(); - EasyMock.expect(source.getTableData("test-ds11")).andReturn(null).anyTimes(); + EasyMock.expect(source.getTableData("test_ds1")).andReturn(tableData).anyTimes(); + EasyMock.expect(source.getTableData("test_ds11")).andReturn(null).anyTimes(); EasyMock.replay(source, tableData); - Assert.assertEquals("test-ds1", BasicTableDataUtils.getTableDataName(true, source, "ds1", "test", false)); - Assert.assertEquals("test-ds11", BasicTableDataUtils.getTableDataName(false, source, "ds1", "test", false)); + Assert.assertEquals("test_ds1", BasicTableDataUtils.getTableDataName(true, source, "ds1", "test", false)); + Assert.assertEquals("test_ds11", BasicTableDataUtils.getTableDataName(false, source, "ds1", "test", false)); source = EasyMock.mock(TableDataSource.class); EasyMock.expect(source.getTableData("ds1")).andReturn(null).anyTimes(); - EasyMock.expect(source.getTableData("test-ds1")).andReturn(null).anyTimes(); + EasyMock.expect(source.getTableData("test_ds1")).andReturn(null).anyTimes(); EasyMock.replay(source); - Assert.assertEquals("test-ds1", BasicTableDataUtils.getTableDataName(true, source, "ds1", "test", false)); + Assert.assertEquals("test_ds1", BasicTableDataUtils.getTableDataName(true, source, "ds1", "test", false)); Assert.assertEquals("ds1", BasicTableDataUtils.getTableDataName(false, source, "ds1", "test", false)); - Assert.assertEquals("test-ds1", BasicTableDataUtils.getTableDataName(false, source, "ds1", "test", true)); + Assert.assertEquals("test_ds1", BasicTableDataUtils.getTableDataName(false, source, "ds1", "test", true)); } diff --git a/designer-base/src/test/java/com/fr/design/data/DesignTableDataManagerTest.java b/designer-base/src/test/java/com/fr/design/data/DesignTableDataManagerTest.java index 9a5ce7b8c..1a23555f6 100644 --- a/designer-base/src/test/java/com/fr/design/data/DesignTableDataManagerTest.java +++ b/designer-base/src/test/java/com/fr/design/data/DesignTableDataManagerTest.java @@ -23,7 +23,7 @@ import java.util.HashMap; import java.util.Map; @RunWith(PowerMockRunner.class) -@PrepareForTest({TableDataFactory.class, StoreProcedure.class, TableDataConfig.class, ProcedureConfig.class}) +@PrepareForTest({TableDataFactory.class, StoreProcedure.class, TableDataConfig.class, ProcedureConfig.class, TemplateTableDataWrapper.class}) @SuppressStaticInitializationFor({"com.fr.design.data.tabledata.wrapper.TableDataFactory"}) public class DesignTableDataManagerTest { diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java b/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java index 31718fda8..f014efed0 100644 --- a/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java +++ b/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java @@ -14,8 +14,8 @@ import com.fr.design.style.background.image.ImageFileChooser; import com.fr.design.style.background.image.ImagePreviewPane; import com.fr.design.utils.ImageUtils; import com.fr.design.utils.gui.GUICoreUtils; -import com.fr.general.GeneralContext; -import com.fr.general.IOUtils; +import com.fr.general.locale.image.LocaleImageFactory; +import com.fr.general.locale.image.LocaleImageMark; import com.fr.stable.Constants; import com.fr.stable.CoreGraphHelper; import com.fr.stable.StringUtils; @@ -26,7 +26,6 @@ import javax.swing.JFileChooser; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.SwingWorker; -import java.io.File; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; @@ -35,6 +34,7 @@ import java.awt.GridLayout; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.io.File; /** * Created by mengao on 2017/11/23. @@ -61,10 +61,11 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { private Image emptyDataImage = DEFAULT_EMPTY_DATA_IMAGE; private SwingWorker imageWorker; + private static final String EMPTY_DATA_IMAGE_PATH = "/com/fr/design/images/emptydata.png"; static { - DEFAULT_EMPTY_DATA_IMAGE = GeneralContext.isChineseEnv() ? IOUtils.readImage("com/fr/design/images/zh_emptydata.png") - : IOUtils.readImage("com/fr/design/images/us_emptydata.png"); + LocaleImageMark localeImageMark = LocaleImageFactory.getOrCreateLocaleMark(EMPTY_DATA_IMAGE_PATH); + DEFAULT_EMPTY_DATA_IMAGE = localeImageMark.getValue(); } @Override diff --git a/designer-chart/src/main/resources/com/fr/design/images/us_emptydata.png b/designer-chart/src/main/resources/com/fr/design/images/en_us_emptydata.png similarity index 100% rename from designer-chart/src/main/resources/com/fr/design/images/us_emptydata.png rename to designer-chart/src/main/resources/com/fr/design/images/en_us_emptydata.png diff --git a/designer-chart/src/main/resources/com/fr/design/images/zh_emptydata.png b/designer-chart/src/main/resources/com/fr/design/images/zh_cn_emptydata.png similarity index 100% rename from designer-chart/src/main/resources/com/fr/design/images/zh_emptydata.png rename to designer-chart/src/main/resources/com/fr/design/images/zh_cn_emptydata.png diff --git a/designer-chart/src/main/resources/com/fr/design/images/zh_tw_emptydata.png b/designer-chart/src/main/resources/com/fr/design/images/zh_tw_emptydata.png new file mode 100644 index 000000000..738fa685a Binary files /dev/null and b/designer-chart/src/main/resources/com/fr/design/images/zh_tw_emptydata.png differ 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 b71def807..3d58ca1aa 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 @@ -15,7 +15,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("/com/fr/design/images/m_edit/copy"); + this.setSmallIcon("/com/fr/design/standard/copy/copy"); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, DEFAULT_MODIFIER)); setUpdateBehavior(new CopyableEnable()); this.setEnabled(!DesignModeContext.isBanCopyAndCut()); 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 7e1329b93..0a6338935 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 @@ -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("/com/fr/design/images/m_edit/cut"); + this.setSmallIcon("/com/fr/design/standard/cut/cut"); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER)); this.setUpdateBehavior(new CutableEnable()); this.setEnabled(!DesignModeContext.isBanCopyAndCut()); 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 00e229e68..e45d89155 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 @@ -15,7 +15,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("/com/fr/design/images/m_edit/paste"); + this.setSmallIcon("/com/fr/design/standard/paste/paste"); this.setUpdateBehavior(new PasteEnable()); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, DEFAULT_MODIFIER)); } diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/XNumberEditor.java b/designer-form/src/main/java/com/fr/design/designer/creator/XNumberEditor.java index 15cd30c6f..8861d6fcb 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/XNumberEditor.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/XNumberEditor.java @@ -6,7 +6,9 @@ package com.fr.design.designer.creator; import com.fr.base.BaseUtils; import com.fr.base.ScreenResolution; import com.fr.base.Style; +import com.fr.design.designer.properties.mobile.NumberEditorMobilePropertyUI; import com.fr.design.form.util.XCreatorConstants; +import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.mainframe.widget.editors.InChangeBooleanEditor; import com.fr.design.mainframe.widget.editors.SpinnerMaxNumberEditor; import com.fr.design.mainframe.widget.editors.SpinnerMinNumberEditor; @@ -91,15 +93,19 @@ public class XNumberEditor extends XWrapperedFieldEditor { } } - @Override + @Override protected JComponent initEditor() { setBorder(FIELDBORDER); return this; } - @Override - protected String getIconName() { - return "number_field_16.png"; - } + @Override + protected String getIconName() { + return "number_field_16.png"; + } + @Override + public WidgetPropertyUIProvider[] getWidgetPropertyUIProviders() { + return new WidgetPropertyUIProvider[]{new NumberEditorMobilePropertyUI(this)}; + } } diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/XPassword.java b/designer-form/src/main/java/com/fr/design/designer/creator/XPassword.java index 4194e4be0..29de6c9d0 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/XPassword.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/XPassword.java @@ -3,7 +3,9 @@ */ package com.fr.design.designer.creator; +import com.fr.design.designer.properties.mobile.PasswordMobilePropertyUI; import com.fr.design.form.util.XCreatorConstants; +import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.gui.ibutton.UIPasswordField; import com.fr.design.mainframe.widget.editors.RegexEditor; import com.fr.design.mainframe.widget.editors.WidgetValueEditor; @@ -68,4 +70,8 @@ public class XPassword extends XWrapperedFieldEditor { (CRPropertyDescriptor[]) ArrayUtils.addAll(sup, new CRPropertyDescriptor[]{regex, waterMark}); } + @Override + public WidgetPropertyUIProvider[] getWidgetPropertyUIProviders() { + return new WidgetPropertyUIProvider[]{new PasswordMobilePropertyUI(this)}; + } } diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/XTextArea.java b/designer-form/src/main/java/com/fr/design/designer/creator/XTextArea.java index 845fe43d9..88d0391ce 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/XTextArea.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/XTextArea.java @@ -6,7 +6,9 @@ package com.fr.design.designer.creator; import com.fr.base.BaseUtils; import com.fr.base.ScreenResolution; import com.fr.base.Style; +import com.fr.design.designer.properties.mobile.TextAreaMobilePropertyUI; import com.fr.design.form.util.XCreatorConstants; +import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.mainframe.widget.editors.RegexEditor; import com.fr.design.mainframe.widget.editors.WidgetValueEditor; import com.fr.design.mainframe.widget.renderer.RegexCellRencerer; @@ -25,8 +27,9 @@ import java.beans.IntrospectionException; /** * @author richer * @since 6.5.3 + * Created on 2016/3/29 */ -public class XTextArea extends XFieldEditor { +public class XTextArea extends XWrapperedFieldEditor { public XTextArea(TextArea widget, Dimension initSize) { super(widget, initSize); @@ -81,4 +84,10 @@ public class XTextArea extends XFieldEditor { protected String getIconName() { return "text_area_16.png"; } + + @Override + public WidgetPropertyUIProvider[] getWidgetPropertyUIProviders() { + return new WidgetPropertyUIProvider[]{new TextAreaMobilePropertyUI(this)}; + } + } diff --git a/designer-form/src/main/java/com/fr/design/designer/properties/mobile/NumberEditorMobilePropertyUI.java b/designer-form/src/main/java/com/fr/design/designer/properties/mobile/NumberEditorMobilePropertyUI.java new file mode 100644 index 000000000..67a8569f7 --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/designer/properties/mobile/NumberEditorMobilePropertyUI.java @@ -0,0 +1,37 @@ +package com.fr.design.designer.properties.mobile; + +import com.fr.design.designer.creator.XCreator; +import com.fr.design.dialog.BasicPane; +import com.fr.design.fun.impl.AbstractWidgetPropertyUIProvider; +import com.fr.design.gui.itable.AbstractPropertyTable; +import com.fr.design.widget.ui.designer.mobile.NumberEditorMobileDefinePane; + +/** + * 数字控件属性面板注册 + * + * @author Coral.Chen + * @since 11.0 + * Created on 2023/3/30 + */ +public class NumberEditorMobilePropertyUI extends AbstractWidgetPropertyUIProvider { + private XCreator xCreator; + + public NumberEditorMobilePropertyUI(XCreator xCreator) { + this.xCreator = xCreator; + } + + @Override + public AbstractPropertyTable createWidgetAttrTable() { + return null; + } + + @Override + public BasicPane createWidgetAttrPane() { + return new NumberEditorMobileDefinePane(xCreator); + } + + @Override + public String tableTitle() { + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Mobile_Attr"); + } +} \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/designer/properties/mobile/PasswordMobilePropertyUI.java b/designer-form/src/main/java/com/fr/design/designer/properties/mobile/PasswordMobilePropertyUI.java new file mode 100644 index 000000000..2c3b3b227 --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/designer/properties/mobile/PasswordMobilePropertyUI.java @@ -0,0 +1,37 @@ +package com.fr.design.designer.properties.mobile; + +import com.fr.design.designer.creator.XCreator; +import com.fr.design.dialog.BasicPane; +import com.fr.design.fun.impl.AbstractWidgetPropertyUIProvider; +import com.fr.design.gui.itable.AbstractPropertyTable; +import com.fr.design.widget.ui.designer.mobile.PasswordMobileDefinePane; + +/** + * 密码控件移动端属性注册 + * + * @author Coral.Chen + * @since 11.0 + * Created on 2023/3/30 + */ +public class PasswordMobilePropertyUI extends AbstractWidgetPropertyUIProvider { + private XCreator xCreator; + + public PasswordMobilePropertyUI(XCreator xCreator) { + this.xCreator = xCreator; + } + + @Override + public AbstractPropertyTable createWidgetAttrTable() { + return null; + } + + @Override + public BasicPane createWidgetAttrPane() { + return new PasswordMobileDefinePane(xCreator); + } + + @Override + public String tableTitle() { + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Mobile_Attr"); + } +} \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/designer/properties/mobile/TextAreaMobilePropertyUI.java b/designer-form/src/main/java/com/fr/design/designer/properties/mobile/TextAreaMobilePropertyUI.java new file mode 100644 index 000000000..1c24e06bc --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/designer/properties/mobile/TextAreaMobilePropertyUI.java @@ -0,0 +1,37 @@ +package com.fr.design.designer.properties.mobile; + +import com.fr.design.designer.creator.XCreator; +import com.fr.design.dialog.BasicPane; +import com.fr.design.fun.impl.AbstractWidgetPropertyUIProvider; +import com.fr.design.gui.itable.AbstractPropertyTable; +import com.fr.design.widget.ui.designer.mobile.TextAreaAdvancedDefinePane; + +/** + * 文本域控件移动端属性 + * + * @author Coral.Chen + * @since 11.0 + * Created on 2023/3/29 + */ +public class TextAreaMobilePropertyUI extends AbstractWidgetPropertyUIProvider { + private XCreator xCreator; + + public TextAreaMobilePropertyUI(XCreator xCreator) { + this.xCreator = xCreator; + } + + @Override + public AbstractPropertyTable createWidgetAttrTable() { + return null; + } + + @Override + public BasicPane createWidgetAttrPane() { + return new TextAreaAdvancedDefinePane(xCreator); + } + + @Override + public String tableTitle() { + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Mobile_Attr"); + } +} \ 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 4e9c45ce4..97488e7d8 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 @@ -1,11 +1,11 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; import com.fr.base.PaperSize; import com.fr.base.Parameter; import com.fr.base.Releasable; import com.fr.base.extension.FileExtension; import com.fr.base.iofile.attr.ExtendSharableAttrMark; +import com.fr.base.svg.IconUtils; import com.fr.base.theme.FineColorSynchronizer; import com.fr.base.theme.FormTheme; import com.fr.base.theme.TemplateTheme; @@ -839,7 +839,7 @@ public class JForm extends JTemplate implements BaseJForm menuItems = new ArrayList(); PreviewProvider[] previewProviders = supportPreview(); for (final PreviewProvider provider : previewProviders) { - UIMenuItem item = new UIMenuItem(provider.nameForPopupItem(), BaseUtils.readIcon(provider.iconPathForPopupItem())); + UIMenuItem item = new UIMenuItem(provider.nameForPopupItem(), IconUtils.readIcon(provider.iconPathForPopupItem())); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -1067,7 +1067,7 @@ public class JForm extends JTemplate implements BaseJForm { wParameterLayout.setParamsFireStopEdit(fireAfterEditor.isSelected()); JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); jTemplate.needAddTemplateIdAttr(useParamsTemplate.isSelected()); - wParameterLayout.setBackground((Background) background.getValue()); if (extraPaneList.isEmpty()) { - background.setValue(wParameterLayout.getBackground()); + wParameterLayout.setBackground((Background) background.getValue()); } else { for (BasicBeanPane pane : extraPaneList) { - pane.populateBean(wParameterLayout); + pane.updateBean(wParameterLayout); } } //设置参数模板面板的高度 diff --git a/designer-form/src/main/java/com/fr/design/preview/DeveloperPreview.java b/designer-form/src/main/java/com/fr/design/preview/DeveloperPreview.java index 260ba183d..4afacee78 100644 --- a/designer-form/src/main/java/com/fr/design/preview/DeveloperPreview.java +++ b/designer-form/src/main/java/com/fr/design/preview/DeveloperPreview.java @@ -28,12 +28,12 @@ public class DeveloperPreview extends AbstractPreviewProvider { @Override public String iconPathForPopupItem() { - return "com/fr/design/form/images/developer_preview.png"; + return "/com/fr/design/standard/preview/developer_preview.svg"; } @Override public String iconPathForLarge() { - return "com/fr/design/form/images/developer_preview24.png"; + return "/com/fr/design/standard/preview/developer_preview24.svg"; } @Override diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/BaseTextEditorMobileDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/BaseTextEditorMobileDefinePane.java new file mode 100644 index 000000000..57faab6a7 --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/BaseTextEditorMobileDefinePane.java @@ -0,0 +1,94 @@ +package com.fr.design.widget.ui.designer.mobile; + +import com.fr.design.designer.creator.XCreator; +import com.fr.design.foldablepane.UIExpandablePane; +import com.fr.design.gui.frpane.AttributeChangeListener; +import com.fr.design.i18n.Toolkit; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.FormDesigner; +import com.fr.design.widget.ui.designer.mobile.component.MobileTextEditSettingPane; +import com.fr.form.ui.TextEditor; + +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.FlowLayout; + +/** + *

文本类组件移动端高级属性的定义面板,基础扩展可以直接继承此面板 + *

往内部添加其他配置 + * + * @author Coral.Chen + * @since 11.0 + * Created on 2023/3/30 + */ +public class BaseTextEditorMobileDefinePane extends MobileWidgetDefinePane { + + private XCreator xCreator; + protected MobileTextEditSettingPane textSettingPane; + + public BaseTextEditorMobileDefinePane(XCreator xCreator) { + this.xCreator = xCreator; + } + + @Override + public void initPropertyGroups(Object source) { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + JPanel container = FRGUIPaneFactory.createVerticalFlowLayout_Pane(true, FlowLayout.LEADING, 0, 5); + addPropertyPanesToContainer(container); + this.add(new UIExpandablePane(Toolkit.i18nText("Fine-Design_Report_Advanced"), 280, 20, container), BorderLayout.NORTH); + this.repaint(); + } + + /** + * 添加其他属性面板 + * + * @param container 展开容器 + */ + protected void addPropertyPanesToContainer(JPanel container) { + initSettingPane(container); + } + + /** + * 初始化文本类基础面板 + * + * @param container + */ + protected void initSettingPane(JPanel container) { + textSettingPane = new MobileTextEditSettingPane(); + container.add(textSettingPane); + } + + @Override + public void populate(FormDesigner designer) { + TextEditor textEditor = (TextEditor) xCreator.toData(); + textSettingPane.populateBean(textEditor.getMobileTextEditAttr()); + this.bindListeners2Widgets(); + } + + protected void bindListeners2Widgets() { + reInitAllListeners(); + AttributeChangeListener changeListener = new AttributeChangeListener() { + @Override + public void attributeChange() { + update(); + } + }; + this.addAttributeChangeListener(changeListener); + } + + private void reInitAllListeners() { + initListener(this); + } + + @Override + public void update() { + TextEditor textEditor = (TextEditor) xCreator.toData(); + textSettingPane.updateBean(textEditor.getMobileTextEditAttr()); + DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); + } + + public XCreator getxCreator() { + return xCreator; + } +} \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/NumberEditorMobileDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/NumberEditorMobileDefinePane.java new file mode 100644 index 000000000..75c6dbefc --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/NumberEditorMobileDefinePane.java @@ -0,0 +1,33 @@ +package com.fr.design.widget.ui.designer.mobile; + +import com.fr.design.designer.creator.XCreator; +import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.FormDesigner; +import com.fr.form.ui.NumberEditor; + +/** + * 数字控件 + * + * @author Coral.Chen + * @since 11.0 + * Created on 2023/3/30 + */ +public class NumberEditorMobileDefinePane extends BaseTextEditorMobileDefinePane { + public NumberEditorMobileDefinePane(XCreator xCreator) { + super(xCreator); + } + + @Override + public void populate(FormDesigner designer) { + NumberEditor numberEditor = (NumberEditor) getxCreator().toData(); + textSettingPane.populateBean(numberEditor.getMobileTextEditAttr()); + this.bindListeners2Widgets(); + } + + @Override + public void update() { + NumberEditor numberEditor = (NumberEditor) getxCreator().toData(); + textSettingPane.updateBean(numberEditor.getMobileTextEditAttr()); + DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); + } +} \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/PasswordMobileDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/PasswordMobileDefinePane.java new file mode 100644 index 000000000..68c878b45 --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/PasswordMobileDefinePane.java @@ -0,0 +1,25 @@ +package com.fr.design.widget.ui.designer.mobile; + +import com.fr.design.designer.creator.XCreator; +import com.fr.design.widget.ui.designer.mobile.component.MobilePasswordEditSettingPane; + +import javax.swing.JPanel; + +/** + * 密码控件移动端高级属性 + * + * @author Coral.Chen + * @since 11.0 + * Created on 2023/3/30 + */ +public class PasswordMobileDefinePane extends BaseTextEditorMobileDefinePane { + public PasswordMobileDefinePane(XCreator xCreator) { + super(xCreator); + } + + @Override + protected void initSettingPane(JPanel container) { + textSettingPane = new MobilePasswordEditSettingPane(); + container.add(textSettingPane); + } +} \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/ScanCodeMobileDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/ScanCodeMobileDefinePane.java index a9876b7a3..bb785c27d 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/ScanCodeMobileDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/ScanCodeMobileDefinePane.java @@ -1,61 +1,50 @@ package com.fr.design.widget.ui.designer.mobile; -import com.fr.base.mobile.MobileScanCodeAttr; import com.fr.design.designer.creator.XCreator; -import com.fr.design.foldablepane.UIExpandablePane; -import com.fr.design.gui.frpane.AttributeChangeListener; -import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.FormDesigner; +import com.fr.design.widget.ui.designer.mobile.component.MobileTextEditSettingPane; import com.fr.design.widget.ui.designer.mobile.component.MobileTextFieldInputSettingPane; import com.fr.form.ui.TextEditor; -import java.awt.BorderLayout; +import javax.swing.JPanel; -public class ScanCodeMobileDefinePane extends MobileWidgetDefinePane { +/** + * 输入方式: + * + * @author hades + * @since 11.0 + * Created on 2018/11/27 + */ +public class ScanCodeMobileDefinePane extends BaseTextEditorMobileDefinePane { - private XCreator xCreator; - private MobileTextFieldInputSettingPane settingPane; + private MobileTextFieldInputSettingPane inputSettingPane; public ScanCodeMobileDefinePane(XCreator xCreator) { - this.xCreator = xCreator; + super(xCreator); } @Override - public void initPropertyGroups(Object source) { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - settingPane = new MobileTextFieldInputSettingPane(); - this.add(new UIExpandablePane(Toolkit.i18nText("Fine-Design_Report_Advanced"), 280, 20, settingPane), BorderLayout.NORTH); - this.repaint(); + protected void initSettingPane(JPanel container) { + inputSettingPane = new MobileTextFieldInputSettingPane(); + textSettingPane = new MobileTextEditSettingPane(); + container.add(inputSettingPane); + container.add(textSettingPane); } - private void bindListeners2Widgets() { - reInitAllListeners(); - AttributeChangeListener changeListener = new AttributeChangeListener() { - @Override - public void attributeChange() { - update(); - } - }; - this.addAttributeChangeListener(changeListener); - } - - private void reInitAllListeners() { - initListener(this); - } @Override public void populate(FormDesigner designer) { - MobileScanCodeAttr mobileScanCodeAttr = ((TextEditor) xCreator.toData()).getMobileScanCodeAttr(); - settingPane.populateBean(mobileScanCodeAttr); + super.populate(designer); + TextEditor textEditor = (TextEditor) getxCreator().toData(); + inputSettingPane.populateBean(textEditor.getMobileScanCodeAttr()); this.bindListeners2Widgets(); } - @Override public void update() { - MobileScanCodeAttr mobileScanCodeAttr = ((TextEditor) xCreator.toData()).getMobileScanCodeAttr(); - settingPane.updateBean(mobileScanCodeAttr); + super.update(); + TextEditor textEditor = (TextEditor) getxCreator().toData(); + inputSettingPane.updateBean(textEditor.getMobileScanCodeAttr()); DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); } diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TextAreaAdvancedDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TextAreaAdvancedDefinePane.java new file mode 100644 index 000000000..ccc3194f9 --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TextAreaAdvancedDefinePane.java @@ -0,0 +1,25 @@ +package com.fr.design.widget.ui.designer.mobile; + +import com.fr.design.designer.creator.XCreator; +import com.fr.design.widget.ui.designer.mobile.component.MobileTextAreaSettingPane; + +import javax.swing.JPanel; + +/** + * 文本域控件 + * + * @author Coral.Chen + * @since 11.0 + * Created on 2023/3/29 + */ +public class TextAreaAdvancedDefinePane extends BaseTextEditorMobileDefinePane { + public TextAreaAdvancedDefinePane(XCreator xCreator) { + super(xCreator); + } + + @Override + protected void initSettingPane(JPanel container) { + textSettingPane = new MobileTextAreaSettingPane(); + container.add(textSettingPane); + } +} \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobilePasswordEditSettingPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobilePasswordEditSettingPane.java new file mode 100644 index 000000000..db475dc56 --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobilePasswordEditSettingPane.java @@ -0,0 +1,43 @@ +package com.fr.design.widget.ui.designer.mobile.component; + +import com.fr.base.mobile.MobileTextEditAttr; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.i18n.Toolkit; + +import java.awt.BorderLayout; + +/** + * 密码控件编辑属性设置面板 + * + * @author Coral.Chen + * @since 11.0 + * Created on 2023/3/30 + */ +public class MobilePasswordEditSettingPane extends MobileTextEditSettingPane { + // 显示字数统计 + private UICheckBox showPassword; + + public MobilePasswordEditSettingPane() { + super(); + showPassword = new UICheckBox(Toolkit.i18nText("Fine-Design_Mobile_Show_Password"), false); + this.add(showPassword, BorderLayout.NORTH); + } + + @Override + protected boolean getClearDefaultState() { + return true; + } + + @Override + public void populateBean(MobileTextEditAttr ob) { + super.populateBean(ob); + // 要兼容处理一下,为null 的话赋默认值,默认开启 + this.showPassword.setSelected(ob.isShowPassword() == null || ob.isShowPassword()); + } + + @Override + public void updateBean(MobileTextEditAttr ob) { + super.updateBean(ob); + ob.setShowPassword(showPassword.isSelected()); + } +} \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTextAreaSettingPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTextAreaSettingPane.java new file mode 100644 index 000000000..d660508e6 --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTextAreaSettingPane.java @@ -0,0 +1,38 @@ +package com.fr.design.widget.ui.designer.mobile.component; + +import com.fr.base.mobile.MobileTextEditAttr; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.i18n.Toolkit; + +import java.awt.BorderLayout; + +/** + * 文本域控件 + * + * @author Coral.Chen + * @since 11.0 + * Created on 2023/3/29 + */ +public class MobileTextAreaSettingPane extends MobileTextEditSettingPane { + // 显示字数统计 + private UICheckBox showWordCount; + + public MobileTextAreaSettingPane() { + super(); + showWordCount = new UICheckBox(Toolkit.i18nText("Fine-Design_Mobile_Show_Word_Count"), false); + this.add(showWordCount, BorderLayout.NORTH); + } + + @Override + public void populateBean(MobileTextEditAttr ob) { + super.populateBean(ob); + // 要兼容处理一下,为null 的话赋默认值,默认不开启 + this.showWordCount.setSelected(ob.isShowWordCount() != null && ob.isShowWordCount()); + } + + @Override + public void updateBean(MobileTextEditAttr ob) { + super.updateBean(ob); + ob.setShowWordCount(showWordCount.isSelected()); + } +} \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTextEditSettingPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTextEditSettingPane.java new file mode 100644 index 000000000..56d340e4d --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTextEditSettingPane.java @@ -0,0 +1,59 @@ +package com.fr.design.widget.ui.designer.mobile.component; + +import com.fr.base.mobile.MobileTextEditAttr; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.i18n.Toolkit; +import com.fr.design.layout.VerticalFlowLayout; + +import java.awt.BorderLayout; +import java.awt.FlowLayout; + +/** + * 文本类基础设置 + * + * @author Coral.Chen + * @since 11.0 + * Created on 2023/3/29 + */ +public class MobileTextEditSettingPane extends BasicBeanPane { + // 允许一键清空 + protected UICheckBox allowOneClickClear; + + public MobileTextEditSettingPane() { + initLayout(); + allowOneClickClear = new UICheckBox(Toolkit.i18nText("Fine-Design_Mobile_Allow_One_Click_Clear"), getClearDefaultState()); + this.add(allowOneClickClear, BorderLayout.NORTH); + } + + protected boolean getClearDefaultState() { + return false; + } + + protected void initLayout() { + VerticalFlowLayout verticalFlowLayout = new VerticalFlowLayout(FlowLayout.LEADING, 0, 5); + verticalFlowLayout.setAlignLeft(true); + this.setLayout(verticalFlowLayout); + } + + @Override + public void populateBean(MobileTextEditAttr ob) { + allowOneClickClear.setSelected(ob.isAllowOneClickClear() != null && ob.isAllowOneClickClear()); + } + + @Override + public MobileTextEditAttr updateBean() { + // do nothing + return null; + } + + @Override + public void updateBean(MobileTextEditAttr ob) { + ob.setAllowOneClickClear(allowOneClickClear.isSelected()); + } + + @Override + protected String title4PopupWindow() { + return null; + } +} \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTextFieldInputSettingPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTextFieldInputSettingPane.java index 75d924e53..faaec45bc 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTextFieldInputSettingPane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTextFieldInputSettingPane.java @@ -2,12 +2,17 @@ package com.fr.design.widget.ui.designer.mobile.component; import com.fr.base.mobile.MobileScanCodeAttr; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.constants.LayoutConstants; import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; -import java.awt.BorderLayout; -import java.awt.FlowLayout; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; + import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.Component; /** * @author hades @@ -22,13 +27,24 @@ public class MobileTextFieldInputSettingPane extends BasicBeanPane 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"); + insertFloatMenu.setIconPath("/com/fr/design/standard/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/FormatBrushAction.java b/designer-realize/src/main/java/com/fr/design/mainframe/FormatBrushAction.java index 9ec053bd0..d0ad19129 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 @@ -34,7 +34,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("/com/fr/design/images/m_edit/formatBrush"); + this.setSmallIcon("/com/fr/design/standard/formatbrush/formatBrush", false); 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 5c316ef72..f9c086a50 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 @@ -1,11 +1,11 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; import com.fr.base.DynamicUnitList; import com.fr.base.Parameter; import com.fr.base.ScreenResolution; import com.fr.base.TRL; import com.fr.base.extension.FileExtension; +import com.fr.base.svg.IconUtils; import com.fr.base.theme.FineColorSynchronizer; import com.fr.base.theme.ReportTheme; import com.fr.base.theme.TemplateTheme; @@ -982,7 +982,7 @@ public class JWorkBook extends JTemplate { List menuItems = new ArrayList(); PreviewProvider[] previewProviders = supportPreview(); for (final PreviewProvider provider : previewProviders) { - UIMenuItem item = new UIMenuItem(provider.nameForPopupItem(), BaseUtils.readIcon(provider.iconPathForPopupItem())); + UIMenuItem item = new UIMenuItem(provider.nameForPopupItem(), IconUtils.readIcon(provider.iconPathForPopupItem())); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -1089,7 +1089,7 @@ public class JWorkBook extends JTemplate { public Icon getPreviewLargeIcon() { PreviewProvider provider = getPreviewType(); String iconPath = provider.iconPathForLarge(); - return BaseUtils.readIcon(iconPath); + return IconUtils.readIcon(iconPath); } /** @@ -1152,7 +1152,7 @@ public class JWorkBook extends JTemplate { @Override public Icon getIcon() { - return BaseUtils.readIcon("/com/fr/design/images/buttonicon/newcpts.png"); + return IconUtils.readIcon("/com/fr/design/images/buttonicon/newcpts.png"); } /** 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 f2bf5e585..c8c1b7172 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 @@ -62,14 +62,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 = 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 Icon ADD_WORK_SHEET = IconUtils.readIcon("/com/fr/design/standard/add_worksheet"); + protected static final Icon ADD_POLY_SHEET = IconUtils.readIcon("/com/fr/design/standard/add_polysheet"); + private static final Icon WORK_SHEET_ICON = IconUtils.readIcon("/com/fr/design/standard/worksheet"); + private static final Icon POLY_SHEET_ICON = IconUtils.readIcon("/com/fr/design/standard/polysheet"); + private static final Icon LEFT_ICON = IconUtils.readIcon("/com/fr/design/standard/prepage/pre_page"); + private static final Icon RIGHT_ICON = IconUtils.readIcon("/com/fr/design/standard/nextpage"); + private static final Icon DISABLED_LEFT_ICON = IconUtils.readIcon("/com/fr/design/standard/prepage/pre_page_disabled.svg"); + private static final Icon DISABLED_RIGHT_ICON = IconUtils.readIcon("/com/fr/design/standard/nextpage/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/component/AlphaFinePane.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java index 06c9ff0c1..55580d304 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.alphafine.component; +import com.fr.base.svg.IconUtils; import com.fr.design.actions.help.alphafine.AlphaFineContext; import com.fr.design.actions.help.alphafine.AlphaFineListener; import com.fr.design.constants.UIConstants; @@ -30,7 +31,7 @@ public class AlphaFinePane extends BasicPane { setPreferredSize(new Dimension(24, 24)); setLayout(new BorderLayout()); UIButton refreshButton = new UIButton(); - refreshButton.setIcon(IOUtils.readIcon(("/com/fr/design/mainframe/alphafine/images/smallsearch.png"))); + refreshButton.setIcon(IconUtils.readIcon(("/com/fr/design/standard/smallsearch"))); refreshButton.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine_Learn_More_About")); refreshButton.set4ToolbarButton(); refreshButton.setRolloverEnabled(false); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/ProductNewsImagePanel.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/ProductNewsImagePanel.java index b46d094d8..1baa092ce 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/ProductNewsImagePanel.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/ProductNewsImagePanel.java @@ -2,19 +2,18 @@ package com.fr.design.mainframe.alphafine.component; import com.fr.base.GraphHelper; import com.fr.base.svg.SVGLoader; -import com.fr.base.svg.SystemScaleUtils; import com.fr.design.DesignerEnvManager; import com.fr.design.mainframe.alphafine.model.ProductNews; -import com.fr.design.utils.SvgPaintUtils; +import com.fr.design.utils.SvgDrawUtils; + +import javax.swing.JPanel; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; - import java.awt.RenderingHints; import java.util.Set; -import javax.swing.JPanel; /** * @author hades @@ -58,9 +57,9 @@ public class ProductNewsImagePanel extends JPanel { } Set readSet = DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().getReadSet(); if (!readSet.contains(productNews.getId())) { - SvgPaintUtils.beforePaint(g2); + SvgDrawUtils.beforeDraw(g2); g2.drawImage(NEW_TIP_IMAGE, 0, 0, this); - SvgPaintUtils.afterPaint(g2); + SvgDrawUtils.afterDraw(g2); } g2.setColor(BACKGROUND_COLOR); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/question/QuestionPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/question/QuestionPane.java index b2c186a9e..f96622d5c 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/question/QuestionPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/question/QuestionPane.java @@ -4,13 +4,14 @@ import com.fr.base.svg.SVGLoader; import com.fr.base.svg.SystemScaleUtils; import com.fr.design.DesignerEnvManager; import com.fr.design.mainframe.alphafine.AlphaFineUtil; -import com.fr.design.utils.SvgPaintUtils; +import com.fr.design.utils.SvgDrawUtils; + +import javax.swing.JPanel; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; -import javax.swing.JPanel; /** * @author hades @@ -33,7 +34,7 @@ public class QuestionPane extends JPanel { protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; - SvgPaintUtils.beforePaint(g2); + SvgDrawUtils.beforeDraw(g2); // 宽高保持 int width = SystemScaleUtils.isJreHiDPIEnabled() ? (int) (getWidth() * SVGLoader.SYSTEM_SCALE) : getWidth(); int height = SystemScaleUtils.isJreHiDPIEnabled() ? (int) (getHeight() * SVGLoader.SYSTEM_SCALE) : getHeight(); @@ -47,7 +48,7 @@ public class QuestionPane extends JPanel { int imageWidth = QUESTION_IMAGE.getWidth(this); int imageHeight = QUESTION_IMAGE.getHeight(this); g2.drawImage(QUESTION_IMAGE, (width - imageWidth) / 2 - 2, (height - imageHeight) / 2 - 2,this); - SvgPaintUtils.afterPaint(g2); + SvgDrawUtils.afterDraw(g2); } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java index e4cfd442d..9879ac53a 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java @@ -48,7 +48,6 @@ import java.awt.CardLayout; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; -import java.awt.FlowLayout; import java.awt.Insets; import java.awt.Rectangle; import java.awt.event.ItemEvent; @@ -169,7 +168,7 @@ public class CellOtherSetPane extends AbstractCellAttrPane { groupsPane = new CellDesensitizationGroupsPane(this); - JPanel contentPane = FRGUIPaneFactory.createVerticalFlowLayout_F_Pane(true, VerticalFlowLayout.TOP, 0, 0, true); + JPanel contentPane = FRGUIPaneFactory.createVerticalFlowLayout_F_Pane(true, VerticalFlowLayout.TOP, 0, 10, true); contentPane.add(scopePane); contentPane.add(hyperlink); contentPane.add(groupsPane); @@ -195,10 +194,10 @@ public class CellOtherSetPane extends AbstractCellAttrPane { } JPanel head = new JPanel(); - head.setLayout(new FlowLayout(FlowLayout.LEFT)); - head.add(scopeLabel); - head.add(exportButton); - head.add(previewAndExportButton); + head.setLayout(new BorderLayout()); + head.add(scopeLabel, BorderLayout.NORTH); + head.add(exportButton, BorderLayout.CENTER); + head.add(previewAndExportButton, BorderLayout.SOUTH); return head; } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/guide/entry/GuideEntryPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/guide/entry/GuideEntryPane.java index 9353570a3..5d4044aef 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/guide/entry/GuideEntryPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/guide/entry/GuideEntryPane.java @@ -1,12 +1,12 @@ package com.fr.design.mainframe.guide.entry; +import com.fr.base.svg.IconUtils; import com.fr.design.constants.UIConstants; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.guide.collect.GuideCollector; import com.fr.design.mainframe.guide.ui.GuideManageDialog; -import com.fr.general.IOUtils; import javax.swing.event.AncestorEvent; import javax.swing.event.AncestorListener; @@ -35,7 +35,7 @@ public class GuideEntryPane extends BasicPane { setPreferredSize(new Dimension(24, 24)); setLayout(new BorderLayout()); button = new UIButton(); - button.setIcon(IOUtils.readIcon("/com/fr/design/mainframe/guide/guide.png")); + button.setIcon(IconUtils.readIcon("com/fr/design/standard/guide")); button.setToolTipText(Toolkit.i18nText(Toolkit.i18nText("Fine-Design_Guide_Entry_Name"))); button.set4ToolbarButton(); button.setRolloverEnabled(false); diff --git a/designer-realize/src/main/java/com/fr/design/sort/celldscolumn/CellDSColumnSortGroupPane.java b/designer-realize/src/main/java/com/fr/design/sort/celldscolumn/CellDSColumnSortGroupPane.java index 788f1a57c..01c5eafc0 100644 --- a/designer-realize/src/main/java/com/fr/design/sort/celldscolumn/CellDSColumnSortGroupPane.java +++ b/designer-realize/src/main/java/com/fr/design/sort/celldscolumn/CellDSColumnSortGroupPane.java @@ -8,6 +8,8 @@ import com.fr.design.sort.common.AbstractSortItemPane; import com.fr.report.cell.cellattr.core.group.DSColumn; import com.fr.report.core.sort.sortexpression.SortExpression; +import java.util.Map; + public class CellDSColumnSortGroupPane extends AbstractSortGroupPane { DSColumn dsColumn; @@ -24,7 +26,8 @@ public class CellDSColumnSortGroupPane extends AbstractSortGroupPane { CellDSColumnSortItemPane cellDSColumnSortItemPane = new CellDSColumnSortItemPane(sortItemPaneWidth, sortItemPaneRightWidth); java.util.Map tableDataWrapperMap = DesignTableDataManager.getAllEditingDataSet(HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().getTarget()); - TableDataWrapper tableDataWrapper = tableDataWrapperMap.get(dsColumn.getDSName()); + Map allDataSetIncludingProcedure = DesignTableDataManager.getAllDataSetIncludingProcedure(tableDataWrapperMap); + TableDataWrapper tableDataWrapper = allDataSetIncludingProcedure.get(dsColumn.getDSName()); if (tableDataWrapper != null) { java.util.List columnNameList = tableDataWrapper.calculateColumnNameList(); String[] columnNames = new String[columnNameList.size()]; diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java index 5581449cf..4e0a60fde 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java @@ -1,21 +1,35 @@ package com.fr.design.widget.ui; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.designer.IntervalConstants; import com.fr.design.foldablepane.UIExpandablePane; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.form.ui.CheckBox; +import com.fr.general.GeneralContext; +import com.fr.plugin.observer.PluginEvent; +import com.fr.plugin.observer.PluginEventListener; -import javax.swing.*; -import java.awt.*; +import javax.swing.BorderFactory; +import javax.swing.JPanel; +import java.awt.Component; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; public class CheckBoxDefinePane extends AbstractDataModify { private UITextField text; + protected final List> extraPaneList = new ArrayList<>(); + protected JPanel extraPane; + protected static double F = TableLayout.FILL; + protected static double P = TableLayout.PREFERRED; public CheckBoxDefinePane() { this.iniComponents(); } @@ -23,14 +37,14 @@ public class CheckBoxDefinePane extends AbstractDataModify { private void iniComponents() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); text = new UITextField(); - double f = TableLayout.FILL; - double p = TableLayout.PREFERRED; + initExtraPane(); Component[][] components = new Component[][]{ new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Text")), text}, + new Component[]{extraPane, null}, }; - double[] rowSize = {p}; - double[] columnSize = {p, f}; - int[][] rowCount = {{1, 1}}; + double[] rowSize = {P,P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}, {1, 1}}; JPanel pane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W3, IntervalConstants.INTERVAL_L1); UIExpandablePane uiExpandablePane = new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Advanced"), 280, 24, pane); @@ -39,6 +53,51 @@ public class CheckBoxDefinePane extends AbstractDataModify { this.add(uiExpandablePane); } + protected void initExtraPane() { + initPluginListener(); + refreshExtraAdvancedPane(); + } + + protected void refreshExtraAdvancedPane() { + extraPaneList.clear(); + boolean containsExtraPane = false; + Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(CheckBox.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } + } + + protected void initPluginListener() { + GeneralContext.listenPluginRunningChanged(new PluginEventListener() { + @Override + public void on(PluginEvent event) { + refreshExtraAdvancedPane(); + } + }, pluginContext -> pluginContext.getRuntime().contain(WidgetAdvancedPaneProvider.XML_TAG)); + } + + /** + * 插入配置项面板 + * + * @param index 插入的位置 + * @param pane 配置项面板 + */ + protected void insertShortCut(int index, BasicBeanPane pane) { + int size = extraPaneList.size(); + index = Math.min(index, size); + extraPaneList.add(index, pane); + } + @Override protected String title4PopupWindow() { return "CheckBox"; @@ -47,12 +106,18 @@ public class CheckBoxDefinePane extends AbstractDataModify { @Override public void populateBean(CheckBox check) { text.setText(check.getText()); + for (BasicBeanPane pane : extraPaneList) { + pane.populateBean(check); + } } @Override public CheckBox updateBean() { CheckBox box = new CheckBox(); box.setText(text.getText()); + for (BasicBeanPane pane : extraPaneList) { + pane.updateBean(box); + } return box; } } diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java index cddcf991d..ea7a774a4 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java @@ -1,11 +1,19 @@ package com.fr.design.widget.ui; import java.awt.*; +import java.util.Set; import javax.swing.BorderFactory; import javax.swing.JPanel; +import javax.swing.SwingConstants; + +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.data.DataCreatorUI; +import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; @@ -43,21 +51,28 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane { protected AccessibleDictionaryEditor dictPane; @@ -33,6 +38,11 @@ public class ComboBoxDefinePane extends CustomWritableRepeatEditorPane return jPanel; } + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(ComboBox.class); + } + protected void populateSubCustomWritableRepeatEditorBean(ComboBox e) { this.dictPane.setValue(e.getDictionary()); } diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java index 879234ccf..270377d42 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java @@ -1,8 +1,11 @@ package com.fr.design.widget.ui; import com.fr.data.Dictionary; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.data.DataCreatorUI; import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; @@ -15,6 +18,7 @@ import com.fr.form.ui.ComboCheckBox; import javax.swing.*; import java.awt.*; +import java.util.Set; public class ComboCheckBoxDefinePane extends CustomWritableRepeatEditorPane { private ReturnTypePane returnTypePane; @@ -49,6 +53,11 @@ public class ComboCheckBoxDefinePane extends CustomWritableRepeatEditorPane { private UIButtonGroup returnTypeComboBox; @@ -53,10 +57,8 @@ public class DateEditorDefinePane extends DirectWriteEditorDefinePane(new String[] {com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Date") , com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_String")}); JPanel formatHead = createFormatHead(); - startDv = new DateValuePane(); endDv = new DateValuePane(); - double f = TableLayout.FILL; double p = TableLayout.PREFERRED; UILabel formatLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Format")); @@ -65,23 +67,28 @@ public class DateEditorDefinePane extends DirectWriteEditorDefinePane extends FieldEditorDefinePane { public UICheckBox directWriteCheckBox; @@ -25,9 +29,17 @@ public abstract class DirectWriteEditorDefinePane e contentPane.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 0)); directWriteCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Allow_Edit"), false); directWriteCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); - waterMarkDictPane = new WaterMarkDictPane(); - contentPane.add(waterMarkDictPane, BorderLayout.NORTH); + initExtraPane(); + Component[][] components = new Component[][]{ + new Component[]{waterMarkDictPane, null}, + new Component[]{extraPane, null}, + }; + double[] rowSize = {P, P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}, {1, 1}}; + JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_L2, IntervalConstants.INTERVAL_L1); + contentPane.add(panel, BorderLayout.NORTH); JPanel otherContentPane = this.setSecondContentPane(); if (otherContentPane != null) { contentPane.add(otherContentPane, BorderLayout.CENTER); @@ -35,8 +47,6 @@ public abstract class DirectWriteEditorDefinePane e return contentPane; } - - public JPanel setValidatePane(){ JPanel otherContentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel jPanel = GUICoreUtils.createFlowPane(new JComponent[]{directWriteCheckBox}, FlowLayout.LEFT, 0); diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/FieldEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/FieldEditorDefinePane.java index 07faec922..a9208c772 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/FieldEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/FieldEditorDefinePane.java @@ -1,18 +1,24 @@ package com.fr.design.widget.ui; import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.ErrorMsgTextFieldAdapter; import com.fr.design.beans.UITextFieldAdapter; import com.fr.design.constants.LayoutConstants; import com.fr.design.designer.IntervalConstants; import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.fun.TextFieldAdapterProvider; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.form.ui.FieldEditor; +import com.fr.general.GeneralContext; import com.fr.log.FineLoggerFactory; +import com.fr.plugin.observer.PluginEvent; +import com.fr.plugin.observer.PluginEventListener; import javax.swing.BorderFactory; import javax.swing.JPanel; @@ -20,6 +26,9 @@ import java.awt.BorderLayout; import java.awt.Component; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; public abstract class FieldEditorDefinePane extends AbstractDataModify { protected UICheckBox allowBlankCheckBox; @@ -27,6 +36,11 @@ public abstract class FieldEditorDefinePane extends Abstr protected ErrorMsgTextFieldAdapter errorMsgTextField; protected JPanel validatePane; + protected final List> extraPaneList = new ArrayList<>(); + protected JPanel extraPane; + + protected static double F = TableLayout.FILL; + protected static double P = TableLayout.PREFERRED; public FieldEditorDefinePane() { this.initComponents(); } @@ -60,11 +74,41 @@ public abstract class FieldEditorDefinePane extends Abstr } } + protected void initExtraPane() { + initPluginListener(); + refreshExtraAdvancedPane(); + } + + protected void refreshExtraAdvancedPane() { + // do nothing + } + + protected void refreshExtraAdvancedPane(Class cls) { + extraPaneList.clear(); + boolean containsExtraPane = false; + Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(cls)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } + } + @Override public void populateBean(T ob) { this.allowBlankCheckBox.setSelected(ob.isAllowBlank()); this.errorMsgTextField.setText(ob.getErrorMessage()); - + for (BasicBeanPane pane : extraPaneList) { + pane.populateBean(ob); + } populateSubFieldEditorBean(ob); } @@ -76,7 +120,9 @@ public abstract class FieldEditorDefinePane extends Abstr e.setAllowBlank(this.allowBlankCheckBox.isSelected()); e.setErrorMessage(this.errorMsgTextField.getText()); - + for (BasicBeanPane pane : extraPaneList) { + pane.updateBean(e); + } return e; } @@ -131,5 +177,26 @@ public abstract class FieldEditorDefinePane extends Abstr return null; } + /** + * 插入配置项面板 + * + * @param index 插入的位置 + * @param pane 配置项面板 + */ + protected void insertShortCut(int index, BasicBeanPane pane) { + int size = extraPaneList.size(); + index = Math.min(index, size); + extraPaneList.add(index, pane); + } + + protected void initPluginListener() { + GeneralContext.listenPluginRunningChanged(new PluginEventListener() { + @Override + public void on(PluginEvent event) { + refreshExtraAdvancedPane(); + } + }, pluginContext -> pluginContext.getRuntime().contain(WidgetAdvancedPaneProvider.XML_TAG)); + } + } diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/NumberEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/NumberEditorDefinePane.java index 278aa3745..8285abbf3 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/NumberEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/NumberEditorDefinePane.java @@ -1,11 +1,19 @@ package com.fr.design.widget.ui; import javax.swing.JPanel; +import javax.swing.SwingConstants; + +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayoutHelper; import com.fr.design.widget.component.NumberEditorValidatePane; import com.fr.form.ui.NumberEditor; - -import java.awt.BorderLayout; +import java.awt.Component; +import java.util.Set; public class NumberEditorDefinePane extends FieldEditorDefinePane { /** @@ -29,10 +37,24 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane protected JPanel setFirstContentPane() { JPanel content = FRGUIPaneFactory.createBorderLayout_S_Pane(); waterMarkDictPane = new WaterMarkDictPane(); - content.add(waterMarkDictPane, BorderLayout.CENTER); + initExtraPane(); + Component[][] components = new Component[][]{ + new Component[]{waterMarkDictPane, null}, + new Component[]{extraPane, null} + }; + double[] rowSize = {P, P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}, {1, 1}}; + final JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); + content.add(panel); return content; } + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(NumberEditor.class); + } + public JPanel setValidatePane() { numberEditorValidatePane = new NumberEditorValidatePane(); return numberEditorValidatePane; diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/PasswordDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/PasswordDefinePane.java index af0c98c34..c3119a65f 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/PasswordDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/PasswordDefinePane.java @@ -1,10 +1,16 @@ package com.fr.design.widget.ui; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.frpane.RegFieldPane; import com.fr.design.gui.frpane.RegPane; +import com.fr.design.layout.FRGUIPaneFactory; import com.fr.form.ui.Password; import com.fr.form.ui.TextEditor; +import java.util.Set; + public class PasswordDefinePane extends TextFieldEditorDefinePane { private static final long serialVersionUID = 4737910705071750562L; @@ -16,4 +22,9 @@ public class PasswordDefinePane extends TextFieldEditorDefinePane { protected RegFieldPane createRegPane() { return new RegFieldPane(RegPane.PASSWORD_REG_TYPE); } + + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(Password.class); + } } \ No newline at end of file diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/RadioGroupDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/RadioGroupDefinePane.java index 912e6c942..22f7a31d5 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/RadioGroupDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/RadioGroupDefinePane.java @@ -1,9 +1,21 @@ package com.fr.design.widget.ui; import javax.swing.JPanel; +import javax.swing.SwingConstants; + +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.data.DataCreatorUI; +import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayoutHelper; import com.fr.form.ui.RadioGroup; +import java.awt.Component; +import java.util.Set; + public class RadioGroupDefinePane extends FieldEditorDefinePane { private ButtonGroupDictPane buttonGroupDictPane; @@ -21,7 +33,23 @@ public class RadioGroupDefinePane extends FieldEditorDefinePane { @Override protected JPanel setFirstContentPane() { buttonGroupDictPane = new ButtonGroupDictPane(); - return buttonGroupDictPane; + initExtraPane(); + Component[][] components = new Component[][]{ + new Component[]{buttonGroupDictPane, null}, + new Component[]{extraPane, null} + }; + double[] rowSize = {P, P, P, P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; + final JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); + JPanel content = FRGUIPaneFactory.createBorderLayout_S_Pane(); + content.add(panel); + return content; + } + + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(RadioGroup.class); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/TextAreaDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/TextAreaDefinePane.java index de2fef022..00969b1e7 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/TextAreaDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/TextAreaDefinePane.java @@ -1,11 +1,18 @@ package com.fr.design.widget.ui; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.frpane.RegFieldPane; import com.fr.design.gui.frpane.RegPane; +import com.fr.design.layout.FRGUIPaneFactory; import com.fr.form.ui.TextArea; import com.fr.form.ui.TextEditor; +import java.util.Set; + + public class TextAreaDefinePane extends TextFieldEditorDefinePane { @Override @@ -16,4 +23,9 @@ public class TextAreaDefinePane extends TextFieldEditorDefinePane { protected RegFieldPane createRegPane() { return new RegFieldPane(RegPane.TEXTAREA_REG_TYPE); } + + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(TextArea.class); + } } \ No newline at end of file diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/TextFieldEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/TextFieldEditorDefinePane.java index 72e93e28c..abc7a382d 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/TextFieldEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/TextFieldEditorDefinePane.java @@ -1,18 +1,23 @@ package com.fr.design.widget.ui; import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.designer.IntervalConstants; import com.fr.design.fun.RegPaneProvider; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.frpane.RegFieldPane; import com.fr.design.gui.frpane.RegPane; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayoutHelper; import com.fr.form.ui.TextEditor; import com.fr.log.FineLoggerFactory; import com.fr.stable.StringUtils; import javax.swing.JPanel; -import java.awt.BorderLayout; +import java.awt.Component; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; +import java.util.Set; public class TextFieldEditorDefinePane extends FieldEditorDefinePane { protected RegFieldPane regPane; @@ -51,8 +56,17 @@ public class TextFieldEditorDefinePane extends FieldEditorDefinePane waterMarkDictPane.removeInputKeyListener(this); } }); + initExtraPane(); + Component[][] components = new Component[][]{ + new Component[]{waterMarkDictPane, null}, + new Component[]{extraPane, null} + }; + double[] rowSize = {P, P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}, {1, 1}}; + final JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); JPanel content = FRGUIPaneFactory.createBorderLayout_S_Pane(); - content.add(waterMarkDictPane, BorderLayout.CENTER); + content.add(panel); return content; } @@ -60,6 +74,10 @@ public class TextFieldEditorDefinePane extends FieldEditorDefinePane return regPane; } + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(TextEditor.class); + } protected RegFieldPane createRegPane() { RegPaneProvider provider = ExtraDesignClassManager.getInstance().getSingle(RegPaneProvider.XML_TAG); diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/TreeComboBoxEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/TreeComboBoxEditorDefinePane.java index ac436970f..54bf00a38 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/TreeComboBoxEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/TreeComboBoxEditorDefinePane.java @@ -1,12 +1,16 @@ package com.fr.design.widget.ui; import java.awt.*; +import java.util.Set; import javax.swing.BorderFactory; import javax.swing.JPanel; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.data.DataCreatorUI; import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itree.refreshabletree.TreeRootPane; import com.fr.design.layout.FRGUIPaneFactory; @@ -60,6 +64,11 @@ public class TreeComboBoxEditorDefinePane extends CustomWritableRepeatEditorPane return jPanel; } + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(TreeComboBoxEditor.class); + } + @Override protected String title4PopupWindow() { diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/TreeEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/TreeEditorDefinePane.java index 086ef8883..1abc355f9 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/TreeEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/TreeEditorDefinePane.java @@ -1,7 +1,10 @@ package com.fr.design.widget.ui; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.data.DataCreatorUI; import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itree.refreshabletree.TreeRootPane; @@ -14,6 +17,7 @@ import com.fr.form.ui.TreeEditor; import javax.swing.*; import java.awt.*; +import java.util.Set; /* @@ -65,11 +69,19 @@ public class TreeEditorDefinePane extends FieldEditorDefinePane { createTree.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); JPanel contentPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); JPanel contenter = FRGUIPaneFactory.createBorderLayout_S_Pane(); - + initExtraPane(); + double[] rowSize = {P, P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1},{1, 1}}; + Component[][] components = new Component[][]{ + new Component[]{createTree, null}, + new Component[]{extraPane, null}, + }; + JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_L2, IntervalConstants.INTERVAL_L1); contentPane.add(contenter,BorderLayout.NORTH); removeRepeatCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Remove_Repeat_Data"), false); removeRepeatCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); - contenter.add(createTree, BorderLayout.NORTH); + contenter.add(panel, BorderLayout.NORTH); contenter.add(removeRepeatCheckBox, BorderLayout.CENTER); JPanel otherContentPane = this.setThirdContentPane(); if (otherContentPane != null) { @@ -78,6 +90,11 @@ public class TreeEditorDefinePane extends FieldEditorDefinePane { return contentPane; } + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(TreeEditor.class); + } + protected JPanel setThirdContentPane() { JPanel content = FRGUIPaneFactory.createBorderLayout_L_Pane(); treeRootPane = new TreeRootPane(); 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 d90ceb055..7b974d871 100644 --- a/designer-realize/src/main/java/com/fr/start/MainDesigner.java +++ b/designer-realize/src/main/java/com/fr/start/MainDesigner.java @@ -306,7 +306,7 @@ public class MainDesigner extends BaseDesigner { private void createSaveButton() { - saveButton = new UIButton("/com/fr/design/images/buttonicon/save.png", true); + saveButton = new UIButton("/com/fr/design/standard/save/save", true); saveButton.setToolTipText(KeySetUtils.SAVE_TEMPLATE.getMenuKeySetName()); saveButton.set4ToolbarButton(); saveButton.addActionListener(new ActionListener() { @@ -323,7 +323,7 @@ public class MainDesigner extends BaseDesigner { private void createUndoButton() { - undo = new UIButton("/com/fr/design/images/buttonicon/undo.png", true); + undo = new UIButton("/com/fr/design/standard/undo/undo", true); undo.setToolTipText(KeySetUtils.UNDO.getMenuKeySetName()); undo.set4ToolbarButton(); undo.addActionListener(new ActionListener() { @@ -338,7 +338,7 @@ public class MainDesigner extends BaseDesigner { } private void createRedoButton() { - redo = new UIButton("/com/fr/design/images/buttonicon/redo.png", true); + redo = new UIButton("/com/fr/design/standard/redo/redo", true); redo.setToolTipText(KeySetUtils.REDO.getMenuKeySetName()); redo.set4ToolbarButton(); redo.addActionListener(new ActionListener() {