From d51f887e499385ac7b273492f163cf446d925ff5 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Fri, 16 Nov 2018 11:11:16 +0800 Subject: [PATCH 1/8] REPORT-10536 --- .../fr/design/fun/MessageObjectProvider.java | 26 +++++++++++++++++++ .../impl/AbstractMessageObjectProvider.java | 17 ++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 designer-base/src/main/java/com/fr/design/fun/MessageObjectProvider.java create mode 100644 designer-base/src/main/java/com/fr/design/fun/impl/AbstractMessageObjectProvider.java diff --git a/designer-base/src/main/java/com/fr/design/fun/MessageObjectProvider.java b/designer-base/src/main/java/com/fr/design/fun/MessageObjectProvider.java new file mode 100644 index 000000000..09f62aa57 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/fun/MessageObjectProvider.java @@ -0,0 +1,26 @@ +package com.fr.design.fun; + +import com.fr.json.JSONObject; +import com.fr.stable.fun.mark.Mutable; + +import java.util.Map; + +public interface MessageObjectProvider extends Mutable { + String MARK_STRING = "MessageObjectProvider"; + + int CURRENT_LEVEL = 1; + //消息类型 + int getMessageType(); + + /** + * 需要嵌入的组件内容 + * @return + */ + Map getValueEditorItems(); + + /** + * 实现发消息 + * @param messageJo + */ + void sendMessage(JSONObject messageJo); +} diff --git a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractMessageObjectProvider.java b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractMessageObjectProvider.java new file mode 100644 index 000000000..a926409d1 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractMessageObjectProvider.java @@ -0,0 +1,17 @@ +package com.fr.design.fun.impl; + +import com.fr.design.fun.MessageObjectProvider; +import com.fr.stable.fun.impl.AbstractProvider; +import com.fr.stable.fun.mark.API; + +@API(level = MessageObjectProvider.CURRENT_LEVEL) +public abstract class AbstractMessageObjectProvider extends AbstractProvider implements MessageObjectProvider { + + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + public String mark4Provider() { + return getClass().getName(); + } +} From 775f14c46f8945e8bca18b10abdee9e412796098 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Tue, 27 Nov 2018 15:15:26 +0800 Subject: [PATCH 2/8] REPORT-12635 --- .../src/main/java/com/fr/design/widget/IconDefinePane.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java b/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java index 69805979b..559f91abd 100644 --- a/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java +++ b/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java @@ -47,6 +47,8 @@ public class IconDefinePane extends BasicPane { curIconName = cip.update(); setShowIconImage(); IconDefinePane.this.repaint(); + //把图标信息入库 + WidgetInfoConfig.getInstance().setIconManager(WidgetInfoConfig.getInstance().getIconManager()); } }); editDialog.setVisible(true); From 0a9e59de66e1394bd2b72378acbcdffdb96414f1 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Tue, 27 Nov 2018 15:21:01 +0800 Subject: [PATCH 3/8] REPORT-12635 --- .../fr/design/fun/MessageObjectProvider.java | 26 ------------------- .../impl/AbstractMessageObjectProvider.java | 17 ------------ 2 files changed, 43 deletions(-) delete mode 100644 designer-base/src/main/java/com/fr/design/fun/MessageObjectProvider.java delete mode 100644 designer-base/src/main/java/com/fr/design/fun/impl/AbstractMessageObjectProvider.java diff --git a/designer-base/src/main/java/com/fr/design/fun/MessageObjectProvider.java b/designer-base/src/main/java/com/fr/design/fun/MessageObjectProvider.java deleted file mode 100644 index 09f62aa57..000000000 --- a/designer-base/src/main/java/com/fr/design/fun/MessageObjectProvider.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.fr.design.fun; - -import com.fr.json.JSONObject; -import com.fr.stable.fun.mark.Mutable; - -import java.util.Map; - -public interface MessageObjectProvider extends Mutable { - String MARK_STRING = "MessageObjectProvider"; - - int CURRENT_LEVEL = 1; - //消息类型 - int getMessageType(); - - /** - * 需要嵌入的组件内容 - * @return - */ - Map getValueEditorItems(); - - /** - * 实现发消息 - * @param messageJo - */ - void sendMessage(JSONObject messageJo); -} diff --git a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractMessageObjectProvider.java b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractMessageObjectProvider.java deleted file mode 100644 index a926409d1..000000000 --- a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractMessageObjectProvider.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.fr.design.fun.impl; - -import com.fr.design.fun.MessageObjectProvider; -import com.fr.stable.fun.impl.AbstractProvider; -import com.fr.stable.fun.mark.API; - -@API(level = MessageObjectProvider.CURRENT_LEVEL) -public abstract class AbstractMessageObjectProvider extends AbstractProvider implements MessageObjectProvider { - - public int currentAPILevel() { - return CURRENT_LEVEL; - } - - public String mark4Provider() { - return getClass().getName(); - } -} From 732f2b973a82dc6db725a92f9c39be22359afd37 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Tue, 27 Nov 2018 16:05:10 +0800 Subject: [PATCH 4/8] REPORT-12635 --- .../src/main/java/com/fr/design/widget/IconDefinePane.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java b/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java index 559f91abd..3f45ba7d0 100644 --- a/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java +++ b/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java @@ -1,5 +1,6 @@ package com.fr.design.widget; +import com.fr.base.IconManager; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.DialogActionAdapter; @@ -48,7 +49,7 @@ public class IconDefinePane extends BasicPane { setShowIconImage(); IconDefinePane.this.repaint(); //把图标信息入库 - WidgetInfoConfig.getInstance().setIconManager(WidgetInfoConfig.getInstance().getIconManager()); + WidgetInfoConfig.getInstance().setIconManager(IconManager.getIconManager()); } }); editDialog.setVisible(true); From e99d82a97fd13a7f8977f6dbb9f4eac0af08ef04 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Tue, 27 Nov 2018 16:09:13 +0800 Subject: [PATCH 5/8] REPORT-12635 --- .../src/main/java/com/fr/design/web/CustomIconPane.java | 2 ++ .../src/main/java/com/fr/design/widget/IconDefinePane.java | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java b/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java index 90d5874ec..5ebf6a025 100644 --- a/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java +++ b/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java @@ -283,6 +283,8 @@ public class CustomIconPane extends BasicPane { } public String update() { + //把图标信息入库 + WidgetInfoConfig.getInstance().setIconManager(IconManager.getIconManager()); return selectedIconName; } diff --git a/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java b/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java index 3f45ba7d0..97ae0c66d 100644 --- a/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java +++ b/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java @@ -48,8 +48,6 @@ public class IconDefinePane extends BasicPane { curIconName = cip.update(); setShowIconImage(); IconDefinePane.this.repaint(); - //把图标信息入库 - WidgetInfoConfig.getInstance().setIconManager(IconManager.getIconManager()); } }); editDialog.setVisible(true); From 31a229baef8f6af7580ff86cd2456aab5d90bad1 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Tue, 27 Nov 2018 16:09:58 +0800 Subject: [PATCH 6/8] REPORT-12635 --- .../src/main/java/com/fr/design/widget/IconDefinePane.java | 1 - 1 file changed, 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java b/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java index 97ae0c66d..69805979b 100644 --- a/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java +++ b/designer-base/src/main/java/com/fr/design/widget/IconDefinePane.java @@ -1,6 +1,5 @@ package com.fr.design.widget; -import com.fr.base.IconManager; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.DialogActionAdapter; From 585179f3e6550f2c20d2d881f6369e5f8fd57827 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Tue, 27 Nov 2018 17:22:37 +0800 Subject: [PATCH 7/8] REPORT-12635 --- .../com/fr/design/web/CustomIconPane.java | 622 +++++++++--------- 1 file changed, 315 insertions(+), 307 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java b/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java index 5ebf6a025..1bdad0161 100644 --- a/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java +++ b/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java @@ -20,10 +20,13 @@ import com.fr.design.utils.gui.GUICoreUtils; import com.fr.form.ui.WidgetInfoConfig; import com.fr.general.ComparatorUtils; +import com.fr.schedule.entry.Configuration; import com.fr.stable.Constants; import com.fr.stable.CoreGraphHelper; import com.fr.stable.ListMap; import com.fr.stable.StringUtils; +import com.fr.transaction.Configurations; +import com.fr.transaction.WorkerFacade; import javax.swing.*; import javax.swing.event.ChangeEvent; @@ -39,328 +42,332 @@ import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; /** - * * carl:自定义Icon编辑 - * */ public class CustomIconPane extends BasicPane { - private String selectedIconName = null; - private ListMap iconButtonMap = null; - private JPanel iconPane = null; - private ButtonGroup bg; - private UIScrollPane jsPane; - // 老一次次去拿真麻烦 - private IconManager iconManager = null; - private UIButton removeButton; - private UIButton editButton; - - - - private static final int THE_WIDTH = 180; - private static final int HORIZONTAL_COUNT = 6; - private static final int HEIGHT_PER = 29; - private static final int GAP = 10; - - public CustomIconPane() { - this.initComponents(); - } - - private void initComponents() { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - JPanel centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - centerPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Icon"))); - JPanel noNamePane = FRGUIPaneFactory.createCenterFlowInnerContainer_S_Pane(); - centerPane.add(noNamePane, BorderLayout.CENTER); - - iconPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - - // 开始加图标选择按钮 - initIcons(); - - jsPane = new UIScrollPane(iconPane); - refreshIconPane(false); - jsPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - - jsPane.setPreferredSize(new Dimension(200,180)); - noNamePane.add(jsPane); - - DescriptionTextArea des = new DescriptionTextArea(2); - des.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Icon_Message1")); - centerPane.add(des, BorderLayout.SOUTH); - - this.add(centerPane, BorderLayout.CENTER); - - JPanel eastPane = FRGUIPaneFactory.createCenterFlowInnerContainer_S_Pane(); - JPanel buttonPane = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(1); - - // 增加、删除、编辑按钮 - initAddButton(buttonPane); - initRemoveButton(buttonPane); - initEditButton(buttonPane); - - eastPane.add(buttonPane); - this.add(eastPane, BorderLayout.EAST); - - } - - private void initIcons() { - iconButtonMap = new ListMap(); - iconManager = WidgetInfoConfig.getInstance().getIconManager(); - bg = new ButtonGroup(); - Object[] names = iconManager.getIconNames(); - Object name = null; - for (int i = 0; i < names.length; i++) { - name = names[i]; - if (name == null || !(name instanceof String)) { - continue; - } - // carl:默认选第一个 - if (this.selectedIconName == null) { - this.selectedIconName = (String)name; - } - IconButton iconButton = new IconButton((String)name); - iconButtonMap.put(name, iconButton); - iconPane.add(iconButton); - bg.add(iconButton); - } - } - - private void initAddButton(JPanel buttonPane) { - UIButton addButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Add")); - addButton.setPreferredSize(new Dimension(80, 25)); - addButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - final EditIconDialog add = new EditIconDialog(); - add.populate(null); - add.showWindow(SwingUtilities.getWindowAncestor(CustomIconPane.this), new DialogActionAdapter() { - @Override - public void doOk() { - Icon icon = add.update(); - if (iconManager.addIcon(icon, false)) { - IconButton iconButton = null;//初始化 - - addIcon(icon, iconButton); - - }else { - // add failed - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Icon_Message2"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tool_Tips"), JOptionPane.WARNING_MESSAGE); - } - } + private String selectedIconName = null; + private ListMap iconButtonMap = null; + private JPanel iconPane = null; + private ButtonGroup bg; + private UIScrollPane jsPane; + // 老一次次去拿真麻烦 + private IconManager iconManager = null; + private UIButton removeButton; + private UIButton editButton; + + + private static final int THE_WIDTH = 180; + private static final int HORIZONTAL_COUNT = 6; + private static final int HEIGHT_PER = 29; + private static final int GAP = 10; + + public CustomIconPane() { + this.initComponents(); + } + + private void initComponents() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + JPanel centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + centerPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Icon"))); + JPanel noNamePane = FRGUIPaneFactory.createCenterFlowInnerContainer_S_Pane(); + centerPane.add(noNamePane, BorderLayout.CENTER); + + iconPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); + + // 开始加图标选择按钮 + initIcons(); + + jsPane = new UIScrollPane(iconPane); + refreshIconPane(false); + jsPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + + jsPane.setPreferredSize(new Dimension(200, 180)); + noNamePane.add(jsPane); + + DescriptionTextArea des = new DescriptionTextArea(2); + des.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Icon_Message1")); + centerPane.add(des, BorderLayout.SOUTH); + + this.add(centerPane, BorderLayout.CENTER); + + JPanel eastPane = FRGUIPaneFactory.createCenterFlowInnerContainer_S_Pane(); + JPanel buttonPane = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(1); + + // 增加、删除、编辑按钮 + initAddButton(buttonPane); + initRemoveButton(buttonPane); + initEditButton(buttonPane); + + eastPane.add(buttonPane); + this.add(eastPane, BorderLayout.EAST); + + } + + private void initIcons() { + iconButtonMap = new ListMap(); + iconManager = WidgetInfoConfig.getInstance().getIconManager(); + bg = new ButtonGroup(); + Object[] names = iconManager.getIconNames(); + Object name = null; + for (int i = 0; i < names.length; i++) { + name = names[i]; + if (name == null || !(name instanceof String)) { + continue; + } + // carl:默认选第一个 + if (this.selectedIconName == null) { + this.selectedIconName = (String) name; + } + IconButton iconButton = new IconButton((String) name); + iconButtonMap.put(name, iconButton); + iconPane.add(iconButton); + bg.add(iconButton); + } + } + + private void initAddButton(JPanel buttonPane) { + UIButton addButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Add")); + addButton.setPreferredSize(new Dimension(80, 25)); + addButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + final EditIconDialog add = new EditIconDialog(); + add.populate(null); + add.showWindow(SwingUtilities.getWindowAncestor(CustomIconPane.this), new DialogActionAdapter() { + @Override + public void doOk() { + Icon icon = add.update(); + if (iconManager.addIcon(icon, false)) { + IconButton iconButton = null;//初始化 + + addIcon(icon, iconButton); + + } else { + // add failed + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Icon_Message2"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tool_Tips"), JOptionPane.WARNING_MESSAGE); + } + } }).setVisible(true); - } - }); - buttonPane.add(addButton); - } - - private void initRemoveButton(JPanel buttonPane) { - removeButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Remove")); - removeButton.setPreferredSize(new Dimension(80, 25)); - removeButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (iconManager.isSystemIcon(selectedIconName)) { - return; - } - if (iconManager.removeIcon(selectedIconName)) { - IconButton iconButton = (IconButton)iconButtonMap.get(selectedIconName); - iconPane.remove(iconButton); - iconButtonMap.remove(selectedIconName); - bg.remove(iconButton); - selectedIconName = ((IconButton)iconButtonMap.getByIndex(0)).iconName; - refreshIconPane(false); - CustomIconPane.this.validate(); - CustomIconPane.this.repaint(); - } else { - // remove failed - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Icon_Message2"), - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tool_Tips"), - JOptionPane.WARNING_MESSAGE); - } - } - }); - buttonPane.add(removeButton); - } - - private void initEditButton(JPanel buttonPane) { - editButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Edit")); - editButton.setPreferredSize(new Dimension(80, 25)); - editButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (iconManager.isSystemIcon(selectedIconName)) { - return; - } - Icon oldIcon = null; - try { - oldIcon= iconManager.getIcon(selectedIconName); - } catch (CloneNotSupportedException e1) { + } + }); + buttonPane.add(addButton); + } + + private void initRemoveButton(JPanel buttonPane) { + removeButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Remove")); + removeButton.setPreferredSize(new Dimension(80, 25)); + removeButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if (iconManager.isSystemIcon(selectedIconName)) { + return; + } + if (iconManager.removeIcon(selectedIconName)) { + IconButton iconButton = (IconButton) iconButtonMap.get(selectedIconName); + iconPane.remove(iconButton); + iconButtonMap.remove(selectedIconName); + bg.remove(iconButton); + selectedIconName = ((IconButton) iconButtonMap.getByIndex(0)).iconName; + refreshIconPane(false); + CustomIconPane.this.validate(); + CustomIconPane.this.repaint(); + } else { + // remove failed + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Icon_Message2"), + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tool_Tips"), + JOptionPane.WARNING_MESSAGE); + } + } + }); + buttonPane.add(removeButton); + } + + private void initEditButton(JPanel buttonPane) { + editButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Edit")); + editButton.setPreferredSize(new Dimension(80, 25)); + editButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if (iconManager.isSystemIcon(selectedIconName)) { + return; + } + Icon oldIcon = null; + try { + oldIcon = iconManager.getIcon(selectedIconName); + } catch (CloneNotSupportedException e1) { // do nothing - } - if (oldIcon == null) { - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), - "Error", - "Error", - JOptionPane.ERROR_MESSAGE); - } - - final EditIconDialog edit = new EditIconDialog(); - edit.populate(oldIcon); - edit.showWindow(DesignerContext.getDesignerFrame(), new IconDialogActionListener(oldIcon) { - @Override - public void doOk() { - iconManager.removeIcon(oldIcon.getName()); - Icon icon = edit.update(); - if (iconManager.addIcon(icon, false)) { - IconButton iconButton = (IconButton)iconButtonMap.get(oldIcon.getName()); - iconPane.remove(iconButton); - bg.remove(iconButton); - - addIcon(icon, iconButton); - - } else { - // 失败了再弄回去 - iconManager.addIcon(oldIcon, true); - // edit failed - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Icon_Message2"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tool_Tips"), JOptionPane.WARNING_MESSAGE); - } - } + } + if (oldIcon == null) { + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), + "Error", + "Error", + JOptionPane.ERROR_MESSAGE); + } + + final EditIconDialog edit = new EditIconDialog(); + edit.populate(oldIcon); + edit.showWindow(DesignerContext.getDesignerFrame(), new IconDialogActionListener(oldIcon) { + @Override + public void doOk() { + iconManager.removeIcon(oldIcon.getName()); + Icon icon = edit.update(); + if (iconManager.addIcon(icon, false)) { + IconButton iconButton = (IconButton) iconButtonMap.get(oldIcon.getName()); + iconPane.remove(iconButton); + bg.remove(iconButton); + + addIcon(icon, iconButton); + + } else { + // 失败了再弄回去 + iconManager.addIcon(oldIcon, true); + // edit failed + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Icon_Message2"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tool_Tips"), JOptionPane.WARNING_MESSAGE); + } + } }).setVisible(true); - } - }); - buttonPane.add(editButton); - } - - private void updateButtonPane() { - if (editButton == null || removeButton == null){ - return; - } - if (iconManager.isSystemIcon(selectedIconName)) { - editButton.setEnabled(false); + } + }); + buttonPane.add(editButton); + } + + private void updateButtonPane() { + if (editButton == null || removeButton == null) { + return; + } + if (iconManager.isSystemIcon(selectedIconName)) { + editButton.setEnabled(false); removeButton.setEnabled(false); - } else { + } else { editButton.setEnabled(true); removeButton.setEnabled(true); } - } - - @Override - protected String title4PopupWindow() { - return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Icon_SelectIcon"); - } + } + + @Override + protected String title4PopupWindow() { + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Icon_SelectIcon"); + } /** * 添加按钮 * - * @param icon 图标 + * @param icon 图标 * @param iconButton 按钮 */ - public void addIcon(Icon icon,IconButton iconButton){ - selectedIconName = icon.getName(); - iconButton = new IconButton(icon.getName()); - iconButtonMap.put(icon.getName(), iconButton); - iconPane.add(iconButton); - bg.add(iconButton); - refreshIconPane(true); - CustomIconPane.this.validate(); - CustomIconPane.this.repaint(); - } - - public static class IconDialogActionListener extends DialogActionAdapter { - protected Icon oldIcon; - - public IconDialogActionListener(Icon oldIcon) { - this.oldIcon = oldIcon; - } - } - - public void populate(String iconName) { - if (iconName == null) { - return; - } - this.selectedIconName = iconName; + public void addIcon(Icon icon, IconButton iconButton) { + selectedIconName = icon.getName(); + iconButton = new IconButton(icon.getName()); + iconButtonMap.put(icon.getName(), iconButton); + iconPane.add(iconButton); + bg.add(iconButton); + refreshIconPane(true); + CustomIconPane.this.validate(); + CustomIconPane.this.repaint(); + } + + public static class IconDialogActionListener extends DialogActionAdapter { + protected Icon oldIcon; + + public IconDialogActionListener(Icon oldIcon) { + this.oldIcon = oldIcon; + } + } + + public void populate(String iconName) { + if (iconName == null) { + return; + } + this.selectedIconName = iconName; updateButtonPane(); - this.repaint(); - } - - public String update() { - //把图标信息入库 - WidgetInfoConfig.getInstance().setIconManager(IconManager.getIconManager()); - return selectedIconName; - } - - // 不知道怎么动态布局,就这么傻傻的调一下大小 - private void refreshIconPane(boolean down) { - iconPane.setPreferredSize(new Dimension(THE_WIDTH, (iconButtonMap.size() / HORIZONTAL_COUNT + 1) * HEIGHT_PER + GAP)); - UIScrollBar jsBar = jsPane.createVerticalScrollBar(); - try { - if (down) { - // 将滚动条滚到最后 - jsBar.setValue(jsBar.getMaximum() - jsBar.getVisibleAmount()); - } else { - jsBar.setValue(0); - } - } catch (RuntimeException re) { + this.repaint(); + } + + public String update() { + //把图标信息入库 + Configurations.update(new WorkerFacade(WidgetInfoConfig.class) { + @Override + public void run() { + WidgetInfoConfig.getInstance().setIconManager(IconManager.getIconManager()); + } + }); + + return selectedIconName; + } + + // 不知道怎么动态布局,就这么傻傻的调一下大小 + private void refreshIconPane(boolean down) { + iconPane.setPreferredSize(new Dimension(THE_WIDTH, (iconButtonMap.size() / HORIZONTAL_COUNT + 1) * HEIGHT_PER + GAP)); + UIScrollBar jsBar = jsPane.createVerticalScrollBar(); + try { + if (down) { + // 将滚动条滚到最后 + jsBar.setValue(jsBar.getMaximum() - jsBar.getVisibleAmount()); + } else { + jsBar.setValue(0); + } + } catch (RuntimeException re) { return; - } - updateButtonPane(); - } - - private class IconButton extends JToggleButton implements ActionListener{ - private String iconName; - private Image iconImage = null; + } + updateButtonPane(); + } + + private class IconButton extends JToggleButton implements ActionListener { + private String iconName; + private Image iconImage = null; private static final int ICON_BUTTON_SIZE = 24; private static final int ICON_X = 4; private static final int ICON_Y = 4; - public IconButton(String name) { - this.iconName = name; - this.addActionListener(this); + + public IconButton(String name) { + this.iconName = name; + this.addActionListener(this); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); this.setBorder(null); this.iconImage = WidgetInfoConfig.getInstance().getIconManager().getIconImage(name); this.setToolTipText(iconName); - } + } @Override public void updateUI() { - setUI(new BasicButtonUI(){ + setUI(new BasicButtonUI() { public void paint(Graphics g, JComponent c) { super.paint(g, c); } }); } - - @Override - public void paintComponent(Graphics g) { + + @Override + public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; // carl:这里缩放显示 16 × 16 if (iconImage != null) { - g2d.drawImage(iconImage, ICON_X, ICON_Y, IconManager.DEFAULT_ICONWIDTH, IconManager.DEFAULT_ICONHEIGHT, null); + g2d.drawImage(iconImage, ICON_X, ICON_Y, IconManager.DEFAULT_ICONWIDTH, IconManager.DEFAULT_ICONHEIGHT, null); } if (this.iconName != null && ComparatorUtils.equals(this.iconName, selectedIconName)) { - g2d.setPaint(Color.RED); + g2d.setPaint(Color.RED); } else { g2d.setPaint(Color.LIGHT_GRAY); } GraphHelper.draw(g2d, new Rectangle2D.Double(0, 0, IconManager.DEFAULT_ICONWIDTH + 7, - IconManager.DEFAULT_ICONHEIGHT + 7), Constants.LINE_THICK); + IconManager.DEFAULT_ICONHEIGHT + 7), Constants.LINE_THICK); } - + @Override - public Dimension getPreferredSize() { + public Dimension getPreferredSize() { return new Dimension(ICON_BUTTON_SIZE, ICON_BUTTON_SIZE); } - + public void actionPerformed(ActionEvent evt) { CustomIconPane.this.selectedIconName = iconName; fireChagneListener(); - updateButtonPane(); + updateButtonPane(); CustomIconPane.this.repaint();// repaint } @Override - public void addChangeListener(ChangeListener changeListener) { + public void addChangeListener(ChangeListener changeListener) { this.changeListener = changeListener; } @@ -370,18 +377,18 @@ public class CustomIconPane extends BasicPane { this.changeListener.stateChanged(evt); } } - - } - - private static class EditIconDialog extends BasicPane { - private UITextField nameTextField; - private UILabel showImageLabel; - private Image iconImage = null; - private String oldName = null; - - protected EditIconDialog() { + + } + + private static class EditIconDialog extends BasicPane { + private UITextField nameTextField; + private UILabel showImageLabel; + private Image iconImage = null; + private String oldName = null; + + protected EditIconDialog() { init(); - } + } private void init() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); @@ -395,16 +402,17 @@ public class CustomIconPane extends BasicPane { nameTextField = new UITextField(20); browseButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { + public void actionPerformed(ActionEvent e) { onBrowseButtonClicked(); - } - }); + } + }); // 焦点丢失时看看名称是否已经存在 nameTextField.addFocusListener(new FocusListener() { public void focusGained(FocusEvent e) { // do nothing } + public void focusLost(FocusEvent e) { if (oldName != null && ComparatorUtils.equals(oldName, nameTextField.getText())) { return; @@ -421,7 +429,7 @@ public class CustomIconPane extends BasicPane { JPanel imagePane = new JPanel(); imagePane.setLayout(new FlowLayout(FlowLayout.LEFT, 30, 0)); showImageLabel = new UILabel(); - showImageLabel.setPreferredSize(new Dimension(20,20)); + showImageLabel.setPreferredSize(new Dimension(20, 20)); imagePane.add(showImageLabel); imagePane.add(browseButton); Component[][] components = {{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Name") + ":"), nameTextField}, {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Icon") + ":"), imagePane}}; @@ -441,7 +449,7 @@ public class CustomIconPane extends BasicPane { // 将图片转化到16 × 16大小 Image image = BaseUtils.readImage(path); BufferedImage bufferedImage = CoreGraphHelper.createBufferedImage(IconManager.DEFAULT_ICONWIDTH, -IconManager.DEFAULT_ICONHEIGHT, BufferedImage.TYPE_INT_ARGB); + IconManager.DEFAULT_ICONHEIGHT, BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = bufferedImage.createGraphics(); g2d.drawImage(image, 0, 0, IconManager.DEFAULT_ICONWIDTH, IconManager.DEFAULT_ICONHEIGHT, null); bufferedImage.flush(); @@ -454,29 +462,29 @@ IconManager.DEFAULT_ICONHEIGHT, BufferedImage.TYPE_INT_ARGB); } @Override - protected String title4PopupWindow() { - return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Add_Icon"); - } - - // 用户自定义的只有name 和 imgae两属性, path不要去管 - public void populate(Icon icon) { - if (icon == null) { - return; - } - oldName = icon.getName(); - nameTextField.setText(icon.getName()); - if (icon.getImage() != null) { - showImageLabel.setIcon(new ImageIcon(icon.getImage())); - } - iconImage = icon.getImage(); - } - - public Icon update() { - // 有一个是空,都返回null,反正不会添加的 - if (StringUtils.isBlank(nameTextField.getText()) || iconImage == null) { - return null; - } - return new Icon(nameTextField.getText(), iconImage); - } - } + protected String title4PopupWindow() { + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Add_Icon"); + } + + // 用户自定义的只有name 和 imgae两属性, path不要去管 + public void populate(Icon icon) { + if (icon == null) { + return; + } + oldName = icon.getName(); + nameTextField.setText(icon.getName()); + if (icon.getImage() != null) { + showImageLabel.setIcon(new ImageIcon(icon.getImage())); + } + iconImage = icon.getImage(); + } + + public Icon update() { + // 有一个是空,都返回null,反正不会添加的 + if (StringUtils.isBlank(nameTextField.getText()) || iconImage == null) { + return null; + } + return new Icon(nameTextField.getText(), iconImage); + } + } } From 3d61cbadb7224789d40c02769af12490c8aa6e22 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Tue, 27 Nov 2018 17:23:21 +0800 Subject: [PATCH 8/8] REPORT-12635 --- .../src/main/java/com/fr/design/web/CustomIconPane.java | 1 - 1 file changed, 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java b/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java index 1bdad0161..658a580c0 100644 --- a/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java +++ b/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java @@ -20,7 +20,6 @@ import com.fr.design.utils.gui.GUICoreUtils; import com.fr.form.ui.WidgetInfoConfig; import com.fr.general.ComparatorUtils; -import com.fr.schedule.entry.Configuration; import com.fr.stable.Constants; import com.fr.stable.CoreGraphHelper; import com.fr.stable.ListMap;