|
|
|
@ -1,14 +1,13 @@
|
|
|
|
|
package com.fr.design.style.color; |
|
|
|
|
|
|
|
|
|
import com.fr.base.FineColor; |
|
|
|
|
import com.fr.base.theme.FineColorDeriveState; |
|
|
|
|
import com.fr.base.theme.TemplateTheme; |
|
|
|
|
import com.fr.design.DesignerEnvManager; |
|
|
|
|
import com.fr.design.base.mode.DesignModeContext; |
|
|
|
|
import com.fr.design.border.UIRoundedBorder; |
|
|
|
|
import com.fr.design.constants.UIConstants; |
|
|
|
|
import com.fr.design.dialog.BasicPane; |
|
|
|
|
import com.fr.design.file.HistoryTemplateListCache; |
|
|
|
|
import com.fr.design.fun.DefaultValueAdjustProvider; |
|
|
|
|
import com.fr.design.gui.ibutton.UIButton; |
|
|
|
|
import com.fr.design.gui.ilable.UILabel; |
|
|
|
|
import com.fr.design.i18n.Toolkit; |
|
|
|
@ -16,6 +15,7 @@ import com.fr.design.layout.FRGUIPaneFactory;
|
|
|
|
|
import com.fr.design.mainframe.DesignerContext; |
|
|
|
|
import com.fr.design.mainframe.JTemplate; |
|
|
|
|
import com.fr.design.mainframe.theme.dialog.TemplateThemeProfileDialog; |
|
|
|
|
import com.fr.design.utils.DesignUtils; |
|
|
|
|
|
|
|
|
|
import javax.swing.BorderFactory; |
|
|
|
|
import javax.swing.JButton; |
|
|
|
@ -61,7 +61,7 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable {
|
|
|
|
|
private final JPanel menuColorPane; |
|
|
|
|
private ColorCell[][] themeColorCellGrid; |
|
|
|
|
|
|
|
|
|
private ColorSelectorStyle colorSelector; |
|
|
|
|
private ColorSelectorStyle colorSelector ; |
|
|
|
|
|
|
|
|
|
public static NewColorSelectPane createColorSelectPaneWithTheme(boolean supportTheme) { |
|
|
|
|
return new NewColorSelectPane(true, supportTheme); |
|
|
|
@ -159,8 +159,11 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable {
|
|
|
|
|
JPanel centerPane = new JPanel(new GridLayout(1, 8, DEFAULT_COLOR_HOR_INTERVAL, 0)); |
|
|
|
|
menuColorPane.add(northPane, BorderLayout.NORTH); |
|
|
|
|
menuColorPane.add(centerPane, BorderLayout.CENTER); |
|
|
|
|
this.colorSelector = DesignModeContext.isDuchampMode() ? ColorSelectorStyle.FVS : ColorSelectorStyle.FR; |
|
|
|
|
|
|
|
|
|
this.colorSelector = FRColorSelectorStyle.getInstance(); |
|
|
|
|
DefaultValueAdjustProvider valueAdjust = DesignUtils.getValueAdjust(); |
|
|
|
|
if (valueAdjust != null) { |
|
|
|
|
this.colorSelector = valueAdjust.getColorSelector(); |
|
|
|
|
} |
|
|
|
|
Color[] colorArray = new Color[]{ |
|
|
|
|
// 8列主题色
|
|
|
|
|
Color.decode("#FFFFFF"), |
|
|
|
@ -181,11 +184,11 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable {
|
|
|
|
|
themeColorCellGrid = new ColorCell[colorArray.length][DEFAULT_DERIVE_COUNT]; |
|
|
|
|
for (int i = 0; i < colorArray.length; i++) { |
|
|
|
|
ColorCell[] colorCellColumn = new ColorCell[DEFAULT_DERIVE_COUNT]; |
|
|
|
|
ColorConfig colorConfig = colorSelector.getColorConfig(i); |
|
|
|
|
ColorConfig colorConfig = getColorConfig(colorSelector, i); |
|
|
|
|
Color color = colorArray[i]; |
|
|
|
|
Color[] deriveColorArr = colorConfig.getDeriveColorArr(color, DEFAULT_DERIVE_COUNT); |
|
|
|
|
for (int j = 0; j < deriveColorArr.length; j++) { |
|
|
|
|
colorCellColumn[j] = createFineColorCell(deriveColorArr[j], !colorConfig.supportTheme, i, j); |
|
|
|
|
colorCellColumn[j] = createFineColorCell(deriveColorArr[j], !colorConfig.isSupportTheme(), i, j); |
|
|
|
|
} |
|
|
|
|
themeColorCellGrid[i] = colorCellColumn; |
|
|
|
|
} |
|
|
|
@ -224,7 +227,7 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable {
|
|
|
|
|
} |
|
|
|
|
for (int i = 0; i < standardColors.size(); i++) { |
|
|
|
|
Color standardColor = standardColors.get(i); |
|
|
|
|
ColorConfig colorConfig = colorSelector.getColorConfig(i); |
|
|
|
|
ColorConfig colorConfig = getColorConfig(colorSelector, i); |
|
|
|
|
Color[] deriveColorArr = colorConfig.getDeriveColorArr(standardColor, DEFAULT_DERIVE_COUNT); |
|
|
|
|
for (int j = 0; j < deriveColorArr.length; j++) { |
|
|
|
|
themeColorCellGrid[i][j].setColor(deriveColorArr[j]); |
|
|
|
@ -451,114 +454,13 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 颜色衍生算法 |
|
|
|
|
*/ |
|
|
|
|
private enum DeriveAlgorithm { |
|
|
|
|
/** |
|
|
|
|
* 通用的衍生规则 |
|
|
|
|
*/ |
|
|
|
|
PLAIN_ALGORITHM { |
|
|
|
|
public Color[] getDeriveColorArr(Color color, int defaultDeriveCount) { |
|
|
|
|
return FineColorDeriveState.getDeriveColorArr(color, false, defaultDeriveCount); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 默认的衍生规则,主要针对字体和背景 |
|
|
|
|
*/ |
|
|
|
|
DEFAULT_DERIVE_ALGORITHM { |
|
|
|
|
public Color[] getDeriveColorArr(Color color, int defaultDeriveCount) { |
|
|
|
|
return FineColorDeriveState.getDeriveColorArr(color, true, defaultDeriveCount); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* FVS背景衍生规则 |
|
|
|
|
*/ |
|
|
|
|
FVS_BACKGROUND_DERIVE_ALGORITHM { |
|
|
|
|
public Color[] getDeriveColorArr(Color color, int defaultDeriveCount) { |
|
|
|
|
return FineColorDeriveState.getDeriveColorArrByBrightness(FineColorDeriveState.DERIVE_UP_AND_DOWN, color, defaultDeriveCount, 0.08F); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
public abstract Color[] getDeriveColorArr(Color color, int defaultDeriveCount); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 每个主题色的具体配置 |
|
|
|
|
*/ |
|
|
|
|
private static class ColorConfig { |
|
|
|
|
private boolean supportTheme; |
|
|
|
|
private DeriveAlgorithm algorithm; |
|
|
|
|
|
|
|
|
|
private ColorConfig(boolean supportTheme, DeriveAlgorithm algorithm) { |
|
|
|
|
this.supportTheme = supportTheme; |
|
|
|
|
this.algorithm = algorithm; |
|
|
|
|
public ColorConfig getColorConfig(ColorSelectorStyle colorSelector, int i) { |
|
|
|
|
List<ColorConfig> colorConfigs = colorSelector.getColorConfigs(); |
|
|
|
|
if (i < 0 || i >= colorConfigs.size()) { |
|
|
|
|
return colorConfigs.get(0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static ColorConfig createThemeColorConfig(DeriveAlgorithm deriveAlgorithm) { |
|
|
|
|
return new ColorConfig(true, deriveAlgorithm); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static ColorConfig createThemeColorConfig(boolean supportTheme, DeriveAlgorithm deriveAlgorithm) { |
|
|
|
|
return new ColorConfig(supportTheme, deriveAlgorithm); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Color[] getDeriveColorArr(Color color, int defaultDeriveCount){ |
|
|
|
|
return algorithm.getDeriveColorArr(color, defaultDeriveCount); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 支持不同风格的主题色选择面板 |
|
|
|
|
*/ |
|
|
|
|
private enum ColorSelectorStyle { |
|
|
|
|
FR, |
|
|
|
|
FVS { |
|
|
|
|
public List<ColorConfig> getColorConfigs() { |
|
|
|
|
ArrayList<ColorConfig> colorConfigs = new ArrayList<>(); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.FVS_BACKGROUND_DERIVE_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.DEFAULT_DERIVE_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
return colorConfigs; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
public List<ColorConfig> getColorConfigs() { |
|
|
|
|
ArrayList<ColorConfig> colorConfigs = new ArrayList<>(); |
|
|
|
|
// 8列主题色
|
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(DeriveAlgorithm.PLAIN_ALGORITHM)); |
|
|
|
|
// 2列灰度色
|
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(false, DeriveAlgorithm.DEFAULT_DERIVE_ALGORITHM)); |
|
|
|
|
colorConfigs.add(ColorConfig.createThemeColorConfig(false, DeriveAlgorithm.DEFAULT_DERIVE_ALGORITHM)); |
|
|
|
|
return colorConfigs; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public ColorConfig getColorConfig(int i) { |
|
|
|
|
List<ColorConfig> colorConfigs = getColorConfigs(); |
|
|
|
|
if (i < 0 || i >= colorConfigs.size()) { |
|
|
|
|
return colorConfigs.get(0); |
|
|
|
|
} |
|
|
|
|
return colorConfigs.get(i); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return colorConfigs.get(i); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|