1
1
//////////////////////////////////////////////////////////////////////////
3
3
// pgAdmin III - PostgreSQL Tools
4
// RCS-ID: $Id: dlgForeignKey.cpp 6930 2008-01-02 00:10:01Z dpage $
5
// Copyright (C) 2002 - 2008, The pgAdmin Development Team
6
// This software is released under the Artistic Licence
4
// RCS-ID: $Id: dlgForeignKey.cpp 7758 2009-03-26 20:49:59Z dpage $
5
// Copyright (C) 2002 - 2009, The pgAdmin Development Team
6
// This software is released under the BSD Licence
8
8
// dlgForeignKey.cpp - PostgreSQL Foreign Key Property
54
54
EVT_BUTTON(XRCID("btnAddRef"), dlgForeignKey::OnAddRef)
55
55
EVT_BUTTON(XRCID("btnRemoveRef"), dlgForeignKey::OnRemoveRef)
56
56
EVT_BUTTON(wxID_OK, dlgForeignKey::OnOK)
58
EVT_SIZE( dlgForeignKey::OnChangeSize)
105
void dlgForeignKey::OnChangeSize(wxSizeEvent &ev)
107
lstColumns->SetSize(wxDefaultCoord, wxDefaultCoord,
108
ev.GetSize().GetWidth(), ev.GetSize().GetHeight() - 450);
101
117
void dlgForeignKey::CheckChange()
121
137
chkDeferred->SetValue(false);
122
138
chkDeferred->Enable(canDef);
124
txtIndexName->Enable(chkAutoIndex->GetValue());
140
txtIndexName->Enable(table && chkAutoIndex->GetValue());
126
142
wxString coveringIndex;
128
145
coveringIndex = table->GetCoveringIndex(mainForm->GetBrowser(), cols);
130
if (coveringIndex.IsEmpty())
132
if (!chkAutoIndex->IsEnabled())
134
chkAutoIndex->Enable();
135
chkAutoIndex->SetValue(true);
136
txtIndexName->Enable();
137
txtIndexName->SetValue(savedIndexName);
140
wxString idxName = txtIndexName->GetValue().Strip(wxString::both);
142
if (name != savedFKName || idxName == savedIndexName)
144
if (idxName.IsEmpty() || idxName == DefaultIndexName(savedFKName))
146
idxName = DefaultIndexName(name);
147
txtIndexName->SetValue(idxName);
150
savedIndexName = idxName;
154
if (chkAutoIndex->IsEnabled())
155
savedIndexName = txtIndexName->GetValue();
157
txtIndexName->SetValue(coveringIndex);
158
chkAutoIndex->SetValue(false);
160
txtIndexName->Disable();
161
chkAutoIndex->Disable();
147
if (coveringIndex.IsEmpty())
149
if (!chkAutoIndex->IsEnabled())
151
chkAutoIndex->Enable();
152
chkAutoIndex->SetValue(true);
153
txtIndexName->Enable();
154
txtIndexName->SetValue(savedIndexName);
157
wxString idxName = txtIndexName->GetValue().Strip(wxString::both);
159
if (name != savedFKName || idxName == savedIndexName)
161
if (idxName.IsEmpty() || idxName == DefaultIndexName(savedFKName))
163
idxName = DefaultIndexName(name);
164
txtIndexName->SetValue(idxName);
167
savedIndexName = idxName;
171
if (chkAutoIndex->IsEnabled())
172
savedIndexName = txtIndexName->GetValue();
174
txtIndexName->SetValue(coveringIndex);
175
chkAutoIndex->SetValue(false);
177
txtIndexName->Disable();
178
chkAutoIndex->Disable();
164
182
savedFKName = name;
170
188
if (chkAutoIndex->GetValue())
172
190
CheckValid(enable, !txtIndexName->GetValue().IsEmpty(),
173
_("Please specify FK index name."));
191
_("Please specify covering index name."));
176
194
enable = txtComment->GetValue() != foreignKey->GetComment();
182
200
txtComment->Enable(!name.IsEmpty());
183
201
CheckValid(enable, lstColumns->GetItemCount() > 0, _("Please specify columns."));
184
202
CheckValid(enable, !chkAutoIndex->GetValue() || !txtIndexName->GetValue().IsEmpty(),
185
_("Please specify FK index name."));
203
_("Please specify covering index name."));
186
204
EnableOK(enable);