Class TemplateHelper
- java.lang.Object
-
- com.nomagic.magicdraw.magicreport.helper.TemplateHelper
-
@OpenApiAll public class TemplateHelper extends java.lang.ObjectProvide helper methods for template such as create and save.- Since:
- May 10, 2007
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringDBKConstants for Default DOCBOOK type.static java.lang.StringDESCRIPTOR_FILEstatic java.lang.StringDOCBOOKConstants for DOCBOOK type.static java.lang.StringDOCXConstants for DOCX type.static java.lang.StringHTMLConstants for HTML type.static org.apache.logging.log4j.LoggerLOGstatic java.lang.StringODPConstants for ODP type.static java.lang.StringODSConstants for ODS type.static java.lang.StringODTConstants for ODT type.static java.lang.StringPPTXConstants for PPTX type.static java.lang.StringPROPERTY_CREATEstatic java.lang.StringPROPERTY_DELETEDelete property name.static java.lang.StringPROPERTY_RELOADReload property name.static java.lang.StringPROPERTY_SAVESave property name.static java.lang.StringRTFConstants for RTF type.static java.lang.StringTEMPLATE_EXTENSIONConstants for template extension.static java.lang.StringTXTConstants for TXT type.static java.lang.StringXLSXConstants for XLSX type.static java.lang.StringXMLConstants for XML type.
-
Constructor Summary
Constructors Constructor Description TemplateHelper()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidaddPropertyChangeListener(java.beans.PropertyChangeListener listener)Register a listener for the PropertyChange event.static booleancheckEdition(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean bean, com.nomagic.magicdraw.lic.MDVersion version)Return true if this template is valid to MDVersion.static java.lang.StringcheckRequiredPlugins(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean bean)static voidclearCachedElements()static java.io.FilecreateTemplateFile(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)Create a directory or file from given template bean.static java.io.FilecreateTemplateFile(java.lang.String templateName)Create a directory or file from given template name.static javax.swing.IconcreateTemplateIcon(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)Create and return icon for this template bean.static voidexportZip(java.io.File zipFile, com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)Export template bean to zip file with default progress status.static voidexportZip(java.io.File zipFile, com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean, ProgressStatus progress)Export template bean to zip file.static voidexportZip(java.io.File zipFile, com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean, ProgressStatus progress, java.util.List<java.io.File> includedFiles)Export template bean to zip file.static booleanextractZip(java.io.File zipFile, java.io.File destinationDir, ProgressStatus progress)static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBeanfindTemplateBean(java.lang.String catName, java.lang.String templName)Get the templateBean by given category name and template name.static voidfirePropertyChange(java.beans.PropertyChangeEvent evt)Fire an existing PropertyChangeEvent to any registered listeners.static voidfirePropertyChange(java.lang.Object source, java.lang.String propertyName, java.lang.Object oldValue, java.lang.Object newValue)Report a bound property update to any registered listeners.static java.util.Set<java.io.File>getCustomTemplateLocations()Get custom location that store template.static java.lang.StringgetDefaultReportKey(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)Return a key for default report preference.static ResizableIcongetIconByFileExtension(java.lang.String ext)static java.lang.StringgetOutputReportKey(com.nomagic.magicdraw.magicreport.ui.bean.ReportBean reportBean)Return a key for output report preference.static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBeangetTemplateBean(java.lang.String path)Return existing template bean from the template path.static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBeangetTemplateBeanByName(java.lang.String catName, java.lang.String templateName)Get template bean by category name and template namestatic java.io.FilegetTemplateFile(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)static java.io.FilegetTemplateFile(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean, boolean revolveDir)static java.lang.StringgetTemplateType(java.lang.String extension)Consider template type from file extension.static java.lang.StringgetViewerReportKey(com.nomagic.magicdraw.magicreport.ui.bean.ReportBean reportBean)Return a key for viewer report preference.static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBeanimportZip(java.io.File zipFile, boolean copyToData)Import zip file to template bean.static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBeanimportZip(java.io.File zipFile, boolean copyToData, ProgressStatus progress)Import zip file to template bean.static booleanisFileExternal(java.io.File file, com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)static java.util.List<com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean>listAvailableTemplates(com.nomagic.magicdraw.lic.MDVersion version, com.nomagic.magicdraw.usermodes.UserMode userMode)Return a list of available template to MDVersion and Perspective.static voidlistMRZipTemplates()Load and Unzip MRZip template file from template directory.static java.util.List<com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean>listTemplates()This method will automatically load all template file from "data" directory of report plugin and return a List ofTemplateBean.static java.util.List<com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean>listTemplates(boolean forceReload)Load all template files from report plugin "data" directory and return to List ofTemplateBean.static com.nomagic.magicdraw.magicreport.ui.bean.ReportBeanloadReport(java.io.File reportFile)Create aReportBeanfrom given reportFile.static voidloadReportDataAndConfig(java.io.File templateDir, com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBeanloadTemplate(java.io.File templateFile)Create aTemplateBeanfrom given templateFile.static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBeanloadTemplate(java.io.File templateFile, boolean checkValid)Create aTemplateBeanfrom given templateFile.static voidloadTemplateBean(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean, org.w3c.dom.Document document)static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBeanloadTemplateBean(java.io.File file)static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBeanreloadTemplate(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)Force the application to remove this template from cache and then reload it from file.static voidremoveImportHistory(java.io.File[] importedMrzipFiles)static voidremovePropertyChangeListener(java.beans.PropertyChangeListener listener)Remove a listener for the PropertyChange event.static voidremoveTemplate(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)Delete a template file from physical storage.static voidsaveReport(com.nomagic.magicdraw.magicreport.ui.bean.ReportBean reportBean)Create a new report file from ReportBean.static voidsaveReport(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean, com.nomagic.magicdraw.magicreport.ui.bean.ReportBean reportBean)Create a new report file from ReportBean.static voidsaveTemplate(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)Create a new template file from TemplateBean.static voidunzipMRZipTemplates(java.io.File[] mrZipFile)Unzip MRZip Templates files.
-
-
-
Field Detail
-
TEMPLATE_EXTENSION
public static final java.lang.String TEMPLATE_EXTENSION
Constants for template extension.- See Also:
- Constant Field Values
-
PROPERTY_SAVE
public static final java.lang.String PROPERTY_SAVE
Save property name.- See Also:
- Constant Field Values
-
PROPERTY_DELETE
public static final java.lang.String PROPERTY_DELETE
Delete property name.- See Also:
- Constant Field Values
-
PROPERTY_CREATE
public static final java.lang.String PROPERTY_CREATE
- See Also:
- Constant Field Values
-
PROPERTY_RELOAD
public static final java.lang.String PROPERTY_RELOAD
Reload property name.- See Also:
- Constant Field Values
-
HTML
public static final java.lang.String HTML
Constants for HTML type.- See Also:
- Constant Field Values
-
RTF
public static final java.lang.String RTF
Constants for RTF type.- See Also:
- Constant Field Values
-
XML
public static final java.lang.String XML
Constants for XML type.- See Also:
- Constant Field Values
-
TXT
public static final java.lang.String TXT
Constants for TXT type.- See Also:
- Constant Field Values
-
ODT
public static final java.lang.String ODT
Constants for ODT type.- See Also:
- Constant Field Values
-
ODS
public static final java.lang.String ODS
Constants for ODS type.- See Also:
- Constant Field Values
-
ODP
public static final java.lang.String ODP
Constants for ODP type.- See Also:
- Constant Field Values
-
DOCX
public static final java.lang.String DOCX
Constants for DOCX type.- See Also:
- Constant Field Values
-
XLSX
public static final java.lang.String XLSX
Constants for XLSX type.- See Also:
- Constant Field Values
-
PPTX
public static final java.lang.String PPTX
Constants for PPTX type.- See Also:
- Constant Field Values
-
DBK
public static final java.lang.String DBK
Constants for Default DOCBOOK type.- See Also:
- Constant Field Values
-
DOCBOOK
public static final java.lang.String DOCBOOK
Constants for DOCBOOK type.- See Also:
- Constant Field Values
-
DESCRIPTOR_FILE
public static final java.lang.String DESCRIPTOR_FILE
- See Also:
- Constant Field Values
-
LOG
public static final org.apache.logging.log4j.Logger LOG
-
-
Method Detail
-
listTemplates
public static java.util.List<com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean> listTemplates()
This method will automatically load all template file from "data" directory of report plugin and return a List ofTemplateBean.TemplateBeanis a container of template information.- Returns:
- a List of
TemplateBeanfrom "data" directory. - Throws:
java.security.AccessControlException- when unable to locate and create directory for data- See Also:
listTemplates(boolean),listAvailableTemplates(MDVersion, UserMode)
-
listAvailableTemplates
public static java.util.List<com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean> listAvailableTemplates(@CheckForNull com.nomagic.magicdraw.lic.MDVersion version, @CheckForNull com.nomagic.magicdraw.usermodes.UserMode userMode)Return a list of available template to MDVersion and Perspective.- Parameters:
version- MDVersionuserMode- UserMode- Returns:
- a list of available template after filter out
- See Also:
listTemplates()
-
checkEdition
public static boolean checkEdition(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean bean, @CheckForNull com.nomagic.magicdraw.lic.MDVersion version)Return true if this template is valid to MDVersion.- Parameters:
version- MDVersion- Returns:
- true if this template is valid to given MDVersion; otherwise false.
-
checkRequiredPlugins
public static java.lang.String checkRequiredPlugins(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean bean)
- Returns:
- empty string if all required plugins are ok. Otherwise, a multiline info message for each missing/outdated plugin
-
addPropertyChangeListener
public static void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
Register a listener for the PropertyChange event. When a Template changes its value it should fire a PropertyChange event on all registered PropertyChangeListeners.- Parameters:
listener- An object to be invoked when a PropertyChange event is fired.
-
removePropertyChangeListener
public static void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
Remove a listener for the PropertyChange event.- Parameters:
listener- The PropertyChange listener to be removed.
-
firePropertyChange
public static void firePropertyChange(java.lang.Object source, java.lang.String propertyName, @CheckForNull java.lang.Object oldValue, java.lang.Object newValue)Report a bound property update to any registered listeners. No event is fired if old and new are equal and non-null.- Parameters:
source- property sourcepropertyName- The programmatic name of the property that was changed.oldValue- The old value of the property.newValue- The new value of the property.
-
firePropertyChange
public static void firePropertyChange(java.beans.PropertyChangeEvent evt)
Fire an existing PropertyChangeEvent to any registered listeners. No event is fired if the given event's old and new values are equal and non-null.- Parameters:
evt- The PropertyChangeEvent object.
-
listTemplates
public static java.util.List<com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean> listTemplates(boolean forceReload)
Load all template files from report plugin "data" directory and return to List ofTemplateBean.- Parameters:
forceReload- true if you want this method to reload template from disk; false use template from cache.- Returns:
- a List of
TemplateBeanfrom "data" directory. - Throws:
java.security.AccessControlException- when unable to locate and create directory for data- See Also:
listTemplates()
-
listMRZipTemplates
public static void listMRZipTemplates()
Load and Unzip MRZip template file from template directory.
-
unzipMRZipTemplates
public static void unzipMRZipTemplates(java.io.File[] mrZipFile)
Unzip MRZip Templates files.- Parameters:
mrZipFile- file
-
removeImportHistory
public static void removeImportHistory(java.io.File[] importedMrzipFiles)
-
reloadTemplate
public static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean reloadTemplate(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)
Force the application to remove this template from cache and then reload it from file.- Parameters:
templateBean- a target template- Returns:
- TemplateBean or null if invalid template file format.
-
getTemplateBean
public static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean getTemplateBean(java.lang.String path)
Return existing template bean from the template path.- Parameters:
path- path of templateTemplateBean.getPath()- Returns:
- the
TemplateBean
-
getTemplateBeanByName
public static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean getTemplateBeanByName(java.lang.String catName, java.lang.String templateName)Get template bean by category name and template name- Parameters:
catName- template category nametemplateName- template name- Returns:
- template bean
-
loadTemplate
public static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean loadTemplate(java.io.File templateFile)
Create aTemplateBeanfrom given templateFile. If template file is not valid template format, return null.- Parameters:
templateFile- a File for template- Returns:
- TemplateBean or null if invalid template file format.
-
loadTemplate
@CheckForNull public static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean loadTemplate(java.io.File templateFile, boolean checkValid) throws com.nomagic.magicreport.TemplateExceptionCreate aTemplateBeanfrom given templateFile. If template file is not valid template format, return null.- Parameters:
templateFile- a File for templatecheckValid- true if this template file require format checking- Returns:
- TemplateBean or null if invalid template file format.
- Throws:
com.nomagic.magicreport.TemplateException- if the template file is not valid format and check parameter is true.
-
loadReportDataAndConfig
public static void loadReportDataAndConfig(java.io.File templateDir, com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)
-
importZip
public static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean importZip(java.io.File zipFile, boolean copyToData) throws java.io.IOExceptionImport zip file to template bean.- Parameters:
zipFile- an input zip file.copyToData- copy template to data folder after successfully extract.- Returns:
- templateBean a template bean
- Throws:
java.io.IOException- when unable to import zip file.- See Also:
importZip(File, boolean, ProgressStatus)
-
importZip
@CheckForNull public static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean importZip(java.io.File zipFile, boolean copyToData, ProgressStatus progress) throws java.io.IOExceptionImport zip file to template bean.- Parameters:
zipFile- an input zip file.copyToData- copy template to data folder after successfully extract.progress- the progress status- Returns:
- templateBean a template bean
- Throws:
java.io.IOException- when unable to import zip file.- See Also:
importZip(File, boolean)
-
extractZip
public static boolean extractZip(java.io.File zipFile, java.io.File destinationDir, ProgressStatus progress) throws java.io.IOException- Throws:
java.io.IOException
-
exportZip
public static void exportZip(java.io.File zipFile, com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean) throws java.io.IOExceptionExport template bean to zip file with default progress status.- Parameters:
zipFile- a output zip file.templateBean- a template bean- Throws:
java.io.IOException- when unable to export zip file.- See Also:
exportZip(File, TemplateBean, ProgressStatus)
-
exportZip
public static void exportZip(java.io.File zipFile, com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean, ProgressStatus progress) throws java.io.IOExceptionExport template bean to zip file.- Parameters:
zipFile- a output zip file.templateBean- a template beanprogress- the progress status- Throws:
java.io.IOException- when unable to export zip file.- See Also:
exportZip(File, TemplateBean)
-
exportZip
public static void exportZip(java.io.File zipFile, com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean, ProgressStatus progress, java.util.List<java.io.File> includedFiles) throws java.io.IOExceptionExport template bean to zip file.- Parameters:
zipFile- a output zip file.templateBean- a template beanprogress- the progress statusincludedFiles- other files to be included in this zip- Throws:
java.io.IOException- when unable to export zip file.- See Also:
exportZip(File, TemplateBean)
-
isFileExternal
public static boolean isFileExternal(java.io.File file, com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)- Parameters:
templateBean-file- to check- Returns:
- true if checked file resides outside the template package
-
getTemplateFile
public static java.io.File getTemplateFile(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)
-
getTemplateFile
public static java.io.File getTemplateFile(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean, boolean revolveDir)
-
loadReport
public static com.nomagic.magicdraw.magicreport.ui.bean.ReportBean loadReport(java.io.File reportFile)
Create aReportBeanfrom given reportFile. If report file is not valid report format, return null.- Parameters:
reportFile- a File for report- Returns:
- ReportBean or null if invalid report file format.
-
saveTemplate
public static void saveTemplate(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean) throws java.io.IOExceptionCreate a new template file from TemplateBean. IfTemplateBean.getPath()exists, write a template file to this value; if value doesn't exists create a new file withTemplateBean.getName()as template filename.- Parameters:
templateBean- a Template Bean- Throws:
java.io.IOException- if the template was not successfully created
-
loadTemplateBean
public static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean loadTemplateBean(java.io.File file) throws java.io.IOException- Throws:
java.io.IOException
-
loadTemplateBean
public static void loadTemplateBean(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean, org.w3c.dom.Document document) throws java.io.IOException- Throws:
java.io.IOException
-
saveReport
public static void saveReport(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean, com.nomagic.magicdraw.magicreport.ui.bean.ReportBean reportBean) throws java.io.IOExceptionCreate a new report file from ReportBean. IfReportBean.getFileName()exists, write a report file to this value; if value doesn't exists create a new file withTemplateBean.getName()as template filename.- Parameters:
templateBean- a TemplateBeanreportBean- a ReportBean- Throws:
java.io.IOException- if the template was not successfully created
-
saveReport
public static void saveReport(com.nomagic.magicdraw.magicreport.ui.bean.ReportBean reportBean) throws java.io.IOExceptionCreate a new report file from ReportBean. IfReportBean.getFileName()exists, write a report file to this value; if value doesn't exists throw IOException.- Parameters:
reportBean- a ReportBean- Throws:
java.io.IOException- if the report was not successfully created
-
removeTemplate
public static void removeTemplate(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean) throws java.io.IOExceptionDelete a template file from physical storage. Physical storage meaning that template file will not be able to recovery after successfully deleted.- Parameters:
templateBean- a Template Bean- Throws:
java.io.IOException- if the template was not successfully deleted
-
createTemplateFile
public static java.io.File createTemplateFile(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean) throws java.io.IOExceptionCreate a directory or file from given template bean. This method use template name as a directory name.- Parameters:
templateBean- a template bean- Returns:
- File references to template bean
- Throws:
java.io.IOException- if false to create directory.
-
createTemplateFile
public static java.io.File createTemplateFile(java.lang.String templateName) throws java.io.IOExceptionCreate a directory or file from given template name.- Parameters:
templateName- a template name- Returns:
- File references to template bean
- Throws:
java.io.IOException- if false to create directory.
-
findTemplateBean
public static com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean findTemplateBean(@CheckForNull java.lang.String catName, java.lang.String templName)Get the templateBean by given category name and template name.- Parameters:
catName- categoryName or nulltemplName- the template name- Returns:
- the TemplateBean
-
getTemplateType
public static java.lang.String getTemplateType(java.lang.String extension)
Consider template type from file extension.- Parameters:
extension- a file extension.- Returns:
- a template type.
-
createTemplateIcon
public static javax.swing.Icon createTemplateIcon(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean)
Create and return icon for this template bean.- Parameters:
templateBean- a template bean- Returns:
- template icon
-
getIconByFileExtension
public static ResizableIcon getIconByFileExtension(java.lang.String ext)
-
getDefaultReportKey
public static java.lang.String getDefaultReportKey(com.nomagic.magicdraw.magicreport.ui.bean.TemplateBean templateBean) throws java.lang.IllegalArgumentExceptionReturn a key for default report preference. A key is a concatenation of#hashCode()and ";default".- Parameters:
templateBean- a template bean- Returns:
- a key.
- Throws:
java.lang.IllegalArgumentException- illegal argument is used.
-
getOutputReportKey
public static java.lang.String getOutputReportKey(com.nomagic.magicdraw.magicreport.ui.bean.ReportBean reportBean) throws java.lang.IllegalArgumentExceptionReturn a key for output report preference. A key is a concatenation of {@link ReportBean#getModel()#getID()} and ";output" or {@link ReportBean#getFileName()#hashCode()} + ";output".- Parameters:
reportBean- a report bean- Returns:
- a key.
- Throws:
java.lang.IllegalArgumentException- illegal argument is used.
-
getViewerReportKey
public static java.lang.String getViewerReportKey(com.nomagic.magicdraw.magicreport.ui.bean.ReportBean reportBean) throws java.lang.IllegalArgumentExceptionReturn a key for viewer report preference. A key is a concatenation of {@link ReportBean#getModel()#getID()} and ";viewer" or {@link ReportBean#getFileName()#hashCode()} + ";viewer".- Parameters:
reportBean- a report bean- Returns:
- a key.
- Throws:
java.lang.IllegalArgumentException- illegal argument is used.
-
getCustomTemplateLocations
public static java.util.Set<java.io.File> getCustomTemplateLocations()
Get custom location that store template.- Returns:
- list of custom location
-
clearCachedElements
public static void clearCachedElements()
-
-