|
|
|
@ -35,12 +35,12 @@ public class TemplateUtils {
|
|
|
|
|
/** |
|
|
|
|
* 创建新的模板文件并打开模板 |
|
|
|
|
* |
|
|
|
|
* @param prefix 模板文件名称前缀 |
|
|
|
|
* @param file 模板文件 |
|
|
|
|
* @param prefix 模板文件名称前缀 |
|
|
|
|
* @param file 模板文件 |
|
|
|
|
* @param createByEditingTemplate 是否根据 当前编辑模板 来创建新模板 |
|
|
|
|
* 为true时以CurrentEditingTemplate为准创建新模板 |
|
|
|
|
* 为false时以传入的File文件为准创建新模板,此文件可以不是编辑状态 |
|
|
|
|
* @param openNewTemplate 是否需要在创建后打开模板 |
|
|
|
|
* @param openNewTemplate 是否需要在创建后打开模板 |
|
|
|
|
*/ |
|
|
|
|
public static void createAndOpenTemplate(String prefix, FILE file, boolean createByEditingTemplate, boolean openNewTemplate) { |
|
|
|
|
createAndOpenTemplate(prefix, file, createByEditingTemplate, openNewTemplate, () -> {}); |
|
|
|
@ -49,13 +49,13 @@ public class TemplateUtils {
|
|
|
|
|
/** |
|
|
|
|
* 创建新的模板文件并打开模板,并在创建备份模板成功后执行doAfterCreate |
|
|
|
|
* |
|
|
|
|
* @param prefix 模板文件名称前缀 |
|
|
|
|
* @param file 模板文件 |
|
|
|
|
* @param createByEditingTemplate 是否根据 当前编辑模板 来创建新模板 |
|
|
|
|
* 为true时以CurrentEditingTemplate为准创建新模板 |
|
|
|
|
* 为false时以传入的File文件为准创建新模板,此文件可以不是编辑状态 |
|
|
|
|
* @param openNewTemplate 是否需要在创建后打开模板 |
|
|
|
|
* @param doAfterCreateTemplate 创建备份模板成功后调用 |
|
|
|
|
* @param prefix 模板文件名称前缀 |
|
|
|
|
* @param file 模板文件 |
|
|
|
|
* @param createByEditingTemplate 是否根据 当前编辑模板 来创建新模板 |
|
|
|
|
* 为true时以CurrentEditingTemplate为准创建新模板 |
|
|
|
|
* 为false时以传入的File文件为准创建新模板,此文件可以不是编辑状态 |
|
|
|
|
* @param openNewTemplate 是否需要在创建后打开模板 |
|
|
|
|
* @param doAfterCreateTemplate 创建备份模板成功后调用 |
|
|
|
|
*/ |
|
|
|
|
public static void createAndOpenTemplate(String prefix, FILE file, boolean createByEditingTemplate, boolean openNewTemplate, Runnable doAfterCreateTemplate) { |
|
|
|
|
String fileName = file.getName(); |
|
|
|
@ -65,7 +65,7 @@ public class TemplateUtils {
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
String suffix = fileName.substring(indexOfLastDot + 1); |
|
|
|
|
FILEChooserPane fileChooserPane = FILEChooserPane.getInstance(true, true); |
|
|
|
|
FILEChooserPane fileChooserPane = FILEChooserPane.getInstance(true, true); |
|
|
|
|
fileChooserPane.setFileNameTextField(prefix + fileName, suffix); |
|
|
|
|
FileExtension fileExtension = FileExtension.parse(suffix); |
|
|
|
|
fileChooserPane.addChooseFILEFilter(new ChooseFileFilter(fileExtension, ProductConstants.APP_NAME + Toolkit.i18nText("Fine-Design_Report_Template_File"))); |
|
|
|
@ -91,7 +91,7 @@ public class TemplateUtils {
|
|
|
|
|
protected Void doInBackground() throws Exception { |
|
|
|
|
// 读取模板数据
|
|
|
|
|
byte[] content = getTemplateData(createByEditingTemplate, oldPath); |
|
|
|
|
try(OutputStream out = file.asOutputStream()) { |
|
|
|
|
try (OutputStream out = file.asOutputStream()) { |
|
|
|
|
// 加锁
|
|
|
|
|
WorkContext.getCurrent().get(TplOperator.class).saveAs(file.getPath()); |
|
|
|
|
out.write(content); |
|
|
|
@ -124,19 +124,20 @@ public class TemplateUtils {
|
|
|
|
|
/** |
|
|
|
|
* 读取模板文件数据 |
|
|
|
|
* |
|
|
|
|
* @param readCurrentEditingTemplate 是否读取当前编辑模板 |
|
|
|
|
* @param path 模板路径 |
|
|
|
|
* @return |
|
|
|
|
* @param readCurrentEditingTemplate 是否读取当前编辑模板 |
|
|
|
|
* @param path 模板路径 |
|
|
|
|
* @return 模板文件数据 |
|
|
|
|
*/ |
|
|
|
|
private static byte[] getTemplateData(boolean readCurrentEditingTemplate, String path) throws Exception { |
|
|
|
|
byte[] content = new byte[0]; |
|
|
|
|
if (readCurrentEditingTemplate) { |
|
|
|
|
// 从当前编辑模板中生成备份文件
|
|
|
|
|
// 从当前编辑模板中读取模板文件数据
|
|
|
|
|
JTemplate<?, ?> template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); |
|
|
|
|
if (JTemplate.isValid(template)) { |
|
|
|
|
content = template.exportData(); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
// 从给定的模板路径中读取模板文件数据
|
|
|
|
|
content = WorkContext.getWorkResource().readFully(path); |
|
|
|
|
} |
|
|
|
|
if (ArrayUtils.isEmpty(content)) { |
|
|
|
|