Browse Source

REPORT-23022 调整下接口

feature/big-screen
kerry 5 years ago
parent
commit
51d57103fe
  1. 8
      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. 8
      designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileNodeConstants.java
  4. 6
      designer-base/src/main/java/com/fr/file/FILEChooserPane.java
  5. 28
      designer-base/src/test/java/com/fr/design/gui/itree/filetree/FileNodeConstantsTest.java

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

@ -1,6 +1,5 @@
package com.fr.design.fun; package com.fr.design.fun;
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;
@ -24,13 +23,6 @@ public interface ReportSupportedFileUIProvider extends Mutable {
void addChooseFileFilter(FILEChooserPane fileChooser, String suffix); void addChooseFileFilter(FILEChooserPane fileChooser, String suffix);
/**
* 获取可支持的文件类型
* @return 文件扩展
*/
FileExtension[] getFileExtensions();
/** /**
* 获取文件关联的icon * 获取文件关联的icon
* @param path 文件路径 * @param path 文件路径

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

@ -1,6 +1,5 @@
package com.fr.design.fun.impl; package com.fr.design.fun.impl;
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;
@ -19,12 +18,6 @@ public abstract class AbstractReportSupportedFileUIProvider extends AbstractProv
} }
@Override
public FileExtension[] getFileExtensions() {
return new FileExtension[0];
}
@Override @Override
public Icon getFileIcon(String path, boolean isShowLock) { public Icon getFileIcon(String path, boolean isShowLock) {
return null; return null;

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

@ -2,14 +2,14 @@ package com.fr.design.gui.itree.filetree;
import com.fr.base.FRContext; import com.fr.base.FRContext;
import com.fr.base.extension.FileExtension; import com.fr.base.extension.FileExtension;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.fun.ReportSupportedFileUIProvider;
import com.fr.general.GeneralContext; import com.fr.general.GeneralContext;
import com.fr.plugin.context.PluginContext; import com.fr.plugin.context.PluginContext;
import com.fr.plugin.injectable.PluginModule; import com.fr.plugin.injectable.PluginModule;
import com.fr.plugin.manage.PluginFilter; import com.fr.plugin.manage.PluginFilter;
import com.fr.plugin.observer.PluginEvent; import com.fr.plugin.observer.PluginEvent;
import com.fr.plugin.observer.PluginEventListener; import com.fr.plugin.observer.PluginEventListener;
import com.fr.report.ExtraReportClassManager;
import com.fr.report.fun.ReportSupportedFileProvider;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -58,8 +58,8 @@ public class FileNodeConstants {
rwl.writeLock().lock(); rwl.writeLock().lock();
supportFileType = new ArrayList<String>(); supportFileType = new ArrayList<String>();
//通过插件扩展的 //通过插件扩展的
Set<ReportSupportedFileUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ReportSupportedFileUIProvider.XML_TAG); Set<ReportSupportedFileProvider> providers = ExtraReportClassManager.getInstance().getArray(ReportSupportedFileProvider.XML_TAG);
for (ReportSupportedFileUIProvider provider : providers) { for (ReportSupportedFileProvider provider : providers) {
addAppExtensions(provider.getFileExtensions()); addAppExtensions(provider.getFileExtensions());
} }
supportFileType.addAll(Arrays.asList(FRContext.getFileNodes().getSupportedTypes())); supportFileType.addAll(Arrays.asList(FRContext.getFileNodes().getSupportedTypes()));

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

@ -33,6 +33,8 @@ import com.fr.file.filter.FILEFilter;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.general.GeneralContext; import com.fr.general.GeneralContext;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.report.ExtraReportClassManager;
import com.fr.report.fun.ReportSupportedFileProvider;
import com.fr.stable.CoreConstants; import com.fr.stable.CoreConstants;
import com.fr.stable.ProductConstants; import com.fr.stable.ProductConstants;
import com.fr.stable.StableUtils; import com.fr.stable.StableUtils;
@ -742,8 +744,8 @@ public class FILEChooserPane extends BasicPane {
if (type == JFileChooser.OPEN_DIALOG) { if (type == JFileChooser.OPEN_DIALOG) {
ChooseFileFilter supportedTypes = new ChooseFileFilter(FRContext.getFileNodes().getSupportedTypes(), appName + Toolkit.i18nText("Fine-Design_Report_Template_File")); ChooseFileFilter supportedTypes = new ChooseFileFilter(FRContext.getFileNodes().getSupportedTypes(), appName + Toolkit.i18nText("Fine-Design_Report_Template_File"));
Set<ReportSupportedFileUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ReportSupportedFileUIProvider.XML_TAG); Set<ReportSupportedFileProvider> providers = ExtraReportClassManager.getInstance().getArray(ReportSupportedFileProvider.XML_TAG);
for (ReportSupportedFileUIProvider provider : providers) { for (ReportSupportedFileProvider provider : providers) {
for (FileExtension fileExtension : provider.getFileExtensions()){ for (FileExtension fileExtension : provider.getFileExtensions()){
supportedTypes.addExtension(fileExtension.getExtension()); supportedTypes.addExtension(fileExtension.getExtension());
} }

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

@ -1,9 +1,9 @@
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.design.ExtraDesignClassManager; import com.fr.report.ExtraReportClassManager;
import com.fr.design.fun.ReportSupportedFileUIProvider; import com.fr.report.fun.ReportSupportedFileProvider;
import com.fr.design.fun.impl.AbstractReportSupportedFileUIProvider; import com.fr.report.fun.impl.AbstractReportSupportedFileProvider;
import com.fr.stable.fun.mark.Mutable; import com.fr.stable.fun.mark.Mutable;
import org.easymock.EasyMock; import org.easymock.EasyMock;
import org.junit.Assert; import org.junit.Assert;
@ -19,38 +19,38 @@ import java.util.Set;
* Created by alex sung on 2019/7/25. * Created by alex sung on 2019/7/25.
*/ */
@RunWith(PowerMockRunner.class) @RunWith(PowerMockRunner.class)
@PrepareForTest(ExtraDesignClassManager.class) @PrepareForTest(ExtraReportClassManager.class)
public class FileNodeConstantsTest { public class FileNodeConstantsTest {
@Test @Test
public void supportFileTypesTest() { public void supportFileTypesTest() {
ExtraDesignClassManager extra = mockExtraDesignClassManager(); ExtraReportClassManager extra = mockExtraReportClassManager();
Assert.assertEquals(1, extra.getArray(ReportSupportedFileUIProvider.XML_TAG).size()); Assert.assertEquals(1, extra.getArray(ReportSupportedFileProvider.XML_TAG).size());
ReportSupportedFileUIProvider option = (ReportSupportedFileUIProvider) extra.getArray(ReportSupportedFileUIProvider.XML_TAG).iterator().next(); ReportSupportedFileProvider option = (ReportSupportedFileProvider) extra.getArray(ReportSupportedFileProvider.XML_TAG).iterator().next();
Assert.assertEquals(FileExtension.CPTX, option.getFileExtensions()[0]); Assert.assertEquals(FileExtension.CPTX, option.getFileExtensions()[0]);
} }
@Test @Test
public void testSupportFileTypesOrder() { public void testSupportFileTypesOrder() {
ExtraDesignClassManager extra = mockExtraDesignClassManager(); ExtraReportClassManager extra = mockExtraReportClassManager();
PowerMock.mockStatic(ExtraDesignClassManager.class); PowerMock.mockStatic(ExtraReportClassManager.class);
EasyMock.expect(ExtraDesignClassManager.getInstance()).andReturn(extra).once(); EasyMock.expect(ExtraReportClassManager.getInstance()).andReturn(extra).once();
PowerMock.replayAll(); PowerMock.replayAll();
String[] fileTypes = FileNodeConstants.getSupportFileTypes(); String[] fileTypes = FileNodeConstants.getSupportFileTypes();
Assert.assertEquals("cptx", fileTypes[0]); Assert.assertEquals("cptx", fileTypes[0]);
Assert.assertEquals("cpt", fileTypes[1]); Assert.assertEquals("cpt", fileTypes[1]);
} }
private ExtraDesignClassManager mockExtraDesignClassManager() { private ExtraReportClassManager mockExtraReportClassManager() {
ExtraDesignClassManager extra = EasyMock.mock(ExtraDesignClassManager.class); ExtraReportClassManager extra = EasyMock.mock(ExtraReportClassManager.class);
Set<Mutable> options = new HashSet<Mutable>() {{ Set<Mutable> options = new HashSet<Mutable>() {{
add(new MockNewTemplateFileOption()); add(new MockNewTemplateFileOption());
}}; }};
EasyMock.expect(extra.getArray(ReportSupportedFileUIProvider.XML_TAG)).andReturn(options).anyTimes(); EasyMock.expect(extra.getArray(ReportSupportedFileProvider.XML_TAG)).andReturn(options).anyTimes();
EasyMock.replay(extra); EasyMock.replay(extra);
return extra; return extra;
} }
private class MockNewTemplateFileOption extends AbstractReportSupportedFileUIProvider { private class MockNewTemplateFileOption extends AbstractReportSupportedFileProvider {
@Override @Override
public FileExtension[] getFileExtensions() { public FileExtension[] getFileExtensions() {

Loading…
Cancel
Save