private void toolStripButtonEditServer_Click ( object sender, EventArgs e )
            {
               try
               {
                  EditServiceDialog dialog ;
                  
                  
                  dialog = new EditServiceDialog ( ) ;

                  dialog.Settings    = AddInUtils.Clone <ServerSettings> ( WorkstationService.Settings ) ;
                  dialog.ServiceName = ServiceManager.ServiceName ;
                  dialog.Mode        = EditServiceDialog.EditMode.EditServer ;
                  
                  if ( dialog.ShowDialog ( this ) == DialogResult.OK )
                  {
                     WorkstationService.Settings = dialog.Settings ;
                     
                     LEADStorageServiceAELabel.Text = WorkstationService.Settings.AETitle ;
                     IpAddressLabel.Text            = WorkstationService.Settings.IpAddress ;
                     ServerPortLabel.Text           = WorkstationService.Settings.Port.ToString ( ) ;
                     
                     OnWorkstationServiceChanged ( this, new WorkstationServiceEventArgs ( WorkstationService.ServiceName, WorkstationService ) ) ;
                  }
               }
               catch ( Exception exception )
               {
                  System.Diagnostics.Debug.Assert ( false, exception.Message ) ;
                                 
                  ThreadSafeMessager.ShowError (  exception.Message ) ;
               }
            }
            private void toolStripButtonAddAeTitle_Click ( object sender, EventArgs e )
            {
               try
               {
                  EditAeTitleDialog dialog ;
                  
                  
                  dialog = new EditAeTitleDialog ( ) ;

                  if ( dialog.ShowDialog ( this ) == DialogResult.OK )
                  {
                     AeInfo newAeInfo = AddInUtils.Clone<AeInfo> ( dialog.AeInfo ) ;
                     
                     
                     newAeInfo.Address = newAeInfo.Address ;
                     
                     try
                     {
                        WorkstationService.SendMessage ( MessageNames.AddAeTitle, newAeInfo ) ;
                     }
                     catch ( Exception ex )
                     {
                        ThreadSafeMessager.ShowError (  "Error sending message.\n" + ex.Message ) ;
                     }
                  }
               }
               catch ( Exception exception )
               {
                  System.Diagnostics.Debug.Assert ( false, exception.Message ) ;
                                 
                  ThreadSafeMessager.ShowError (  exception.Message ) ;
               }
            }
            private void toolStripButtonEditAeTitle_Click ( object sender, EventArgs e )
            {
               try
               {
                  EditAeTitleDialog dialog ;
                  string oldAe ;
                  
                  
                  if ( AeTitlesListView.SelectedItems.Count == 0 )
                  {
                     return ;
                  }
                  
                  dialog = new EditAeTitleDialog ( ) ;
                  
                  dialog.AeInfo = AddInUtils.Clone<AeInfo> ( AeTitlesListView.SelectedItems [ 0 ].Tag as AeInfo ) ;
                  
                  oldAe  = dialog.AeInfo.AETitle ;

                  if ( dialog.ShowDialog ( this ) == DialogResult.OK )
                  {
                     try
                     {
                        AeInfo newAeInfo = AddInUtils.Clone<AeInfo> ( dialog.AeInfo ) ;
                        
                        
                        newAeInfo.Address = newAeInfo.Address ;
                        
                        WorkstationService.SendMessage ( MessageNames.UpdateAeTitle,
                                                         oldAe, 
                                                         newAeInfo ) ;
                     }
                     catch (Exception ex)
                     {
                        ThreadSafeMessager.ShowError (  "Error sending message.\n" + ex.Message ) ;
                     }
                  }
               }
               catch ( Exception exception )
               {
                  System.Diagnostics.Debug.Assert ( false, exception.Message ) ;
                                 
                  ThreadSafeMessager.ShowError (  exception.Message ) ;
               }
            }
            void __LEADWorkstationService_Message 
            ( 
               object sender, 
               MessageEventArgs e 
            )
            {
               try
               {
                  ServiceMessage message ;
                  
                  
                  if ( WorkstationService != ( sender as DicomService ) )
                  {
                     return ;
                  }
                  
                  message = AddInUtils.Clone <ServiceMessage> ( e.Message ) ;

                  switch ( message.Message )
                  {
                     case MessageNames.AddAeTitle:
                     {
                        
                        if ( message.Success )
                        {
                           AddAe ( message.Data [ 0 ] as AeInfo ) ; 
                        }
                        else
                        {
                           ThreadSafeMessager.ShowError ( 
                                                          "Error Adding AE Title.\n" + message.Error ) ;
                        }
                     }
                     break;
                     
                     case MessageNames.GetAeTitles:
                     {
                        if ( message.Success )
                        {
                           LoadAes ( message.Data [ 0 ] as List <AeInfo> ) ;
                        }
                        else
                        {
                           ThreadSafeMessager.ShowError ( 
                                                          "Error Getting AE Titles.\n" +  message.Error ) ;
                        }
                     }
                     break ;
                     
                     case MessageNames.UpdateAeTitle:
                     {
                        if ( !message.Success )
                        {
                            ThreadSafeMessager.ShowError ( 
                                                           "Error Updating AE Title.\n" + message.Error ) ;
                            
                            UpdateAe ( message.Data [ 0 ] as string, 
                                       message.Data [ 1 ] as AeInfo, 
                                       true ) ;
                        }
                        else
                        {
                           UpdateAe ( message.Data [ 0 ] as string, 
                                      message.Data [ 1 ] as AeInfo, 
                                      false ) ;
                        }
                     }
                     break ;
                     
                     case MessageNames.RemoveAeTitle:
                     {
                        if (!message.Success)
                        {
                           ThreadSafeMessager.ShowError ( 
                                                          "Error Removing AE Title\n" + message.Error ) ;
                        }
                        else
                        {
                           RemoveAe ( message.Data [ 0] as string ) ;
                        }
                     }
                     break ;
                  }
               }
               catch ( Exception exception )
               {
                  System.Diagnostics.Debug.Assert ( false, exception.Message ) ;
                                 
                  throw ;
               }
            }