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.
78 lines
2.8 KiB
78 lines
2.8 KiB
package com.fr.design.mainframe.chart.gui.style; |
|
|
|
import com.fr.chart.base.ChartConstants; |
|
import com.fr.design.gui.ibutton.UIColorButton; |
|
import com.fr.design.gui.ibutton.UIColorButtonWithAuto; |
|
import com.fr.design.i18n.Toolkit; |
|
import com.fr.design.mainframe.chart.mode.ChartEditContext; |
|
import com.fr.general.ComparatorUtils; |
|
import com.fr.general.FRFont; |
|
import com.fr.general.GeneralUtils; |
|
import com.fr.plugin.chart.type.FontAutoType; |
|
|
|
public class ChartTextAttrPaneWithAuto extends ChartTextAttrPane { |
|
|
|
private static final String AUTO = Toolkit.i18nText("Fine-Design_Basic_ChartF_Auto"); |
|
private FontAutoType type; |
|
public static String[] FONT_SIZES_WITH_AUTO = new String[FONT_END - FONT_START + 2]; |
|
private static String[] FONT_SIZES_WITH_AUTO_4_DUCHAMP = new String[FONT_END_4_DUCHAMP - FONT_START + 2]; |
|
|
|
static { |
|
FONT_SIZES_WITH_AUTO[0] = AUTO; |
|
FONT_SIZES_WITH_AUTO_4_DUCHAMP[0] = AUTO; |
|
|
|
for (int i = 1; i < FONT_SIZES_WITH_AUTO.length; i++) { |
|
FONT_SIZES_WITH_AUTO[i] = FONT_START + i - 1 + ""; |
|
} |
|
|
|
for (int i = 1; i < FONT_SIZES_WITH_AUTO_4_DUCHAMP.length; i++) { |
|
FONT_SIZES_WITH_AUTO_4_DUCHAMP[i] = FONT_START + i - 1 + ""; |
|
} |
|
} |
|
|
|
public ChartTextAttrPaneWithAuto(FontAutoType type) { |
|
this.type = type; |
|
initState(); |
|
initComponents(); |
|
} |
|
|
|
private boolean isFontSizeAuto() { |
|
return type == FontAutoType.SIZE || type == FontAutoType.SIZE_AND_COLOR; |
|
} |
|
|
|
private boolean isFontColorAuto() { |
|
return type == FontAutoType.COLOR || type == FontAutoType.SIZE_AND_COLOR; |
|
} |
|
|
|
protected void initFontColorState() { |
|
setFontColor(isFontColorAuto() ? new UIColorButtonWithAuto() : new UIColorButton()); |
|
} |
|
|
|
protected Object[] getFontSizeComboBoxModel() { |
|
return isFontSizeAuto() |
|
? (ChartEditContext.duchampMode() ? FONT_SIZES_WITH_AUTO_4_DUCHAMP : FONT_SIZES_WITH_AUTO) |
|
: super.getFontSizeComboBoxModel(); |
|
} |
|
|
|
protected float updateFontSize() { |
|
if (isFontSizeAuto() && ComparatorUtils.equals(getFontSizeComboBox().getSelectedItem(), AUTO)) { |
|
return ChartConstants.AUTO_FONT_SIZE; |
|
} |
|
|
|
return Float.parseFloat(GeneralUtils.objectToString(getFontSizeComboBox().getSelectedItem())); |
|
} |
|
|
|
protected void populateFontSize(FRFont frFont) { |
|
if (getFontSizeComboBox() != null && isFontSizeAuto()) { |
|
if (frFont.getSize() == ChartConstants.AUTO_FONT_SIZE) { |
|
getFontSizeComboBox().setSelectedItem(AUTO); |
|
} else { |
|
getFontSizeComboBox().setSelectedItem(frFont.getSize() + ""); |
|
} |
|
} |
|
|
|
if (getFontSizeComboBox() != null && !isFontSizeAuto()) { |
|
getFontSizeComboBox().setSelectedItem(frFont.getSize()); |
|
} |
|
} |
|
} |