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
|
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// ddDatabaseDesign.h - Manages all design related info and contains all model(s) and tables.
//
//////////////////////////////////////////////////////////////////////////
#ifndef DDDATABASEDESIGN_H
#define DDDATABASEDESIGN_H
#include <libxml/xmlwriter.h>
#include <ctl/ctlAuiNotebook.h>
#include "dd/ddmodel/ddDrawingEditor.h"
#include "hotdraw/tools/hdITool.h"
#include "dd/dditems/figures/ddTableFigure.h"
class ddModelBrowser;
enum
{
DDGENCREATE = 6000,
DDGENALTER,
DDGENDROPCRE,
DDGENNOTHING
};
WX_DECLARE_STRING_HASH_MAP( wxString , tablesMappingHashMap );
class ddDatabaseDesign : public wxObject
{
public:
ddDatabaseDesign(wxWindow *parent, wxWindow *frmOwner);
~ddDatabaseDesign();
hdDrawingView *getView(int diagramIndex);
ddDrawingEditor *getEditor();
void addTableToModel(hdIFigure *figure);
void addTableToView(int diagramIndex, hdIFigure *figure);
void removeTable(int diagramIndex, hdIFigure *figure);
hdDrawing *createDiagram(wxWindow *owner, wxString name, bool fromXml);
void deleteDiagram(int diagramIndex, bool deleteView = true);
void refreshDraw(int diagramIndex);
void eraseDiagram(int diagramIndex);
void emptyModel();
wxArrayString getDiagramTables(int diagramIndex);
wxString generateDiagram(int diagramIndex, wxString schemaName);
wxArrayString getModelTables();
wxString generateModel(wxString schemaName);
wxString generateList(wxArrayString tables, wxArrayInt options, pgConn *connection = NULL, wxString schemaName = wxEmptyString);
bool validateModel(wxString &errors);
ddTableFigure *getSelectedTable(int diagramIndex);
ddTableFigure *getTable(wxString tableName);
bool writeXmlModel(wxString file);
bool readXmlModel(wxString file, ctlAuiNotebook *notebook);
wxString getTableId(wxString tableName);
void addTableToMapping(wxString IdKey, wxString tableName);
wxString getTableName(wxString Id);
void registerBrowser(ddModelBrowser *browser);
void refreshBrowser();
static wxString getVersionXML();
void markSchemaOn(wxArrayString tables);
void unMarkSchemaOnAll();
protected:
tablesMappingHashMap mappingNameToId;
tablesMappingHashMap mappingIdToName;
private:
ddModelBrowser *attachedBrowser;
int diagramCounter;
ddDrawingEditor *editor;
hdITool *tool;
xmlTextWriterPtr xmlWriter;
};
#endif
|