Imports EgtUILib
Imports EgtPHOTOLib

Public Class AddToDataBaseUC

   Private m_OmagPhotoWD As OmagPhotoWD

#Region "PROPERTY"
   Private Sub BlockTxBx_EgtClosed(sender As Object, e As EventArgs) Handles BlockTxBx.EgtClosed
      ' assegno il dato alla classe inizializzata nella libreria
      EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNameBlock = BlockTxBx.Text
      ' devo riasseganre il valore dell'indice
      NbrIdTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNbrID
      EnableButtons()
   End Sub

   Private Sub NbrIdTxBx_EgtClosed(sender As Object, e As EventArgs) Handles NbrIdTxBx.EgtClosed
      ' assegno il dato alla classe inizializzata nella libreria
      EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNbrID = NbrIdTxBx.Text
      EnableButtons()
   End Sub

   Private Sub StateCmBx_Changed() Handles StateCmBx.SelectionChanged
      EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.State = StateCmBx.SelectedIndex
      EnableButtons()
   End Sub

   Private Sub ProjectTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ProjectTxBx.EgtClosed
      EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.ProjectAssignedTo = ProjectTxBx.Text
      EnableButtons()
   End Sub

   Private Sub ThicknessTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ThicknessTxBx.EgtClosed
      EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Thickness = ThicknessTxBx.Text
      EnableButtons()
   End Sub

   Private Sub WarehouseTxBx_EgtClosed(sender As Object, e As EventArgs) Handles WarehouseTxBx.EgtClosed
      EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.WarehousePosition = WarehouseTxBl.Text
      EnableButtons()
   End Sub
#End Region    ' Property

   Sub New(LocalOmagPhotoWD As OmagPhotoWD)

      ' La chiamata è richiesta dalla finestra di progettazione.
      InitializeComponent()

      ' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent().
      m_OmagPhotoWD = LocalOmagPhotoWD
   End Sub

   ' dopo la crezione della pagina imposto lo stato dei pulsanti
   Private Sub PostLoaded() Handles Me.Loaded
      If EgtPHOTOLib.MainData.bEnableTextId Then
         BlockTxBx.Visibility = Visibility.Collapsed
         BlockTxBl.Visibility = Visibility.Collapsed
      Else
         NbrIdTxBx.IsEnabled = False
      End If
      PrintBtn.IsEnabled = EgtPHOTOLib.MainData.bEnablePrinter
      EnableButtons()
   End Sub

#Region "COMMAND"
   Private Sub CancelBtn_Click() Handles CacelBtn.Click
      ' se è stata inserita nel DB allora devo rimuoverla ed esco dalla pagina
      EgtPHOTOLib.refOptionPanelVM.Delete()
      ' notifico che il grezzo è stato rimosso 
      OmagPhotoWD.m_IsDeleted = True
      ' notifico che il grezzo non è stato aggiunto al DB delle lastre
      OmagPhotoWD.m_IsAdded = False
      ' elimino l'identificativo usato nel database del grezzo appena inserito
      OmagPhotoWD.m_sDtBsId = ""
      ' esco dalla pagina
      m_OmagPhotoWD.Close()
   End Sub

   Private Sub AddBtn_Click() Handles AddBtn.Click
      ' se non sono validi i campi allora attendo
      If Not EgtPHOTOLib.PhotoMap.refOptionPanelVM.Ok_IsEnabled Then Return
      ' modalità di funzionamento della libreria: ProjectSlabVM.ProjectModeOpt.NEWSLAB
      EgtPHOTOLib.PhotoMap.refOptionPanelVM.Save()
      ' notifico che il grezzo è stato aggiunto al DB delle lastre
      OmagPhotoWD.m_IsAdded = True
      ' salvo l'identificativo usato nel database del grezzo appena inserito
      OmagPhotoWD.m_sDtBsId = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Id
      ' salvo il nome del blocco che è stato utilizzato
      If Not EgtPHOTOLib.MainData.bEnableTextId Then
         WritePrivateProfileString(S_SCRAPS, K_LASTBLOCK, EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNameBlock, m_OmagPhotoWD.m_MainWindow.GetIniFile())
      End If
      ' aggiorno il testo del messaggio "Add" → "Save"
      AddBtn.Content = EgtMsg(91252)      ' Save

      ' notifico che da ora la lastra inserita è in modalità di modifica (non salvo la lastra come nuova, ma la sovrascrivo come in modifica)
      EgtPHOTOLib.PhotoMap.refProjectVM.SetSelProjectMode(ProjectSlabVM.ProjectModeOpt.DETAIL)
      EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab.SetOrigValues()

      ' notifico che la lastra è in modifica da questo programma
      EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab.IsSelected = EgtPHOTOLib.MainData.nKey
      EgtPHOTOLib.PhotoMap.refOptionPanelVM.IsSelected()
   End Sub

   Private Sub PrintBtn_Click() Handles PrintBtn.Click
      EgtPHOTOLib.PhotoMap.refOptionPanelVM.PrintLabel()
   End Sub
#End Region    ' Command

#Region "METHODS"
   Private Sub EnableButtons()
      AddBtn.IsEnabled = EgtPHOTOLib.PhotoMap.refOptionPanelVM.Ok_IsEnabled
      ' se la stampante non è abilitata allora non permetto assolutamente di abilitare il comando
      If EgtPHOTOLib.MainData.bEnablePrinter Then
         PrintBtn.IsEnabled = EgtPHOTOLib.PhotoMap.refOptionPanelVM.Ok_IsEnabled
      End If

   End Sub
#End Region    ' Methods

End Class
