diff options
Diffstat (limited to 'trunk/TAO/utils/NamingViewer/BindDialog.cpp')
-rw-r--r-- | trunk/TAO/utils/NamingViewer/BindDialog.cpp | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/trunk/TAO/utils/NamingViewer/BindDialog.cpp b/trunk/TAO/utils/NamingViewer/BindDialog.cpp new file mode 100644 index 00000000000..a7a0c2b7cdb --- /dev/null +++ b/trunk/TAO/utils/NamingViewer/BindDialog.cpp @@ -0,0 +1,102 @@ +// $Id$ + +#include "stdafx.h" +#include "NamingViewer.h" +#include "BindDialog.h" +#include "ViewIORDialog.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CBindDialog dialog + + +CBindDialog::CBindDialog(bool Context, CORBA::ORB_ptr pORB, CWnd* pParent /*=NULL*/) + : CDialog(CBindDialog::IDD, pParent) +{ + //{{AFX_DATA_INIT(CBindDialog) + m_IOR = _T(""); + m_ID = _T(""); + m_Kind = _T(""); + //}}AFX_DATA_INIT + m_pORB = pORB; + m_Context = Context; +} + + +void CBindDialog::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CBindDialog) + DDX_Text(pDX, IDC_IOR, m_IOR); + DDX_Text(pDX, IDC_ID, m_ID); + DDX_Text(pDX, IDC_KIND, m_Kind); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CBindDialog, CDialog) + //{{AFX_MSG_MAP(CBindDialog) + ON_BN_CLICKED(IDC_VIEWIOR, OnViewior) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CBindDialog message handlers + +void CBindDialog::OnViewior() +{ + // TODO: Add your control notification handler code here + try + { + UpdateData(); + m_Object = m_pORB->string_to_object(ACE_TEXT_ALWAYS_CHAR (m_IOR)); + } + catch(CORBA::Exception& ex) + { + MessageBox(ACE_TEXT_CHAR_TO_TCHAR (ex._rep_id()), ACE_TEXT ("CORBA::Exception")); + return; + } + ViewIORDialog Dialog(m_pORB, m_Object); + Dialog.DoModal(); +} + +BOOL CBindDialog::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // TODO: Add extra initialization here + if(m_Context) + { + SetWindowText(ACE_TEXT ("Bind Context")); + } + else + { + SetWindowText(ACE_TEXT ("Bind Object")); + } + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CBindDialog::OnOK() +{ + // TODO: Add extra validation here + UpdateData(); + m_Name.length(1); + m_Name[0].id = CORBA::string_dup(ACE_TEXT_ALWAYS_CHAR (m_ID)); + m_Name[0].kind = CORBA::string_dup(ACE_TEXT_ALWAYS_CHAR (m_Kind)); + try + { + m_Object = m_pORB->string_to_object(ACE_TEXT_ALWAYS_CHAR (m_IOR)); + } + catch(CORBA::Exception& ex) + { + MessageBox(ACE_TEXT_CHAR_TO_TCHAR (ex._rep_id()), ACE_TEXT ("Invalid IOR")); + return; + } + CDialog::OnOK(); +} |