/** SpagoBI, the Open Source Business Intelligence suite Copyright (C) 2012 Engineering Ingegneria Informatica S.p.A. - SpagoBI Competency Center This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. **/ package it.eng.spagobi.studio.documentcomposition.editors.model.documentcomposition; import it.eng.spagobi.studio.documentcomposition.editors.Designer; import it.eng.spagobi.studio.documentcomposition.editors.DocContainer; import it.eng.spagobi.studio.documentcomposition.editors.DocumentCompositionEditor; import it.eng.spagobi.studio.documentcomposition.editors.model.documentcomposition.bo.ModelBO; import it.eng.spagobi.studio.documentcomposition.editors.model.documentcomposition.metadata.MetadataDocument; import it.eng.spagobi.studio.documentcomposition.util.DocCompUtilities; import it.eng.spagobi.studio.documentcomposition.views.DocumentPropertiesView; import java.util.Iterator; import java.util.Vector; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IViewPart; public class DocumentComposition { private DocumentsConfiguration documentsConfiguration; private String templateValue; public DocumentsConfiguration getDocumentsConfiguration() { return documentsConfiguration; } public void setDocumentsConfiguration( DocumentsConfiguration documentsConfiguration) { this.documentsConfiguration = documentsConfiguration; } public String getTemplateValue() { return templateValue; } public void setTemplateValue(String templateValue) { this.templateValue = templateValue; } public DocumentComposition() { documentsConfiguration=new DocumentsConfiguration(); templateValue="/jsp/engines/documentcomposition/template/dynamicTemplate.jsp"; } /** Calld before saving recalculate styles for each document (filled) contestualized to the actual video size (except for those set to manual! * */ public void reloadAllStylesContained(){ // take desginer and run all the containers DocumentPropertiesView docPropertiesView=null; IViewPart viewPart=DocCompUtilities.getViewReference(DocCompUtilities.DOCUMENT_PROPERTIES_VIEW_ID); if(viewPart!=null)docPropertiesView=(DocumentPropertiesView)viewPart; IEditorPart editorPart=DocCompUtilities.getEditorReference(DocCompUtilities.DOCUMENT_COMPOSITION_EDITOR_ID); if(editorPart!=null){ DocumentCompositionEditor editor=(DocumentCompositionEditor)editorPart; Designer designer=editor.getDesigner(); for (Iterator iterator = designer.getContainers().keySet().iterator(); iterator.hasNext();) { Integer id = (Integer) iterator.next(); DocContainer docContainer=designer.getContainers().get(id); if(docContainer.getDocumentContained()!=null && docContainer.getDocumentContained().getMetadataDocument()!=null) { // If in manual state shell take manual configuration! String manualString=null; if(docPropertiesView!=null){ manualString=docPropertiesView.getStyleParameters().get(docContainer.getIdContainer()); } // manual mode Style style=null; if(manualString!=null){ style=new Style(); style.setStyle(manualString); style.setMode("manual"); } else{ style=docContainer.calculateTemplateStyle(true); style.setMode("auto"); } MetadataDocument metadataDocument=docContainer.getDocumentContained().getMetadataDocument(); new ModelBO().updateModelModifyDocument(metadataDocument, style); } } } } /** return the parameters vector associated to a document * * @param label * @return * @throws Exception */ public Vector<Parameter> retrieveParametersVectorFromDocumentLabel(String label) throws Exception{ // get the document Vector<Document> documents = getDocumentsConfiguration().getDocuments(); Document actualDoc = null; for (Iterator iterator = documents.iterator(); iterator.hasNext();) { Document doc = (Document) iterator.next(); if (doc.getSbiObjLabel().equals(label)){ actualDoc = doc; } } Parameters parameters = actualDoc.getParameters(); Vector<Parameter> vectPars = parameters.getParameter(); return vectPars; } /** return the document associated to the doucment label * * @param label * @return * @throws Exception */ public Document retrieveDocumentFromDocumentLabel(String label) throws Exception{ // get the document Vector<Document> documents = getDocumentsConfiguration().getDocuments(); Document actualDoc = null; for (Iterator iterator = documents.iterator(); iterator.hasNext();) { Document doc = (Document) iterator.next(); if (doc.getSbiObjLabel().equals(label)){ actualDoc = doc; } } return actualDoc; } }