Browse Source

Pull request #5423: REPORT-57128&REPORT-57657 修复参数面板中会显示间距线的问题&修复报表块图表块不显示间距线的问题

Merge in DESIGN/design from ~FANGLEI/design10.0:feature/10.0 to feature/10.0

* commit '5028683f568c66667eed0da8cfa3eb7bc7d0691f':
  REPORT-57128&REPORT-57657 优化代码冗余逻辑
  REPORT-57128&REPORT-57657 修复参数面板中会显示间距线的问题&修复报表块图表块不显示间距线的问题
feature/10.0
fanglei 3 years ago
parent
commit
338508ce32
  1. 50
      designer-form/src/main/java/com/fr/design/mainframe/FormSpacingLineDrawer.java

50
designer-form/src/main/java/com/fr/design/mainframe/FormSpacingLineDrawer.java

@ -1,8 +1,13 @@
package com.fr.design.mainframe; package com.fr.design.mainframe;
import com.fr.design.designer.creator.XChartEditor;
import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.designer.creator.XCreatorUtils;
import com.fr.design.designer.creator.XElementCase;
import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XLayoutContainer;
import com.fr.design.designer.creator.XWParameterLayout;
import com.fr.design.form.parameter.FormParaDesigner;
import com.fr.design.form.util.FormDesignerUtils;
import com.fr.design.utils.ComponentUtils; import com.fr.design.utils.ComponentUtils;
import com.fr.stable.Constants; import com.fr.stable.Constants;
import com.fr.stable.GraphDrawHelper; import com.fr.stable.GraphDrawHelper;
@ -131,14 +136,16 @@ public class FormSpacingLineDrawer {
GraphDrawHelper.drawString(g2d, text, labelX, labelY); GraphDrawHelper.drawString(g2d, text, labelX, labelY);
} }
private boolean isSelectedParaComponent() {
return designer.getParaComponent() == designer.getSelectionModel().getSelection().getSelectedCreator();
}
private boolean isSelectedRootComponent() { private boolean isSelectedRootComponent() {
return designer.getSelectionModel().getSelection().size() == 1 && return designer.isRoot(designer.getSelectionModel().getSelection().getSelectedCreator());
designer.isRoot(designer.getSelectionModel().getSelection().getSelectedCreator());
} }
private boolean isSelectedForm() { private boolean isSelectedForm() {
return designer.getSelectionModel().getSelection().size() == 1 && return designer.getSelectionModel().getSelection().getSelectedCreator().getParent() == null;
designer.getSelectionModel().getSelection().getSelectedCreator().getParent() == null;
} }
private boolean isNeedExtendedLine(AbstractFormParallelLine[] nearestSides) { private boolean isNeedExtendedLine(AbstractFormParallelLine[] nearestSides) {
@ -146,11 +153,38 @@ public class FormSpacingLineDrawer {
} }
private boolean isSelectedRootPane() { private boolean isSelectedRootPane() {
return isSelectedForm() || isSelectedRootComponent(); // form、body、para这三个选中了,都不要画任何间距线
return isSelectedForm() || isSelectedRootComponent() || isSelectedParaComponent();
}
// 当前组件是否在参数面板里面
private boolean isCompInPara(XCreator creator) {
XLayoutContainer container = XCreatorUtils.getHotspotContainer(creator);
boolean xCreatorAccept = creator.acceptType(XWParameterLayout.class);
boolean containerAccept = container != null && container.acceptType(XWParameterLayout.class);
return xCreatorAccept || containerAccept;
}
private boolean isBodyAbsoluteLayout() {
return !(designer instanceof FormParaDesigner) && FormDesignerUtils.isBodyAbsolute(designer);
}
private boolean isSelectedCompInPara() {
return isCompInPara(designer.getSelectionModel().getSelection().getSelectedCreator());
}
private boolean isHoveredCompInPara() {
return isCompInPara(hoverCreator);
}
private boolean isSelectedCompOrHoveredCompInPara() {
return isSelectedCompInPara() || isHoveredCompInPara();
} }
private boolean isDrawSpacingLine() { private boolean isDrawSpacingLine() {
return !isSelectedRootPane() && hoverCreator != null && isMouseMoveEvent; return isBodyAbsoluteLayout() && !isSelectedRootPane() && hoverCreator != null && !isSelectedCompOrHoveredCompInPara() && isMouseMoveEvent;
} }
private AbstractFormParallelLine[] getNearestHorizontalSide() { private AbstractFormParallelLine[] getNearestHorizontalSide() {
@ -205,6 +239,10 @@ public class FormSpacingLineDrawer {
if (parent == component) { if (parent == component) {
return null; return null;
} }
if (component instanceof XChartEditor || component instanceof XElementCase) {
return (XCreator) component.getParent();
}
return component; return component;
} }
} else { } else {

Loading…
Cancel
Save