diff --git a/designer_base/src/com/fr/design/gui/imenu/UIHeadMenu.java b/designer_base/src/com/fr/design/gui/imenu/UIHeadMenu.java index 627982ffe..e196f90a5 100644 --- a/designer_base/src/com/fr/design/gui/imenu/UIHeadMenu.java +++ b/designer_base/src/com/fr/design/gui/imenu/UIHeadMenu.java @@ -3,10 +3,22 @@ package com.fr.design.gui.imenu; import com.fr.design.constants.UIConstants; import com.fr.design.utils.gui.GUIPaintUtils; -import javax.swing.*; +import javax.swing.Action; +import javax.swing.JButton; +import javax.swing.JMenuItem; +import javax.swing.JPopupMenu; +import javax.swing.MenuElement; import javax.swing.border.Border; -import java.awt.*; - +import java.awt.Component; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Insets; +import java.awt.RenderingHints; +import java.awt.Shape; + +/** + * @author null + */ public class UIHeadMenu extends UIMenu { private static final float REC = 8f; private JPopupMenu popupMenu; @@ -15,6 +27,7 @@ public class UIHeadMenu extends UIMenu { super(name); } + @Override public JPopupMenu getPopupMenu() { ensurePopupMenuCreated(); popupMenu.setBackground(UIConstants.NORMAL_BACKGROUND); @@ -44,16 +57,17 @@ public class UIHeadMenu extends UIMenu { return popupMenu; } + @Override protected void ensurePopupMenuCreated() { if (popupMenu == null) { this.popupMenu = new JPopupMenu() { @Override protected void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D) g; - float wdith = getWidth(); - float heigth = getHeight(); + float width = getWidth(); + float height = getHeight(); - Shape shape = GUIPaintUtils.paintShape(g2d, wdith, heigth, REC); + Shape shape = GUIPaintUtils.paintShape(g2d, width, height, REC); g2d.setClip(shape); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); super.paintComponent(g2d); @@ -65,7 +79,7 @@ public class UIHeadMenu extends UIMenu { } /** - *画界面 + * 画界面 */ @Override public void updateUI() { @@ -74,8 +88,10 @@ public class UIHeadMenu extends UIMenu { /** * 判断popupmeu是否隐藏 - * @return 如果隐藏 返回true + * + * @return 如果隐藏 返回true */ + @Override public boolean isPopupMenuVisible() { ensurePopupMenuCreated(); return popupMenu.isVisible(); @@ -84,9 +100,11 @@ public class UIHeadMenu extends UIMenu { /** * 设置popupmenu位置 - * @param x - * @param y + * + * @param x x + * @param y y */ + @Override public void setMenuLocation(int x, int y) { super.setMenuLocation(x, y); if (popupMenu != null) { @@ -96,9 +114,11 @@ public class UIHeadMenu extends UIMenu { /** * 向popupmenu添加 JMenuItem + * * @param menuItem 菜单项 - * @return 菜单项 + * @return 菜单项 */ + @Override public JMenuItem add(JMenuItem menuItem) { ensurePopupMenuCreated(); return popupMenu.add(menuItem); @@ -106,9 +126,11 @@ public class UIHeadMenu extends UIMenu { /** * 添加组件 - * @param c 组件 - * @return 组件 + * + * @param c 组件 + * @return 组件 */ + @Override public Component add(Component c) { ensurePopupMenuCreated(); popupMenu.add(c); @@ -117,10 +139,12 @@ public class UIHeadMenu extends UIMenu { /** * 向指定位置添加组件 - * @param c 组件 - * @param index 位置 - * @return 组件 + * + * @param c 组件 + * @param index 位置 + * @return 组件 */ + @Override public Component add(Component c, int index) { ensurePopupMenuCreated(); popupMenu.add(c, index); @@ -131,6 +155,7 @@ public class UIHeadMenu extends UIMenu { /** * 添加分隔符 */ + @Override public void addSeparator() { ensurePopupMenuCreated(); popupMenu.addSeparator(); @@ -138,9 +163,11 @@ public class UIHeadMenu extends UIMenu { /** * 添加menuitem到指定位置 - * @param s 字符 - * @param pos 位置 + * + * @param s 字符 + * @param pos 位置 */ + @Override public void insert(String s, int pos) { if (pos < 0) { throw new IllegalArgumentException("index less than zero."); @@ -152,10 +179,12 @@ public class UIHeadMenu extends UIMenu { /** * 添加么会特么到指定位置 - * @param mi 菜单项 - * @param pos 位置 - * @return 菜单项 + * + * @param mi 菜单项 + * @param pos 位置 + * @return 菜单项 */ + @Override public JMenuItem insert(JMenuItem mi, int pos) { if (pos < 0) { throw new IllegalArgumentException("index less than zero."); @@ -167,10 +196,12 @@ public class UIHeadMenu extends UIMenu { /** * 添加到指定位置 - * @param a 事件 - * @param pos 位置 - * @return 菜单项 + * + * @param a 事件 + * @param pos 位置 + * @return 菜单项 */ + @Override public JMenuItem insert(Action a, int pos) { if (pos < 0) { throw new IllegalArgumentException("index less than zero."); @@ -185,9 +216,11 @@ public class UIHeadMenu extends UIMenu { } /** - * 添加分隔符到指定位置 - * @param index 指定位置 + * 添加分隔符到指定位置 + * + * @param index 指定位置 */ + @Override public void insertSeparator(int index) { if (index < 0) { throw new IllegalArgumentException("index less than zero."); @@ -200,8 +233,10 @@ public class UIHeadMenu extends UIMenu { /** * 移除 - * @param item 菜单项 + * + * @param item 菜单项 */ + @Override public void remove(JMenuItem item) { if (popupMenu != null) { popupMenu.remove(item); @@ -210,8 +245,10 @@ public class UIHeadMenu extends UIMenu { /** * 移除指定位置菜单项 - * @param pos 指定位置 + * + * @param pos 指定位置 */ + @Override public void remove(int pos) { if (pos < 0) { throw new IllegalArgumentException("index less than zero."); @@ -226,8 +263,10 @@ public class UIHeadMenu extends UIMenu { /** * 移除组件 - * @param c 组件 + * + * @param c 组件 */ + @Override public void remove(Component c) { if (popupMenu != null) { popupMenu.remove(c); @@ -237,6 +276,7 @@ public class UIHeadMenu extends UIMenu { /** * 移除所有 */ + @Override public void removeAll() { if (popupMenu != null) { popupMenu.removeAll(); @@ -244,31 +284,45 @@ public class UIHeadMenu extends UIMenu { } /** - * 组件总数 - * @return 组件总数 + * 组件总数 + * + * @return 组件总数 */ + @Override public int getMenuComponentCount() { return (popupMenu == null) ? 0 : popupMenu.getComponentCount(); } /** * 指定位置组件 - * @param n 指定位置 - * @return 组件 + * + * @param n 指定位置 + * @return 组件 */ + @Override public Component getMenuComponent(int n) { return (popupMenu == null) ? null : popupMenu.getComponent(n); } /** * 所有组件 - * @return 所有组件 + * + * @return 所有组件 */ + @Override public Component[] getMenuComponents() { return (popupMenu == null) ? new Component[0] : popupMenu.getComponents(); } - - + @Override + public MenuElement[] getSubElements() { + if (popupMenu == null) { + return new MenuElement[0]; + } else { + MenuElement[] result = new MenuElement[1]; + result[0] = popupMenu; + return result; + } + } } diff --git a/designer_base/src/com/fr/design/gui/imenu/UIMenu.java b/designer_base/src/com/fr/design/gui/imenu/UIMenu.java index bcdf2ab9f..3a1024c31 100644 --- a/designer_base/src/com/fr/design/gui/imenu/UIMenu.java +++ b/designer_base/src/com/fr/design/gui/imenu/UIMenu.java @@ -3,285 +3,341 @@ package com.fr.design.gui.imenu; import com.fr.design.constants.UIConstants; import com.fr.stable.StringUtils; -import javax.swing.*; +import javax.swing.Action; +import javax.swing.JButton; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.JPopupMenu; +import javax.swing.MenuElement; import javax.swing.border.Border; -import java.awt.*; +import java.awt.Component; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Insets; +import java.awt.RenderingHints; +import java.awt.Shape; import java.awt.geom.RoundRectangle2D; +/** + * @author null + */ public class UIMenu extends JMenu { - private static final float REC = 8f; - private JPopupMenu popupMenu; - - public UIMenu(String name) { - super(name); - setName(name); - setRolloverEnabled(true); - setBackground(UIConstants.NORMAL_BACKGROUND); - } - - @Override - public String getText() { - if (this.getParent() instanceof JPopupMenu) { - return StringUtils.BLANK + super.getText(); - } - return " " + super.getText(); - } - - public JPopupMenu getPopupMenu() { - ensurePopupMenuCreated(); - popupMenu.setOpaque(false); - popupMenu.setBorder(new Border() { - - @Override - public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { - Graphics2D g2d = (Graphics2D) g; - int rec = (int) REC; - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); - g2d.setColor(UIConstants.UIPOPUPMENU_LINE_COLOR); - g2d.drawRoundRect(x, y, width - 1, height - 1,rec, rec); - if (!(UIMenu.this.getParent() instanceof JPopupMenu)) { - g.setColor(UIConstants.NORMAL_BACKGROUND); - g.drawLine(1, 0, UIMenu.this.getWidth() - 2, 0); - } - } - - @Override - public boolean isBorderOpaque() { - return false; - } - - @Override - public Insets getBorderInsets(Component c) { - return new Insets(5, 2, 10, 10); - } - }); - return popupMenu; - } - - protected void ensurePopupMenuCreated() { - if (popupMenu == null) { - this.popupMenu = new JPopupMenu() { - @Override - protected void paintComponent(Graphics g) { - Graphics2D g2d = (Graphics2D) g; - int rec = (int) REC; - Shape shape = new RoundRectangle2D.Double(0, 0, getWidth(), getHeight(), REC, REC); - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - g2d.setColor(UIConstants.NORMAL_BACKGROUND); - g2d.fillRoundRect(0, 0, getWidth(), getHeight(), rec, rec); - g2d.setClip(shape); - super.paintComponent(g2d); - } - - }; - popupMenu.setInvoker(this); - - popupListener = createWinListener(popupMenu); - } - } - - /** - *画界面 - */ - @Override - public void updateUI() { - setUI(new UIMenuUI()); - } - - /** - * 判断popupmeu是否隐藏 - * @return 如果隐藏 返回true - */ - public boolean isPopupMenuVisible() { - ensurePopupMenuCreated(); - return popupMenu.isVisible(); - } - - - /** - * 设置popupmenu位置 - * @param x - * @param y - */ - public void setMenuLocation(int x, int y) { - super.setMenuLocation(x, y); - if (popupMenu != null) { - popupMenu.setLocation(x, y); - } - } - - /** - * 向popupmenu添加 JMenuItem - * @param menuItem 菜单项 - * @return 菜单项 - */ - public JMenuItem add(JMenuItem menuItem) { - ensurePopupMenuCreated(); - return popupMenu.add(menuItem); - } - - /** - * 添加组件 - * @param c 组件 - * @return 组件 - */ - public Component add(Component c) { - ensurePopupMenuCreated(); - popupMenu.add(c); - return c; - } - - /** - * 向指定位置添加组件 - * @param c 组件 - * @param index 位置 - * @return 组件 - */ - public Component add(Component c, int index) { - ensurePopupMenuCreated(); - popupMenu.add(c, index); - return c; - } - - - /** - * 添加分隔符 - */ - public void addSeparator() { - ensurePopupMenuCreated(); - popupMenu.addSeparator(); - } - - /** - * 添加menuitem到指定位置 - * @param s 字符 - * @param pos 位置 - */ - public void insert(String s, int pos) { - if (pos < 0) { - throw new IllegalArgumentException("index less than zero."); - } - - ensurePopupMenuCreated(); - popupMenu.insert(new JMenuItem(s), pos); - } - - /** - * 添加么会特么到指定位置 - * @param mi 菜单项 - * @param pos 位置 - * @return 菜单项 - */ - public JMenuItem insert(JMenuItem mi, int pos) { - if (pos < 0) { - throw new IllegalArgumentException("index less than zero."); - } - ensurePopupMenuCreated(); - popupMenu.insert(mi, pos); - return mi; - } - - /** - * 添加到指定位置 - * @param a 事件 - * @param pos 位置 - * @return 菜单项 - */ - public JMenuItem insert(Action a, int pos) { - if (pos < 0) { - throw new IllegalArgumentException("index less than zero."); - } - - ensurePopupMenuCreated(); - JMenuItem mi = new JMenuItem(a); - mi.setHorizontalTextPosition(JButton.TRAILING); - mi.setVerticalTextPosition(JButton.CENTER); - popupMenu.insert(mi, pos); - return mi; - } - - /** - * 添加分隔符到指定位置 - * @param index 指定位置 - */ - public void insertSeparator(int index) { - if (index < 0) { - throw new IllegalArgumentException("index less than zero."); - } - - ensurePopupMenuCreated(); - popupMenu.insert(new JPopupMenu.Separator(), index); - } - - - /** - * 移除 - * @param item 菜单项 - */ - public void remove(JMenuItem item) { - if (popupMenu != null) { - popupMenu.remove(item); - } - } - - /** - * 移除指定位置菜单项 - * @param pos 指定位置 - */ - public void remove(int pos) { - if (pos < 0) { - throw new IllegalArgumentException("index less than zero."); - } - if (pos > getItemCount()) { - throw new IllegalArgumentException("index greater than the number of items."); - } - if (popupMenu != null) { - popupMenu.remove(pos); - } - } - - /** - * 移除组件 - * @param c 组件 - */ - public void remove(Component c) { - if (popupMenu != null) { - popupMenu.remove(c); - } - } - - /** - * 移除所有 - */ - public void removeAll() { - if (popupMenu != null) { - popupMenu.removeAll(); - } - } - - /** - * 组件总数 - * @return 组件总数 - */ - public int getMenuComponentCount() { - return (popupMenu == null) ? 0 : popupMenu.getComponentCount(); - } - - /** - * 指定位置组件 - * @param n 指定位置 - * @return 组件 - */ - public Component getMenuComponent(int n) { - return (popupMenu == null) ? null : popupMenu.getComponent(n); - } - - /** - * 所有组件 - * @return 所有组件 - */ - public Component[] getMenuComponents() { - return (popupMenu == null) ? new Component[0] : popupMenu.getComponents(); - } - + private static final float REC = 8f; + private JPopupMenu popupMenu; + + public UIMenu(String name) { + super(name); + setName(name); + setRolloverEnabled(true); + setBackground(UIConstants.NORMAL_BACKGROUND); + } + + @Override + public String getText() { + if (this.getParent() instanceof JPopupMenu) { + return StringUtils.BLANK + super.getText(); + } + return " " + super.getText(); + } + + @Override + public JPopupMenu getPopupMenu() { + ensurePopupMenuCreated(); + popupMenu.setOpaque(false); + popupMenu.setBorder(new Border() { + + @Override + public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { + Graphics2D g2d = (Graphics2D) g; + int rec = (int) REC; + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); + g2d.setColor(UIConstants.UIPOPUPMENU_LINE_COLOR); + g2d.drawRoundRect(x, y, width - 1, height - 1, rec, rec); + if (!(UIMenu.this.getParent() instanceof JPopupMenu)) { + g.setColor(UIConstants.NORMAL_BACKGROUND); + g.drawLine(1, 0, UIMenu.this.getWidth() - 2, 0); + } + } + + @Override + public boolean isBorderOpaque() { + return false; + } + + @Override + public Insets getBorderInsets(Component c) { + return new Insets(5, 2, 10, 10); + } + }); + return popupMenu; + } + + protected void ensurePopupMenuCreated() { + if (popupMenu == null) { + this.popupMenu = new JPopupMenu() { + @Override + protected void paintComponent(Graphics g) { + Graphics2D g2d = (Graphics2D) g; + int rec = (int) REC; + Shape shape = new RoundRectangle2D.Double(0, 0, getWidth(), getHeight(), REC, REC); + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + g2d.setColor(UIConstants.NORMAL_BACKGROUND); + g2d.fillRoundRect(0, 0, getWidth(), getHeight(), rec, rec); + g2d.setClip(shape); + super.paintComponent(g2d); + } + + }; + popupMenu.setInvoker(this); + + popupListener = createWinListener(popupMenu); + } + } + + /** + * 画界面 + */ + @Override + public void updateUI() { + setUI(new UIMenuUI()); + } + + /** + * 判断popupmeu是否隐藏 + * + * @return 如果隐藏 返回true + */ + @Override + public boolean isPopupMenuVisible() { + ensurePopupMenuCreated(); + return popupMenu.isVisible(); + } + + + /** + * 设置popupmenu位置 + * + * @param x x + * @param y y + */ + @Override + public void setMenuLocation(int x, int y) { + super.setMenuLocation(x, y); + if (popupMenu != null) { + popupMenu.setLocation(x, y); + } + } + + /** + * 向popupmenu添加 JMenuItem + * + * @param menuItem 菜单项 + * @return 菜单项 + */ + @Override + public JMenuItem add(JMenuItem menuItem) { + ensurePopupMenuCreated(); + return popupMenu.add(menuItem); + } + + /** + * 添加组件 + * + * @param c 组件 + * @return 组件 + */ + @Override + public Component add(Component c) { + ensurePopupMenuCreated(); + popupMenu.add(c); + return c; + } + + /** + * 向指定位置添加组件 + * + * @param c 组件 + * @param index 位置 + * @return 组件 + */ + @Override + public Component add(Component c, int index) { + ensurePopupMenuCreated(); + popupMenu.add(c, index); + return c; + } + + + /** + * 添加分隔符 + */ + @Override + public void addSeparator() { + ensurePopupMenuCreated(); + popupMenu.addSeparator(); + } + + /** + * 添加menuitem到指定位置 + * + * @param s 字符 + * @param pos 位置 + */ + @Override + public void insert(String s, int pos) { + if (pos < 0) { + throw new IllegalArgumentException("index less than zero."); + } + + ensurePopupMenuCreated(); + popupMenu.insert(new JMenuItem(s), pos); + } + + /** + * 添加么会特么到指定位置 + * + * @param mi 菜单项 + * @param pos 位置 + * @return 菜单项 + */ + @Override + public JMenuItem insert(JMenuItem mi, int pos) { + if (pos < 0) { + throw new IllegalArgumentException("index less than zero."); + } + ensurePopupMenuCreated(); + popupMenu.insert(mi, pos); + return mi; + } + + /** + * 添加到指定位置 + * + * @param a 事件 + * @param pos 位置 + * @return 菜单项 + */ + @Override + public JMenuItem insert(Action a, int pos) { + if (pos < 0) { + throw new IllegalArgumentException("index less than zero."); + } + ensurePopupMenuCreated(); + JMenuItem mi = new JMenuItem(a); + mi.setHorizontalTextPosition(JButton.TRAILING); + mi.setVerticalTextPosition(JButton.CENTER); + popupMenu.insert(mi, pos); + return mi; + } + + /** + * 添加分隔符到指定位置 + * + * @param index 指定位置 + */ + @Override + public void insertSeparator(int index) { + if (index < 0) { + throw new IllegalArgumentException("index less than zero."); + } + + ensurePopupMenuCreated(); + popupMenu.insert(new JPopupMenu.Separator(), index); + } + + + /** + * 移除 + * + * @param item 菜单项 + */ + @Override + public void remove(JMenuItem item) { + if (popupMenu != null) { + popupMenu.remove(item); + } + } + + /** + * 移除指定位置菜单项 + * + * @param pos 指定位置 + */ + @Override + public void remove(int pos) { + if (pos < 0) { + throw new IllegalArgumentException("index less than zero."); + } + if (pos > getItemCount()) { + throw new IllegalArgumentException("index greater than the number of items."); + } + if (popupMenu != null) { + popupMenu.remove(pos); + } + } + + /** + * 移除组件 + * + * @param c 组件 + */ + @Override + public void remove(Component c) { + if (popupMenu != null) { + popupMenu.remove(c); + } + } + + /** + * 移除所有 + */ + @Override + public void removeAll() { + if (popupMenu != null) { + popupMenu.removeAll(); + } + } + + /** + * 组件总数 + * + * @return 组件总数 + */ + @Override + public int getMenuComponentCount() { + return (popupMenu == null) ? 0 : popupMenu.getComponentCount(); + } + + /** + * 指定位置组件 + * + * @param n 指定位置 + * @return 组件 + */ + @Override + public Component getMenuComponent(int n) { + return (popupMenu == null) ? null : popupMenu.getComponent(n); + } + + /** + * 所有组件 + * + * @return 所有组件 + */ + @Override + public Component[] getMenuComponents() { + return (popupMenu == null) ? new Component[0] : popupMenu.getComponents(); + } + + + @Override + public MenuElement[] getSubElements() { + if (popupMenu == null) { + return new MenuElement[0]; + } else { + MenuElement[] result = new MenuElement[1]; + result[0] = popupMenu; + return result; + } + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/gui/imenu/UIScrollMenu.java b/designer_base/src/com/fr/design/gui/imenu/UIScrollMenu.java index afe9db647..1d176c384 100644 --- a/designer_base/src/com/fr/design/gui/imenu/UIScrollMenu.java +++ b/designer_base/src/com/fr/design/gui/imenu/UIScrollMenu.java @@ -1,16 +1,22 @@ package com.fr.design.gui.imenu; + +import javax.swing.Action; +import javax.swing.JButton; +import javax.swing.JMenuItem; +import javax.swing.JPopupMenu; +import javax.swing.MenuElement; +import java.awt.Component; +import java.awt.ComponentOrientation; + /** * Created with IntelliJ IDEA. * User: richie * Date: 13-12-5 * Time: 上午11:11 + * + * @author richie */ - -import javax.swing.*; -import java.awt.*; - - public class UIScrollMenu extends UIMenu { // Covers the one in the JMenu because the method that creates it in JMenu is private /** @@ -49,6 +55,7 @@ public class UIScrollMenu extends UIMenu { /** * Lazily creates the popup menu. This method will create the popup using the JScrollPopupMenu class. */ + @Override protected void ensurePopupMenuCreated() { if (popupMenu == null) { this.popupMenu = new UIScrollPopUpMenu(); @@ -62,17 +69,20 @@ public class UIScrollMenu extends UIMenu { ////////////////////////////// /** - *画界面 + * 画界面 */ + @Override public void updateUI() { - setUI(new UIMenuUI()); + setUI(new UIMenuUI()); } /** * 判断popupmeu是否隐藏 - * @return 如果隐藏 返回true + * + * @return 如果隐藏 返回true */ + @Override public boolean isPopupMenuVisible() { ensurePopupMenuCreated(); return popupMenu.isVisible(); @@ -81,9 +91,11 @@ public class UIScrollMenu extends UIMenu { /** * 设置popupmenu位置 + * * @param x * @param y */ + @Override public void setMenuLocation(int x, int y) { super.setMenuLocation(x, y); if (popupMenu != null) { @@ -93,9 +105,11 @@ public class UIScrollMenu extends UIMenu { /** * 向popupmenu添加 JMenuItem + * * @param menuItem 菜单项 - * @return 菜单项 + * @return 菜单项 */ + @Override public JMenuItem add(JMenuItem menuItem) { ensurePopupMenuCreated(); return popupMenu.add(menuItem); @@ -103,9 +117,11 @@ public class UIScrollMenu extends UIMenu { /** * 添加组件 - * @param c 组件 - * @return 组件 + * + * @param c 组件 + * @return 组件 */ + @Override public Component add(Component c) { ensurePopupMenuCreated(); popupMenu.add(c); @@ -114,10 +130,12 @@ public class UIScrollMenu extends UIMenu { /** * 向指定位置添加组件 - * @param c 组件 - * @param index 位置 - * @return 组件 + * + * @param c 组件 + * @param index 位置 + * @return 组件 */ + @Override public Component add(Component c, int index) { ensurePopupMenuCreated(); popupMenu.add(c, index); @@ -128,6 +146,7 @@ public class UIScrollMenu extends UIMenu { /** * 添加分隔符 */ + @Override public void addSeparator() { ensurePopupMenuCreated(); popupMenu.addSeparator(); @@ -135,9 +154,11 @@ public class UIScrollMenu extends UIMenu { /** * 添加menuitem到指定位置 - * @param s 字符 - * @param pos 位置 + * + * @param s 字符 + * @param pos 位置 */ + @Override public void insert(String s, int pos) { if (pos < 0) { throw new IllegalArgumentException("index less than zero."); @@ -149,10 +170,12 @@ public class UIScrollMenu extends UIMenu { /** * 添加么会特么到指定位置 - * @param mi 菜单项 - * @param pos 位置 - * @return 菜单项 + * + * @param mi 菜单项 + * @param pos 位置 + * @return 菜单项 */ + @Override public JMenuItem insert(JMenuItem mi, int pos) { if (pos < 0) { throw new IllegalArgumentException("index less than zero."); @@ -164,10 +187,12 @@ public class UIScrollMenu extends UIMenu { /** * 添加到指定位置 - * @param a 事件 - * @param pos 位置 - * @return 菜单项 + * + * @param a 事件 + * @param pos 位置 + * @return 菜单项 */ + @Override public JMenuItem insert(Action a, int pos) { if (pos < 0) { throw new IllegalArgumentException("index less than zero."); @@ -182,9 +207,11 @@ public class UIScrollMenu extends UIMenu { } /** - * 添加分隔符到指定位置 - * @param index 指定位置 + * 添加分隔符到指定位置 + * + * @param index 指定位置 */ + @Override public void insertSeparator(int index) { if (index < 0) { throw new IllegalArgumentException("index less than zero."); @@ -197,8 +224,10 @@ public class UIScrollMenu extends UIMenu { /** * 移除 - * @param item 菜单项 + * + * @param item 菜单项 */ + @Override public void remove(JMenuItem item) { if (popupMenu != null) { popupMenu.remove(item); @@ -207,8 +236,10 @@ public class UIScrollMenu extends UIMenu { /** * 移除指定位置菜单项 - * @param pos 指定位置 + * + * @param pos 指定位置 */ + @Override public void remove(int pos) { if (pos < 0) { throw new IllegalArgumentException("index less than zero."); @@ -223,8 +254,10 @@ public class UIScrollMenu extends UIMenu { /** * 移除组件 - * @param c 组件 + * + * @param c 组件 */ + @Override public void remove(Component c) { if (popupMenu != null) { popupMenu.remove(c); @@ -234,6 +267,7 @@ public class UIScrollMenu extends UIMenu { /** * 移除所有 */ + @Override public void removeAll() { if (popupMenu != null) { popupMenu.removeAll(); @@ -241,34 +275,42 @@ public class UIScrollMenu extends UIMenu { } /** - * 组件总数 - * @return 组件总数 + * 组件总数 + * + * @return 组件总数 */ + @Override public int getMenuComponentCount() { return (popupMenu == null) ? 0 : popupMenu.getComponentCount(); } /** * 指定位置组件 - * @param n 指定位置 - * @return 组件 + * + * @param n 指定位置 + * @return 组件 */ + @Override public Component getMenuComponent(int n) { return (popupMenu == null) ? null : popupMenu.getComponent(n); } /** * 所有组件 - * @return 所有组件 + * + * @return 所有组件 */ + @Override public Component[] getMenuComponents() { return (popupMenu == null) ? new Component[0] : popupMenu.getComponents(); } /** * 取得弹出菜单 - * @return 菜单 + * + * @return 菜单 */ + @Override public JPopupMenu getPopupMenu() { ensurePopupMenuCreated(); return popupMenu; @@ -276,17 +318,21 @@ public class UIScrollMenu extends UIMenu { /** * 得到子元素 - * @return 子元素 + * + * @return 子元素 */ + @Override public MenuElement[] getSubElements() { return popupMenu == null ? new MenuElement[0] : new MenuElement[]{popupMenu}; } /** - * 设置所有组件方位 + * 设置所有组件方位 + * * @param o 方位 */ + @Override public void applyComponentOrientation(ComponentOrientation o) { super.applyComponentOrientation(o); @@ -301,8 +347,10 @@ public class UIScrollMenu extends UIMenu { /** * 设置所有组件方位 + * * @param o 方位 */ + @Override public void setComponentOrientation(ComponentOrientation o) { super.setComponentOrientation(o); if (popupMenu != null) { diff --git a/designer_form/src/com/fr/design/mainframe/FormParaWidgetPane.java b/designer_form/src/com/fr/design/mainframe/FormParaWidgetPane.java index cff176ea3..c520a8b03 100644 --- a/designer_form/src/com/fr/design/mainframe/FormParaWidgetPane.java +++ b/designer_form/src/com/fr/design/mainframe/FormParaWidgetPane.java @@ -16,7 +16,10 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.imenu.UIPopupMenu; import com.fr.design.module.DesignModuleFactory; import com.fr.design.utils.gui.LayoutUtils; -import com.fr.form.ui.*; +import com.fr.form.ui.UserDefinedWidgetConfig; +import com.fr.form.ui.Widget; +import com.fr.form.ui.WidgetConfig; +import com.fr.form.ui.WidgetInfoConfig; import com.fr.general.ComparatorUtils; import com.fr.general.GeneralContext; import com.fr.general.Inter; @@ -27,16 +30,26 @@ import com.fr.plugin.observer.PluginEvent; import com.fr.plugin.observer.PluginEventListener; import com.fr.stable.ArrayUtils; -import javax.swing.*; -import java.awt.*; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.JSeparator; +import javax.swing.SwingConstants; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.FlowLayout; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; +import java.util.Arrays; import java.util.Iterator; import java.util.List; +/** + * @author null + */ public class FormParaWidgetPane extends JPanel { private static FormParaWidgetPane THIS; private final static int BORDER = 5; @@ -69,28 +82,28 @@ public class FormParaWidgetPane extends JPanel { private UILabel paraLabel; private FormDesigner designer; - + static { GeneralContext.listenPluginRunningChanged(new PluginEventListener() { - + @Override public void on(PluginEvent event) { - + synchronized (FormParaWidgetPane.class) { THIS = null; } } }, new PluginFilter() { - + @Override public boolean accept(PluginContext context) { - + return context.contain(PluginModule.ExtraDesign, FormWidgetOptionProvider.XML_TAG); } }); } - - public static synchronized final FormParaWidgetPane getInstance(FormDesigner designer) { + + public static synchronized FormParaWidgetPane getInstance(FormDesigner designer) { if (THIS == null) { THIS = new FormParaWidgetPane(); } @@ -102,21 +115,22 @@ public class FormParaWidgetPane extends JPanel { public FormParaWidgetPane() { setLayout(new FlowLayout(FlowLayout.LEFT)); DesignerContext.getDesignerFrame().getCenterTemplateCardPane().addComponentListener(new ComponentAdapter() { + @Override public void componentResized(ComponentEvent e) { if (FormParaWidgetPane.this.getParent() != null) { - JPanel fother = (JPanel) FormParaWidgetPane.this.getParent(); - int delta_wdith = 0; - for (int i = 0; i < fother.getComponentCount() - 1; i++) { - delta_wdith += fother.getComponent(i).getWidth(); + JPanel parent = (JPanel) FormParaWidgetPane.this.getParent(); + int deltaWidth = 0; + for (int i = 0; i < parent.getComponentCount() - 1; i++) { + deltaWidth += parent.getComponent(i).getWidth(); } - if (delta_wdith == 0) { + if (deltaWidth == 0) { return; } - Dimension d = fother.getSize(); - setPreferredSize(new Dimension(d.width - delta_wdith, d.height)); - LayoutUtils.layoutContainer(fother); + Dimension d = parent.getSize(); + setPreferredSize(new Dimension(d.width - deltaWidth, d.height)); + LayoutUtils.layoutContainer(parent); } } }); @@ -158,7 +172,7 @@ public class FormParaWidgetPane extends JPanel { } private void initChartTypePopUp() { - if (chartTypePopupMenu == null){ + if (chartTypePopupMenu == null) { JPanel componentsPara = new JPanel(new FlowLayout(FlowLayout.LEFT)); WidgetOption[] chartOptions = loadChartOptions(); for (WidgetOption chartOption : chartOptions) { @@ -223,9 +237,7 @@ public class FormParaWidgetPane extends JPanel { predifinedwidgeList.clear(); if (designer != null) { WidgetOption[] designerPre = designer.getDesignerMode().getPredefinedWidgetOptions(); - for (int i = 0; i < designerPre.length; i++) { - predifinedwidgeList.add(designerPre[i]); - } + predifinedwidgeList.addAll(Arrays.asList(designerPre)); } WidgetInfoConfig mgr = WidgetInfoConfig.getInstance(); Iterator nameIt = mgr.getWidgetConfigNameIterator(); @@ -360,6 +372,7 @@ public class FormParaWidgetPane extends JPanel { } } + @Override public void mouseDragged(MouseEvent e) { if (designer.getParaComponent() != null) { return; @@ -367,7 +380,7 @@ public class FormParaWidgetPane extends JPanel { designer.addParaComponent(); JPanel pane = FormWidgetDetailPane.getInstance(designer); - EastRegionContainerPane.getInstance().replaceDownPane(pane); + EastRegionContainerPane.getInstance().replaceWidgetLibPane(pane); this.setEnabled(false); designer.addDesignerEditListener(new paraButtonDesignerAdapter(this)); @@ -378,6 +391,7 @@ public class FormParaWidgetPane extends JPanel { } } + @Override public void setEnabled(boolean b) { super.setEnabled(b); paraLabel.setForeground(b ? Color.BLACK : new Color(198, 198, 198)); @@ -397,6 +411,7 @@ public class FormParaWidgetPane extends JPanel { * * @param evt 事件 */ + @Override public void fireCreatorModified(DesignerEvent evt) { button.setEnabled(designer.getParaComponent() == null); } @@ -404,14 +419,14 @@ public class FormParaWidgetPane extends JPanel { private WidgetOption[] loadWidgetOptions() { if (widgetOptions == null) { - widgetOptions = (WidgetOption[]) ArrayUtils.addAll(WidgetOption.getFormWidgetIntance(), ExtraDesignClassManager.getInstance().getFormWidgetOptions()); + widgetOptions = ArrayUtils.addAll(WidgetOption.getFormWidgetIntance(), ExtraDesignClassManager.getInstance().getFormWidgetOptions()); } return widgetOptions; } private WidgetOption[] loadLayoutOptions() { if (layoutOptions == null) { - layoutOptions = (WidgetOption[]) ArrayUtils.addAll(FormWidgetOption.getFormLayoutInstance(), ExtraDesignClassManager.getInstance().getFormWidgetContainerOptions()); + layoutOptions = ArrayUtils.addAll(FormWidgetOption.getFormLayoutInstance(), ExtraDesignClassManager.getInstance().getFormWidgetContainerOptions()); } return layoutOptions; }