Browse Source

Merge pull request #1225 in BA/design from ~PLOUGH/design:release/9.0 to release/9.0

* commit '4f68af2c7f49e461e527cba85f6bfed168fab6e2':
  REPORT-4554 属性面板弹出后部分内容消失
  REPORT-4554 弹出的属性面板最值
  REPORT-4554 tab导航按钮样式
master
superman 7 years ago
parent
commit
9545965ca8
  1. 5
      designer_base/src/com/fr/design/constants/UIConstants.java
  2. 12
      designer_base/src/com/fr/design/gui/ibutton/UIButtonUI.java
  3. 66
      designer_base/src/com/fr/design/mainframe/EastRegionContainerPane.java
  4. 19
      designer_base/src/com/fr/design/utils/gui/GUIPaintUtils.java

5
designer_base/src/com/fr/design/constants/UIConstants.java

@ -106,6 +106,11 @@ public interface UIConstants {
public static final Color TITLED_BORDER_COLOR = new Color(0xededee); public static final Color TITLED_BORDER_COLOR = new Color(0xededee);
public static final Color POP_DIALOG_BORDER = new Color(218, 218, 221); public static final Color POP_DIALOG_BORDER = new Color(218, 218, 221);
public static final Color PROPERTY_DIALOG_BORDER = new Color(0xc9c9cd); public static final Color PROPERTY_DIALOG_BORDER = new Color(0xc9c9cd);
public static final Color TAB_BUTTON_HOVER = new Color(231, 230, 235);
public static final Color TAB_BUTTON_HOVER_SELECTED = new Color(239, 238, 243);
public static final Color TAB_BUTTON_PRESS = new Color(228, 227, 232);
public static final Color TAB_BUTTON_PRESS_SELECTED = new Color(236, 236, 238);
public static final BufferedImage DRAG_BAR = BaseUtils.readImage("com/fr/design/images/control/bar.png"); public static final BufferedImage DRAG_BAR = BaseUtils.readImage("com/fr/design/images/control/bar.png");

12
designer_base/src/com/fr/design/gui/ibutton/UIButtonUI.java

@ -42,6 +42,14 @@ public class UIButtonUI extends BasicButtonUI {
((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
if (b.isExtraPainted()) { if (b.isExtraPainted()) {
doExtraPainting(b, g2d, w, h, selectedRoles);
}
((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
paintContent(g, b, text);
}
protected void doExtraPainting(UIButton b, Graphics2D g2d, int w, int h, String selectedRoles) {
if (isPressed(b) && b.isPressedPainted()) { if (isPressed(b) && b.isPressedPainted()) {
GUIPaintUtils.fillPressed(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles)); GUIPaintUtils.fillPressed(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles));
} else if (isRollOver(b)) { } else if (isRollOver(b)) {
@ -50,10 +58,6 @@ public class UIButtonUI extends BasicButtonUI {
GUIPaintUtils.fillNormal(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), b.isPressedPainted()); GUIPaintUtils.fillNormal(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), b.isPressedPainted());
} }
} }
((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
paintContent(g, b, text);
}
protected boolean isRollOver(AbstractButton b) { protected boolean isRollOver(AbstractButton b) {
ButtonModel model = b.getModel(); ButtonModel model = b.getModel();

66
designer_base/src/com/fr/design/mainframe/EastRegionContainerPane.java

@ -4,10 +4,12 @@ import com.fr.base.BaseUtils;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.constants.UIConstants; import com.fr.design.constants.UIConstants;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.ibutton.UIButtonUI;
import com.fr.design.gui.icontainer.UIEastResizableContainer; import com.fr.design.gui.icontainer.UIEastResizableContainer;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.VerticalFlowLayout; import com.fr.design.layout.VerticalFlowLayout;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.design.utils.gui.GUIPaintUtils;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.general.FRFont; import com.fr.general.FRFont;
import com.fr.general.Inter; import com.fr.general.Inter;
@ -38,7 +40,6 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
private static final int ARROW_RANGE_START = CONTENT_WIDTH - 30; private static final int ARROW_RANGE_START = CONTENT_WIDTH - 30;
// 弹出对话框高度 // 弹出对话框高度
private static final int POPUP_MIN_HEIGHT = 145; private static final int POPUP_MIN_HEIGHT = 145;
private static final int POPUP_MAX_HEIGHT = 480;
private static final int POPUP_DEFAULT_HEIGHT = 356; private static final int POPUP_DEFAULT_HEIGHT = 356;
public static final String KEY_CELL_ELEMENT = "cellElement"; public static final String KEY_CELL_ELEMENT = "cellElement";
public static final String KEY_CELL_ATTR = "cellAttr"; public static final String KEY_CELL_ATTR = "cellAttr";
@ -521,6 +522,10 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
} }
} }
public void reAddContentArea() {
propertyPanel.add(contentArea, BorderLayout.CENTER);
}
public boolean isVisible() { public boolean isVisible() {
return isVisible; return isVisible;
} }
@ -578,7 +583,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
popupDialog.replaceContentPane(this); popupDialog.replaceContentPane(this);
} }
if (popupPane != null && !isRightPaneVisible()) { if (popupPane != null && !isRightPaneVisible()) {
popupPane.replaceContentPane(contentPane); popupPane.replaceContentPane(contentArea);
} }
refreshContainer(); refreshContainer();
@ -588,6 +593,10 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
return contentPane; return contentPane;
} }
public Container getContentArea() {
return contentArea;
}
public void replaceHeaderPane(JComponent pane) { public void replaceHeaderPane(JComponent pane) {
contentArea.remove(headerPane); contentArea.remove(headerPane);
int height = Math.min(pane.getPreferredSize().height, MAX_PARA_HEIGHT); int height = Math.min(pane.getPreferredSize().height, MAX_PARA_HEIGHT);
@ -612,7 +621,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
hideCurrentPopupPane(); hideCurrentPopupPane();
replaceContentPane(contentPane); replaceContentPane(contentPane);
} else if(popupPane != null) { } else if(popupPane != null) {
popupPane.replaceContentPane(contentPane); popupPane.replaceContentPane(contentArea);
} }
} }
@ -638,6 +647,10 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
selectedItem = this; selectedItem = this;
} }
private boolean isTabButtonSelected() {
return button.getBackground() == selectedBtnBackground;
}
private void initButton() { private void initButton() {
button = new UIButton(BaseUtils.readIcon(getBtnIconUrl())) { button = new UIButton(BaseUtils.readIcon(getBtnIconUrl())) {
public Dimension getPreferredSize() { public Dimension getPreferredSize() {
@ -649,6 +662,20 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
} }
}; };
button.set4LargeToolbarButton(); button.set4LargeToolbarButton();
button.setUI(new UIButtonUI() {
@Override
protected void doExtraPainting(UIButton b, Graphics2D g2d, int w, int h, String selectedRoles) {
if (isPressed(b) && b.isPressedPainted()) {
Color pressColor = isTabButtonSelected() ? UIConstants.TAB_BUTTON_PRESS_SELECTED : UIConstants.TAB_BUTTON_PRESS;
GUIPaintUtils.fillPressed(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), pressColor);
} else if (isRollOver(b)) {
Color hoverColor = isTabButtonSelected() ? UIConstants.TAB_BUTTON_HOVER_SELECTED : UIConstants.TAB_BUTTON_HOVER;
GUIPaintUtils.fillRollOver(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), b.isPressedPainted(), hoverColor);
} else if (b.isNormalPainted()) {
GUIPaintUtils.fillNormal(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), b.isPressedPainted());
}
}
});
originBtnBackground = button.getBackground(); originBtnBackground = button.getBackground();
button.addActionListener(new ActionListener() { button.addActionListener(new ActionListener() {
@Override @Override
@ -714,6 +741,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
if (isPoppedOut) { if (isPoppedOut) {
isPoppedOut = false; isPoppedOut = false;
popupDialog.setVisible(false); popupDialog.setVisible(false);
reAddContentArea();
initContentPane(); initContentPane();
onResize(); onResize();
if (isEnabled()) { if (isEnabled()) {
@ -726,9 +754,12 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
} }
private class FixedPopupPane extends JPopupMenu { private class FixedPopupPane extends JPopupMenu {
private JComponent contentPane; private Container contentPane;
private PropertyItem propertyItem;
FixedPopupPane(PropertyItem propertyItem) { FixedPopupPane(PropertyItem propertyItem) {
contentPane = propertyItem.getContentPane(); this.propertyItem = propertyItem;
contentPane = propertyItem.getContentArea();
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());
this.add(new PopupToolPane(propertyItem), BorderLayout.NORTH); this.add(new PopupToolPane(propertyItem), BorderLayout.NORTH);
this.add(contentPane, BorderLayout.CENTER); this.add(contentPane, BorderLayout.CENTER);
@ -736,14 +767,24 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
setPreferredSize(new Dimension(CONTAINER_WIDTH - TAB_WIDTH, POPUP_DEFAULT_HEIGHT)); setPreferredSize(new Dimension(CONTAINER_WIDTH - TAB_WIDTH, POPUP_DEFAULT_HEIGHT));
} }
@Override
public void setVisible(boolean visible) {
super.setVisible(visible);
if (visible == true) {
replaceContentPane(propertyItem.getContentArea());
} else {
propertyItem.reAddContentArea();
}
}
public void menuSelectionChanged(boolean isIncluded) { public void menuSelectionChanged(boolean isIncluded) {
} }
public JComponent getContentPane() { public Container getContentPane() {
return contentPane; return contentPane;
} }
public void replaceContentPane(JComponent pane) { public void replaceContentPane(Container pane) {
this.remove(this.contentPane); this.remove(this.contentPane);
this.add(this.contentPane = pane); this.add(this.contentPane = pane);
refreshContainer(); refreshContainer();
@ -920,7 +961,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
private Point mouseDownCompCoords; private Point mouseDownCompCoords;
private JPanel contentWrapper; private JPanel contentWrapper;
private JComponent contentPane; private Container contentPane;
private JPanel defaultPane; // 无可用配置项 private JPanel defaultPane; // 无可用配置项
private PropertyItem propertyItem; private PropertyItem propertyItem;
public PopupDialog(PropertyItem propertyItem) { public PopupDialog(PropertyItem propertyItem) {
@ -930,7 +971,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
this.propertyItem = propertyItem; this.propertyItem = propertyItem;
PopupToolPane popupToolPane = new PopupToolPane(propertyItem, PopupToolPane.UP_BUTTON); PopupToolPane popupToolPane = new PopupToolPane(propertyItem, PopupToolPane.UP_BUTTON);
popupToolPane.setParentDialog(this); popupToolPane.setParentDialog(this);
contentPane = propertyItem.getContentPane(); contentPane = propertyItem.getContentArea();
contentWrapper = new JPanel(new BorderLayout()); contentWrapper = new JPanel(new BorderLayout());
contentWrapper.add(popupToolPane, BorderLayout.NORTH); contentWrapper.add(popupToolPane, BorderLayout.NORTH);
@ -969,10 +1010,10 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
public void replaceContentPane(PropertyItem propertyItem) { public void replaceContentPane(PropertyItem propertyItem) {
this.propertyItem = propertyItem; this.propertyItem = propertyItem;
replaceContentPane(propertyItem.getContentPane()); replaceContentPane(propertyItem.getContentArea());
} }
public void replaceContentPane(JComponent contentPane) { public void replaceContentPane(Container contentPane) {
contentWrapper.remove(this.contentPane); contentWrapper.remove(this.contentPane);
contentWrapper.add(this.contentPane = contentPane, BorderLayout.CENTER); contentWrapper.add(this.contentPane = contentPane, BorderLayout.CENTER);
refreshContainer(); refreshContainer();
@ -996,9 +1037,6 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
if (bounds.height < POPUP_MIN_HEIGHT) { if (bounds.height < POPUP_MIN_HEIGHT) {
bounds.height = POPUP_MIN_HEIGHT; bounds.height = POPUP_MIN_HEIGHT;
} }
if (bounds.height > POPUP_MAX_HEIGHT) {
bounds.height = POPUP_MAX_HEIGHT;
}
mouseDownCompCoords.y = currCoords.y; mouseDownCompCoords.y = currCoords.y;
setBounds(bounds); setBounds(bounds);
} }

19
designer_base/src/com/fr/design/utils/gui/GUIPaintUtils.java

@ -85,13 +85,18 @@ public class GUIPaintUtils {
* @param isPressedPainted 是否按压画 * @param isPressedPainted 是否按压画
*/ */
public static final void fillRollOver(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited, boolean isPressedPainted) { public static final void fillRollOver(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited, boolean isPressedPainted) {
fillRollOver(g2d, x, y, width, height, isRound, rectDirection, isAuthorityEdited, isPressedPainted, null);
}
public static final void fillRollOver(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited, boolean isPressedPainted, Color hoverColor) {
GradientPaint gp; GradientPaint gp;
if (BaseUtils.isAuthorityEditing() && isAuthorityEdited) { if (hoverColor != null) {
gp = new GradientPaint(1, 1, hoverColor, 1, height - 1, hoverColor);
} else if (BaseUtils.isAuthorityEditing() && isAuthorityEdited) {
gp = new GradientPaint(1, 1, UIConstants.AUTHORITY_BLUE, 1, height - 1, UIConstants.HOVER_BLUE); gp = new GradientPaint(1, 1, UIConstants.AUTHORITY_BLUE, 1, height - 1, UIConstants.HOVER_BLUE);
} else if (isPressedPainted) { } else if (isPressedPainted) {
gp = new GradientPaint(1, 1, UIConstants.ATTRIBUTE_HOVER, 1, height - 1, UIConstants.ATTRIBUTE_HOVER); gp = new GradientPaint(1, 1, UIConstants.ATTRIBUTE_HOVER, 1, height - 1, UIConstants.ATTRIBUTE_HOVER);
}else { } else {
// gp = new GradientPaint(1, 1, UIConstants.NORMAL_BACKGROUND, 1, height - 1, UIConstants.HOVER_BLUE);
gp = new GradientPaint(1, 1, UIConstants.HOVER_BLUE, 1, height - 1, UIConstants.HOVER_BLUE); gp = new GradientPaint(1, 1, UIConstants.HOVER_BLUE, 1, height - 1, UIConstants.HOVER_BLUE);
} }
fillPaint(g2d, x, y, width, height, isRound, rectDirection, gp, UIConstants.ARC); fillPaint(g2d, x, y, width, height, isRound, rectDirection, gp, UIConstants.ARC);
@ -110,8 +115,14 @@ public class GUIPaintUtils {
* *
*/ */
public static final void fillPressed(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited) { public static final void fillPressed(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited) {
fillPressed(g2d, x, y, width, height, isRound, rectDirection, isAuthorityEdited, null);
}
public static final void fillPressed(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited, Color pressedColor) {
Color oldColor = g2d.getColor(); Color oldColor = g2d.getColor();
if (BaseUtils.isAuthorityEditing() && isAuthorityEdited) { if (pressedColor != null) {
g2d.setColor(pressedColor);
} else if (BaseUtils.isAuthorityEditing() && isAuthorityEdited) {
g2d.setColor(UIConstants.AUTHORITY_PRESS_BLUE); g2d.setColor(UIConstants.AUTHORITY_PRESS_BLUE);
} else { } else {
g2d.setColor(UIConstants.ATTRIBUTE_PRESS); g2d.setColor(UIConstants.ATTRIBUTE_PRESS);

Loading…
Cancel
Save