1 //////////////////////////////////////////////////////////////////////////
2 //
3 // pgAdmin III - PostgreSQL Tools
4 // Copyright (C) 2002 - 2016, The pgAdmin Development Team
5 // This software is released under the PostgreSQL Licence
6 //
7 // ddTextTableItemFigure.h -
8 //
9 //////////////////////////////////////////////////////////////////////////
10 
11 #ifndef DDTEXTTABLEITEMFIGURE_H
12 #define DDTEXTTABLEITEMFIGURE_H
13 
14 
15 #include <wx/arrstr.h>
16 
17 #include "hotdraw/figures/hdSimpleTextFigure.h"
18 #include "dd/dditems/utilities/ddDataType.h"
19 
20 enum
21 {
22 	MNU_DDADDCOLUMN = 321,
23 	MNU_DELCOLUMN,
24 	MNU_RENAMECOLUMN,
25 	MNU_AUTONAMCOLUMN,
26 	MNU_NOTNULL,
27 	MNU_PKEY,
28 	MNU_UKEY,
29 	MNU_TYPESERIAL,
30 	MNU_TYPEBOOLEAN,
31 	MNU_TYPEINTEGER,
32 	MNU_TYPEMONEY,
33 	MNU_TYPEVARCHAR,
34 	MNU_TYPEOTHER,
35 	MNU_TYPEPKEY_CONSTRAINTNAME,
36 	MNU_TYPEUKEY_CONSTRAINTNAME,
37 	MNU_DELTABLE
38 };
39 
40 class ddColumnFigure;
41 class ddTableFigure;
42 
43 class ddTextTableItemFigure : public hdSimpleTextFigure
44 {
45 public:
46 	ddTextTableItemFigure(wxString &columnName, ddDataType dataType, ddColumnFigure *owner);
47 	~ddTextTableItemFigure();
48 	virtual wxString &getText(bool extended = false);
49 	wxString getType(bool raw = false);
50 	virtual void setAlias(wxString alias);
51 	virtual wxString getAlias();
52 	virtual void setOneTimeNoAlias();
53 	virtual void createMenu(wxMenu &mnu);
54 	virtual const wxArrayString dataTypes();
55 	virtual void OnGenericPopupClick(wxCommandEvent &event, hdDrawingView *view);
56 	virtual void setText(wxString textString);
57 	virtual ddColumnFigure *getOwnerColumn();
58 	virtual void setOwnerColumn(ddColumnFigure *column);
59 	virtual void setShowDataType(bool value);
getShowDataType()60 	virtual bool getShowDataType()
61 	{
62 		return showDataType;
63 	};
64 	hdITool *CreateFigureTool(hdDrawingView *view, hdITool *defaultTool);
65 	virtual void displayBoxUpdate();
66 	void recalculateDisplayBox();
67 	int getTextWidth();
68 	int getTextHeight();
69 	ddDataType getDataType();
70 	void setDataType(ddDataType type);
71 	void setOwnerTable(ddTableFigure *table);  //only used by columns working as table title figure for setAlias method
72 	int getPrecision();
73 	int getScale();
74 	void setPrecision(int value);
75 	void setScale(int value);
76 protected:
77 	ddColumnFigure *ownerColumn;
78 	ddTableFigure *ownerTable;
79 	wxString colAlias;
80 private:
81 	ddDataType columnType;
82 	wxString out;
83 	bool showDataType;
84 	bool showAlias;
85 	bool oneTimeNoAlias;
86 	int precision;
87 	int scale;
88 };
89 #endif
90