* '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 ...fix-lag
@ -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 |