bd006a197f
- sistemata scrittura e lettura nomi utensili e lavorazioni in ini di macchina come UTF8 - sistemazione scelta lavorazioni in Split anche per lama fissa - eliminati parametri WaterJet non usati - sistemazioni varie.
171 lines
7.9 KiB
VB.net
171 lines
7.9 KiB
VB.net
Imports EgtUILib
|
|
Imports EgtPHOTOLib
|
|
|
|
Public Class OmagPhotoWD
|
|
' Riferimento alla MainWindow
|
|
Friend m_MainWindow As MainWindow
|
|
|
|
Private m_AddToDataBaseUC As AddToDataBaseUC
|
|
Private m_StateList As New List(Of EgtWPFLib5.IdNameStruct)
|
|
|
|
' il contorno dell sfrido è definito a partire dai punti che rappresentano i vertici dello stesso
|
|
Private m_ContornScrap As New List(Of Point3d)
|
|
' se lo stato della lastra è "2" significa che è già stata inserita nel DB (non devo generare una nuova foto!)
|
|
Private m_nState As Integer = 1
|
|
' salvo il nome del file *.jpg
|
|
Private m_sFileImage As String = String.Empty
|
|
|
|
' definsce se il slavataggio è andato a buon fine (questa variabile deve esistere anche dopo la chiusura della finestra!)
|
|
Public Shared m_IsAdded As Boolean = False
|
|
Public Shared m_sDtBsId As String = ""
|
|
Public Shared m_bSlabIsSelected As Boolean = False
|
|
|
|
' definisce se il grezzo è stato eliminato dal DB
|
|
Public Shared m_IsDeleted As Boolean = False
|
|
|
|
Public Sub New(sImage As String, ContornScrap As List(Of Point3d), MnWindow As MainWindow, nState As Integer, DatabaseID As String)
|
|
|
|
InitializeComponent()
|
|
|
|
' salvo il riferimento della finestra principale
|
|
m_MainWindow = MnWindow
|
|
' leggo lo stato dello sfrido per decidere quale modalità di apertuta usare
|
|
m_nState = nState
|
|
|
|
'--------------- CARCICO lastra esistente ---------------
|
|
If m_nState = 2 Then
|
|
m_bSlabIsSelected = False
|
|
' ricerco l'elemento già inserito nel DB
|
|
For Each Item As Slab In EgtPHOTOLib.refProjectVM.SlabList
|
|
Dim CurrId As String = Item.GetCurrentID.Trim
|
|
If Item.GetCurrentID.Trim = DatabaseID.Trim Then
|
|
EgtPHOTOLib.refProjectVM.SelSlab = Item
|
|
m_bSlabIsSelected = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
' se non trovo nessun elemento nel db allora esco
|
|
If IsNothing(EgtPHOTOLib.refProjectVM.SelSlab) Then
|
|
EgtOutLog("ID is not found in database: " & DatabaseID)
|
|
m_bSlabIsSelected = False
|
|
Return
|
|
End If
|
|
' procedo alla visualizzazione della pagina
|
|
EgtPHOTOLib.PhotoMap.refProjectVM.SelProjectMode = ProjectSlabVM.ProjectModeOpt.DETAIL
|
|
' carico la lista degli stati letta dalla libreria
|
|
For Each Item As EgtWPFLib5.IdNameStruct In EgtPHOTOLib.PhotoMap.refOptionPanelVM.StateList
|
|
m_StateList.Add(Item)
|
|
Next
|
|
|
|
' notifico che la lastra è in modifica da questo programma
|
|
EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab.IsSelected = EgtPHOTOLib.MainData.nKey
|
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.IsSelected()
|
|
|
|
' posiziono la finestra
|
|
Me.Top = 15
|
|
Me.Left = 15
|
|
Return
|
|
End If
|
|
|
|
'--------------- DEFINSCO nuova lastra esistente ---------------
|
|
' imposto come prima pagina sempre la lista (per inizializzare gli elementi della libreria) -> ACCELERARE il processo di creazione di questo oggetto!
|
|
EgtPHOTOLib.PhotoMap.refProjectVM.SelProjectMode = ProjectSlabVM.ProjectModeOpt.NEWSLAB
|
|
' imposto il percoso della foto appena generato
|
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.ImagePath = sImage
|
|
' carico la foto come texture
|
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.PostPhoto(sImage, "")
|
|
' carico l'elenco dei materiali (non serve...)
|
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SetMaterialFromDB()
|
|
' definisco la lista degli stati
|
|
For Each Item As EgtWPFLib5.IdNameStruct In EgtPHOTOLib.PhotoMap.refOptionPanelVM.StateList
|
|
m_StateList.Add(Item)
|
|
Next
|
|
|
|
' imposto i dati lastra
|
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Thickness = m_MainWindow.m_CurrentProjectPageUC.m_dRawHeight
|
|
' carico la lista degli stati letta dalla libreria
|
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelState = EgtPHOTOLib.PhotoMap.refOptionPanelVM.StateList(0)
|
|
' ricorco il materiale corrente nell'elenco dei materiali presenti nel DB (se non presente nell'elenco?)
|
|
For Each MaterialItem As String In EgtPHOTOLib.PhotoMap.refOptionPanelVM.MaterialList
|
|
If MaterialItem.ToLower = m_MainWindow.m_CurrentMachine.CurrMat.sName.ToLower Then
|
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Material = MaterialItem
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
' salvo in locale i punti che arrivano dal progetto
|
|
m_ContornScrap = ContornScrap
|
|
' avvio la finestra di modifica
|
|
Dim m_refImagePrevieV As New EgtPHOTOLib.ImagePreviewV()
|
|
' modifico l'immagine e salvo
|
|
m_refImagePrevieV.SetContourScraps(m_ContornScrap)
|
|
m_refImagePrevieV.Hide()
|
|
m_refImagePrevieV.Show()
|
|
m_refImagePrevieV.SaveImage()
|
|
m_refImagePrevieV.Close()
|
|
m_bSlabIsSelected = True
|
|
|
|
' posiziono la finestra
|
|
Me.Top = 15
|
|
Me.Left = 15
|
|
End Sub
|
|
|
|
' posizionamento degli UserControl all'interno della griglia
|
|
Private Sub OmagPhotoWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
|
' definisco nella pagina la posizione dello UserControl e inizializzo le liste
|
|
m_AddToDataBaseUC = New AddToDataBaseUC(Me)
|
|
m_AddToDataBaseUC.SetValue(Grid.ColumnProperty, 0)
|
|
m_AddToDataBaseUC.SetValue(Grid.RowProperty, 1)
|
|
m_AddToDataBaseUC.SetValue(Grid.RowSpanProperty, 2)
|
|
Me.OptionSLabGrid.Children.Add(m_AddToDataBaseUC)
|
|
m_AddToDataBaseUC.StateCmBx.ItemsSource = m_StateList
|
|
' recupero la scena dalla libreria e la carico nel finestra
|
|
Dim MyScene As New EgtPHOTOLib.SceneHostSlabV(EgtPHOTOLib.PhotoMap.refSceneHostVM)
|
|
MyScene.SetValue(Grid.ColumnProperty, 1)
|
|
MyScene.SetValue(Grid.ColumnSpanProperty, 2)
|
|
MyScene.SetValue(Grid.RowProperty, 1)
|
|
Me.OptionSLabGrid.Children.Add(MyScene)
|
|
End Sub
|
|
|
|
' carcio i dati della lastra
|
|
Private Sub PostLoaded() Handles Me.Loaded
|
|
If Not m_bSlabIsSelected Then
|
|
Return
|
|
End If
|
|
' carico i campi con i dati letti da database
|
|
If m_nState = 2 Then
|
|
' provo ad eseguire la separazione dei campi
|
|
m_sDtBsId = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Id
|
|
m_AddToDataBaseUC.BlockTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNameBlock
|
|
m_AddToDataBaseUC.NbrIdTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNbrID
|
|
m_AddToDataBaseUC.StateCmBx.SelectedIndex = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.State
|
|
m_AddToDataBaseUC.MatTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Material
|
|
m_AddToDataBaseUC.ThicknessTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Thickness
|
|
m_AddToDataBaseUC.ProjectTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.ProjectAssignedTo
|
|
' aggiorno il testo del messaggio "Add" -> "Save"
|
|
m_AddToDataBaseUC.AddBtn.Content = EgtMsg(91252) ' Save
|
|
Return
|
|
End If
|
|
' inizializzo i campi
|
|
'm_AddToDataBaseUC.IdTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Id
|
|
m_AddToDataBaseUC.BlockTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNameBlock
|
|
m_AddToDataBaseUC.NbrIdTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNbrID
|
|
m_AddToDataBaseUC.StateCmBx.SelectedIndex = 0
|
|
m_AddToDataBaseUC.MatTxBx.Text = m_MainWindow.m_CurrentMachine.CurrMat.sName
|
|
m_AddToDataBaseUC.ThicknessTxBx.Text = LenToString(m_MainWindow.m_CurrentProjectPageUC.m_dRawHeight, 4)
|
|
m_AddToDataBaseUC.ProjectTxBx.Text = m_MainWindow.m_CurrentProjectPageUC.GetCurrentProjectName()
|
|
' rendo in primo piano la finestra
|
|
Me.Activate()
|
|
End Sub
|
|
|
|
Private Sub ExitBtn_Click() Handles ExitBtn.Click
|
|
' se esista una lastra corrente, notifico che deve essere deselezionata
|
|
If Not IsNothing(EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab) Then
|
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.IsSelected = 0
|
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.IsSelected()
|
|
End If
|
|
Me.Close()
|
|
End Sub
|
|
|
|
End Class
|