帆软报表设计器源代码。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

107 lines
4.3 KiB

package com.fr.design.widgettheme.processor;
import com.fr.widgettheme.util.WidgetThemeDesignerUtils;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.designer.creator.XButton;
import com.fr.design.designer.creator.XCheckBox;
import com.fr.design.designer.creator.XCheckBoxGroup;
import com.fr.design.designer.creator.XComboBox;
import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.creator.XDateEditor;
import com.fr.design.designer.creator.XLabel;
import com.fr.design.designer.creator.XRadioGroup;
import com.fr.design.designer.creator.XTextArea;
import com.fr.design.designer.creator.XTreeComboBoxEditor;
import com.fr.design.designer.creator.XTreeEditor;
import com.fr.design.designer.creator.XWParameterLayout;
import com.fr.design.designer.creator.XWrapperedFieldEditor;
import com.fr.design.widgettheme.LabelSettingPane;
import com.fr.design.widgettheme.ParaButtonSettingPane;
import com.fr.design.widgettheme.ParaEditorSettingPane;
import com.fr.design.widgettheme.ParaTreeEditorSettingPane;
import com.fr.widgettheme.ParameterBackgroundStyleSettingPane;
import com.fr.design.widgettheme.common.NormalButtonSettingPane;
import java.util.List;
/**
* 参数面板控件主题窗口创建处理类
* 当前类型被接受时,添加对应pane到extraPaneList
*
* @author obo
* @since 11.0
* Created on 2023/11/13
*/
public class WidgetThemeParaCreatorPaneAcceptor {
private WidgetThemeParaCreatorPaneAcceptor() {}
/**
* 处理对应的参数面板控件creator
* 当类型判断符合时,将扩展的pane添加到list
*
* @param creator 控件creator
* @param extraPaneList 扩展paneList
*/
public static <T> void accept(XCreator creator, List<BasicBeanPane<T>> extraPaneList) {
if (WidgetThemeDesignerUtils.enableWidgetEnhance()) {
acceptEditor(creator, extraPaneList);
acceptRoot(creator, extraPaneList);
acceptTree(creator, extraPaneList);
acceptLabel(creator, extraPaneList);
acceptNormal(creator, extraPaneList);
acceptButton(creator, extraPaneList);
}
}
private static <T> void insertShortCut(List<BasicBeanPane<T>> extraPaneList, BasicBeanPane pane) {
extraPaneList.add(0, pane);
}
private static <T> void acceptEditor(XCreator creator, List<BasicBeanPane<T>> extraPaneList) {
boolean accept = creator instanceof XWrapperedFieldEditor
|| creator instanceof XTextArea
|| creator instanceof XComboBox
|| creator instanceof XDateEditor
|| creator instanceof XTreeComboBoxEditor
|| WidgetThemeDesignerUtils.isNewComboBoxTreeEditor(creator);
if (accept) {
insertShortCut(extraPaneList, new ParaEditorSettingPane<>());
}
}
private static <T> void acceptRoot(XCreator creator, List<BasicBeanPane<T>> extraPaneList) {
boolean accept = creator instanceof XWParameterLayout;
if (accept) {
insertShortCut(extraPaneList, new ParameterBackgroundStyleSettingPane());
}
}
private static <T> void acceptTree(XCreator creator, List<BasicBeanPane<T>> extraPaneList) {
boolean accept = creator instanceof XTreeEditor && !(creator instanceof XTreeComboBoxEditor);
if (accept) {
insertShortCut(extraPaneList, new ParaTreeEditorSettingPane<>());
}
}
private static <T> void acceptLabel(XCreator creator, List<BasicBeanPane<T>> extraPaneList) {
boolean accept = creator instanceof XLabel;
if (accept) {
insertShortCut(extraPaneList, new LabelSettingPane<>());
}
}
private static <T> void acceptNormal(XCreator creator, List<BasicBeanPane<T>> extraPaneList) {
boolean accept = creator instanceof XButton;
if (accept) {
insertShortCut(extraPaneList, new NormalButtonSettingPane<>());
}
}
private static <T> void acceptButton(XCreator creator, List<BasicBeanPane<T>> extraPaneList) {
boolean accept = creator instanceof XRadioGroup || creator instanceof XCheckBoxGroup || creator instanceof XCheckBox;
if (accept) {
insertShortCut(extraPaneList, new ParaButtonSettingPane<>());
}
}
}