Browse Source

REPORT-92439 mac下-展开收起图标的问题

newui
obo 2 years ago
parent
commit
9277d91381
  1. 7
      designer-base/src/main/java/com/fr/design/gui/icontainer/UIEastResizableContainer.java
  2. 41
      designer-base/src/main/java/com/fr/design/gui/icontainer/UIResizableContainer.java
  3. 7
      designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java

7
designer-base/src/main/java/com/fr/design/gui/icontainer/UIEastResizableContainer.java

@ -1,6 +1,8 @@
package com.fr.design.gui.icontainer;
import com.fr.base.svg.SVGLoader;
import com.fr.base.svg.SystemScaleUtils;
import com.fr.design.base.mode.DesignModeContext;
import com.fr.design.constants.UIConstants;
import com.fr.design.gui.ibutton.UIButton;
@ -339,7 +341,10 @@ public class UIEastResizableContainer extends JPanel {
}
}
SvgPaintUtils.beforePaint((Graphics2D) g);
g.drawImage(button, 18, 7, this);
//如果环境支持高清化,在调整缩放比例时绘制svg会影响到位置的变化,若图标无确定裁剪位置,则需要进行调整
int x = SystemScaleUtils.isJreHiDPIEnabled() ? (int) (10 * SVGLoader.SYSTEM_SCALE) : 10;
int y = SystemScaleUtils.isJreHiDPIEnabled() ? (int) (7 * SVGLoader.SYSTEM_SCALE) : 7;
g.drawImage(button, x, y, null);
SvgPaintUtils.afterPaint((Graphics2D) g);
}
}

41
designer-base/src/main/java/com/fr/design/gui/icontainer/UIResizableContainer.java

@ -1,14 +1,27 @@
package com.fr.design.gui.icontainer;
import com.fr.base.svg.SVGLoader;
import com.fr.base.svg.SystemScaleUtils;
import com.fr.base.vcs.DesignerMode;
import com.fr.design.constants.UIConstants;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.utils.SvgPaintUtils;
import com.fr.stable.Constants;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.stable.Constants;
import javax.swing.*;
import java.awt.*;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.LayoutManager;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
@ -16,6 +29,8 @@ import java.awt.event.MouseMotionListener;
public class UIResizableContainer extends JPanel {
private static final long serialVersionUID = 1854340560790476907L;
private static final int MAX_PARA_HEIGHT = 240;
private final boolean HI_DPI_SUPPORT = SystemScaleUtils.isJreHiDPIEnabled();
private int containerWidth = 240;
private int preferredWidth = 240;
private int toolPaneY = 300;
@ -412,9 +427,13 @@ public class UIResizableContainer extends JPanel {
Image downButton = (downModel == UIConstants.MODEL_NORMAL ? UIConstants.DRAG_DOWN_NORMAL : UIConstants.DRAG_DOWN_PRESS);
g.drawImage(UIConstants.DRAG_BAR_LIGHT, 0, 0, getWidth(), getHeight(), null);
SvgPaintUtils.beforePaint((Graphics2D) g);
g.drawImage(UIConstants.DRAG_LINE, (getWidth() - toolPaneHeight) / 2, 3, null);
g.drawImage(upButton, ARROW_MARGIN, 1, null);
g.drawImage(downButton, getWidth() - toolPaneHeight - ARROW_MARGIN, 1, null);
//如果环境支持高清化,在调整缩放比例时绘制svg会影响到位置的变化,若图标无确定裁剪位置,则需要进行调整
int dragLineX = HI_DPI_SUPPORT ? (int) ((getWidth() - toolPaneHeight) / 2 * SVGLoader.SYSTEM_SCALE) : (getWidth() - toolPaneHeight) / 2;
int dragLineY = HI_DPI_SUPPORT ? (int) (3 * SVGLoader.SYSTEM_SCALE) : 3;
int downButtonX = HI_DPI_SUPPORT ? (int) ((getWidth() - toolPaneHeight - ARROW_MARGIN) * SVGLoader.SYSTEM_SCALE) : (getWidth() - toolPaneHeight - ARROW_MARGIN);
g.drawImage(UIConstants.DRAG_LINE, dragLineX, dragLineY, null);
g.drawImage(upButton, ARROW_MARGIN, 0, null);
g.drawImage(downButton, downButtonX, 0, null);
SvgPaintUtils.afterPaint((Graphics2D) g);
}
}
@ -512,7 +531,12 @@ public class UIResizableContainer extends JPanel {
button = UIConstants.DRAG_LEFT_PRESS;
}
}
g.drawImage(button, -1, ARROW_MARGIN_VERTICAL, this);
SvgPaintUtils.beforePaint((Graphics2D) g);
//如果环境支持高清化,在调整缩放比例时绘制svg会影响到位置的变化,若图标无确定裁剪位置,则需要进行调整
int x = HI_DPI_SUPPORT ? (int) (-6 * SVGLoader.SYSTEM_SCALE) : -6;
int y = HI_DPI_SUPPORT ? (int) (ARROW_MARGIN_VERTICAL * SVGLoader.SYSTEM_SCALE) : ARROW_MARGIN_VERTICAL;
g.drawImage(button, x, y, this);
SvgPaintUtils.afterPaint((Graphics2D) g);
} else {
g.drawImage(UIConstants.DRAG_BAR_LIGHT, 0, 0, toolPaneHeight, getHeight(), null);
if (containerWidth == toolPaneHeight) {
@ -528,7 +552,8 @@ public class UIResizableContainer extends JPanel {
button = UIConstants.DRAG_RIGHT_PRESS;
}
}
g.drawImage(button, 2, ARROW_MARGIN_VERTICAL, this);
int x = HI_DPI_SUPPORT ? (int) (10 * SVGLoader.SYSTEM_SCALE) : 10;
g.drawImage(button, x, ARROW_MARGIN_VERTICAL, this);
}
if (isLeftRightDragEnabled) {
g.drawImage(UIConstants.DRAG_DOT_VERTICAL, 2, getHeight() / 2, 5, toolPaneHeight, null);

7
designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java

@ -2,6 +2,8 @@ package com.fr.design.mainframe;
import com.fr.base.FRContext;
import com.fr.base.svg.IconUtils;
import com.fr.base.svg.SVGLoader;
import com.fr.base.svg.SystemScaleUtils;
import com.fr.base.vcs.DesignerMode;
import com.fr.design.DesignerEnvManager;
import com.fr.design.ExtraDesignClassManager;
@ -1315,7 +1317,10 @@ public class EastRegionContainerPane extends UIEastResizableContainer {
button = UIConstants.POP_BUTTON_UP;
}
SvgPaintUtils.beforePaint((Graphics2D) g);
g.drawImage(button, ARROW_RANGE_START + 8, 4, null);
//如果环境支持高清化,在调整缩放比例时绘制svg会影响到位置的变化,若图标无确定裁剪位置,则需要进行调整
int x = SystemScaleUtils.isJreHiDPIEnabled() ? (int) ((ARROW_RANGE_START + 8) * SVGLoader.SYSTEM_SCALE) : (ARROW_RANGE_START + 8);
int y = SystemScaleUtils.isJreHiDPIEnabled() ? (int) (4 * SVGLoader.SYSTEM_SCALE) : 4;
g.drawImage(button, x, y, null);
SvgPaintUtils.afterPaint((Graphics2D) g);
}
}

Loading…
Cancel
Save