Browse Source

Merge pull request #1212 in DESIGN/design from ~KERRY/design_10.0:release/10.0 to release/10.0

* commit 'be4d346eb2eabc66a41f10fe4bc2885217858e90':
  代码修改
  REPORT-21017【新引擎】增加cptx文件类型及相关适配
feature/big-screen
neil 5 years ago
parent
commit
101f2fe662
  1. 9
      designer-base/src/main/java/com/fr/design/fun/ReportSupportedFileUIProvider.java
  2. 7
      designer-base/src/main/java/com/fr/design/fun/impl/AbstractReportSupportedFileUIProvider.java
  3. 2
      designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileNodeConstants.java
  4. 13
      designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java
  5. 10
      designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java
  6. 2
      designer-base/src/main/java/com/fr/file/FILEChooserPane.java
  7. 12
      designer-base/src/test/java/com/fr/design/gui/itree/filetree/FileNodeConstantsTest.java
  8. 7
      designer-realize/src/main/java/com/fr/design/mainframe/JPolyWorkBook.java
  9. 9
      designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java

9
designer-base/src/main/java/com/fr/design/fun/ReportSupportedFileUIProvider.java

@ -1,6 +1,6 @@
package com.fr.design.fun; package com.fr.design.fun;
import com.fr.decision.extension.report.ReportSupportedFileProvider; import com.fr.base.extension.FileExtension;
import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.JTemplate;
import com.fr.file.FILEChooserPane; import com.fr.file.FILEChooserPane;
import com.fr.stable.fun.mark.Mutable; import com.fr.stable.fun.mark.Mutable;
@ -25,10 +25,11 @@ public interface ReportSupportedFileUIProvider extends Mutable {
/** /**
* 获取对应的新增的支持文件类型 * 获取可支持的文件类型
* @return ReportTemplateFileProvider * @return 文件扩展
*/ */
ReportSupportedFileProvider getSupportedFile(); FileExtension[] getFileExtensions();
/** /**
* 获取文件关联的icon * 获取文件关联的icon

7
designer-base/src/main/java/com/fr/design/fun/impl/AbstractReportSupportedFileUIProvider.java

@ -1,6 +1,6 @@
package com.fr.design.fun.impl; package com.fr.design.fun.impl;
import com.fr.decision.extension.report.ReportSupportedFileProvider; import com.fr.base.extension.FileExtension;
import com.fr.design.fun.ReportSupportedFileUIProvider; import com.fr.design.fun.ReportSupportedFileUIProvider;
import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.JTemplate;
import com.fr.file.FILEChooserPane; import com.fr.file.FILEChooserPane;
@ -20,10 +20,11 @@ public abstract class AbstractReportSupportedFileUIProvider extends AbstractProv
} }
@Override @Override
public ReportSupportedFileProvider getSupportedFile() { public FileExtension[] getFileExtensions() {
return null; return new FileExtension[0];
} }
@Override @Override
public Icon getFileIcon(String path, boolean isShowLock) { public Icon getFileIcon(String path, boolean isShowLock) {
return null; return null;

2
designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileNodeConstants.java

@ -60,7 +60,7 @@ public class FileNodeConstants {
//通过插件扩展的 //通过插件扩展的
Set<ReportSupportedFileUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ReportSupportedFileUIProvider.XML_TAG); Set<ReportSupportedFileUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ReportSupportedFileUIProvider.XML_TAG);
for (ReportSupportedFileUIProvider provider : providers) { for (ReportSupportedFileUIProvider provider : providers) {
addAppExtensions(provider.getSupportedFile().getFileExtensions()); addAppExtensions(provider.getFileExtensions());
} }
supportFileType.addAll(Arrays.asList(FRContext.getFileNodes().getSupportedTypes())); supportFileType.addAll(Arrays.asList(FRContext.getFileNodes().getSupportedTypes()));

13
designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java

@ -1,6 +1,7 @@
package com.fr.design.mainframe; package com.fr.design.mainframe;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.base.extension.FileExtension;
import com.fr.base.vcs.DesignerMode; import com.fr.base.vcs.DesignerMode;
import com.fr.cluster.ClusterBridge; import com.fr.cluster.ClusterBridge;
import com.fr.design.DesignModelAdapter; import com.fr.design.DesignModelAdapter;
@ -374,10 +375,11 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt
if (WorkContext.getCurrent() != null) { if (WorkContext.getCurrent() != null) {
boolean pathSupportVcsAction = selectedOperation.getFilePath() != null && pathSupportVcsAction(selectedOperation.getFilePath());
if (!WorkContext.getCurrent().isLocal()) { if (!WorkContext.getCurrent().isLocal()) {
//当前环境为远程环境时 //当前环境为远程环境时
FileNode node = TemplateTreePane.getInstance().getTemplateFileTree().getSelectedFileNode(); FileNode node = TemplateTreePane.getInstance().getTemplateFileTree().getSelectedFileNode();
if (selectedOperation.getFilePath() != null) { if (pathSupportVcsAction) {
if (node.getLock() != null && !ComparatorUtils.equals(node.getUserID(), node.getLock())) { if (node.getLock() != null && !ComparatorUtils.equals(node.getUserID(), node.getLock())) {
setEnabled(false); setEnabled(false);
} else { } else {
@ -388,11 +390,18 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt
} }
} else { } else {
//当前环境为本地环境时 //当前环境为本地环境时
setEnabled(selectedOperation.getFilePath() != null); setEnabled(pathSupportVcsAction);
} }
} }
} }
private boolean pathSupportVcsAction(String path) {
if (FileExtension.CPT.matchExtension(path) || FileExtension.FRM.matchExtension(path)) {
return true;
}
return false;
}
private void closeOpenedTemplate(String path, boolean isCurrentEditing) { private void closeOpenedTemplate(String path, boolean isCurrentEditing) {
for (JTemplate jTemplate : HistoryTemplateListCache.getInstance().getHistoryList()) { for (JTemplate jTemplate : HistoryTemplateListCache.getInstance().getHistoryList()) {
if (ComparatorUtils.equals(jTemplate.getEditingFILE().getPath(), path)) { if (ComparatorUtils.equals(jTemplate.getEditingFILE().getPath(), path)) {

10
designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java

@ -628,13 +628,19 @@ public abstract class JTemplate<T extends BaseBook, U extends BaseUndoState<?>>
} }
} }
protected void addChooseFILEFilter(FILEChooserPane fileChooser){ private void addChooseFILEFilter(FILEChooserPane fileChooser){
String appName = ProductConstants.APP_NAME; String appName = ProductConstants.APP_NAME;
fileChooser.addChooseFILEFilter(new ChooseFileFilter(FileExtension.CPT, appName + Toolkit.i18nText("Fine-Design_Report_Template_File"))); if (FileExtension.CPT.matchExtension(this.suffix())){
fileChooser.addChooseFILEFilter(new ChooseFileFilter(FileExtension.CPT, appName + Toolkit.i18nText("Fine-Design_Report_Template_File")));
}
if (FileExtension.FRM.matchExtension(this.suffix())) { if (FileExtension.FRM.matchExtension(this.suffix())) {
// richer:form文件 daniel 改成三个字 // richer:form文件 daniel 改成三个字
fileChooser.addChooseFILEFilter(new ChooseFileFilter(FileExtension.FRM, appName + Toolkit.i18nText("Fine-Design_Report_Template_File"))); fileChooser.addChooseFILEFilter(new ChooseFileFilter(FileExtension.FRM, appName + Toolkit.i18nText("Fine-Design_Report_Template_File")));
} }
addExtraChooseFILEFilter(fileChooser);
}
protected void addExtraChooseFILEFilter(FILEChooserPane fileChooser){
} }

2
designer-base/src/main/java/com/fr/file/FILEChooserPane.java

@ -725,11 +725,9 @@ public class FILEChooserPane extends BasicPane {
// ben:filefilter设置初值为cpt过滤 // ben:filefilter设置初值为cpt过滤
this.addChooseFILEFilter(new ChooseFileFilter(FileExtension.CPT, appName + Toolkit.i18nText("Fine-Design_Report_Template_File"))); this.addChooseFILEFilter(new ChooseFileFilter(FileExtension.CPT, appName + Toolkit.i18nText("Fine-Design_Report_Template_File")));
this.addChooseFILEFilter(new ChooseFileFilter(FileExtension.CPTX, appName + Toolkit.i18nText("Fine-Design_Report_Template_File")));
// richer:form文件 daniel 改成三个字 // richer:form文件 daniel 改成三个字
this.addChooseFILEFilter(new ChooseFileFilter(FileExtension.FRM, appName + Toolkit.i18nText("Fine-Design_Report_Template_File"))); this.addChooseFILEFilter(new ChooseFileFilter(FileExtension.FRM, appName + Toolkit.i18nText("Fine-Design_Report_Template_File")));
this.addChooseFILEFilter(new ChooseFileFilter(FileExtension.FRMX, appName + Toolkit.i18nText("Fine-Design_Report_Template_File")));
} else { } else {
if (type == JFileChooser.OPEN_DIALOG) { if (type == JFileChooser.OPEN_DIALOG) {
this.addChooseFILEFilter(new ChooseFileFilter(EnumSet.of(FileExtension.XLS, FileExtension.XLSX), Toolkit.i18nText("Fine-Design_Basic_Import_Excel_Source"))); this.addChooseFILEFilter(new ChooseFileFilter(EnumSet.of(FileExtension.XLS, FileExtension.XLSX), Toolkit.i18nText("Fine-Design_Basic_Import_Excel_Source")));

12
designer-base/src/test/java/com/fr/design/gui/itree/filetree/FileNodeConstantsTest.java

@ -1,7 +1,6 @@
package com.fr.design.gui.itree.filetree; package com.fr.design.gui.itree.filetree;
import com.fr.base.extension.FileExtension; import com.fr.base.extension.FileExtension;
import com.fr.decision.extension.report.ReportSupportedFileProvider;
import com.fr.design.ExtraDesignClassManager; import com.fr.design.ExtraDesignClassManager;
import com.fr.design.fun.ReportSupportedFileUIProvider; import com.fr.design.fun.ReportSupportedFileUIProvider;
import com.fr.design.fun.impl.AbstractReportSupportedFileUIProvider; import com.fr.design.fun.impl.AbstractReportSupportedFileUIProvider;
@ -27,7 +26,7 @@ public class FileNodeConstantsTest {
ExtraDesignClassManager extra = mockExtraDesignClassManager(); ExtraDesignClassManager extra = mockExtraDesignClassManager();
Assert.assertEquals(1, extra.getArray(ReportSupportedFileUIProvider.XML_TAG).size()); Assert.assertEquals(1, extra.getArray(ReportSupportedFileUIProvider.XML_TAG).size());
ReportSupportedFileUIProvider option = (ReportSupportedFileUIProvider) extra.getArray(ReportSupportedFileUIProvider.XML_TAG).iterator().next(); ReportSupportedFileUIProvider option = (ReportSupportedFileUIProvider) extra.getArray(ReportSupportedFileUIProvider.XML_TAG).iterator().next();
Assert.assertEquals(FileExtension.CPTX, option.getSupportedFile().getFileExtensions()[0]); Assert.assertEquals(FileExtension.CPTX, option.getFileExtensions()[0]);
} }
@Test @Test
@ -54,14 +53,11 @@ public class FileNodeConstantsTest {
private class MockNewTemplateFileOption extends AbstractReportSupportedFileUIProvider { private class MockNewTemplateFileOption extends AbstractReportSupportedFileUIProvider {
@Override @Override
public ReportSupportedFileProvider getSupportedFile() { public FileExtension[] getFileExtensions() {
ReportSupportedFileProvider supportedFileProvider = EasyMock.mock(ReportSupportedFileProvider.class); return new FileExtension[]{FileExtension.CPTX
EasyMock.expect(supportedFileProvider.getFileExtensions()).andReturn(new FileExtension[]{FileExtension.CPTX}).anyTimes(); };
EasyMock.replay(supportedFileProvider);
return supportedFileProvider;
} }
} }
} }

7
designer-realize/src/main/java/com/fr/design/mainframe/JPolyWorkBook.java

@ -3,6 +3,7 @@
*/ */
package com.fr.design.mainframe; package com.fr.design.mainframe;
import com.fr.file.FILEChooserPane;
import com.fr.main.impl.WorkBook; import com.fr.main.impl.WorkBook;
import com.fr.report.poly.PolyWorkSheet; import com.fr.report.poly.PolyWorkSheet;
@ -44,4 +45,8 @@ public class JPolyWorkBook extends JWorkBook {
public void refreshEastPropertiesPane() { public void refreshEastPropertiesPane() {
EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.POLY); EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.POLY);
} }
}
protected void addExtraChooseFILEFilter(FILEChooserPane fileChooser) {
}
}

9
designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java

@ -671,11 +671,13 @@ public class JWorkBook extends JTemplate<WorkBook, WorkBookUndoState> {
// Export - MenuDef // Export - MenuDef
MenuDef exportMenuDef = new MenuDef(KeySetUtils.EXPORT.getMenuName()); MenuDef exportMenuDef = new MenuDef(KeySetUtils.EXPORT.getMenuName());
exportMenuDef.setIconPath("/com/fr/design/images/m_file/export.png"); exportMenuDef.setIconPath("/com/fr/design/images/m_file/export.png");
addShortCut(exportMenuDef, excelExportMenuDef);
return exportMenuDef;
}
protected void addShortCut(MenuDef exportMenuDef, MenuDef excelExportMenuDef) {
exportMenuDef.addShortCut(excelExportMenuDef, new PDFExportAction(this), new WordExportAction(this), new SVGExportAction(this), exportMenuDef.addShortCut(excelExportMenuDef, new PDFExportAction(this), new WordExportAction(this), new SVGExportAction(this),
new CSVExportAction(this), new TextExportAction(this), new EmbeddedExportExportAction(this)); new CSVExportAction(this), new TextExportAction(this), new EmbeddedExportExportAction(this));
return exportMenuDef;
} }
/** /**
@ -1169,8 +1171,7 @@ public class JWorkBook extends JTemplate<WorkBook, WorkBookUndoState> {
return ViewRequestConstants.REPORT_VIEW_PATH; return ViewRequestConstants.REPORT_VIEW_PATH;
} }
protected void addChooseFILEFilter(FILEChooserPane fileChooser){ protected void addExtraChooseFILEFilter(FILEChooserPane fileChooser){
super.addChooseFILEFilter(fileChooser);
Set<ReportSupportedFileUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ReportSupportedFileUIProvider.XML_TAG); Set<ReportSupportedFileUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ReportSupportedFileUIProvider.XML_TAG);
for (ReportSupportedFileUIProvider provider : providers) { for (ReportSupportedFileUIProvider provider : providers) {
provider.addChooseFileFilter(fileChooser, this.suffix()); provider.addChooseFileFilter(fileChooser, this.suffix());

Loading…
Cancel
Save