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
|
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// ddAddColButtonHandle.cpp - A handle for a table figure that allow to graphically add columns
//
//////////////////////////////////////////////////////////////////////////
#include "pgAdmin3.h"
// wxWindows headers
#include <wx/wx.h>
// App headers
#include "dd/dditems/handles/ddAddColButtonHandle.h"
#include "dd/dditems/figures/ddTableFigure.h"
#include "dd/dditems/utilities/ddDataType.h"
#include "hotdraw/main/hdDrawingView.h"
//Images
#include "images/ddAddColumnCursor.pngc"
ddAddColButtonHandle::ddAddColButtonHandle(hdIFigure *owner, hdILocator *buttonLocator , wxBitmap &buttonImage, wxSize &size):
hdButtonHandle(owner, buttonLocator, buttonImage, size)
{
}
ddAddColButtonHandle::~ddAddColButtonHandle()
{
}
void ddAddColButtonHandle::invokeStart(hdMouseEvent &event, hdDrawingView *view)
{
ddTableFigure *table = (ddTableFigure *) getOwner();
wxTextEntryDialog nameDialog(view, wxT("New column name"), wxT("Add a column"));
bool again;
do
{
again = false;
int answer = nameDialog.ShowModal();
if (answer == wxID_OK)
{
wxString name = nameDialog.GetValue();
if(table->getColByName(name) == NULL)
{
table->addColumn(view->getIdx(), new ddColumnFigure(name, table));
view->notifyChanged();
}
else
{
wxString msg(wxT("Error trying to add new column '"));
msg.Append(name);
msg.Append(wxT("' column name already in use"));
wxMessageDialog info( view, msg ,
wxT("Column name already in use"),
wxNO_DEFAULT | wxOK | wxICON_EXCLAMATION);
again = true;
info.ShowModal();
}
}
}
while(again);
view->Refresh();
}
void ddAddColButtonHandle::invokeStep(hdMouseEvent &event, hdDrawingView *view)
{
}
void ddAddColButtonHandle::invokeEnd(hdMouseEvent &event, hdDrawingView *view)
{
}
|