Browse Source

REPORT-67316 优化重复代码

feature/x
kerry 2 years ago
parent
commit
f2931631f0
  1. 17
      designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java
  2. 16
      designer-form/src/main/java/com/fr/design/mainframe/FormArea.java
  3. 12
      designer-form/src/main/java/com/fr/design/mainframe/FormSelectionUtils.java

17
designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java

@ -472,4 +472,21 @@ public class XCreatorUtils {
}
return container;
}
/**
* 循环遍历组件调整组件间隙
* @param creator
*/
public static void traverAndAdjust(XCreator creator) {
for (int i = 0; i < creator.getComponentCount(); i++) {
Object object = creator.getComponent(i);
if (object instanceof XCreator) {
XCreator temp = (XCreator) object;
temp.adjustCompSize(0.0);
traverAndAdjust(temp);
}
}
}
}

16
designer-form/src/main/java/com/fr/design/mainframe/FormArea.java

@ -4,6 +4,7 @@ import com.fr.design.actions.UpdateAction;
import com.fr.design.constants.UIConstants;
import com.fr.design.designer.beans.events.DesignerEvent;
import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.creator.XCreatorUtils;
import com.fr.design.designer.creator.XLayoutContainer;
import com.fr.design.designer.creator.XWBorderLayout;
import com.fr.design.designer.creator.XWFitLayout;
@ -447,7 +448,7 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
XLayoutContainer root = FormArea.this.designer.getRootComponent();
if (root.acceptType(XWFitLayout.class)) {
XWFitLayout layout = (XWFitLayout) root;
traverAndAdjust(layout, 0.0);
XCreatorUtils.traverAndAdjust(layout);
layout.adjustCreatorsWhileSlide(0.0);
// 拖动滑块,先将内部组件百分比大小计算,再计算容器大小
Dimension d = new Dimension(layout.getWidth(), layout.getHeight());
@ -469,19 +470,6 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
}
}
//循环遍历布局,按百分比调整子组件大小
private void traverAndAdjust(XCreator creator, double percent) {
for (int i = 0; i < creator.getComponentCount(); i++) {
Object object = creator.getComponent(i);
if (object instanceof XCreator) {
XCreator temp = (XCreator) object;
temp.adjustCompSize(percent);
traverAndAdjust(temp, percent);
}
}
}
/**
* 增加刻度条
*/

12
designer-form/src/main/java/com/fr/design/mainframe/FormSelectionUtils.java

@ -293,22 +293,12 @@ public class FormSelectionUtils {
XCreator copiedCreator = XCreatorUtils.createXCreator(copied, xCreator.getSize());
//主要用来处理组件间隔和padding,保证界面上展示的组件尺寸是计算过padding和组件间隔的
LayoutUtils.layoutContainer(copiedCreator);
traverAndAdjust(copiedCreator);
XCreatorUtils.traverAndAdjust(copiedCreator);
ArrayList<String> nameSpace = new ArrayList<>();
copyWidgetName(form, nameSpace, copiedCreator);
return copiedCreator;
}
private static void traverAndAdjust(XCreator creator) {
for (int i = 0; i < creator.getComponentCount(); i++) {
Object object = creator.getComponent(i);
if (object instanceof XCreator) {
XCreator temp = (XCreator) object;
temp.adjustCompSize(0.0);
traverAndAdjust(temp);
}
}
}
/**
* 拷贝组件

Loading…
Cancel
Save