Пример #1
0
void dlgRepCluster::OnChangeJoin(wxCommandEvent &ev)
{
	bool joinCluster = chkJoinCluster->GetValue();
	txtClusterName->Show(!joinCluster);
	cbClusterName->Show(joinCluster);

	cbServer->Enable(joinCluster);
	cbDatabase->Enable(joinCluster);

	txtAdminNodeID->Show(!joinCluster && !cluster);
	txtAdminNodeName->Show(!joinCluster && !cluster);
	cbAdminNode->Show(joinCluster || cluster);
	cbAdminNode->Move(txtAdminNodeID->GetPosition());

	// Force the dialogue to resize to prevent a drawing issue on GTK
#ifdef __WXGTK__
	SetSize(GetSize().x + 1, GetSize().y + 1);
	Layout();
	SetSize(GetSize().x - 1, GetSize().y - 1);
#endif

	if (joinCluster && !cbDatabase->GetCount())
	{
		OnChangeServer(ev);
		return;
	}

	OnChange(ev);
}
int dlgSelectConnection::Go(pgConn *conn, wxBitmapComboBox *cb)
{
    cbConnection=cb;
	if (mainForm != NULL)
	{
        ctlTree *browser = mainForm->GetBrowser();
        wxTreeItemIdValue foldercookie, servercookie;
        wxTreeItemId folderitem, serveritem;
        pgObject *object;
        pgServer *server;

        folderitem = browser->GetFirstChild(browser->GetRootItem(), foldercookie);
        while (folderitem)
        {
            if (browser->ItemHasChildren(folderitem))
            {
                serveritem = browser->GetFirstChild(folderitem, servercookie);
                while (serveritem)
                {
                    object = browser->GetObject(serveritem);
                    if (object->IsCreatedBy(serverFactory))
                    {
                        server = (pgServer *)object;
			            cbServer->Append(server->GetIdentifier(), (void*)server);
			            if (server->GetConnected() &&
                            server->GetConnection()->GetHost() == conn->GetHost() &&
                            server->GetConnection()->GetPort() == conn->GetPort())
			            {
			            	 cbServer->SetSelection(cbServer->GetCount()-1);
			            	 remoteServer = server;
			            }
                    }
                    serveritem = browser->GetNextChild(folderitem, servercookie);
                }
            }
            folderitem = browser->GetNextChild(browser->GetRootItem(), foldercookie);
        }
		cbServer->SetFocus();
	}

    wxCommandEvent ev;
    OnChangeServer(ev);

    return ShowModal();
}
Пример #3
0
int dlgRepClusterUpgrade::Go(bool modal)
{
	txtCurrentVersion->SetValue(cluster->GetClusterVersion());
	txtCurrentVersion->Disable();
	txtVersion->Disable();

	// Populate the server combo box
	ctlTree *browser = mainForm->GetBrowser();
	wxTreeItemIdValue foldercookie, servercookie;
	wxTreeItemId folderitem, serveritem;
	pgObject *object;
	pgServer *server;

	folderitem = browser->GetFirstChild(browser->GetRootItem(), foldercookie);
	while (folderitem)
	{
		if (browser->ItemHasChildren(folderitem))
		{
			serveritem = browser->GetFirstChild(folderitem, servercookie);
			while (serveritem)
			{
				object = browser->GetObject(serveritem);
				if (object->IsCreatedBy(serverFactory))
				{
					server = (pgServer *)object;
					cbServer->Append(browser->GetItemText(server->GetId()), (void *)server);
				}
				serveritem = browser->GetNextChild(folderitem, servercookie);
			}
		}
		folderitem = browser->GetNextChild(browser->GetRootItem(), foldercookie);
	}

	if (cbServer->GetCount())
		cbServer->SetSelection(0);

	wxCommandEvent ev;
	OnChangeServer(ev);

	return dlgRepClusterBase::Go(modal);
}
Пример #4
0
int dlgSelectConnection::Go(pgConn *conn, wxBitmapComboBox *cb)
{
	bool foundServer = false;
	cbConnection = cb;
	if (mainForm != NULL)
	{
		ctlTree *browser = mainForm->GetBrowser();
		wxTreeItemIdValue foldercookie, servercookie;
		wxTreeItemId folderitem, serveritem;
		pgObject *object;
		pgServer *server;

		folderitem = browser->GetFirstChild(browser->GetRootItem(), foldercookie);
		while (folderitem)
		{
			if (browser->ItemHasChildren(folderitem))
			{
				serveritem = browser->GetFirstChild(folderitem, servercookie);
				while (serveritem)
				{
					object = browser->GetObject(serveritem);
					if (object && object->IsCreatedBy(serverFactory))
					{
						server = (pgServer *)object;
						cbServer->Append(server->GetIdentifier(), (void *)server);
						if (server->GetConnected() &&
						        server->GetConnection()->GetHost() == conn->GetHost() &&
						        server->GetConnection()->GetPort() == conn->GetPort())
						{
							cbServer->SetSelection(cbServer->GetCount() - 1);
							remoteServer = server;
							foundServer = true;
						}
					}
					serveritem = browser->GetNextChild(folderitem, servercookie);
				}
			}
			folderitem = browser->GetNextChild(browser->GetRootItem(), foldercookie);
		}
	}

	cbServer->SetFocus();

	wxCommandEvent ev;
	OnChangeServer(ev);

	if (foundServer)
	{

		unsigned int index = 0;
		for (; index < cbDatabase->GetCount(); index++)
		{
			if (cbDatabase->GetString(index) == conn->GetDbname())
			{
				cbDatabase->SetSelection(index);
				break;
			}
		}
		for (index = 0; index < cbUsername->GetCount(); index++)
		{
			if (cbUsername->GetString(index) == conn->GetUser())
			{
				cbUsername->SetSelection(index);
				break;
			}
		}
		for (index = 0; index < cbRolename->GetCount(); index++)
		{
			if (cbRolename->GetString(index) == conn->GetRole())
			{
				cbRolename->SetSelection(index);
				break;
			}
		}
	}

	return ShowModal();
}