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.
175 lines
6.2 KiB
175 lines
6.2 KiB
package com.fr.widgettheme.theme.edit.widget; |
|
|
|
import com.fine.swing.ui.layout.Column; |
|
import com.fr.base.theme.TemplateTheme; |
|
import com.fr.design.beans.BasicBeanPane; |
|
import com.fr.design.designer.IntervalConstants; |
|
import com.fr.design.gui.frpane.FontSizeComboPane; |
|
import com.fr.design.gui.frpane.UIPercentDragPane; |
|
import com.fr.design.gui.ibutton.UIColorButton; |
|
import com.fr.design.gui.ibutton.UIToggleButton; |
|
import com.fr.design.gui.icombobox.LineComboBox; |
|
import com.fr.design.gui.icontainer.UIScrollPane; |
|
import com.fr.design.gui.ilable.UILabel; |
|
import com.fr.design.gui.ispinner.UISpinner; |
|
import com.fr.design.gui.style.FRFontPane; |
|
import com.fr.design.i18n.Toolkit; |
|
import com.fr.design.layout.FRGUIPaneFactory; |
|
import com.fr.design.layout.TableLayout; |
|
import com.fr.design.layout.TableLayoutHelper; |
|
import com.fr.design.style.color.NewColorSelectBox; |
|
import com.fr.design.widget.FRWidgetFactory; |
|
import com.fr.general.IOUtils; |
|
import com.fr.stable.StringUtils; |
|
import com.fr.widgettheme.theme.widget.theme.WidgetThemeDisplayConstants; |
|
import com.fr.widgettheme.util.WidgetStyleComponentCombiner; |
|
import com.fr.widgettheme.util.WidgetThemeDesignerUtils; |
|
import org.jetbrains.annotations.Nullable; |
|
|
|
import javax.swing.BorderFactory; |
|
import javax.swing.JPanel; |
|
import java.awt.BorderLayout; |
|
import java.awt.Component; |
|
|
|
import static com.fine.swing.ui.layout.Layouts.cell; |
|
import static com.fine.swing.ui.layout.Layouts.column; |
|
|
|
|
|
/** |
|
* 组件样式编辑基础类 |
|
* |
|
* @author Coral.Chen |
|
* @since 11.0 |
|
* Created on 2023/5/22 |
|
*/ |
|
public class WidgetStyleEditPane<T extends TemplateTheme> extends BasicBeanPane<T> { |
|
|
|
// 主题色 |
|
protected NewColorSelectBox colorSelectBox; |
|
|
|
// 边框线型 |
|
protected LineComboBox lineComboBox; |
|
|
|
/** |
|
* 边框颜色 |
|
*/ |
|
protected NewColorSelectBox lineComboColorSelectBox; |
|
// 圆角边框 |
|
protected UISpinner borderRadiusSpinner; |
|
/** |
|
* 文本样式面板 |
|
*/ |
|
protected FontSizeComboPane fontSizePane; |
|
|
|
protected UIColorButton fontColorButton; |
|
|
|
/** |
|
* 控件背景和透明度配置面板 |
|
*/ |
|
protected NewColorSelectBox widgetBgColorSelectBox; |
|
protected UIPercentDragPane widgetBgAlphaDragPane; |
|
/** |
|
* 图标颜色 |
|
*/ |
|
protected NewColorSelectBox iconColorSelectBox; |
|
|
|
/** |
|
* 字体粗体斜体配置 |
|
*/ |
|
protected UIToggleButton bold; |
|
protected UIToggleButton italic; |
|
|
|
protected JPanel leftPanel; |
|
|
|
public WidgetStyleEditPane() { |
|
initComponents(); |
|
} |
|
|
|
private void initComponents() { |
|
this.setLayout(FRGUIPaneFactory.createBorderLayout()); |
|
initCommonStyleEditor(); |
|
double f = TableLayout.FILL; |
|
final double p = TableLayout.PREFERRED; |
|
double[] rowSize = {p, p, p, p, p, p, p, p, p}; |
|
double[] columnSize = {p, WidgetThemeDisplayConstants.THEME_WIDGET_COMPONENTS_COL_WIDTH}; |
|
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; |
|
Component[][] components = generateComponent(); |
|
JPanel customPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); |
|
customPane.setBorder(BorderFactory.createEmptyBorder(20, 10, 20, 10)); |
|
this.add(customPane, BorderLayout.NORTH); |
|
UIScrollPane scrollPane = new UIScrollPane(customPane); |
|
this.add(scrollPane); |
|
} |
|
|
|
/** |
|
* 初始化标签 |
|
* |
|
* @return components |
|
*/ |
|
public Component[][] generateComponent() { |
|
return new Component[][]{ |
|
new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Color")), colorSelectBox}, |
|
new Component[]{WidgetThemeDesignerUtils.createTopAlignmentLabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Widget_Background")), initBackGroundComponent()}, |
|
new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Border_Line")), lineComboBox}, |
|
new Component[]{null, lineComboColorSelectBox}, |
|
new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Border_Radius")), borderRadiusSpinner}, |
|
new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Icon_Color")), iconColorSelectBox}, |
|
new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Widget_Theme_Text_Style")), WidgetStyleComponentCombiner.combineTextStyleComponent(fontSizePane, fontColorButton, italic, bold)} |
|
}; |
|
} |
|
|
|
private Column initBackGroundComponent() { |
|
return column(10, |
|
cell(widgetBgColorSelectBox), |
|
cell(FRWidgetFactory.createLineWrapLabel(Toolkit.i18nText("Fine-Design_Form_Widget-Style_Alpha"))), |
|
cell(widgetBgAlphaDragPane) |
|
).getComponent(); |
|
} |
|
|
|
private void initCommonStyleEditor() { |
|
colorSelectBox = new NewColorSelectBox(WidgetThemeDisplayConstants.THEME_WIDGET_COMPONENT_WIDTH, true); |
|
colorSelectBox.setSelectObject(WidgetThemeDisplayConstants.DEFAULT_THEME_COLOR); |
|
widgetBgColorSelectBox = new NewColorSelectBox(WidgetThemeDisplayConstants.THEME_WIDGET_COMPONENT_WIDTH, true); |
|
widgetBgAlphaDragPane = new UIPercentDragPane(); |
|
initLineBox(); |
|
borderRadiusSpinner = new UISpinner(0, Integer.MAX_VALUE, 1); |
|
iconColorSelectBox = new NewColorSelectBox(WidgetThemeDisplayConstants.THEME_WIDGET_COMPONENT_WIDTH, true); |
|
initFontSizePane(); |
|
fontColorButton = new UIColorButton(); |
|
bold = new UIToggleButton(IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/bold.png")); |
|
italic = new UIToggleButton(IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/italic.png")); |
|
} |
|
|
|
protected void initFontSizePane() { |
|
fontSizePane = new FontSizeComboPane(FRFontPane.getFontSizes()); |
|
} |
|
|
|
/** |
|
* 初始化边框线型 |
|
*/ |
|
public void initLineBox() { |
|
} |
|
|
|
|
|
@Override |
|
public void populateBean(T t) { |
|
|
|
} |
|
|
|
@Nullable |
|
@Override |
|
public T updateBean() { |
|
return null; |
|
} |
|
|
|
@Override |
|
public void updateBean(T t) { |
|
} |
|
|
|
|
|
@Override |
|
protected String title4PopupWindow() { |
|
return StringUtils.EMPTY; |
|
} |
|
|
|
}
|
|
|