1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
|
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// frmReport.h - The report file dialogue
//
//////////////////////////////////////////////////////////////////////////
#ifndef FRMREPORT_H
#define FRMREPORT_H
#include "dlg/dlgClasses.h"
#include "ctl/ctlListView.h"
#include "ctl/ctlSQLResult.h"
// Class declarations
class frmReport : public pgDialog
{
public:
frmReport(wxWindow *p);
~frmReport();
void SetReportTitle(const wxString &t);
void XmlAddHeaderValue(const wxString &name, const wxString &value);
int XmlCreateSection(const wxString &name);
void XmlSetSectionTableHeader(const int section, const int columns, const wxChar *name, ...);
void XmlAddSectionTableRow(const int section, const int number, const int columns, const wxChar *value, ...);
void XmlAddSectionTableFromListView(const int section, ctlListView *list);
void XmlAddSectionTableFromGrid(const int section, ctlSQLResult *grid);
void XmlSetSectionTableInfo(const int section, const wxString &info)
{
sectionTableInfo[section - 1] = info;
};
void XmlSetSectionSql(int section, const wxString &sql);
void XmlAddSectionValue(const int section, const wxString &name, const wxString &value);
private:
void OnChange(wxCommandEvent &ev);
void OnHelp(wxCommandEvent &ev);
void OnOK(wxCommandEvent &ev);
void OnCancel(wxCommandEvent &ev);
void OnBrowseFile(wxCommandEvent &ev);
void OnBrowseStylesheet(wxCommandEvent &ev);
wxString GetSectionTableColumns(const int section);
wxString GetSectionTableRows(const int section);
wxString GetSectionTable(const int section);
wxString GetSection(const int section);
wxString GetXmlReport(const wxString &stylesheet);
wxString XslProcessReport(const wxString &xml, const wxString &xsl);
wxString GetCssLink(const wxString &file);
wxString GetEmbeddedCss(const wxString &css);
const wxString GetDefaultCss();
wxString GetDefaultXsl(const wxString &css);
wxWindow *parent;
wxString header;
wxArrayString sectionName, sectionData, sectionTableHeader, sectionTableRows, sectionTableInfo, sectionSql;
DECLARE_EVENT_TABLE()
};
///////////////////////////////////////////////////////
// Report Factory base class
///////////////////////////////////////////////////////
class reportBaseFactory : public actionFactory
{
protected:
reportBaseFactory(menuFactoryList *list) : actionFactory(list) {}
wxWindow *StartDialog(frmMain *form, pgObject *obj);
frmMain *GetFrmMain()
{
return parent;
};
virtual void GenerateReport(frmReport *report, pgObject *object) {};
frmMain *parent;
public:
bool CheckEnable(pgObject *obj)
{
return false;
};
};
///////////////////////////////////////////////////////
// Object properties report
///////////////////////////////////////////////////////
class reportObjectPropertiesFactory : public reportBaseFactory
{
public:
reportObjectPropertiesFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
///////////////////////////////////////////////////////
// Object DDL report
///////////////////////////////////////////////////////
class reportObjectDdlFactory : public reportBaseFactory
{
public:
reportObjectDdlFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
///////////////////////////////////////////////////////
// Object Data dictionary report
///////////////////////////////////////////////////////
class reportObjectDataDictionaryFactory : public reportBaseFactory
{
public:
reportObjectDataDictionaryFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
///////////////////////////////////////////////////////
// Object statistics report
///////////////////////////////////////////////////////
class reportObjectStatisticsFactory : public reportBaseFactory
{
public:
reportObjectStatisticsFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
///////////////////////////////////////////////////////
// Object dependencies report
///////////////////////////////////////////////////////
class reportObjectDependenciesFactory : public reportBaseFactory
{
public:
reportObjectDependenciesFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
///////////////////////////////////////////////////////
// Object Dependents report
///////////////////////////////////////////////////////
class reportObjectDependentsFactory : public reportBaseFactory
{
public:
reportObjectDependentsFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
///////////////////////////////////////////////////////
// Object list report
///////////////////////////////////////////////////////
class reportObjectListFactory : public reportBaseFactory
{
public:
reportObjectListFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
#endif
|