01: package org.romaframework.aspect.reporting.jr.view.domain;
02:
03: import java.io.InputStream;
04: import java.util.List;
05:
06: import org.romaframework.aspect.core.annotation.AnnotationConstants;
07: import org.romaframework.aspect.reporting.ReportingException;
08: import org.romaframework.aspect.reporting.jr.domain.TemplateFile;
09: import org.romaframework.aspect.reporting.jr.template.TemplateManager;
10: import org.romaframework.aspect.view.ViewAspect;
11: import org.romaframework.aspect.view.ViewConstants;
12: import org.romaframework.aspect.view.annotation.ViewField;
13: import org.romaframework.core.domain.type.Stream;
14: import org.romaframework.core.flow.ObjectContext;
15: import org.romaframework.core.schema.SchemaClassDefinition;
16:
17: public class TemplateManagerPage {
18: private static TemplateManager manager = ObjectContext
19: .getInstance().getComponent(TemplateManager.class);
20:
21: @ViewField(visible=AnnotationConstants.FALSE)
22: private Object backObject;
23: private SchemaClassDefinition classDefinition;
24:
25: @ViewField(render=ViewConstants.RENDER_UPLOAD)
26: private Stream uploadFile;
27:
28: @ViewField(render=ViewConstants.RENDER_TABLE,enabled=AnnotationConstants.FALSE,selectionField="selectedTemplate")
29: private List<TemplateFile> templateFiles;
30: @ViewField(visible=AnnotationConstants.FALSE)
31: private TemplateFile selectedTemplate;
32:
33: public TemplateManagerPage(SchemaClassDefinition iClassDefinition) {
34: classDefinition = iClassDefinition;
35: selectedTemplate = null;
36: loadTemplates();
37: }
38:
39: private void loadTemplates() {
40: templateFiles = manager.getTemplateFiles(classDefinition);
41: }
42:
43: public void setBackObject(Object manager) {
44: backObject = manager;
45:
46: }
47:
48: public void back() {
49: ObjectContext.getInstance().show(backObject);
50: }
51:
52: public Stream getUploadFile() {
53: return uploadFile;
54: }
55:
56: public void setUploadFile(Stream uploadFile) {
57: this .uploadFile = uploadFile;
58: }
59:
60: public void onUploadFile() throws ReportingException {
61: String filename = uploadFile.getFileName();
62: InputStream stream = uploadFile.getInputStream();
63: manager.uploadTemplate(stream, classDefinition, filename);
64: refresh();
65: }
66:
67: public List<TemplateFile> getTemplateFiles() {
68: return templateFiles;
69: }
70:
71: public TemplateFile getSelectedTemplate() {
72: return selectedTemplate;
73: }
74:
75: public void setSelectedTemplate(TemplateFile selectedTemplate)
76: throws ReportingException {
77: this .selectedTemplate = selectedTemplate;
78: if (selectedTemplate == null) {
79: return;
80: } else {
81: InputStream stream = manager.getTemplateStream(
82: selectedTemplate, classDefinition);
83: ObjectContext.getInstance().getComponent(ViewAspect.class)
84: .pushDownload(stream,
85: selectedTemplate.getFileName(),
86: "text/plain");
87: }
88: }
89:
90: protected void refresh() {
91: loadTemplates();
92: selectedTemplate = null;
93: ObjectContext.getInstance().refresh(this , "templateFiles");
94: }
95:
96: }
|