帆软报表设计器源代码。
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.
 
 
 
 

94 lines
2.2 KiB

package com.fr.design.mainframe;
import com.fr.base.AutoChangeLineProvider;
import com.fr.design.fun.ReportLengthUNITProvider;
import com.fr.general.ComparatorUtils;
/**
* Created by kerry on 2020-06-05
*/
public class DesignerUIModeConfig {
private DesignerUIMode mode = AbsoluteMeasureUIMode.getInstance();
private boolean uiDevMode = false;
private static class DesignerUIModeConfigHolder {
private static final DesignerUIModeConfig designerUIModeConfig = new DesignerUIModeConfig();
}
private DesignerUIModeConfig() {
init();
}
private void init() {
uiDevMode = Boolean.parseBoolean(System.getProperty("devMode", "false"));
}
public static DesignerUIModeConfig getInstance() {
return DesignerUIModeConfigHolder.designerUIModeConfig;
}
/**
* 判断是否是新ui模式
*
* @return boolean
*/
public boolean simulateWebUIMode() {
return ComparatorUtils.equals(SimulateWebUIMode.getInstance(), mode);
}
/**
* 判断是否是ui开发者模式
*
* @return boolean
*/
public boolean isUIDevMode() {
return uiDevMode;
}
/**
* 设置新ui模式
*/
public void setSimulateWebUIMode() {
this.mode = SimulateWebUIMode.getInstance();
}
public void setDesignerUIMode(DesignerUIMode mode) {
this.mode = mode;
}
/**
* 设置老ui模式
*/
public void setAbsoluteMeasureUIMode() {
this.mode = AbsoluteMeasureUIMode.getInstance();
}
/**
* 解析不同模式下的尺寸单位
*
* @param unitType 尺寸类型
* @return ReportLengthUNITProvider对象
*/
public ReportLengthUNITProvider parseLengthUNIT(int unitType) {
return mode.parseLengthUNIT(unitType);
}
/**
* 获取不同模式下的换行逻辑
* @return AutoChangeLineProvider
*/
public AutoChangeLineProvider getAutoChangeLineStrategy() {
return mode.getAutoChangeLineStrategy();
}
/**
* 获取不同模式下的屏幕分辨率
*
* @return 分辨率
*/
public int getScreenResolution() {
return mode.getScreenResolution();
}
}