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
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(); |
|
} |
|
|
|
}
|
|
|