* 'release/11.0' of ssh://code.fineres.com:7999/~fanglei/design10.0: (54 commits) REPORT-58629 移动下类的位置 REPORT-58629 删掉10.0的2倍图 REPORT-58629 换一下fr11设计器启动图 REPORT-57998 【主题切换】frm模板点击右侧组件收起按钮多点击几次不能实时缩进 REPORT-57998 【主题切换】frm模板点击右侧组件收起按钮多点击几次不能实时缩进 REPORT-57998 【主题切换】frm模板点击右侧组件收起按钮多点击几次不能实时缩进 REPORT-58124 公式编辑器优化:不支持实时计算的功能提示处理 1.添加对&A1不支持的处理。 REPORT-58687 【主题切换】修改主题名称提示文字的位置 REPORT-58486 FR11-二轮回归-新建模板的主题在撤销时未被锁定,连同撤销功能一起被撤销了 REPORT-58612 【主题切换】单元格样式重命名,光标在名称框中时保存没有保存上 REPORT-58597 【FR11二轮回归】组件复用&主题切换-拖入复用组件,组件默认选择的是跟随主题,这样的话复用组件原本的样式都没有了 REPORT-58595【主题切换】主题色修改,模板预览的颜色没有更改 REPORT-57998 【主题切换】frm模板点击右侧组件收起按钮多点击几次不能实时缩进 REPORT-58577【回归测试】map公式合法性检测错误 && REPORT-58124 公式编辑器优化:不支持实时计算的功能提示处理 1.map的参数类型调整; 2.对内置参数不支持提示。 CHART-20515 渐变风格关闭 REPORT-58579【回归测试】rank的带参模拟计算值不正确 1.数字类型转换 REPORT-56134 js提交事件报错中添加定位信息 REPORT-58124 公式编辑器优化:不支持实时计算的功能提示处理 1.添加ds1.select类型的识别 REPORT-55048 websocket使用代理的情况处理下 KERNEL-8776 绝对布局下拖动组件,会生成新的XCreator ...persist/11.0
@ -0,0 +1,54 @@ |
|||||||
|
package com.fr.design.formula; |
||||||
|
|
||||||
|
import com.fr.parser.BinaryExpression; |
||||||
|
import com.fr.parser.DatasetFunctionCall; |
||||||
|
import com.fr.parser.FunctionCall; |
||||||
|
import com.fr.stable.script.Node; |
||||||
|
|
||||||
|
import java.util.Arrays; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Hoky |
||||||
|
* @date 2021/8/30 |
||||||
|
*/ |
||||||
|
public class UnsupportedFormulaScanner { |
||||||
|
public final static String[] UNSUPPORTED_FORMULAS = new String[]{"PROPORTION", "TOIMAGE", |
||||||
|
"WEBIMAGE", "SORT", "CROSSLAYERTOTAL", "CIRCULAR", "LAYERTOTAL", "MOM", "HIERARCHY", |
||||||
|
"FILENAME", "FILESIZE", "FILETYPE", "TREELAYER", "GETUSERDEPARTMENTS", "GETUSERJOBTITLES"}; |
||||||
|
|
||||||
|
private String unSupportFormula = ""; |
||||||
|
|
||||||
|
public boolean travelFormula(Node node) { |
||||||
|
if (node instanceof FunctionCall) { |
||||||
|
if (isUnsupportedFomula(((FunctionCall) node).getName())) { |
||||||
|
unSupportFormula = ((FunctionCall) node).getName(); |
||||||
|
return false; |
||||||
|
} else { |
||||||
|
for (Node argument : ((FunctionCall) node).getArguments()) { |
||||||
|
if (!travelFormula(argument)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} else if (node instanceof BinaryExpression) { |
||||||
|
for (Node array : ((BinaryExpression) node).getNodes()) { |
||||||
|
if (!travelFormula(array)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
} else if (node instanceof DatasetFunctionCall) { |
||||||
|
DatasetFunctionCall datasetFunctionCall = (DatasetFunctionCall) node; |
||||||
|
unSupportFormula = datasetFunctionCall.getSourceName() + "." + datasetFunctionCall.getFnName() + "()"; |
||||||
|
return false; |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
public String getUnSupportFormula() { |
||||||
|
return unSupportFormula; |
||||||
|
} |
||||||
|
|
||||||
|
private static boolean isUnsupportedFomula(String formula) { |
||||||
|
return Arrays.asList(UNSUPPORTED_FORMULAS).contains(formula.toUpperCase()); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package com.fr.design.fun; |
||||||
|
|
||||||
|
import com.fr.stable.fun.mark.Mutable; |
||||||
|
|
||||||
|
|
||||||
|
public interface PcFitProvider extends Mutable { |
||||||
|
String XML_TAG = "PcFitProvider"; |
||||||
|
int CURRENT_LEVEL = 1; |
||||||
|
|
||||||
|
//设计器上看到的选项
|
||||||
|
String getContentDisplayValue(); |
||||||
|
|
||||||
|
//返回给前端的值
|
||||||
|
int getContentDisplayKey(); |
||||||
|
|
||||||
|
//设计器上的提示信息
|
||||||
|
String getContentDisplayTip(); |
||||||
|
|
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package com.fr.design.fun.impl; |
||||||
|
|
||||||
|
import com.fr.design.fun.PcFitProvider; |
||||||
|
import com.fr.stable.fun.mark.API; |
||||||
|
|
||||||
|
|
||||||
|
@API(level = PcFitProvider.CURRENT_LEVEL) |
||||||
|
public abstract class AbstractPcFitProvider implements PcFitProvider { |
||||||
|
|
||||||
|
@Override |
||||||
|
public int currentAPILevel() { |
||||||
|
return CURRENT_LEVEL; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String mark4Provider() { |
||||||
|
return getClass().getName(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
package com.fr.design.locale.impl; |
||||||
|
|
||||||
|
import com.fr.design.DesignerEnvManager; |
||||||
|
import com.fr.general.locale.LocaleMark; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.Locale; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author hades |
||||||
|
* @version 10.0 |
||||||
|
* Created by hades on 2021/9/2 |
||||||
|
*/ |
||||||
|
public class DoubleSplashMark implements LocaleMark<String> { |
||||||
|
|
||||||
|
private final Map<Locale, String> map = new HashMap<Locale, String>(); |
||||||
|
private static final String SPLASH_PATH_X2 = "/com/fr/design/images/splash@2x.png"; |
||||||
|
private static final String SPLASH_PATH_EN_X2 = "/com/fr/design/images/splash_en@2x.png"; |
||||||
|
|
||||||
|
public DoubleSplashMark() { |
||||||
|
map.put(Locale.CHINA, SPLASH_PATH_X2); |
||||||
|
map.put(Locale.KOREA, SPLASH_PATH_EN_X2); |
||||||
|
map.put(Locale.JAPAN, SPLASH_PATH_EN_X2); |
||||||
|
map.put(Locale.US, SPLASH_PATH_EN_X2); |
||||||
|
map.put(Locale.TAIWAN, SPLASH_PATH_EN_X2); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getValue() { |
||||||
|
String result = map.get(DesignerEnvManager.getEnvManager().getLanguage()); |
||||||
|
return result == null ? SPLASH_PATH_EN_X2 : result; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
package com.fr.design.mainframe.theme.edit; |
||||||
|
|
||||||
|
import com.fr.design.mainframe.theme.edit.chart.ChartTitleAndBackgroundStyleFormPane; |
||||||
|
import com.fr.design.mainframe.theme.edit.chart.ChartTitleAndBackgroundStylePane; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Bjorn |
||||||
|
* @version 10.0 |
||||||
|
* Created by Bjorn on 2021-08-30 |
||||||
|
*/ |
||||||
|
public class ChartStyleFormEditPane extends ChartStyleEditPane { |
||||||
|
|
||||||
|
protected ChartTitleAndBackgroundStylePane createChartTitleAndBackgroundStylePane() { |
||||||
|
return new ChartTitleAndBackgroundStyleFormPane(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,36 @@ |
|||||||
|
package com.fr.design.mainframe.theme.edit.chart; |
||||||
|
|
||||||
|
import com.fr.design.gui.ilable.UILabel; |
||||||
|
import com.fr.design.i18n.Toolkit; |
||||||
|
|
||||||
|
import java.awt.Color; |
||||||
|
import java.awt.Component; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Bjorn |
||||||
|
* @version 10.0 |
||||||
|
* Created by Bjorn on 2021-08-30 |
||||||
|
*/ |
||||||
|
public class ChartTitleAndBackgroundStyleFormPane extends ChartTitleAndBackgroundStylePane { |
||||||
|
|
||||||
|
private UILabel tooltipLabel; |
||||||
|
|
||||||
|
protected void initComponents() { |
||||||
|
super.initComponents(); |
||||||
|
tooltipLabel = new UILabel("<html>" + Toolkit.i18nText("Fine-Design_Chart_Title_Background_Tooltip") + "</html>"); |
||||||
|
tooltipLabel.setForeground(new Color(153, 153, 153)); |
||||||
|
} |
||||||
|
|
||||||
|
protected Component[][] getComponent() { |
||||||
|
Component[][] component = super.getComponent(); |
||||||
|
Component[][] newComponent = new Component[component.length + 2][]; |
||||||
|
System.arraycopy(component, 0, newComponent, 2, component.length); |
||||||
|
newComponent[0] = new Component[]{null, null}; |
||||||
|
newComponent[1] = new Component[]{tooltipLabel, null}; |
||||||
|
return newComponent; |
||||||
|
} |
||||||
|
|
||||||
|
protected double[] getRows(double p) { |
||||||
|
return new double[]{p, p, p, p, p, p, p}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,45 @@ |
|||||||
|
package com.fr.design.mainframe.theme.utils; |
||||||
|
|
||||||
|
import com.fr.base.NameStyle; |
||||||
|
import com.fr.base.theme.TemplateTheme; |
||||||
|
import com.fr.base.theme.settings.ThemedCellStyle; |
||||||
|
import com.fr.design.file.HistoryTemplateListCache; |
||||||
|
import com.fr.design.mainframe.JTemplate; |
||||||
|
import com.fr.report.cell.DefaultTemplateCellElement; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Starryi |
||||||
|
* @version 1.0 |
||||||
|
* Created by Starryi on 2021/8/31 |
||||||
|
*/ |
||||||
|
public class DefaultThemedTemplateCellElementCase { |
||||||
|
|
||||||
|
public static DefaultTemplateCellElement createInstance() { |
||||||
|
return themingCellElement(new DefaultTemplateCellElement()); |
||||||
|
} |
||||||
|
|
||||||
|
public static DefaultTemplateCellElement createInstance(int column, int row) { |
||||||
|
return themingCellElement(new DefaultTemplateCellElement(column, row)); |
||||||
|
} |
||||||
|
|
||||||
|
public static DefaultTemplateCellElement createInstance(int column, int row, Object value) { |
||||||
|
return themingCellElement(new DefaultTemplateCellElement(column, row, value)); |
||||||
|
} |
||||||
|
|
||||||
|
public static DefaultTemplateCellElement createInstance(int column, int row, int columnSpan, int rowSpan, Object value) { |
||||||
|
return themingCellElement(new DefaultTemplateCellElement(column, row, columnSpan, rowSpan, value)); |
||||||
|
} |
||||||
|
|
||||||
|
private static DefaultTemplateCellElement themingCellElement(DefaultTemplateCellElement cellElement) { |
||||||
|
JTemplate<?,?> template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); |
||||||
|
if (template != null) { |
||||||
|
TemplateTheme theme = template.getTemplateTheme(); |
||||||
|
ThemedCellStyle themedCellStyle = theme.getCellStyleList().getDefaultCellStyle4New(); |
||||||
|
if (themedCellStyle != null) { |
||||||
|
NameStyle nameStyle = NameStyle.getPassiveInstance(themedCellStyle.getName(), themedCellStyle.getStyle()); |
||||||
|
cellElement.setStyle(nameStyle); |
||||||
|
} |
||||||
|
} |
||||||
|
return cellElement; |
||||||
|
} |
||||||
|
} |
After Width: | Height: | Size: 286 KiB |
After Width: | Height: | Size: 914 KiB |
Before Width: | Height: | Size: 264 KiB |
Before Width: | Height: | Size: 814 KiB |
Before Width: | Height: | Size: 257 KiB |
After Width: | Height: | Size: 285 KiB |
After Width: | Height: | Size: 911 KiB |