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
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<>()); |
|
} |
|
} |
|
}
|
|
|