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 5647033ccd..130240aead 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 @@ -37,6 +37,13 @@ public class FileTreeIcon { public static final Icon FRM_FILE_IMAGE_ICON = BaseUtils.readIcon("/com/fr/design/images/gui/frm.png"); 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"); + public static final Icon MODERN_FRM_FILE_IMAGE_ICON = + BaseUtils.readIcon("/com/fr/design/images/gui/modern_style_frm_file_icon_16x16.png"); + public static final Icon MODERN_CHT_FILE_IMAGE_ICON = + BaseUtils.readIcon("/com/fr/design/images/gui/modern_style_cht_file_icon_16x16.png"); + public static final LockIcon FOLDER_LOCK_ICON = new LockIcon(BaseUtils.readImage("/com/fr/design/images/gui/fold.png")); public static final LockIcon FILE_LOCK_ICON = @@ -205,19 +212,19 @@ public class FileTreeIcon { if (isLocked) { return FileTreeIcon.CPT_FILE_LOCK_ICON; } else { - return FileTreeIcon.CPT_FILE_IMAGE_ICON; + return FileTreeIcon.MODERN_CPT_FILE_IMAGE_ICON; } } else if (fileType == FRM_FILE) { //form frm if (isLocked) { return FileTreeIcon.FRM_FILE_LOCK_ICON; } else { - return FileTreeIcon.FRM_FILE_IMAGE_ICON; + return FileTreeIcon.MODERN_FRM_FILE_IMAGE_ICON; } } else if (fileType == CHT_FILE) { //chart cht if (isLocked) { return FileTreeIcon.CHT_FILE_LOCK_ICON; } else { - return FileTreeIcon.CHT_FILE_IMAGE_ICON; + return FileTreeIcon.MODERN_CHT_FILE_IMAGE_ICON; } } else { if (isLocked) { diff --git a/designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java b/designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java index b201abc559..ecbfe9011d 100644 --- a/designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java +++ b/designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java @@ -1,6 +1,7 @@ package com.fr.design.remote.ui; import com.fr.design.border.UITitledBorder; +import com.fr.design.constants.LayoutConstants; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icontainer.UIScrollPane; @@ -14,7 +15,6 @@ import com.fr.design.remote.ui.list.AddedMemberListCellRender; import com.fr.design.remote.ui.list.AddingMemberList; import com.fr.design.remote.ui.list.AddingMemberListCellRender; import com.fr.design.remote.ui.list.MemberListSelectedChangeListener; -import com.fr.locale.InterProviderFactory; import com.fr.stable.StringUtils; import com.fr.third.guava.collect.ImmutableList; import com.fr.workspace.WorkContext; @@ -95,12 +95,15 @@ public class UserManagerPane extends BasicPane { * 输入框绑定事件 */ private KeyAdapter keyFieldKeyListener = new KeyAdapter() { + @Override - public void keyReleased(KeyEvent e) { + public void keyPressed(KeyEvent e) { // 判断按下的键是否是回车键 - // 对话框回车键绑定的是对话框的确定按钮,因此按确定没有办法搜索 + // 对话框回车键绑定的是对话框的确定按钮 if (e.getKeyCode() == KeyEvent.VK_ENTER) { searchAddingMembers(keyWord); + // has been processed + e.consume(); } } }; @@ -191,15 +194,16 @@ public class UserManagerPane extends BasicPane { public UserManagerPane() { - this.setBorder(BorderFactory.createEmptyBorder()); + this.setBorder(BorderFactory.createEmptyBorder(0,4,0,4)); this.setLayout(new BorderLayout()); this.add( - TableLayoutHelper.createTableLayoutPane( + TableLayoutHelper.createCommonTableLayoutPane( new Component[][]{ new Component[]{createLeftPanel(), createRightPanel()} }, new double[]{TableLayout.FILL}, - new double[]{TableLayout.FILL, TableLayout.FILL} + new double[]{TableLayout.FILL, TableLayout.FILL}, + LayoutConstants.VGAP_LARGE ), BorderLayout.CENTER); } @@ -351,8 +355,14 @@ public class UserManagerPane extends BasicPane { addingMembers.clear(); String username = WorkContext.getConnector().currentUser(); synchronized (addingMembers) { - addingMembers.addAll(WorkContext.getCurrent().get(DecisionOperator.class).getMembers(username, keyword)); + Collection more = WorkContext.getCurrent().get(DecisionOperator.class).getMembers(username, keyword); pageNum = 1; + if (!more.isEmpty()) { + addingMembers.addAll(more); + if (more.size() >= DEFAULT_NUM_EACH_PAGE) { + addingMembers.add(RemoteDesignMember.DEFAULT_MEMBER); + } + } } return addingMembers; } @@ -372,12 +382,14 @@ public class UserManagerPane extends BasicPane { protected List doInBackground() { String username = WorkContext.getConnector().currentUser(); synchronized (addingMembers) { + addingMembers.remove(RemoteDesignMember.DEFAULT_MEMBER); Collection more = WorkContext.getCurrent().get(DecisionOperator.class).getMembers(username, keyword, pageNum + 1, count); if (!more.isEmpty()) { pageNum += 1; + addingMembers.addAll(more); + addingMembers.add(RemoteDesignMember.DEFAULT_MEMBER); } - addingMembers.addAll(more); } return addingMembers; } diff --git a/designer-base/src/main/java/com/fr/design/remote/ui/list/AddedMemberListCellRender.java b/designer-base/src/main/java/com/fr/design/remote/ui/list/AddedMemberListCellRender.java index 84ee0d27f0..f29378f626 100644 --- a/designer-base/src/main/java/com/fr/design/remote/ui/list/AddedMemberListCellRender.java +++ b/designer-base/src/main/java/com/fr/design/remote/ui/list/AddedMemberListCellRender.java @@ -23,9 +23,9 @@ public class AddedMemberListCellRender extends JPanel implements ListCellRendere this.setLayout(new FlowLayout(FlowLayout.LEFT)); label = new UILabel(); - label.setIcon(BaseUtils.readIcon("com/fr/design/remote/images/icon_Member_normal@1x.png")); - label.setPreferredSize(new Dimension(260, 20)); + label.setPreferredSize(new Dimension(264, 20)); this.setPreferredSize(new Dimension(this.getPreferredSize().width, 25)); + label.setIcon(BaseUtils.readIcon("com/fr/design/remote/images/icon_Member_normal@1x.png")); this.add(label); this.add(new IconButton()); diff --git a/designer-base/src/main/java/com/fr/design/remote/ui/list/AddingMemberListCellRender.java b/designer-base/src/main/java/com/fr/design/remote/ui/list/AddingMemberListCellRender.java index cccdf7d3f0..b2ca3f812e 100644 --- a/designer-base/src/main/java/com/fr/design/remote/ui/list/AddingMemberListCellRender.java +++ b/designer-base/src/main/java/com/fr/design/remote/ui/list/AddingMemberListCellRender.java @@ -9,6 +9,7 @@ import javax.swing.BorderFactory; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.ListCellRenderer; +import javax.swing.SwingConstants; import java.awt.Component; import java.awt.Dimension; import java.awt.FlowLayout; @@ -43,10 +44,12 @@ public class AddingMemberListCellRender extends JPanel implements ListCellRender if (member.equals(RemoteDesignMember.DEFAULT_MEMBER)) { this.setLabelText(member.getUsername()); check.setVisible(false); + fixLoadingDisplay(); } else { this.setLabelText(member.getRealName() + "(" + member.getUsername() + ")"); check.setVisible(true); check.setSelected(member.isSelected()); + recoveryCommonDisplay(); } return this; } @@ -54,4 +57,14 @@ public class AddingMemberListCellRender extends JPanel implements ListCellRender private void setLabelText(String name) { label.setText(name); } + + private void fixLoadingDisplay() { + label.setIcon(null); + label.setHorizontalAlignment(SwingConstants.CENTER); + } + + private void recoveryCommonDisplay() { + label.setIcon(BaseUtils.readIcon("com/fr/design/remote/images/icon_Member_normal@1x.png")); + label.setHorizontalAlignment(SwingConstants.LEFT); + } } diff --git a/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java b/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java index a49779ea4b..15a46f8b51 100644 --- a/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java +++ b/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java @@ -1,5 +1,7 @@ package com.fr.env; +import com.fr.base.FRContext; +import com.fr.base.ServerConfig; import com.fr.design.DesignerEnvManager; import com.fr.design.beans.BasicBeanPane; import com.fr.design.border.UITitledBorder; @@ -9,10 +11,11 @@ import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ipasswordfield.UIPassWordField; import com.fr.design.gui.itextfield.UITextField; +import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.scrollruler.ModLineBorder; - +import com.fr.log.FineLoggerFactory; import com.fr.stable.StringUtils; import com.fr.third.guava.base.Strings; import com.fr.workspace.WorkContext; @@ -39,7 +42,6 @@ import java.awt.Component; import java.awt.Dialog; import java.awt.Dimension; import java.awt.FlowLayout; -import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; @@ -63,14 +65,14 @@ public class RemoteEnvPane extends BasicBeanPane { private JDialog dialog; private UILabel message = new UILabel(); - private UIButton okButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("OK")); - private UIButton cancelButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Cancel")); + private UIButton okButton = new UIButton(Toolkit.i18nText("Fine-Design_Report_OK")); + private UIButton cancelButton = new UIButton(Toolkit.i18nText("Fine-Design_Report_Cancel")); private UILabel uiLabel = new UILabel(); /** * 是否启用 https 勾选框 */ - private UICheckBox httpsCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Enable_Https")); + private UICheckBox httpsCheckbox = new UICheckBox(Toolkit.i18nText("FR-Designer_RemoteEnv_Enable_Https")); /** * 主机位置输入框 */ @@ -122,11 +124,11 @@ public class RemoteEnvPane extends BasicBeanPane { /** * https 密钥标签 */ - private UILabel certSecretKeyLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Https_Secret_Key")); + private UILabel certSecretKeyLabel = new UILabel(Toolkit.i18nText("FR-Designer_RemoteEnv_Https_Secret_Key")); /** * https证书路径标签 */ - private UILabel certPathLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Https_Cert_Path")); + private UILabel certPathLabel = new UILabel(Toolkit.i18nText("FR-Designer_RemoteEnv_Https_Cert_Path")); /** * https 证书路径输入框 */ @@ -193,6 +195,10 @@ public class RemoteEnvPane extends BasicBeanPane { fillIndividualField(); } }; + /** + * 测试链接对话框确定取消按钮面板 + */ + private JPanel dialogDownPane = new JPanel(); public RemoteEnvPane() { @@ -201,7 +207,7 @@ public class RemoteEnvPane extends BasicBeanPane { contentPanel.setBorder( BorderFactory.createCompoundBorder( new EmptyBorder(6, 0, 0, 0), - UITitledBorder.createBorderWithTitle(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Config"))) + UITitledBorder.createBorderWithTitle(Toolkit.i18nText("FR-Designer_RemoteEnv_Config"))) ); @@ -212,7 +218,7 @@ public class RemoteEnvPane extends BasicBeanPane { new EmptyBorder(15, 0, 0, 0), BorderFactory.createTitledBorder( new ModLineBorder(ModLineBorder.TOP), - com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Server") + Toolkit.i18nText("FR-Designer_RemoteEnv_Server") ) ) ); @@ -231,7 +237,7 @@ public class RemoteEnvPane extends BasicBeanPane { new EmptyBorder(15, 0, 0, 0), BorderFactory.createTitledBorder( new ModLineBorder(ModLineBorder.TOP), - com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Platform_Account") + Toolkit.i18nText("FR-Designer_RemoteEnv_Platform_Account") ) )); @@ -242,9 +248,9 @@ public class RemoteEnvPane extends BasicBeanPane { JPanel testPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); testPanel.setBorder(BorderFactory.createEmptyBorder()); testPanel.setPreferredSize(new Dimension(437, 20)); - UIButton testConnectionButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Test_Connection")); + UIButton testConnectionButton = new UIButton(Toolkit.i18nText("FR-Designer_RemoteEnv_Test_Connection")); - testConnectionButton.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Datasource-Test_Connection")); + testConnectionButton.setToolTipText(Toolkit.i18nText("Datasource-Test_Connection")); testConnectionButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ev) { @@ -317,19 +323,19 @@ public class RemoteEnvPane extends BasicBeanPane { // 主机名 - UILabel hostNameLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Host_IP")); + UILabel hostNameLabel = new UILabel(Toolkit.i18nText("FR-Designer_RemoteEnv_Host_IP")); hostNameLabel.setHorizontalAlignment(SwingConstants.RIGHT); // 端口 - UILabel portLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Port")); + UILabel portLabel = new UILabel(Toolkit.i18nText("FR-Designer_RemoteEnv_Port")); portLabel.setHorizontalAlignment(SwingConstants.RIGHT); // web应用 - UILabel webAppNameLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Web_Name")); + UILabel webAppNameLabel = new UILabel(Toolkit.i18nText("FR-Designer_RemoteEnv_Web_Name")); webAppNameLabel.setHorizontalAlignment(SwingConstants.RIGHT); // servlet - UILabel servletNameLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Servlet_Name")); + UILabel servletNameLabel = new UILabel(Toolkit.i18nText("FR-Designer_RemoteEnv_Servlet_Name")); servletNameLabel.setHorizontalAlignment(SwingConstants.RIGHT); // 主机位置 - UILabel remoteEnvURLLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_URL")); + UILabel remoteEnvURLLabel = new UILabel(Toolkit.i18nText("FR-Designer_RemoteEnv_URL")); remoteEnvURLLabel.setHorizontalAlignment(SwingConstants.RIGHT); enableSubDocListener(); @@ -353,7 +359,7 @@ public class RemoteEnvPane extends BasicBeanPane { JTextPane urlTipsPane = new JTextPane(); urlTipsPane.setEditable(false); - urlTipsPane.setText(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Server_Config_Tips")); + urlTipsPane.setText(Toolkit.i18nText("FR-Designer_RemoteEnv_Server_Config_Tips")); urlTipsPane.setBackground(urlPanel.getBackground()); urlTipsPane.setForeground(TIPS_FONT_COLOR); @@ -367,7 +373,7 @@ public class RemoteEnvPane extends BasicBeanPane { JTextPane httpsTipsPane = new JTextPane(); httpsTipsPane.setEditable(false); - httpsTipsPane.setText(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Https_Tips")); + httpsTipsPane.setText(Toolkit.i18nText("FR-Designer_RemoteEnv_Https_Tips")); httpsTipsPane.setBackground(configPanel.getBackground()); httpsTipsPane.setForeground(TIPS_FONT_COLOR); @@ -381,6 +387,16 @@ public class RemoteEnvPane extends BasicBeanPane { new double[]{PREFERRED, PREFERRED, PREFERRED, PREFERRED}, new double[]{FILL} )); + + setDefaultAppAndServlet(); + } + + /** + * 设置 app 和 servlet 默认值 + */ + private void setDefaultAppAndServlet() { + webAppNameInput.setText(FRContext.getCommonOperator().getAppName()); + servletNameInput.setText(ServerConfig.getInstance().getServletName()); } @@ -425,18 +441,18 @@ public class RemoteEnvPane extends BasicBeanPane { private void packAccountPanel(JPanel accountPanel) { // 用户名 - UILabel userNameLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Account_Username")); + UILabel userNameLabel = new UILabel(Toolkit.i18nText("FR-Designer_RemoteEnv_Account_Username")); userNameLabel.setHorizontalAlignment(SwingConstants.RIGHT); // 密码 - UILabel passwordLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_RemoteEnv_Account_Password")); + UILabel passwordLabel = new UILabel(Toolkit.i18nText("FR-Designer_RemoteEnv_Account_Password")); passwordLabel.setHorizontalAlignment(SwingConstants.RIGHT); //输入密码的时候检测下大写锁定 passwordInput.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { - if (Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)) { - passwordInput.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("CapsLock")); + if (java.awt.Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)) { + passwordInput.setToolTipText(Toolkit.i18nText("CapsLock")); } else { passwordInput.setToolTipText(null); } @@ -496,7 +512,7 @@ public class RemoteEnvPane extends BasicBeanPane { try { return WorkContext.getConnector().testConnection(connection); } catch (AuthException e) { - message.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Designer_Basic_Remote_Connect_Auth_Failed")); + message.setText(Toolkit.i18nText("Fine-Designer_Basic_Remote_Connect_Auth_Failed")); uiLabel.setIcon(UIManager.getIcon("OptionPane.errorIcon")); return null; } @@ -507,26 +523,33 @@ public class RemoteEnvPane extends BasicBeanPane { okButton.setEnabled(true); try { if (get()) { - message.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Designer_Basic_Remote_Connect_Successful")); + message.setText(Toolkit.i18nText("Fine-Designer_Basic_Remote_Connect_Successful")); uiLabel.setIcon(UIManager.getIcon("OptionPane.informationIcon")); } else { - message.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Designer_Basic_Remote_Connect_Failed")); + message.setText(Toolkit.i18nText("Fine-Designer_Basic_Remote_Connect_Failed")); uiLabel.setIcon(UIManager.getIcon("OptionPane.errorIcon")); + } } catch (InterruptedException | ExecutionException e) { - message.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Designer_Basic_Remote_Connect_Failed")); + FineLoggerFactory.getLogger().error(e, e.getMessage()); + message.setText(Toolkit.i18nText("Fine-Designer_Basic_Remote_Connect_Failed")); uiLabel.setIcon(UIManager.getIcon("OptionPane.errorIcon")); } + dialogDownPane.remove(cancelButton); + dialogDownPane.revalidate(); + dialogDownPane.repaint(); } }; worker.execute(); initMessageDialog(); okButton.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { dialog.dispose(); } }); cancelButton.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { dialog.dispose(); worker.cancel(true); @@ -534,6 +557,7 @@ public class RemoteEnvPane extends BasicBeanPane { }); dialog.addWindowListener(new WindowAdapter() { + @Override public void windowClosed(WindowEvent e) { worker.cancel(true); } @@ -544,27 +568,27 @@ public class RemoteEnvPane extends BasicBeanPane { } private void initMessageDialog() { - message.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Designer_Basic_Remote_Env_Try") + "..."); + message.setText(Toolkit.i18nText("Fine-Designer_Basic_Remote_Env_Try") + "..."); message.setBorder(BorderFactory.createEmptyBorder(8, 5, 0, 0)); okButton.setEnabled(false); - dialog = new JDialog((Dialog) SwingUtilities.getWindowAncestor(RemoteEnvPane.this), com.fr.design.i18n.Toolkit.i18nText("Datasource-Test_Connection"), true); + dialog = new JDialog((Dialog) SwingUtilities.getWindowAncestor(RemoteEnvPane.this), Toolkit.i18nText("Datasource-Test_Connection"), true); dialog.setSize(new Dimension(268, 118)); okButton.setEnabled(false); JPanel jp = new JPanel(); JPanel upPane = new JPanel(); - JPanel downPane = new JPanel(); + dialogDownPane = new JPanel(); uiLabel = new UILabel(UIManager.getIcon("OptionPane.informationIcon")); upPane.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10)); upPane.add(uiLabel); upPane.add(message); - downPane.setLayout(new FlowLayout(FlowLayout.CENTER, 6, 0)); - downPane.add(okButton); - downPane.add(cancelButton); + dialogDownPane.setLayout(new FlowLayout(FlowLayout.CENTER, 6, 0)); + dialogDownPane.add(okButton); + dialogDownPane.add(cancelButton); jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS)); jp.add(upPane); - jp.add(downPane); + jp.add(dialogDownPane); dialog.add(jp); dialog.setResizable(false); dialog.setLocationRelativeTo(SwingUtilities.getWindowAncestor(RemoteEnvPane.this)); 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 new file mode 100644 index 0000000000..a1e244a9bb Binary files /dev/null and b/designer-base/src/main/resources/com/fr/design/images/gui/modern_style_cht_file_icon_16x16.png 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 new file mode 100644 index 0000000000..15966d96d1 Binary files /dev/null and b/designer-base/src/main/resources/com/fr/design/images/gui/modern_style_cpt_file_icon_16x16.png 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 new file mode 100644 index 0000000000..6258f4baf4 Binary files /dev/null and b/designer-base/src/main/resources/com/fr/design/images/gui/modern_style_frm_file_icon_16x16.png differ