Browse Source

REPORT-61219 【主题获取】右键有主题的组件,鼠标从获取主题滑到详细说明,两个都被选中了

【问题原因】
修改主题下载交互

【改动思路】
同上
bugfix/11.0
Starryi 3 years ago
parent
commit
4100e7889a
  1. 6
      designer-form/src/main/java/com/fr/design/mainframe/share/ui/actions/LoadingMenuItem.java
  2. 50
      designer-form/src/main/java/com/fr/design/mainframe/share/ui/actions/SharedComponentActionMenuItemUI.java

6
designer-form/src/main/java/com/fr/design/mainframe/share/ui/actions/LoadingMenuItem.java

@ -23,7 +23,7 @@ public class LoadingMenuItem extends UIMenuItem {
super(action);
setOpaque(true);
setBackground(ColorConstants.BACKGROUND);
setUI(new SharedComponentActionMenuItemUI(false));
setUI(new SharedComponentActionMenuItemUI());
}
public void startLoading() {
@ -40,6 +40,10 @@ public class LoadingMenuItem extends UIMenuItem {
repaint();
}
public boolean isLoading() {
return loading;
}
@Override
protected void paintBorder(Graphics g) {
super.paintBorder(g);

50
designer-form/src/main/java/com/fr/design/mainframe/share/ui/actions/SharedComponentActionMenuItemUI.java

@ -2,6 +2,8 @@ package com.fr.design.mainframe.share.ui.actions;
import com.fr.design.constants.UIConstants;
import com.fr.design.gui.imenu.UIMenuItemUI;
import com.fr.design.gui.imenu.UIPopupMenu;
import com.fr.design.mainframe.share.ui.constants.ColorConstants;
import com.fr.design.utils.gui.GUIPaintUtils;
import com.fr.stable.Constants;
@ -10,6 +12,8 @@ import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.MenuSelectionManager;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
@ -20,16 +24,6 @@ import java.awt.Graphics2D;
*/
public class SharedComponentActionMenuItemUI extends UIMenuItemUI {
private final boolean autoClosePopup;
public SharedComponentActionMenuItemUI(boolean autoClosePopup) {
this.autoClosePopup = autoClosePopup;
}
public SharedComponentActionMenuItemUI() {
this(true);
}
@Override
protected void paintBackground(Graphics g, JMenuItem menuItem, Color bgColor) {
ButtonModel model = menuItem.getModel();
@ -37,19 +31,45 @@ public class SharedComponentActionMenuItemUI extends UIMenuItemUI {
int menuWidth = menuItem.getWidth();
int menuHeight = menuItem.getHeight();
g.setColor(ColorConstants.BACKGROUND);
g.fillRect(0, 0, menuWidth, menuHeight);
if (menuItem.isOpaque()) {
if (model.isArmed() || (menuItem instanceof JMenu && model.isSelected())) {
GUIPaintUtils.fillPaint((Graphics2D) g, 0, 0, menuWidth, menuHeight, true, Constants.NULL, UIConstants.FLESH_BLUE, 0);
GUIPaintUtils.fillPaint((Graphics2D) g, 0, 0, menuWidth, menuHeight, true, Constants.NULL, UIConstants.FLESH_BLUE, 7);
} else {
GUIPaintUtils.fillPaint((Graphics2D) g, 0, 0, menuWidth, menuHeight, true, Constants.NULL, menuItem.getBackground(), 7);
}
g.setColor(oldColor);
} else if (model.isArmed() || (menuItem instanceof JMenu &&
model.isSelected())) {
GUIPaintUtils.fillPaint((Graphics2D) g, 0, 0, menuWidth, menuHeight, true, Constants.NULL, UIConstants.FLESH_BLUE, 7);
g.setColor(oldColor);
}
}
@Override
protected void doClick(MenuSelectionManager msm) {
if (autoClosePopup) {
super.doClick(msm);
} else {
if (hasLoadingMenuItem()) {
return;
}
if (menuItem instanceof LoadingMenuItem) {
menuItem.doClick(0);
} else {
super.doClick(msm);
}
}
private boolean hasLoadingMenuItem() {
Container parent = menuItem.getParent();
if (parent instanceof UIPopupMenu) {
Component[] components = parent.getComponents();
for (Component component: components) {
if (component instanceof LoadingMenuItem && ((LoadingMenuItem) component).isLoading()) {
return true;
}
}
}
return false;
}
}

Loading…
Cancel
Save