帆软报表设计器源代码。
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.

103 lines
4.5 KiB

package com.fr.design.mainframe;
import com.fr.base.theme.FormTheme;
import com.fr.base.theme.FormThemeConfig;
import com.fr.base.theme.ReportThemeConfig;
import com.fr.base.theme.TemplateTheme;
import com.fr.base.theme.TemplateThemeConfig;
import com.fr.config.dao.DaoContext;
import com.fr.config.dao.impl.LocalClassHelperDao;
import com.fr.config.dao.impl.LocalEntityDao;
import com.fr.config.dao.impl.LocalXmlEntityDao;
import com.fr.design.mainframe.theme.utils.DefaultThemedTemplateCellElementCase;
import com.fr.form.main.Form;
import com.fr.form.ui.ElementCaseEditor;
import com.fr.form.ui.container.WFitLayout;
import com.fr.general.ImageWithSuffix;
import com.fr.general.ModuleContext;
import com.fr.invoke.Reflect;
import com.fr.main.impl.WorkBook;
import com.fr.report.cell.TemplateCellElement;
import com.fr.report.cell.cellattr.CellImage;
import com.fr.report.restriction.CellCountRestriction;
import com.fr.report.restriction.ReportRestrictionScene;
import com.fr.report.worksheet.FormElementCase;
import com.fr.report.worksheet.WorkSheet;
import com.fr.restriction.Restrictions;
import com.fr.stable.module.Module;
import com.fr.start.MainDesigner;
import com.fr.third.guava.collect.Lists;
import junit.framework.TestCase;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.modules.junit4.PowerMockRunner;
import java.awt.image.BufferedImage;
import java.util.HashMap;
import java.util.Map;
@RunWith(PowerMockRunner.class)
@PowerMockIgnore("javax.swing.*")
public class JFileTest extends TestCase {
@Override
protected void setUp() throws Exception {
DaoContext.setEntityDao(new LocalEntityDao());
DaoContext.setClassHelperDao(new LocalClassHelperDao());
DaoContext.setXmlEntityDao(new LocalXmlEntityDao());
Restrictions.register(ReportRestrictionScene.CELL_COUNT, new CellCountRestriction());
ModuleContext.startModule(Module.PAGE_MODULE);
ModuleContext.startModule(Module.VIEW_MODULE);
MainDesigner designer = new MainDesigner(new String[0]);
}
@Ignore("涉及到UI")
6 years ago
public void testJWorkBookSetPicture() {
WorkBook workBook = new WorkBook();
WorkSheet workSheet = new WorkSheet();
workBook.addReport("sheet1", workSheet);
TemplateCellElement cellElement = DefaultThemedTemplateCellElementCase.createInstance();
workSheet.addCellElement(cellElement);
ImageWithSuffix imageWithSuffix = ImageWithSuffix.build(new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB), "jpg");
CellImage cellImage = new CellImage();
cellImage.setImage(imageWithSuffix);
mockJCreateConfigEnv(ReportThemeConfig.getInstance());
JWorkBook jWorkBook = new JWorkBook(workBook, "text");
jWorkBook.setPictureElem(cellElement, cellImage);
Assert.assertEquals(imageWithSuffix, cellElement.getValue());
}
@Ignore("涉及到UI")
6 years ago
public void testJFormSetPicture() {
Form form = new Form();
ElementCaseEditor editor = new ElementCaseEditor();
FormElementCase elementCase = new FormElementCase();
TemplateCellElement cellElement = DefaultThemedTemplateCellElementCase.createInstance();
elementCase.addCellElement(cellElement);
editor.setElementCase(elementCase);
form.getContainer().addWidget(editor);
ImageWithSuffix imageWithSuffix = ImageWithSuffix.build(new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB), "jpg");
CellImage cellImage = new CellImage();
cellImage.setImage(imageWithSuffix);
mockJCreateConfigEnv(FormThemeConfig.getInstance());
form.setContainer(new WFitLayout());
JForm jForm = new JForm(form);
jForm.setTarget(form);
jForm.setPictureElem(cellElement, cellImage);
Assert.assertEquals(imageWithSuffix, cellElement.getValue());
}
private void mockJCreateConfigEnv(TemplateThemeConfig instance) {
Reflect.on(instance).field("themeName4NewTemplate").call("set", "test");
TemplateThemeConfig.OrderedNameList list = new TemplateThemeConfig.OrderedNameList();
list.setThemeNames(Lists.newArrayList("test"));
Reflect.on(instance).field("themeNameList").call("set", list);
TemplateTheme testTheme = new FormTheme();
testTheme.setDark(false);
testTheme.setName("test");
Map<String, TemplateTheme> testMap = new HashMap<>();
testMap.put("test", testTheme);
Reflect.on(instance).call("put", "test", testTheme, true);
}
}