|
|
|
@ -23,11 +23,12 @@ import com.fr.form.ui.mobile.radiogroup.ImageMobileStyle;
|
|
|
|
|
import com.fr.general.FRFont; |
|
|
|
|
|
|
|
|
|
import javax.swing.*; |
|
|
|
|
import javax.swing.event.ChangeEvent; |
|
|
|
|
import javax.swing.event.ChangeListener; |
|
|
|
|
import java.awt.*; |
|
|
|
|
import java.awt.event.ItemEvent; |
|
|
|
|
import java.awt.event.ItemListener; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Arrays; |
|
|
|
|
|
|
|
|
|
public class ImageCustomDefinePane extends MobileStyleCustomDefinePane { |
|
|
|
|
|
|
|
|
@ -36,12 +37,21 @@ public class ImageCustomDefinePane extends MobileStyleCustomDefinePane {
|
|
|
|
|
private JPanel scrollPanel; |
|
|
|
|
private UIComboBox custom; |
|
|
|
|
private JPanel centerPane; |
|
|
|
|
// 按钮排布+按钮排布下拉框panel;
|
|
|
|
|
private JPanel buttonAlignPane; |
|
|
|
|
|
|
|
|
|
// 固定列数 数字panel
|
|
|
|
|
private JPanel columnSizePane; |
|
|
|
|
private UISpinner leftSpinner; |
|
|
|
|
private UISpinner rightSpinner; |
|
|
|
|
private UISpinner topSpinner; |
|
|
|
|
private UISpinner bottomSpinner; |
|
|
|
|
|
|
|
|
|
private UIComboBox layoutTypeCombo; |
|
|
|
|
|
|
|
|
|
private UIComboBox buttonAlignCombo; |
|
|
|
|
|
|
|
|
|
private UISpinner columnSizeSpinner; |
|
|
|
|
private IconConfigPane initialIconConfigPane; |
|
|
|
|
private IconConfigPane selectedIconConfigPane; |
|
|
|
|
|
|
|
|
@ -115,53 +125,154 @@ public class ImageCustomDefinePane extends MobileStyleCustomDefinePane {
|
|
|
|
|
return FRGUIPaneFactory.createVerticalFlowLayout_Pane(true, FlowLayout.LEADING, 0, 10); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void addPaddingPane() { |
|
|
|
|
centerPane.add(DesignerUtils.createTitleSplitLine(Toolkit.i18nText("Fine-Plugin-RadioGroup_Layout"))); |
|
|
|
|
private void initLayoutCombo() { |
|
|
|
|
layoutTypeCombo = new UIComboBox(new String[]{ |
|
|
|
|
Toolkit.i18nText("Fine-Plugin-RadioGroup_Layout_Single_Line"), |
|
|
|
|
Toolkit.i18nText("Fine-Plugin-RadioGroup_Layout_Auto"), |
|
|
|
|
Toolkit.i18nText("Fine-Plugin-RadioGroup_Layout_Fixed") |
|
|
|
|
}); |
|
|
|
|
layoutTypeCombo.setPreferredSize(new Dimension(DesignerUtils.LARGE_COMBO_WIDTH, 20)); |
|
|
|
|
layoutTypeCombo.addItemListener(new ItemListener() { |
|
|
|
|
@Override |
|
|
|
|
public void itemStateChanged(ItemEvent e) { |
|
|
|
|
if (layoutTypeCombo.getSelectedIndex() == DesignerUtils.K_LAYOUT_SINGLE) { |
|
|
|
|
buttonAlignPane.setVisible(true); |
|
|
|
|
columnSizePane.setVisible(false); |
|
|
|
|
} |
|
|
|
|
if (layoutTypeCombo.getSelectedIndex() == DesignerUtils.K_LAYOUT_AUTO) { |
|
|
|
|
buttonAlignPane.setVisible(false); |
|
|
|
|
columnSizePane.setVisible(false); |
|
|
|
|
} |
|
|
|
|
if (layoutTypeCombo.getSelectedIndex() == DesignerUtils.K_LAYOUT_FIXED) { |
|
|
|
|
buttonAlignPane.setVisible(false); |
|
|
|
|
columnSizePane.setVisible(true); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
UILabel paddingHintLabel = DesignerUtils.createConfigLabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Button_Padding")); |
|
|
|
|
UILabel emptyHintLabel = DesignerUtils.createConfigLabel(Toolkit.i18nText("")); |
|
|
|
|
/** |
|
|
|
|
* 初始化按钮排布面板 |
|
|
|
|
*/ |
|
|
|
|
private void initButtonAlignPane() { |
|
|
|
|
UILabel buttonAlignLabel = DesignerUtils.createConfigLabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Alignment")); |
|
|
|
|
buttonAlignCombo = new UIComboBox(new String[]{ |
|
|
|
|
Toolkit.i18nText("Fine-Plugin-RadioGroup_Alignment_Nature"), |
|
|
|
|
Toolkit.i18nText("Fine-Plugin-RadioGroup_Alignment_Split"), |
|
|
|
|
}); |
|
|
|
|
buttonAlignCombo.setPreferredSize(new Dimension(DesignerUtils.LARGE_COMBO_WIDTH, 20)); |
|
|
|
|
buttonAlignPane = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{buttonAlignLabel, buttonAlignCombo}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.VGAP_SMALL); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
UILabel leftLabel = new UILabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Padding_Left")); |
|
|
|
|
leftSpinner = new UISpinner(0, Integer.MAX_VALUE, 1, DesignerUtils.kDefaultHorizontalPadding); |
|
|
|
|
/** |
|
|
|
|
* 初始化固定列数面板 |
|
|
|
|
*/ |
|
|
|
|
private void initColumnSizePane() { |
|
|
|
|
UILabel columnSizeLabel = DesignerUtils.createConfigLabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Layout_Fixed_Number")); |
|
|
|
|
columnSizeSpinner = new UISpinner(0, Integer.MAX_VALUE, 1, DesignerUtils.INITIAL_COLUMN_SIZE); |
|
|
|
|
columnSizeSpinner.setPreferredSize(new Dimension(DesignerUtils.LARGE_COMBO_WIDTH, 20)); |
|
|
|
|
columnSizePane = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{columnSizeLabel, columnSizeSpinner}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.VGAP_SMALL); |
|
|
|
|
columnSizePane.setVisible(false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
UILabel rightLabel = new UILabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Padding_Right")); |
|
|
|
|
rightSpinner = new UISpinner(0, Integer.MAX_VALUE, 1, DesignerUtils.kDefaultHorizontalPadding); |
|
|
|
|
private JPanel initVPaddingConfig() { |
|
|
|
|
|
|
|
|
|
UILabel topLabel = new UILabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Padding_Top")); |
|
|
|
|
topSpinner = new UISpinner(0, Integer.MAX_VALUE, 1, DesignerUtils.kDefaultVerticalPadding); |
|
|
|
|
|
|
|
|
|
UILabel bottomLabel = new UILabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Padding_Bottom")); |
|
|
|
|
bottomSpinner = new UISpinner(0, Integer.MAX_VALUE, 1, DesignerUtils.kDefaultVerticalPadding); |
|
|
|
|
JPanel topSpinnerPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{topLabel, topSpinner}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.VGAP_SMALL); |
|
|
|
|
JPanel bottomSpinnerPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{bottomLabel, bottomSpinner}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.VGAP_SMALL); |
|
|
|
|
|
|
|
|
|
return TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{topSpinnerPanel, bottomSpinnerPanel}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_W1, LayoutConstants.VGAP_SMALL); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
private JPanel initHPaddingConfig() { |
|
|
|
|
UILabel leftLabel = new UILabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Padding_Left")); |
|
|
|
|
leftSpinner = new UISpinner(0, Integer.MAX_VALUE, 1, DesignerUtils.kDefaultHorizontalPadding); |
|
|
|
|
|
|
|
|
|
UILabel rightLabel = new UILabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Padding_Right")); |
|
|
|
|
rightSpinner = new UISpinner(0, Integer.MAX_VALUE, 1, DesignerUtils.kDefaultHorizontalPadding); |
|
|
|
|
JPanel leftSpinnerPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{leftLabel, leftSpinner}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.VGAP_SMALL); |
|
|
|
|
JPanel rightSpinnerPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{rightLabel, rightSpinner}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.VGAP_SMALL); |
|
|
|
|
JPanel topSpinnerPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{topLabel, topSpinner}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.VGAP_SMALL); |
|
|
|
|
JPanel bottomSpinnerPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{bottomLabel, bottomSpinner}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.VGAP_SMALL); |
|
|
|
|
|
|
|
|
|
JPanel vPaddingSpinnerPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{topSpinnerPanel, bottomSpinnerPanel}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_W1, LayoutConstants.VGAP_SMALL); |
|
|
|
|
JPanel hPaddingSpinnerPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{leftSpinnerPanel, rightSpinnerPanel}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_W1, LayoutConstants.VGAP_SMALL); |
|
|
|
|
return TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{leftSpinnerPanel, rightSpinnerPanel}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_W1, LayoutConstants.VGAP_SMALL); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void addPaddingPane() { |
|
|
|
|
centerPane.add(DesignerUtils.createTitleSplitLine(Toolkit.i18nText("Fine-Plugin-RadioGroup_Layout"))); |
|
|
|
|
|
|
|
|
|
UILabel paddingHintLabel = DesignerUtils.createConfigLabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Button_Padding")); |
|
|
|
|
UILabel emptyHintLabel = DesignerUtils.createConfigLabel(Toolkit.i18nText("")); |
|
|
|
|
|
|
|
|
|
UILabel layoutTypeLabel = DesignerUtils.createConfigLabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Layout_Type")); |
|
|
|
|
initLayoutCombo(); |
|
|
|
|
initButtonAlignPane(); |
|
|
|
|
initColumnSizePane(); |
|
|
|
|
|
|
|
|
|
double p = TableLayout.PREFERRED; |
|
|
|
|
double[] rowSize = {p, p}; |
|
|
|
|
double[] rowSize = {p, p, p}; |
|
|
|
|
double[] columnSize = {p, p}; |
|
|
|
|
JPanel paddingPanel = TableLayoutHelper.createCommonTableLayoutPane(new Component[][]{ |
|
|
|
|
{paddingHintLabel, vPaddingSpinnerPanel}, |
|
|
|
|
{emptyHintLabel, hPaddingSpinnerPanel}, |
|
|
|
|
{paddingHintLabel, initVPaddingConfig()}, |
|
|
|
|
{emptyHintLabel, initHPaddingConfig()}, |
|
|
|
|
{layoutTypeLabel, layoutTypeCombo}, |
|
|
|
|
}, rowSize, columnSize, 10); |
|
|
|
|
|
|
|
|
|
centerPane.add(paddingPanel); |
|
|
|
|
centerPane.add(buttonAlignPane); |
|
|
|
|
centerPane.add(columnSizePane); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void addIconPane() { |
|
|
|
|
/** |
|
|
|
|
* 初始化默认字体配置面版 |
|
|
|
|
*/ |
|
|
|
|
private void initInitialIconConfigPane() { |
|
|
|
|
initialIconConfigPane = new IconConfigPane(8, true); |
|
|
|
|
initialIconConfigPane.addAddCountListener(new ChangeListener() { |
|
|
|
|
@Override |
|
|
|
|
public void stateChanged(ChangeEvent e) { |
|
|
|
|
initialIconConfigPane.addCount(); |
|
|
|
|
selectedIconConfigPane.addCount(); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
initialIconConfigPane.addDeleteCountListener(new ChangeListener() { |
|
|
|
|
@Override |
|
|
|
|
public void stateChanged(ChangeEvent e) { |
|
|
|
|
initialIconConfigPane.deleteCount(); |
|
|
|
|
selectedIconConfigPane.deleteCount(); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 初始化选择字体配置面板 |
|
|
|
|
*/ |
|
|
|
|
private void initSelectedIconConfigPane() { |
|
|
|
|
selectedIconConfigPane = new IconConfigPane(8, true); |
|
|
|
|
selectedIconConfigPane.addAddCountListener(new ChangeListener() { |
|
|
|
|
@Override |
|
|
|
|
public void stateChanged(ChangeEvent e) { |
|
|
|
|
initialIconConfigPane.addCount(); |
|
|
|
|
selectedIconConfigPane.addCount(); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
selectedIconConfigPane.addDeleteCountListener(new ChangeListener() { |
|
|
|
|
@Override |
|
|
|
|
public void stateChanged(ChangeEvent e) { |
|
|
|
|
initialIconConfigPane.deleteCount(); |
|
|
|
|
selectedIconConfigPane.deleteCount(); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
private void addIconPane() { |
|
|
|
|
centerPane.add(DesignerUtils.createTitleSplitLine(Toolkit.i18nText("Fine-Plugin-RadioGroup_Icon"))); |
|
|
|
|
|
|
|
|
|
UILabel initialLabel = DesignerUtils.createConfigLabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Icon_Init")); |
|
|
|
|
UILabel selectedLabel = DesignerUtils.createConfigLabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Icon_Select")); |
|
|
|
|
|
|
|
|
|
initialIconConfigPane = new IconConfigPane(8); |
|
|
|
|
selectedIconConfigPane = new IconConfigPane(8); |
|
|
|
|
|
|
|
|
|
initInitialIconConfigPane(); |
|
|
|
|
initSelectedIconConfigPane(); |
|
|
|
|
JPanel container = FRGUIPaneFactory.createVerticalFlowLayout_Pane(true, FlowLayout.LEADING, 0, 5); |
|
|
|
|
|
|
|
|
|
JPanel initialPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); |
|
|
|
@ -175,7 +286,6 @@ public class ImageCustomDefinePane extends MobileStyleCustomDefinePane {
|
|
|
|
|
container.add(selectedPane); |
|
|
|
|
|
|
|
|
|
centerPane.add(container); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void addFontPane() { |
|
|
|
@ -183,7 +293,7 @@ public class ImageCustomDefinePane extends MobileStyleCustomDefinePane {
|
|
|
|
|
|
|
|
|
|
UILabel initialFontLabel = DesignerUtils.createConfigLabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Font_init")); |
|
|
|
|
initialFontConfPane = new FontConfigPane(); |
|
|
|
|
initialFontConfPane.setFontColor(new Color(204, 204, 204)); |
|
|
|
|
initialFontConfPane.setFontColor(new Color(102, 102, 102)); |
|
|
|
|
JPanel fontPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{initialFontLabel, initialFontConfPane}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.VGAP_MEDIUM); |
|
|
|
|
centerPane.add(fontPanel); |
|
|
|
|
UILabel selectedFontLabel = DesignerUtils.createConfigLabel(Toolkit.i18nText("Fine-Plugin-RadioGroup_Font_Select")); |
|
|
|
@ -205,8 +315,11 @@ public class ImageCustomDefinePane extends MobileStyleCustomDefinePane {
|
|
|
|
|
rightSpinner.setValue(mobileStyle.getRightPadding()); |
|
|
|
|
topSpinner.setValue(mobileStyle.getTopPadding()); |
|
|
|
|
bottomSpinner.setValue(mobileStyle.getBottomPadding()); |
|
|
|
|
initialIconConfigPane.populate(new ArrayList<>(Arrays.asList(mobileStyle.getInitialIconNames()))); |
|
|
|
|
selectedIconConfigPane.populate(new ArrayList<>(Arrays.asList(mobileStyle.getSelectedIconNames()))); |
|
|
|
|
layoutTypeCombo.setSelectedIndex(mobileStyle.getButtonLayoutType()); |
|
|
|
|
buttonAlignCombo.setSelectedIndex(mobileStyle.getButtonAlign()); |
|
|
|
|
columnSizeSpinner.setValue(mobileStyle.getButtonColumnSize()); |
|
|
|
|
initialIconConfigPane.refreshByIconNames(mobileStyle.getInitialIconNames(), true); |
|
|
|
|
selectedIconConfigPane.refreshByIconNames(mobileStyle.getSelectedIconNames(), true); |
|
|
|
|
if(mobileStyle.getInitialFont() != null) { |
|
|
|
|
initialFontConfPane.populate(mobileStyle.getInitialFont()); |
|
|
|
|
} |
|
|
|
@ -224,6 +337,9 @@ public class ImageCustomDefinePane extends MobileStyleCustomDefinePane {
|
|
|
|
|
mobileStyle.setRightPadding(rightSpinner.getValue()); |
|
|
|
|
mobileStyle.setTopPadding(topSpinner.getValue()); |
|
|
|
|
mobileStyle.setBottomPadding(bottomSpinner.getValue()); |
|
|
|
|
mobileStyle.setButtonLayoutType(layoutTypeCombo.getSelectedIndex()); |
|
|
|
|
mobileStyle.setButtonAlign(buttonAlignCombo.getSelectedIndex()); |
|
|
|
|
mobileStyle.setButtonColumnSize((int)columnSizeSpinner.getValue()); |
|
|
|
|
ArrayList<String> initialIconNamesList = initialIconConfigPane.update(); |
|
|
|
|
ArrayList<String> selectedIconNamesList = selectedIconConfigPane.update(); |
|
|
|
|
mobileStyle.setInitialIconNames(initialIconNamesList.toArray(new String[initialIconNamesList.size()])); |
|
|
|
|