Browse Source

Merge pull request #11250 in DESIGN/design from final/10.0 to persist/10.0

* commit '3e10e9645d631cd760cedc2f52929dc105fff609':
  REPORT-87779 FR10决策报表:不同tablayout会存在同名tab
persist/10.0
superman 2 years ago
parent
commit
6ab6970159
  1. 22
      designer-form/src/main/java/com/fr/design/designer/beans/models/ModelUtil.java
  2. 11
      designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardLayout.java
  3. 13
      designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java

22
designer-form/src/main/java/com/fr/design/designer/beans/models/ModelUtil.java

@ -19,15 +19,15 @@ import java.util.Set;
* created by Harrison on 2020/06/05 * created by Harrison on 2020/06/05
**/ **/
public abstract class ModelUtil { public abstract class ModelUtil {
public static void renameWidgetName(Form form, XCreator xCreator) { public static void renameWidgetName(Form form, XCreator xCreator) {
Set<String> duplicated = new HashSet<>(); Set<String> duplicated = new HashSet<>();
recursiveRenameWidgetName(form, xCreator, duplicated); recursiveRenameWidgetName(form, xCreator, duplicated);
} }
private static void recursiveRenameWidgetName(Form form, XCreator xCreator, Set<String> duplicated) { private static void recursiveRenameWidgetName(Form form, XCreator xCreator, Set<String> duplicated) {
Set<XCreator> nameRelatedCreators = new HashSet<>(); Set<XCreator> nameRelatedCreators = new HashSet<>();
//直接遍历出来目标值,然后按需处理 //直接遍历出来目标值,然后按需处理
xCreator.traversalNameRelatedXCreators(nameRelatedCreators); xCreator.traversalNameRelatedXCreators(nameRelatedCreators);
@ -50,9 +50,9 @@ public abstract class ModelUtil {
duplicated.add(xCreator.toData().getWidgetName()); duplicated.add(xCreator.toData().getWidgetName());
} }
} }
private static String uniqueName(Form form, XCreator xCreator, Set<String> duplicated) { private static String uniqueName(Form form, XCreator xCreator, Set<String> duplicated) {
if (xCreator.acceptType(XWParameterLayout.class)) { if (xCreator.acceptType(XWParameterLayout.class)) {
return xCreator.createDefaultName(); return xCreator.createDefaultName();
} }
@ -61,6 +61,15 @@ public abstract class ModelUtil {
if (StringUtils.isEmpty(widgetName)) { if (StringUtils.isEmpty(widgetName)) {
widgetName = xCreator.createDefaultName(); widgetName = xCreator.createDefaultName();
} }
//先保存默认名字
return uniqueName(form, widgetName, duplicated);
}
public static String uniqueName(Form form, String widgetName) {
return uniqueName(form, widgetName, new HashSet<>());
}
private static String uniqueName(Form form, String widgetName, Set<String> duplicated) {
//先保存默认名字 //先保存默认名字
String raw = widgetName; String raw = widgetName;
int i = 0; int i = 0;
@ -74,5 +83,4 @@ public abstract class ModelUtil {
duplicated.add(widgetName); duplicated.add(widgetName);
return widgetName; return widgetName;
} }
} }

11
designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardLayout.java

@ -7,6 +7,7 @@ import com.fr.base.background.ColorBackground;
import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.beans.LayoutAdapter;
import com.fr.design.designer.beans.adapters.layout.FRCardLayoutAdapter; import com.fr.design.designer.beans.adapters.layout.FRCardLayoutAdapter;
import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.beans.events.DesignerEvent;
import com.fr.design.designer.beans.models.ModelUtil;
import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.beans.models.SelectionModel;
import com.fr.design.designer.creator.CRPropertyDescriptor; import com.fr.design.designer.creator.CRPropertyDescriptor;
import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreator;
@ -21,6 +22,7 @@ import com.fr.design.mainframe.WidgetPropertyPane;
import com.fr.design.mainframe.widget.editors.BooleanEditor; import com.fr.design.mainframe.widget.editors.BooleanEditor;
import com.fr.design.mainframe.widget.editors.CardTagWLayoutBorderStyleEditor; import com.fr.design.mainframe.widget.editors.CardTagWLayoutBorderStyleEditor;
import com.fr.design.mainframe.widget.editors.DoubleEditor; import com.fr.design.mainframe.widget.editors.DoubleEditor;
import com.fr.form.main.Form;
import com.fr.form.ui.CardAddButton; import com.fr.form.ui.CardAddButton;
import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.CardSwitchButton;
import com.fr.form.ui.LayoutBorderStyle; import com.fr.form.ui.LayoutBorderStyle;
@ -39,6 +41,7 @@ import com.fr.general.cardtag.DefaultTemplateStyle;
import com.fr.general.cardtag.TemplateStyle; import com.fr.general.cardtag.TemplateStyle;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.Constants; import com.fr.stable.Constants;
import com.fr.stable.StringUtils;
import com.fr.stable.core.PropertyChangeAdapter; import com.fr.stable.core.PropertyChangeAdapter;
import javax.swing.border.Border; import javax.swing.border.Border;
@ -246,7 +249,13 @@ public class XWCardLayout extends XLayoutContainer {
*/ */
@Override @Override
protected void setWrapperName(XLayoutContainer parentPanel, String widgetName) { protected void setWrapperName(XLayoutContainer parentPanel, String widgetName) {
parentPanel.toData().setWidgetName("tablayout" + widgetName.replaceAll(createDefaultName(), "")); FormDesigner formDesigner = WidgetPropertyPane.getInstance().getEditingFormDesigner();
Form form = formDesigner.getTarget();
String name = "tablayout" + widgetName.replaceAll(createDefaultName(), StringUtils.EMPTY);
if (form.isNameExist(name)) {
name = ModelUtil.uniqueName(formDesigner.getTarget(), parentPanel.createDefaultName());
}
parentPanel.toData().setWidgetName(name);
} }
/** /**

13
designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java

@ -52,7 +52,7 @@ import java.util.List;
* @date: 2014-12-9-下午9:59:31 * @date: 2014-12-9-下午9:59:31
*/ */
public class XWCardMainBorderLayout extends XWBorderLayout { public class XWCardMainBorderLayout extends XWBorderLayout {
private static final String DEFAULT_NAME = "tablayout";
private static final int BORDER_WIDTH = 4; private static final int BORDER_WIDTH = 4;
private static final Color OUTER_BORDER_COLOR = new Color(65, 155, 249, 30); private static final Color OUTER_BORDER_COLOR = new Color(65, 155, 249, 30);
@ -85,6 +85,17 @@ public class XWCardMainBorderLayout extends XWBorderLayout {
return (WCardMainBorderLayout) super.toData(); return (WCardMainBorderLayout) super.toData();
} }
/**
* 获取默认名字
*
* @return 默认名
* @date 2014-11-25-下午6:22:40
*/
@Override
public String createDefaultName() {
return DEFAULT_NAME;
}
/** /**
* 添加标题区域 * 添加标题区域
* *

Loading…
Cancel
Save