forked from fanruan/design
Browse Source
* commit 'ec7b6606ddf97181fb85d0192cfe802d956369c1': (92 commits) ct ct ct . release/10.0 ct REPORT-19946 Linux设计器 REPORT-19946 Linux设计器 REPORT-23486 修复bug以及更改文件夹 REPORT-23115 远程设计权限配置-版本不匹配时用户角色列表都为空 REPORT-23570 修改国际化名字 REPORT-23570 模版版本管理,gc为负数时应当提示“无可优化文件” REPORT-23486 修复bug以及更改文件夹 REPORT-23486 修复bug以及更改文件夹 REPORT-23486 修复bug以及更改文件夹 REPORT-23486 修复bug以及更改文件夹 REPORT-23486 修复bug以及更改文件夹 REPORT-23486 修复bug以及更改文件夹 REPORT-23486 修复bug以及更改文件夹 REPORT-23486 修复bug以及更改文件夹 ...persist/11.0
71 changed files with 840 additions and 375 deletions
@ -0,0 +1,40 @@ |
|||||||
|
package com.fr.design.fun; |
||||||
|
|
||||||
|
import com.fr.design.mainframe.JTemplate; |
||||||
|
import com.fr.file.FILEChooserPane; |
||||||
|
import com.fr.stable.fun.mark.Mutable; |
||||||
|
|
||||||
|
import javax.swing.Icon; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by kerry on 2019-10-11 |
||||||
|
*/ |
||||||
|
public interface ReportSupportedFileUIProvider extends Mutable { |
||||||
|
|
||||||
|
int CURRENT_LEVEL = 1; |
||||||
|
|
||||||
|
String XML_TAG = "ReportSupportedFileUIProvider"; |
||||||
|
|
||||||
|
/** |
||||||
|
* 向文件选择器中添加指定文件类型过滤器 |
||||||
|
* @param fileChooser 文件选择器 |
||||||
|
* @param suffix 文件后缀 |
||||||
|
*/ |
||||||
|
void addChooseFileFilter(FILEChooserPane fileChooser, String suffix); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 获取文件关联的icon |
||||||
|
* @param path 文件路径 |
||||||
|
* @param isShowLock 是否显示被锁住 |
||||||
|
* @return 对应的图标 |
||||||
|
*/ |
||||||
|
Icon getFileIcon(String path,boolean isShowLock); |
||||||
|
|
||||||
|
/** |
||||||
|
* 保存为新类型文件 |
||||||
|
* @param targetPath 目标路径 |
||||||
|
* @param jTemplate 模板对象 |
||||||
|
*/ |
||||||
|
boolean saveToNewFile(String targetPath, JTemplate jTemplate); |
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
package com.fr.design.fun.impl; |
||||||
|
|
||||||
|
import com.fr.design.fun.ReportSupportedFileUIProvider; |
||||||
|
import com.fr.design.mainframe.JTemplate; |
||||||
|
import com.fr.file.FILEChooserPane; |
||||||
|
import com.fr.stable.fun.impl.AbstractProvider; |
||||||
|
import com.fr.stable.fun.mark.API; |
||||||
|
|
||||||
|
import javax.swing.Icon; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by kerry on 2019-10-14 |
||||||
|
*/ |
||||||
|
@API(level = ReportSupportedFileUIProvider.CURRENT_LEVEL) |
||||||
|
public abstract class AbstractReportSupportedFileUIProvider extends AbstractProvider implements ReportSupportedFileUIProvider { |
||||||
|
@Override |
||||||
|
public void addChooseFileFilter(FILEChooserPane fileChooser, String suffix) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Icon getFileIcon(String path, boolean isShowLock) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean saveToNewFile(String targetPath, JTemplate jTemplate) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int currentAPILevel() { |
||||||
|
return CURRENT_LEVEL; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String mark4Provider() { |
||||||
|
return getClass().getName(); |
||||||
|
} |
||||||
|
} |
@ -1,51 +1,63 @@ |
|||||||
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.base.io.BaseBook; |
import com.fr.report.ExtraReportClassManager; |
||||||
import com.fr.design.ExtraDesignClassManager; |
import com.fr.report.fun.ReportSupportedFileProvider; |
||||||
import com.fr.design.mainframe.AbstractAppProvider; |
import com.fr.report.fun.impl.AbstractReportSupportedFileProvider; |
||||||
import com.fr.design.mainframe.App; |
|
||||||
import com.fr.design.mainframe.JTemplate; |
|
||||||
import com.fr.file.FILE; |
|
||||||
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; |
||||||
import org.junit.Test; |
import org.junit.Test; |
||||||
|
import org.junit.runner.RunWith; |
||||||
|
import org.powermock.api.easymock.PowerMock; |
||||||
|
import org.powermock.core.classloader.annotations.PrepareForTest; |
||||||
|
import org.powermock.modules.junit4.PowerMockRunner; |
||||||
import java.util.HashSet; |
import java.util.HashSet; |
||||||
import java.util.Set; |
import java.util.Set; |
||||||
|
|
||||||
/** |
/** |
||||||
* Created by alex sung on 2019/7/25. |
* Created by alex sung on 2019/7/25. |
||||||
*/ |
*/ |
||||||
|
@RunWith(PowerMockRunner.class) |
||||||
|
@PrepareForTest(ExtraReportClassManager.class) |
||||||
public class FileNodeConstantsTest { |
public class FileNodeConstantsTest { |
||||||
@Test |
@Test |
||||||
public void supportFileTypesTest(){ |
public void supportFileTypesTest() { |
||||||
ExtraDesignClassManager extra = EasyMock.mock(ExtraDesignClassManager.class); |
ExtraReportClassManager extra = mockExtraReportClassManager(); |
||||||
Set<Mutable> apps = new HashSet<Mutable>(){{add(new MockCptxApp());}}; |
Assert.assertEquals(1, extra.getArray(ReportSupportedFileProvider.XML_TAG).size()); |
||||||
EasyMock.expect(extra.getArray(App.MARK_STRING)).andReturn(apps).anyTimes(); |
ReportSupportedFileProvider option = (ReportSupportedFileProvider) extra.getArray(ReportSupportedFileProvider.XML_TAG).iterator().next(); |
||||||
EasyMock.replay(extra); |
Assert.assertEquals(FileExtension.CPTX, option.getFileExtensions()[0]); |
||||||
|
} |
||||||
|
|
||||||
Assert.assertEquals(1, extra.getArray(App.MARK_STRING).size()); |
@Test |
||||||
App app = (App) extra.getArray(App.MARK_STRING).iterator().next(); |
public void testSupportFileTypesOrder() { |
||||||
Assert.assertEquals("cptx", app.defaultExtensions()[0]); |
ExtraReportClassManager extra = mockExtraReportClassManager(); |
||||||
|
PowerMock.mockStatic(ExtraReportClassManager.class); |
||||||
|
EasyMock.expect(ExtraReportClassManager.getInstance()).andReturn(extra).once(); |
||||||
|
PowerMock.replayAll(); |
||||||
|
String[] fileTypes = FileNodeConstants.getSupportFileTypes(); |
||||||
|
Assert.assertEquals("cptx", fileTypes[0]); |
||||||
|
Assert.assertEquals("cpt", fileTypes[1]); |
||||||
} |
} |
||||||
|
|
||||||
private class MockCptxApp extends AbstractAppProvider{ |
private ExtraReportClassManager mockExtraReportClassManager() { |
||||||
@Override |
ExtraReportClassManager extra = EasyMock.mock(ExtraReportClassManager.class); |
||||||
public String[] defaultExtensions() { |
Set<Mutable> options = new HashSet<Mutable>() {{ |
||||||
return new String[] {FileExtension.CPTX.getExtension()}; |
add(new MockNewTemplateFileOption()); |
||||||
} |
}}; |
||||||
|
EasyMock.expect(extra.getArray(ReportSupportedFileProvider.XML_TAG)).andReturn(options).anyTimes(); |
||||||
|
EasyMock.replay(extra); |
||||||
|
return extra; |
||||||
|
} |
||||||
|
|
||||||
@Override |
private class MockNewTemplateFileOption extends AbstractReportSupportedFileProvider { |
||||||
public JTemplate openTemplate(FILE tplFile) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
@Override |
||||||
public BaseBook asIOFile(FILE tplFile) { |
public FileExtension[] getFileExtensions() { |
||||||
return null; |
return new FileExtension[]{FileExtension.CPTX |
||||||
|
}; |
||||||
} |
} |
||||||
|
|
||||||
} |
} |
||||||
|
|
||||||
} |
} |
||||||
|
@ -0,0 +1,39 @@ |
|||||||
|
package com.fr.file; |
||||||
|
|
||||||
|
import com.fr.base.extension.FileExtension; |
||||||
|
import com.fr.file.filter.ChooseFileFilter; |
||||||
|
import com.fr.invoke.Reflect; |
||||||
|
import com.fr.stable.StringUtils; |
||||||
|
import org.junit.Assert; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by kerry on 2019-10-15 |
||||||
|
*/ |
||||||
|
|
||||||
|
public class FILEChooserPaneTest { |
||||||
|
@Test |
||||||
|
public void testAddChooseFileFilter() { |
||||||
|
FILEChooserPane chooserPane = Reflect.on(FILEChooserPane.class).field("INSTANCE").get(); |
||||||
|
Reflect.on(chooserPane).set("suffix", ".cpt"); |
||||||
|
String result1 = Reflect.on(chooserPane).call("calProperFileName", "WorkBook1.cpt", null).get(); |
||||||
|
Assert.assertEquals("WorkBook1.cpt", result1); |
||||||
|
|
||||||
|
ChooseFileFilter chooseFileFilter1 = new ChooseFileFilter(FileExtension.CPT, StringUtils.EMPTY); |
||||||
|
String result2 = Reflect.on(chooserPane).call("calProperFileName", "WorkBook1.cpt", chooseFileFilter1).get(); |
||||||
|
Assert.assertEquals("WorkBook1.cpt", result2); |
||||||
|
|
||||||
|
ChooseFileFilter chooseFileFilter2 = new ChooseFileFilter(FileExtension.CPTX, StringUtils.EMPTY); |
||||||
|
String result3 = Reflect.on(chooserPane).call("calProperFileName", "WorkBook1.cpt", chooseFileFilter2).get(); |
||||||
|
Assert.assertEquals("WorkBook1.cptx", result3); |
||||||
|
|
||||||
|
ChooseFileFilter chooseFileFilter3 = new ChooseFileFilter(FileExtension.CPT, StringUtils.EMPTY); |
||||||
|
String result4 = Reflect.on(chooserPane).call("calProperFileName", "WorkBook1.cptx", chooseFileFilter3).get(); |
||||||
|
Assert.assertEquals("WorkBook1.cpt", result4); |
||||||
|
|
||||||
|
ChooseFileFilter chooseFileFilter5 = new ChooseFileFilter(FileExtension.CPTX, StringUtils.EMPTY); |
||||||
|
String result5 = Reflect.on(chooserPane).call("calProperFileName", "WorkBook1.cptx", chooseFileFilter5).get(); |
||||||
|
Assert.assertEquals("WorkBook1.cptx", result5); |
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue