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;
}