Compare commits

...

135 Commits

Author SHA1 Message Date
Demetrio Cassarino cbf44a8b23 -gestione finestra con griglia dinamica 2024-12-19 11:34:50 +01:00
Demetrio Cassarino 17e647e65d Merge commit '795407767663a23291c6494074c989c18a89e262' into feature/Button_Menu 2024-11-20 08:52:55 +01:00
Dario Sassi 7954077676 EgtCAM5 :
- entrando in LAVORA si rende corrente la prima macchinata (anziché l'ultima).
2024-11-18 19:18:53 +01:00
Dario Sassi 60673cd9e3 EgtCAM5 2.6k1 :
- ricompilazione con cambio versione.
2024-11-16 11:16:28 +01:00
Dario Sassi 9d62cf6b99 EgtCAM5 :
- miglioramenti spostamento grezzi con morse.
2024-10-31 18:34:30 +01:00
Dario Sassi 6e2c4d8b35 EgtCAM5 2.6j3 :
- migliorie e correzioni per disposizioni con pianetti di lavoro.
2024-10-31 11:42:46 +01:00
Dario Sassi d8bff8ac9e EgtCAM5 :
- migliorie e correzioni per disposizione con piani di lavoro (bancaletti).
2024-10-20 22:29:57 +02:00
Dario Sassi 0926456513 EgtCAM5 :
- in nuova fase si conserva anche la posizione assi di disposizione della fase precedente.
2024-10-16 19:52:44 +02:00
Dario Sassi bf424a49e1 EgtCAM5 :
- ulteriori modifiche in disposizione con piani di lavoro (bancaletti).
2024-10-16 14:56:05 +02:00
Dario Sassi be4bc812da EgtCAM5 :
- in disposizione modificata gestione punti di aggancio (HOOK) e aggiunta gestione movimento barre e carrelli con memoria.
2024-10-15 17:39:55 +02:00
Dario Sassi ce18ea3ade EgtCAM5 2.6j2 :
- aggiustamenti in Disposizione per posizionamento Fixtures su tavole a bancaletti.
2024-10-15 10:54:02 +02:00
Dario Sassi 931c96a587 EgtCAM5 2.6j1 :
- ricompilazione con cambio versione.
2024-10-10 15:48:25 +02:00
Dario Sassi 5e53f20fec EgtCAM5 :
- aggiunta gestione messaggi lavorazioni avanzate non abilitate in simulazione, stima e generazione
- piccola miglioria in default VMillQuality se non trovata in Ini file.
2024-10-01 13:10:43 +02:00
Dario Sassi 44e919c134 Merge commit '52c4b2c4240e62fc5e4c57e01bb8939f7fcdf7c1' 2024-09-30 19:41:34 +02:00
Demetrio Cassarino 52c4b2c424 -rinominato valori qualità 2024-09-30 16:10:01 +02:00
Demetrio Cassarino 53fb9b3416 -piccola modifica su finestra vm 2024-09-30 16:03:36 +02:00
Dario Sassi 0c7718d91d Merge commit '0fed5c356f0762f8c61271748f9146fc85dfb228' 2024-09-30 15:42:50 +02:00
Demetrio Cassarino 0fed5c356f -piccola modifica al vm 2024-09-30 15:31:21 +02:00
Demetrio Cassarino 2b6e4c36df Merge remote-tracking branch 'origin/master' into feature/cw_ccw 2024-09-30 15:13:23 +02:00
Dario Sassi cdc9caf4ee EgtCAM5 :
- piccole modifiche in Opzioni per qualità VM.
2024-09-30 15:10:26 +02:00
Dario Sassi 5970a97c15 Merge commit 'bfc4af4c1eb5995199fc32960aacf8c918aea468' 2024-09-30 14:52:56 +02:00
Demetrio Cassarino bfc4af4c1e -aggiunto in opzioni virtualmillingquality 2024-09-30 10:08:44 +02:00
Demetrio Cassarino 07f51ed6cd Merge remote-tracking branch 'origin/master' into feature/cw_ccw 2024-09-30 08:40:55 +02:00
Dario Sassi 5490884eb4 EgtCAM5 :
- migliorata gestione anteprima utensile in lavorazione con frecce senza focus.
2024-09-25 09:23:02 +02:00
Dario Sassi 62803684c4 Merge commit '99333a0bbe9034cc37571f5594aec375fb26162d' 2024-09-23 08:31:37 +02:00
Dario Sassi 11316a5a5c EgtCAM5 2.6i1 :
- ricompilazione con cambio versione.
2024-09-21 11:54:28 +02:00
Demetrio Cassarino 99333a0bbe -aggiunto spostamento slider quando gli viene settato il focus 2024-09-20 14:42:04 +02:00
Demetrio Cassarino 3446cbd3c9 -aggiunto reset slider alla selezione singola della lavorazione 2024-09-17 15:21:13 +02:00
Dario Sassi c5fe1bc7b9 EgtCAM5 :
- modifiche per poter impostare da INI colore di Mark tipo 2.
2024-08-22 09:23:32 +02:00
Dario Sassi a1569b4cd8 EgtCAM5 2.6h2 :
- aggiunta gestione Analisi anche per superfici di tipo Region.
2024-08-21 14:42:18 +02:00
Dario Sassi 5f669acc74 EgtCAM5 2.6h1 :
- ricompilazione con cambio versione.
2024-08-07 09:48:49 +02:00
Dario Sassi e0b69567e3 EgtCAM5 2.6g7 :
- modifica per entrare da TS3 modalità Vista con Simulazione non bloccata anche per pareti (precedente era valida solo per travi).
2024-07-31 20:31:39 +02:00
Dario Sassi 8c45250a6f EgtCAM5 2.6g6 :
- modifiche per consentire feedback anche in Simulazione (solo se progetto non è da salvare)
- modifica per entrare da TS3 modalità Vista con Simulazione non bloccata.
2024-07-29 11:52:20 +02:00
Dario Sassi ef4ad38d23 EgtCAM5 :
- se lanciato in modalità Simulazione da TS3 ora si può solo simulare ed uscire dal programma.
2024-07-22 20:15:24 +02:00
Dario Sassi 85de8e95a5 EgtCAM5 2.6g5 :
- ricompilazione con cambio versione.
2024-07-22 18:13:57 +02:00
Dario Sassi 4387d75ee7 Merge commit 'ddf1f320c5462e921bc269593eb58484c80d418a' 2024-07-22 17:39:27 +02:00
Demetrio Cassarino ddf1f320c5 -riferimento a lavorazione 2024-07-22 17:24:53 +02:00
Dario Sassi 9f33d1b236 Merge commit '24607ec445d01fe6dc9ea817bdc04af3e1200888' 2024-07-16 08:45:33 +02:00
Demetrio Cassarino 60f035991d -rivisto evento per mettere il focus sullo slider 2024-07-15 10:44:25 +02:00
Demetrio Cassarino 24607ec445 -aggiunto possibilita' di portare il focus sullo slider con tutte e 4 le frecce 2024-07-12 15:30:25 +02:00
Demetrio Cassarino d75250d5f9 Merge remote-tracking branch 'origin/master' into feature/Note_Utensile 2024-07-12 15:23:00 +02:00
Dario Sassi be5985cfcd EgtCAM5 :
- aggiunto Zoom All passando da un gruppo di lavoro all'altro.
2024-07-12 15:16:16 +02:00
Dario Sassi 6aa7e850e8 Merge commit '9833802aedba444d8e92c257f303c6458f012c2f' 2024-07-12 15:07:31 +02:00
Demetrio Cassarino 9833802aed -aggiunto focus su slider 2024-07-12 12:56:27 +02:00
Dario Sassi 47aacebd3a Merge commit '62a9dd20488474796a33ff9b77ecab41294db8ba' 2024-07-11 17:17:06 +02:00
Demetrio Cassarino 62a9dd2048 -aggiunto al checkbox note updatesurcetrigger 2024-07-11 17:15:05 +02:00
Demetrio Cassarino 220d70013f Merge remote-tracking branch 'origin/master' into feature/Note_Utensile 2024-07-11 08:57:04 +02:00
Emmanuele Sassi 1633ed140d Merge branch 'master' of https://gitlab.steamware.net/egaltech/EgtCAM5 2024-07-09 14:42:25 +02:00
Emmanuele Sassi 07634b79b4 - correzione funzionamento MTable con due macchine 2024-07-09 14:41:29 +02:00
Dario Sassi c5e367e41c EgtCAM5 2.6g1 :
- ricompilazione con cambio versione.
2024-07-01 18:07:43 +02:00
Dario Sassi 3f487c7328 EgtCAM5 2.6f4 :
- ricompilazione con cambio versione.
2024-06-24 16:15:45 +02:00
Dario Sassi 639834d797 Merge commit '7a0a5048765a1371f8ef3914b79829173dacaf4b' 2024-06-24 16:10:09 +02:00
Demetrio Cassarino 7a0a504876 -aggiunto controllo su recalc per valori note ricalcolo 2024-06-24 15:59:19 +02:00
Dario Sassi 3253b7b8d4 EgtCAM5 :
- sistemazione parametri lavorazione sgrossatura superfici.
2024-06-06 12:23:46 +02:00
Dario Sassi a4b3fa8c28 Merge commit '841dce8d7291fb90f3cab903463f8680942a69f0' 2024-06-06 11:45:22 +02:00
Demetrio Cassarino 841dce8d72 -aggiunto parametro substep 2024-06-06 10:15:09 +02:00
Demetrio Cassarino e62b6aaccc Merge remote-tracking branch 'origin/master' into feature/Lavorazione_5_assi 2024-06-05 17:15:46 +02:00
Dario Sassi ad7b0ed010 EgtCAM5 2.6f1 :
- ricompilazione con cambio versione.
2024-06-05 17:15:14 +02:00
Dario Sassi b3d113e4f3 EgtCAM5 :
- corretta partenza disegno continuo (Ctrl) su Arco con punto, direzione e punto.
2024-05-31 12:29:06 +02:00
Dario Sassi f506ce9c64 EgtCAM5 :
- piccola ottimazione in MachiningToolSlider.
2024-05-31 12:13:21 +02:00
Dario Sassi 459d6f6739 EgtCAM5 :
- piccola miglioria a SliderThick di MachiningToolPreviw.
2024-05-31 12:03:17 +02:00
Dario Sassi 469037e3d8 Merge commit '0a4a7c4efad1d4bde9e7d23e4d9a90fd73626ef3' 2024-05-31 11:42:06 +02:00
Demetrio Cassarino 0a4a7c4efa -rimosso pulsanti indietro e avanti
-cambiato pulsante anteprima utensile con checkbox
2024-05-31 11:34:27 +02:00
Demetrio Cassarino 69ba413d31 Merge remote-tracking branch 'origin/master' into feature/Lavorazione_5_assi 2024-05-31 08:32:52 +02:00
Dario Sassi 8164b2e654 EgtCAM5 :
- modifiche per ToolPreview con slider.
2024-05-31 07:59:02 +02:00
Dario Sassi 514b8a7bb9 Merge commit 'cfa709fb40fdef6115d43d4678414d9f9da0cf4b' 2024-05-30 16:31:44 +02:00
Demetrio Cassarino cfa709fb40 -aggiunto slider da completare 2024-05-30 12:14:23 +02:00
Dario Sassi 0936baf254 Merge commit 'd328fbb186627fa1d15414bb1518b77052b1b4af' 2024-05-29 15:22:45 +02:00
Demetrio Cassarino d328fbb186 -ripristinato dimensione pagina db lavorazioni 2024-05-29 14:57:49 +02:00
Dario Sassi fcc36d7b44 Merge commit '3ebba7cb81ba17c58d5fa0295dca5178bab1dde7' 2024-05-29 12:26:05 +02:00
Demetrio Cassarino 3ebba7cb81 -rimossa variabile tipo approccio da finitura superficie e sgrossatura 2024-05-29 12:15:13 +02:00
Dario Sassi 88be7fa40d Merge remote-tracking branch 'origin/feature/Lavorazione_5_assi' 2024-05-29 09:32:21 +02:00
Demetrio Cassarino 033d76b4fb Merge remote-tracking branch 'origin/master' into feature/Lavorazione_5_assi 2024-05-29 09:16:14 +02:00
Demetrio Cassarino 3f2b8eaf08 -aggiornato ordine offset radiale e longitudinale 2024-05-29 09:16:02 +02:00
Dario Sassi 42348e6ca0 EgtCAM5 2.6e6 :
- ricompilazione con cambio versione.
2024-05-28 17:36:18 +02:00
Dario Sassi e1f0e122ec Merge commit '21c0a8cad7f61e2d05b3edb70e90344673707423' 2024-05-28 17:27:50 +02:00
Demetrio Cassarino 21c0a8cad7 -rimosso da sgrossatura sovrapposizione, aggiunto offset longitudinale e passo 2024-05-28 17:25:44 +02:00
Dario Sassi afe5dc58b1 EgtCAM5 2.6e5 :
- ricompilazione con cambio versione.
2024-05-27 17:27:47 +02:00
Dario Sassi 2beb910d2c Merge commit '31ce0ca0e0be420206122568f6e2ad4c02f7998b' 2024-05-27 17:01:59 +02:00
Demetrio Cassarino 31ce0ca0e0 -cambio nome costante 5axMachining in 5AxMilling 2024-05-27 15:31:34 +02:00
Demetrio Cassarino f7b92d1537 -aggiunto sgrossatura superfici in nuove lavorazioni
-aggiunto sgrossatura superfici in opzioni cam5
2024-05-27 14:14:01 +02:00
Demetrio Cassarino fe2dd7f9ce -rinominato SelGeomFiveAxMachining in SelGeomFiveAxMilling nel progetto e nel file in
- aggiunto in impostazioni sezione CAM le lavorazioni
2024-05-24 15:08:06 +02:00
Dario Sassi 1099a25b59 Merge remote-tracking branch 'origin/feature/Lavorazione_5_assi' 2024-05-24 10:43:39 +02:00
Demetrio Cassarino 22e329c74e -aggiunto paragrafo per lavorazioni 5 assi 2024-05-24 10:34:31 +02:00
Dario Sassi 2e5b87d38c EgtCAM5 2.6e2 :
- ricompilazione con cambio versione.
2024-05-14 09:23:08 +02:00
Dario Sassi d2886ec79b Merge commit '85f22f9978277cce16167bd2dcb4bfdd0d727725' 2024-05-07 12:10:49 +02:00
Demetrio Cassarino 85f22f9978 Merge remote-tracking branch 'origin/master' into feature/ManageNote 2024-05-06 16:12:13 +02:00
Dario Sassi 9eea6f220d EgtCAM5 2.6e1 :
- ricompilazione con cambio versione.
2024-05-03 15:03:29 +02:00
Dario Sassi 23820e3ed8 EgtCAM5 :
- aggiunto bottone per comando GRID_INVERT.
2024-04-26 17:52:37 +02:00
Dario Sassi e2d1231ea2 EgtCAM5 :
- aggiunta gestione disegno arco per due punti e raggio.
2024-04-19 17:57:22 +02:00
Dario Sassi b7b824ab8a EgtCAM5 :
- aggiunto bottone per comando Nascondi, Visualizza Layer (Shift) e Visualizza Pezzo (Ctrl)
- nell'albero entità corretto visualizza/nascondi Layer con tutte le sue entità (Shift su Lampadina).
2024-04-19 11:28:50 +02:00
Dario Sassi 14ed0480cd EgtCAM5 :
- corretto errore feedback non creato quando progetto contiene più macchinate con la stessa macchina.
2024-04-16 20:54:04 +02:00
Dario Sassi 928b8f679e EgtCAM5 :
- aggiunta gestione evento OnInsertingProject per poter passare AdvFlag a EgtController.
2024-04-13 18:42:47 +02:00
Demetrio Cassarino 919767fe34 Merge remote-tracking branch 'origin/master' into feature/ManageNote 2024-04-12 12:29:15 +02:00
Demetrio Cassarino 87507c60d8 -aggiornato grafica note 2024-04-12 12:28:46 +02:00
Demetrio Cassarino 9fd0d7d9d5 -modifica margine pannello di destra 2024-04-12 08:54:16 +02:00
Demetrio Cassarino 7cc4374ad4 -spostato note in parametri avanzati 2024-04-11 16:20:21 +02:00
Demetrio Cassarino ca6874c2b5 Merge remote-tracking branch 'origin/master' into feature/Button_Menu 2024-04-11 09:18:43 +02:00
Dario Sassi a0c93477a1 EgtCAM5 :
- aggiunta gestione AdvFlag=0/1 della sezione [Import] nel file INI per Flag importatore formati avanzati.
2024-04-11 00:29:12 +02:00
Demetrio Cassarino 4826feb281 -cambiato note da lista a itemscontrol 2024-04-10 16:31:56 +02:00
Dario Sassi 62758acbeb EgtCAM5 2.6d2 :
- eliminata distinzione tra 32 e 64 per le diverse librerie lua (da tempo non serve più)
- modifiche per meglio gestire i problemi con la eventuale chiave di rete (errore di collegamento o capacità esaurita).
2024-04-09 14:54:19 +02:00
Demetrio Cassarino adf3ba4d97 -agiunto griglia su plug-in da controllare 2024-04-04 09:19:18 +02:00
Demetrio Cassarino 8cc6324d64 -gestione interfaccia con griglia dinamica 2024-04-04 09:10:53 +02:00
Dario Sassi 05d1602c2e EgtCAM5 2.6d1 :
- in Opzioni Macchina aggiunto parametro Tolleranza Lineare di Approssimazione.
2024-04-02 15:40:44 +02:00
Demetrio Cassarino 20a153a0ea -cambio lista con itemscontrol nel paragrafo note 2024-03-29 16:09:27 +01:00
Demetrio Cassarino 6fc4e0d669 -griglia dinamiica 2024-03-28 17:14:55 +01:00
Demetrio Cassarino 2febe6fb5b -migliorie grafica paragrafo note 2024-03-26 17:19:25 +01:00
Demetrio Cassarino 5fd269f6bb -gestione multi selezione bottoni 2024-03-25 10:47:28 +01:00
Demetrio Cassarino a414b7a3e6 -pulizia codice 2024-03-15 14:46:12 +01:00
Demetrio Cassarino fe05264a7d Merge remote-tracking branch 'origin/master' into feature/ManageNote 2024-03-15 14:13:21 +01:00
Demetrio Cassarino ee17b9dfbc -modificato grafica selecteditem list 2024-03-15 12:47:05 +01:00
Dario Sassi 2a056bc9be EgtCAM5 :
- aggiunti bottoni toolbar per quotature angolari e diametrali/radiali
- corretta gestione DecDigit di quotature in pagina Opzioni (valore può essere negativo).
2024-03-14 20:08:31 +01:00
Demetrio Cassarino 5fdec18828 -aggiunto controllo su pulsante rimuovi nota 2024-03-14 09:53:54 +01:00
Demetrio Cassarino e3c84cdf05 -aggiunto immagini pulsanti 2024-03-13 17:21:45 +01:00
Demetrio Cassarino 0fb560a33b -sistemato merge errato 2024-03-13 16:50:40 +01:00
Dario Sassi 82c40a5b41 EgtCAM5 2.6c2 :
- aggiunto bottone per comandi movimento vertice e movimento faccia di superficie trimesh.
2024-03-13 09:29:04 +01:00
Demetrio Cassarino fdacf0f958 -aggiornato grafica paragrafo note 2024-03-12 17:01:42 +01:00
Dario Sassi 0c4daf8ecb EgtCAM5 2.6c2 :
- aggiunti due nuovi parametri a InitDisp.
2024-03-11 14:18:51 +01:00
Demetrio Cassarino 3588c3d511 -aggiunto tab control per visualizzazione valore in base al tipo 2024-03-08 16:57:53 +01:00
Demetrio Cassarino 5142d2a2e9 .aggiunto combo aggiunti nota, pulizia codice 2024-03-06 16:14:10 +01:00
Demetrio Cassarino 17dbfe6163 -creazione paragrafo note,
-correzione codice
2024-03-01 16:42:44 +01:00
Dario Sassi a7dc65f10e EgtCAM5 2.6b4 :
- in simulazione migliorata gestione errori dopo EgtSimulStart
- nella toolbar di Vista aggiunto anche comando IsoViewSE.
2024-02-19 14:58:17 +01:00
Dario Sassi be256404ff EgtCAM5 2.6b1 :
- corretto falso rilevamento modifica testa usata da posizione in attrezzaggio.
2024-02-02 17:02:37 +01:00
Emmanuele Sassi efe74f470c Merge branch 'master' of https://gitlab.steamware.net/egaltech/EgtCAM5 2024-02-02 16:17:00 +01:00
Emmanuele Sassi 3b49b58783 - Ripristinato bottone MTable in modalita' lavorazione 2024-02-02 16:16:56 +01:00
Dario Sassi d6b61e8633 EgtCAM5 :
- in about aggiunto messaggio con indicazione stato piano di manutenzione.
2024-01-25 18:23:31 +01:00
Dario Sassi 9bb0558370 EgtCAM5 2.6a1 :
- ricompilazione con cambio versione.
2024-01-23 17:26:02 +01:00
Emmanuele Sassi f58322e131 EgtCAM5 2.5l4:
- ricompilazione con cambio versione.
2024-01-15 09:09:51 +01:00
Emmanuele Sassi fd7dbaed88 Merge branch 'hotfix/OperationParamError' 2024-01-15 09:07:12 +01:00
Emmanuele Sassi 5b41936ecb - correzione per apertura parametri di lavorazione 2024-01-15 09:06:56 +01:00
Dario Sassi 14d92c0a2d - modificati riferimenti a EgtTray che è stata rimossa 2024-01-08 16:33:23 +01:00
Emmanuele Sassi 7639de860f Merge branch 'master' of https://gitlab.steamware.net/egaltech/EgtCAM5 2024-01-08 11:22:39 +01:00
Dario Sassi 3154944f94 EgtCAM5 2.5l3 :
- aggiunta vista da sotto e riordinati bottoni per comandi vista in toolbar
- riordinati bottoni per comandi griglia in toolbar.
2023-12-29 13:22:26 +01:00
Dario Sassi 7dc34348ed EgtCAM5 2.5l2 :
- all'uscita dal DB lavorazioni se in modalità lavora si aggiorna subito la lista delle lavorazioni inseribili.
2023-12-18 10:33:10 +01:00
Dario Sassi bee06b1999 EgtCAM5 2.5l1 :
- ricompilazione con cambio versione.
2023-12-01 16:53:08 +01:00
122 changed files with 9487 additions and 4929 deletions
+12
View File
@@ -14,11 +14,23 @@ Public Class AboutBoxWndV
Dim sLeftDays As String = "" Dim sLeftDays As String = ""
Dim nLeftDays As Integer Dim nLeftDays As Integer
if EgtGetKeyLeftDays( nLeftDays) AndAlso nLeftDays < 500 Then sLeftDays= " (" & nLeftDays.ToString() & ")" if EgtGetKeyLeftDays( nLeftDays) AndAlso nLeftDays < 500 Then sLeftDays= " (" & nLeftDays.ToString() & ")"
Dim sAssStatus As String = " discontinued"
Dim nAssLeftDays As Integer
If EgtGetKeyAssLeftDays( nAssLeftDays) And nAssLeftDays >= 0 Then
If nAssLeftDays > 30 then
sAssStatus = "expires within " & nAssLeftDays.ToString() & " days"
Else If nAssLeftDays > 0 then
sAssStatus = "to be renewed within " & nAssLeftDays.ToString() & " days"
Else
sAssStatus = "to be renewed by today"
End If
End If
sInfo = If( EgtIsDebug(), "*** Debug Libraries ***" & Environment.NewLine, "") sInfo = If( EgtIsDebug(), "*** Debug Libraries ***" & Environment.NewLine, "")
sInfo &= "User " & Environment.MachineName & "\" & Environment.UserName & sInfo &= "User " & Environment.MachineName & "\" & Environment.UserName &
" Inst" & IniFile.m_nInstance.ToString() & " Inst" & IniFile.m_nInstance.ToString() &
" Ulv" & IniFile.m_nUserLevel.ToString() & " Dbg" & Map.refMainWindowVM.DebugLevel().ToString() & Environment.NewLine " Ulv" & IniFile.m_nUserLevel.ToString() & " Dbg" & Map.refMainWindowVM.DebugLevel().ToString() & Environment.NewLine
sInfo &= sKey & " - " & sKlev & " - " & sOpts & sLeftDays & Environment.NewLine sInfo &= sKey & " - " & sKlev & " - " & sOpts & sLeftDays & Environment.NewLine
sInfo &= "SupportPlane " & sAssStatus & Environment.NewLine
sInfo &= "DataRoot " & IniFile.m_sDataRoot & Environment.NewLine sInfo &= "DataRoot " & IniFile.m_sDataRoot & Environment.NewLine
If IniFile.m_ProjectMode <> ProjectModeOpt.ONLYDRAW Then If IniFile.m_ProjectMode <> ProjectModeOpt.ONLYDRAW Then
sInfo &= "MachinesRoot " & IniFile.m_sMachinesRoot & Environment.NewLine sInfo &= "MachinesRoot " & IniFile.m_sMachinesRoot & Environment.NewLine
+5 -4
View File
@@ -47,7 +47,6 @@ Module ConstIni
Public Const S_LUA As String = "Lua" Public Const S_LUA As String = "Lua"
Public Const K_LIBSDIR As String = "LibsDir" Public Const K_LIBSDIR As String = "LibsDir"
Public Const K_LIBSDIR64 As String = "LibsDir64"
Public Const K_BASELIB As String = "BaseLib" Public Const K_BASELIB As String = "BaseLib"
Public Const K_BWSIM As String = "BWSim" Public Const K_BWSIM As String = "BWSim"
@@ -70,6 +69,7 @@ Module ConstIni
Public Const K_SHOWGFRAME As String = "ShowGFrame" Public Const K_SHOWGFRAME As String = "ShowGFrame"
Public Const K_LINEWIDTH As String = "LineWidth" Public Const K_LINEWIDTH As String = "LineWidth"
Public Const K_MARK As String = "Mark" Public Const K_MARK As String = "Mark"
Public Const K_MARK2 As String = "Mark2"
Public Const K_SELSURF As String = "SelSurf" Public Const K_SELSURF As String = "SelSurf"
Public Const K_SHOWMODE As String = "ShowMode" Public Const K_SHOWMODE As String = "ShowMode"
Public Const K_CURVEDIR As String = "CurveDir" Public Const K_CURVEDIR As String = "CurveDir"
@@ -109,6 +109,7 @@ Module ConstIni
Public Const K_CNCFLAG As String = "CncFlag" Public Const K_CNCFLAG As String = "CncFlag"
Public Const K_BTLFLAG As String = "BtlFlag" Public Const K_BTLFLAG As String = "BtlFlag"
Public Const K_BTLAUXDIR As String = "BtlAuxDir" Public Const K_BTLAUXDIR As String = "BtlAuxDir"
Public Const K_ADVFLAG As String = "AdvFlag"
Public Const S_EXPORT As String = "Export" Public Const S_EXPORT As String = "Export"
Public Const K_DXFFLAG As String = "DxfFlag" Public Const K_DXFFLAG As String = "DxfFlag"
@@ -123,7 +124,6 @@ Module ConstIni
Public Const S_BEAM As String = "Beam" Public Const S_BEAM As String = "Beam"
Public Const K_BEAMENABLE As String = "BtlEnable" Public Const K_BEAMENABLE As String = "BtlEnable"
Public Const K_BEAMBASEDIR As String = "BaseDir" Public Const K_BEAMBASEDIR As String = "BaseDir"
Public Const K_BEAMBASEDIR64 As String = "BaseDir64"
Public Const K_BEAMBTLEXEC As String = "BtlExec" Public Const K_BEAMBTLEXEC As String = "BtlExec"
Public Const K_BEAMBWEEXEC As String = "BweExec" Public Const K_BEAMBWEEXEC As String = "BweExec"
Public Const K_BEAMMACHINES As String = "Machines" Public Const K_BEAMMACHINES As String = "Machines"
@@ -132,7 +132,6 @@ Module ConstIni
Public Const S_WALL As String = "Wall" Public Const S_WALL As String = "Wall"
Public Const K_WALLENABLE As String = "BtlEnable" Public Const K_WALLENABLE As String = "BtlEnable"
Public Const K_WALLBASEDIR As String = "BaseDir" Public Const K_WALLBASEDIR As String = "BaseDir"
Public Const K_WALLBASEDIR64 As String = "BaseDir64"
Public Const K_WALLBTLEXEC As String = "BtlExec" Public Const K_WALLBTLEXEC As String = "BtlExec"
Public Const K_WALLBWEEXEC As String = "BweExec" Public Const K_WALLBWEEXEC As String = "BweExec"
Public Const K_WALLBUTTON As String = "Button" Public Const K_WALLBUTTON As String = "Button"
@@ -172,7 +171,6 @@ Module ConstIni
Public Const S_MACH As String = "Mach" Public Const S_MACH As String = "Mach"
Public Const K_MACHINESDIR As String = "MachinesDir" Public Const K_MACHINESDIR As String = "MachinesDir"
Public Const K_TOOLMAKERSDIR As String = "ToolMakersDir" Public Const K_TOOLMAKERSDIR As String = "ToolMakersDir"
Public Const K_TOOLMAKERSDIR64 As String = "ToolMakersDir64"
Public Const K_CURRMACH As String = "CurrMach" Public Const K_CURRMACH As String = "CurrMach"
Public Const K_SELGEOMSAWING As String = "SelGeomSawing" Public Const K_SELGEOMSAWING As String = "SelGeomSawing"
Public Const K_SELGEOMDRILLING As String = "SelGeomDrilling" Public Const K_SELGEOMDRILLING As String = "SelGeomDrilling"
@@ -184,6 +182,9 @@ Module ConstIni
Public Const K_SELGEOMGENMACHINING As String = "SelGeomGenMachining" Public Const K_SELGEOMGENMACHINING As String = "SelGeomGenMachining"
Public Const K_SELGEOMCHISELING As String = "SelGeomChiseling" Public Const K_SELGEOMCHISELING As String = "SelGeomChiseling"
Public Const K_SELGEOMSURFFINISHING As String = "SelGeomSurfFinishing" Public Const K_SELGEOMSURFFINISHING As String = "SelGeomSurfFinishing"
Public Const K_SELGEOMSURFROUGHING As String = "SelGeomSurfRoughing"
Public Const K_SELGEOMFIVEAXMILLING As String = "SelGeomFiveAxMilling"
Public Const K_SELVMILLQUALITY As String = "VMillQuality"
Public Const K_MACHININGGROUP As String = "MachiningGroup" Public Const K_MACHININGGROUP As String = "MachiningGroup"
Public Const K_SHOWONLYTABLE As String = "ShowOnlyTable" Public Const K_SHOWONLYTABLE As String = "ShowOnlyTable"
Public Const K_MOVETHROUGHDISPS As String = "MoveThroughDisps" Public Const K_MOVETHROUGHDISPS As String = "MoveThroughDisps"
+1 -1
View File
@@ -35,7 +35,7 @@
Public Const K_CHISELING As String = "Chiseling" Public Const K_CHISELING As String = "Chiseling"
Public Const K_SURFROUGHING As String = "SurfRoughing" Public Const K_SURFROUGHING As String = "SurfRoughing"
Public Const K_SURFFINISHING As String = "SurfFinishing" Public Const K_SURFFINISHING As String = "SurfFinishing"
Public Const K_5AXMACHINING As String = "5axMachining" Public Const K_5AXMILLING As String = "5AxMilling"
Public Const K_WATERJETTING As String = "WaterJetting" Public Const K_WATERJETTING As String = "WaterJetting"
Public Const K_SAWINGONARCS As String = "SawingOnArcs" Public Const K_SAWINGONARCS As String = "SawingOnArcs"
+345 -161
View File
@@ -9,82 +9,159 @@
<StackPanel Background="Transparent" MaxHeight="{Binding MaxHeight,RelativeSource={RelativeSource AncestorType={x:Type EgtFloating:EgtFloatingPanel}}}"> <StackPanel Background="Transparent" MaxHeight="{Binding MaxHeight,RelativeSource={RelativeSource AncestorType={x:Type EgtFloating:EgtFloatingPanel}}}">
<Expander Name="Draw2D" Style="{StaticResource ExpanderStyle}" Grid.Row="0" <Expander Name="Draw2D" Style="{StaticResource ExpanderStyle}" Grid.Row="0"
IsExpanded="{Binding Draw2DIsExpanded}"> IsExpanded="{Binding Draw2DIsExpanded}">
<Expander.Header> <Expander.Header>
<TextBlock Text="{Binding Draw2DMsg}"/> <TextBlock Text="{Binding Draw2DMsg}"/>
</Expander.Header> </Expander.Header>
<UniformGrid Columns="3"> <UniformGrid Columns="3">
<Button ToolTip="{Binding PointToolTip}" Style="{StaticResource DrawPanelButton}" <Button x:Name="PuntoBtn" ToolTip="Punto" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" Command="{Binding PointBaseCommand}" IsEnabled="{Binding bLayerOk}">
Command="{Binding PointCommand}" IsEnabled="{Binding bLayerOk}"> <Image Source="/Resources/DrawPanel/Point+.png" Stretch="Uniform"/>
<Image Source="/Resources/DrawPanel/Point.png" Stretch="Uniform"/> <Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Vettore" Style="{StaticResource DrawPanelButton}"
Command="{Binding PointVectorCommand}">
<Image Source="/Resources/DrawPanel/Point.png" Stretch="Uniform"/>
</Button>
<Button ToolTip="Riferimento" Style="{StaticResource DrawPanelButton}"
Command="{Binding PointReferenceCommand}">
<Image Source="/Resources/DrawPanel/Point.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button ToolTip="{Binding Line2PToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Linea 2 Punti" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding Line2PCommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding Line2PBaseCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/Line2P.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Line2P+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Linea 2 Punti con Continuazione" Style="{StaticResource DrawPanelButton}"
Command="{Binding Line2PContinuationCommand}">
<Image Source="/Resources/DrawPanel/Line2P.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button ToolTip="{Binding LinePDLToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Linea Punto Direzione Lunghezza" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding LinePDLCommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding LinePDLBaseCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/LinePDL.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/LinePDL+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Linea Punto Vettore Direzione Lunghezza" Style="{StaticResource DrawPanelButton}"
Command="{Binding LinePDLVectorCommand}">
<Image Source="/Resources/DrawPanel/Line2P.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button ToolTip="{Binding ArcCSEToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ArcCSEToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ArcCSECommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding ArcCSECommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/ArcCSE.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ArcCSE.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding Arc3PToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding Arc3PToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding Arc3PCommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding Arc3PCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/Arc3P.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Arc3P.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ArcPDPToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Arco " Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ArcPDPCommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding ArcPDPCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/ArcPDP.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ArcPDP+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Linea Punto Vettore Direzione Lunghezza" Style="{StaticResource DrawPanelButton}"
Command="{Binding LinePDLVectorCommand}">
<Image Source="/Resources/DrawPanel/ArcPDP.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button ToolTip="{Binding CirclePDToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding CirclePDToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding CircleCPCommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding CircleCPCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/CircleCP.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/CircleCP.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding Circle3PToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding Circle3PToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding Circle3PCommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding Circle3PCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/Circle3P.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Circle3P.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding CircleCDToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding CircleCDToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding CircleCDCommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding CircleCDCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/CircleCD.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/CircleCD.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding Rectangle2PToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding Rectangle2PToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding Rectangle2PCommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding Rectangle2PCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/Rectangle2P.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Rectangle2P.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding PolygonToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding PolygonToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding PolygonCommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding PolygonCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/Polygon.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Polygon.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding PolygonSideToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding PolygonSideToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding PolygonSideCommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding PolygonSideCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/PolygonSide.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/PolygonSide.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding TextToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Quota Lineare" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding TextCommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding LinearDimensionBaseCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/Text.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/LinearDimension+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Quota Allineata" Style="{StaticResource DrawPanelButton}"
Command="{Binding AlignedDimensionCommand}">
<Image Source="/Resources/DrawPanel/LinearDimension.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button ToolTip="{Binding LinearDimensionToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Quota Angolare" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding LinearDimensionCommand}" IsEnabled="{Binding bLayerOk}"> Command="{Binding AngularDimensionBaseCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/LinearDimension.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/AngularDimension +.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Quota Angolare Avanzata" Style="{StaticResource DrawPanelButton}"
Command="{Binding AlignedDimensionPlusCommand}">
<Image Source="/Resources/DrawPanel/AngularDimension.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
</UniformGrid> <Button ToolTip="Quota Diametrale" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True"
Command="{Binding DiamDimensionCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/DiametralDimension+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Quota Radiale" Style="{StaticResource DrawPanelButton}"
Command="{Binding RadDimensionCommand}">
<Image Source="/Resources/DrawPanel/DiametralDimension.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button>
<Button ToolTip="Testo" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True"
Command="{Binding TextBaseCommand}" IsEnabled="{Binding bLayerOk}">
<Image Source="/Resources/DrawPanel/Text+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Testo Avanzato" Style="{StaticResource DrawPanelButton}"
Command="{Binding TextPlusCommand}">
<Image Source="/Resources/DrawPanel/TextA.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button>
</UniformGrid>
</Expander> </Expander>
<Expander Name="Draw3D" Style="{StaticResource ExpanderStyle}" Grid.Row="1" <Expander Name="Draw3D" Style="{StaticResource ExpanderStyle}" Grid.Row="1"
Visibility="{Binding Draw3DVisibility}" IsExpanded="{Binding Draw3DIsExpanded}"> Visibility="{Binding Draw3DVisibility}" IsExpanded="{Binding Draw3DIsExpanded}">
@@ -92,91 +169,136 @@
<TextBlock Text="{Binding Draw3DMsg}"/> <TextBlock Text="{Binding Draw3DMsg}"/>
</Expander.Header> </Expander.Header>
<UniformGrid Columns="3"> <UniformGrid Columns="3">
<Button ToolTip="{Binding PlaneToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Piano Contornato" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding PlaneCommand}" IsEnabled="{Binding bLayerOkAndSelOk}"> Command="{Binding FloorCommand}" IsEnabled="{Binding bLayerOkAndSelOk}">
<Image Source="/Resources/DrawPanel/Plane.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Plane+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Regione Piana" Style="{StaticResource DrawPanelButton}"
Command="{Binding RegionCommand}">
<Image Source="/Resources/DrawPanel/Plane.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button ToolTip="{Binding ExtrudeToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ExtrudeToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ExtrudeCommand}" IsEnabled="{Binding bLayerOkAndSelOk}"> Command="{Binding ExtrudeCommand}" IsEnabled="{Binding bLayerOkAndSelOk}">
<Image Source="/Resources/DrawPanel/Extrude.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Extrude.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding RevolveToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding RevolveToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding RevolveCommand}" IsEnabled="{Binding bLayerOkAndSelOk}"> Command="{Binding RevolveCommand}" IsEnabled="{Binding bLayerOkAndSelOk}">
<Image Source="/Resources/DrawPanel/Revolve.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Revolve.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ScrewToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ScrewToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ScrewCommand}" IsEnabled="{Binding bLayerOkAndSelOk}"> Command="{Binding ScrewCommand}" IsEnabled="{Binding bLayerOkAndSelOk}">
<Image Source="/Resources/DrawPanel/Screw.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Screw.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding SweptToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding SweptToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding SweptCommand}" IsEnabled="{Binding bLayerOkAndSelOk}"> Command="{Binding SweptCommand}" IsEnabled="{Binding bLayerOkAndSelOk}">
<Image Source="/Resources/DrawPanel/Swept.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Swept.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding RuledToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding RuledToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding RuledCommand}" IsEnabled="{Binding bLayerOkAndSelOk}"> Command="{Binding RuledCommand}" IsEnabled="{Binding bLayerOkAndSelOk}">
<Image Source="/Resources/DrawPanel/Ruled.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Ruled.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding SolidAddSurfToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding SolidAddSurfToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding SolidAddSurfCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding SolidAddSurfCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/SolidAddSurf.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/SolidAddSurf.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding SolidSubtractSurfToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Sottrai Superfici e Regioni Piane" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding SolidSubtractSurfCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding SubtractSurfacesCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/SolidSubtractSurf.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/SolidSubtractSurf+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Taglia Superficie con Superficie Inversa" Style="{StaticResource DrawPanelButton}"
Command="{Binding CutSurfacesCommand}">
<Image Source="/Resources/DrawPanel/SolidSubtractSurf.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button ToolTip="{Binding SolidIntersectSurfToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Interseca Superfici e Regioni Piane" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding SolidIntersectSurfCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding IntersectSurfCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/SolidIntersectSurf.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/SolidIntersectSurf+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Taglia Superficie con Superficie" Style="{StaticResource DrawPanelButton}"
Command="{Binding CutSurfCommand}">
<Image Source="/Resources/DrawPanel/SolidIntersectSurf.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button ToolTip="{Binding IntersectSurfSurfToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding IntersectSurfSurfToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding IntersectSurfSurfCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding IntersectSurfSurfCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/IntersectSurfSurf.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/IntersectSurfSurf.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ExtractLoopsToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ExtractLoopsToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ExtractLoopsCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ExtractLoopsCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ExtractLoops.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ExtractLoops.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ExtractFacetLoopsToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ExtractFacetLoopsToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ExtractFacetLoopsCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ExtractFacetLoopsCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ExtractFacetLoops.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ExtractFacetLoops.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ExplodeSurfToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Esplodi Superfici e Regioni Piane" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ExplodeSurfCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ExplodeSurfaceCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ExplodeSurf.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ExplodeSurf+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Esplodi Superfici Mesh in Triangoli" Style="{StaticResource DrawPanelButton}"
Command="{Binding ExplodeSurfaceMeshCommand}">
<Image Source="/Resources/DrawPanel/ExplodeSurf.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button ToolTip="{Binding ExtractSurfFacetToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ExtractSurfFacetToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ExtractSurfFacetCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ExtractSurfFacetCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ExtractSurfFacet.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ExtractSurfFacet.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding MergeSurfToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding MergeSurfToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding MergeSurfCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding MergeSurfCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/MergeSurf.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/MergeSurf.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding InvertSurfToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding InvertSurfToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding InvertSurfCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding InvertSurfCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/InvertSurf.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/InvertSurf.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ApproxSurfToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ApproxSurfToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ApproxSurfCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ApproxSurfCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ApproxSurf.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ApproxSurf.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="Muovi Vertice di Superficie" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True"
Command="{Binding MoveStmVertexCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/StmMoveVertex+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Muovi Faccia di Superficie" Style="{StaticResource DrawPanelButton}"
Command="{Binding MoveStmFacetCommand}">
<Image Source="/Resources/DrawPanel/StmMoveVertex.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button>
</UniformGrid> </UniformGrid>
</Expander> </Expander>
<Expander Name="Modify" Style="{StaticResource ExpanderStyle}" Grid.Row="2" IsExpanded="{Binding ModifyIsExpanded}"> <Expander Name="Modify" Style="{StaticResource ExpanderStyle}" Grid.Row="2" IsExpanded="{Binding ModifyIsExpanded}">
@@ -185,120 +307,182 @@
</Expander.Header> </Expander.Header>
<UniformGrid Columns="3"> <UniformGrid Columns="3">
<Button ToolTip="{Binding DeleteToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding DeleteToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding DeleteCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding DeleteCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/Delete.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Delete.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ChangeLayerToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Cambia Layer" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ChangeLayerCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ChangeLayerBaseCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ChangeLayer.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ChangeLayer+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Cambia Layer con Trasformazioni" Style="{StaticResource DrawPanelButton}"
Command="{Binding ChangeLayerTrasfCommand}">
<Image Source="/Resources/DrawPanel/ChangeLayer.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ChangeStatusToolTip}" Style="{StaticResource DrawPanelButton}"
Visibility="Hidden"/>
<Button ToolTip="{Binding ChangeColorToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ChangeColorCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ChangeStatusCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ChangeStatus.png" Stretch="Uniform"/>
</Button>
<Button ToolTip="{Binding ChangeColorToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True"
Command="{Binding ChangeColorCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ChangeColor.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ChangeColor.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ChangeAlphaToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ChangeAlphaToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ChangeAlphaCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ChangeAlphaCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ChangeColorAlpha.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ChangeColorAlpha.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ResetColorToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ResetColorToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ResetColorCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ResetColorCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/RemoveColor.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/RemoveColor.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding InvertCurveToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding InvertCurveToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding InvertCurveCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding InvertCurveCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/InvertCurve.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/InvertCurve.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ChangeStartToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ChangeStartToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ChangeStartCurveCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ChangeStartCurveCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ChangeStart.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ChangeStart.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ThickCurveToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ThickCurveToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding SetCurveThCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding SetCurveThCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ThickCurve.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ThickCurve.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ExtendCurveToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ExtendCurveToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ExtendCurveCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ExtendCurveCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ExtendCurve.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ExtendCurve.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding BreakCurveToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding BreakCurveToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding BreakCurveCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding BreakCurveCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/BreakCurve.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/BreakCurve.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding SplitCurveToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding SplitCurveToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding SplitCurveCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding SplitCurveCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/SplitCurve.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/SplitCurve.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ExplodeCurveToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ExplodeCurveToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ExplodeCurveCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ExplodeCurveCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ExplodeCurve.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ExplodeCurve.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding JoinCurveToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Unisci Curve" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding JoinCurveCommand}" IsEnabled="{Binding bLayerOkAndSelOk}"> Command="{Binding JoinCurveBasCommand}" IsEnabled="{Binding bLayerOkAndSelOk}">
<Image Source="/Resources/DrawPanel/JoinCurve.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/JoinCurve+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Unisci Curve creando una Copia" Style="{StaticResource DrawPanelButton}"
Command="{Binding JoinCurveCopyCommand}">
<Image Source="/Resources/DrawPanel/JoinCurve.png" Stretch="Uniform"/>
</Button>
<Button ToolTip="Fondi Curve nella Composita" Style="{StaticResource DrawPanelButton}"
Command="{Binding JoinCurveCompositeCommand}">
<Image Source="/Resources/DrawPanel/JoinCurve.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button ToolTip="{Binding OffsetToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding OffsetToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding OffsetCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding OffsetCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/Offset.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Offset.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding FilletToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding FilletToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding FilletCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding FilletCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/Fillet.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Fillet.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ChamferToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ChamferToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ChamferCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ChamferCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/Chamfer.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Chamfer.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ArcFlipToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Arco Capovolto" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" Command="{Binding UpsideDownArchCommand}" ToolTipService.ShowOnDisabled="True" IsEnabled="{Binding bSelOk}">
Command="{Binding ArcFlipCommand}" IsEnabled="{Binding bSelOk}"> <Image Source="/Resources/DrawPanel/ArcFlip+.png" Stretch="Uniform"/>
<Image Source="/Resources/DrawPanel/ArcFlip.png" Stretch="Uniform"/> <Button.ContextMenu >
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Arco Esplementare" Style="{StaticResource DrawPanelButton}"
Command="{Binding ComplementaryArchCommand}">
<Image Source="/Resources/DrawPanel/ArcFlip.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button ToolTip="{Binding ModifyCurveToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ModifyCurveToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ModifyCurveCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ModifyCurveCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ModifyCurve.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ModifyCurve.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding AddPointCurveToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Aggiungi Punto" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding AddPointCurveCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding AddPointCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/AddPointCurve.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/AddPointCurve+.png" Stretch="Uniform"/>
</Button> <Button.ContextMenu>
<Button ToolTip="{Binding RemovePointCurveToolTip}" Style="{StaticResource DrawPanelButton}" <ContextMenu Style="{StaticResource ContextMenu_Button}">
ToolTipService.ShowOnDisabled="True" <Button ToolTip="Trasforma in Arco" Style="{StaticResource DrawPanelButton}"
Command="{Binding RemovePointCurveCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding TrasformArcCommand}">
<Image Source="/Resources/DrawPanel/RemovePointCurve.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/AddPointCurve.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ApproxCurveToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="Chiudi Curva Composita" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" Command="{Binding CloseCurveCommand}">
Command="{Binding ApproxCurveCommand}" IsEnabled="{Binding bSelOk}"> <Image Source="/Resources/DrawPanel/AddPointCurve.png" Stretch="Uniform"/>
<Image Source="/Resources/DrawPanel/ApproxCurve.png" Stretch="Uniform"/> </Button>
</ContextMenu>
</Button.ContextMenu>
</Button>
<Button ToolTip="Rimuovi Punto" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True"
Command="{Binding RemoveCurveCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/RemovePointCurve+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Trasforma in Retta" Style="{StaticResource DrawPanelButton}"
Command="{Binding TrasformRectCommand}">
<Image Source="/Resources/DrawPanel/RemovePointCurve.png" Stretch="Uniform"/>
</Button>
<Button ToolTip="Apri Curva Composita" Style="{StaticResource DrawPanelButton}"
Command="{Binding OpenCurveCommand}">
<Image Source="/Resources/DrawPanel/RemovePointCurve.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button>
<Button ToolTip="Approssima Curva" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True"
Command="{Binding ApproxCurveBaseCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ApproxCurve+.png" Stretch="Uniform"/>
<Button.ContextMenu>
<ContextMenu Style="{StaticResource ContextMenu_Button}">
<Button ToolTip="Approssima Curva con Linee" Style="{StaticResource DrawPanelButton}"
Command="{Binding ApproxCurveLineCommand}">
<Image Source="/Resources/DrawPanel/ApproxCurve.png" Stretch="Uniform"/>
</Button>
</ContextMenu>
</Button.ContextMenu>
</Button> </Button>
<Button ToolTip="{Binding ModifyArcRadiusToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ModifyArcRadiusToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ModifyArcRadiusCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ModifyArcRadiusCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ModifyArcRadius.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ModifyArcRadius.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ModifyTextToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ModifyTextToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ModifyTextCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ModifyTextCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/ModifyText.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/ModifyText.png" Stretch="Uniform"/>
</Button> </Button>
</UniformGrid> </UniformGrid>
@@ -309,8 +493,8 @@
</Expander.Header> </Expander.Header>
<UniformGrid Columns="3"> <UniformGrid Columns="3">
<Button ToolTip="{Binding MoveToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding MoveToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding MoveCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding MoveCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/Move.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Move.png" Stretch="Uniform"/>
</Button> </Button>
<Button Style="{StaticResource DrawPanelButton}" <Button Style="{StaticResource DrawPanelButton}"
@@ -318,33 +502,33 @@
<Button Style="{StaticResource DrawPanelButton}" <Button Style="{StaticResource DrawPanelButton}"
Visibility="Hidden"/> Visibility="Hidden"/>
<Button ToolTip="{Binding RotateToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding RotateToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding RotateCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding RotateCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/Rotate.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Rotate.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding MirrorToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding MirrorToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding MirrorCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding MirrorCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/Mirror.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Mirror.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding ScaleToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding ScaleToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding ScaleCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding ScaleCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/Scale.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Scale.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding Rotate3DToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding Rotate3DToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding Rotate3DCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding Rotate3DCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/Rotate3D.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Rotate3D.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding Mirror3DToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding Mirror3DToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding Mirror3DCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding Mirror3DCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/Mirror3D.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Mirror3D.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding Scale3DToolTip}" Style="{StaticResource DrawPanelButton}" <Button ToolTip="{Binding Scale3DToolTip}" Style="{StaticResource DrawPanelButton}"
ToolTipService.ShowOnDisabled="True" ToolTipService.ShowOnDisabled="True"
Command="{Binding Scale3DCommand}" IsEnabled="{Binding bSelOk}"> Command="{Binding Scale3DCommand}" IsEnabled="{Binding bSelOk}">
<Image Source="/Resources/DrawPanel/Scale3D.png" Stretch="Uniform"/> <Image Source="/Resources/DrawPanel/Scale3D.png" Stretch="Uniform"/>
</Button> </Button>
</UniformGrid> </UniformGrid>
+1181 -28
View File
File diff suppressed because it is too large Load Diff
+93
View File
@@ -170,6 +170,9 @@
<DependentUpon>EstimationsExpanderV.xaml</DependentUpon> <DependentUpon>EstimationsExpanderV.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="OptionPanel\MachiningOptionPanel\EstimationsExpander\EstimationsExpander.vb" /> <Compile Include="OptionPanel\MachiningOptionPanel\EstimationsExpander\EstimationsExpander.vb" />
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\FiveAxisMachinigParameterExpanderV.xaml.vb">
<DependentUpon>FiveAxisMachinigParameterExpanderV.xaml</DependentUpon>
</Compile>
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\SurfFinishingParameterExpanderV.xaml.vb"> <Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\SurfFinishingParameterExpanderV.xaml.vb">
<DependentUpon>SurfFinishingParameterExpanderV.xaml</DependentUpon> <DependentUpon>SurfFinishingParameterExpanderV.xaml</DependentUpon>
</Compile> </Compile>
@@ -188,6 +191,9 @@
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\StoneDrillingParameterExpanderV.xaml.vb"> <Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\StoneDrillingParameterExpanderV.xaml.vb">
<DependentUpon>StoneDrillingParameterExpanderV.xaml</DependentUpon> <DependentUpon>StoneDrillingParameterExpanderV.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\SurfRoughingParameterExpanderV.xaml.vb">
<DependentUpon>SurfRoughingParameterExpanderV.xaml</DependentUpon>
</Compile>
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\WoodDrillingParameterExpanderV.xaml.vb"> <Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\WoodDrillingParameterExpanderV.xaml.vb">
<DependentUpon>WoodDrillingParameterExpanderV.xaml</DependentUpon> <DependentUpon>WoodDrillingParameterExpanderV.xaml</DependentUpon>
</Compile> </Compile>
@@ -466,6 +472,10 @@
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\FiveAxisMachinigParameterExpanderV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\SurfFinishingParameterExpanderV.xaml"> <Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\SurfFinishingParameterExpanderV.xaml">
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
@@ -490,6 +500,10 @@
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\SurfRoughingParameterExpanderV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\WoodDrillingParameterExpanderV.xaml"> <Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\WoodDrillingParameterExpanderV.xaml">
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
@@ -1002,6 +1016,85 @@
<ItemGroup> <ItemGroup>
<Resource Include="Resources\EgtCAM5_64.ico" /> <Resource Include="Resources\EgtCAM5_64.ico" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Resource Include="Resources\Note\+.png" />
<Resource Include="Resources\Note\-.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\AngularDimension.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\DiametralDimension.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\ChangeStatus.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\GridViewPanel\CplaneINVERT.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\StmMoveVertex.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\Point+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\Line2P+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\LinePDL+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\ArcPDP+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\Text+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\TextA.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\ArcFlip+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\LinearDimension+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\AngularDimension +.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\DiametralDimension+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\Plane+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\SolidSubtractSurf+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\SolidIntersectSurf+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\ExplodeSurf+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\StmMoveVertex+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\ChangeLayer+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\JoinCurve+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\AddPointCurve+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\RemovePointCurve+.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\ApproxCurve+.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup> <PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5R32.exe <PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5R32.exe
+5 -5
View File
@@ -6,20 +6,20 @@
<Button Command="{Binding CPlaneTopCommand}" ToolTip="{Binding CPlaneTopToolTip}" Style="{StaticResource GridViewPanelButton}"> <Button Command="{Binding CPlaneTopCommand}" ToolTip="{Binding CPlaneTopToolTip}" Style="{StaticResource GridViewPanelButton}">
<Image Source="/Resources/GridViewPanel/CplaneTOP.png" Stretch="Uniform"/> <Image Source="/Resources/GridViewPanel/CplaneTOP.png" Stretch="Uniform"/>
</Button> </Button>
<Button Command="{Binding CPlaneBottomCommand}" ToolTip="{Binding CPlaneBottomToolTip}" Style="{StaticResource GridViewPanelButton}">
<Image Source="/Resources/GridViewPanel/CplaneBOTTOM.png" Stretch="Uniform"/>
</Button>
<Button Command="{Binding CPlaneFrontCommand}" ToolTip="{Binding CPlaneFrontToolTip}" Style="{StaticResource GridViewPanelButton}"> <Button Command="{Binding CPlaneFrontCommand}" ToolTip="{Binding CPlaneFrontToolTip}" Style="{StaticResource GridViewPanelButton}">
<Image Source="/Resources/GridViewPanel/CplaneFRONT.png" Stretch="Uniform"/> <Image Source="/Resources/GridViewPanel/CplaneFRONT.png" Stretch="Uniform"/>
</Button> </Button>
<Button Command="{Binding CPlaneRightCommand}" ToolTip="{Binding CPlaneRightToolTip}" Style="{StaticResource GridViewPanelButton}">
<Image Source="/Resources/GridViewPanel/CplaneRIGHT.png" Stretch="Uniform"/>
</Button>
<Button Command="{Binding CPlaneBackCommand}" ToolTip="{Binding CPlaneBackToolTip}" Style="{StaticResource GridViewPanelButton}"> <Button Command="{Binding CPlaneBackCommand}" ToolTip="{Binding CPlaneBackToolTip}" Style="{StaticResource GridViewPanelButton}">
<Image Source="/Resources/GridViewPanel/CplaneBACK.png" Stretch="Uniform"/> <Image Source="/Resources/GridViewPanel/CplaneBACK.png" Stretch="Uniform"/>
</Button> </Button>
<Button Command="{Binding CPlaneLeftCommand}" ToolTip="{Binding CPlaneLeftToolTip}" Style="{StaticResource GridViewPanelButton}"> <Button Command="{Binding CPlaneLeftCommand}" ToolTip="{Binding CPlaneLeftToolTip}" Style="{StaticResource GridViewPanelButton}">
<Image Source="/Resources/GridViewPanel/CplaneLEFT.png" Stretch="Uniform"/> <Image Source="/Resources/GridViewPanel/CplaneLEFT.png" Stretch="Uniform"/>
</Button> </Button>
<Button Command="{Binding CPlaneBottomCommand}" ToolTip="{Binding CPlaneBottomToolTip}" Style="{StaticResource GridViewPanelButton}"> <Button Command="{Binding CPlaneRightCommand}" ToolTip="{Binding CPlaneRightToolTip}" Style="{StaticResource GridViewPanelButton}">
<Image Source="/Resources/GridViewPanel/CplaneBOTTOM.png" Stretch="Uniform"/> <Image Source="/Resources/GridViewPanel/CplaneRIGHT.png" Stretch="Uniform"/>
</Button> </Button>
<Button Command="{Binding CPlaneElevationCommand}" ToolTip="{Binding CPlaneElevationToolTip}" Style="{StaticResource GridViewPanelButton}"> <Button Command="{Binding CPlaneElevationCommand}" ToolTip="{Binding CPlaneElevationToolTip}" Style="{StaticResource GridViewPanelButton}">
<Image Source="/Resources/GridViewPanel/CplaneELEVATION.png" Stretch="Uniform"/> <Image Source="/Resources/GridViewPanel/CplaneELEVATION.png" Stretch="Uniform"/>
-5
View File
@@ -12,13 +12,8 @@ Public Class GridPanelVM
Private m_cmdCPlaneBack As ICommand Private m_cmdCPlaneBack As ICommand
Private m_cmdCPlaneLeft As ICommand Private m_cmdCPlaneLeft As ICommand
Private m_cmdCPlaneBottom As ICommand Private m_cmdCPlaneBottom As ICommand
Private m_cmdCPlaneView As ICommand
Private m_cmdCPlaneElevation As ICommand Private m_cmdCPlaneElevation As ICommand
Private m_cmdCPlaneOrigin As ICommand Private m_cmdCPlaneOrigin As ICommand
Private m_cmdCPlaneRotate As ICommand
Private m_cmdCPlane3P As ICommand
Private m_cmdCPlanePerpObj As ICommand
Private m_cmdCPlaneObj As ICommand
#Region "ToolTip" #Region "ToolTip"
+1 -2
View File
@@ -3,7 +3,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:EgtCAM5" xmlns:local="clr-namespace:EgtCAM5"
DockPanel.Dock="Left"> DockPanel.Dock="Left">
<local:DrawPanelV DataContext="{StaticResource DrawPanelViewModel}"/> <local:DrawPanelV DataContext="{StaticResource DrawPanelViewModel}"/>
</Grid> </Grid>
+34 -11
View File
@@ -106,7 +106,7 @@ Public Class MyMachGroupPanelVM
Else Else
' se ci sono gruppi di lavorazione ' se ci sono gruppi di lavorazione
If bMachGroup Then If bMachGroup Then
nGroupId = EgtGetLastMachGroup() nGroupId = EgtGetFirstMachGroup()
Return If(EgtSetCurrMachGroup(nGroupId), 0, 1) Return If(EgtSetCurrMachGroup(nGroupId), 0, 1)
' se altrimenti ammessi gruppi di lavoro vuoti ' se altrimenti ammessi gruppi di lavoro vuoti
ElseIf bAllowEmpty Then ElseIf bAllowEmpty Then
@@ -118,10 +118,12 @@ Public Class MyMachGroupPanelVM
End If End If
End Function End Function
Private Function ExecScript(sScriptPath As String, nGroupId As Integer, nPartId As Integer) As Boolean Private Function ExecScript(sScriptPath As String, nGroupId As Integer, nPartId As Integer, nInd As Integer, sParts As String) As Boolean
EgtLuaCreateGlobTable("DISP") EgtLuaCreateGlobTable("DISP")
EgtLuaSetGlobIntVar("DISP.GROUPID", nGroupId) EgtLuaSetGlobIntVar("DISP.GROUPID", nGroupId)
EgtLuaSetGlobIntVar("DISP.PARTID", nPartId) EgtLuaSetGlobIntVar("DISP.PARTID", nPartId)
EgtLuaSetGlobIntVar("DISP.IND", nInd)
EgtLuaSetGlobStringVar("DISP.PARTS", sParts)
If Not EgtLuaExecFile(sScriptPath) Then If Not EgtLuaExecFile(sScriptPath) Then
EgtOutLog("Error executing disposition init script " & sScriptPath) EgtOutLog("Error executing disposition init script " & sScriptPath)
MessageBox.Show(EgtMsg(MSG_DISPOSITIONERRORS + 2) & " " & sScriptPath, EgtMsg(MSG_DISPOSITIONERRORS + 1), MessageBoxButton.OK, MessageBoxImage.Error) MessageBox.Show(EgtMsg(MSG_DISPOSITIONERRORS + 2) & " " & sScriptPath, EgtMsg(MSG_DISPOSITIONERRORS + 1), MessageBoxButton.OK, MessageBoxImage.Error)
@@ -164,10 +166,25 @@ Public Class MyMachGroupPanelVM
If bWithScript Then If bWithScript Then
' Rendo corrente il gruppo di lavoro ' Rendo corrente il gruppo di lavoro
EgtSetCurrMachGroup(nGroupId) EgtSetCurrMachGroup(nGroupId)
' Creo grezzo e posiziono i pezzi ' Recupero i pezzi già inseriti
Dim sParts As String = ""
Dim nInd As Integer = 0
Dim nRawId As Integer = EgtGetFirstRawPart()
While nRawId <> GDB_ID.NULL
Dim nPartId As Integer = EgtGetFirstPartInRawPart( nRawId)
While nPartId <> GDB_ID.NULL
nInd += 1
sParts &= nInd.ToString() & ","
nPartId = EgtGetNextPartInRawPart( nPartId)
End While
nRawId = EgtGetNextRawPart( nRawId)
End While
' Creo grezzi e posiziono i pezzi
Dim bOk As Boolean = True Dim bOk As Boolean = True
sParts &= String.Join( ",", PartList)
For Each Part In PartList For Each Part In PartList
If Not ExecScript(sInitScriptPath, nGroupId, Part) Then bOk = False nInd += 1
If Not ExecScript(sInitScriptPath, nGroupId, Part, nInd, sParts) Then bOk = False
Next Next
Return bOk Return bOk
Else Else
@@ -196,14 +213,18 @@ Public Class MyMachGroupPanelVM
Return False Return False
End If End If
If bWithScript Then If bWithScript Then
' Creo grezzo e posiziono i pezzi
Dim bOk As Boolean = True Dim bOk As Boolean = True
For Each Part In PartList ' Creo grezzi e posiziono i pezzi
If Not ExecScript(sInitScriptPath, nGroupId, Part) Then bOk = False If PartList.Count() > 0 then
Next Dim nInd As Integer = 0
' Gestione ingresso senza pezzi Dim sParts As String = String.Join( ",", PartList)
If PartList.Count() = 0 Then For Each Part In PartList
If Not ExecScript(sInitScriptPath, nGroupId, GDB_ID.NULL) Then bOk = False nInd += 1
If Not ExecScript(sInitScriptPath, nGroupId, Part, nInd, sParts) Then bOk = False
Next
' altrimenti, ingresso senza pezzi
Else
If Not ExecScript(sInitScriptPath, nGroupId, GDB_ID.NULL, 0, "") Then bOk = False
End If End If
If Not bOk Then If Not bOk Then
EgtResetCurrMachGroup() EgtResetCurrMachGroup()
@@ -401,6 +422,8 @@ Public Class MyMachGroupPanelVM
(EgtUILib.GetPrivateProfileInt(S_ESTIMATIONS, K_EST_ENABLE, 0, IniFile.m_sCurrMachIniFilePath) <> 0) (EgtUILib.GetPrivateProfileInt(S_ESTIMATIONS, K_EST_ENABLE, 0, IniFile.m_sCurrMachIniFilePath) <> 0)
' Setto il Materiale in base alla Macchina associata al MachGroup corrente ' Setto il Materiale in base alla Macchina associata al MachGroup corrente
LoadMaterialType() LoadMaterialType()
' Zoom all
EgtZoom( ZM.ALL)
End If End If
Return True Return True
+8 -2
View File
@@ -15,7 +15,7 @@
</EgtWPFLib5:EgtCustomWindow.Resources> </EgtWPFLib5:EgtCustomWindow.Resources>
<Grid Margin="10"> <Grid Margin="10">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
@@ -27,6 +27,7 @@
<RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<UniformGrid Grid.Row="0" Columns="2" Margin="0,0,0,5"> <UniformGrid Grid.Row="0" Columns="2" Margin="0,0,0,5">
@@ -56,7 +57,12 @@
</ComboBox> </ComboBox>
</UniformGrid> </UniformGrid>
<UniformGrid Grid.Row="4" Columns="2"> <UniformGrid Grid.Row="4" Columns="2" Margin="0,0,0,5">
<TextBlock Text="{Binding ApproxLinTolMsg}" VerticalAlignment="Center"/>
<TextBox Text="{Binding ApproxLinTol}" Height="25" Margin="10,0,0,0"/>
</UniformGrid>
<UniformGrid Grid.Row="5" Columns="2">
<TextBlock Text="{Binding DefaultSetUpMsg}" VerticalAlignment="Center"/> <TextBlock Text="{Binding DefaultSetUpMsg}" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding ArchivedSetUpList}" Height="25" Margin="10,0,0,0" <ComboBox ItemsSource="{Binding ArchivedSetUpList}" Height="25" Margin="10,0,0,0"
SelectedItem="{Binding SelectedDefaultSetUp}" IsEnabled="{Binding IsActiveDefaultSetUp}"/> SelectedItem="{Binding SelectedDefaultSetUp}" IsEnabled="{Binding IsActiveDefaultSetUp}"/>
+24
View File
@@ -48,6 +48,21 @@ Public Class MachOptionVM
End Set End Set
End Property End Property
Private m_sApproxLinTol As String
Public Property ApproxLinTol As String
Get
Return m_sApproxLinTol
End Get
Set(value As String)
Dim dApproxLinTol As Double = 0
If StringToLen(value, dApproxLinTol) Then
EgtMdbSetGeneralParam(MCH_GP.APPROXLINTOL, dApproxLinTol)
EgtMdbSave()
m_sApproxLinTol = value
End If
End Set
End Property
Private m_SplitArcsList As New List(Of MCH_SA)({MCH_SA.NEVER, MCH_SA.GEN_PLANE, MCH_SA.NO_XY_PLANE, MCH_SA.ALWAYS}) Private m_SplitArcsList As New List(Of MCH_SA)({MCH_SA.NEVER, MCH_SA.GEN_PLANE, MCH_SA.NO_XY_PLANE, MCH_SA.ALWAYS})
Public ReadOnly Property SplitArcsList As List(Of MCH_SA) Public ReadOnly Property SplitArcsList As List(Of MCH_SA)
Get Get
@@ -106,6 +121,11 @@ Public Class MachOptionVM
Return EgtMsg(MSG_MACHININGOPTIONPAGE + 9) Return EgtMsg(MSG_MACHININGOPTIONPAGE + 9)
End Get End Get
End Property End Property
Public ReadOnly Property ApproxLinTolMsg As String
Get
Return EgtMsg(6410) ' Tolleranza di approssimazione
End Get
End Property
Public ReadOnly Property SplitArcsMsg As String Public ReadOnly Property SplitArcsMsg As String
Get Get
@@ -141,6 +161,10 @@ Public Class MachOptionVM
Dim nVal As Integer = 0 Dim nVal As Integer = 0
EgtMdbGetGeneralParam(MCH_GP.SPLITARCS, nVal) EgtMdbGetGeneralParam(MCH_GP.SPLITARCS, nVal)
m_SelectedSplitArcs = DirectCast(nVal, MCH_SA) m_SelectedSplitArcs = DirectCast(nVal, MCH_SA)
' Leggo tolleranza lineare di approssimazione
dVal = 0
EgtMdbGetGeneralParam(MCH_GP.APPROXLINTOL, dVal)
m_sApproxLinTol = LenToString(dVal, 4)
' Riempio lista attrezzaggi salvati ' Riempio lista attrezzaggi salvati
m_ArchivedSetUpList.Add(String.Empty) m_ArchivedSetUpList.Add(String.Empty)
If Directory.Exists(IniFile.m_sCurrMachSetUpDirPath) Then If Directory.Exists(IniFile.m_sCurrMachSetUpDirPath) Then
+3 -2
View File
@@ -269,7 +269,7 @@ Public Class MyMachinePanelVM
Dim MachDbWindowVM As New EgtWPFLib5.MachiningDbWindowVM(IniFile.m_sCurrMachIniFilePath, IniFile.m_ProjectSceneContext, "Wood", IniFile.m_nUserLevel > 9, True) Dim MachDbWindowVM As New EgtWPFLib5.MachiningDbWindowVM(IniFile.m_sCurrMachIniFilePath, IniFile.m_ProjectSceneContext, "Wood", IniFile.m_nUserLevel > 9, True)
Dim MachDbWindowV As New EgtWPFLib5.MachiningDbWindowV(Application.Current.MainWindow, MachDbWindowVM) Dim MachDbWindowV As New EgtWPFLib5.MachiningDbWindowV(Application.Current.MainWindow, MachDbWindowVM)
If EgtWPFLib5.MachiningTreeViewItem.m_MatType <> 0 Then If EgtWPFLib5.MachiningTreeViewItem.m_MatType <> 0 Then
MachDbWindowV.Height = 794 '674 MachDbWindowV.Height = 800 '674
MachDbWindowV.Width = 1024 MachDbWindowV.Width = 1024
MachDbWindowV.Owner = Application.Current.MainWindow MachDbWindowV.Owner = Application.Current.MainWindow
MachDbWindowV.ShowDialog() MachDbWindowV.ShowDialog()
@@ -290,10 +290,11 @@ Public Class MyMachinePanelVM
Dim MachDbWindowVM As New EgtWPFLib5.MachiningDbWindowVM(IniFile.m_sCurrMachIniFilePath, IniFile.m_ProjectSceneContext, "Wood", IniFile.m_nUserLevel > 9, True) Dim MachDbWindowVM As New EgtWPFLib5.MachiningDbWindowVM(IniFile.m_sCurrMachIniFilePath, IniFile.m_ProjectSceneContext, "Wood", IniFile.m_nUserLevel > 9, True)
Dim MachDbWindowV As New EgtWPFLib5.MachiningDbWindowV(Application.Current.MainWindow, MachDbWindowVM) Dim MachDbWindowV As New EgtWPFLib5.MachiningDbWindowV(Application.Current.MainWindow, MachDbWindowVM)
If EgtWPFLib5.MachiningTreeViewItem.m_MatType <> 0 Then If EgtWPFLib5.MachiningTreeViewItem.m_MatType <> 0 Then
MachDbWindowV.Height = 794 '674 MachDbWindowV.Height = 800 '674
MachDbWindowV.Width = 1024 MachDbWindowV.Width = 1024
MachDbWindowV.Owner = Application.Current.MainWindow MachDbWindowV.Owner = Application.Current.MainWindow
MachDbWindowV.ShowDialog() MachDbWindowV.ShowDialog()
If Not IsNothing(Map.refMachiningTreeExpanderVM) Then Map.refMachiningTreeExpanderVM.UpdateOperationMachiningList()
End If End If
End Sub End Sub
+12 -11
View File
@@ -1,15 +1,16 @@
<EgtWPFLib5:EgtCustomWindow x:Class="MainWindowV" <EgtWPFLib5:EgtCustomWindow x:Class="MainWindowV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5" xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
xmlns:local="clr-namespace:EgtCAM5" xmlns:local="clr-namespace:EgtCAM5"
Title="{Binding Title}" Icon="{Binding IconSource}" Title="{Binding Title}" Icon="{Binding IconSource}"
TitleBarBrush="{StaticResource EgaltechBlue1}" TitleBarHeight="32" TitleBarBrush="{StaticResource EgaltechBlue1}" TitleBarHeight="32"
BorderBrush="{StaticResource EgaltechBlue1}" BorderThickness="2" BorderBrush="{StaticResource EgaltechBlue1}" BorderThickness="2"
MinHeight="600" MinWidth="800" WindowStyle="None" ResizeMode="NoResize" MinHeight="600" MinWidth="800" WindowStyle="None" ResizeMode="NoResize"
AboutBoxCommand="{Binding AboutBoxCommand}" AboutBoxCommand="{Binding AboutBoxCommand}"
AllowDrop="True" Drop="MainWindow_Drop" AllowDrop="True" Drop="MainWindow_Drop"
SnapsToDevicePixels="True"
CloseCommand="{Binding CloseApplicationCommand,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"> CloseCommand="{Binding CloseApplicationCommand,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}">
<EgtWPFLib5:EgtCustomWindow.TitlePanel> <EgtWPFLib5:EgtCustomWindow.TitlePanel>
<local:TopCommandBarV DataContext="{StaticResource TopCommandBarViewModel}"/> <local:TopCommandBarV DataContext="{StaticResource TopCommandBarViewModel}"/>
+10 -9
View File
@@ -16,6 +16,7 @@ Public Class MainWindowVM
Private m_sDataRoot As String = String.Empty Private m_sDataRoot As String = String.Empty
Private m_sConfigDir As String = String.Empty Private m_sConfigDir As String = String.Empty
Private m_OnTerminateProcessCallback As New OnTerminateProcessCallback(AddressOf OnTerminateProcess) Private m_OnTerminateProcessCallback As New OnTerminateProcessCallback(AddressOf OnTerminateProcess)
Private m_IndexTab As Integer = 0
' EGALTECH ENVIRONMENT FIELDS WITH PROPERTY ' EGALTECH ENVIRONMENT FIELDS WITH PROPERTY
@@ -357,9 +358,6 @@ Public Class MainWindowVM
' Impostazione direttorio toolmakers ' Impostazione direttorio toolmakers
Dim sToolMakersDir As String = String.Empty Dim sToolMakersDir As String = String.Empty
GetPrivateProfileString(S_MACH, K_TOOLMAKERSDIR, "", sToolMakersDir) GetPrivateProfileString(S_MACH, K_TOOLMAKERSDIR, "", sToolMakersDir)
#If PLATFORM = "x64" Then
GetPrivateProfileString(S_MACH, K_TOOLMAKERSDIR64, sToolMakersDir, sToolMakersDir)
#End If
If Not String.IsNullOrWhiteSpace(sToolMakersDir) Then If Not String.IsNullOrWhiteSpace(sToolMakersDir) Then
IniFile.m_sToolMakersDir = sToolMakersDir IniFile.m_sToolMakersDir = sToolMakersDir
Else Else
@@ -388,8 +386,8 @@ Public Class MainWindowVM
EgtSetLockId(sLockId) EgtSetLockId(sLockId)
End If End If
' Recupero livello e opzioni della chiave ' Recupero livello e opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(3279, 2511, 1, IniFile.m_nKeyLevel) And Dim bKey As Boolean = EgtGetKeyLevel(3279, 2611, 1, IniFile.m_nKeyLevel) And
EgtGetKeyOptions(3279, 2511, 1, IniFile.m_nKeyOptions) EgtGetKeyOptions(3279, 2611, 1, IniFile.m_nKeyOptions)
' Leggo e imposto livello utilizzatore ' Leggo e imposto livello utilizzatore
IniFile.m_nUserLevel = Math.Min(IniFile.m_nKeyLevel, GetPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1)) IniFile.m_nUserLevel = Math.Min(IniFile.m_nKeyLevel, GetPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1))
' Imposto abilitazione lavorazioni avanzate ' Imposto abilitazione lavorazioni avanzate
@@ -403,7 +401,7 @@ Public Class MainWindowVM
IniFile.m_sLogFile = m_sTempDir & "\" & GENLOG_FILE_NAME.Replace("#", IniFile.m_nInstance.ToString()) IniFile.m_sLogFile = m_sTempDir & "\" & GENLOG_FILE_NAME.Replace("#", IniFile.m_nInstance.ToString())
Dim sLogMsg As String = "User " & Environment.MachineName & "\" & Environment.UserName & Dim sLogMsg As String = "User " & Environment.MachineName & "\" & Environment.UserName &
" Inst" & IniFile.m_nInstance.ToString() & " Inst" & IniFile.m_nInstance.ToString() &
" Ulv" & IniFile.m_nUserLevel.ToString() & " Dbg" & DebugLevel().ToString() & vbLf & " Ulv" & IniFile.m_nUserLevel.ToString() & " Dbg" & DebugLevel().ToString() & vbLf &
My.Application.Info.Title.ToString() & " ver. " & m_sVersion My.Application.Info.Title.ToString() & " ver. " & m_sVersion
EgtInit(m_nDebug, IniFile.m_sLogFile, sLogMsg) EgtInit(m_nDebug, IniFile.m_sLogFile, sLogMsg)
EgtSetOnTerminateProcess( m_OnTerminateProcessCallback) EgtSetOnTerminateProcess( m_OnTerminateProcessCallback)
@@ -436,9 +434,6 @@ Public Class MainWindowVM
' Imposto dir di default per libreria Lua e lancio libreria di base ' Imposto dir di default per libreria Lua e lancio libreria di base
Dim sLuaLibsDir As String = String.Empty Dim sLuaLibsDir As String = String.Empty
GetPrivateProfileString(S_LUA, K_LIBSDIR, "", sLuaLibsDir) GetPrivateProfileString(S_LUA, K_LIBSDIR, "", sLuaLibsDir)
#If PLATFORM = "x64" Then
GetPrivateProfileString(S_LUA, K_LIBSDIR64, sLuaLibsDir, sLuaLibsDir)
#End If
EgtSetLuaLibs(sLuaLibsDir) EgtSetLuaLibs(sLuaLibsDir)
Dim sLuaBaseLib As String = String.Empty Dim sLuaBaseLib As String = String.Empty
GetPrivateProfileString(S_LUA, K_BASELIB, "EgtBase", sLuaBaseLib) GetPrivateProfileString(S_LUA, K_BASELIB, "EgtBase", sLuaBaseLib)
@@ -603,6 +598,12 @@ Public Class MainWindowVM
' pulisco output ' pulisco output
Map.refStatusBarVM.NotifyStatusOutput("") Map.refStatusBarVM.NotifyStatusOutput("")
Map.refInputExpanderVM.ResetInputBox() Map.refInputExpanderVM.ResetInputBox()
ElseIf e.Key = Key.Left OrElse e.Key = Key.Right OrElse e.Key = Key.Up OrElse e.Key = Key.Down AndAlso
Map.refTopCommandBarVM.MachiningIsChecked AndAlso Map.refOperationParametersExpanderVM.OperationParameters.IsEnabled Then
Map.refMachiningParameterExpanderVM.FocusSlider()
Dim nStep As Integer = If(e.Key = Key.Right OrElse e.Key = Key.Up, 1, -1)
Map.refMachiningParameterExpanderVM.SetSliderValue(nStep)
e.Handled = True
End If End If
End Sub End Sub
+3 -3
View File
@@ -30,7 +30,7 @@ Imports System.Windows
#End If #End If
<Assembly: AssemblyCompany("Egalware s.r.l.")> <Assembly: AssemblyCompany("Egalware s.r.l.")>
<Assembly: AssemblyProduct("EgtCAM5")> <Assembly: AssemblyProduct("EgtCAM5")>
<Assembly: AssemblyCopyright("Copyright © 2016-2023 by Egalware s.r.l.")> <Assembly: AssemblyCopyright("Copyright © 2016-2024 by Egalware s.r.l.")>
<Assembly: AssemblyTrademark("")> <Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(false)> <Assembly: ComVisible(false)>
@@ -70,6 +70,6 @@ Imports System.Windows
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.5.11.2")> <Assembly: AssemblyVersion("2.6.11.1")>
<Assembly: AssemblyFileVersion("2.5.11.2")> <Assembly: AssemblyFileVersion("2.6.11.1")>
@@ -8,7 +8,7 @@
<TextBlock Text="{Binding PropertiesMsg}"/> <TextBlock Text="{Binding PropertiesMsg}"/>
</Expander.Header> </Expander.Header>
<UniformGrid> <UniformGrid>
<TextBox Text="{Binding InfoBox, Mode=OneWay}" MaxHeight="100" IsReadOnly="True" <TextBox Text="{Binding InfoBox, Mode=OneWay}" MaxHeight="250" IsReadOnly="True"
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"/> HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"/>
</UniformGrid> </UniformGrid>
</Expander> </Expander>
@@ -93,7 +93,7 @@ Public Class LayerTreeViewItem
EgtGetStatus(Node.Id, nStat) EgtGetStatus(Node.Id, nStat)
If value AndAlso nStat <> GDB_ST.ON_ Then If value AndAlso nStat <> GDB_ST.ON_ Then
EgtSetStatus(Node.Id, GDB_ST.ON_) EgtSetStatus(Node.Id, GDB_ST.ON_)
ElseIf nStat <> GDB_ST.OFF Then ElseIf Not value AndAlso nStat <> GDB_ST.OFF Then
EgtSetStatus(Node.Id, GDB_ST.OFF) EgtSetStatus(Node.Id, GDB_ST.OFF)
End If End If
End If End If
@@ -1,9 +1,9 @@
<UserControl x:Class="ManageLayerExpanderV" <UserControl x:Class="ManageLayerExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:expression="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions" xmlns:expression="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"
xmlns:local="clr-namespace:EgtCAM5"> xmlns:local="clr-namespace:EgtCAM5">
<Expander IsExpanded="True" Style="{StaticResource ExpanderStyle}"> <Expander IsExpanded="True" Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
@@ -21,10 +21,10 @@
<Button Content="{Binding ColorMsg}" Command="{Binding LayerColorCommand}" Height="30"/> <Button Content="{Binding ColorMsg}" Command="{Binding LayerColorCommand}" Height="30"/>
</UniformGrid> </UniformGrid>
<TreeView Name="LayerTreeView" MinHeight="150" MaxHeight="250" <TreeView Name="LayerTreeView" MinHeight="250" MaxHeight="400"
ItemsSource="{Binding Path=LayerList}" ItemsSource="{Binding Path=LayerList}"
VirtualizingStackPanel.IsVirtualizing = "True" VirtualizingStackPanel.IsVirtualizing = "True"
VirtualizingStackPanel.VirtualizationMode = "Recycling"> VirtualizingStackPanel.VirtualizationMode = "Recycling">
<interactivity:Interaction.Triggers> <interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="MouseDoubleClick"> <interactivity:EventTrigger EventName="MouseDoubleClick">
<interactivity:InvokeCommandAction Command="{Binding TreeViewDoubleClickCommand}"/> <interactivity:InvokeCommandAction Command="{Binding TreeViewDoubleClickCommand}"/>
+22 -8
View File
@@ -1,16 +1,30 @@
<UserControl x:Class="DrawOptionPanelV" <UserControl x:Class="DrawOptionPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="250" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5" xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5">
xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity">
<StackPanel Name="ciao" Background="Transparent" MaxHeight="{Binding MaxHeight,RelativeSource={RelativeSource AncestorType={x:Type EgtFloating:EgtFloatingPanel}}}"> <!--<StackPanel Name="ciao" Background="Transparent" MaxHeight="{Binding MaxHeight,RelativeSource={RelativeSource AncestorType={x:Type EgtFloating:EgtFloatingPanel}}}">
--><!--ContentPresenter that contains the ManageLayerExpander--><!--
<ContentPresenter Content="{Binding ManageLayerExpander,Mode=OneWay}"/>
--><!--ContentPresenter that contains the InfoExpander--><!--
<ContentPresenter Content="{Binding InfoExpander}"/>
--><!--ContentPresenter that contains the InputExpander--><!--
<ContentPresenter Content="{Binding InputExpander}"/>
</StackPanel>-->
<Grid Name="ciao" Background="Transparent" MaxHeight="{Binding MaxHeight,RelativeSource={RelativeSource AncestorType={x:Type EgtFloating:EgtFloatingPanel}}}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!--ContentPresenter that contains the ManageLayerExpander--> <!--ContentPresenter that contains the ManageLayerExpander-->
<ContentPresenter Content="{Binding ManageLayerExpander,Mode=OneWay}"/> <ContentPresenter Content="{Binding ManageLayerExpander,Mode=OneWay}"/>
<GridSplitter Grid.Row="0" Height="5" Background="Transparent" HorizontalAlignment="Stretch" VerticalAlignment="Bottom"/>
<!--ContentPresenter that contains the InfoExpander--> <!--ContentPresenter that contains the InfoExpander-->
<ContentPresenter Content="{Binding InfoExpander}"/> <ContentPresenter Grid.Row="1" Content="{Binding InfoExpander}"/>
<GridSplitter Grid.Row="1" Height="5" Background="Transparent" HorizontalAlignment="Stretch" VerticalAlignment="Bottom"/>
<!--ContentPresenter that contains the InputExpander--> <!--ContentPresenter that contains the InputExpander-->
<ContentPresenter Content="{Binding InputExpander}"/> <ContentPresenter Grid.Row="2" Content="{Binding InputExpander}"/>
</StackPanel> </Grid>
</UserControl> </UserControl>
@@ -177,12 +177,17 @@ Public Class EstimationsExpanderVM
If Not bOk Then Return False If Not bOk Then Return False
' Calcolo della stima ' Calcolo della stima
If Not EgtEstimate(sEstFile, sInfo) Then If Not EgtEstimate(sEstFile, sInfo) Then
If EgtGetLastMachMgrErrorId() <> 0 Then Dim nErr As Integer = EgtGetLastMachMgrErrorId()
If nErr = 1000 Then
MessageBox.Show(EgtMsg(5333), EgtMsg(5320), MessageBoxButton.OK, MessageBoxImage.Information)
ElseIf nErr = 1001 Then
MessageBox.Show(EgtMsg(5334), EgtMsg(5320), MessageBoxButton.OK, MessageBoxImage.Information)
ElseIf nErr <> 0 Then
Dim sErr As String = EgtGetLastMachMgrErrorString() Dim sErr As String = EgtGetLastMachMgrErrorString()
sErr = sErr.Replace("Cnc", "Est") sErr = sErr.Replace("Cnc", "Est")
MessageBox.Show(sErr, EgtMsg(MSG_SIMULATION + 5), MessageBoxButton.OK, MessageBoxImage.Exclamation) MessageBox.Show(sErr, EgtMsg(5305), MessageBoxButton.OK, MessageBoxImage.Exclamation)
Else Else
MessageBox.Show(EgtMsg(MSG_SIMULATION + 17), EgtMsg(MSG_SIMULATION + 5), MessageBoxButton.OK, MessageBoxImage.Error) MessageBox.Show(EgtMsg(5317), EgtMsg(5305), MessageBoxButton.OK, MessageBoxImage.Error)
End If End If
bOk = False bOk = False
End If End If
@@ -150,6 +150,8 @@ Public Class MachiningTreeExpanderVM
Return EgtMsg(MSG_MACHININGSDBPAGE + 11) Return EgtMsg(MSG_MACHININGSDBPAGE + 11)
Case MCH_MY.WATERJETTING Case MCH_MY.WATERJETTING
Return EgtMsg(MSG_MACHININGSDBPAGE + 12) Return EgtMsg(MSG_MACHININGSDBPAGE + 12)
Case MCH_MY.FIVEAXISMILLING
Return EgtMsg(31213)
Case Else Case Else
Return "Mach" Return "Mach"
End Select End Select
@@ -281,6 +281,7 @@ Public Class DispositionParameterExpanderVM
End Select End Select
Map.refRawPartOptionVM.SetMoveWithFixture(False) Map.refRawPartOptionVM.SetMoveWithFixture(False)
Map.refFixtureParametersVM.UpdateFixtureTypeList() Map.refFixtureParametersVM.UpdateFixtureTypeList()
DispositionUtility.InitHookData()
End Sub End Sub
#End Region ' METHODS #End Region ' METHODS
@@ -5,8 +5,6 @@ Imports EgtUILib
Public Class FixtureParametersVM Public Class FixtureParametersVM
Inherits ViewModelBase Inherits ViewModelBase
Friend Const USED As String = "USED"
Private m_FixtureTypeList As ObservableCollection(Of FixtureListItem) Private m_FixtureTypeList As ObservableCollection(Of FixtureListItem)
Public ReadOnly Property FixtureTypeList As ObservableCollection(Of FixtureListItem) Public ReadOnly Property FixtureTypeList As ObservableCollection(Of FixtureListItem)
Get Get
@@ -122,27 +120,35 @@ Public Class FixtureParametersVM
OnPropertyChanged("FixtureErrorMsg") OnPropertyChanged("FixtureErrorMsg")
Return Return
End If End If
' dimensioni tavola
Dim vtTabDim As Vector3d = ptTableMax - ptTableMin
' calcolo il centro della tavola ' calcolo il centro della tavola
Dim ptTableMid As New Point3d((ptTableMax.x - ptTableMin.x) / 2, (ptTableMax.y - ptTableMin.y) / 2, (ptTableMax.z - ptTableMin.z) / 2) Dim ptTableMid As Point3d = Point3d.ORIG() + 0.5 * vtTabDim
' posiziono il nuovo sottopezzo al centro della tavola ' posiziono il nuovo sottopezzo al centro della tavola
Dim nAddedFixtureId As Integer = EgtAddFixture(SelectedFixture.Name, ptTableMid, 0, 0) Dim nAddedFixtureId As Integer = EgtAddFixture(SelectedFixture.Name, ptTableMid, 0, 20)
If nAddedFixtureId = GDB_ID.NULL Then If nAddedFixtureId = GDB_ID.NULL Then
m_FixtureErrorMsg = "Impossibile posizionare la ventosa sulla tavola" m_FixtureErrorMsg = "Impossibile posizionare la ventosa sulla tavola"
OnPropertyChanged("FixtureErrorMsg") OnPropertyChanged("FixtureErrorMsg")
Return Return
End If End If
' verifico se la ventosa ha punti di hook da ancorare ' Se la ventosa ha punti di hook da ancorare
If IsFixtureWithHook(nAddedFixtureId) Then If IsFixtureWithHook(nAddedFixtureId) Then
If Not PositionFixtureOnNearestHook(nAddedFixtureId) Then If Not PositionFixtureOnNearestHook(nAddedFixtureId) Then
' non ci sono punti liberi, quindi rimuovo la ventosa e segnalo EgtMoveFixture( nAddedFixtureId, 0.2 * vtTabDim.y * Vector3d.Y_AX())
EgtRemoveFixture(nAddedFixtureId) If Not PositionFixtureOnNearestHook(nAddedFixtureId) Then
MessageBox.Show("No free hook point!", "ERROR") EgtMoveFixture( nAddedFixtureId, 0.2 * vtTabDim.y * Vector3d.Y_AX())
Return If Not PositionFixtureOnNearestHook(nAddedFixtureId) Then
' non ci sono punti liberi, quindi rimuovo la ventosa e segnalo
EgtRemoveFixture(nAddedFixtureId)
MessageBox.Show("No free hook point!", "ERROR")
Return
End If
End If
End If End If
' altrimenti ventosa con movimento continuo
Else Else
' se non ha punti di ancoraggio ' verifico se è in una posizione valida
' verifico se è in una posizione valida If Not DispositionUtility.VerifyFixturePosition(nAddedFixtureId, New Vector3d) Then
If Not DispositionUtility.VerifyFixturePosition(nAddedFixtureId, New Vector3d) Then
' se non trovo una posizione valida, esco ' se non trovo una posizione valida, esco
If Not SearchOkFixturePosition(nAddedFixtureId, ptTableMin, ptTableMax, ptTableMid) Then If Not SearchOkFixturePosition(nAddedFixtureId, ptTableMin, ptTableMax, ptTableMid) Then
Return Return
@@ -157,76 +163,76 @@ Public Class FixtureParametersVM
' Funzione che cerca una posizione valida per la ventosa libera di muoversi ' Funzione che cerca una posizione valida per la ventosa libera di muoversi
Private Function SearchOkFixturePosition(nAddedFixtureId As Integer, ptTableMin As Point3d, ptTableMax As Point3d, ptTableMid As Point3d) As Boolean Private Function SearchOkFixturePosition(nAddedFixtureId As Integer, ptTableMin As Point3d, ptTableMax As Point3d, ptTableMid As Point3d) As Boolean
' creo un gruppo temporaneo ' creo un gruppo temporaneo
Dim nTempGroupId As Integer = EgtCreateGroup(GDB_ID.ROOT) Dim nTempGroupId As Integer = EgtCreateGroup(GDB_ID.ROOT)
EgtSetLevel(nTempGroupId, GDB_LV.USER) EgtSetLevel(nTempGroupId, GDB_LV.USER)
EgtSetMode(nTempGroupId, GDB_MD.STD) EgtSetMode(nTempGroupId, GDB_MD.STD)
' calcolo ingombro sottopezzo aggiunto ' calcolo ingombro sottopezzo aggiunto
Dim bboxAddedFixture As New BBox3d Dim bboxAddedFixture As New BBox3d
EgtGetBBoxGlob(nAddedFixtureId, GDB_BB.STANDARD, bboxAddedFixture) EgtGetBBoxGlob(nAddedFixtureId, GDB_BB.STANDARD, bboxAddedFixture)
' calcolo bbox tavolo ' calcolo bbox tavolo
Dim bboxTableArea As New BBox3d(ptTableMin, ptTableMax) Dim bboxTableArea As New BBox3d(ptTableMin, ptTableMax)
bboxTableArea.Expand(-bboxAddedFixture.DimX / 2, -bboxAddedFixture.DimY / 2, 0) bboxTableArea.Expand(-bboxAddedFixture.DimX / 2, -bboxAddedFixture.DimY / 2, 0)
' creo superficie delle misure della tavola ' creo superficie delle misure della tavola
Dim nTableFrId As Integer = EgtCreateSurfFrRectangle(nTempGroupId, bboxTableArea.Min, bboxTableArea.Max) Dim nTableFrId As Integer = EgtCreateSurfFrRectangle(nTempGroupId, bboxTableArea.Min, bboxTableArea.Max)
' ciclo su tutti i pezzi di questa fase ' ciclo su tutti i pezzi di questa fase
Dim nFixtureId As Integer = EgtGetFirstFixture() Dim nFixtureId As Integer = EgtGetFirstFixture()
While nFixtureId <> GDB_ID.NULL While nFixtureId <> GDB_ID.NULL
' creo il bbox del sottopezzo ' creo il bbox del sottopezzo
Dim bboxFixture As New BBox3d Dim bboxFixture As New BBox3d
EgtGetBBoxGlob(nFixtureId, GDB_BB.STANDARD, bboxFixture) EgtGetBBoxGlob(nFixtureId, GDB_BB.STANDARD, bboxFixture)
' faccio offset del bbox del sottopezzo per includere metà del sottopezzo da aggiungere ' faccio offset del bbox del sottopezzo per includere metà del sottopezzo da aggiungere
bboxFixture.Expand(bboxAddedFixture.DimX / 2, bboxAddedFixture.DimY / 2, 0) bboxFixture.Expand(bboxAddedFixture.DimX / 2, bboxAddedFixture.DimY / 2, 0)
' lo porto all'altezza della tavola ' lo porto all'altezza della tavola
Dim ptMinFixtureFr As New Point3d(bboxFixture.Min) Dim ptMinFixtureFr As New Point3d(bboxFixture.Min)
Dim ptMaxFixtureFr As New Point3d(bboxFixture.Max) Dim ptMaxFixtureFr As New Point3d(bboxFixture.Max)
ptMinFixtureFr.z = ptTableMin.z ptMinFixtureFr.z = ptTableMin.z
ptMaxFixtureFr.z = ptTableMin.z ptMaxFixtureFr.z = ptTableMin.z
' creo la regione occupata dal bbox del sottopezzo ' creo la regione occupata dal bbox del sottopezzo
Dim nFixtureFrId As Integer = EgtCreateSurfFrRectangle(nTempGroupId, ptMinFixtureFr, ptMaxFixtureFr) Dim nFixtureFrId As Integer = EgtCreateSurfFrRectangle(nTempGroupId, ptMinFixtureFr, ptMaxFixtureFr)
' sottraggo la regione del sottopezzo da quella della tavola ' sottraggo la regione del sottopezzo da quella della tavola
Dim x = EgtSurfFrSubtract(nTableFrId, nFixtureFrId) Dim x = EgtSurfFrSubtract(nTableFrId, nFixtureFrId)
nFixtureId = EgtGetNextFixture(nFixtureId) nFixtureId = EgtGetNextFixture(nFixtureId)
End While End While
' creo gruppo con i bordi della regione di tavola avanzata ' creo gruppo con i bordi della regione di tavola avanzata
Dim TableFrBorderGroupId As Integer = EgtCreateGroup(nTempGroupId) Dim TableFrBorderGroupId As Integer = EgtCreateGroup(nTempGroupId)
Dim nTableFrBorderCount As Integer = 0 Dim nTableFrBorderCount As Integer = 0
Dim nChunk As Integer = EgtSurfFrChunkCount(nTableFrId) Dim nChunk As Integer = EgtSurfFrChunkCount(nTableFrId)
For Index = 0 To nChunk - 1 For Index = 0 To nChunk - 1
EgtExtractSurfFrChunkLoops(nTableFrId, Index, TableFrBorderGroupId, nTableFrBorderCount) EgtExtractSurfFrChunkLoops(nTableFrId, Index, TableFrBorderGroupId, nTableFrBorderCount)
Next Next
' verifico se c'è almeno un bordo ' verifico se c'è almeno un bordo
If nTableFrBorderCount = 0 Then If nTableFrBorderCount = 0 Then
m_FixtureErrorMsg = "Impossibile posizionare la ventosa sulla tavola" m_FixtureErrorMsg = "Impossibile posizionare la ventosa sulla tavola"
OnPropertyChanged("FixtureErrorMsg") OnPropertyChanged("FixtureErrorMsg")
Return False Return False
End If
' converto il punto medio della tavola in coordinate globali
Dim PtTableRef As Point3d
EgtGetTableRef(1, PtTableRef)
Dim frTableRef As New Frame3d(PtTableRef)
ptTableMid.ToGlob(frTableRef)
' ciclo sui bordi per trovare il punto più vicino
Dim dMinDist As Double = (bboxTableArea.Max - bboxTableArea.Min).SqLenXY
Dim ptMinAbs As Point3d
Dim BorderId As Integer = EgtGetFirstInGroup(TableFrBorderGroupId)
While BorderId <> GDB_ID.NULL
Dim dDist As Double = 0
Dim ptMinRel As Point3d
Dim nSide As Integer = 0
EgtPointCurveDistSide(ptTableMid, BorderId, Vector3d.Z_AX, GDB_ID.ROOT, dDist, ptMinRel, nSide)
If dDist < dMinDist Then
dMinDist = dDist
ptMinAbs = ptMinRel
End If End If
' converto il punto medio della tavola in coordinate globali BorderId = EgtGetNext(BorderId)
Dim PtTableRef As Point3d End While
EgtGetTableRef(1, PtTableRef) ' sposto il sottopezzo nel punto trovato
Dim frTableRef As New Frame3d(PtTableRef) Dim vtFixtureMove As Vector3d = ptMinAbs - ptTableMid
ptTableMid.ToGlob(frTableRef) vtFixtureMove.z = 0
' ciclo sui bordi per trovare il punto più vicino EgtMoveFixture(nAddedFixtureId, vtFixtureMove)
Dim dMinDist As Double = (bboxTableArea.Max - bboxTableArea.Min).SqLenXY ' cancello il gruppo temporaneo
Dim ptMinAbs As Point3d EgtErase(nTempGroupId)
Dim BorderId As Integer = EgtGetFirstInGroup(TableFrBorderGroupId)
While BorderId <> GDB_ID.NULL
Dim dDist As Double = 0
Dim ptMinRel As Point3d
Dim nSide As Integer = 0
EgtPointCurveDistSide(ptTableMid, BorderId, Vector3d.Z_AX, GDB_ID.ROOT, dDist, ptMinRel, nSide)
If dDist < dMinDist Then
dMinDist = dDist
ptMinAbs = ptMinRel
End If
BorderId = EgtGetNext(BorderId)
End While
' sposto il sottopezzo nel punto trovato
Dim vtFixtureMove As Vector3d = ptMinAbs - ptTableMid
vtFixtureMove.z = 0
EgtMoveFixture(nAddedFixtureId, vtFixtureMove)
' cancello il gruppo temporaneo
EgtErase(nTempGroupId)
Return True Return True
End Function End Function
@@ -239,9 +245,7 @@ Public Class FixtureParametersVM
' leggo tipo ' leggo tipo
Dim sType As String = "" Dim sType As String = ""
EgtGetInfo(nFixtHookId, DispositionUtility.TYPE, sType) EgtGetInfo(nFixtHookId, DispositionUtility.TYPE, sType)
If sType.Equals(DispositionUtility.FREE) Then If sType.Equals(DispositionUtility.POINT) Then
Return False
ElseIf sType.Equals(DispositionUtility.POINT) Then
Return True Return True
ElseIf sType.Equals(DispositionUtility.LINE) Then ElseIf sType.Equals(DispositionUtility.LINE) Then
Return True Return True
@@ -250,7 +254,7 @@ Public Class FixtureParametersVM
End If End If
End Function End Function
' Funzione che aggancia la ventosa al più vicino hook libero ' Funzione che cerca un hook libero adatto alla ventosa e se trovato la posiziona
Friend Shared Function PositionFixtureOnNearestHook(nFixtureId As Integer) As Boolean Friend Shared Function PositionFixtureOnNearestHook(nFixtureId As Integer) As Boolean
' cerco punto hook sulla ventosa ' cerco punto hook sulla ventosa
Dim nFixtSolidId As Integer = EgtGetFirstNameInGroup(nFixtureId, SOLID) Dim nFixtSolidId As Integer = EgtGetFirstNameInGroup(nFixtureId, SOLID)
@@ -262,26 +266,21 @@ Public Class FixtureParametersVM
Dim nFixtHookType As DispositionUtility.HOOKTYPE = DispositionUtility.HOOKTYPE.FREE Dim nFixtHookType As DispositionUtility.HOOKTYPE = DispositionUtility.HOOKTYPE.FREE
Dim sType As String = "" Dim sType As String = ""
EgtGetInfo(nFixtHookId, DispositionUtility.TYPE, sType) EgtGetInfo(nFixtHookId, DispositionUtility.TYPE, sType)
If sType.Equals(DispositionUtility.FREE) Then If sType.Equals(DispositionUtility.POINT) Then
nFixtHookType = DispositionUtility.HOOKTYPE.FREE
' esco perchè non devo cercare alcun punto
Return True
ElseIf sType.Equals(DispositionUtility.POINT) Then
nFixtHookType = DispositionUtility.HOOKTYPE.POINT nFixtHookType = DispositionUtility.HOOKTYPE.POINT
ElseIf sType.Equals(DispositionUtility.LINE) Then ElseIf sType.Equals(DispositionUtility.LINE) Then
nFixtHookType = DispositionUtility.HOOKTYPE.LINE nFixtHookType = DispositionUtility.HOOKTYPE.LINE
Else Else
nFixtHookType = DispositionUtility.HOOKTYPE.FREE
' esco perchè non devo cercare alcun punto ' esco perchè non devo cercare alcun punto
Return True Return True
End If End If
Dim nFixtHookClass As Integer = 0 Dim nFixtHookClass As Integer = 0
EgtGetInfo(nFixtHookId, DispositionUtility.CLASS_, nFixtHookClass) EgtGetInfo(nFixtHookId, DispositionUtility.CLASS_, nFixtHookClass)
' cerco id tavola ' Recupero Id tavola corrente
Dim sTableName As String = "" Dim sTableName As String = ""
EgtGetTableName(sTableName) EgtGetTableName(sTableName)
Dim nTableId As Integer = EgtGetTableId(sTableName) Dim nTableId As Integer = EgtGetTableId(sTableName)
' cerco hook su tavola macchina ' *** Cerco hook su tavola ***
Dim nTableSolidId As Integer = EgtGetFirstNameInGroup(nTableId, SOLID) Dim nTableSolidId As Integer = EgtGetFirstNameInGroup(nTableId, SOLID)
Dim nCurrHookId As Integer = EgtGetFirstNameInGroup(nTableSolidId, DispositionUtility.HOOK) Dim nCurrHookId As Integer = EgtGetFirstNameInGroup(nTableSolidId, DispositionUtility.HOOK)
' Punto di hook a cui spostare la ventosa ' Punto di hook a cui spostare la ventosa
@@ -293,33 +292,22 @@ Public Class FixtureParametersVM
EgtMoveFixture(nFixtureId, ptCurrHook - ptFixtHook) EgtMoveFixture(nFixtureId, ptCurrHook - ptFixtHook)
' verifico se è in una posizione valida ' verifico se è in una posizione valida
If DispositionUtility.VerifyFixturePosition(nFixtureId, New Vector3d) Then If DispositionUtility.VerifyFixturePosition(nFixtureId, New Vector3d) Then
EgtSetInfo(nCurrHookId, used, nFixtureId) If nFixtHookType = DispositionUtility.HOOKTYPE.POINT then
DispositionUtility.SetHookUsed( nCurrHookId, nFixtureId)
Else
DispositionUtility.AddHookUsed( nCurrHookId, nFixtureId)
End If
Return True Return True
Else
EgtStartPoint(nFixtHookId, GDB_ID.ROOT, ptFixtHook)
End If End If
End If End If
nCurrHookId = EgtGetNextName(nCurrHookId, DispositionUtility.HOOK) nCurrHookId = EgtGetNextName(nCurrHookId, DispositionUtility.HOOK)
End While End While
' cerco hook su barra fissa ' *** Cerco hook su barre fisse ***
Dim nTableFixedId As Integer = EgtGetFirstNameInGroup(nTableId, DispositionUtility.FIXED) Dim nTableFixedId As Integer = EgtGetFirstNameInGroup(nTableId, DispositionUtility.FIXED)
nCurrHookId = EgtGetFirstNameInGroup(nTableFixedId, DispositionUtility.HOOK) While nTableFixedId <> GDB_ID.NULL
While nCurrHookId <> GDB_ID.NULL nCurrHookId = EgtGetFirstNameInGroup(nTableFixedId, DispositionUtility.HOOK)
' se punto di aggancio valido
If HookAnalyzer(nCurrHookId, nFixtHookType, nFixtHookClass, ptFixtHook, ptCurrHook) Then
' sposto la ventosa
EgtMoveFixture(nFixtureId, ptCurrHook - ptFixtHook)
' verifico se è in una posizione valida
If DispositionUtility.VerifyFixturePosition(nFixtureId, New Vector3d) Then
EgtSetInfo(nCurrHookId, USED, nFixtureId)
Return True
End If
End If
nCurrHookId = EgtGetNextName(nCurrHookId, DispositionUtility.HOOK)
End While
' cerco hook su barre mobili
Dim nMobileInd As Integer = 1
Dim nMobile As Integer = EgtGetFirstNameInGroup(nTableId, DispositionUtility.MOBILE & nMobileInd)
While nMobile <> GDB_ID.NULL
nCurrHookId = EgtGetFirstNameInGroup(nMobile, DispositionUtility.HOOK)
While nCurrHookId <> GDB_ID.NULL While nCurrHookId <> GDB_ID.NULL
' se punto di aggancio valido ' se punto di aggancio valido
If HookAnalyzer(nCurrHookId, nFixtHookType, nFixtHookClass, ptFixtHook, ptCurrHook) Then If HookAnalyzer(nCurrHookId, nFixtHookType, nFixtHookClass, ptFixtHook, ptCurrHook) Then
@@ -327,46 +315,111 @@ Public Class FixtureParametersVM
EgtMoveFixture(nFixtureId, ptCurrHook - ptFixtHook) EgtMoveFixture(nFixtureId, ptCurrHook - ptFixtHook)
' verifico se è in una posizione valida ' verifico se è in una posizione valida
If DispositionUtility.VerifyFixturePosition(nFixtureId, New Vector3d) Then If DispositionUtility.VerifyFixturePosition(nFixtureId, New Vector3d) Then
EgtSetInfo(nCurrHookId, USED, nFixtureId) If nFixtHookType = DispositionUtility.HOOKTYPE.POINT then
DispositionUtility.SetHookUsed( nCurrHookId, nFixtureId)
Else
DispositionUtility.AddHookUsed( nCurrHookId, nFixtureId)
End If
Return True Return True
Else
EgtStartPoint(nFixtHookId, GDB_ID.ROOT, ptFixtHook)
End If End If
End If End If
nCurrHookId = EgtGetNextName(nCurrHookId, DispositionUtility.HOOK) nCurrHookId = EgtGetNextName(nCurrHookId, DispositionUtility.HOOK)
End While End While
nMobileInd += 1 nTableFixedId = EgtGetNextName( nTableFixedId, DispositionUtility.FIXED)
nMobile = EgtGetFirstNameInGroup(nTableId, DispositionUtility.MOBILE & nMobileInd) End While
' *** Cerco hook su barre mobili ***
Dim nBarId As Integer = EgtGetFirstGroupInGroup(nTableId)
While nBarId <> GDB_ID.NULL
Dim sBarName As String = ""
If EgtGetName( nBarId, sBarName) AndAlso EgtGetAxisId( sBarName) <> GDB_ID.NULL Then
nCurrHookId = EgtGetFirstNameInGroup(nBarId, DispositionUtility.HOOK)
While nCurrHookId <> GDB_ID.NULL
' se punto di aggancio valido
If HookAnalyzer(nCurrHookId, nFixtHookType, nFixtHookClass, ptFixtHook, ptCurrHook) Then
' sposto la ventosa
Dim vtMove As Vector3d = ptCurrHook - ptFixtHook
EgtMoveFixture(nFixtureId, vtMove)
' verifico se è in una posizione valida
If DispositionUtility.VerifyFixturePosition(nFixtureId, New Vector3d) Then
If nFixtHookType = DispositionUtility.HOOKTYPE.POINT then
DispositionUtility.SetHookUsed( nCurrHookId, nFixtureId)
Else
DispositionUtility.AddHookUsed( nCurrHookId, nFixtureId)
End If
Return True
Else
EgtStartPoint(nFixtHookId, GDB_ID.ROOT, ptFixtHook)
End If
End If
nCurrHookId = EgtGetNextName(nCurrHookId, DispositionUtility.HOOK)
End While
' Cerco su eventuali carrelli
Dim nCharId As Integer = EgtGetFirstGroupInGroup(nBarId)
While nCharId <> GDB_ID.NULL
Dim sCharName As String = ""
If EgtGetName( nCharId, sCharName) AndAlso EgtGetAxisId( sCharName) <> GDB_ID.NULL Then
nCurrHookId = EgtGetFirstNameInGroup(nCharId, DispositionUtility.HOOK)
While nCurrHookId <> GDB_ID.NULL
' se punto di aggancio valido
If HookAnalyzer(nCurrHookId, nFixtHookType, nFixtHookClass, ptFixtHook, ptCurrHook) Then
' sposto la ventosa
EgtMoveFixture(nFixtureId, ptCurrHook - ptFixtHook)
' verifico se è in una posizione valida
If DispositionUtility.VerifyFixturePosition(nFixtureId, New Vector3d) Then
If nFixtHookType = DispositionUtility.HOOKTYPE.POINT then
DispositionUtility.SetHookUsed( nCurrHookId, nFixtureId)
Else
DispositionUtility.AddHookUsed( nCurrHookId, nFixtureId)
End If
Return True
Else
EgtStartPoint(nFixtHookId, GDB_ID.ROOT, ptFixtHook)
End If
End If
nCurrHookId = EgtGetNextName(nCurrHookId, DispositionUtility.HOOK)
End While
End If
nCharId = EgtGetNextGroup(nCharId)
End While
End If
nBarId = EgtGetNextGroup(nBarId)
End While End While
Return False Return False
End Function End Function
' Funzione che analizza l'hook e se valido ne prestituisce lo posizione(punto) ' Funzione che analizza l'hook e se valido ne restituisce la posizione (punto)
Private Shared Function HookAnalyzer(nCurrHookId As Integer, nFixtHookType As Integer, nFixtHookClass As Integer, ptFixtHook As Point3d, ByRef ptCurrHook As Point3d) As Boolean Private Shared Function HookAnalyzer(nCurrHookId As Integer, nFixtHookType As Integer, nFixtHookClass As Integer,
' verifico se del tipo giusto ptFixtHook As Point3d, ByRef ptCurrHook As Point3d) As Boolean
' Verifico se del tipo giusto
Dim nTableHookType As GDB_TY = EgtGetType(nCurrHookId) Dim nTableHookType As GDB_TY = EgtGetType(nCurrHookId)
If (nTableHookType = GDB_TY.GEO_POINT And nFixtHookType = DispositionUtility.HOOKTYPE.POINT) OrElse (nTableHookType = GDB_TY.CRV_LINE And nFixtHookType = DispositionUtility.HOOKTYPE.LINE) Then If Not (nTableHookType = GDB_TY.GEO_POINT And nFixtHookType = DispositionUtility.HOOKTYPE.POINT) AndAlso
' verifico se della stessa classe Not (nTableHookType = GDB_TY.CRV_LINE And nFixtHookType = DispositionUtility.HOOKTYPE.LINE) Then
Dim nTableHookClass As Integer = 0 Return False
EgtGetInfo(nCurrHookId, DispositionUtility.CLASS_, nTableHookClass) End If
If nTableHookClass = nFixtHookClass Then
Dim dDist As Double = 0 ' Verifico se della stessa classe
' punto a distanza minima sull'hook Dim nTableHookClass As Integer = DispositionUtility.GetHookClass( nCurrHookId)
If nTableHookType = GDB_TY.GEO_POINT Then If nTableHookClass <> nFixtHookClass Then
' verifico se utilizzato Return False
Dim nTableHookUsed As Boolean = False End If
If Not EgtGetInfo(nCurrHookId, DispositionUtility.USED, nTableHookUsed) Then
' calcolo distanza punto hook tavola dal punto hook della ventosa Dim dDist As Double = 0
EgtStartPoint(nCurrHookId, GDB_ID.ROOT, ptCurrHook) ' punto a distanza minima sull'hook
Return True If nTableHookType = GDB_TY.GEO_POINT Then
End If ' verifico se utilizzato
ElseIf nTableHookType = GDB_TY.CRV_LINE Then If Not DispositionUtility.GetIsHookUsed( nCurrHookId) Then
' calcolo distanza linea hook tavola dal punto hook della ventosa ' calcolo distanza punto hook tavola dal punto hook della ventosa
Dim nRefId As Integer = 0 EgtStartPoint(nCurrHookId, GDB_ID.ROOT, ptCurrHook)
Dim dU As Double = 0 Return True
EgtPointCurveDist(ptFixtHook, nCurrHookId, nRefId, dDist, dU)
EgtAtParamPoint(nCurrHookId, dU, GDB_ID.ROOT, ptCurrHook)
Return True
End If
End If End If
ElseIf nTableHookType = GDB_TY.CRV_LINE Then
' calcolo distanza linea hook tavola dal punto hook della ventosa
Dim ptL1 As Point3d : EgtStartPoint( nCurrHookId, GDB_ID.ROOT, ptL1)
Dim ptL2 As Point3d : EgtEndPoint( nCurrHookId, GDB_ID.ROOT, ptL2)
ptCurrHook = DispositionUtility.DistPointSegment( ptFixtHook, ptL1, ptL2)
Return True
End If End If
Return False Return False
End Function End Function
@@ -396,6 +449,7 @@ Public Class FixtureParametersVM
Dim NextSelectedId As Integer = EgtGetNextSelectedObj() Dim NextSelectedId As Integer = EgtGetNextSelectedObj()
If EgtVerifyFixture(SelectedFixtureId) Then If EgtVerifyFixture(SelectedFixtureId) Then
EgtRemoveFixture(SelectedFixtureId) EgtRemoveFixture(SelectedFixtureId)
DispositionUtility.RemoveFixtureFromHook( SelectedFixtureId)
For Index = 0 To FixtureTypeList.Count - 1 For Index = 0 To FixtureTypeList.Count - 1
Dim SelFixtureName As String = String.Empty Dim SelFixtureName As String = String.Empty
EgtGetName(SelectedFixtureId, SelFixtureName) EgtGetName(SelectedFixtureId, SelFixtureName)
@@ -1,384 +1,581 @@
<UserControl x:Class="BeamMillingParameterExpanderV" <UserControl x:Class="BeamMillingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/> <EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
<sys:Int32 x:Key="Invert">0</sys:Int32> <sys:Int32 x:Key="Invert">0</sys:Int32>
<sys:Int32 x:Key="LeaveTab">1</sys:Int32> <sys:Int32 x:Key="LeaveTab">1</sys:Int32>
<sys:Int32 x:Key="WorkSide">2</sys:Int32> <sys:Int32 x:Key="WorkSide">2</sys:Int32>
<sys:Int32 x:Key="HeadSide">3</sys:Int32> <sys:Int32 x:Key="HeadSide">3</sys:Int32>
<sys:Int32 x:Key="LeadInType">4</sys:Int32> <sys:Int32 x:Key="LeadInType">4</sys:Int32>
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32> <sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
<sys:Int32 x:Key="LeadOutType">6</sys:Int32> <sys:Int32 x:Key="LeadOutType">6</sys:Int32>
<sys:Int32 x:Key="CurveUse">7</sys:Int32> <sys:Int32 x:Key="CurveUse">7</sys:Int32>
<sys:Int32 x:Key="StepType">8</sys:Int32> <sys:Int32 x:Key="StepType">8</sys:Int32>
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32> <sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
<sys:Int32 x:Key="Speed">10</sys:Int32> <sys:Int32 x:Key="Speed">10</sys:Int32>
<sys:Int32 x:Key="Feed">11</sys:Int32> <sys:Int32 x:Key="Feed">11</sys:Int32>
<sys:Int32 x:Key="StartFeed">12</sys:Int32> <sys:Int32 x:Key="StartFeed">12</sys:Int32>
<sys:Int32 x:Key="EndFeed">13</sys:Int32> <sys:Int32 x:Key="EndFeed">13</sys:Int32>
<sys:Int32 x:Key="TipFeed">14</sys:Int32> <sys:Int32 x:Key="TipFeed">14</sys:Int32>
<sys:Int32 x:Key="OffSr">15</sys:Int32> <sys:Int32 x:Key="OffSr">15</sys:Int32>
<sys:Int32 x:Key="OffSl">16</sys:Int32> <sys:Int32 x:Key="OffSl">16</sys:Int32>
<sys:Int32 x:Key="SideAngle">17</sys:Int32> <sys:Int32 x:Key="SideAngle">17</sys:Int32>
<sys:Int32 x:Key="Approx">18</sys:Int32> <sys:Int32 x:Key="Approx">18</sys:Int32>
<sys:Int32 x:Key="StartPos">19</sys:Int32> <sys:Int32 x:Key="StartPos">19</sys:Int32>
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32> <sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32> <sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32> <sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
<sys:Int32 x:Key="StepPar">23</sys:Int32> <sys:Int32 x:Key="StepPar">23</sys:Int32>
<sys:Int32 x:Key="ReturnPos">24</sys:Int32> <sys:Int32 x:Key="ReturnPos">24</sys:Int32>
<sys:Int32 x:Key="TabLen">25</sys:Int32> <sys:Int32 x:Key="TabLen">25</sys:Int32>
<sys:Int32 x:Key="TabDist">26</sys:Int32> <sys:Int32 x:Key="TabDist">26</sys:Int32>
<sys:Int32 x:Key="TabHeight">27</sys:Int32> <sys:Int32 x:Key="TabHeight">27</sys:Int32>
<sys:Int32 x:Key="TabAngle">28</sys:Int32> <sys:Int32 x:Key="TabAngle">28</sys:Int32>
<sys:Int32 x:Key="LiTang">29</sys:Int32> <sys:Int32 x:Key="LiTang">29</sys:Int32>
<sys:Int32 x:Key="LiPerp">30</sys:Int32> <sys:Int32 x:Key="LiPerp">30</sys:Int32>
<sys:Int32 x:Key="LiElev">31</sys:Int32> <sys:Int32 x:Key="LiElev">31</sys:Int32>
<sys:Int32 x:Key="LiCompLen">32</sys:Int32> <sys:Int32 x:Key="LiCompLen">32</sys:Int32>
<sys:Int32 x:Key="LoTang">33</sys:Int32> <sys:Int32 x:Key="LoTang">33</sys:Int32>
<sys:Int32 x:Key="LoPerp">34</sys:Int32> <sys:Int32 x:Key="LoPerp">34</sys:Int32>
<sys:Int32 x:Key="LoElev">35</sys:Int32> <sys:Int32 x:Key="LoElev">35</sys:Int32>
<sys:Int32 x:Key="LoCompLen">36</sys:Int32> <sys:Int32 x:Key="LoCompLen">36</sys:Int32>
<sys:Int32 x:Key="StartAddLen">37</sys:Int32> <sys:Int32 x:Key="StartAddLen">37</sys:Int32>
<sys:Int32 x:Key="EndAddLen">38</sys:Int32> <sys:Int32 x:Key="EndAddLen">38</sys:Int32>
<sys:Int32 x:Key="StepExtArc">39</sys:Int32> <sys:Int32 x:Key="StepExtArc">39</sys:Int32>
<sys:Int32 x:Key="StepIntArc">40</sys:Int32> <sys:Int32 x:Key="StepIntArc">40</sys:Int32>
<sys:Int32 x:Key="SideStep">41</sys:Int32> <sys:Int32 x:Key="SideStep">41</sys:Int32>
<sys:Int32 x:Key="VertFeed">42</sys:Int32> <sys:Int32 x:Key="VertFeed">42</sys:Int32>
<sys:Int32 x:Key="NamePar">43</sys:Int32> <sys:Int32 x:Key="NamePar">43</sys:Int32>
<sys:Int32 x:Key="Tool">44</sys:Int32> <sys:Int32 x:Key="Tool">44</sys:Int32>
<sys:Int32 x:Key="DepthStr">45</sys:Int32> <sys:Int32 x:Key="DepthStr">45</sys:Int32>
<sys:Int32 x:Key="UserNotes">46</sys:Int32> <sys:Int32 x:Key="UserNotes">46</sys:Int32>
<sys:Int32 x:Key="OverLapStr">47</sys:Int32> <sys:Int32 x:Key="OverLapStr">47</sys:Int32>
<sys:Int32 x:Key="OffsetStr">48</sys:Int32> <sys:Int32 x:Key="OffsetStr">48</sys:Int32>
<sys:Int32 x:Key="SubType">49</sys:Int32> <sys:Int32 x:Key="SubType">49</sys:Int32>
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32> <sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
<sys:Int32 x:Key="AxRotRef">51</sys:Int32> <sys:Int32 x:Key="AxRotRef">51</sys:Int32>
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32> <sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
<sys:Int32 x:Key="FaceUseType">53</sys:Int32> <sys:Int32 x:Key="FaceUseType">53</sys:Int32>
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32> <sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32> <sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32> <sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
<sys:Int32 x:Key="ApproxGen">57</sys:Int32> <sys:Int32 x:Key="ApproxGen">57</sys:Int32>
<sys:Int32 x:Key="OscEnable">58</sys:Int32> <sys:Int32 x:Key="OscEnable">58</sys:Int32>
<sys:Int32 x:Key="OscHeight">59</sys:Int32> <sys:Int32 x:Key="OscHeight">59</sys:Int32>
<sys:Int32 x:Key="OscRampLen">60</sys:Int32> <sys:Int32 x:Key="OscRampLen">60</sys:Int32>
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32> <sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
</UserControl.Resources> </UserControl.Resources>
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid>
<EgtWPFLib5:CheckParamV
ParamTxBl="{Binding InvertTxBl}"
ParamChBx="{Binding Path=Invert,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource CheckParamV_Margin}"/>
<EgtWPFLib5:ComboParamV
ParamTxBl="{Binding WorkSideTxBl}"
ParamCmBxList="{Binding Path=WorkSideList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
Style="{DynamicResource ComboParamV_Margin}"/>
<UniformGrid Columns="2">
<TextBlock Text="{Binding UserNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/>
</EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox>
<TextBlock Text="{Binding SystemNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Visibility="{Binding SysNotes_Visibility}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
<StackPanel Name="AutomaticCloseExpanderStackPanel"> ParamChBx="{Binding Path=Invert,
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" UpdateSourceTrigger=PropertyChanged,
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> ValidatesOnDataErrors=True}"
<StackPanel> Style="{DynamicResource CheckParamV_Margin}"/>
<EgtWPFLib5:StringParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding WorkSideTxBl}"
ParamTxBl="{Binding StartPosTxBl}" ParamCmBxList="{Binding Path=WorkSideList,
ParamTxBx="{Binding Path=StartPos, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV <UniformGrid Columns="2">
ParamTxBl="{Binding OverLapTxBl}" <TextBlock Text="{Binding UserNotesTxBl}"
ParamTxBx="{Binding Path=OverLap, Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
ValidatesOnDataErrors=True}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:EgtTextBox.ToolTip>
<EgtWPFLib5:ComboParamV <TextBlock Text="{Binding UserNotesTooltip}"/>
ParamTxBl="{Binding StepTypeTxBl}" </EgtWPFLib5:EgtTextBox.ToolTip>
ParamCmBxList="{Binding Path=StepTypeList, </EgtWPFLib5:EgtTextBox>
UpdateSourceTrigger=PropertyChanged, <TextBlock Text="{Binding SystemNotesTxBl}"
ValidatesOnDataErrors=True}" Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
ParamCmBxSelIndex="{Binding Path=SelectedStepType}" Visibility="{Binding SysNotes_Visibility}"/>
Style="{DynamicResource ComboParamV_Margin}"/> <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
<EgtWPFLib5:StringParamV Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
ParamTxBl="{Binding StepParTxBl}" Visibility="{Binding SysNotes_Visibility}"
ParamTxBx="{Binding Path=StepPar, IsReadOnly="True"/>
UpdateSourceTrigger=PropertyChanged, </UniformGrid>
ValidatesOnDataErrors=True}" <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamChBx="{Binding Path=Invert,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding OffsetSrTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=OffSr, Style="{DynamicResource CheckParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:ComboParamV ParamTxBl="{Binding WorkSideTxBl}"
ValidatesOnDataErrors=True}" ParamCmBxList="{Binding Path=WorkSideList,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding OffsetSlTxBl}" ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
ParamTxBx="{Binding Path=OffSl, Style="{DynamicResource ComboParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <UniformGrid Columns="2">
ValidatesOnDataErrors=True}" <TextBlock Text="{Binding UserNotesTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
</StackPanel> <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
</Expander> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/>
</EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox>
<TextBlock Text="{Binding SystemNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Visibility="{Binding SysNotes_Visibility}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid>
</StackPanel>
<StackPanel Name="AutomaticCloseExpanderStackPanel">
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
ParamTxBx="{Binding Path=StartPos,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OverLapTxBl}"
ParamTxBx="{Binding Path=OverLap,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding StepTypeTxBl}"
ParamCmBxList="{Binding Path=StepTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
ParamTxBx="{Binding Path=StepPar,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
ParamTxBx="{Binding Path=OffSr,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
ParamTxBx="{Binding Path=OffSl,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <Expander.Header>
<EgtWPFLib5:CheckParamV <UniformGrid Columns="2">
ParamTxBl="{Binding InvertToolDirTxBl}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamChBx="{Binding Path=InvertToolDir, Margin="2.5"/>
UpdateSourceTrigger=PropertyChanged, <Button Command="{Binding ShowNoteListComboCommand}"
ValidatesOnDataErrors=True}" IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Style="{DynamicResource CheckParamV_Margin}"/> Visibility="{Binding ShowNoteListCombo_Visibility}"
<EgtWPFLib5:ComboParamV ToolTip="{Binding ShowNoteToolTip}"
ParamTxBl="{Binding FaceUseTypeTxBl}" Grid.Column="1"
ParamCmBxList="{Binding Path=FaceUseTypeList, HorizontalAlignment="Right"
UpdateSourceTrigger=PropertyChanged, Margin="2.5,2.5,7,2.5"
ValidatesOnDataErrors=True}" Width="20">
ParamCmBxSelIndex="{Binding Path=SelectedFaceUseType}" <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Button>
<EgtWPFLib5:StringParamV </UniformGrid>
ParamTxBl="{Binding InitAngsTxBl}" </Expander.Header>
ParamTxBx="{Binding Path=InitAngs, <Grid>
UpdateSourceTrigger=PropertyChanged, <Grid.RowDefinitions>
ValidatesOnDataErrors=True}" <RowDefinition Height="1*"/>
Style="{DynamicResource StringParamV_Margin}"/> <RowDefinition Height="Auto"/>
<EgtWPFLib5:StringParamV </Grid.RowDefinitions>
ParamTxBl="{Binding BlockedAxisTxBl}" <StackPanel>
ParamTxBx="{Binding Path=BlockedAxis, <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertToolDirTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamChBx="{Binding Path=InvertToolDir,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:ComboParamV Style="{DynamicResource CheckParamV_Margin}"/>
ParamTxBl="{Binding SolChoiceTypeTxBl}" <EgtWPFLib5:ComboParamV ParamTxBl="{Binding FaceUseTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList, ParamCmBxList="{Binding Path=FaceUseTypeList,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True, ValidatesOnDataErrors=True}"
Mode=OneWay}" ParamCmBxSelIndex="{Binding Path=SelectedFaceUseType}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
</StackPanel> ParamTxBx="{Binding Path=InitAngs,
</Expander> UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadInTypeTxBl}"
ParamTxBl="{Binding LeadInTypeTxBl}" ParamCmBxList="{Binding Path=LeadInTypeList,
ParamCmBxList="{Binding Path=LeadInTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel>
<StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartAddLenTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=StartAddLen,
ParamTxBl="{Binding StartAddLenTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=StartAddLen, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiTangTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=LiTang,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding LiTangTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=LiTang, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiPerpTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=LiPerp,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding LiPerpTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=LiPerp, <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiElevTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=LiElev,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding LiElevTxBl}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiCompLenTxBl}"
ParamTxBx="{Binding Path=LiElev, ParamTxBx="{Binding Path=LiCompLen,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV </StackPanel>
ParamTxBl="{Binding LiCompLenTxBl}" </Expander>
ParamTxBx="{Binding Path=LiCompLen, <Expander Style="{StaticResource ExpanderStyle}">
UpdateSourceTrigger=PropertyChanged, <Expander.Header>
ValidatesOnDataErrors=True}" <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadInTypeTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamCmBxList="{Binding Path=LeadInTypeList,
</StackPanel> UpdateSourceTrigger=PropertyChanged,
</Expander> ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartAddLenTxBl}"
ParamTxBx="{Binding Path=StartAddLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LiTangTxBl}"
ParamTxBx="{Binding Path=LiTang,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LiPerpTxBl}"
ParamTxBx="{Binding Path=LiPerp,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LiElevTxBl}"
ParamTxBx="{Binding Path=LiElev,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LiCompLenTxBl}"
ParamTxBx="{Binding Path=LiCompLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadOutTypeTxBl}"
ParamTxBl="{Binding LeadOutTypeTxBl}" ParamCmBxList="{Binding Path=LeadOutTypeList,
ParamCmBxList="{Binding Path=LeadOutTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel>
<StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding EndAddLenTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=EndAddLen,
ParamTxBl="{Binding EndAddLenTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=EndAddLen, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LoTangTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=LoTang,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding LoTangTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=LoTang, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding LoPerpTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=LoPerp,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding LoPerpTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=LoPerp, <EgtWPFLib5:StringParamV ParamTxBl="{Binding LoElevTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=LoElev,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding LoElevTxBl}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LoCompLenTxBl}"
ParamTxBx="{Binding Path=LoElev, ParamTxBx="{Binding Path=LoCompLen,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV </StackPanel>
ParamTxBl="{Binding LoCompLenTxBl}" </Expander>
ParamTxBx="{Binding Path=LoCompLen, <Expander Style="{StaticResource ExpanderStyle}">
UpdateSourceTrigger=PropertyChanged, <Expander.Header>
ValidatesOnDataErrors=True}" <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadOutTypeTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamCmBxList="{Binding Path=LeadOutTypeList,
</StackPanel> UpdateSourceTrigger=PropertyChanged,
</Expander> ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndAddLenTxBl}"
ParamTxBx="{Binding Path=EndAddLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LoTangTxBl}"
ParamTxBx="{Binding Path=LoTang,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LoPerpTxBl}"
ParamTxBx="{Binding Path=LoPerp,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LoElevTxBl}"
ParamTxBx="{Binding Path=LoElev,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LoCompLenTxBl}"
ParamTxBx="{Binding Path=LoCompLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:CheckParamV <EgtWPFLib5:CheckParamV ParamTxBl="{Binding LeaveTabTxBl}"
ParamTxBl="{Binding LeaveTabTxBl}" ParamChBx="{Binding Path=LeaveTab,
ParamChBx="{Binding Path=LeaveTab, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource CheckParamV_Margin}"/>
Style="{DynamicResource CheckParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel Margin="2">
<StackPanel Margin="2"> <EgtWPFLib5:StringParamV ParamTxBl="{Binding TabLenTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=TabLen,
ParamTxBl="{Binding TabLenTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=TabLen, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, ParamErrorMsg="{Binding Path=TabLenErrorMsg}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
ParamErrorMsg="{Binding Path=TabLenErrorMsg}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding TabHeightTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=TabHeight,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding TabHeightTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=TabHeight, ParamErrorMsg="{Binding Path=TabHeightErrorMsg}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding TabAngleTxBl}"
ParamErrorMsg="{Binding Path=TabHeightErrorMsg}" ParamTxBx="{Binding Path=TabAngle,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding TabAngleTxBl}" ParamErrorMsg="{Binding Path=TabAngleErrorMsg}"
ParamTxBx="{Binding Path=TabAngle, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding TabDistTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=TabDist,
ParamErrorMsg="{Binding Path=TabAngleErrorMsg}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV ParamErrorMsg="{Binding Path=TabDistErrorMsg}"
ParamTxBl="{Binding TabDistTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=TabDist, <EgtWPFLib5:StringParamV ParamTxBl="{Binding TabMinTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=TabMin,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
ParamErrorMsg="{Binding Path=TabDistErrorMsg}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> ParamErrorMsg="{Binding Path=TabMinErrorMsg}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding TabMinTxBl}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding TabMaxTxBl}"
ParamTxBx="{Binding Path=TabMin, ParamTxBx="{Binding Path=TabMax,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=TabMinErrorMsg}" ParamErrorMsg="{Binding Path=TabMaxErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV </StackPanel>
ParamTxBl="{Binding TabMaxTxBl}" </Expander>
ParamTxBx="{Binding Path=TabMax, <Expander Style="{StaticResource ExpanderStyle}">
UpdateSourceTrigger=PropertyChanged, <Expander.Header>
ValidatesOnDataErrors=True}" <EgtWPFLib5:CheckParamV ParamTxBl="{Binding LeaveTabTxBl}"
ParamErrorMsg="{Binding Path=TabMaxErrorMsg}" ParamChBx="{Binding Path=LeaveTab,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
</StackPanel> ValidatesOnDataErrors=True}"
</Expander> Style="{DynamicResource CheckParamV_Margin}"/>
</Expander.Header>
<StackPanel Margin="2">
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TabLenTxBl}"
ParamTxBx="{Binding Path=TabLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=TabLenErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TabHeightTxBl}"
ParamTxBx="{Binding Path=TabHeight,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=TabHeightErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TabAngleTxBl}"
ParamTxBx="{Binding Path=TabAngle,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=TabAngleErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TabDistTxBl}"
ParamTxBx="{Binding Path=TabDist,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=TabDistErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TabMinTxBl}"
ParamTxBx="{Binding Path=TabMin,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=TabMinErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TabMaxTxBl}"
ParamTxBx="{Binding Path=TabMax,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=TabMaxErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/> <TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header> </Expander.Header>
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBl="{Binding SpeedTxBl}" ParamTxBx="{Binding Path=Speed,
ParamTxBx="{Binding Path=Speed, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=Feed,
ParamTxBl="{Binding FeedTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=Feed, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=TipFeed,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding TipFeedTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=TipFeed, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=StartFeed,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding StartFeedTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=StartFeed, <EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=EndFeed,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding EndFeedTxBl}" </StackPanel>
ParamTxBx="{Binding Path=EndFeed, </Expander>
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" <Interactivity:Interaction.Behaviors>
Style="{DynamicResource StringParamV_Margin}"/> <EgtCAM5:AutomaticCloseExpander/>
</StackPanel> </Interactivity:Interaction.Behaviors>
</Expander> </StackPanel>
<Interactivity:Interaction.Behaviors> </StackPanel>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class BeamMillingParameterExpanderV Public Class BeamMillingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class BeamMillingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class BeamMillingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class BeamMillingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -1,10 +1,10 @@
<UserControl x:Class="ChiselingParameterExpanderV" <UserControl x:Class="ChiselingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
@@ -75,165 +75,232 @@
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid> </UniformGrid>
<EgtWPFLib5:CheckParamV <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
ParamTxBl="{Binding InvertTxBl}" ParamChBx="{Binding Path=Invert,
ParamChBx="{Binding Path=Invert, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource CheckParamV_Margin}"/>
Style="{DynamicResource CheckParamV_Margin}"/> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding WorkSideTxBl}"
<EgtWPFLib5:ComboParamV ParamCmBxList="{Binding Path=WorkSideList,
ParamTxBl="{Binding WorkSideTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamCmBxList="{Binding Path=WorkSideList, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
ValidatesOnDataErrors=True}" Style="{DynamicResource ComboParamV_Margin}"/>
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}" <UniformGrid Columns="2">
Style="{DynamicResource ComboParamV_Margin}"/> <TextBlock Text="{Binding UserNotesTxBl}"
<UniformGrid Columns="2"> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TextBlock Text="{Binding UserNotesTxBl}" <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}" <EgtWPFLib5:EgtTextBox.ToolTip>
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"> <TextBlock Text="{Binding UserNotesTooltip}"/>
<EgtWPFLib5:EgtTextBox.ToolTip> </EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/> </EgtWPFLib5:EgtTextBox>
</EgtWPFLib5:EgtTextBox.ToolTip> <TextBlock Text="{Binding SystemNotesTxBl}"
</EgtWPFLib5:EgtTextBox> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
<TextBlock Text="{Binding SystemNotesTxBl}" Visibility="{Binding SysNotes_Visibility}"/>
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}" <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding SysNotes_Visibility}"/> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}" Visibility="{Binding SysNotes_Visibility}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}" IsReadOnly="True"/>
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> </StackPanel>
<StackPanel Name="AutomaticCloseExpanderStackPanel"> <StackPanel Name="AutomaticCloseExpanderStackPanel">
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
ParamTxBl="{Binding StartPosTxBl}" ParamTxBx="{Binding Path=StartPos,
ParamTxBx="{Binding Path=StartPos, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding ReturnPosTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=ReturnPos,
ParamTxBl="{Binding ReturnPosTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=ReturnPos, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=StepPar,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding StepParTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=StepPar, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=OffSr,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding OffsetSrTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=OffSr, <EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=OffSl,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding OffsetSlTxBl}" </StackPanel>
ParamTxBx="{Binding Path=OffSl, </Expander>
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <Expander.Header>
<EgtWPFLib5:CheckParamV <UniformGrid Columns="2">
ParamTxBl="{Binding InvertToolDirTxBl}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamChBx="{Binding Path=InvertToolDir, Margin="2.5"/>
UpdateSourceTrigger=PropertyChanged, <Button Command="{Binding ShowNoteListComboCommand}"
ValidatesOnDataErrors=True}" ToolTip="{Binding ShowNoteToolTip}"
Style="{DynamicResource CheckParamV_Margin}"/> IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
<EgtWPFLib5:StringParamV Visibility="{Binding ShowNoteListCombo_Visibility}"
ParamTxBl="{Binding InitAngsTxBl}" Grid.Column="1"
ParamTxBx="{Binding Path=InitAngs, HorizontalAlignment="Right"
UpdateSourceTrigger=PropertyChanged, Margin="2.5,2.5,7,2.5"
ValidatesOnDataErrors=True}" Width="20">
Style="{DynamicResource StringParamV_Margin}"/> <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
<EgtWPFLib5:StringParamV </Button>
ParamTxBl="{Binding BlockedAxisTxBl}" </UniformGrid>
ParamTxBx="{Binding Path=BlockedAxis, </Expander.Header>
UpdateSourceTrigger=PropertyChanged, <Grid>
ValidatesOnDataErrors=True}" <Grid.RowDefinitions>
Style="{DynamicResource StringParamV_Margin}"/> <RowDefinition Height="1*"/>
<EgtWPFLib5:ComboParamV <RowDefinition Height="Auto"/>
ParamTxBl="{Binding SolChoiceTypeTxBl}" </Grid.RowDefinitions>
ParamCmBxList="{Binding Path=SolChoiceTypeList, <StackPanel>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertToolDirTxBl}"
ValidatesOnDataErrors=True, ParamChBx="{Binding Path=InvertToolDir,
Mode=OneWay}" UpdateSourceTrigger=PropertyChanged,
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" ValidatesOnDataErrors=True}"
Style="{DynamicResource ComboParamV_Margin}"/> Style="{DynamicResource CheckParamV_Margin}"/>
</StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
</Expander> ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Header="{Binding LeadOutTypeMsg}" Name="LeadOutType" <Expander Header="{Binding LeadOutTypeMsg}" Name="LeadOutType"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding EndAddLenTxBl}"
ParamTxBl="{Binding EndAddLenTxBl}" ParamTxBx="{Binding Path=EndAddLen,
ParamTxBx="{Binding Path=EndAddLen, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> </StackPanel>
</StackPanel> </Expander>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class ChiselingParameterExpanderV Public Class ChiselingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class ChiselingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class ChiselingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class ChiselingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -0,0 +1,286 @@
<UserControl x:Class="FiveAxisMachinigParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
<sys:Int32 x:Key="Invert">0</sys:Int32>
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
<sys:Int32 x:Key="StepType">8</sys:Int32>
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
<sys:Int32 x:Key="Speed">10</sys:Int32>
<sys:Int32 x:Key="Feed">11</sys:Int32>
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
<sys:Int32 x:Key="OffSr">15</sys:Int32>
<sys:Int32 x:Key="OffSl">16</sys:Int32>
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
<sys:Int32 x:Key="Approx">18</sys:Int32>
<sys:Int32 x:Key="StartPos">19</sys:Int32>
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
<sys:Int32 x:Key="StepPar">23</sys:Int32>
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
<sys:Int32 x:Key="TabLen">25</sys:Int32>
<sys:Int32 x:Key="TabDist">26</sys:Int32>
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
<sys:Int32 x:Key="LiTang">29</sys:Int32>
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
<sys:Int32 x:Key="LiElev">31</sys:Int32>
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
<sys:Int32 x:Key="LoTang">33</sys:Int32>
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
<sys:Int32 x:Key="LoElev">35</sys:Int32>
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
<sys:Int32 x:Key="SideStep">41</sys:Int32>
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
<sys:Int32 x:Key="NamePar">43</sys:Int32>
<sys:Int32 x:Key="Tool">44</sys:Int32>
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
<sys:Int32 x:Key="SubType">49</sys:Int32>
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
</UserControl.Resources>
<StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid>
<EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
ParamChBx="{Binding Path=Invert,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource CheckParamV_Margin}"/>
<UniformGrid Columns="2">
<TextBlock Text="{Binding UserNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/>
</EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox>
<TextBlock Text="{Binding SystemNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Visibility="{Binding SysNotes_Visibility}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid>
</StackPanel>
<StackPanel Name="AutomaticCloseExpanderStackPanel">
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
ParamTxBx="{Binding Path=StartPos,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SubTypeTxBl}"
ParamCmBxList="{Binding Path=SubTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedSubType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
ParamTxBx="{Binding Path=OffSr,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
ParamTxBx="{Binding Path=OffSl,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<Expander.Header>
<UniformGrid Columns="2">
<TextBlock Text="{Binding AdvancedParamMsg}"
Margin="2.5"/>
<Button Command="{Binding ShowNoteListComboCommand}"
ToolTip="{Binding ShowNoteToolTip}"
IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Visibility="{Binding ShowNoteListCombo_Visibility}"
Grid.Column="1"
HorizontalAlignment="Right"
Margin="2.5,2.5,7,2.5"
Width="20">
<Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
</Button>
</UniformGrid>
</Expander.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<StackPanel>
<EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertToolDirTxBl}"
ParamChBx="{Binding Path=InvertToolDir,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource CheckParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value, UpdateSourceTrigger=PropertyChanged}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=SpeedErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl>
@@ -0,0 +1,95 @@
Imports EgtWPFLib5.EgtFloating
Public Class FiveAxisMachinigParameterExpanderV
Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then
m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False
End If
CalculateOperationParametersStackPanelMaxHeight()
End Sub
Dim m_bSizeChanging As Boolean = False
Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return
m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight()
m_bSizeChanging = False
End Sub
Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean)
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
If IndexedExpander.IsExpanded Then
OpenedExpanderList.Add(True)
IndexedExpander.IsExpanded = False
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
' Sottraggo anche i padding
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
Else
OpenedExpanderList.Add(False)
End If
Else
OpenedExpanderList.Add(False)
End If
Next
Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
If OpenedExpanderList(Index) Then
IndexedExpander.IsExpanded = True
End If
End If
Next
End Sub
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
Dim target As DependencyObject = dependencyObject
Do
target = LogicalTreeHelper.GetParent(target)
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
If IsNothing(target) Then
target = dependencyObject
Do
target = VisualTreeHelper.GetParent(target)
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
End If
Return TryCast(target, T)
End Function
Private Sub StackPanel_PreviewKeyDown(sender As Object, e As KeyEventArgs)
If e.Key = Key.Tab Then
Dim s As EgtWPFLib5.StringParamV = TryCast(e.OriginalSource, EgtWPFLib5.StringParamV)
If Not IsNothing(s) Then
s.MoveFocus(New TraversalRequest(FocusNavigationDirection.Next))
End If
e.Handled = True
End If
End Sub
End Class
@@ -1,10 +1,10 @@
<UserControl x:Class="GenMachiningParameterExpanderV" <UserControl x:Class="GenMachiningParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
@@ -75,142 +75,212 @@
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid> </UniformGrid>
<EgtWPFLib5:CheckParamV <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
ParamTxBl="{Binding InvertTxBl}" ParamChBx="{Binding Path=Invert,
ParamChBx="{Binding Path=Invert, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource CheckParamV_Margin}"/>
Style="{DynamicResource CheckParamV_Margin}"/> <UniformGrid Columns="2">
<UniformGrid Columns="2"> <TextBlock Text="{Binding UserNotesTxBl}"
<TextBlock Text="{Binding UserNotesTxBl}" Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/> <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"> <EgtWPFLib5:EgtTextBox.ToolTip>
<EgtWPFLib5:EgtTextBox.ToolTip> <TextBlock Text="{Binding UserNotesTooltip}"/>
<TextBlock Text="{Binding UserNotesTooltip}"/> </EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox.ToolTip> </EgtWPFLib5:EgtTextBox>
</EgtWPFLib5:EgtTextBox> <TextBlock Text="{Binding SystemNotesTxBl}"
<TextBlock Text="{Binding SystemNotesTxBl}" Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}" Visibility="{Binding SysNotes_Visibility}"/>
Visibility="{Binding SysNotes_Visibility}"/> <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}" Visibility="{Binding SysNotes_Visibility}"
Visibility="{Binding SysNotes_Visibility}" IsReadOnly="True"/>
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> </StackPanel>
<StackPanel Name="AutomaticCloseExpanderStackPanel"> <StackPanel Name="AutomaticCloseExpanderStackPanel">
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
ParamTxBl="{Binding StartPosTxBl}" ParamTxBx="{Binding Path=StartPos,
ParamTxBx="{Binding Path=StartPos, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding SubTypeTxBl}"
<EgtWPFLib5:ComboParamV ParamCmBxList="{Binding Path=SubTypeList,
ParamTxBl="{Binding SubTypeTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamCmBxList="{Binding Path=SubTypeList, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxSelIndex="{Binding Path=SelectedSubType}"
ValidatesOnDataErrors=True}" Style="{DynamicResource ComboParamV_Margin}"/>
ParamCmBxSelIndex="{Binding Path=SelectedSubType}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
Style="{DynamicResource ComboParamV_Margin}"/> ParamTxBx="{Binding Path=OffSr,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding OffsetSrTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=OffSr, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=OffSl,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding OffsetSlTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=OffSl, </StackPanel>
UpdateSourceTrigger=PropertyChanged, </Expander>
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <Expander.Header>
<EgtWPFLib5:CheckParamV <UniformGrid Columns="2">
ParamTxBl="{Binding InvertToolDirTxBl}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamChBx="{Binding Path=InvertToolDir, Margin="2.5"/>
UpdateSourceTrigger=PropertyChanged, <Button Command="{Binding ShowNoteListComboCommand}"
ValidatesOnDataErrors=True}" ToolTip="{Binding ShowNoteToolTip}"
Style="{DynamicResource CheckParamV_Margin}"/> IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
<EgtWPFLib5:StringParamV Visibility="{Binding ShowNoteListCombo_Visibility}"
ParamTxBl="{Binding InitAngsTxBl}" Grid.Column="1"
ParamTxBx="{Binding Path=InitAngs, HorizontalAlignment="Right"
UpdateSourceTrigger=PropertyChanged, Margin="2.5,2.5,7,2.5"
ValidatesOnDataErrors=True}" Width="20">
Style="{DynamicResource StringParamV_Margin}"/> <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
<EgtWPFLib5:StringParamV </Button>
ParamTxBl="{Binding BlockedAxisTxBl}" </UniformGrid>
ParamTxBx="{Binding Path=BlockedAxis, </Expander.Header>
UpdateSourceTrigger=PropertyChanged, <Grid>
ValidatesOnDataErrors=True}" <Grid.RowDefinitions>
Style="{DynamicResource StringParamV_Margin}"/> <RowDefinition Height="1*"/>
<EgtWPFLib5:ComboParamV <RowDefinition Height="Auto"/>
ParamTxBl="{Binding SolChoiceTypeTxBl}" </Grid.RowDefinitions>
ParamCmBxList="{Binding Path=SolChoiceTypeList, <StackPanel>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertToolDirTxBl}"
ValidatesOnDataErrors=True, ParamChBx="{Binding Path=InvertToolDir,
Mode=OneWay}" UpdateSourceTrigger=PropertyChanged,
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" ValidatesOnDataErrors=True}"
Style="{DynamicResource ComboParamV_Margin}"/> Style="{DynamicResource CheckParamV_Margin}"/>
</StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
</Expander> ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=SpeedErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=SpeedErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class GenMachiningParameterExpanderV Public Class GenMachiningParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class GenMachiningParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class GenMachiningParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class GenMachiningParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -1,10 +1,10 @@
<UserControl x:Class="MachiningParameterExpanderV" <UserControl x:Class="MachiningParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
@@ -73,26 +73,38 @@
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32> <sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
<sys:Int32 x:Key="TabMax">62</sys:Int32> <sys:Int32 x:Key="TabMax">62</sys:Int32>
<sys:Int32 x:Key="TabMin">63</sys:Int32> <sys:Int32 x:Key="TabMin">63</sys:Int32>
</UserControl.Resources> </UserControl.Resources>
<StackPanel> <StackPanel>
<ContentControl Content="{Binding Path=ParamExpanderPageV}" /> <ContentControl Content="{Binding Path=ParamExpanderPageV}" />
<Button Name="ApplyMachBtn" Height="30" Content="{Binding UpdateMachiningBtnMsg}" <Button Name="ApplyMachBtn" Height="30" Content="{Binding UpdateMachiningBtnMsg}"
Command="{Binding UpdateMachiningCommand}" Background="{Binding UpdateMachiningBtn_Background}"/> Command="{Binding UpdateMachiningCommand}" Background="{Binding UpdateMachiningBtn_Background}"/>
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.RowDefinitions>
<ColumnDefinition Width="2*"/> <RowDefinition Height="1*"/>
<ColumnDefinition Width="1*"/> <RowDefinition Height="Auto"/>
<ColumnDefinition Width="1*"/> </Grid.RowDefinitions>
</Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ToggleButton Name="ViewToolBtn" Grid.Column="0" Height="30" Content="{Binding ViewToolBtnMsg}" <ColumnDefinition Width="1*"/>
IsChecked="{Binding ViewTool}" /> </Grid.ColumnDefinitions>
<Button Name="NextStepToolBtn" Grid.Column="1" Height="30" Content="{Binding NextStepToolBtnMsg}"
Command="{Binding NextStepToolCommand}" IsEnabled="{Binding IsChecked, ElementName=ViewToolBtn}"/> <CheckBox Name="ViewToolBtn"
<Button Name="PrevStepToolBtn" Grid.Column="2" Height="30" Content="{Binding PrevStepToolBtnMsg}" Content="{Binding ViewToolBtnMsg}"
Command="{Binding PrevStepToolCommand}" IsEnabled="{Binding IsChecked, ElementName=ViewToolBtn}"/> IsChecked="{Binding ViewTool}"
</Grid> Style="{StaticResource ViewTool_CheckBox}"/>
</StackPanel>
<Slider Grid.Row="1"
x:Name="SliderV"
Value="{Binding SliderValue}"
IsEnabled="{Binding IsChecked, ElementName=ViewToolBtn}"
TickFrequency="{Binding SliderTick}"
Minimum="1"
Maximum="{Binding SliderScale}"
IsSnapToTickEnabled="False"
Style="{StaticResource SliderValue_Slider}"/>
</Grid>
</StackPanel>
</UserControl> </UserControl>
@@ -3,81 +3,22 @@ Imports EgtWPFLib5.EgtFloating
Public Class MachiningParameterExpanderV Public Class MachiningParameterExpanderV
'Private EgtFloatingTray As EgtFloatingTray Sub New()
'Private EgtFloatingPanel As EgtFloatingPanel
'Private m_bFirst As Boolean = True ' La chiamata è richiesta dalla finestra di progettazione.
InitializeComponent()
'Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded ' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent().
' If m_bFirst Then
' EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
' EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
' AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
' PanelHeight = EgtFloatingPanel.ActualHeight
' Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
' m_bFirst = False
' End If
' CalculateOperationParametersStackPanelMaxHeight()
'End Sub
'Dim m_bSizeChanging As Boolean = False ' Associo il gestore evento m_EventFocusOnSlider all'evento generato da FocusOnSlider
AddHandler Map.refMachiningParameterExpanderVM.m_EventFocusOnSlider, AddressOf FocusOnSlider
End Sub
'Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) ''' <summary>
' If m_bSizeChanging Then Return ''' Funzione che mette il focus allo slider
' m_bSizeChanging = True ''' </summary>
' CalculateOperationParametersStackPanelMaxHeight() Friend Sub FocusOnSlider()
' m_bSizeChanging = False Me.SliderV.Focus()
'End Sub End Sub
'Dim PanelHeight As Double = 0
'Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
'Private Sub CalculateOperationParametersStackPanelMaxHeight()
' Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' Dim OpenedExpanderList As New List(Of Boolean)
' For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
' If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
' Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
' If IndexedExpander.IsExpanded Then
' OpenedExpanderList.Add(True)
' IndexedExpander.IsExpanded = False
' Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
' CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
' AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
' ' Sottraggo anche i padding
' AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
' Else
' OpenedExpanderList.Add(False)
' End If
' Else
' OpenedExpanderList.Add(False)
' End If
' Next
' Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
' AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
' For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
' If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
' Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
' If OpenedExpanderList(Index) Then
' IndexedExpander.IsExpanded = True
' End If
' End If
' Next
'End Sub
'' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
'Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
' Dim target As DependencyObject = dependencyObject
' Do
' target = LogicalTreeHelper.GetParent(target)
' Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
' If IsNothing(target) Then
' target = dependencyObject
' Do
' target = VisualTreeHelper.GetParent(target)
' Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
' End If
' Return TryCast(target, T)
'End Function
End Class End Class
@@ -6,6 +6,11 @@ Imports EgtWPFLib5
Public Class MachiningParameterExpanderVM Public Class MachiningParameterExpanderVM
Inherits VMBase Inherits VMBase
''' <summary>
''' Evento che permette di mettere il focus sullo slider
''' </summary>
Friend Event m_EventFocusOnSlider()
Private WithEvents m_CurrOperation As MachiningTreeViewItem Private WithEvents m_CurrOperation As MachiningTreeViewItem
Public Property CurrOperation As MachiningTreeViewItem Public Property CurrOperation As MachiningTreeViewItem
Get Get
@@ -50,7 +55,6 @@ Public Class MachiningParameterExpanderVM
End Property End Property
Private m_bPreviewTool As Boolean = False Private m_bPreviewTool As Boolean = False
Private m_nPtEntId As Integer = GDB_ID.NULL
Public Property ViewTool As Boolean Public Property ViewTool As Boolean
Get Get
Return m_bPreviewTool Return m_bPreviewTool
@@ -58,16 +62,80 @@ Public Class MachiningParameterExpanderVM
Set(value As Boolean) Set(value As Boolean)
If value Then If value Then
EgtPreparePreviewMachiningTool() EgtPreparePreviewMachiningTool()
m_nPtEntId = EgtPreviewMachiningTool(GDB_ID.NULL, MCH_PTM.AFTER)
m_bPreviewTool = True m_bPreviewTool = True
ResetSliderValue()
Else Else
EgtRemovePreviewMachiningTool() EgtRemovePreviewMachiningTool()
m_bPreviewTool = False m_bPreviewTool = False
ResetSliderValue()
End If End If
EgtDraw() EgtDraw()
NotifyPropertyChanged("ViewTool")
End Set End Set
End Property End Property
Friend Sub SetViewTool(value As Boolean)
ViewTool = value
NotifyPropertyChanged("ViewTool")
End Sub
' Slider per muovere l'utensile in aggiunta ai pulsanti indietro e avanti
Private m_SliderScale As Integer = 100
Public ReadOnly Property SliderScale As Integer
Get
Return m_SliderScale
End Get
End Property
Friend Sub SetSliderScale(value As Integer)
m_SliderScale = Math.Max( value, 1)
If m_SliderScale <= 10 Then
m_SliderTick = 1
Else
m_SliderTick = CInt( m_SliderScale / 10)
End If
NotifyPropertyChanged( NameOf(SliderScale))
NotifyPropertyChanged( NameOf(SliderTick))
End Sub
Private m_SliderTick As Integer = 10
Public ReadOnly Property SliderTick As Integer
Get
Return m_SliderTick
End Get
End Property
Private m_nPtEntId As Integer = GDB_ID.NULL
Private m_SliderValue As Integer = 1
Public Property SliderValue As Integer
Get
Return m_SliderValue
End Get
Set(value As Integer)
If m_bPreviewTool Then
Dim nId As Integer = EgtPreviewMachiningTool(m_nPtEntId, value - m_SliderValue)
If nId <> GDB_ID.NULL Then m_nPtEntId = nId
EgtDraw()
End If
m_SliderValue = value
End Set
End Property
Friend Sub ResetSliderValue()
If m_bPreviewTool Then
m_nPtEntId = EgtPreviewMachiningTool(GDB_ID.NULL, MCH_PTM.AFTER)
Else
m_nPtEntId = GDB_ID.NULL
End If
m_SliderValue = 1
NotifyPropertyChanged(NameOf(SliderValue))
End Sub
Friend Sub SetSliderValue(value As Integer)
Dim nOldSliderValue As Integer = m_SliderValue
m_SliderValue = Math.Min( Math.Max( m_SliderValue + value, 1), m_SliderScale)
Dim nStep As Integer = m_SliderValue - nOldSliderValue
If nStep = 0 Then Return
Dim nId As Integer = EgtPreviewMachiningTool(m_nPtEntId, nStep)
If nId <> GDB_ID.NULL Then m_nPtEntId = nId
EgtDraw()
NotifyPropertyChanged(NameOf(SliderValue))
End Sub
Dim WoodDrillParamExpanderV As WoodDrillingParameterExpanderV Dim WoodDrillParamExpanderV As WoodDrillingParameterExpanderV
Dim WoodSawParamExpanderV As WoodSawingParameterExpanderV Dim WoodSawParamExpanderV As WoodSawingParameterExpanderV
@@ -84,6 +152,8 @@ Public Class MachiningParameterExpanderVM
Dim StoneDrillParamExpanderV As StoneDrillingParameterExpanderV Dim StoneDrillParamExpanderV As StoneDrillingParameterExpanderV
Dim SurfFinishParamExpanderV As SurfFinishingParameterExpanderV Dim SurfFinishParamExpanderV As SurfFinishingParameterExpanderV
Dim WjParamExpanderV As WaterjettingParameterExpanderV Dim WjParamExpanderV As WaterjettingParameterExpanderV
Dim FiveAxExpanderV As FiveAxisMachinigParameterExpanderV
Dim SurfRoughExpanderV As SurfRoughingParameterExpanderV
Private Sub Dummy() Private Sub Dummy()
@@ -106,24 +176,11 @@ Public Class MachiningParameterExpanderVM
EgtGetMachiningParam(MCH_MP.TYPE, nType) EgtGetMachiningParam(MCH_MP.TYPE, nType)
m_CurrOperation = New MachiningTreeViewItem(sName, DirectCast(nType, MCH_MY)) m_CurrOperation = New MachiningTreeViewItem(sName, DirectCast(nType, MCH_MY))
WoodDrillParamExpanderV.DataContext = Nothing
WoodSawParamExpanderV.DataContext = Nothing
WoodMillParamExpanderV.DataContext = Nothing
BeamMillParamExpanderV.DataContext = Nothing
PocketParamExpanderV.DataContext = Nothing
MortiseParamExpanderV.DataContext = Nothing
GenMachinParamExpanderV.DataContext = Nothing
ChiselParamExpanderV.DataContext = Nothing
StoneSawParamExpanderV.DataContext = Nothing
StoneSawFinishParamExpanderV.DataContext = Nothing
StoneSawRoughParamExpanderV.DataContext = Nothing
StoneMillParamExpanderV.DataContext = Nothing
StoneDrillParamExpanderV.DataContext = Nothing
SurfFinishParamExpanderV.DataContext = Nothing
WjParamExpanderV.DataContext = Nothing
m_CurrOperation.ReadOperationParam() m_CurrOperation.ReadOperationParam()
' Riferimento a operazione selezionata
EgtWPFLib5.MachiningTreeViewItem.sh_SelMach = m_CurrOperation
IsModified(False) IsModified(False)
ErrorOnOperation(False) ErrorOnOperation(False)
@@ -136,35 +193,44 @@ Public Class MachiningParameterExpanderVM
Select Case nType Select Case nType
Case MCH_OY.DRILLING Case MCH_OY.DRILLING
If MatType = MaterialType.STONE Then If MatType = MaterialType.STONE Then
If IsNothing(StoneDrillParamExpanderV) Then StoneDrillParamExpanderV = New StoneDrillingParameterExpanderV
StoneDrillParamExpanderV.DataContext = m_CurrOperation StoneDrillParamExpanderV.DataContext = m_CurrOperation
Return StoneDrillParamExpanderV Return StoneDrillParamExpanderV
Else Else
If IsNothing(WoodDrillParamExpanderV) Then WoodDrillParamExpanderV = New WoodDrillingParameterExpanderV
WoodDrillParamExpanderV.DataContext = m_CurrOperation WoodDrillParamExpanderV.DataContext = m_CurrOperation
Return WoodDrillParamExpanderV Return WoodDrillParamExpanderV
End If End If
Case MCH_OY.SAWING Case MCH_OY.SAWING
If MatType = MaterialType.STONE Then If MatType = MaterialType.STONE Then
If IsNothing(StoneSawParamExpanderV) Then StoneSawParamExpanderV = New StoneSawingParameterExpanderV
StoneSawParamExpanderV.DataContext = m_CurrOperation StoneSawParamExpanderV.DataContext = m_CurrOperation
Return StoneSawParamExpanderV Return StoneSawParamExpanderV
Else Else
If IsNothing(WoodSawParamExpanderV) Then WoodSawParamExpanderV = New WoodSawingParameterExpanderV
WoodSawParamExpanderV.DataContext = m_CurrOperation WoodSawParamExpanderV.DataContext = m_CurrOperation
Return WoodSawParamExpanderV Return WoodSawParamExpanderV
End If End If
Case MCH_OY.MILLING Case MCH_OY.MILLING
If MatType = MaterialType.BEAM Then If MatType = MaterialType.BEAM Then
If IsNothing(BeamMillParamExpanderV) Then BeamMillParamExpanderV = New BeamMillingParameterExpanderV
BeamMillParamExpanderV.DataContext = m_CurrOperation BeamMillParamExpanderV.DataContext = m_CurrOperation
Return BeamMillParamExpanderV Return BeamMillParamExpanderV
ElseIf MatType = MaterialType.STONE Then ElseIf MatType = MaterialType.STONE Then
If IsNothing(StoneMillParamExpanderV) Then StoneMillParamExpanderV = New StoneMillingParameterExpanderV
StoneMillParamExpanderV.DataContext = m_CurrOperation StoneMillParamExpanderV.DataContext = m_CurrOperation
Return StoneMillParamExpanderV Return StoneMillParamExpanderV
Else Else
If IsNothing(WoodMillParamExpanderV) Then WoodMillParamExpanderV = New WoodMillingParameterExpanderV
WoodMillParamExpanderV.DataContext = m_CurrOperation WoodMillParamExpanderV.DataContext = m_CurrOperation
Return WoodMillParamExpanderV Return WoodMillParamExpanderV
End If End If
Case MCH_OY.SAWROUGHING Case MCH_OY.SAWROUGHING
If IsNothing(StoneSawRoughParamExpanderV) Then StoneSawRoughParamExpanderV = New StoneSawRoughingParameterExpanderV
StoneSawRoughParamExpanderV.DataContext = m_CurrOperation StoneSawRoughParamExpanderV.DataContext = m_CurrOperation
Return StoneSawRoughParamExpanderV Return StoneSawRoughParamExpanderV
Case MCH_OY.SAWFINISHING Case MCH_OY.SAWFINISHING
If IsNothing(StoneSawFinishParamExpanderV) Then StoneSawFinishParamExpanderV = New StoneSawFinishingParameterExpanderV
StoneSawFinishParamExpanderV.DataContext = m_CurrOperation StoneSawFinishParamExpanderV.DataContext = m_CurrOperation
Return StoneSawFinishParamExpanderV Return StoneSawFinishParamExpanderV
Case MCH_OY.POCKETING Case MCH_OY.POCKETING
@@ -180,23 +246,37 @@ Public Class MachiningParameterExpanderVM
' se utensile di tipo POLISHING rendo visibili i campi sugli epicicli ' se utensile di tipo POLISHING rendo visibili i campi sugli epicicli
If nToolType = MCH_TY.MILL_POLISHING Then m_CurrOperation.Epicycles_Visibility = Visibility.Visible If nToolType = MCH_TY.MILL_POLISHING Then m_CurrOperation.Epicycles_Visibility = Visibility.Visible
End If End If
If IsNothing(PocketParamExpanderV) Then PocketParamExpanderV = New PocketingParameterExpanderV
PocketParamExpanderV.DataContext = m_CurrOperation PocketParamExpanderV.DataContext = m_CurrOperation
Return PocketParamExpanderV Return PocketParamExpanderV
Case MCH_OY.MORTISING Case MCH_OY.MORTISING
If IsNothing(MortiseParamExpanderV) Then MortiseParamExpanderV = New MortisingParameterExpanderV
MortiseParamExpanderV.DataContext = m_CurrOperation MortiseParamExpanderV.DataContext = m_CurrOperation
Return MortiseParamExpanderV Return MortiseParamExpanderV
Case MCH_OY.GENMACHINING Case MCH_OY.GENMACHINING
If IsNothing(GenMachinParamExpanderV) Then GenMachinParamExpanderV = New GenMachiningParameterExpanderV
GenMachinParamExpanderV.DataContext = m_CurrOperation GenMachinParamExpanderV.DataContext = m_CurrOperation
Return GenMachinParamExpanderV Return GenMachinParamExpanderV
Case MCH_OY.CHISELING Case MCH_OY.CHISELING
If IsNothing(ChiselParamExpanderV) Then ChiselParamExpanderV = New ChiselingParameterExpanderV
ChiselParamExpanderV.DataContext = m_CurrOperation ChiselParamExpanderV.DataContext = m_CurrOperation
Return ChiselParamExpanderV Return ChiselParamExpanderV
Case MCH_OY.SURFFINISHING Case MCH_OY.SURFFINISHING
If IsNothing(SurfFinishParamExpanderV) Then SurfFinishParamExpanderV = New SurfFinishingParameterExpanderV
SurfFinishParamExpanderV.DataContext = m_CurrOperation SurfFinishParamExpanderV.DataContext = m_CurrOperation
Return SurfFinishParamExpanderV Return SurfFinishParamExpanderV
Case MCH_OY.WATERJETTING Case MCH_OY.WATERJETTING
If IsNothing(WjParamExpanderV) Then WjParamExpanderV = New WaterjettingParameterExpanderV
WjParamExpanderV.DataContext = m_CurrOperation WjParamExpanderV.DataContext = m_CurrOperation
Return WjParamExpanderV Return WjParamExpanderV
Case MCH_OY.FIVEAXISMILLING
If IsNothing(FiveAxExpanderV) Then FiveAxExpanderV = New FiveAxisMachinigParameterExpanderV
FiveAxExpanderV.DataContext = m_CurrOperation
Return FiveAxExpanderV
Case MCH_OY.SURFROUGHING
If IsNothing(SurfRoughExpanderV) Then SurfRoughExpanderV = New SurfRoughingParameterExpanderV
SurfRoughExpanderV.DataContext = m_CurrOperation
Return SurfRoughExpanderV
End Select End Select
'MachiningParameterExpanderItem.ReadOperationParam() 'MachiningParameterExpanderItem.ReadOperationParam()
@@ -242,84 +322,25 @@ Public Class MachiningParameterExpanderVM
Sub New() Sub New()
EgtWPFLib5.MachiningDbWindowVM.m_sMachineIniPath = IniFile.m_sCurrMachIniFilePath EgtWPFLib5.MachiningDbWindowVM.m_sMachineIniPath = IniFile.m_sCurrMachIniFilePath
Map.SetRefMachiningParameterExpanderVM(Me)
WoodDrillParamExpanderV = New WoodDrillingParameterExpanderV
WoodSawParamExpanderV = New WoodSawingParameterExpanderV
WoodMillParamExpanderV = New WoodMillingParameterExpanderV
BeamMillParamExpanderV = New BeamMillingParameterExpanderV
PocketParamExpanderV = New PocketingParameterExpanderV
MortiseParamExpanderV = New MortisingParameterExpanderV
GenMachinParamExpanderV = New GenMachiningParameterExpanderV
ChiselParamExpanderV = New ChiselingParameterExpanderV
StoneSawParamExpanderV = New StoneSawingParameterExpanderV
StoneSawFinishParamExpanderV = New StoneSawFinishingParameterExpanderV
StoneSawRoughParamExpanderV = New StoneSawRoughingParameterExpanderV
StoneMillParamExpanderV = New StoneMillingParameterExpanderV
StoneDrillParamExpanderV = New StoneDrillingParameterExpanderV
SurfFinishParamExpanderV = New SurfFinishingParameterExpanderV
WjParamExpanderV = New WaterjettingParameterExpanderV
NotifyPropertyChanged("ParamExpanderPageV") NotifyPropertyChanged("ParamExpanderPageV")
End Sub End Sub
#End Region ' Constructor #End Region ' Constructor
#Region "METHODS"
''' <summary>
''' Funzione che attiva l'evento che mette il focus sullo slider
''' </summary>
Public Sub FocusSlider()
RaiseEvent m_EventFocusOnSlider()
End Sub
#End Region ' Methods
#Region "COMMANDS" #Region "COMMANDS"
#Region "NextStepToolCommand"
''' <summary>
''' Restituisce funzione per ricalcolo lavorazione.
''' </summary>
Public ReadOnly Property NextStepToolCommand As ICommand
Get
If m_cmdNextStepTool Is Nothing Then
m_cmdNextStepTool = New RelayCommand(AddressOf NextStepTool)
End If
Return m_cmdNextStepTool
End Get
End Property
''' <summary>
''' Ricalcola una lavorazione.
''' </summary>
Public Sub NextStepTool(ByVal param As Object)
If m_bPreviewTool Then
Dim nNextId = EgtPreviewMachiningTool(m_nPtEntId, MCH_PTM.AFTER)
If nNextId <> GDB_ID.NULL Then m_nPtEntId = nNextId
EgtDraw()
End If
End Sub
#End Region ' NextStepToolCommand
#Region "PrevStepToolCommand"
''' <summary>
''' Restituisce funzione per ricalcolo lavorazione.
''' </summary>
Public ReadOnly Property PrevStepToolCommand As ICommand
Get
If m_cmdPrevStepTool Is Nothing Then
m_cmdPrevStepTool = New RelayCommand(AddressOf PrevStepTool)
End If
Return m_cmdPrevStepTool
End Get
End Property
''' <summary>
''' Ricalcola una lavorazione.
''' </summary>
Public Sub PrevStepTool(ByVal param As Object)
If m_bPreviewTool Then
Dim nPrevId = EgtPreviewMachiningTool(m_nPtEntId, MCH_PTM.BEFORE)
If nPrevId <> GDB_ID.NULL Then m_nPtEntId = nPrevId
EgtDraw()
End If
End Sub
#End Region ' PrevStepToolCommand
#Region "UpdateMachiningCommand" #Region "UpdateMachiningCommand"
''' <summary> ''' <summary>
@@ -349,7 +370,18 @@ Public Class MachiningParameterExpanderVM
MessageBox.Show(EgtMsg(5423) + sErrorList, EgtMsg(30009), MessageBoxButton.OK, MessageBoxImage.Exclamation) MessageBox.Show(EgtMsg(5423) + sErrorList, EgtMsg(30009), MessageBoxButton.OK, MessageBoxImage.Exclamation)
Return Return
End If End If
Dim bRecalc As Boolean = ((Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift)
Dim bRecalc As Boolean = False
If (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
bRecalc = True
Else
' Controllo se il tipo e' dr o sr o lr bRecalc e' true come quando viene selezionato Shift
For Each ItemNote As NoteListBoxItem In m_CurrOperation.NotesList
bRecalc = ItemNote.Type.Equals("dr") OrElse ItemNote.Type.Equals("lr") OrElse ItemNote.Type.Equals("sr") OrElse ItemNote.Type.Equals("br")
If bRecalc Then Exit For
Next
End If
' La modifica di alcuni parametri forza il ricalcolo della geometria ' La modifica di alcuni parametri forza il ricalcolo della geometria
Dim ModifiedGeometry As Boolean = m_CurrOperation.m_IsModifiedSelectedFaceUseType Dim ModifiedGeometry As Boolean = m_CurrOperation.m_IsModifiedSelectedFaceUseType
' aggiorno valori modificati ' aggiorno valori modificati
@@ -428,11 +460,9 @@ Public Class MachiningParameterExpanderVM
End If End If
End If End If
' Restart visualizzazione utensile ' Restart visualizzazione utensile
If m_bPreviewTool Then SetSliderScale( EgtGetPreviewMachiningToolStepCount())
EgtPreparePreviewMachiningTool() SetViewTool(True)
m_nPtEntId = EgtPreviewMachiningTool(GDB_ID.NULL, MCH_PTM.AFTER) IsModified(False)
End If
IsModified(False) ' NotifyPropertyChanged("UpdateMachiningBtn_Background")
ErrorOnOperation(False) ErrorOnOperation(False)
EgtDraw() EgtDraw()
Map.refProjectVM.EmitTitle() Map.refProjectVM.EmitTitle()
@@ -488,8 +518,12 @@ Public Class OperationParamVisibilityConverter
Return TMDbParamVisibility.Chiseling(CInt(parameter)) Return TMDbParamVisibility.Chiseling(CInt(parameter))
Case MCH_OY.SURFFINISHING Case MCH_OY.SURFFINISHING
Return TMDbParamVisibility.SurfFinishing(CInt(parameter)) Return TMDbParamVisibility.SurfFinishing(CInt(parameter))
Case MCH_OY.SURFROUGHING
Return TMDbParamVisibility.SurfRoughing(CInt(parameter))
Case MCH_OY.WATERJETTING Case MCH_OY.WATERJETTING
Return TMDbParamVisibility.WaterJetting(CInt(parameter)) Return TMDbParamVisibility.WaterJetting(CInt(parameter))
Case MCH_OY.FIVEAXISMILLING
Return TMDbParamVisibility.FiveAxMachining(CInt(parameter))
Case Else Case Else
Return Visibility.Hidden Return Visibility.Hidden
End Select End Select
@@ -1,10 +1,10 @@
<UserControl x:Class="MortisingParameterExpanderV" <UserControl x:Class="MortisingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
@@ -75,185 +75,251 @@
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}"
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid> </UniformGrid>
<EgtWPFLib5:CheckParamV <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
ParamTxBl="{Binding InvertTxBl}" ParamChBx="{Binding Path=Invert,
ParamChBx="{Binding Path=Invert, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource CheckParamV_Margin}"/>
Style="{DynamicResource CheckParamV_Margin}"/> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding WorkSideTxBl}"
<EgtWPFLib5:ComboParamV ParamCmBxList="{Binding Path=WorkSideList,
ParamTxBl="{Binding WorkSideTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamCmBxList="{Binding Path=WorkSideList, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
ValidatesOnDataErrors=True}" Style="{DynamicResource ComboParamV_Margin}"/>
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}" <UniformGrid Columns="2">
Style="{DynamicResource ComboParamV_Margin}"/> <TextBlock Text="{Binding UserNotesTxBl}"
<UniformGrid Columns="2"> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TextBlock Text="{Binding UserNotesTxBl}" <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}" <EgtWPFLib5:EgtTextBox.ToolTip>
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"> <TextBlock Text="{Binding UserNotesTooltip}"/>
<EgtWPFLib5:EgtTextBox.ToolTip> </EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/> </EgtWPFLib5:EgtTextBox>
</EgtWPFLib5:EgtTextBox.ToolTip> <TextBlock Text="{Binding SystemNotesTxBl}"
</EgtWPFLib5:EgtTextBox> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
<TextBlock Text="{Binding SystemNotesTxBl}" Visibility="{Binding SysNotes_Visibility}"/>
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}" <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding SysNotes_Visibility}"/> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}" Visibility="{Binding SysNotes_Visibility}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}" IsReadOnly="True"/>
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> </StackPanel>
<StackPanel Name="AutomaticCloseExpanderStackPanel"> <StackPanel Name="AutomaticCloseExpanderStackPanel">
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
ParamTxBl="{Binding StartPosTxBl}" ParamTxBx="{Binding Path=StartPos,
ParamTxBx="{Binding Path=StartPos, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding StepTypeTxBl}"
<EgtWPFLib5:ComboParamV ParamCmBxList="{Binding Path=StepTypeList,
ParamTxBl="{Binding StepTypeTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamCmBxList="{Binding Path=StepTypeList, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
ValidatesOnDataErrors=True}" Style="{DynamicResource ComboParamV_Margin}"/>
ParamCmBxSelIndex="{Binding Path=SelectedStepType}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
Style="{DynamicResource ComboParamV_Margin}"/> ParamTxBx="{Binding Path=StepPar,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding StepParTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=StepPar, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=OffSr,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding OffsetSrTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=OffSr, <EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=OffSl,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding OffsetSlTxBl}" </StackPanel>
ParamTxBx="{Binding Path=OffSl, </Expander>
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <Expander.Header>
<EgtWPFLib5:CheckParamV <UniformGrid Columns="2">
ParamTxBl="{Binding InvertToolDirTxBl}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamChBx="{Binding Path=InvertToolDir, Margin="2.5"/>
UpdateSourceTrigger=PropertyChanged, <Button Command="{Binding ShowNoteListComboCommand}"
ValidatesOnDataErrors=True}" IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Style="{DynamicResource CheckParamV_Margin}"/> Visibility="{Binding ShowNoteListCombo_Visibility}"
<EgtWPFLib5:ComboParamV ToolTip="{Binding ShowNoteToolTip}"
ParamTxBl="{Binding FaceUseTypeTxBl}" Grid.Column="1"
ParamCmBxList="{Binding Path=FaceUseTypeList, HorizontalAlignment="Right"
UpdateSourceTrigger=PropertyChanged, Margin="2.5,2.5,7,2.5"
ValidatesOnDataErrors=True}" Width="20">
ParamCmBxSelIndex="{Binding Path=SelectedFaceUseType}" <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Button>
<EgtWPFLib5:StringParamV </UniformGrid>
ParamTxBl="{Binding InitAngsTxBl}" </Expander.Header>
ParamTxBx="{Binding Path=InitAngs, <Grid>
UpdateSourceTrigger=PropertyChanged, <Grid.RowDefinitions>
ValidatesOnDataErrors=True}" <RowDefinition Height="1*"/>
Style="{DynamicResource StringParamV_Margin}"/> <RowDefinition Height="Auto"/>
<EgtWPFLib5:StringParamV </Grid.RowDefinitions>
ParamTxBl="{Binding BlockedAxisTxBl}" <StackPanel>
ParamTxBx="{Binding Path=BlockedAxis, <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertToolDirTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamChBx="{Binding Path=InvertToolDir,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:ComboParamV Style="{DynamicResource CheckParamV_Margin}"/>
ParamTxBl="{Binding SolChoiceTypeTxBl}" <EgtWPFLib5:ComboParamV ParamTxBl="{Binding FaceUseTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList, ParamCmBxList="{Binding Path=FaceUseTypeList,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True, ValidatesOnDataErrors=True}"
Mode=OneWay}" ParamCmBxSelIndex="{Binding Path=SelectedFaceUseType}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
</StackPanel> ParamTxBx="{Binding Path=InitAngs,
</Expander> UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Header="{Binding LeadInTypeMsg}" Name="LeadInTypeMsg" <Expander Header="{Binding LeadInTypeMsg}" Name="LeadInTypeMsg"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartAddLenTxBl}"
ParamTxBl="{Binding StartAddLenTxBl}" ParamTxBx="{Binding Path=StartAddLen,
ParamTxBx="{Binding Path=StartAddLen, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> </StackPanel>
</StackPanel> </Expander>
</Expander>
<Expander Header="{Binding LeadOutTypeMsg}" Name="LeadOutType" <Expander Header="{Binding LeadOutTypeMsg}" Name="LeadOutType"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding EndAddLenTxBl}"
ParamTxBl="{Binding EndAddLenTxBl}" ParamTxBx="{Binding Path=EndAddLen,
ParamTxBx="{Binding Path=EndAddLen, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> </StackPanel>
</StackPanel> </Expander>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class MortisingParameterExpanderV Public Class MortisingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class MortisingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class MortisingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class MortisingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -1,293 +1,354 @@
<UserControl x:Class="PocketingParameterExpanderV" <UserControl x:Class="PocketingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/> <EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
<sys:Int32 x:Key="Invert">0</sys:Int32> <sys:Int32 x:Key="Invert">0</sys:Int32>
<sys:Int32 x:Key="LeaveTab">1</sys:Int32> <sys:Int32 x:Key="LeaveTab">1</sys:Int32>
<sys:Int32 x:Key="WorkSide">2</sys:Int32> <sys:Int32 x:Key="WorkSide">2</sys:Int32>
<sys:Int32 x:Key="HeadSide">3</sys:Int32> <sys:Int32 x:Key="HeadSide">3</sys:Int32>
<sys:Int32 x:Key="LeadInType">4</sys:Int32> <sys:Int32 x:Key="LeadInType">4</sys:Int32>
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32> <sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
<sys:Int32 x:Key="LeadOutType">6</sys:Int32> <sys:Int32 x:Key="LeadOutType">6</sys:Int32>
<sys:Int32 x:Key="CurveUse">7</sys:Int32> <sys:Int32 x:Key="CurveUse">7</sys:Int32>
<sys:Int32 x:Key="StepType">8</sys:Int32> <sys:Int32 x:Key="StepType">8</sys:Int32>
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32> <sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
<sys:Int32 x:Key="Speed">10</sys:Int32> <sys:Int32 x:Key="Speed">10</sys:Int32>
<sys:Int32 x:Key="Feed">11</sys:Int32> <sys:Int32 x:Key="Feed">11</sys:Int32>
<sys:Int32 x:Key="StartFeed">12</sys:Int32> <sys:Int32 x:Key="StartFeed">12</sys:Int32>
<sys:Int32 x:Key="EndFeed">13</sys:Int32> <sys:Int32 x:Key="EndFeed">13</sys:Int32>
<sys:Int32 x:Key="TipFeed">14</sys:Int32> <sys:Int32 x:Key="TipFeed">14</sys:Int32>
<sys:Int32 x:Key="OffSr">15</sys:Int32> <sys:Int32 x:Key="OffSr">15</sys:Int32>
<sys:Int32 x:Key="OffSl">16</sys:Int32> <sys:Int32 x:Key="OffSl">16</sys:Int32>
<sys:Int32 x:Key="SideAngle">17</sys:Int32> <sys:Int32 x:Key="SideAngle">17</sys:Int32>
<sys:Int32 x:Key="Approx">18</sys:Int32> <sys:Int32 x:Key="Approx">18</sys:Int32>
<sys:Int32 x:Key="StartPos">19</sys:Int32> <sys:Int32 x:Key="StartPos">19</sys:Int32>
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32> <sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32> <sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32> <sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
<sys:Int32 x:Key="StepPar">23</sys:Int32> <sys:Int32 x:Key="StepPar">23</sys:Int32>
<sys:Int32 x:Key="ReturnPos">24</sys:Int32> <sys:Int32 x:Key="ReturnPos">24</sys:Int32>
<sys:Int32 x:Key="TabLen">25</sys:Int32> <sys:Int32 x:Key="TabLen">25</sys:Int32>
<sys:Int32 x:Key="TabDist">26</sys:Int32> <sys:Int32 x:Key="TabDist">26</sys:Int32>
<sys:Int32 x:Key="TabHeight">27</sys:Int32> <sys:Int32 x:Key="TabHeight">27</sys:Int32>
<sys:Int32 x:Key="TabAngle">28</sys:Int32> <sys:Int32 x:Key="TabAngle">28</sys:Int32>
<sys:Int32 x:Key="LiTang">29</sys:Int32> <sys:Int32 x:Key="LiTang">29</sys:Int32>
<sys:Int32 x:Key="LiPerp">30</sys:Int32> <sys:Int32 x:Key="LiPerp">30</sys:Int32>
<sys:Int32 x:Key="LiElev">31</sys:Int32> <sys:Int32 x:Key="LiElev">31</sys:Int32>
<sys:Int32 x:Key="LiCompLen">32</sys:Int32> <sys:Int32 x:Key="LiCompLen">32</sys:Int32>
<sys:Int32 x:Key="LoTang">33</sys:Int32> <sys:Int32 x:Key="LoTang">33</sys:Int32>
<sys:Int32 x:Key="LoPerp">34</sys:Int32> <sys:Int32 x:Key="LoPerp">34</sys:Int32>
<sys:Int32 x:Key="LoElev">35</sys:Int32> <sys:Int32 x:Key="LoElev">35</sys:Int32>
<sys:Int32 x:Key="LoCompLen">36</sys:Int32> <sys:Int32 x:Key="LoCompLen">36</sys:Int32>
<sys:Int32 x:Key="StartAddLen">37</sys:Int32> <sys:Int32 x:Key="StartAddLen">37</sys:Int32>
<sys:Int32 x:Key="EndAddLen">38</sys:Int32> <sys:Int32 x:Key="EndAddLen">38</sys:Int32>
<sys:Int32 x:Key="StepExtArc">39</sys:Int32> <sys:Int32 x:Key="StepExtArc">39</sys:Int32>
<sys:Int32 x:Key="StepIntArc">40</sys:Int32> <sys:Int32 x:Key="StepIntArc">40</sys:Int32>
<sys:Int32 x:Key="SideStep">41</sys:Int32> <sys:Int32 x:Key="SideStep">41</sys:Int32>
<sys:Int32 x:Key="VertFeed">42</sys:Int32> <sys:Int32 x:Key="VertFeed">42</sys:Int32>
<sys:Int32 x:Key="NamePar">43</sys:Int32> <sys:Int32 x:Key="NamePar">43</sys:Int32>
<sys:Int32 x:Key="Tool">44</sys:Int32> <sys:Int32 x:Key="Tool">44</sys:Int32>
<sys:Int32 x:Key="DepthStr">45</sys:Int32> <sys:Int32 x:Key="DepthStr">45</sys:Int32>
<sys:Int32 x:Key="UserNotes">46</sys:Int32> <sys:Int32 x:Key="UserNotes">46</sys:Int32>
<sys:Int32 x:Key="OverLapStr">47</sys:Int32> <sys:Int32 x:Key="OverLapStr">47</sys:Int32>
<sys:Int32 x:Key="OffsetStr">48</sys:Int32> <sys:Int32 x:Key="OffsetStr">48</sys:Int32>
<sys:Int32 x:Key="SubType">49</sys:Int32> <sys:Int32 x:Key="SubType">49</sys:Int32>
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32> <sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
<sys:Int32 x:Key="AxRotRef">51</sys:Int32> <sys:Int32 x:Key="AxRotRef">51</sys:Int32>
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32> <sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
<sys:Int32 x:Key="FaceUseType">53</sys:Int32> <sys:Int32 x:Key="FaceUseType">53</sys:Int32>
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32> <sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32> <sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32> <sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
<sys:Int32 x:Key="ApproxGen">57</sys:Int32> <sys:Int32 x:Key="ApproxGen">57</sys:Int32>
<sys:Int32 x:Key="OscEnable">58</sys:Int32> <sys:Int32 x:Key="OscEnable">58</sys:Int32>
<sys:Int32 x:Key="OscHeight">59</sys:Int32> <sys:Int32 x:Key="OscHeight">59</sys:Int32>
<sys:Int32 x:Key="OscRampLen">60</sys:Int32> <sys:Int32 x:Key="OscRampLen">60</sys:Int32>
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32> <sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
</UserControl.Resources> </UserControl.Resources>
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid> </UniformGrid>
<EgtWPFLib5:CheckParamV <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
ParamTxBl="{Binding InvertTxBl}" ParamChBx="{Binding Path=Invert,
ParamChBx="{Binding Path=Invert, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource CheckParamV_Margin}"/>
Style="{DynamicResource CheckParamV_Margin}"/> <UniformGrid Columns="2">
<UniformGrid Columns="2"> <TextBlock Text="{Binding UserNotesTxBl}"
<TextBlock Text="{Binding UserNotesTxBl}" Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/> <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"> <EgtWPFLib5:EgtTextBox.ToolTip>
<EgtWPFLib5:EgtTextBox.ToolTip> <TextBlock Text="{Binding UserNotesTooltip}"/>
<TextBlock Text="{Binding UserNotesTooltip}"/> </EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox.ToolTip> </EgtWPFLib5:EgtTextBox>
</EgtWPFLib5:EgtTextBox> <TextBlock Text="{Binding SystemNotesTxBl}"
<TextBlock Text="{Binding SystemNotesTxBl}" Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}" Visibility="{Binding SysNotes_Visibility}"/>
Visibility="{Binding SysNotes_Visibility}"/> <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}" Visibility="{Binding SysNotes_Visibility}"
Visibility="{Binding SysNotes_Visibility}" IsReadOnly="True"/>
IsReadOnly="True"/> </UniformGrid>
</UniformGrid> </StackPanel>
</StackPanel> <StackPanel Name="AutomaticCloseExpanderStackPanel">
<StackPanel Name="AutomaticCloseExpanderStackPanel"> <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> <StackPanel>
<StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=StartPos,
ParamTxBl="{Binding StartPosTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=StartPos, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:ComboParamV ParamTxBl="{Binding SubTypeTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamCmBxList="{Binding Path=SubTypeList,
<EgtWPFLib5:ComboParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding SubTypeTxBl}" ValidatesOnDataErrors=True}"
ParamCmBxList="{Binding Path=SubTypeList, ParamCmBxSelIndex="{Binding Path=SelectedSubType}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource ComboParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
ParamCmBxSelIndex="{Binding Path=SelectedSubType}" ParamTxBx="{Binding Path=StepPar,
Style="{DynamicResource ComboParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding StepParTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=StepPar, <EgtWPFLib5:StringParamV ParamTxBl="{Binding SideStepTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=SideStep,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding SideStepTxBl}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
ParamTxBx="{Binding Path=SideStep, ParamTxBx="{Binding Path=OffSl,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
ParamTxBl="{Binding OffsetSlTxBl}" ParamTxBx="{Binding Path=OffSr,
ParamTxBx="{Binding Path=OffSl, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding EpicyclesRadTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=EpicyclesRad,
ParamTxBl="{Binding OffsetSrTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=OffSr, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"
ValidatesOnDataErrors=True}" Visibility="{Binding Epicycles_Visibility}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding EpicyclesDistTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=EpicyclesDist,
ParamTxBl="{Binding EpicyclesRadTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=EpicyclesRad, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"
ValidatesOnDataErrors=True}" Visibility="{Binding Epicycles_Visibility}"/>
Style="{DynamicResource StringParamV_Margin}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding SideAngleTxBl}"
Visibility="{Binding Epicycles_Visibility}"/> ParamTxBx="{Binding Path=SideAngle,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding EpicyclesDistTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=EpicyclesDist, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, </StackPanel>
ValidatesOnDataErrors=True}" </Expander>
Style="{DynamicResource StringParamV_Margin}"
Visibility="{Binding Epicycles_Visibility}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding SideAngleTxBl}"
ParamTxBx="{Binding Path=SideAngle,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <Expander.Header>
<EgtWPFLib5:CheckParamV <UniformGrid Columns="2">
ParamTxBl="{Binding InvertToolDirTxBl}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamChBx="{Binding Path=InvertToolDir, Margin="2.5"/>
UpdateSourceTrigger=PropertyChanged, <Button Command="{Binding ShowNoteListComboCommand}"
ValidatesOnDataErrors=True}" IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Style="{DynamicResource CheckParamV_Margin}"/> Visibility="{Binding ShowNoteListCombo_Visibility}"
<EgtWPFLib5:StringParamV ToolTip="{Binding ShowNoteToolTip}"
ParamTxBl="{Binding InitAngsTxBl}" Grid.Column="1"
ParamTxBx="{Binding Path=InitAngs, HorizontalAlignment="Right"
UpdateSourceTrigger=PropertyChanged, Margin="2.5,2.5,7,2.5"
ValidatesOnDataErrors=True}" Width="20">
Style="{DynamicResource StringParamV_Margin}"/> <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
<EgtWPFLib5:StringParamV </Button>
ParamTxBl="{Binding BlockedAxisTxBl}" </UniformGrid>
ParamTxBx="{Binding Path=BlockedAxis, </Expander.Header>
UpdateSourceTrigger=PropertyChanged, <Grid>
ValidatesOnDataErrors=True}" <Grid.RowDefinitions>
Style="{DynamicResource StringParamV_Margin}"/> <RowDefinition Height="1*"/>
<EgtWPFLib5:ComboParamV <RowDefinition Height="Auto"/>
ParamTxBl="{Binding SolChoiceTypeTxBl}" </Grid.RowDefinitions>
ParamCmBxList="{Binding Path=SolChoiceTypeList, <StackPanel>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertToolDirTxBl}"
ValidatesOnDataErrors=True, ParamChBx="{Binding Path=InvertToolDir,
Mode=OneWay}" UpdateSourceTrigger=PropertyChanged,
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" ValidatesOnDataErrors=True}"
Style="{DynamicResource ComboParamV_Margin}"/> Style="{DynamicResource CheckParamV_Margin}"/>
</StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
</Expander> ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadInTypeTxBl}"
ParamTxBl="{Binding LeadInTypeTxBl}" ParamCmBxList="{Binding Path=LeadInTypeList,
ParamCmBxList="{Binding Path=LeadInTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel>
<StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiTangTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=LiTang,
ParamTxBl="{Binding LiTangTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=LiTang, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiElevTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=LiElev,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding LiElevTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=LiElev, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, </StackPanel>
ValidatesOnDataErrors=True}" </Expander>
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadOutTypeTxBl}"
ParamTxBl="{Binding LeadOutTypeTxBl}" ParamCmBxList="{Binding Path=LeadOutTypeList,
ParamCmBxList="{Binding Path=LeadOutTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel>
<StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding LoTangTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=LoTang,
ParamTxBl="{Binding LoTangTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=LoTang, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" </StackPanel>
Style="{DynamicResource StringParamV_Margin}"/> </Expander>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/> <TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header> </Expander.Header>
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBl="{Binding SpeedTxBl}" ParamTxBx="{Binding Path=Speed,
ParamTxBx="{Binding Path=Speed, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=Feed,
ParamTxBl="{Binding FeedTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=Feed, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=TipFeed,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding TipFeedTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=TipFeed, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=StartFeed,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding StartFeedTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=StartFeed, <EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=EndFeed,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding EndFeedTxBl}" </StackPanel>
ParamTxBx="{Binding Path=EndFeed, </Expander>
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" <Interactivity:Interaction.Behaviors>
Style="{DynamicResource StringParamV_Margin}"/> <EgtCAM5:AutomaticCloseExpander/>
</StackPanel> </Interactivity:Interaction.Behaviors>
</Expander> </StackPanel>
<Interactivity:Interaction.Behaviors> </StackPanel>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class PocketingParameterExpanderV Public Class PocketingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class PocketingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class PocketingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class PocketingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -1,10 +1,10 @@
<UserControl x:Class="StoneDrillingParameterExpanderV" <UserControl x:Class="StoneDrillingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
@@ -74,141 +74,211 @@
</UserControl.Resources> </UserControl.Resources>
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid>
<UniformGrid Columns="2">
<TextBlock Text="{Binding UserNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/>
</EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox>
<TextBlock Text="{Binding SystemNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Visibility="{Binding SysNotes_Visibility}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> <UniformGrid Columns="2">
<StackPanel Name="AutomaticCloseExpanderStackPanel"> <TextBlock Text="{Binding UserNotesTxBl}"
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
<StackPanel> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:StringParamV <EgtWPFLib5:EgtTextBox.ToolTip>
ParamTxBl="{Binding StartPosTxBl}" <TextBlock Text="{Binding UserNotesTooltip}"/>
ParamTxBx="{Binding Path=StartPos, </EgtWPFLib5:EgtTextBox.ToolTip>
UpdateSourceTrigger=PropertyChanged, </EgtWPFLib5:EgtTextBox>
ValidatesOnDataErrors=True}" <TextBlock Text="{Binding SystemNotesTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
<EgtWPFLib5:StringParamV Visibility="{Binding SysNotes_Visibility}"/>
ParamTxBl="{Binding ReturnPosTxBl}" <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
ParamTxBx="{Binding Path=ReturnPos, Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
UpdateSourceTrigger=PropertyChanged, Visibility="{Binding SysNotes_Visibility}"
ValidatesOnDataErrors=True}" IsReadOnly="True"/>
Style="{DynamicResource StringParamV_Margin}"/> </UniformGrid>
<EgtWPFLib5:StringParamV </StackPanel>
ParamTxBl="{Binding ThrouAddLenTxBl}" <StackPanel Name="AutomaticCloseExpanderStackPanel">
ParamTxBx="{Binding Path=ThrouAddLen, <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
UpdateSourceTrigger=PropertyChanged, Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
ValidatesOnDataErrors=True}" <StackPanel>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=StartPos,
ParamTxBl="{Binding StepParTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=StepPar, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding ReturnPosTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=ReturnPos,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding StartSlowLenTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=StartSlowLen, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding ThrouAddLenTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=ThrouAddLen,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding EndSlowLenTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=EndSlowLen, <EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=StepPar,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
</StackPanel> Style="{DynamicResource StringParamV_Margin}"/>
</Expander> <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartSlowLenTxBl}"
ParamTxBx="{Binding Path=StartSlowLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndSlowLenTxBl}"
ParamTxBx="{Binding Path=EndSlowLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <Expander.Header>
<EgtWPFLib5:StringParamV <UniformGrid Columns="2">
ParamTxBl="{Binding InitAngsTxBl}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamTxBx="{Binding Path=InitAngs, Margin="2.5"/>
UpdateSourceTrigger=PropertyChanged, <Button Command="{Binding ShowNoteListComboCommand}"
ValidatesOnDataErrors=True}" IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Style="{DynamicResource StringParamV_Margin}"/> Visibility="{Binding ShowNoteListCombo_Visibility}"
<EgtWPFLib5:StringParamV ToolTip="{Binding ShowNoteToolTip}"
ParamTxBl="{Binding BlockedAxisTxBl}" Grid.Column="1"
ParamTxBx="{Binding Path=BlockedAxis, HorizontalAlignment="Right"
UpdateSourceTrigger=PropertyChanged, Margin="2.5,2.5,7,2.5"
ValidatesOnDataErrors=True}" Width="20">
Style="{DynamicResource StringParamV_Margin}"/> <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
<EgtWPFLib5:ComboParamV </Button>
ParamTxBl="{Binding SolChoiceTypeTxBl}" </UniformGrid>
ParamCmBxList="{Binding Path=SolChoiceTypeList, </Expander.Header>
UpdateSourceTrigger=PropertyChanged, <Grid>
ValidatesOnDataErrors=True, <Grid.RowDefinitions>
Mode=OneWay}" <RowDefinition Height="1*"/>
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" <RowDefinition Height="Auto"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Grid.RowDefinitions>
</StackPanel> <StackPanel>
</Expander> <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class StoneDrillingParameterExpanderV Public Class StoneDrillingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class StoneDrillingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class StoneDrillingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class StoneDrillingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -1,218 +1,288 @@
<UserControl x:Class="StoneMillingParameterExpanderV" <UserControl x:Class="StoneMillingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/> <EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
<sys:Int32 x:Key="Invert">0</sys:Int32> <sys:Int32 x:Key="Invert">0</sys:Int32>
<sys:Int32 x:Key="LeaveTab">1</sys:Int32> <sys:Int32 x:Key="LeaveTab">1</sys:Int32>
<sys:Int32 x:Key="WorkSide">2</sys:Int32> <sys:Int32 x:Key="WorkSide">2</sys:Int32>
<sys:Int32 x:Key="HeadSide">3</sys:Int32> <sys:Int32 x:Key="HeadSide">3</sys:Int32>
<sys:Int32 x:Key="LeadInType">4</sys:Int32> <sys:Int32 x:Key="LeadInType">4</sys:Int32>
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32> <sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
<sys:Int32 x:Key="LeadOutType">6</sys:Int32> <sys:Int32 x:Key="LeadOutType">6</sys:Int32>
<sys:Int32 x:Key="CurveUse">7</sys:Int32> <sys:Int32 x:Key="CurveUse">7</sys:Int32>
<sys:Int32 x:Key="StepType">8</sys:Int32> <sys:Int32 x:Key="StepType">8</sys:Int32>
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32> <sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
<sys:Int32 x:Key="Speed">10</sys:Int32> <sys:Int32 x:Key="Speed">10</sys:Int32>
<sys:Int32 x:Key="Feed">11</sys:Int32> <sys:Int32 x:Key="Feed">11</sys:Int32>
<sys:Int32 x:Key="StartFeed">12</sys:Int32> <sys:Int32 x:Key="StartFeed">12</sys:Int32>
<sys:Int32 x:Key="EndFeed">13</sys:Int32> <sys:Int32 x:Key="EndFeed">13</sys:Int32>
<sys:Int32 x:Key="TipFeed">14</sys:Int32> <sys:Int32 x:Key="TipFeed">14</sys:Int32>
<sys:Int32 x:Key="OffSr">15</sys:Int32> <sys:Int32 x:Key="OffSr">15</sys:Int32>
<sys:Int32 x:Key="OffSl">16</sys:Int32> <sys:Int32 x:Key="OffSl">16</sys:Int32>
<sys:Int32 x:Key="SideAngle">17</sys:Int32> <sys:Int32 x:Key="SideAngle">17</sys:Int32>
<sys:Int32 x:Key="Approx">18</sys:Int32> <sys:Int32 x:Key="Approx">18</sys:Int32>
<sys:Int32 x:Key="StartPos">19</sys:Int32> <sys:Int32 x:Key="StartPos">19</sys:Int32>
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32> <sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32> <sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32> <sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
<sys:Int32 x:Key="StepPar">23</sys:Int32> <sys:Int32 x:Key="StepPar">23</sys:Int32>
<sys:Int32 x:Key="ReturnPos">24</sys:Int32> <sys:Int32 x:Key="ReturnPos">24</sys:Int32>
<sys:Int32 x:Key="TabLen">25</sys:Int32> <sys:Int32 x:Key="TabLen">25</sys:Int32>
<sys:Int32 x:Key="TabDist">26</sys:Int32> <sys:Int32 x:Key="TabDist">26</sys:Int32>
<sys:Int32 x:Key="TabHeight">27</sys:Int32> <sys:Int32 x:Key="TabHeight">27</sys:Int32>
<sys:Int32 x:Key="TabAngle">28</sys:Int32> <sys:Int32 x:Key="TabAngle">28</sys:Int32>
<sys:Int32 x:Key="LiTang">29</sys:Int32> <sys:Int32 x:Key="LiTang">29</sys:Int32>
<sys:Int32 x:Key="LiPerp">30</sys:Int32> <sys:Int32 x:Key="LiPerp">30</sys:Int32>
<sys:Int32 x:Key="LiElev">31</sys:Int32> <sys:Int32 x:Key="LiElev">31</sys:Int32>
<sys:Int32 x:Key="LiCompLen">32</sys:Int32> <sys:Int32 x:Key="LiCompLen">32</sys:Int32>
<sys:Int32 x:Key="LoTang">33</sys:Int32> <sys:Int32 x:Key="LoTang">33</sys:Int32>
<sys:Int32 x:Key="LoPerp">34</sys:Int32> <sys:Int32 x:Key="LoPerp">34</sys:Int32>
<sys:Int32 x:Key="LoElev">35</sys:Int32> <sys:Int32 x:Key="LoElev">35</sys:Int32>
<sys:Int32 x:Key="LoCompLen">36</sys:Int32> <sys:Int32 x:Key="LoCompLen">36</sys:Int32>
<sys:Int32 x:Key="StartAddLen">37</sys:Int32> <sys:Int32 x:Key="StartAddLen">37</sys:Int32>
<sys:Int32 x:Key="EndAddLen">38</sys:Int32> <sys:Int32 x:Key="EndAddLen">38</sys:Int32>
<sys:Int32 x:Key="StepExtArc">39</sys:Int32> <sys:Int32 x:Key="StepExtArc">39</sys:Int32>
<sys:Int32 x:Key="StepIntArc">40</sys:Int32> <sys:Int32 x:Key="StepIntArc">40</sys:Int32>
<sys:Int32 x:Key="SideStep">41</sys:Int32> <sys:Int32 x:Key="SideStep">41</sys:Int32>
<sys:Int32 x:Key="VertFeed">42</sys:Int32> <sys:Int32 x:Key="VertFeed">42</sys:Int32>
<sys:Int32 x:Key="NamePar">43</sys:Int32> <sys:Int32 x:Key="NamePar">43</sys:Int32>
<sys:Int32 x:Key="Tool">44</sys:Int32> <sys:Int32 x:Key="Tool">44</sys:Int32>
<sys:Int32 x:Key="DepthStr">45</sys:Int32> <sys:Int32 x:Key="DepthStr">45</sys:Int32>
<sys:Int32 x:Key="UserNotes">46</sys:Int32> <sys:Int32 x:Key="UserNotes">46</sys:Int32>
<sys:Int32 x:Key="OverLapStr">47</sys:Int32> <sys:Int32 x:Key="OverLapStr">47</sys:Int32>
<sys:Int32 x:Key="OffsetStr">48</sys:Int32> <sys:Int32 x:Key="OffsetStr">48</sys:Int32>
<sys:Int32 x:Key="SubType">49</sys:Int32> <sys:Int32 x:Key="SubType">49</sys:Int32>
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32> <sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
<sys:Int32 x:Key="AxRotRef">51</sys:Int32> <sys:Int32 x:Key="AxRotRef">51</sys:Int32>
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32> <sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
<sys:Int32 x:Key="FaceUseType">53</sys:Int32> <sys:Int32 x:Key="FaceUseType">53</sys:Int32>
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32> <sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32> <sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32> <sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
<sys:Int32 x:Key="ApproxGen">57</sys:Int32> <sys:Int32 x:Key="ApproxGen">57</sys:Int32>
<sys:Int32 x:Key="OscEnable">58</sys:Int32> <sys:Int32 x:Key="OscEnable">58</sys:Int32>
<sys:Int32 x:Key="OscHeight">59</sys:Int32> <sys:Int32 x:Key="OscHeight">59</sys:Int32>
<sys:Int32 x:Key="OscRampLen">60</sys:Int32> <sys:Int32 x:Key="OscRampLen">60</sys:Int32>
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32> <sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
</UserControl.Resources> </UserControl.Resources>
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid>
<EgtWPFLib5:CheckParamV
ParamTxBl="{Binding InvertTxBl}"
ParamChBx="{Binding Path=Invert,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource CheckParamV_Margin}"/>
<EgtWPFLib5:ComboParamV
ParamTxBl="{Binding WorkSideTxBl}"
ParamCmBxList="{Binding Path=WorkSideList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
Style="{DynamicResource ComboParamV_Margin}"/>
<UniformGrid Columns="2">
<TextBlock Text="{Binding UserNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/>
</EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox>
<TextBlock Text="{Binding SystemNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Visibility="{Binding SysNotes_Visibility}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
<StackPanel Name="AutomaticCloseExpanderStackPanel"> ParamChBx="{Binding Path=Invert,
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" UpdateSourceTrigger=PropertyChanged,
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> ValidatesOnDataErrors=True}"
<StackPanel> Style="{DynamicResource CheckParamV_Margin}"/>
<EgtWPFLib5:StringParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding WorkSideTxBl}"
ParamTxBl="{Binding StartPosTxBl}" ParamCmBxList="{Binding Path=WorkSideList,
ParamTxBx="{Binding Path=StartPos, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:ComboParamV <UniformGrid Columns="2">
ParamTxBl="{Binding LeadInTypeTxBl}" <TextBlock Text="{Binding UserNotesTxBl}"
ParamCmBxList="{Binding Path=LeadInTypeList, Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
ValidatesOnDataErrors=True}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}" <EgtWPFLib5:EgtTextBox.ToolTip>
Style="{DynamicResource ComboParamV_Margin}"/> <TextBlock Text="{Binding UserNotesTooltip}"/>
<EgtWPFLib5:ComboParamV </EgtWPFLib5:EgtTextBox.ToolTip>
ParamTxBl="{Binding LeadOutTypeTxBl}" </EgtWPFLib5:EgtTextBox>
ParamCmBxList="{Binding Path=LeadOutTypeList, <TextBlock Text="{Binding SystemNotesTxBl}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
ValidatesOnDataErrors=True}" Visibility="{Binding SysNotes_Visibility}"/>
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}" <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource ComboParamV_Margin}"/> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
<EgtWPFLib5:StringParamV Visibility="{Binding SysNotes_Visibility}"
ParamTxBl="{Binding StepParTxBl}" IsReadOnly="True"/>
ParamTxBx="{Binding Path=StepPar, </UniformGrid>
UpdateSourceTrigger=PropertyChanged, </StackPanel>
ValidatesOnDataErrors=True}" <StackPanel Name="AutomaticCloseExpanderStackPanel">
Style="{DynamicResource StringParamV_Margin}"/> <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
ParamTxBx="{Binding Path=StartPos,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadInTypeTxBl}"
ParamCmBxList="{Binding Path=LeadInTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadOutTypeTxBl}"
ParamCmBxList="{Binding Path=LeadOutTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
ParamTxBx="{Binding Path=StepPar,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel> </StackPanel>
</Expander> </Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <Expander.Header>
<EgtWPFLib5:StringParamV <UniformGrid Columns="2">
ParamTxBl="{Binding InitAngsTxBl}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamTxBx="{Binding Path=InitAngs, Margin="2.5"/>
UpdateSourceTrigger=PropertyChanged, <Button Command="{Binding ShowNoteListComboCommand}"
ValidatesOnDataErrors=True}" IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Style="{DynamicResource StringParamV_Margin}"/> Visibility="{Binding ShowNoteListCombo_Visibility}"
<EgtWPFLib5:StringParamV ToolTip="{Binding ShowNoteToolTip}"
ParamTxBl="{Binding BlockedAxisTxBl}" Grid.Column="1"
ParamTxBx="{Binding Path=BlockedAxis, HorizontalAlignment="Right"
UpdateSourceTrigger=PropertyChanged, Margin="2.5,2.5,7,2.5"
ValidatesOnDataErrors=True}" Width="20">
Style="{DynamicResource StringParamV_Margin}"/> <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
<EgtWPFLib5:ComboParamV </Button>
ParamTxBl="{Binding SolChoiceTypeTxBl}" </UniformGrid>
ParamCmBxList="{Binding Path=SolChoiceTypeList, </Expander.Header>
UpdateSourceTrigger=PropertyChanged, <Grid>
ValidatesOnDataErrors=True, <Grid.RowDefinitions>
Mode=OneWay}" <RowDefinition Height="1*"/>
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" <RowDefinition Height="Auto"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Grid.RowDefinitions>
</StackPanel> <StackPanel>
</Expander> <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/> <TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header> </Expander.Header>
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBl="{Binding SpeedTxBl}" ParamTxBx="{Binding Path=Speed,
ParamTxBx="{Binding Path=Speed, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=Feed,
ParamTxBl="{Binding FeedTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=Feed, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=TipFeed,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding TipFeedTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=TipFeed, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=StartFeed,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding StartFeedTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=StartFeed, <EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=EndFeed,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding EndFeedTxBl}" </StackPanel>
ParamTxBx="{Binding Path=EndFeed, </Expander>
UpdateSourceTrigger=PropertyChanged, <Interactivity:Interaction.Behaviors>
ValidatesOnDataErrors=True}" <EgtCAM5:AutomaticCloseExpander/>
Style="{DynamicResource StringParamV_Margin}"/> </Interactivity:Interaction.Behaviors>
</StackPanel> </StackPanel>
</Expander> </StackPanel>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class StoneMillingParameterExpanderV Public Class StoneMillingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class StoneMillingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class StoneMillingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class StoneMillingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -1,10 +1,10 @@
<UserControl x:Class="StoneSawFinishingParameterExpanderV" <UserControl x:Class="StoneSawFinishingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
@@ -75,186 +75,255 @@
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid> </UniformGrid>
<EgtWPFLib5:CheckParamV <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
ParamTxBl="{Binding InvertTxBl}" ParamChBx="{Binding Path=Invert,
ParamChBx="{Binding Path=Invert, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource CheckParamV_Margin}"/>
Style="{DynamicResource CheckParamV_Margin}"/> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding SubTypeTxBl}"
<EgtWPFLib5:ComboParamV ParamCmBxList="{Binding Path=SubTypeList,
ParamTxBl="{Binding SubTypeTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamCmBxList="{Binding Path=SubTypeList, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxSelIndex="{Binding Path=SelectedSubType}"
ValidatesOnDataErrors=True}" Style="{DynamicResource ComboParamV_Margin}"/>
ParamCmBxSelIndex="{Binding Path=SelectedSubType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<UniformGrid Columns="2">
<TextBlock Text="{Binding UserNotesTxBl}"
<UniformGrid Columns="2"> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TextBlock Text="{Binding UserNotesTxBl}" <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}" <EgtWPFLib5:EgtTextBox.ToolTip>
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"> <TextBlock Text="{Binding UserNotesTooltip}"/>
<EgtWPFLib5:EgtTextBox.ToolTip> </EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/> </EgtWPFLib5:EgtTextBox>
</EgtWPFLib5:EgtTextBox.ToolTip> <TextBlock Text="{Binding SystemNotesTxBl}"
</EgtWPFLib5:EgtTextBox> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
<TextBlock Text="{Binding SystemNotesTxBl}" Visibility="{Binding SysNotes_Visibility}"/>
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}" <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding SysNotes_Visibility}"/> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}" Visibility="{Binding SysNotes_Visibility}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}" IsReadOnly="True"/>
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> </StackPanel>
<StackPanel Name="AutomaticCloseExpanderStackPanel"> <StackPanel Name="AutomaticCloseExpanderStackPanel">
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV Grid.Column="0" Grid.Row="0" <EgtWPFLib5:StringParamV Grid.Column="0" Grid.Row="0"
ParamTxBl="{Binding StartPosTxBl}" ParamTxBl="{Binding StartPosTxBl}"
ParamTxBx="{Binding Path=StartPos, ParamTxBx="{Binding Path=StartPos,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadLinkTypeTxBl}"
ParamTxBl="{Binding LeadLinkTypeTxBl}" ParamCmBxList="{Binding Path=LeadLinkTypeList,
ParamCmBxList="{Binding Path=LeadLinkTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedLeadLinkType}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadLinkType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel> </StackPanel>
</Expander> </Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <Expander.Header>
<EgtWPFLib5:StringParamV <UniformGrid Columns="2">
ParamTxBl="{Binding InitAngsTxBl}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamTxBx="{Binding Path=InitAngs, Margin="2.5"/>
UpdateSourceTrigger=PropertyChanged, <Button Command="{Binding ShowNoteListComboCommand}"
ValidatesOnDataErrors=True}" IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Style="{DynamicResource StringParamV_Margin}"/> Visibility="{Binding ShowNoteListCombo_Visibility}"
<EgtWPFLib5:StringParamV ToolTip="{Binding ShowNoteToolTip}"
ParamTxBl="{Binding BlockedAxisTxBl}" Grid.Column="1"
ParamTxBx="{Binding Path=BlockedAxis, HorizontalAlignment="Right"
UpdateSourceTrigger=PropertyChanged, Margin="2.5,2.5,7,2.5"
ValidatesOnDataErrors=True}" Width="20">
Style="{DynamicResource StringParamV_Margin}"/> <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
<EgtWPFLib5:ComboParamV </Button>
ParamTxBl="{Binding SolChoiceTypeTxBl}" </UniformGrid>
ParamCmBxList="{Binding Path=SolChoiceTypeList, </Expander.Header>
UpdateSourceTrigger=PropertyChanged, <Grid>
ValidatesOnDataErrors=True, <Grid.RowDefinitions>
Mode=OneWay}" <RowDefinition Height="1*"/>
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" <RowDefinition Height="Auto"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Grid.RowDefinitions>
</StackPanel> <StackPanel>
</Expander> <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Header="{Binding StepGpBxLbl}" <Expander Header="{Binding StepGpBxLbl}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding StepTypeTxBl}"
ParamTxBl="{Binding StepTypeTxBl}" ParamCmBxList="{Binding Path=StepTypeList,
ParamCmBxList="{Binding Path=StepTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
ParamCmBxSelIndex="{Binding Path=SelectedStepType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
ParamTxBl="{Binding StepParTxBl}" ParamTxBx="{Binding Path=StepPar,
ParamTxBx="{Binding Path=StepPar, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding SideStepTxBl}"
ParamTxBl="{Binding SideStepTxBl}" ParamTxBx="{Binding Path=SideStep,
ParamTxBx="{Binding Path=SideStep, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel> </StackPanel>
</Expander> </Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<TextBlock Text="{Binding OffsetGpBxLbl}"/> <TextBlock Text="{Binding OffsetGpBxLbl}"/>
</Expander.Header> </Expander.Header>
<UniformGrid Columns="1"> <UniformGrid Columns="1">
<EgtWPFLib5:StringParamV Grid.Row="0" <EgtWPFLib5:StringParamV Grid.Row="0"
ParamTxBl="{Binding OffSrTxBl}" ParamTxBl="{Binding OffSrTxBl}"
ParamTxBx="{Binding Path=OffSr, ParamTxBx="{Binding Path=OffSr,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
</UniformGrid> </UniformGrid>
</Expander> </Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/> <TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header> </Expander.Header>
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding VertFeedTxBl}"
ParamTxBx="{Binding Path=VertFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding VertFeedTxBl}"
ParamTxBx="{Binding Path=VertFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class StoneSawFinishingParameterExpanderV Public Class StoneSawFinishingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class StoneSawFinishingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class StoneSawFinishingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class StoneSawFinishingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -1,10 +1,10 @@
<UserControl x:Class="StoneSawRoughingParameterExpanderV" <UserControl x:Class="StoneSawRoughingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
@@ -75,176 +75,245 @@
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid> </UniformGrid>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding StepTypeTxBl}"
ParamTxBl="{Binding StepTypeTxBl}" ParamCmBxList="{Binding Path=StepTypeList,
ParamCmBxList="{Binding Path=StepTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
ParamCmBxSelIndex="{Binding Path=SelectedStepType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/>
<UniformGrid Columns="2">
<UniformGrid Columns="2"> <TextBlock Text="{Binding UserNotesTxBl}"
<TextBlock Text="{Binding UserNotesTxBl}" Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/> <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"> <EgtWPFLib5:EgtTextBox.ToolTip>
<EgtWPFLib5:EgtTextBox.ToolTip> <TextBlock Text="{Binding UserNotesTooltip}"/>
<TextBlock Text="{Binding UserNotesTooltip}"/> </EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox.ToolTip> </EgtWPFLib5:EgtTextBox>
</EgtWPFLib5:EgtTextBox> <TextBlock Text="{Binding SystemNotesTxBl}"
<TextBlock Text="{Binding SystemNotesTxBl}" Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}" Visibility="{Binding SysNotes_Visibility}"/>
Visibility="{Binding SysNotes_Visibility}"/> <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}" Visibility="{Binding SysNotes_Visibility}"
Visibility="{Binding SysNotes_Visibility}" IsReadOnly="True"/>
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> </StackPanel>
<StackPanel Name="AutomaticCloseExpanderStackPanel"> <StackPanel Name="AutomaticCloseExpanderStackPanel">
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding HeadSideTxBl}"
ParamTxBl="{Binding HeadSideTxBl}" ParamCmBxList="{Binding Path=HeadSideList,
ParamCmBxList="{Binding Path=HeadSideList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedHeadSide}"
ParamCmBxSelIndex="{Binding Path=SelectedHeadSide}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> <EgtWPFLib5:StringParamV Grid.Column="0" Grid.Row="0"
<EgtWPFLib5:StringParamV Grid.Column="0" Grid.Row="0" ParamTxBl="{Binding StartPosTxBl}"
ParamTxBl="{Binding StartPosTxBl}" ParamTxBx="{Binding Path=StartPos,
ParamTxBx="{Binding Path=StartPos, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding ExtLinkTypeTxBl}"
ParamCmBxList="{Binding Path=ExtLinkTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedExtLinkType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
</Expander>
<EgtWPFLib5:ComboParamV <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
ParamTxBl="{Binding ExtLinkTypeTxBl}" Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
ParamCmBxList="{Binding Path=ExtLinkTypeList, <Expander.Header>
UpdateSourceTrigger=PropertyChanged, <UniformGrid Columns="2">
ValidatesOnDataErrors=True}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamCmBxSelIndex="{Binding Path=SelectedExtLinkType}" Margin="2.5"/>
Style="{DynamicResource ComboParamV_Margin}"/> <Button Command="{Binding ShowNoteListComboCommand}"
</StackPanel> IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
</Expander> Visibility="{Binding ShowNoteListCombo_Visibility}"
ToolTip="{Binding ShowNoteToolTip}"
Grid.Column="1"
HorizontalAlignment="Right"
Margin="2.5,2.5,7,2.5"
Width="20">
<Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
</Button>
</UniformGrid>
</Expander.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Header="{Binding StepGpBxLbl}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
ParamTxBl="{Binding InitAngsTxBl}" ParamTxBx="{Binding Path=StepPar,
ParamTxBx="{Binding Path=InitAngs, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding SideStepTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=SideStep,
ParamTxBl="{Binding BlockedAxisTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=BlockedAxis, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" </StackPanel>
Style="{DynamicResource StringParamV_Margin}"/> </Expander>
<EgtWPFLib5:ComboParamV
ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding StepGpBxLbl}" <Expander Style="{StaticResource ExpanderStyle}">
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> <Expander.Header>
<StackPanel> <TextBlock Text="{Binding OffsetGpBxLbl}"/>
<EgtWPFLib5:StringParamV </Expander.Header>
ParamTxBl="{Binding StepParTxBl}" <UniformGrid Columns="1">
ParamTxBx="{Binding Path=StepPar,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding SideStepTxBl}"
ParamTxBx="{Binding Path=SideStep,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <EgtWPFLib5:StringParamV Grid.Row="0"
<Expander.Header> ParamTxBl="{Binding OffSrTxBl}"
<TextBlock Text="{Binding OffsetGpBxLbl}"/> ParamTxBx="{Binding Path=OffSr,
</Expander.Header> UpdateSourceTrigger=PropertyChanged,
<UniformGrid Columns="1"> ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV Grid.Row="0" <EgtWPFLib5:StringParamV Grid.Row="0"
ParamTxBl="{Binding OffSrTxBl}" ParamTxBl="{Binding OffSlTxBl}"
ParamTxBx="{Binding Path=OffSr, ParamTxBx="{Binding Path=OffSl,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV Grid.Row="0" </UniformGrid>
ParamTxBl="{Binding OffSlTxBl}" </Expander>
ParamTxBx="{Binding Path=OffSl,
UpdateSourceTrigger=PropertyChanged, <Expander Style="{StaticResource ExpanderStyle}">
ValidatesOnDataErrors=True}" <Expander.Header>
Style="{DynamicResource StringParamV_Margin}"/> <TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
</UniformGrid> <StackPanel>
</Expander> <EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class StoneSawRoughingParameterExpanderV Public Class StoneSawRoughingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class StoneSawRoughingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class StoneSawRoughingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class StoneSawRoughingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -1,352 +1,405 @@
<UserControl x:Class="StoneSawingParameterExpanderV" <UserControl x:Class="StoneSawingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/> <EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
<sys:Int32 x:Key="Invert">0</sys:Int32> <sys:Int32 x:Key="Invert">0</sys:Int32>
<sys:Int32 x:Key="LeaveTab">1</sys:Int32> <sys:Int32 x:Key="LeaveTab">1</sys:Int32>
<sys:Int32 x:Key="WorkSide">2</sys:Int32> <sys:Int32 x:Key="WorkSide">2</sys:Int32>
<sys:Int32 x:Key="HeadSide">3</sys:Int32> <sys:Int32 x:Key="HeadSide">3</sys:Int32>
<sys:Int32 x:Key="LeadInType">4</sys:Int32> <sys:Int32 x:Key="LeadInType">4</sys:Int32>
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32> <sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
<sys:Int32 x:Key="LeadOutType">6</sys:Int32> <sys:Int32 x:Key="LeadOutType">6</sys:Int32>
<sys:Int32 x:Key="CurveUse">7</sys:Int32> <sys:Int32 x:Key="CurveUse">7</sys:Int32>
<sys:Int32 x:Key="StepType">8</sys:Int32> <sys:Int32 x:Key="StepType">8</sys:Int32>
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32> <sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
<sys:Int32 x:Key="Speed">10</sys:Int32> <sys:Int32 x:Key="Speed">10</sys:Int32>
<sys:Int32 x:Key="Feed">11</sys:Int32> <sys:Int32 x:Key="Feed">11</sys:Int32>
<sys:Int32 x:Key="StartFeed">12</sys:Int32> <sys:Int32 x:Key="StartFeed">12</sys:Int32>
<sys:Int32 x:Key="EndFeed">13</sys:Int32> <sys:Int32 x:Key="EndFeed">13</sys:Int32>
<sys:Int32 x:Key="TipFeed">14</sys:Int32> <sys:Int32 x:Key="TipFeed">14</sys:Int32>
<sys:Int32 x:Key="OffSr">15</sys:Int32> <sys:Int32 x:Key="OffSr">15</sys:Int32>
<sys:Int32 x:Key="OffSl">16</sys:Int32> <sys:Int32 x:Key="OffSl">16</sys:Int32>
<sys:Int32 x:Key="SideAngle">17</sys:Int32> <sys:Int32 x:Key="SideAngle">17</sys:Int32>
<sys:Int32 x:Key="Approx">18</sys:Int32> <sys:Int32 x:Key="Approx">18</sys:Int32>
<sys:Int32 x:Key="StartPos">19</sys:Int32> <sys:Int32 x:Key="StartPos">19</sys:Int32>
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32> <sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32> <sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32> <sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
<sys:Int32 x:Key="StepPar">23</sys:Int32> <sys:Int32 x:Key="StepPar">23</sys:Int32>
<sys:Int32 x:Key="ReturnPos">24</sys:Int32> <sys:Int32 x:Key="ReturnPos">24</sys:Int32>
<sys:Int32 x:Key="TabLen">25</sys:Int32> <sys:Int32 x:Key="TabLen">25</sys:Int32>
<sys:Int32 x:Key="TabDist">26</sys:Int32> <sys:Int32 x:Key="TabDist">26</sys:Int32>
<sys:Int32 x:Key="TabHeight">27</sys:Int32> <sys:Int32 x:Key="TabHeight">27</sys:Int32>
<sys:Int32 x:Key="TabAngle">28</sys:Int32> <sys:Int32 x:Key="TabAngle">28</sys:Int32>
<sys:Int32 x:Key="LiTang">29</sys:Int32> <sys:Int32 x:Key="LiTang">29</sys:Int32>
<sys:Int32 x:Key="LiPerp">30</sys:Int32> <sys:Int32 x:Key="LiPerp">30</sys:Int32>
<sys:Int32 x:Key="LiElev">31</sys:Int32> <sys:Int32 x:Key="LiElev">31</sys:Int32>
<sys:Int32 x:Key="LiCompLen">32</sys:Int32> <sys:Int32 x:Key="LiCompLen">32</sys:Int32>
<sys:Int32 x:Key="LoTang">33</sys:Int32> <sys:Int32 x:Key="LoTang">33</sys:Int32>
<sys:Int32 x:Key="LoPerp">34</sys:Int32> <sys:Int32 x:Key="LoPerp">34</sys:Int32>
<sys:Int32 x:Key="LoElev">35</sys:Int32> <sys:Int32 x:Key="LoElev">35</sys:Int32>
<sys:Int32 x:Key="LoCompLen">36</sys:Int32> <sys:Int32 x:Key="LoCompLen">36</sys:Int32>
<sys:Int32 x:Key="StartAddLen">37</sys:Int32> <sys:Int32 x:Key="StartAddLen">37</sys:Int32>
<sys:Int32 x:Key="EndAddLen">38</sys:Int32> <sys:Int32 x:Key="EndAddLen">38</sys:Int32>
<sys:Int32 x:Key="StepExtArc">39</sys:Int32> <sys:Int32 x:Key="StepExtArc">39</sys:Int32>
<sys:Int32 x:Key="StepIntArc">40</sys:Int32> <sys:Int32 x:Key="StepIntArc">40</sys:Int32>
<sys:Int32 x:Key="SideStep">41</sys:Int32> <sys:Int32 x:Key="SideStep">41</sys:Int32>
<sys:Int32 x:Key="VertFeed">42</sys:Int32> <sys:Int32 x:Key="VertFeed">42</sys:Int32>
<sys:Int32 x:Key="NamePar">43</sys:Int32> <sys:Int32 x:Key="NamePar">43</sys:Int32>
<sys:Int32 x:Key="Tool">44</sys:Int32> <sys:Int32 x:Key="Tool">44</sys:Int32>
<sys:Int32 x:Key="DepthStr">45</sys:Int32> <sys:Int32 x:Key="DepthStr">45</sys:Int32>
<sys:Int32 x:Key="UserNotes">46</sys:Int32> <sys:Int32 x:Key="UserNotes">46</sys:Int32>
<sys:Int32 x:Key="OverLapStr">47</sys:Int32> <sys:Int32 x:Key="OverLapStr">47</sys:Int32>
<sys:Int32 x:Key="OffsetStr">48</sys:Int32> <sys:Int32 x:Key="OffsetStr">48</sys:Int32>
<sys:Int32 x:Key="SubType">49</sys:Int32> <sys:Int32 x:Key="SubType">49</sys:Int32>
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32> <sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
<sys:Int32 x:Key="AxRotRef">51</sys:Int32> <sys:Int32 x:Key="AxRotRef">51</sys:Int32>
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32> <sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
<sys:Int32 x:Key="FaceUseType">53</sys:Int32> <sys:Int32 x:Key="FaceUseType">53</sys:Int32>
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32> <sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32> <sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32> <sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
<sys:Int32 x:Key="ApproxGen">57</sys:Int32> <sys:Int32 x:Key="ApproxGen">57</sys:Int32>
<sys:Int32 x:Key="OscEnable">58</sys:Int32> <sys:Int32 x:Key="OscEnable">58</sys:Int32>
<sys:Int32 x:Key="OscHeight">59</sys:Int32> <sys:Int32 x:Key="OscHeight">59</sys:Int32>
<sys:Int32 x:Key="OscRampLen">60</sys:Int32> <sys:Int32 x:Key="OscRampLen">60</sys:Int32>
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32> <sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
</UserControl.Resources> </UserControl.Resources>
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid>
<EgtWPFLib5:CheckParamV
ParamTxBl="{Binding InvertTxBl}"
ParamChBx="{Binding Path=Invert,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource CheckParamV_Margin}"/>
<UniformGrid Columns="2">
<TextBlock Text="{Binding UserNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/>
</EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox>
<TextBlock Text="{Binding SystemNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Visibility="{Binding SysNotes_Visibility}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
<StackPanel Name="AutomaticCloseExpanderStackPanel"> ParamChBx="{Binding Path=Invert,
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" UpdateSourceTrigger=PropertyChanged,
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> ValidatesOnDataErrors=True}"
<StackPanel> Style="{DynamicResource CheckParamV_Margin}"/>
<EgtWPFLib5:ComboParamV
ParamTxBl="{Binding WorkSideTxBl}"
ParamCmBxList="{Binding Path=WorkSideList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:ComboParamV
ParamTxBl="{Binding HeadSideTxBl}"
ParamCmBxList="{Binding Path=HeadSideList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedHeadSide}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StartPosTxBl}"
ParamTxBx="{Binding Path=StartPos,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV
ParamTxBl="{Binding ExtLinkTypeTxBl}"
ParamCmBxList="{Binding Path=ExtLinkTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedExtLinkType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding SideAngleTxBl}"
ParamTxBx="{Binding Path=SideAngle,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <UniformGrid Columns="2">
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> <TextBlock Text="{Binding UserNotesTxBl}"
<StackPanel> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<EgtWPFLib5:StringParamV <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
ParamTxBl="{Binding InitAngsTxBl}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
ParamTxBx="{Binding Path=InitAngs, <EgtWPFLib5:EgtTextBox.ToolTip>
UpdateSourceTrigger=PropertyChanged, <TextBlock Text="{Binding UserNotesTooltip}"/>
ValidatesOnDataErrors=True}" </EgtWPFLib5:EgtTextBox.ToolTip>
Style="{DynamicResource StringParamV_Margin}"/> </EgtWPFLib5:EgtTextBox>
<EgtWPFLib5:StringParamV <TextBlock Text="{Binding SystemNotesTxBl}"
ParamTxBl="{Binding BlockedAxisTxBl}" Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
ParamTxBx="{Binding Path=BlockedAxis, Visibility="{Binding SysNotes_Visibility}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
ValidatesOnDataErrors=True}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Style="{DynamicResource StringParamV_Margin}"/> Visibility="{Binding SysNotes_Visibility}"
<EgtWPFLib5:ComboParamV IsReadOnly="True"/>
ParamTxBl="{Binding SolChoiceTypeTxBl}" </UniformGrid>
ParamCmBxList="{Binding Path=SolChoiceTypeList, </StackPanel>
UpdateSourceTrigger=PropertyChanged, <StackPanel Name="AutomaticCloseExpanderStackPanel">
ValidatesOnDataErrors=True, <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Mode=OneWay}" Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" <StackPanel>
Style="{DynamicResource ComboParamV_Margin}"/> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding WorkSideTxBl}"
</StackPanel> ParamCmBxList="{Binding Path=WorkSideList,
</Expander> UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding HeadSideTxBl}"
ParamCmBxList="{Binding Path=HeadSideList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedHeadSide}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
ParamTxBx="{Binding Path=StartPos,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding ExtLinkTypeTxBl}"
ParamCmBxList="{Binding Path=ExtLinkTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedExtLinkType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SideAngleTxBl}"
ParamTxBx="{Binding Path=SideAngle,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
<Expander.Header> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<EgtWPFLib5:ComboParamV <Expander.Header>
ParamTxBl="{Binding LeadInTypeTxBl}" <UniformGrid Columns="2">
ParamCmBxList="{Binding Path=LeadInTypeList, <TextBlock Text="{Binding AdvancedParamMsg}"
UpdateSourceTrigger=PropertyChanged, Margin="2.5"/>
ValidatesOnDataErrors=True}" <Button Command="{Binding ShowNoteListComboCommand}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}" IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Style="{DynamicResource ComboParamV_Margin}"/> Visibility="{Binding ShowNoteListCombo_Visibility}"
</Expander.Header> ToolTip="{Binding ShowNoteToolTip}"
<StackPanel> Grid.Column="1"
<EgtWPFLib5:StringParamV HorizontalAlignment="Right"
ParamTxBl="{Binding StartAddLenTxBl}" Margin="2.5,2.5,7,2.5"
ParamTxBx="{Binding Path=StartAddLen, Width="20">
UpdateSourceTrigger=PropertyChanged, <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
ValidatesOnDataErrors=True}" </Button>
Style="{DynamicResource StringParamV_Margin}"/> </UniformGrid>
<EgtWPFLib5:StringParamV </Expander.Header>
ParamTxBl="{Binding LiTangStoneTxBl}" <Grid>
ParamTxBx="{Binding Path=LiTang, <Grid.RowDefinitions>
UpdateSourceTrigger=PropertyChanged, <RowDefinition Height="1*"/>
ValidatesOnDataErrors=True}" <RowDefinition Height="Auto"/>
Style="{DynamicResource StringParamV_Margin}"/> </Grid.RowDefinitions>
<EgtWPFLib5:StringParamV <StackPanel>
ParamTxBl="{Binding LiElevStoneTxBl}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
ParamTxBx="{Binding Path=LiElev, ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
</Expander> ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadInTypeTxBl}"
ParamTxBl="{Binding LeadOutTypeTxBl}" ParamCmBxList="{Binding Path=LeadInTypeList,
ParamCmBxList="{Binding Path=LeadOutTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel>
<StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartAddLenTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=StartAddLen,
ParamTxBl="{Binding EndAddLenTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=EndAddLen, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiTangStoneTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=LiTang,
</StackPanel> UpdateSourceTrigger=PropertyChanged,
</Expander> ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LiElevStoneTxBl}"
ParamTxBx="{Binding Path=LiElev,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<TextBlock Text="{Binding StepGpBxLbl}"/> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadOutTypeTxBl}"
</Expander.Header> ParamCmBxList="{Binding Path=LeadOutTypeList,
<StackPanel> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:ComboParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding StepTypeTxBl}" ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
ParamCmBxList="{Binding Path=StepTypeList, Style="{DynamicResource ComboParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, </Expander.Header>
ValidatesOnDataErrors=True}" <StackPanel>
ParamCmBxSelIndex="{Binding Path=SelectedStepType}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding EndAddLenTxBl}"
Style="{DynamicResource ComboParamV_Margin}"/> ParamTxBx="{Binding Path=EndAddLen,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding StepParTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=StepPar, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, </StackPanel>
ValidatesOnDataErrors=True}" </Expander>
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StepBackTxBl}"
ParamTxBx="{Binding Path=StepBack,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StepSideAngTxBl}"
ParamTxBx="{Binding Path=StepSideAng,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StepSideAngBackTxBl}"
ParamTxBx="{Binding Path=StepSideAngBack,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StepIntArcTxBl}"
ParamTxBx="{Binding Path=StepIntArc,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StepExtArcTxBl}"
ParamTxBx="{Binding Path=StepExtArc,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StepLastTxBl}"
ParamTxBx="{Binding Path=StepLast,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding OffsetGpBxLbl}" <Expander Style="{StaticResource ExpanderStyle}">
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> <Expander.Header>
<StackPanel> <TextBlock Text="{Binding StepGpBxLbl}"/>
<EgtWPFLib5:StringParamV </Expander.Header>
ParamTxBl="{Binding OffsetSlTxBl}" <StackPanel>
ParamTxBx="{Binding Path=OffSl, <EgtWPFLib5:ComboParamV ParamTxBl="{Binding StepTypeTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxList="{Binding Path=StepTypeList,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
</StackPanel> ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
</Expander> Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
ParamTxBx="{Binding Path=StepPar,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StepBackTxBl}"
ParamTxBx="{Binding Path=StepBack,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StepSideAngTxBl}"
ParamTxBx="{Binding Path=StepSideAng,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StepSideAngBackTxBl}"
ParamTxBx="{Binding Path=StepSideAngBack,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StepIntArcTxBl}"
ParamTxBx="{Binding Path=StepIntArc,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StepExtArcTxBl}"
ParamTxBx="{Binding Path=StepExtArc,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StepLastTxBl}"
ParamTxBx="{Binding Path=StepLast,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Header="{Binding OffsetGpBxLbl}"
<Expander.Header> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<TextBlock Text="{Binding ToolExpanderHeader}"/> <StackPanel>
</Expander.Header> <EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
<StackPanel> ParamTxBx="{Binding Path=OffSl,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<EgtWPFLib5:StringParamV <Expander Style="{StaticResource ExpanderStyle}">
ParamTxBl="{Binding SpeedTxBl}" <Expander.Header>
ParamTxBx="{Binding Path=Speed, <TextBlock Text="{Binding ToolExpanderHeader}"/>
UpdateSourceTrigger=PropertyChanged, </Expander.Header>
ValidatesOnDataErrors=True}" <StackPanel>
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBl="{Binding FeedTxBl}" ParamTxBx="{Binding Path=Speed,
ParamTxBx="{Binding Path=Feed, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=Feed,
ParamTxBl="{Binding TipFeedTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=TipFeed, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=TipFeed,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding StartFeedTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=StartFeed, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=StartFeed,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding EndFeedTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=EndFeed, <EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=EndFeed,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding BackFeedTxBl}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding BackFeedTxBl}"
ParamTxBx="{Binding Path=BackFeed, ParamTxBx="{Binding Path=BackFeed,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding SideAngFeedTxBl}"
ParamTxBl="{Binding SideAngFeedTxBl}" ParamTxBx="{Binding Path=SideAngFeed,
ParamTxBx="{Binding Path=SideAngFeed, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> </StackPanel>
</StackPanel> </Expander>
</Expander> <Interactivity:Interaction.Behaviors>
<Interactivity:Interaction.Behaviors> <EgtCAM5:AutomaticCloseExpander/>
<EgtCAM5:AutomaticCloseExpander/> </Interactivity:Interaction.Behaviors>
</Interactivity:Interaction.Behaviors> </StackPanel>
</StackPanel> </StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class StoneSawingParameterExpanderV Public Class StoneSawingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class StoneSawingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class StoneSawingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class StoneSawingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -1,286 +1,347 @@
<UserControl x:Class="SurfFinishingParameterExpanderV" <UserControl x:Class="SurfFinishingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/> <EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
<sys:Int32 x:Key="Invert">0</sys:Int32> <sys:Int32 x:Key="Invert">0</sys:Int32>
<sys:Int32 x:Key="LeaveTab">1</sys:Int32> <sys:Int32 x:Key="LeaveTab">1</sys:Int32>
<sys:Int32 x:Key="WorkSide">2</sys:Int32> <sys:Int32 x:Key="WorkSide">2</sys:Int32>
<sys:Int32 x:Key="HeadSide">3</sys:Int32> <sys:Int32 x:Key="HeadSide">3</sys:Int32>
<sys:Int32 x:Key="LeadInType">4</sys:Int32> <sys:Int32 x:Key="LeadInType">4</sys:Int32>
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32> <sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
<sys:Int32 x:Key="LeadOutType">6</sys:Int32> <sys:Int32 x:Key="LeadOutType">6</sys:Int32>
<sys:Int32 x:Key="CurveUse">7</sys:Int32> <sys:Int32 x:Key="CurveUse">7</sys:Int32>
<sys:Int32 x:Key="StepType">8</sys:Int32> <sys:Int32 x:Key="StepType">8</sys:Int32>
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32> <sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
<sys:Int32 x:Key="Speed">10</sys:Int32> <sys:Int32 x:Key="Speed">10</sys:Int32>
<sys:Int32 x:Key="Feed">11</sys:Int32> <sys:Int32 x:Key="Feed">11</sys:Int32>
<sys:Int32 x:Key="StartFeed">12</sys:Int32> <sys:Int32 x:Key="StartFeed">12</sys:Int32>
<sys:Int32 x:Key="EndFeed">13</sys:Int32> <sys:Int32 x:Key="EndFeed">13</sys:Int32>
<sys:Int32 x:Key="TipFeed">14</sys:Int32> <sys:Int32 x:Key="TipFeed">14</sys:Int32>
<sys:Int32 x:Key="OffSr">15</sys:Int32> <sys:Int32 x:Key="OffSr">15</sys:Int32>
<sys:Int32 x:Key="OffSl">16</sys:Int32> <sys:Int32 x:Key="OffSl">16</sys:Int32>
<sys:Int32 x:Key="SideAngle">17</sys:Int32> <sys:Int32 x:Key="SideAngle">17</sys:Int32>
<sys:Int32 x:Key="Approx">18</sys:Int32> <sys:Int32 x:Key="Approx">18</sys:Int32>
<sys:Int32 x:Key="StartPos">19</sys:Int32> <sys:Int32 x:Key="StartPos">19</sys:Int32>
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32> <sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32> <sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32> <sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
<sys:Int32 x:Key="StepPar">23</sys:Int32> <sys:Int32 x:Key="StepPar">23</sys:Int32>
<sys:Int32 x:Key="ReturnPos">24</sys:Int32> <sys:Int32 x:Key="ReturnPos">24</sys:Int32>
<sys:Int32 x:Key="TabLen">25</sys:Int32> <sys:Int32 x:Key="TabLen">25</sys:Int32>
<sys:Int32 x:Key="TabDist">26</sys:Int32> <sys:Int32 x:Key="TabDist">26</sys:Int32>
<sys:Int32 x:Key="TabHeight">27</sys:Int32> <sys:Int32 x:Key="TabHeight">27</sys:Int32>
<sys:Int32 x:Key="TabAngle">28</sys:Int32> <sys:Int32 x:Key="TabAngle">28</sys:Int32>
<sys:Int32 x:Key="LiTang">29</sys:Int32> <sys:Int32 x:Key="LiTang">29</sys:Int32>
<sys:Int32 x:Key="LiPerp">30</sys:Int32> <sys:Int32 x:Key="LiPerp">30</sys:Int32>
<sys:Int32 x:Key="LiElev">31</sys:Int32> <sys:Int32 x:Key="LiElev">31</sys:Int32>
<sys:Int32 x:Key="LiCompLen">32</sys:Int32> <sys:Int32 x:Key="LiCompLen">32</sys:Int32>
<sys:Int32 x:Key="LoTang">33</sys:Int32> <sys:Int32 x:Key="LoTang">33</sys:Int32>
<sys:Int32 x:Key="LoPerp">34</sys:Int32> <sys:Int32 x:Key="LoPerp">34</sys:Int32>
<sys:Int32 x:Key="LoElev">35</sys:Int32> <sys:Int32 x:Key="LoElev">35</sys:Int32>
<sys:Int32 x:Key="LoCompLen">36</sys:Int32> <sys:Int32 x:Key="LoCompLen">36</sys:Int32>
<sys:Int32 x:Key="StartAddLen">37</sys:Int32> <sys:Int32 x:Key="StartAddLen">37</sys:Int32>
<sys:Int32 x:Key="EndAddLen">38</sys:Int32> <sys:Int32 x:Key="EndAddLen">38</sys:Int32>
<sys:Int32 x:Key="StepExtArc">39</sys:Int32> <sys:Int32 x:Key="StepExtArc">39</sys:Int32>
<sys:Int32 x:Key="StepIntArc">40</sys:Int32> <sys:Int32 x:Key="StepIntArc">40</sys:Int32>
<sys:Int32 x:Key="SideStep">41</sys:Int32> <sys:Int32 x:Key="SideStep">41</sys:Int32>
<sys:Int32 x:Key="VertFeed">42</sys:Int32> <sys:Int32 x:Key="VertFeed">42</sys:Int32>
<sys:Int32 x:Key="NamePar">43</sys:Int32> <sys:Int32 x:Key="NamePar">43</sys:Int32>
<sys:Int32 x:Key="Tool">44</sys:Int32> <sys:Int32 x:Key="Tool">44</sys:Int32>
<sys:Int32 x:Key="DepthStr">45</sys:Int32> <sys:Int32 x:Key="DepthStr">45</sys:Int32>
<sys:Int32 x:Key="UserNotes">46</sys:Int32> <sys:Int32 x:Key="UserNotes">46</sys:Int32>
<sys:Int32 x:Key="OverLapStr">47</sys:Int32> <sys:Int32 x:Key="OverLapStr">47</sys:Int32>
<sys:Int32 x:Key="OffsetStr">48</sys:Int32> <sys:Int32 x:Key="OffsetStr">48</sys:Int32>
<sys:Int32 x:Key="SubType">49</sys:Int32> <sys:Int32 x:Key="SubType">49</sys:Int32>
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32> <sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
<sys:Int32 x:Key="AxRotRef">51</sys:Int32> <sys:Int32 x:Key="AxRotRef">51</sys:Int32>
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32> <sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
<sys:Int32 x:Key="FaceUseType">53</sys:Int32> <sys:Int32 x:Key="FaceUseType">53</sys:Int32>
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32> <sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32> <sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32> <sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
<sys:Int32 x:Key="ApproxGen">57</sys:Int32> <sys:Int32 x:Key="ApproxGen">57</sys:Int32>
<sys:Int32 x:Key="OscEnable">58</sys:Int32> <sys:Int32 x:Key="OscEnable">58</sys:Int32>
<sys:Int32 x:Key="OscHeight">59</sys:Int32> <sys:Int32 x:Key="OscHeight">59</sys:Int32>
<sys:Int32 x:Key="OscRampLen">60</sys:Int32> <sys:Int32 x:Key="OscRampLen">60</sys:Int32>
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32> <sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
</UserControl.Resources> </UserControl.Resources>
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid>
<EgtWPFLib5:CheckParamV
ParamTxBl="{Binding InvertTxBl}"
ParamChBx="{Binding Path=Invert,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource CheckParamV_Margin}"/>
<EgtWPFLib5:ComboParamV
ParamTxBl="{Binding SubTypeTxBl}"
ParamCmBxList="{Binding Path=SubTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedSubType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding OverLapTxBl}"
ParamTxBx="{Binding Path=OverLap,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<UniformGrid Columns="2">
<TextBlock Text="{Binding UserNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/>
</EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox>
<TextBlock Text="{Binding SystemNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Visibility="{Binding SysNotes_Visibility}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
<StackPanel Name="AutomaticCloseExpanderStackPanel"> ParamChBx="{Binding Path=Invert,
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" UpdateSourceTrigger=PropertyChanged,
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> ValidatesOnDataErrors=True}"
<StackPanel> Style="{DynamicResource CheckParamV_Margin}"/>
<EgtWPFLib5:StringParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding SubTypeTxBl}"
ParamTxBl="{Binding StartPosTxBl}" ParamCmBxList="{Binding Path=SubTypeList,
ParamTxBx="{Binding Path=StartPos, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedSubType}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding OverLapTxBl}"
ParamTxBl="{Binding LeadLinkTypeTxBl}" ParamTxBx="{Binding Path=OverLap,
ParamCmBxList="{Binding Path=LeadLinkTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
ParamCmBxSelIndex="{Binding Path=SelectedLeadLinkType}" <UniformGrid Columns="2">
Style="{DynamicResource ComboParamV_Margin}"/> <TextBlock Text="{Binding UserNotesTxBl}"
<EgtWPFLib5:StringParamV Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
ParamTxBl="{Binding SideAngleTxBl}" <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
ParamTxBx="{Binding Path=SideAngle, Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox.ToolTip>
ValidatesOnDataErrors=True}" <TextBlock Text="{Binding UserNotesTooltip}"/>
Style="{DynamicResource StringParamV_Margin}"/> </EgtWPFLib5:EgtTextBox.ToolTip>
<EgtWPFLib5:StringParamV </EgtWPFLib5:EgtTextBox>
ParamTxBl="{Binding SideStepTxBl}" <TextBlock Text="{Binding SystemNotesTxBl}"
ParamTxBx="{Binding Path=SideStep, Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
UpdateSourceTrigger=PropertyChanged, Visibility="{Binding SysNotes_Visibility}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
<EgtWPFLib5:StringParamV Visibility="{Binding SysNotes_Visibility}"
ParamTxBl="{Binding OffsetSrTxBl}" IsReadOnly="True"/>
ParamTxBx="{Binding Path=OffSr, </UniformGrid>
UpdateSourceTrigger=PropertyChanged, </StackPanel>
ValidatesOnDataErrors=True}" <StackPanel Name="AutomaticCloseExpanderStackPanel">
Style="{DynamicResource StringParamV_Margin}"/> <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
<EgtWPFLib5:StringParamV Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
ParamTxBl="{Binding ApproxTxBl}" <StackPanel>
ParamTxBx="{Binding Path=Approx, <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=StartPos,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
</StackPanel> Style="{DynamicResource StringParamV_Margin}"/>
</Expander> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadLinkTypeTxBl}"
ParamCmBxList="{Binding Path=LeadLinkTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadLinkType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SideAngleTxBl}"
ParamTxBx="{Binding Path=SideAngle,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SideStepTxBl}"
ParamTxBx="{Binding Path=SideStep,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
ParamTxBx="{Binding Path=OffSr,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding ApproxTxBl}"
ParamTxBx="{Binding Path=Approx,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <Expander.Header>
<EgtWPFLib5:StringParamV <UniformGrid Columns="2">
ParamTxBl="{Binding InitAngsTxBl}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamTxBx="{Binding Path=InitAngs, Margin="2.5"/>
UpdateSourceTrigger=PropertyChanged, <Button Command="{Binding ShowNoteListComboCommand}"
ValidatesOnDataErrors=True}" IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Style="{DynamicResource StringParamV_Margin}"/> Visibility="{Binding ShowNoteListCombo_Visibility}"
<EgtWPFLib5:StringParamV ToolTip="{Binding ShowNoteToolTip}"
ParamTxBl="{Binding BlockedAxisTxBl}" Grid.Column="1"
ParamTxBx="{Binding Path=BlockedAxis, HorizontalAlignment="Right"
UpdateSourceTrigger=PropertyChanged, Margin="2.5,2.5,7,2.5"
ValidatesOnDataErrors=True}" Width="20">
Style="{DynamicResource StringParamV_Margin}"/> <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
<EgtWPFLib5:ComboParamV </Button>
ParamTxBl="{Binding SolChoiceTypeTxBl}" </UniformGrid>
ParamCmBxList="{Binding Path=SolChoiceTypeList, </Expander.Header>
UpdateSourceTrigger=PropertyChanged, <Grid>
ValidatesOnDataErrors=True, <Grid.RowDefinitions>
Mode=OneWay}" <RowDefinition Height="1*"/>
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" <RowDefinition Height="Auto"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Grid.RowDefinitions>
</StackPanel> <StackPanel>
</Expander> <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadInTypeTxBl}"
ParamTxBl="{Binding LeadInTypeTxBl}" ParamCmBxList="{Binding Path=LeadInTypeList,
ParamCmBxList="{Binding Path=LeadInTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel>
<StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiTangTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=LiTang,
ParamTxBl="{Binding LiTangTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=LiTang, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiPerpTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=LiPerp,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding LiPerpTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=LiPerp, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, </StackPanel>
ValidatesOnDataErrors=True}" </Expander>
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadOutTypeTxBl}"
ParamTxBl="{Binding LeadOutTypeTxBl}" ParamCmBxList="{Binding Path=LeadOutTypeList,
ParamCmBxList="{Binding Path=LeadOutTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel>
<StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding LoTangTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=LoTang,
ParamTxBl="{Binding LoTangTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=LoTang, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LoPerpTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=LoPerp,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding LoPerpTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=LoPerp, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, </StackPanel>
ValidatesOnDataErrors=True}" </Expander>
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/> <TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header> </Expander.Header>
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBl="{Binding SpeedTxBl}" ParamTxBx="{Binding Path=Speed,
ParamTxBx="{Binding Path=Speed, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=Feed,
ParamTxBl="{Binding FeedTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=Feed, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=TipFeed,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding TipFeedTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=TipFeed, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=StartFeed,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding StartFeedTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=StartFeed, <EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=EndFeed,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding EndFeedTxBl}" </StackPanel>
ParamTxBx="{Binding Path=EndFeed, </Expander>
UpdateSourceTrigger=PropertyChanged, <Interactivity:Interaction.Behaviors>
ValidatesOnDataErrors=True}" <EgtCAM5:AutomaticCloseExpander/>
Style="{DynamicResource StringParamV_Margin}"/> </Interactivity:Interaction.Behaviors>
</StackPanel> </StackPanel>
</Expander> </StackPanel>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class SurfFinishingParameterExpanderV Public Class SurfFinishingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class SurfFinishingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class SurfFinishingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class SurfFinishingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -0,0 +1,346 @@
<UserControl x:Class="SurfRoughingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
<sys:Int32 x:Key="Invert">0</sys:Int32>
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
<sys:Int32 x:Key="StepType">8</sys:Int32>
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
<sys:Int32 x:Key="Speed">10</sys:Int32>
<sys:Int32 x:Key="Feed">11</sys:Int32>
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
<sys:Int32 x:Key="OffSr">15</sys:Int32>
<sys:Int32 x:Key="OffSl">16</sys:Int32>
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
<sys:Int32 x:Key="Approx">18</sys:Int32>
<sys:Int32 x:Key="StartPos">19</sys:Int32>
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
<sys:Int32 x:Key="StepPar">23</sys:Int32>
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
<sys:Int32 x:Key="TabLen">25</sys:Int32>
<sys:Int32 x:Key="TabDist">26</sys:Int32>
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
<sys:Int32 x:Key="LiTang">29</sys:Int32>
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
<sys:Int32 x:Key="LiElev">31</sys:Int32>
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
<sys:Int32 x:Key="LoTang">33</sys:Int32>
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
<sys:Int32 x:Key="LoElev">35</sys:Int32>
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
<sys:Int32 x:Key="SideStep">41</sys:Int32>
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
<sys:Int32 x:Key="NamePar">43</sys:Int32>
<sys:Int32 x:Key="Tool">44</sys:Int32>
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
<sys:Int32 x:Key="SubType">49</sys:Int32>
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
</UserControl.Resources>
<StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid>
<EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
ParamChBx="{Binding Path=Invert,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource CheckParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SubTypeTxBl}"
ParamCmBxList="{Binding Path=SubTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedSubType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<UniformGrid Columns="2">
<TextBlock Text="{Binding UserNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/>
</EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox>
<TextBlock Text="{Binding SystemNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Visibility="{Binding SysNotes_Visibility}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid>
</StackPanel>
<StackPanel Name="AutomaticCloseExpanderStackPanel">
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
ParamTxBx="{Binding Path=StartPos,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SideAngleTxBl}"
ParamTxBx="{Binding Path=SideAngle,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
ParamTxBx="{Binding Path=StepPar,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SubStepTxBl}"
ParamTxBx="{Binding Path=SubStep,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SideStepTxBl}"
ParamTxBx="{Binding Path=SideStep,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
ParamTxBx="{Binding Path=OffSr,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
ParamTxBx="{Binding Path=OffSl,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding ApproxTxBl}"
ParamTxBx="{Binding Path=Approx,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<Expander.Header>
<UniformGrid Columns="2">
<TextBlock Text="{Binding AdvancedParamMsg}"
Margin="2.5"/>
<Button Command="{Binding ShowNoteListComboCommand}"
IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Visibility="{Binding ShowNoteListCombo_Visibility}"
ToolTip="{Binding ShowNoteToolTip}"
Grid.Column="1"
HorizontalAlignment="Right"
Margin="2.5,2.5,7,2.5"
Width="20">
<Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
</Button>
</UniformGrid>
</Expander.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value, UpdateSourceTrigger=PropertyChanged}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadInTypeTxBl}"
ParamCmBxList="{Binding Path=LeadInTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LiTangTxBl}"
ParamTxBx="{Binding Path=LiTang,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LiElevTxBl}"
ParamTxBx="{Binding Path=LiElev,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadOutTypeTxBl}"
ParamCmBxList="{Binding Path=LeadOutTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LoTangTxBl}"
ParamTxBx="{Binding Path=LoTang,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl>
@@ -0,0 +1,83 @@
Imports EgtWPFLib5.EgtFloating
Public Class SurfRoughingParameterExpanderV
Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then
m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False
End If
CalculateOperationParametersStackPanelMaxHeight()
End Sub
Dim m_bSizeChanging As Boolean = False
Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return
m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight()
m_bSizeChanging = False
End Sub
Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean)
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
If IndexedExpander.IsExpanded Then
OpenedExpanderList.Add(True)
IndexedExpander.IsExpanded = False
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
' Sottraggo anche i padding
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
Else
OpenedExpanderList.Add(False)
End If
Else
OpenedExpanderList.Add(False)
End If
Next
Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
If OpenedExpanderList(Index) Then
IndexedExpander.IsExpanded = True
End If
End If
Next
End Sub
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
Dim target As DependencyObject = dependencyObject
Do
target = LogicalTreeHelper.GetParent(target)
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
If IsNothing(target) Then
target = dependencyObject
Do
target = VisualTreeHelper.GetParent(target)
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
End If
Return TryCast(target, T)
End Function
End Class
@@ -1,10 +1,10 @@
<UserControl x:Class="WaterjettingParameterExpanderV" <UserControl x:Class="WaterjettingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
@@ -74,280 +74,340 @@
</UserControl.Resources> </UserControl.Resources>
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<EgtWPFLib5:CheckParamV <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
ParamTxBl="{Binding InvertTxBl}" ParamChBx="{Binding Path=Invert,
ParamChBx="{Binding Path=Invert, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource CheckParamV_Margin}"/>
Style="{DynamicResource CheckParamV_Margin}"/> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding WorkSideTxBl}"
<EgtWPFLib5:ComboParamV ParamCmBxList="{Binding Path=WorkSideList,
ParamTxBl="{Binding WorkSideTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamCmBxList="{Binding Path=WorkSideList, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
ValidatesOnDataErrors=True}" Style="{DynamicResource ComboParamV_Margin}"/>
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding ForwardAngleTxBl}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding ForwardAngleTxBl}"
ParamTxBx="{Binding Path=ForwardAngle, ParamTxBx="{Binding Path=ForwardAngle,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding UserNotesTxBl}" <TextBlock Text="{Binding UserNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}" <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox.ToolTip> <EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/> <TextBlock Text="{Binding UserNotesTooltip}"/>
</EgtWPFLib5:EgtTextBox.ToolTip> </EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox> </EgtWPFLib5:EgtTextBox>
<TextBlock Text="{Binding SystemNotesTxBl}" <TextBlock Text="{Binding SystemNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}" Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Visibility="{Binding SysNotes_Visibility}"/> Visibility="{Binding SysNotes_Visibility}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}" <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Visibility="{Binding SysNotes_Visibility}" Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/> IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> </StackPanel>
<StackPanel Name="AutomaticCloseExpanderStackPanel"> <StackPanel Name="AutomaticCloseExpanderStackPanel">
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding SideAngleTxBl}"
ParamTxBl="{Binding SideAngleTxBl}" ParamTxBx="{Binding Path=SideAngle,
ParamTxBx="{Binding Path=SideAngle, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> </StackPanel>
</StackPanel> </Expander>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding InitAngsTxBl}"
ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV
ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<EgtWPFLib5:ComboParamV
ParamTxBl="{Binding LeadInTypeTxBl}"
ParamCmBxList="{Binding Path=LeadInTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StartAddLenTxBl}"
ParamTxBx="{Binding Path=StartAddLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding LiTangTxBl}"
ParamTxBx="{Binding Path=LiTang,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding LiPerpTxBl}"
ParamTxBx="{Binding Path=LiPerp,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:CheckParamV Grid.Column="0" Grid.Row="0"
ParamTxBl="{Binding LiHoleTxBl}"
ParamChBx="{Binding Path=LiHole,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource CheckParamV_Margin}"/>
<EgtWPFLib5:StringParamV Grid.Column="1" Grid.Row="0" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
ParamTxBl="{Binding LiHoleRadTxBl}" Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
ParamTxBx="{Binding Path=LiHoleRad, <Expander.Header>
UpdateSourceTrigger=PropertyChanged, <UniformGrid Columns="2">
ValidatesOnDataErrors=True}" <TextBlock Text="{Binding AdvancedParamMsg}"
Style="{DynamicResource StringParamV_Margin}"/> Margin="2.5"/>
<Button Command="{Binding ShowNoteListComboCommand}"
IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Visibility="{Binding ShowNoteListCombo_Visibility}"
ToolTip="{Binding ShowNoteToolTip}"
Grid.Column="1"
HorizontalAlignment="Right"
Margin="2.5,2.5,7,2.5"
Width="20">
<Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
</Button>
</UniformGrid>
</Expander.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<EgtWPFLib5:StringParamV Grid.Column="0" Grid.Row="1" <Expander Style="{StaticResource ExpanderStyle}">
ParamTxBl="{Binding LpTurnsTxBl}" <Expander.Header>
ParamTxBx="{Binding Path=LpTurns, <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadInTypeTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxList="{Binding Path=LeadInTypeList,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartAddLenTxBl}"
ParamTxBx="{Binding Path=StartAddLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV Grid.Column="1" Grid.Row="1" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiTangTxBl}"
ParamTxBl="{Binding HpTurnsTxBl}" ParamTxBx="{Binding Path=LiTang,
ParamTxBx="{Binding Path=HpTurns, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiPerpTxBl}"
<Expander.Header> ParamTxBx="{Binding Path=LiPerp,
<EgtWPFLib5:ComboParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding LeadOutTypeTxBl}" ValidatesOnDataErrors=True}"
ParamCmBxList="{Binding Path=LeadOutTypeList, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding EndAddLenTxBl}"
ParamTxBx="{Binding Path=EndAddLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding LoTangTxBl}"
ParamTxBx="{Binding Path=LoTang,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding LoPerpTxBl}"
ParamTxBx="{Binding Path=LoPerp,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding AnglesGpBxLbl}" <EgtWPFLib5:CheckParamV Grid.Column="0" Grid.Row="0"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> ParamTxBl="{Binding LiHoleTxBl}"
<StackPanel> ParamChBx="{Binding Path=LiHole,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource CheckParamV_Margin}"/>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:StringParamV Grid.Column="1" Grid.Row="0"
ParamTxBl="{Binding ExtCornTypeTxBl}" ParamTxBl="{Binding LiHoleRadTxBl}"
ParamCmBxList="{Binding Path=ExtCornTypeList, ParamTxBx="{Binding Path=LiHoleRad,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedExtCornType}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:StringParamV Grid.Column="0" Grid.Row="1"
ParamTxBl="{Binding IntCornTypeTxBl}" ParamTxBl="{Binding LpTurnsTxBl}"
ParamCmBxList="{Binding Path=IntCornTypeList, ParamTxBx="{Binding Path=LpTurns,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedIntCornType}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV Grid.Column="1" Grid.Row="1"
ParamTxBl="{Binding CornSlowLenTxBl}" ParamTxBl="{Binding HpTurnsTxBl}"
ParamTxBx="{Binding Path=CornSlowLen, ParamTxBx="{Binding Path=HpTurns,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<EgtWPFLib5:StringParamV <Expander Style="{StaticResource ExpanderStyle}">
ParamTxBl="{Binding CornSlowPercTxBl}" <Expander.Header>
ParamTxBx="{Binding Path=CornSlowPerc, <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadOutTypeTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxList="{Binding Path=LeadOutTypeList,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
</StackPanel> ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
</Expander> Style="{DynamicResource ComboParamV_Margin}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndAddLenTxBl}"
ParamTxBx="{Binding Path=EndAddLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LoTangTxBl}"
ParamTxBx="{Binding Path=LoTang,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LoPerpTxBl}"
ParamTxBx="{Binding Path=LoPerp,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Header="{Binding AnglesGpBxLbl}"
<Expander.Header> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<EgtWPFLib5:CheckParamV <StackPanel>
ParamTxBl="{Binding ProbingGpBxLbl}"
ParamChBx="{Binding Path=Probing, <EgtWPFLib5:ComboParamV ParamTxBl="{Binding ExtCornTypeTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxList="{Binding Path=ExtCornTypeList,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource CheckParamV_Margin}"/> ValidatesOnDataErrors=True}"
</Expander.Header> ParamCmBxSelIndex="{Binding Path=SelectedExtCornType}"
<StackPanel Margin="2"> Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV Grid.Column="1" Grid.Row="0"
ParamTxBl="{Binding ProbingMinDistTxBl}" <EgtWPFLib5:ComboParamV ParamTxBl="{Binding IntCornTypeTxBl}"
ParamTxBx="{Binding Path=ProbingMinDist, ParamCmBxList="{Binding Path=IntCornTypeList,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> ParamCmBxSelIndex="{Binding Path=SelectedIntCornType}"
<EgtWPFLib5:StringParamV Grid.Column="0" Grid.Row="1" Style="{DynamicResource ComboParamV_Margin}"/>
ParamTxBl="{Binding ProbingMaxDistTxBl}"
ParamTxBx="{Binding Path=ProbingMaxDist, <EgtWPFLib5:StringParamV ParamTxBl="{Binding CornSlowLenTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=CornSlowLen,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
</StackPanel> Style="{DynamicResource StringParamV_Margin}"/>
</Expander>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding CornSlowPercTxBl}"
ParamTxBx="{Binding Path=CornSlowPerc,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<EgtWPFLib5:CheckParamV ParamTxBl="{Binding ProbingGpBxLbl}"
ParamChBx="{Binding Path=Probing,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource CheckParamV_Margin}"/>
</Expander.Header>
<StackPanel Margin="2">
<EgtWPFLib5:StringParamV Grid.Column="1" Grid.Row="0"
ParamTxBl="{Binding ProbingMinDistTxBl}"
ParamTxBx="{Binding Path=ProbingMinDist,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV Grid.Column="0" Grid.Row="1"
ParamTxBl="{Binding ProbingMaxDistTxBl}"
ParamTxBx="{Binding Path=ProbingMaxDist,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding OffsetGpBxLbl}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
ParamTxBx="{Binding Path=OffSr,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding ThicknessFeedTxBl}"
ParamTxBx="{Binding Path=ThicknessFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
<Expander Header="{Binding OffsetGpBxLbl}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding OffsetSrTxBl}"
ParamTxBx="{Binding Path=OffSr,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding ThicknessFeedTxBl}"
ParamTxBx="{Binding Path=ThicknessFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class WaterjettingParameterExpanderV Public Class WaterjettingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class WaterjettingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class WaterjettingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class WaterjettingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -1,10 +1,10 @@
<UserControl x:Class="WoodDrillingParameterExpanderV" <UserControl x:Class="WoodDrillingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
@@ -75,146 +75,215 @@
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid> </UniformGrid>
<EgtWPFLib5:CheckParamV <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
ParamTxBl="{Binding InvertTxBl}" ParamChBx="{Binding Path=Invert,
ParamChBx="{Binding Path=Invert, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource CheckParamV_Margin}"/>
Style="{DynamicResource CheckParamV_Margin}"/> <UniformGrid Columns="2">
<UniformGrid Columns="2"> <TextBlock Text="{Binding UserNotesTxBl}"
<TextBlock Text="{Binding UserNotesTxBl}" Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/> <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"> <EgtWPFLib5:EgtTextBox.ToolTip>
<EgtWPFLib5:EgtTextBox.ToolTip> <TextBlock Text="{Binding UserNotesTooltip}"/>
<TextBlock Text="{Binding UserNotesTooltip}"/> </EgtWPFLib5:EgtTextBox.ToolTip>
</EgtWPFLib5:EgtTextBox.ToolTip> </EgtWPFLib5:EgtTextBox>
</EgtWPFLib5:EgtTextBox> <TextBlock Text="{Binding SystemNotesTxBl}"
<TextBlock Text="{Binding SystemNotesTxBl}" Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}" Visibility="{Binding SysNotes_Visibility}"/>
Visibility="{Binding SysNotes_Visibility}"/> <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}" Visibility="{Binding SysNotes_Visibility}"
Visibility="{Binding SysNotes_Visibility}" IsReadOnly="True"/>
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> </StackPanel>
<StackPanel Name="AutomaticCloseExpanderStackPanel"> <StackPanel Name="AutomaticCloseExpanderStackPanel">
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
ParamTxBl="{Binding StartPosTxBl}" ParamTxBx="{Binding Path=StartPos,
ParamTxBx="{Binding Path=StartPos, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding ReturnPosTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=ReturnPos,
ParamTxBl="{Binding ReturnPosTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=ReturnPos, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding ThrouAddLenTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=ThrouAddLen,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding ThrouAddLenTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=ThrouAddLen, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=StepPar,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding StepParTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=StepPar, <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartSlowLenTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=StartSlowLen,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding StartSlowLenTxBl}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding EndSlowLenTxBl}"
ParamTxBx="{Binding Path=StartSlowLen, ParamTxBx="{Binding Path=EndSlowLen,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV </StackPanel>
ParamTxBl="{Binding EndSlowLenTxBl}" </Expander>
ParamTxBx="{Binding Path=EndSlowLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <Expander.Header>
<EgtWPFLib5:StringParamV <UniformGrid Columns="2">
ParamTxBl="{Binding InitAngsTxBl}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamTxBx="{Binding Path=InitAngs, Margin="2.5"/>
UpdateSourceTrigger=PropertyChanged, <Button Command="{Binding ShowNoteListComboCommand}"
ValidatesOnDataErrors=True}" IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Style="{DynamicResource StringParamV_Margin}"/> Visibility="{Binding ShowNoteListCombo_Visibility}"
<EgtWPFLib5:StringParamV ToolTip="{Binding ShowNoteToolTip}"
ParamTxBl="{Binding BlockedAxisTxBl}" Grid.Column="1"
ParamTxBx="{Binding Path=BlockedAxis, HorizontalAlignment="Right"
UpdateSourceTrigger=PropertyChanged, Margin="2.5,2.5,7,2.5"
ValidatesOnDataErrors=True}" Width="20">
Style="{DynamicResource StringParamV_Margin}"/> <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
<EgtWPFLib5:ComboParamV </Button>
ParamTxBl="{Binding SolChoiceTypeTxBl}" </UniformGrid>
ParamCmBxList="{Binding Path=SolChoiceTypeList, </Expander.Header>
UpdateSourceTrigger=PropertyChanged, <Grid>
ValidatesOnDataErrors=True, <Grid.RowDefinitions>
Mode=OneWay}" <RowDefinition Height="1*"/>
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" <RowDefinition Height="Auto"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Grid.RowDefinitions>
</StackPanel> <StackPanel>
</Expander> <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class WoodDrillingParameterExpanderV Public Class WoodDrillingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class WoodDrillingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class WoodDrillingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class WoodDrillingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -1,10 +1,10 @@
<UserControl x:Class="WoodMillingParameterExpanderV" <UserControl x:Class="WoodMillingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
@@ -75,342 +75,385 @@
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid> </UniformGrid>
<EgtWPFLib5:CheckParamV <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
ParamTxBl="{Binding InvertTxBl}" ParamChBx="{Binding Path=Invert,
ParamChBx="{Binding Path=Invert, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource CheckParamV_Margin}"/>
Style="{DynamicResource CheckParamV_Margin}"/> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding WorkSideTxBl}"
<EgtWPFLib5:ComboParamV ParamCmBxList="{Binding Path=WorkSideList,
ParamTxBl="{Binding WorkSideTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamCmBxList="{Binding Path=WorkSideList, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
ValidatesOnDataErrors=True}" Style="{DynamicResource ComboParamV_Margin}"/>
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}" <UniformGrid Columns="2">
Style="{DynamicResource ComboParamV_Margin}"/> <TextBlock Text="{Binding UserNotesTxBl}"
<UniformGrid Columns="2"> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TextBlock Text="{Binding UserNotesTxBl}" <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}" <EgtWPFLib5:EgtTextBox.ToolTip>
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"> <TextBlock Text="{Binding UserNotesTooltip}"/>
<EgtWPFLib5:EgtTextBox.ToolTip> </EgtWPFLib5:EgtTextBox.ToolTip>
<TextBlock Text="{Binding UserNotesTooltip}"/> </EgtWPFLib5:EgtTextBox>
</EgtWPFLib5:EgtTextBox.ToolTip> <TextBlock Text="{Binding SystemNotesTxBl}"
</EgtWPFLib5:EgtTextBox> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
<TextBlock Text="{Binding SystemNotesTxBl}" Visibility="{Binding SysNotes_Visibility}"/>
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}" <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding SysNotes_Visibility}"/> Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}" Visibility="{Binding SysNotes_Visibility}"
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}" IsReadOnly="True"/>
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> </StackPanel>
<StackPanel Name="AutomaticCloseExpanderStackPanel"> <StackPanel Name="AutomaticCloseExpanderStackPanel">
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
ParamTxBl="{Binding StartPosTxBl}" ParamTxBx="{Binding Path=StartPos,
ParamTxBx="{Binding Path=StartPos, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding OverLapTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=OverLap,
ParamTxBl="{Binding OverLapTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=OverLap, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:ComboParamV ParamTxBl="{Binding StepTypeTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamCmBxList="{Binding Path=StepTypeList,
<EgtWPFLib5:ComboParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding StepTypeTxBl}" ValidatesOnDataErrors=True}"
ParamCmBxList="{Binding Path=StepTypeList, ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource ComboParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
ParamCmBxSelIndex="{Binding Path=SelectedStepType}" ParamTxBx="{Binding Path=StepPar,
Style="{DynamicResource ComboParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding StepParTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=StepPar, <EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=OffSr,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding OffsetSrTxBl}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
ParamTxBx="{Binding Path=OffSr, ParamTxBx="{Binding Path=OffSl,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV </StackPanel>
ParamTxBl="{Binding OffsetSlTxBl}" </Expander>
ParamTxBx="{Binding Path=OffSl,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <Expander.Header>
<EgtWPFLib5:CheckParamV <UniformGrid Columns="2">
ParamTxBl="{Binding InvertToolDirTxBl}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamChBx="{Binding Path=InvertToolDir, Margin="2.5"/>
UpdateSourceTrigger=PropertyChanged, <Button Command="{Binding ShowNoteListComboCommand}"
ValidatesOnDataErrors=True}" IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Style="{DynamicResource CheckParamV_Margin}"/> Visibility="{Binding ShowNoteListCombo_Visibility}"
<EgtWPFLib5:ComboParamV ToolTip="{Binding ShowNoteToolTip}"
ParamTxBl="{Binding FaceUseTypeTxBl}" Grid.Column="1"
ParamCmBxList="{Binding Path=FaceUseTypeList, HorizontalAlignment="Right"
UpdateSourceTrigger=PropertyChanged, Margin="2.5,2.5,7,2.5"
ValidatesOnDataErrors=True}" Width="20">
ParamCmBxSelIndex="{Binding Path=SelectedFaceUseType}" <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Button>
<EgtWPFLib5:StringParamV </UniformGrid>
ParamTxBl="{Binding InitAngsTxBl}" </Expander.Header>
ParamTxBx="{Binding Path=InitAngs, <Grid>
UpdateSourceTrigger=PropertyChanged, <Grid.RowDefinitions>
ValidatesOnDataErrors=True}" <RowDefinition Height="1*"/>
Style="{DynamicResource StringParamV_Margin}"/> <RowDefinition Height="Auto"/>
<EgtWPFLib5:StringParamV </Grid.RowDefinitions>
ParamTxBl="{Binding BlockedAxisTxBl}" <StackPanel>
ParamTxBx="{Binding Path=BlockedAxis, <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertToolDirTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamChBx="{Binding Path=InvertToolDir,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:ComboParamV Style="{DynamicResource CheckParamV_Margin}"/>
ParamTxBl="{Binding SolChoiceTypeTxBl}" <EgtWPFLib5:ComboParamV ParamTxBl="{Binding FaceUseTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList, ParamCmBxList="{Binding Path=FaceUseTypeList,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True, ValidatesOnDataErrors=True}"
Mode=OneWay}" ParamCmBxSelIndex="{Binding Path=SelectedFaceUseType}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
</StackPanel> ParamTxBx="{Binding Path=InitAngs,
</Expander> UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadInTypeTxBl}"
ParamTxBl="{Binding LeadInTypeTxBl}" ParamCmBxList="{Binding Path=LeadInTypeList,
ParamCmBxList="{Binding Path=LeadInTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel>
<StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartAddLenTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=StartAddLen,
ParamTxBl="{Binding StartAddLenTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=StartAddLen, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiTangTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=LiTang,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding LiTangTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=LiTang, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiPerpTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=LiPerp,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding LiPerpTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=LiPerp, <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiElevTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=LiElev,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding LiElevTxBl}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LiCompLenTxBl}"
ParamTxBx="{Binding Path=LiElev, ParamTxBx="{Binding Path=LiCompLen,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV </StackPanel>
ParamTxBl="{Binding LiCompLenTxBl}" </Expander>
ParamTxBx="{Binding Path=LiCompLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadOutTypeTxBl}"
ParamTxBl="{Binding LeadOutTypeTxBl}" ParamCmBxList="{Binding Path=LeadOutTypeList,
ParamCmBxList="{Binding Path=LeadOutTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel>
<StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding EndAddLenTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=EndAddLen,
ParamTxBl="{Binding EndAddLenTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=EndAddLen, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LoTangTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=LoTang,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding LoTangTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=LoTang, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding LoPerpTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=LoPerp,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding LoPerpTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=LoPerp, <EgtWPFLib5:StringParamV ParamTxBl="{Binding LoElevTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=LoElev,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding LoElevTxBl}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding LoCompLenTxBl}"
ParamTxBx="{Binding Path=LoElev, ParamTxBx="{Binding Path=LoCompLen,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV </StackPanel>
ParamTxBl="{Binding LoCompLenTxBl}" </Expander>
ParamTxBx="{Binding Path=LoCompLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:CheckParamV <EgtWPFLib5:CheckParamV ParamTxBl="{Binding LeaveTabTxBl}"
ParamTxBl="{Binding LeaveTabTxBl}" ParamChBx="{Binding Path=LeaveTab,
ParamChBx="{Binding Path=LeaveTab, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource CheckParamV_Margin}"/>
Style="{DynamicResource CheckParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel Margin="2">
<StackPanel Margin="2"> <EgtWPFLib5:StringParamV ParamTxBl="{Binding TabLenTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=TabLen,
ParamTxBl="{Binding TabLenTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=TabLen, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, ParamErrorMsg="{Binding Path=TabLenErrorMsg}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
ParamErrorMsg="{Binding Path=TabLenErrorMsg}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding TabHeightTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=TabHeight,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding TabHeightTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=TabHeight, ParamErrorMsg="{Binding Path=TabHeightErrorMsg}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding TabAngleTxBl}"
ParamErrorMsg="{Binding Path=TabHeightErrorMsg}" ParamTxBx="{Binding Path=TabAngle,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding TabAngleTxBl}" ParamErrorMsg="{Binding Path=TabAngleErrorMsg}"
ParamTxBx="{Binding Path=TabAngle, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding TabDistTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=TabDist,
ParamErrorMsg="{Binding Path=TabAngleErrorMsg}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV ParamErrorMsg="{Binding Path=TabDistErrorMsg}"
ParamTxBl="{Binding TabDistTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=TabDist, <EgtWPFLib5:StringParamV ParamTxBl="{Binding TabMinTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=TabMin,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
ParamErrorMsg="{Binding Path=TabDistErrorMsg}" ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> ParamErrorMsg="{Binding Path=TabMinErrorMsg}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding TabMinTxBl}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding TabMaxTxBl}"
ParamTxBx="{Binding Path=TabMin, ParamTxBx="{Binding Path=TabMax,
UpdateSourceTrigger=PropertyChanged, UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=TabMinErrorMsg}" ParamErrorMsg="{Binding Path=TabMaxErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/> Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV </StackPanel>
ParamTxBl="{Binding TabMaxTxBl}" </Expander>
ParamTxBx="{Binding Path=TabMax,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=TabMaxErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:CheckParamV <EgtWPFLib5:CheckParamV ParamTxBl="{Binding OscEnableTxBl}"
ParamTxBl="{Binding OscEnableTxBl}" ParamChBx="{Binding Path=OscEnable,
ParamChBx="{Binding Path=OscEnable, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource CheckParamV_Margin}"/>
Style="{DynamicResource CheckParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel Margin="2">
<StackPanel Margin="2"> <EgtWPFLib5:StringParamV ParamTxBl="{Binding OscHeightTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=OscHeight,
ParamTxBl="{Binding OscHeightTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=OscHeight, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding OscRampLenTxBl}"
Style="{DynamicResource StringParamV_Margin}"/> ParamTxBx="{Binding Path=OscRampLen,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding OscRampLenTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=OscRampLen, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding OscFlatLenTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=OscFlatLen,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding OscFlatLenTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=OscFlatLen, </StackPanel>
UpdateSourceTrigger=PropertyChanged, </Expander>
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/> <Expander Style="{StaticResource ExpanderStyle}">
</StackPanel> <Expander.Header>
</Expander> <TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=SpeedErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamErrorMsg="{Binding Path=SpeedErrorMsg}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class WoodMillingParameterExpanderV Public Class WoodMillingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class WoodMillingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class WoodMillingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class WoodMillingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -1,10 +1,10 @@
<UserControl x:Class="WoodSawingParameterExpanderV" <UserControl x:Class="WoodSawingParameterExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<UserControl.Resources> <UserControl.Resources>
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/> <EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
@@ -75,225 +75,286 @@
<StackPanel Name="OperationParametersStackPanel"> <StackPanel Name="OperationParametersStackPanel">
<StackPanel Name="OperationFirstParametersStackPanel"> <StackPanel Name="OperationFirstParametersStackPanel">
<UniformGrid Columns="2"> <UniformGrid Columns="2">
<TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/> <TextBlock Text="{Binding DepthStrTxBl}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource DepthUnitConverter}}" Converter={StaticResource DepthUnitConverter}}"
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/> Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
</UniformGrid> </UniformGrid>
<EgtWPFLib5:CheckParamV <EgtWPFLib5:CheckParamV ParamTxBl="{Binding InvertTxBl}"
ParamTxBl="{Binding InvertTxBl}" ParamChBx="{Binding Path=Invert,
ParamChBx="{Binding Path=Invert, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource CheckParamV_Margin}"/>
Style="{DynamicResource CheckParamV_Margin}"/> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding WorkSideTxBl}"
<EgtWPFLib5:ComboParamV ParamCmBxList="{Binding Path=WorkSideList,
ParamTxBl="{Binding WorkSideTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamCmBxList="{Binding Path=WorkSideList, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
ValidatesOnDataErrors=True}" Style="{DynamicResource ComboParamV_Margin}"/>
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}" <EgtWPFLib5:ComboParamV ParamTxBl="{Binding HeadSideTxBl}"
Style="{DynamicResource ComboParamV_Margin}"/> ParamCmBxList="{Binding Path=HeadSideList,
<EgtWPFLib5:ComboParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding HeadSideTxBl}" ValidatesOnDataErrors=True}"
ParamCmBxList="{Binding Path=HeadSideList, ParamCmBxSelIndex="{Binding Path=SelectedHeadSide}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource ComboParamV_Margin}"/>
ValidatesOnDataErrors=True}" <UniformGrid Columns="2">
ParamCmBxSelIndex="{Binding Path=SelectedHeadSide}" <TextBlock Text="{Binding UserNotesTxBl}"
Style="{DynamicResource ComboParamV_Margin}"/> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<UniformGrid Columns="2"> <EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
<TextBlock Text="{Binding UserNotesTxBl}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/> <EgtWPFLib5:EgtTextBox.ToolTip>
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}" <TextBlock Text="{Binding UserNotesTooltip}"/>
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"> </EgtWPFLib5:EgtTextBox.ToolTip>
<EgtWPFLib5:EgtTextBox.ToolTip> </EgtWPFLib5:EgtTextBox>
<TextBlock Text="{Binding UserNotesTooltip}"/> <TextBlock Text="{Binding SystemNotesTxBl}"
</EgtWPFLib5:EgtTextBox.ToolTip> Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"
</EgtWPFLib5:EgtTextBox> Visibility="{Binding SysNotes_Visibility}"/>
<TextBlock Text="{Binding SystemNotesTxBl}" <EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}" Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Visibility="{Binding SysNotes_Visibility}"/> Visibility="{Binding SysNotes_Visibility}"
<EgtWPFLib5:EgtTextBox Text="{Binding SystemNotes, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="True"/>
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}"
Visibility="{Binding SysNotes_Visibility}"
IsReadOnly="True"/>
</UniformGrid> </UniformGrid>
</StackPanel> </StackPanel>
<StackPanel Name="AutomaticCloseExpanderStackPanel"> <StackPanel Name="AutomaticCloseExpanderStackPanel">
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander" <Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <StackPanel>
<EgtWPFLib5:StringParamV <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartPosTxBl}"
ParamTxBl="{Binding StartPosTxBl}" ParamTxBx="{Binding Path=StartPos,
ParamTxBx="{Binding Path=StartPos, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" Style="{DynamicResource StringParamV_Margin}"/>
Style="{DynamicResource StringParamV_Margin}"/> <EgtWPFLib5:ComboParamV ParamTxBl="{Binding StepTypeTxBl}"
<EgtWPFLib5:ComboParamV ParamCmBxList="{Binding Path=StepTypeList,
ParamTxBl="{Binding StepTypeTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamCmBxList="{Binding Path=StepTypeList, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
ValidatesOnDataErrors=True}" Style="{DynamicResource ComboParamV_Margin}"/>
ParamCmBxSelIndex="{Binding Path=SelectedStepType}" <EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
Style="{DynamicResource ComboParamV_Margin}"/> ParamTxBx="{Binding Path=StepPar,
<EgtWPFLib5:StringParamV UpdateSourceTrigger=PropertyChanged,
ParamTxBl="{Binding StepParTxBl}" ValidatesOnDataErrors=True}"
ParamTxBx="{Binding Path=StepPar, Style="{DynamicResource StringParamV_Margin}"/>
UpdateSourceTrigger=PropertyChanged, <EgtWPFLib5:StringParamV ParamTxBl="{Binding SideAngleTxBl}"
ValidatesOnDataErrors=True}" ParamTxBx="{Binding Path=SideAngle,
Style="{DynamicResource StringParamV_Margin}"/> UpdateSourceTrigger=PropertyChanged,
<EgtWPFLib5:StringParamV ValidatesOnDataErrors=True}"
ParamTxBl="{Binding SideAngleTxBl}" Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBx="{Binding Path=SideAngle, <EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
UpdateSourceTrigger=PropertyChanged, ParamTxBx="{Binding Path=OffSl,
ValidatesOnDataErrors=True}" UpdateSourceTrigger=PropertyChanged,
Style="{DynamicResource StringParamV_Margin}"/> ValidatesOnDataErrors=True}"
<EgtWPFLib5:StringParamV Style="{DynamicResource StringParamV_Margin}"/>
ParamTxBl="{Binding OffsetSlTxBl}" </StackPanel>
ParamTxBx="{Binding Path=OffSl, </Expander>
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam" <Expander Name="AdvancedParam" IsExpanded="{Binding AdvancedParamIsExpander}"
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"> Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
<StackPanel> <Expander.Header>
<EgtWPFLib5:StringParamV <UniformGrid Columns="2">
ParamTxBl="{Binding InitAngsTxBl}" <TextBlock Text="{Binding AdvancedParamMsg}"
ParamTxBx="{Binding Path=InitAngs, Margin="2.5"/>
UpdateSourceTrigger=PropertyChanged, <Button Command="{Binding ShowNoteListComboCommand}"
ValidatesOnDataErrors=True}" IsEnabled="{Binding ShowNoteListCombo_IsEnable}"
Style="{DynamicResource StringParamV_Margin}"/> Visibility="{Binding ShowNoteListCombo_Visibility}"
<EgtWPFLib5:StringParamV ToolTip="{Binding ShowNoteToolTip}"
ParamTxBl="{Binding BlockedAxisTxBl}" Grid.Column="1"
ParamTxBx="{Binding Path=BlockedAxis, HorizontalAlignment="Right"
UpdateSourceTrigger=PropertyChanged, Margin="2.5,2.5,7,2.5"
ValidatesOnDataErrors=True}" Width="20">
Style="{DynamicResource StringParamV_Margin}"/> <Image Source="/Resources/Note/+.png" Stretch="Uniform"/>
<EgtWPFLib5:ComboParamV </Button>
ParamTxBl="{Binding SolChoiceTypeTxBl}" </UniformGrid>
ParamCmBxList="{Binding Path=SolChoiceTypeList, </Expander.Header>
UpdateSourceTrigger=PropertyChanged, <Grid>
ValidatesOnDataErrors=True, <Grid.RowDefinitions>
Mode=OneWay}" <RowDefinition Height="1*"/>
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}" <RowDefinition Height="Auto"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Grid.RowDefinitions>
</StackPanel> <StackPanel>
</Expander> <EgtWPFLib5:StringParamV ParamTxBl="{Binding InitAngsTxBl}"
ParamTxBx="{Binding Path=InitAngs,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding BlockedAxisTxBl}"
ParamTxBx="{Binding Path=BlockedAxis,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding SolChoiceTypeTxBl}"
ParamCmBxList="{Binding Path=SolChoiceTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True,
Mode=OneWay}"
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</StackPanel>
<Grid Grid.Row="1" Margin="0,5,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ItemsControl ItemsSource="{Binding NotesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}"
Margin="0,5.5,29,0"
Width="82"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<TabControl SelectedIndex="{Binding SelTypeValue}"
Grid.Column="1"
Background="Transparent"
BorderBrush="Transparent">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="TEXT">
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="False"/>
</TabItem>
<TabItem Header="CHECKBOX">
<CheckBox IsChecked="{Binding Value}"/>
</TabItem>
</TabControl>
<Button Command="{Binding RemoveItemNoteCommand}"
Grid.Column="2"
Width="20"
Height="20"
Margin="5,0,0,0">
<Image Source="/Resources/Note/-.png" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ComboBox ItemsSource="{Binding NotesListCombo}"
SelectedItem="{Binding SelNoteItemCombo}"
Grid.Row="1"
Grid.ColumnSpan="1"
Visibility="{Binding ComboAddVisibility}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"
Margin="2.5"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadInTypeTxBl}"
ParamTxBl="{Binding LeadInTypeTxBl}" ParamCmBxList="{Binding Path=LeadInTypeList,
ParamCmBxList="{Binding Path=LeadInTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel>
<StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding StartAddLenTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=StartAddLen,
ParamTxBl="{Binding StartAddLenTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=StartAddLen, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" </StackPanel>
Style="{DynamicResource StringParamV_Margin}"/> </Expander>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadOutTypeTxBl}"
ParamTxBl="{Binding LeadOutTypeTxBl}" ParamCmBxList="{Binding Path=LeadOutTypeList,
ParamCmBxList="{Binding Path=LeadOutTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ValidatesOnDataErrors=True}" ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel>
<StackPanel> <EgtWPFLib5:StringParamV ParamTxBl="{Binding EndAddLenTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=EndAddLen,
ParamTxBl="{Binding EndAddLenTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=EndAddLen, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" </StackPanel>
Style="{DynamicResource StringParamV_Margin}"/> </Expander>
</StackPanel>
</Expander>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding ExtLinkTypeTxBl}"
ParamTxBl="{Binding ExtLinkTypeTxBl}" ParamCmBxList="{Binding Path=ExtLinkTypeList,
ParamCmBxList="{Binding Path=ExtLinkTypeList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True,
ValidatesOnDataErrors=True, Mode=OneWay}"
Mode=OneWay}" ParamCmBxSelIndex="{Binding Path=SelectedExtLinkType}"
ParamCmBxSelIndex="{Binding Path=SelectedExtLinkType}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/>
<Expander Style="{StaticResource ExpanderStyle}"> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<EgtWPFLib5:ComboParamV <EgtWPFLib5:ComboParamV ParamTxBl="{Binding CurveUseTxBl}"
ParamTxBl="{Binding CurveUseTxBl}" ParamCmBxList="{Binding Path=CurveUseList,
ParamCmBxList="{Binding Path=CurveUseList, UpdateSourceTrigger=PropertyChanged,
UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True,
ValidatesOnDataErrors=True, Mode=OneWay}"
Mode=OneWay}" ParamCmBxSelIndex="{Binding Path=SelectedCurveUse}"
ParamCmBxSelIndex="{Binding Path=SelectedCurveUse}" Style="{DynamicResource ComboParamV_Margin}"/>
Style="{DynamicResource ComboParamV_Margin}"/> </Expander.Header>
</Expander.Header> <StackPanel Margin="2">
<StackPanel Margin="2"> <EgtWPFLib5:StringParamV ParamTxBl="{Binding ApproxTxBl}"
<EgtWPFLib5:StringParamV ParamTxBx="{Binding Path=Approx,
ParamTxBl="{Binding ApproxTxBl}" UpdateSourceTrigger=PropertyChanged,
ParamTxBx="{Binding Path=Approx, ValidatesOnDataErrors=True}"
UpdateSourceTrigger=PropertyChanged, Style="{DynamicResource StringParamV_Margin}"/>
ValidatesOnDataErrors=True}" </StackPanel>
Style="{DynamicResource StringParamV_Margin}"/> </Expander>
</StackPanel>
</Expander> <Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding SpeedTxBl}"
ParamTxBx="{Binding Path=Speed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding FeedTxBl}"
ParamTxBx="{Binding Path=Feed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding TipFeedTxBl}"
ParamTxBx="{Binding Path=TipFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding StartFeedTxBl}"
ParamTxBx="{Binding Path=StartFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV
ParamTxBl="{Binding EndFeedTxBl}"
ParamTxBx="{Binding Path=EndFeed,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Interactivity:Interaction.Behaviors>
<EgtCAM5:AutomaticCloseExpander/>
</Interactivity:Interaction.Behaviors>
</StackPanel>
</StackPanel>
</UserControl> </UserControl>
@@ -3,17 +3,17 @@ Imports EgtWPFLib5.EgtFloating
Public Class WoodSawingParameterExpanderV Public Class WoodSawingParameterExpanderV
Private EgtFloatingTray As EgtFloatingTray Private m_RightTrayV As RightTrayV
Private EgtFloatingPanel As EgtFloatingPanel Private EgtFloatingPanel As EgtFloatingPanel
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then If m_bFirst Then
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) m_RightTrayV = FindAncestor(Of RightTrayV)(Me)
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged AddHandler m_RightTrayV.SizeChanged, AddressOf RightTrayV_SizeChanged
PanelHeight = EgtFloatingPanel.ActualHeight PanelHeight = EgtFloatingPanel.DesiredSize.Height
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
m_bFirst = False m_bFirst = False
End If End If
@@ -22,7 +22,7 @@ Public Class WoodSawingParameterExpanderV
Dim m_bSizeChanging As Boolean = False Dim m_bSizeChanging As Boolean = False
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) Private Sub RightTrayV_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
If m_bSizeChanging Then Return If m_bSizeChanging Then Return
m_bSizeChanging = True m_bSizeChanging = True
CalculateOperationParametersStackPanelMaxHeight() CalculateOperationParametersStackPanelMaxHeight()
@@ -32,6 +32,7 @@ Public Class WoodSawingParameterExpanderV
Dim PanelHeight As Double = 0 Dim PanelHeight As Double = 0
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
' ricalcola spazio utilizzabile quando modificata dimensione finestra e quindi dimensione della tray
Private Sub CalculateOperationParametersStackPanelMaxHeight() Private Sub CalculateOperationParametersStackPanelMaxHeight()
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
Dim OpenedExpanderList As New List(Of Boolean) Dim OpenedExpanderList As New List(Of Boolean)
@@ -53,7 +54,7 @@ Public Class WoodSawingParameterExpanderV
OpenedExpanderList.Add(False) OpenedExpanderList.Add(False)
End If End If
Next Next
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight Dim RemainingHeight As Double = m_RightTrayV.ActualHeight - PanelHeight
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
@@ -170,6 +170,8 @@ Public Class MachiningOpListBoxItem
Return "" Return ""
Case MCH_OY.CHISELING Case MCH_OY.CHISELING
Return "" Return ""
Case MCH_OY.FIVEAXISMILLING
Return ""
Case Else Case Else
Return String.Empty Return String.Empty
End Select End Select
@@ -106,26 +106,32 @@ Public Class OperationListBoxItem
Dim EntityIndex As Integer = 0 Dim EntityIndex As Integer = 0
Dim SubEntityIndex As Integer = 0 Dim SubEntityIndex As Integer = 0
While EgtGetMachiningGeometry(CountIndex, EntityIndex, SubEntityIndex) While EgtGetMachiningGeometry(CountIndex, EntityIndex, SubEntityIndex)
EgtSelectObj( EntityIndex) EgtSelectObj(EntityIndex)
If EgtGetType( EntityIndex) = GDB_TY.SRF_MESH Or EgtGetType( EntityIndex) = GDB_TY.SRF_FRGN Then If EgtGetType(EntityIndex) = GDB_TY.SRF_MESH Or EgtGetType(EntityIndex) = GDB_TY.SRF_FRGN Then
SelData.AddIdSub(EntityIndex, SubEntityIndex) SelData.AddIdSub(EntityIndex, SubEntityIndex)
End If End If
CountIndex += 1 CountIndex += 1
End While End While
End If End If
' Notifico al contentcontrol OperationParameter di aggiornarsi ' Notifico al contentcontrol OperationParameter di aggiornarsi
If Not IsNothing( Map.refOperationParametersExpanderVM) Then If Not IsNothing(Map.refOperationParametersExpanderVM) Then
Map.refOperationParametersExpanderVM.OnPropertyChanged("OperationParameters") Map.refOperationParametersExpanderVM.OnPropertyChanged("OperationParameters")
End If End If
Map.refOperationsListExpanderVM.OnPropertyChanged("MoveUp_IsEnabled") Map.refOperationsListExpanderVM.OnPropertyChanged("MoveUp_IsEnabled")
Map.refOperationsListExpanderVM.OnPropertyChanged("MoveDown_IsEnabled") Map.refOperationsListExpanderVM.OnPropertyChanged("MoveDown_IsEnabled")
' Notifico l'operazione selezionata all'expander con l'albero delle lavorazioni aggiungibili ' Notifico l'operazione selezionata all'expander con l'albero delle lavorazioni aggiungibili
If Not IsNothing( Map.refMachiningTreeExpanderVM) Then If Not IsNothing(Map.refMachiningTreeExpanderVM) Then
Map.refMachiningTreeExpanderVM.nSelectedOperationId = Me.Id Map.refMachiningTreeExpanderVM.nSelectedOperationId = Me.Id
End If End If
' Aggiorno visualizzazione ' Aggiorno visualizzazione
EgtDraw() EgtDraw()
End If End If
' Resetto valori slider
If Not IsNothing(Map.refMachiningParameterExpanderVM) Then
Map.refMachiningParameterExpanderVM.SetSliderScale(EgtGetPreviewMachiningToolStepCount())
Map.refMachiningParameterExpanderVM.ResetSliderValue()
End If
'OnPropertyChanged("ToolExpanderHeader") 'OnPropertyChanged("ToolExpanderHeader")
Map.refOperationsListExpanderVM.OnPropertyChanged("DuplicateCmd_IsEnabled") Map.refOperationsListExpanderVM.OnPropertyChanged("DuplicateCmd_IsEnabled")
Map.refOperationsListExpanderVM.OnPropertyChanged("MachToDb_IsEnabled") Map.refOperationsListExpanderVM.OnPropertyChanged("MachToDb_IsEnabled")
@@ -70,9 +70,10 @@ Public Class OperationParametersExpanderVM
Return m_DispositionParameterExpander Return m_DispositionParameterExpander
Else Else
If IsNothing(m_MachiningParameterExpander) Then If IsNothing(m_MachiningParameterExpander) Then
m_MachiningParameterExpander = New MachiningParameterExpanderV
m_MachiningParameterExpanderVM = New MachiningParameterExpanderVM() m_MachiningParameterExpanderVM = New MachiningParameterExpanderVM()
m_MachiningParameterExpander.DataContext = m_MachiningParameterExpanderVM m_MachiningParameterExpander = New MachiningParameterExpanderV With {
.DataContext = m_MachiningParameterExpanderVM
}
End If End If
m_MachiningParameterExpanderVM.NotifyPropertyChanged("ParamExpanderPageV") m_MachiningParameterExpanderVM.NotifyPropertyChanged("ParamExpanderPageV")
Return m_MachiningParameterExpander Return m_MachiningParameterExpander
@@ -170,11 +171,15 @@ Public Class OperationParametersExpanderVM
Map.refProjectVM.SceneSelMode = OptionModule.m_SelGeomChiseling Map.refProjectVM.SceneSelMode = OptionModule.m_SelGeomChiseling
Case MCH_OY.SURFFINISHING Case MCH_OY.SURFFINISHING
Map.refProjectVM.SceneSelMode = OptionModule.m_SelGeomSurfFinishing Map.refProjectVM.SceneSelMode = OptionModule.m_SelGeomSurfFinishing
Case MCH_OY.SURFROUGHING
Map.refProjectVM.SceneSelMode = OptionModule.m_SelGeomSurfRoughing
Case MCH_OY.WATERJETTING Case MCH_OY.WATERJETTING
Map.refProjectVM.SceneSelMode = OptionModule.m_SelGeomWaterJetting Map.refProjectVM.SceneSelMode = OptionModule.m_SelGeomWaterJetting
Case MCH_OY.FIVEAXISMILLING
Map.refProjectVM.SceneSelMode = OptionModule.m_SelGeomFiveAxMilling
End Select End Select
' Imposto visualizzazione utensile ' Imposto visualizzazione utensile
DirectCast(m_MachiningParameterExpander.DataContext, MachiningParameterExpanderVM).ViewTool = True Map.refMachiningParameterExpanderVM.SetViewTool( True)
End If End If
OnPropertyChanged("ParametersIsExpanded") OnPropertyChanged("ParametersIsExpanded")
Return True Return True
@@ -204,7 +209,7 @@ Public Class OperationParametersExpanderVM
EgtDraw() EgtDraw()
Else Else
' Nascondo visualizzazione utensile ' Nascondo visualizzazione utensile
DirectCast(m_MachiningParameterExpander.DataContext, MachiningParameterExpanderVM).ViewTool = False Map.refMachiningParameterExpanderVM.SetViewTool( False)
End If End If
ParametersExpanderName = String.Empty ParametersExpanderName = String.Empty
' Disabilito la selezione delle lavorazioni ' Disabilito la selezione delle lavorazioni
@@ -329,10 +329,11 @@ Public Class OperationsListExpanderVM
' Aggiungo la nuova fase ' Aggiungo la nuova fase
Dim nPhase As Integer = EgtAddPhase() Dim nPhase As Integer = EgtAddPhase()
Dim nDispId As Integer = EgtGetPhaseDisposition(nPhase) Dim nDispId As Integer = EgtGetPhaseDisposition(nPhase)
' Confermo grezzi e bloccaggi sopra salvati ' Confermo grezzi, movimenti assi di disposizione e bloccaggi sopra salvati
For Each nId As Integer In vRawId For Each nId As Integer In vRawId
EgtKeepRawPart(nId, nLastPhase) EgtKeepRawPart(nId, nLastPhase)
Next Next
EgtKeepAllDispAxes( nLastPhase)
For Each nId As Integer In vFxtId For Each nId As Integer In vFxtId
EgtKeepFixture(nId, nLastPhase) EgtKeepFixture(nId, nLastPhase)
Next Next
@@ -433,6 +434,10 @@ Public Class OperationsListExpanderVM
If EgtGetOperationMode(selOperation.Id) Then If EgtGetOperationMode(selOperation.Id) Then
Map.refOperationParametersExpanderVM.ParametersIsExpanded = True Map.refOperationParametersExpanderVM.ParametersIsExpanded = True
If EgtGetOperationType(selOperation.Id) <> MCH_OY.DISP Then
Map.refMachiningParameterExpanderVM.SetSliderScale( EgtGetPreviewMachiningToolStepCount())
Map.refMachiningParameterExpanderVM.ResetSliderValue()
End If
End If End If
End Sub End Sub
@@ -829,6 +834,7 @@ Public Class OperationsListExpanderVM
MCH_MP.OFFSET, MCH_MP.OFFSET,
MCH_MP.STEPEXTARC, MCH_MP.STEPEXTARC,
MCH_MP.STEPINTARC, MCH_MP.STEPINTARC,
MCH_MP.SUBSTEP,
MCH_MP.SIDESTEP, MCH_MP.SIDESTEP,
MCH_MP.VERTFEED, MCH_MP.VERTFEED,
MCH_MP.STEPSIDEANG, MCH_MP.STEPSIDEANG,
@@ -1250,7 +1256,7 @@ Public Class OperationsListExpanderVM
If m_NewMachining Then EndNewMachining(GDB_ID.NULL) If m_NewMachining Then EndNewMachining(GDB_ID.NULL)
' Disabilito visualizzazione utensile ' Disabilito visualizzazione utensile
If Not IsNothing(m_MachiningParameterExpander) Then If Not IsNothing(m_MachiningParameterExpander) Then
DirectCast(m_MachiningParameterExpander.DataContext, MachiningParameterExpanderVM).ViewTool = False Map.refMachiningParameterExpanderVM.SetViewTool( False)
End If End If
' Deseleziono le operazioni correnti per eliminare il mark ' Deseleziono le operazioni correnti per eliminare il mark
For Each Operation In OperationList For Each Operation In OperationList
@@ -33,6 +33,17 @@ Public Class SimulationExpanderVM
End Set End Set
End Property End Property
Private m_bOnlySimulation As Boolean = False
Public Property bOnlySimulation As Boolean
Get
Return m_bOnlySimulation
End Get
Set(value As Boolean)
m_bOnlySimulation = value
NotifyPropertyChanged("bOnlySimulation")
End Set
End Property
Public Overrides Property SliderValue As Double Public Overrides Property SliderValue As Double
Get Get
Return m_SliderValue Return m_SliderValue
@@ -90,9 +101,11 @@ Public Class SimulationExpanderVM
If Not GetCncFileName(True, sCncFile, sInfo) Then Return If Not GetCncFileName(True, sCncFile, sInfo) Then Return
' Eseguo ' Eseguo
If Not EgtGenerate(sCncFile, sInfo) Then If Not EgtGenerate(sCncFile, sInfo) Then
Dim nErr = EgtGetLastMachMgrErrorId() Dim nErr As Integer = EgtGetLastMachMgrErrorId()
If nErr = 1000 Then If nErr = 1000 Then
MessageBox.Show(EgtMsg(5333), EgtMsg(5320), MessageBoxButton.OK, MessageBoxImage.Information) MessageBox.Show(EgtMsg(5333), EgtMsg(5320), MessageBoxButton.OK, MessageBoxImage.Information)
ElseIf nErr = 1001 Then
MessageBox.Show(EgtMsg(5334), EgtMsg(5320), MessageBoxButton.OK, MessageBoxImage.Information)
ElseIf nErr <> 0 Then ElseIf nErr <> 0 Then
Dim sErr As String = EgtGetLastMachMgrErrorString() Dim sErr As String = EgtGetLastMachMgrErrorString()
MessageBox.Show(sErr, EgtMsg(5305), MessageBoxButton.OK, MessageBoxImage.Exclamation) MessageBox.Show(sErr, EgtMsg(5305), MessageBoxButton.OK, MessageBoxImage.Exclamation)
@@ -151,6 +164,14 @@ Public Class SimulationExpanderVM
' disattivo MTable e SpecialPanel se vado in simulazione ' disattivo MTable e SpecialPanel se vado in simulazione
Map.refDoorPanelVM.MTableIsEnabled(False) Map.refDoorPanelVM.MTableIsEnabled(False)
Map.refSpecialPanelVM.SpecialPanelIsEnabled(False) Map.refSpecialPanelVM.SpecialPanelIsEnabled(False)
If m_bOnlySimulation Then
Map.refTopCommandBarVM.DrawIsEnabled = False
Map.refOperationsListExpanderVM.OpersListViewIsEnabled = False
Map.refOperationParametersExpanderVM.OperParamsViewIsEnabled = False
Map.refEstimationsExpanderVM.Estimation_IsEnabled =False
Map.refMachGroupPanelVM.SetMachGroupState(False)
Map.refEstimationsExpanderVM.NotifyPropertyChanged("Estimation_IsEnabled")
End If
Return True Return True
End Function End Function
@@ -206,11 +227,16 @@ Public Class SimulationExpanderVM
UpdateUI() UpdateUI()
' Messaggio in caso di errore ' Messaggio in caso di errore
If Not bOk Then If Not bOk Then
If EgtGetLastMachMgrErrorId() <> 0 Then Dim nErr As Integer = EgtGetLastMachMgrErrorId()
If nErr = 1000 Then
MessageBox.Show(EgtMsg(5333), EgtMsg(5320), MessageBoxButton.OK, MessageBoxImage.Information)
ElseIf nErr = 1001 Then
MessageBox.Show(EgtMsg(5334), EgtMsg(5320), MessageBoxButton.OK, MessageBoxImage.Information)
ElseIf nErr <> 0 Then
Dim sErr As String = EgtGetLastMachMgrErrorString() Dim sErr As String = EgtGetLastMachMgrErrorString()
MessageBox.Show(sErr, EgtMsg(MSG_SIMULATION + 5), MessageBoxButton.OK, MessageBoxImage.Exclamation) '.... - ERRORE MessageBox.Show(sErr, EgtMsg(5305), MessageBoxButton.OK, MessageBoxImage.Exclamation) '.... - ERRORE
Else Else
MessageBox.Show(EgtMsg(MSG_MESSAGEBOX + 10), EgtMsg(MSG_SIMULATION + 5), MessageBoxButton.OK, MessageBoxImage.Error) 'Errore sconosciuto - ERRORE MessageBox.Show(EgtMsg(15010), EgtMsg(5305), MessageBoxButton.OK, MessageBoxImage.Error) 'Errore sconosciuto - ERRORE
End If End If
End If End If
' Imposto stato corrente ' Imposto stato corrente
@@ -244,16 +270,22 @@ Public Class SimulationExpanderVM
Map.refTopCommandBarVM.DrawIsEnabled = False Map.refTopCommandBarVM.DrawIsEnabled = False
Map.refOperationsListExpanderVM.OpersListViewIsEnabled = False Map.refOperationsListExpanderVM.OpersListViewIsEnabled = False
Map.refOperationParametersExpanderVM.OperParamsViewIsEnabled = False Map.refOperationParametersExpanderVM.OperParamsViewIsEnabled = False
Map.refMachGroupPanelVM.SetMachGroupState(False) ' Map.refMachGroupPanelVM.MachGroupPanelIsEnabled = False Map.refMachGroupPanelVM.SetMachGroupState(False)
Map.refEstimationsExpanderVM.NotifyPropertyChanged("Estimation_IsEnabled") Map.refEstimationsExpanderVM.NotifyPropertyChanged("Estimation_IsEnabled")
m_bStopOnNextCollision = True m_bStopOnNextCollision = True
If Not EgtSimStart(False) Then If Not EgtSimStart(False) Then
If EgtGetLastMachMgrErrorId() <> 0 Then Dim nErr As Integer = EgtGetLastMachMgrErrorId()
If nErr = 1000 Then
MessageBox.Show(EgtMsg(5333), EgtMsg(5320), MessageBoxButton.OK, MessageBoxImage.Information)
ElseIf nErr = 1001 Then
MessageBox.Show(EgtMsg(5334), EgtMsg(5320), MessageBoxButton.OK, MessageBoxImage.Information)
ElseIf nErr <> 0 Then
Dim sErr As String = EgtGetLastMachMgrErrorString() Dim sErr As String = EgtGetLastMachMgrErrorString()
MessageBox.Show(sErr, EgtMsg(MSG_SIMULATION + 5), MessageBoxButton.OK, MessageBoxImage.Exclamation) '.... - ERRORE MessageBox.Show(sErr, EgtMsg(5305), MessageBoxButton.OK, MessageBoxImage.Exclamation) '.... - ERRORE
Else Else
MessageBox.Show(EgtMsg(MSG_MESSAGEBOX + 10), EgtMsg(MSG_SIMULATION + 5), MessageBoxButton.OK, MessageBoxImage.Error) 'Errore sconosciuto - ERRORE MessageBox.Show(EgtMsg(15010), EgtMsg(5305), MessageBoxButton.OK, MessageBoxImage.Error) 'Errore sconosciuto - ERRORE
End If End If
SetSimulationStatus(MCH_SIM_ST.UI_STOP)
End If End If
Dim nShowDataCounter As Integer = 0 Dim nShowDataCounter As Integer = 0
While GetStatus() <> MCH_SIM_ST.UI_STOP While GetStatus() <> MCH_SIM_ST.UI_STOP
@@ -336,10 +368,15 @@ Public Class SimulationExpanderVM
End While End While
SetSimExecuting(False) SetSimExecuting(False)
IniFile.m_bSimulExecuting = False IniFile.m_bSimulExecuting = False
Map.refTopCommandBarVM.DrawIsEnabled = True If m_bOnlySimulation Then
Map.refOperationsListExpanderVM.OpersListViewIsEnabled = True ' Impedisco salvataggio eventuale modifica stato virtual milling
Map.refOperationParametersExpanderVM.OperParamsViewIsEnabled = True EgtResetModified()
Map.refMachGroupPanelVM.SetMachGroupState(True) ' Map.refMachGroupPanelVM.MachGroupPanelIsEnabled = True Else
Map.refTopCommandBarVM.DrawIsEnabled = True
Map.refOperationsListExpanderVM.OpersListViewIsEnabled = True
Map.refOperationParametersExpanderVM.OperParamsViewIsEnabled = True
Map.refMachGroupPanelVM.SetMachGroupState(True)
End If
Map.refEstimationsExpanderVM.NotifyPropertyChanged("Estimation_IsEnabled") Map.refEstimationsExpanderVM.NotifyPropertyChanged("Estimation_IsEnabled")
If IniFile.m_bSimulEndExitApp Then If IniFile.m_bSimulEndExitApp Then
refMainWindowVM.CloseApplication( Nothing) refMainWindowVM.CloseApplication( Nothing)
+3 -4
View File
@@ -1,8 +1,7 @@
<UserControl x:Class="MachiningOptionPanelV" <UserControl x:Class="MachiningOptionPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="250" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5" xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5">
xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity">
<StackPanel Name="ciao" Background="Transparent" MaxHeight="{Binding MaxHeight,RelativeSource={RelativeSource AncestorType={x:Type EgtFloating:EgtFloatingPanel}}}"> <StackPanel Name="ciao" Background="Transparent" MaxHeight="{Binding MaxHeight,RelativeSource={RelativeSource AncestorType={x:Type EgtFloating:EgtFloatingPanel}}}">
<!--ContentPresenter that contains the OperationsListExpander--> <!--ContentPresenter that contains the OperationsListExpander-->
+1 -1
View File
@@ -1,6 +1,6 @@
<EgtFloating:EgtFloatingPanel x:Class="OptionPanelV" <EgtFloating:EgtFloatingPanel x:Class="OptionPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="250" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5" xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5"
TitleBarOrientation="Vertical" TitleBarOrientation="Vertical"
Visibility="{Binding Panel_Visibility}"> Visibility="{Binding Panel_Visibility}">
+12 -3
View File
@@ -53,7 +53,10 @@ Friend Module OptionModule
Friend m_SelGeomGenMachining As SceneSelModeOpt Friend m_SelGeomGenMachining As SceneSelModeOpt
Friend m_SelGeomChiseling As SceneSelModeOpt Friend m_SelGeomChiseling As SceneSelModeOpt
Friend m_SelGeomSurfFinishing As SceneSelModeOpt Friend m_SelGeomSurfFinishing As SceneSelModeOpt
Friend m_SelGeomSurfRoughing As SceneSelModeOpt
Friend m_SelGeomWaterJetting As SceneSelModeOpt Friend m_SelGeomWaterJetting As SceneSelModeOpt
Friend m_SelGeomFiveAxMilling As SceneSelModeOpt
Friend m_SelVMillQuality As VMillSelTypeOpt
' Flag per aggiungere una nuova lavorazione alla fine della fase o subito dopo la lavorazione selezionata ' Flag per aggiungere una nuova lavorazione alla fine della fase o subito dopo la lavorazione selezionata
Friend m_bNewMachiningIsLastOne As Boolean Friend m_bNewMachiningIsLastOne As Boolean
' Variabile che indica se usare lo script per calcolare automaticamente la disposizione quando si passa in lavorazione ' Variabile che indica se usare lo script per calcolare automaticamente la disposizione quando si passa in lavorazione
@@ -78,7 +81,7 @@ Friend Module OptionModule
End While End While
If nIndex = 1 Then If nIndex = 1 Then
EgtOutLog("Error missing languages section in Config.ini") EgtOutLog("Error missing languages section in Config.ini")
MessageBox.Show( "Error : missing languages informations", "EgtCAM5", MessageBoxButton.OK, MessageBoxImage.Error) MessageBox.Show("Error : missing languages informations", "EgtCAM5", MessageBoxButton.OK, MessageBoxImage.Error)
End End
End If End If
' Inizializzo la lingua corrente ' Inizializzo la lingua corrente
@@ -102,9 +105,9 @@ Friend Module OptionModule
GetPrivateProfileColor(S_GRID, K_MINLNCOLOR, GridColor) GetPrivateProfileColor(S_GRID, K_MINLNCOLOR, GridColor)
m_GridColor = GridColor m_GridColor = GridColor
' Inizializzo flag linee ingrossate ' Inizializzo flag linee ingrossate
m_bThickLine = ( GetPrivateProfileInt(S_SCENE, K_LINEWIDTH, 1) <> 1) m_bThickLine = (GetPrivateProfileInt(S_SCENE, K_LINEWIDTH, 1) <> 1)
' Inizializzo flag visualizzazione smussata delle superfici ' Inizializzo flag visualizzazione smussata delle superfici
m_bSmoothTriMesh = ( GetPrivateProfileInt(S_SCENE, K_SHOWTRIAADV, 1) <> 0) m_bSmoothTriMesh = (GetPrivateProfileInt(S_SCENE, K_SHOWTRIAADV, 1) <> 0)
' Inizio colore di default in disegno ' Inizio colore di default in disegno
Dim DefColor As New Color3d(0, 0, 0) Dim DefColor As New Color3d(0, 0, 0)
GetPrivateProfileColor(S_GEOMDB, K_DEFAULTCOLOR, DefColor) GetPrivateProfileColor(S_GEOMDB, K_DEFAULTCOLOR, DefColor)
@@ -141,6 +144,12 @@ Friend Module OptionModule
m_SelGeomChiseling = If(Temp < 0 Or Temp > 3, SceneSelModeOpt.PARTCURVESANDSURFACES, DirectCast(Temp, SceneSelModeOpt)) m_SelGeomChiseling = If(Temp < 0 Or Temp > 3, SceneSelModeOpt.PARTCURVESANDSURFACES, DirectCast(Temp, SceneSelModeOpt))
Temp = GetPrivateProfileInt(S_MACH, K_SELGEOMSURFFINISHING, -1) Temp = GetPrivateProfileInt(S_MACH, K_SELGEOMSURFFINISHING, -1)
m_SelGeomSurfFinishing = If(Temp < 0 Or Temp > 3, SceneSelModeOpt.PARTCURVESANDSURFACES, DirectCast(Temp, SceneSelModeOpt)) m_SelGeomSurfFinishing = If(Temp < 0 Or Temp > 3, SceneSelModeOpt.PARTCURVESANDSURFACES, DirectCast(Temp, SceneSelModeOpt))
Temp = GetPrivateProfileInt(S_MACH, K_SELGEOMSURFROUGHING, -1)
m_SelGeomSurfRoughing = If(Temp < 0 Or Temp > 3, SceneSelModeOpt.PARTCURVESANDSURFACES, DirectCast(Temp, SceneSelModeOpt))
Temp = GetPrivateProfileInt(S_MACH, K_SELGEOMFIVEAXMILLING, -1)
m_SelGeomFiveAxMilling = If(Temp < 0 Or Temp > 3, SceneSelModeOpt.PARTCURVESANDSURFACES, DirectCast(Temp, SceneSelModeOpt))
Temp = GetPrivateProfileInt(S_MACH, K_SELVMILLQUALITY, 0)
m_SelVMillQuality = If(Temp < -2 Or Temp > 2, VMillSelTypeOpt.HIGHER, DirectCast(Temp, VMillSelTypeOpt))
m_SelGeomWaterJetting = SceneSelModeOpt.PARTCURVES m_SelGeomWaterJetting = SceneSelModeOpt.PARTCURVES
' Inizializzo variabile che indica posizione nuova operazione di lavorazione ' Inizializzo variabile che indica posizione nuova operazione di lavorazione
m_bNewMachiningIsLastOne = (GetPrivateProfileInt(S_OPTIONS, K_NEWMACHININGISLASTONE, 0) <> 0) m_bNewMachiningIsLastOne = (GetPrivateProfileInt(S_OPTIONS, K_NEWMACHININGISLASTONE, 0) <> 0)
+178 -124
View File
@@ -1,21 +1,22 @@
<EgtWPFLib5:EgtCustomWindow x:Class="OptionWindowV" <EgtWPFLib5:EgtCustomWindow x:Class="OptionWindowV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:EgtCAM5" xmlns:local="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5" xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
Title="{Binding Title}" Icon="/Resources/EgtCAM5.ico" Title="{Binding Title}" Icon="/Resources/EgtCAM5.ico"
TitleBarBrush="{StaticResource EgaltechBlue1}" TitleBarBrush="{StaticResource EgaltechBlue1}"
BorderBrush="{StaticResource EgaltechBlue1}" BorderBrush="{StaticResource EgaltechBlue1}"
WindowStyle="None" ResizeMode="NoResize" TitleBarHeight="30" IsResizable="False" WindowStyle="None" ResizeMode="NoResize" TitleBarHeight="30" IsResizable="False"
IsMinimizable="False" WindowStartupLocation="CenterScreen" ShowInTaskbar="False" IsMinimizable="False" WindowStartupLocation="CenterScreen" ShowInTaskbar="False"
MinWidth="400" MinHeight="382" MinWidth="400" MinHeight="382"
Width="400" Height="412" Width="400" Height="575"
CloseCommand="{Binding CloseOptionsCommand,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"> CloseCommand="{Binding CloseOptionsCommand,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}">
<EgtWPFLib5:EgtCustomWindow.Resources> <EgtWPFLib5:EgtCustomWindow.Resources>
<local:GeomTypeConverter x:Key="GeomTypeConverter"/> <local:GeomTypeConverter x:Key="GeomTypeConverter"/>
<local:VMillTypeConverter x:Key="VMillTypeConverter"/>
</EgtWPFLib5:EgtCustomWindow.Resources> </EgtWPFLib5:EgtCustomWindow.Resources>
<TabControl Margin="5,5,5,5"> <TabControl Margin="5,5,5,5">
<TabItem Header="{Binding GenericMsg}"> <TabItem Header="{Binding GenericMsg}">
<StackPanel Margin="5,5,5,0"> <StackPanel Margin="5,5,5,0">
@@ -25,8 +26,9 @@
<ComboBox ItemsSource="{Binding LanguageList, Mode=OneWay}" Height="25" <ComboBox ItemsSource="{Binding LanguageList, Mode=OneWay}" Height="25"
DisplayMemberPath="Name" SelectedItem="{Binding SelectedLanguage}" DisplayMemberPath="Name" SelectedItem="{Binding SelectedLanguage}"
Margin="0,0,0,5"/> Margin="0,0,0,5"/>
<TextBlock Text="{Binding LanguageAdvertMsg}" TextWrapping="Wrap" <TextBlock Text="{Binding LanguageAdvertMsg}"
TextAlignment="Center"/> TextWrapping="Wrap"
TextAlignment="Center"/>
</UniformGrid> </UniformGrid>
</GroupBox> </GroupBox>
<UniformGrid Columns="2" <UniformGrid Columns="2"
@@ -69,11 +71,11 @@
Grid.Column="1" Grid.Row="1" Margin="22,5,0,5" VerticalAlignment="Center"/> Grid.Column="1" Grid.Row="1" Margin="22,5,0,5" VerticalAlignment="Center"/>
</Grid> </Grid>
<UniformGrid Columns="2" <UniformGrid Columns="2"
Margin="0,0,0,5"> Margin="0,0,0,5">
<TextBlock Text="{Binding FontMsg}" VerticalAlignment="Center"/> <TextBlock Text="{Binding FontMsg}" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding FontList, Mode=OneWay}" <ComboBox ItemsSource="{Binding FontList, Mode=OneWay}"
SelectedItem="{Binding SelectedTextFont}" Height="25" SelectedItem="{Binding SelectedTextFont}" Height="25"
Margin="10,5,0,0"/> Margin="10,5,0,0"/>
</UniformGrid> </UniformGrid>
<Grid Margin="5,5,5,5"> <Grid Margin="5,5,5,5">
<Button Content="{Binding UpdateLicenceMsg}" Command="{Binding UpdateLicence_Command}" Height="26" Margin="100,1"/> <Button Content="{Binding UpdateLicenceMsg}" Command="{Binding UpdateLicence_Command}" Height="26" Margin="100,1"/>
@@ -96,99 +98,97 @@
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,0,0,0"/> Margin="10,0,0,0"/>
</UniformGrid> </UniformGrid>
<GroupBox Grid.Column="1" Grid.RowSpan="2" <GroupBox Grid.Column="1" Grid.RowSpan="2"
Header="{Binding DimensionMsg}" Header="{Binding DimensionMsg}"
Margin="0,0,0,5"> Margin="0,0,0,5">
<UniformGrid Grid.ColumnSpan="2" Columns="2"> <UniformGrid Grid.ColumnSpan="2" Columns="2">
<TextBlock Text="{Binding ExtLineLenMsg}" VerticalAlignment="Center"/> <TextBlock Text="{Binding ExtLineLenMsg}" VerticalAlignment="Center"/>
<TextBox Text="{Binding ExtLineLen}" Height="25" <TextBox Text="{Binding ExtLineLen}" Height="25"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,5,0,0"/> Margin="10,5,0,0"/>
<TextBlock Text="{Binding ArrowLenMsg}" VerticalAlignment="Center"/> <TextBlock Text="{Binding ArrowLenMsg}" VerticalAlignment="Center"/>
<TextBox Text="{Binding ArrowLen}" Height="25" <TextBox Text="{Binding ArrowLen}" Height="25"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,5,0,0"/> Margin="10,5,0,0"/>
<TextBlock Text="{Binding TextDistMsg}" VerticalAlignment="Center"/> <TextBlock Text="{Binding TextDistMsg}" VerticalAlignment="Center"/>
<TextBox Text="{Binding TextDist}" Height="25" <TextBox Text="{Binding TextDist}" Height="25"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,5,0,0"/> Margin="10,5,0,0"/>
<TextBlock Text="{Binding LenIsMMMsg}" VerticalAlignment="Center"/> <TextBlock Text="{Binding LenIsMMMsg}" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding UnitMeasureList, Mode=OneWay}" <ComboBox ItemsSource="{Binding UnitMeasureList, Mode=OneWay}"
SelectedItem="{Binding SelectedUnitMeasure}" Height="25" SelectedItem="{Binding SelectedUnitMeasure}" Height="25"
Margin="10,5,0,0"/> Margin="10,5,0,0"/>
<TextBlock Text="{Binding DecDigitMsg}" VerticalAlignment="Center"/> <TextBlock Text="{Binding DecDigitMsg}" VerticalAlignment="Center"/>
<TextBox Text="{Binding DecDigit}" Height="25" <TextBox Text="{Binding DecDigit}" Height="25"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,5,0,0"/> Margin="10,5,0,0"/>
<TextBlock Text="{Binding FontMsg}" VerticalAlignment="Center"/> <TextBlock Text="{Binding FontMsg}" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding FontList, Mode=OneWay}" <ComboBox ItemsSource="{Binding FontList, Mode=OneWay}"
SelectedItem="{Binding SelectedFont}" Height="25" SelectedItem="{Binding SelectedFont}" Height="25"
Margin="10,5,0,0"/> Margin="10,5,0,0"/>
<TextBlock Text="{Binding TextHeightMsg}" VerticalAlignment="Center"/> <TextBlock Text="{Binding TextHeightMsg}" VerticalAlignment="Center"/>
<TextBox Text="{Binding TextHeight}" Height="25" <TextBox Text="{Binding TextHeight}" Height="25"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,5,0,0"/> Margin="10,5,0,0"/>
</UniformGrid> </UniformGrid>
</GroupBox> </GroupBox>
</StackPanel> </StackPanel>
</TabItem> </TabItem>
<TabItem Header="{Binding ImportMsg}"> <TabItem Header="{Binding ImportMsg}">
<StackPanel Margin="5,5,5,0"> <StackPanel Margin="5,5,5,0">
<Grid Margin="0,5,0,0"> <Grid Margin="0,5,0,0">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="0.8*"/> <ColumnDefinition Width="0.8*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="1" <TextBlock Grid.Row="0" Grid.Column="1"
VerticalAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"
Text="{Binding UnitScaleMsg}" /> Text="{Binding UnitScaleMsg}" />
<TextBlock Grid.Row="0" Grid.Column="2" <TextBlock Grid.Row="0" Grid.Column="2"
VerticalAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"
Text="{Binding FactorScaleMsg}"/> Text="{Binding FactorScaleMsg}"/>
<TextBlock Grid.Row="1" Grid.Column="0"
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding DxfScaleFactorMsg}" VerticalAlignment="Center"/>
Text="{Binding DxfScaleFactorMsg}" VerticalAlignment="Center"/> <ComboBox Grid.Row="1" Grid.Column="1"
<ComboBox Grid.Row="1" Grid.Column="1"
ItemsSource="{Binding ScaleDXFList, Mode=OneWay}" ItemsSource="{Binding ScaleDXFList, Mode=OneWay}"
SelectedItem="{Binding SelectedDXFScale, UpdateSourceTrigger=PropertyChanged}" Height="25" SelectedItem="{Binding SelectedDXFScale, UpdateSourceTrigger=PropertyChanged}" Height="25"
Margin="10,0,0,5"/> Margin="10,0,0,5"/>
<TextBox Grid.Row="1" Grid.Column="2" <TextBox Grid.Row="1" Grid.Column="2"
Text="{Binding DxfScaleFactor}" Height="25" Text="{Binding DxfScaleFactor}" Height="25"
IsEnabled="{Binding DXFScaleEnable, UpdateSourceTrigger=LostFocus}" IsEnabled="{Binding DXFScaleEnable, UpdateSourceTrigger=LostFocus}"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,0,0,5"/> Margin="10,0,0,5"/>
<TextBlock Grid.Row="2" Grid.Column="0" <TextBlock Grid.Row="2" Grid.Column="0"
Text="{Binding StlScaleFactorMsg}" VerticalAlignment="Center"/> Text="{Binding StlScaleFactorMsg}" VerticalAlignment="Center"/>
<ComboBox Grid.Row="2" Grid.Column="1" <ComboBox Grid.Row="2" Grid.Column="1"
ItemsSource="{Binding ScaleSTLList, Mode=OneWay}" ItemsSource="{Binding ScaleSTLList, Mode=OneWay}"
SelectedItem="{Binding SelectedSTLScale, UpdateSourceTrigger=PropertyChanged}" Height="25" SelectedItem="{Binding SelectedSTLScale, UpdateSourceTrigger=PropertyChanged}" Height="25"
Margin="10,0,0,5"/> Margin="10,0,0,5"/>
<TextBox Grid.Row="2" Grid.Column="2" <TextBox Grid.Row="2" Grid.Column="2"
Text="{Binding StlScaleFactor}" Height="25" Text="{Binding StlScaleFactor}" Height="25"
IsEnabled="{Binding STLScaleEnable, UpdateSourceTrigger=LostFocus}" IsEnabled="{Binding STLScaleEnable, UpdateSourceTrigger=LostFocus}"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,0,0,5"/> Margin="10,0,0,5"/>
<TextBlock Grid.Row="3" Grid.Column="0" <TextBlock Grid.Row="3" Grid.Column="0"
Text="{Binding ImageScaleFactorMsg}" VerticalAlignment="Center"/> Text="{Binding ImageScaleFactorMsg}" VerticalAlignment="Center"/>
<ComboBox Grid.Row="3" Grid.Column="1" <ComboBox Grid.Row="3" Grid.Column="1"
ItemsSource="{Binding ScaleImageList, Mode=OneWay}" ItemsSource="{Binding ScaleImageList, Mode=OneWay}"
SelectedItem="{Binding SelectedImageScale, UpdateSourceTrigger=PropertyChanged}" Height="25" SelectedItem="{Binding SelectedImageScale, UpdateSourceTrigger=PropertyChanged}" Height="25"
Margin="10,0,0,5"/> Margin="10,0,0,5"/>
<TextBox Grid.Row="3" Grid.Column="2" <TextBox Grid.Row="3" Grid.Column="2"
Text="{Binding ImageScaleFactor}" Height="25" Text="{Binding ImageScaleFactor}" Height="25"
IsEnabled="{Binding ImageScaleEnable, UpdateSourceTrigger=LostFocus}" IsEnabled="{Binding ImageScaleEnable, UpdateSourceTrigger=LostFocus}"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,0,0,5"/> Margin="10,0,0,5"/>
</Grid> </Grid>
</StackPanel> </StackPanel>
</TabItem> </TabItem>
<TabItem Header="{Binding ExportMsg}"> <TabItem Header="{Binding ExportMsg}">
<StackPanel> <StackPanel>
@@ -196,15 +196,15 @@
Header="{Binding ImageMsg}" Header="{Binding ImageMsg}"
Margin="5,5,5,0"> Margin="5,5,5,0">
<UniformGrid Grid.ColumnSpan="2" Columns="2"> <UniformGrid Grid.ColumnSpan="2" Columns="2">
<TextBlock Text="{Binding ImageWidthMsg}" VerticalAlignment="Center"/> <TextBlock Text="{Binding ImageWidthMsg}" VerticalAlignment="Center"/>
<TextBox Text="{Binding ImageWidth}" Height="25" <TextBox Text="{Binding ImageWidth}" Height="25"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,0,0,5"/> Margin="10,0,0,5"/>
<TextBlock Text="{Binding ImageHeightMsg}" VerticalAlignment="Center"/> <TextBlock Text="{Binding ImageHeightMsg}" VerticalAlignment="Center"/>
<TextBox Text="{Binding ImageHeight}" Height="25" <TextBox Text="{Binding ImageHeight}" Height="25"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,0,0,5"/> Margin="10,0,0,5"/>
</UniformGrid> </UniformGrid>
</GroupBox> </GroupBox>
</StackPanel> </StackPanel>
</TabItem> </TabItem>
@@ -260,6 +260,15 @@
</DataTemplate> </DataTemplate>
</ComboBox.ItemTemplate> </ComboBox.ItemTemplate>
</ComboBox> </ComboBox>
<TextBlock Text="{Binding GeomTypeGenMsg}" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding GeomTypeList, Mode=OneWay}"
SelectedItem="{Binding SelectedGenGeomType}" Height="25">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource GeomTypeConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<TextBlock Text="{Binding GeomTypeChiselingMsg}" VerticalAlignment="Center"/> <TextBlock Text="{Binding GeomTypeChiselingMsg}" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding GeomTypeList, Mode=OneWay}" <ComboBox ItemsSource="{Binding GeomTypeList, Mode=OneWay}"
SelectedItem="{Binding SelectedChiselingGeomType}" Height="25"> SelectedItem="{Binding SelectedChiselingGeomType}" Height="25">
@@ -269,35 +278,80 @@
</DataTemplate> </DataTemplate>
</ComboBox.ItemTemplate> </ComboBox.ItemTemplate>
</ComboBox> </ComboBox>
<TextBlock Text="{Binding GeomTypeSurRoughMsg}" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding GeomTypeList, Mode=OneWay}"
SelectedItem="{Binding SelectedSurfRoughGeomType}" Height="25">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource GeomTypeConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<TextBlock Text="{Binding GeomTypeSurFinishMsg}" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding GeomTypeList, Mode=OneWay}"
SelectedItem="{Binding SelectedSurfFinishGeomType}" Height="25">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource GeomTypeConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<!--<TextBlock Text="{Binding GeomTypeWaterJetMsg}" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding GeomTypeList, Mode=OneWay}"
SelectedItem="{Binding SelectedWaterJetGeomType}" Height="25">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource GeomTypeConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>-->
<TextBlock Text="{Binding GeomTypeFiveAxMsg}" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding GeomTypeList, Mode=OneWay}"
SelectedItem="{Binding SelectedFiveAxGeomType}" Height="25">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource GeomTypeConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</UniformGrid> </UniformGrid>
</GroupBox> </GroupBox>
<Grid Margin="5,5,5,0"> <Grid Margin="10,5,10,0">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <UniformGrid Columns="2" Grid.ColumnSpan="2" Margin="0,5,0,0">
<RowDefinition Height="1*"/> <TextBlock Text="{Binding VMillQualityMsg}" VerticalAlignment="Center"/>
<RowDefinition Height="1*"/> <ComboBox ItemsSource="{Binding VMillTypeList, Mode=OneWay}"
</Grid.RowDefinitions> SelectedItem="{Binding SelectedVMillTypeType}" Height="25">
<TextBlock Text="{Binding NewMachiningPosMsg}" VerticalAlignment="Center" <ComboBox.ItemTemplate>
Grid.Row="0" Margin="0,0,0,5"/> <DataTemplate>
<CheckBox IsChecked="{Binding NewMachiningIsLastOne}" <TextBlock Text="{Binding Converter={StaticResource VMillTypeConverter}}"/>
Grid.Column="1" Grid.Row="0" Margin="4,0,0,0" VerticalAlignment="Center"/> </DataTemplate>
<TextBlock Text="{Binding UseDispositionScriptMsg}" VerticalAlignment="Center" </ComboBox.ItemTemplate>
Grid.Row="1" Margin="0,0,0,5"/> </ComboBox>
<CheckBox IsChecked="{Binding UseDispositionScript}" </UniformGrid>
Grid.Column="1" Grid.Row="1" Margin="4,0,0,0" VerticalAlignment="Center"/> <TextBlock Grid.Row="1" Text="{Binding NewMachiningPosMsg}" VerticalAlignment="Center"
Margin="0,8,0,5"/>
<CheckBox Grid.Row="1" Grid.Column="1" IsChecked="{Binding NewMachiningIsLastOne}"
Margin="4,8,0,0" VerticalAlignment="Center"/>
<TextBlock Grid.Row="2" Text="{Binding UseDispositionScriptMsg}"
VerticalAlignment="Center" Margin="0,5,0,5"/>
<CheckBox Grid.Row="2" Grid.Column="1" IsChecked="{Binding UseDispositionScript}"
Margin="4,5,0,0" VerticalAlignment="Center"/>
</Grid> </Grid>
<Grid Margin="5,5,5,0"> <UniformGrid Rows="2">
<Button Content="{Binding AddMachineMsg}" Command="{Binding AddMachine_Command}" Height="26" Margin="100,1"/> <Button Content="{Binding AddMachineMsg}" Command="{Binding AddMachine_Command}" Height="26" Margin="100,10,100,5"/>
</Grid> <Button Content="{Binding ExportMachineMsg}" Command="{Binding ExportMachine_Command}" Height="26" Margin="100,1"/>
</UniformGrid>
<Grid Margin="5,5,5,0">
<Button Content="{Binding ExportMachineMsg}" Command="{Binding ExportMachine_Command}" Height="26" Margin="100,1"/>
</Grid>
</StackPanel> </StackPanel>
</TabItem> </TabItem>
@@ -343,9 +397,9 @@
<CheckBox IsChecked="{Binding GunstockOn}" IsEnabled="{Binding GunstockEnabled}" <CheckBox IsChecked="{Binding GunstockOn}" IsEnabled="{Binding GunstockEnabled}"
Grid.Row="4" Grid.Column="1" Margin="4,5,0,5" VerticalAlignment="Center"/> Grid.Row="4" Grid.Column="1" Margin="4,5,0,5" VerticalAlignment="Center"/>
</Grid> </Grid>
</StackPanel> </StackPanel>
</TabItem> </TabItem>
</TabControl> </TabControl>
</EgtWPFLib5:EgtCustomWindow> </EgtWPFLib5:EgtCustomWindow>
+250 -114
View File
@@ -2,6 +2,7 @@
Imports System.Collections.ObjectModel Imports System.Collections.ObjectModel
Imports System.IO Imports System.IO
Imports EgtUILib Imports EgtUILib
Imports System.Globalization
Public Class OptionWindowVM Public Class OptionWindowVM
Inherits VMBase Inherits VMBase
@@ -19,6 +20,13 @@ Public Class OptionWindowVM
End Get End Get
End Property End Property
Private m_VMillTypeList As ObservableCollection(Of VMillSelTypeOpt) = New ObservableCollection(Of VMillSelTypeOpt)({VMillSelTypeOpt.LOWER, VMillSelTypeOpt.LOW, VMillSelTypeOpt.STANDARD, VMillSelTypeOpt.HIGH, VMillSelTypeOpt.HIGHER})
Public ReadOnly Property VMillTypeList As ObservableCollection(Of VMillSelTypeOpt)
Get
Return m_VMillTypeList
End Get
End Property
Private m_UnitMeasureList As List(Of String) = New List(Of String)({"mm", "inch", EgtMsg(MSG_OPTIONPAGE + 45)}) Private m_UnitMeasureList As List(Of String) = New List(Of String)({"mm", "inch", EgtMsg(MSG_OPTIONPAGE + 45)})
Public ReadOnly Property UnitMeasureList As List(Of String) Public ReadOnly Property UnitMeasureList As List(Of String)
Get Get
@@ -137,6 +145,72 @@ Public Class OptionWindowVM
End Set End Set
End Property End Property
Public Property SelectedGenGeomType As SceneSelModeOpt
Get
Return OptionModule.m_SelGeomGenMachining
End Get
Set(value As SceneSelModeOpt)
If WritePrivateProfileString(S_MACH, K_SELGEOMGENMACHINING, CInt(value).ToString()) Then
OptionModule.m_SelGeomGenMachining = value
End If
End Set
End Property
Public Property SelectedSurfRoughGeomType As SceneSelModeOpt
Get
Return OptionModule.m_SelGeomSurfRoughing
End Get
Set(value As SceneSelModeOpt)
If WritePrivateProfileString(S_MACH, K_SELGEOMSURFROUGHING, CInt(value).ToString()) Then
OptionModule.m_SelGeomSurfRoughing = value
End If
End Set
End Property
Public Property SelectedSurfFinishGeomType As SceneSelModeOpt
Get
Return OptionModule.m_SelGeomSurfFinishing
End Get
Set(value As SceneSelModeOpt)
If WritePrivateProfileString(S_MACH, K_SELGEOMSURFFINISHING, CInt(value).ToString()) Then
OptionModule.m_SelGeomSurfFinishing = value
End If
End Set
End Property
'Public Property SelectedWaterJetGeomType As SceneSelModeOpt
' Get
' Return OptionModule.m_SelGeomWaterJetting
' End Get
' Set(value As SceneSelModeOpt)
' If WritePrivateProfileString(S_MACH, K_SELGEOMWATERJETTING, CInt(value).ToString()) Then
' OptionModule.m_SelGeomWaterJetting = value
' End If
' End Set
'End Property
Public Property SelectedFiveAxGeomType As SceneSelModeOpt
Get
Return OptionModule.m_SelGeomFiveAxMilling
End Get
Set(value As SceneSelModeOpt)
If WritePrivateProfileString(S_MACH, K_SELGEOMFIVEAXMILLING, CInt(value).ToString()) Then
OptionModule.m_SelGeomFiveAxMilling = value
End If
End Set
End Property
Public Property SelectedVMillTypeType As VMillSelTypeOpt
Get
Return OptionModule.m_SelVMillQuality
End Get
Set(value As VMillSelTypeOpt)
If WritePrivateProfileString(S_MACH, K_SELVMILLQUALITY, CInt(value).ToString()) Then
OptionModule.m_SelVMillQuality = value
End If
End Set
End Property
Public Property GeometryTolerance As String Public Property GeometryTolerance As String
Get Get
Return LenToString(OptionModule.m_dGeometryTolerance, 5) Return LenToString(OptionModule.m_dGeometryTolerance, 5)
@@ -213,8 +287,8 @@ Public Class OptionWindowVM
End Get End Get
Set(value As Boolean) Set(value As Boolean)
OptionModule.m_bThickLine = value OptionModule.m_bThickLine = value
WritePrivateProfileString(S_SCENE, K_LINEWIDTH, If( value, "2", "1")) WritePrivateProfileString(S_SCENE, K_LINEWIDTH, If(value, "2", "1"))
EgtSetLineAttribs( If( value, 2, 1)) EgtSetLineAttribs(If(value, 2, 1))
End Set End Set
End Property End Property
@@ -386,7 +460,7 @@ Public Class OptionWindowVM
End Get End Get
Set(value As String) Set(value As String)
Dim nVal As Integer = 0 Dim nVal As Integer = 0
If Integer.TryParse(value, nVal) AndAlso nVal > 0 Then If Integer.TryParse(value, nVal) Then
OptionModule.m_nDecDigit = nVal OptionModule.m_nDecDigit = nVal
EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight) EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight)
WritePrivateProfileString(S_DIMENSIONSTYLE, K_DECDIGIT, OptionModule.m_nDecDigit.ToString()) WritePrivateProfileString(S_DIMENSIONSTYLE, K_DECDIGIT, OptionModule.m_nDecDigit.ToString())
@@ -534,7 +608,7 @@ Public Class OptionWindowVM
End Get End Get
Set(value As Boolean) Set(value As Boolean)
OptionModule.m_bSpecialOn = value OptionModule.m_bSpecialOn = value
WritePrivateProfileString(S_SPECIAL, K_SPECIALENABLE, If( value, "1", "0")) WritePrivateProfileString(S_SPECIAL, K_SPECIALENABLE, If(value, "1", "0"))
End Set End Set
End Property End Property
@@ -554,7 +628,7 @@ Public Class OptionWindowVM
End Get End Get
Set(value As Boolean) Set(value As Boolean)
OptionModule.m_bBeamOn = value OptionModule.m_bBeamOn = value
WritePrivateProfileString(S_BEAM, K_BEAMENABLE, If( value, "1", "0")) WritePrivateProfileString(S_BEAM, K_BEAMENABLE, If(value, "1", "0"))
End Set End Set
End Property End Property
@@ -574,7 +648,7 @@ Public Class OptionWindowVM
End Get End Get
Set(value As Boolean) Set(value As Boolean)
OptionModule.m_bWallOn = value OptionModule.m_bWallOn = value
WritePrivateProfileString(S_WALL, K_WALLENABLE, If( value, "1", "0")) WritePrivateProfileString(S_WALL, K_WALLENABLE, If(value, "1", "0"))
End Set End Set
End Property End Property
@@ -589,7 +663,7 @@ Public Class OptionWindowVM
End Get End Get
Set(value As Boolean) Set(value As Boolean)
OptionModule.m_bDoorsOn = value OptionModule.m_bDoorsOn = value
WritePrivateProfileString(S_DOORS, K_DDFENABLE, If( value, "1", "0")) WritePrivateProfileString(S_DOORS, K_DDFENABLE, If(value, "1", "0"))
End Set End Set
End Property End Property
@@ -604,7 +678,7 @@ Public Class OptionWindowVM
End Get End Get
Set(value As Boolean) Set(value As Boolean)
OptionModule.m_bGunstockOn = value OptionModule.m_bGunstockOn = value
WritePrivateProfileString(S_GUNSTOCK, K_GUNSTOCKENABLE, If( value, "1", "0")) WritePrivateProfileString(S_GUNSTOCK, K_GUNSTOCKENABLE, If(value, "1", "0"))
End Set End Set
End Property End Property
@@ -662,17 +736,17 @@ Public Class OptionWindowVM
End Property End Property
Public ReadOnly Property ThickLineMsg As String Public ReadOnly Property ThickLineMsg As String
Get Get
Return EgtMsg( 6536) ' Linee spesse Return EgtMsg(6536) ' Linee spesse
End Get End Get
End Property End Property
Public ReadOnly Property SmoothTriMeshMsg As String Public ReadOnly Property SmoothTriMeshMsg As String
Get Get
Return EgtMsg( 6518) ' Superfici smussate Return EgtMsg(6518) ' Superfici smussate
End Get End Get
End Property End Property
Public ReadOnly Property UpdateLicenceMsg As String Public ReadOnly Property UpdateLicenceMsg As String
Get Get
Return EgtMsg( 6553) ' Aggiorna licenza Return EgtMsg(6553) ' Aggiorna licenza
End Get End Get
End Property End Property
@@ -881,6 +955,43 @@ Public Class OptionWindowVM
End Get End Get
End Property End Property
Public ReadOnly Property GeomTypeGenMsg As String
Get
Return EgtMsg(6208)
End Get
End Property
Public ReadOnly Property GeomTypeSurFinishMsg As String
Get
Return EgtMsg(6211)
End Get
End Property
Public ReadOnly Property GeomTypeWaterJetMsg As String
Get
Return EgtMsg(6212)
End Get
End Property
Public ReadOnly Property GeomTypeFiveAxMsg As String
Get
Return EgtMsg(31213)
End Get
End Property
Public ReadOnly Property GeomTypeSurRoughMsg As String
Get
Return EgtMsg(31212)
End Get
End Property
Public ReadOnly Property VMillQualityMsg As String
Get
Return EgtMsg(31214)
End Get
End Property
#End Region #End Region
#Region "COMMANDS" #Region "COMMANDS"
@@ -1094,135 +1205,135 @@ Public Class OptionWindowVM
Dim sMachDir As String = Path.Combine(IniFile.m_sMachinesRoot, sMachName) Dim sMachDir As String = Path.Combine(IniFile.m_sMachinesRoot, sMachName)
' Preparo direttorio temporaneo ' Preparo direttorio temporaneo
Dim sTempDir As String = Path.Combine(IniFile.m_sMachinesRoot, "Temp") Dim sTempDir As String = Path.Combine(IniFile.m_sMachinesRoot, "Temp")
If My.Computer.FileSystem.DirectoryExists( sTempDir) Then If My.Computer.FileSystem.DirectoryExists(sTempDir) Then
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
End If End If
My.Computer.FileSystem.CreateDirectory( sTempDir) My.Computer.FileSystem.CreateDirectory(sTempDir)
' Unzip nel direttorio temporaneo ' Unzip nel direttorio temporaneo
Using zip As New Ionic.Zip.ZipFile(sMachZip) Using zip As New Ionic.Zip.ZipFile(sMachZip)
zip.ExtractAll( sTempDir, Ionic.Zip.ExtractExistingFileAction.DoNotOverwrite) zip.ExtractAll(sTempDir, Ionic.Zip.ExtractExistingFileAction.DoNotOverwrite)
End Using End Using
' Se non è una macchina segnalo il problema ed esco ' Se non è una macchina segnalo il problema ed esco
If Not My.Computer.FileSystem.FileExists( Path.Combine( sTempDir, sMachName, sMachName & ".ini")) Or If Not My.Computer.FileSystem.FileExists(Path.Combine(sTempDir, sMachName, sMachName & ".ini")) Or
Not My.Computer.FileSystem.FileExists( Path.Combine( sTempDir, sMachName, sMachName & ".mlde")) Then Not My.Computer.FileSystem.FileExists(Path.Combine(sTempDir, sMachName, sMachName & ".mlde")) Then
' Il file {0} non contiene una macchina - Avviso ' Il file {0} non contiene una macchina - Avviso
Dim sOut As String = String.Format(EgtMsg(MSG_OPTIONPAGE + 29), sMachZip) Dim sOut As String = String.Format(EgtMsg(MSG_OPTIONPAGE + 29), sMachZip)
MessageBox.Show(sOut, EgtMsg(MSG_MESSAGEBOX + 2), MessageBoxButton.OK, MessageBoxImage.Warning) MessageBox.Show(sOut, EgtMsg(MSG_MESSAGEBOX + 2), MessageBoxButton.OK, MessageBoxImage.Warning)
' Rimuovo il direttorio temporaneo ed esco ' Rimuovo il direttorio temporaneo ed esco
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
Return Return
End If End If
' Imposto data e ora correnti al file mlde della macchina ' Imposto data e ora correnti al file mlde della macchina
Try Try
File.SetLastWriteTime( Path.Combine( sTempDir, sMachName, sMachName & ".mlde"), System.DateTime.Now) File.SetLastWriteTime(Path.Combine(sTempDir, sMachName, sMachName & ".mlde"), System.DateTime.Now)
Catch ex As Exception Catch ex As Exception
End Try End Try
' Verifico esistenza di una macchina con lo stesso nome ' Verifico esistenza di una macchina con lo stesso nome
Dim bOldExists As Boolean = My.Computer.FileSystem.DirectoryExists( sMachDir) Dim bOldExists As Boolean = My.Computer.FileSystem.DirectoryExists(sMachDir)
Dim bUpdate As Boolean = True Dim bUpdate As Boolean = True
If bOldExists Then If bOldExists Then
Dim MachBox As New MachineBox( Application.Current.MainWindow, sMachName) Dim MachBox As New MachineBox(Application.Current.MainWindow, sMachName)
Select MachBox.ShowDialog() Select Case MachBox.ShowDialog()
Case MessageBoxResult.Yes Case MessageBoxResult.Yes
bUpdate = False bUpdate = False
Case MessageBoxResult.No Case MessageBoxResult.No
bUpdate = True bUpdate = True
Case MessageBoxResult.Cancel Case MessageBoxResult.Cancel
' Rimuovo il direttorio temporaneo ed esco ' Rimuovo il direttorio temporaneo ed esco
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
Return Return
End Select End Select
' Faccio una copia di backup della macchina corrente ' Faccio una copia di backup della macchina corrente
Dim sBackupDir As String = sMachDir & ".old" Dim sBackupDir As String = sMachDir & ".old"
If My.Computer.FileSystem.DirectoryExists( sBackupDir) Then If My.Computer.FileSystem.DirectoryExists(sBackupDir) Then
My.Computer.FileSystem.DeleteDirectory( sBackupDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sBackupDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
End If End If
Try Try
My.Computer.FileSystem.MoveDirectory( sMachDir, sBackupDir, True) My.Computer.FileSystem.MoveDirectory(sMachDir, sBackupDir, True)
Catch ex As Exception Catch ex As Exception
' Ripristino lo stato originale ed esco ' Ripristino lo stato originale ed esco
My.Computer.FileSystem.MoveDirectory( sBackupDir, sMachDir, True) My.Computer.FileSystem.MoveDirectory(sBackupDir, sMachDir, True)
' L'aggiornamento della macchina "{0}" non è riuscito. ' L'aggiornamento della macchina "{0}" non è riuscito.
Dim sKo As String = String.Format(EgtMsg(MSG_OPTIONPAGE + 35), sMachName) Dim sKo As String = String.Format(EgtMsg(MSG_OPTIONPAGE + 35), sMachName)
EgtOutLog( sKo) EgtOutLog(sKo)
MessageBox.Show(sKo, EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.OK) MessageBox.Show(sKo, EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.OK)
Return Return
End Try End Try
End If End If
' Installo la macchina ' Installo la macchina
My.Computer.FileSystem.MoveDirectory( Path.Combine( sTempDir, sMachName), sMachDir, True) My.Computer.FileSystem.MoveDirectory(Path.Combine(sTempDir, sMachName), sMachDir, True)
' Se è un aggiornamento, recupero utensili, lavorazioni, attrezzaggi e dati per travi ' Se è un aggiornamento, recupero utensili, lavorazioni, attrezzaggi e dati per travi
If bOldExists And bUpdate Then If bOldExists And bUpdate Then
Dim sBackupDir As String = sMachDir & ".old" Dim sBackupDir As String = sMachDir & ".old"
If My.Computer.FileSystem.DirectoryExists( sBackupDir & "\Tools") Then If My.Computer.FileSystem.DirectoryExists(sBackupDir & "\Tools") Then
If My.Computer.FileSystem.DirectoryExists( sMachDir & "\Tools") Then If My.Computer.FileSystem.DirectoryExists(sMachDir & "\Tools") Then
My.Computer.FileSystem.DeleteDirectory( sMachDir & "\Tools", FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sMachDir & "\Tools", FileIO.DeleteDirectoryOption.DeleteAllContents)
End If End If
My.Computer.FileSystem.CopyDirectory( sBackupDir & "\Tools", sMachDir & "\Tools", True) My.Computer.FileSystem.CopyDirectory(sBackupDir & "\Tools", sMachDir & "\Tools", True)
End If End If
If My.Computer.FileSystem.DirectoryExists( sBackupDir & "\Machinings") Then If My.Computer.FileSystem.DirectoryExists(sBackupDir & "\Machinings") Then
If My.Computer.FileSystem.DirectoryExists( sMachDir & "\Machinings") Then If My.Computer.FileSystem.DirectoryExists(sMachDir & "\Machinings") Then
My.Computer.FileSystem.DeleteDirectory( sMachDir & "\Machinings", FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sMachDir & "\Machinings", FileIO.DeleteDirectoryOption.DeleteAllContents)
End If End If
My.Computer.FileSystem.CopyDirectory( sBackupDir & "\Machinings", sMachDir & "\Machinings", True) My.Computer.FileSystem.CopyDirectory(sBackupDir & "\Machinings", sMachDir & "\Machinings", True)
End If End If
If My.Computer.FileSystem.DirectoryExists( sBackupDir & "\SetUp") Then If My.Computer.FileSystem.DirectoryExists(sBackupDir & "\SetUp") Then
If My.Computer.FileSystem.DirectoryExists( sMachDir & "\SetUp") Then If My.Computer.FileSystem.DirectoryExists(sMachDir & "\SetUp") Then
My.Computer.FileSystem.DeleteDirectory( sMachDir & "\SetUp", FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sMachDir & "\SetUp", FileIO.DeleteDirectoryOption.DeleteAllContents)
End If End If
My.Computer.FileSystem.CopyDirectory( sBackupDir & "\SetUp", sMachDir & "\SetUp", True) My.Computer.FileSystem.CopyDirectory(sBackupDir & "\SetUp", sMachDir & "\SetUp", True)
End If End If
If My.Computer.FileSystem.DirectoryExists( sBackupDir & "\Beam") Then If My.Computer.FileSystem.DirectoryExists(sBackupDir & "\Beam") Then
' Flag per sovrascrivere vecchio file BeamData.lua con nuovo ' Flag per sovrascrivere vecchio file BeamData.lua con nuovo
Dim bBeamDataExists As Boolean = False Dim bBeamDataExists As Boolean = False
Const sBeamData As String = "\BeamData.lua" Const sBeamData As String = "\BeamData.lua"
' Flag per sovrascrivere vecchio file MachiningTypes.ini ' Flag per sovrascrivere vecchio file MachiningTypes.ini
Dim bMchgTypesExists As Boolean = False Dim bMchgTypesExists As Boolean = False
Const sMchgTypes As String = "\MachiningTypes.ini" Const sMchgTypes As String = "\MachiningTypes.ini"
If My.Computer.FileSystem.DirectoryExists( sMachDir & "\Beam") Then If My.Computer.FileSystem.DirectoryExists(sMachDir & "\Beam") Then
If My.Computer.FileSystem.FileExists( sMachDir & "\Beam" & sBeamData) Then If My.Computer.FileSystem.FileExists(sMachDir & "\Beam" & sBeamData) Then
bBeamDataExists = True bBeamDataExists = True
My.Computer.FileSystem.MoveFile( sMachDir & "\Beam" & sBeamData, sMachDir & sBeamData, True) My.Computer.FileSystem.MoveFile(sMachDir & "\Beam" & sBeamData, sMachDir & sBeamData, True)
End If End If
If My.Computer.FileSystem.FileExists( sMachDir & "\Beam" & sMchgTypes) Then If My.Computer.FileSystem.FileExists(sMachDir & "\Beam" & sMchgTypes) Then
bMchgTypesExists = True bMchgTypesExists = True
My.Computer.FileSystem.MoveFile( sMachDir & "\Beam" & sMchgTypes, sMachDir & sMchgTypes, True) My.Computer.FileSystem.MoveFile(sMachDir & "\Beam" & sMchgTypes, sMachDir & sMchgTypes, True)
End If End If
My.Computer.FileSystem.DeleteDirectory( sMachDir & "\Beam", FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sMachDir & "\Beam", FileIO.DeleteDirectoryOption.DeleteAllContents)
End If End If
My.Computer.FileSystem.CopyDirectory( sBackupDir & "\Beam", sMachDir & "\Beam", True) My.Computer.FileSystem.CopyDirectory(sBackupDir & "\Beam", sMachDir & "\Beam", True)
If bBeamDataExists Then My.Computer.FileSystem.MoveFile( sMachDir & sBeamData, sMachDir & "\Beam" & sBeamData, True) If bBeamDataExists Then My.Computer.FileSystem.MoveFile(sMachDir & sBeamData, sMachDir & "\Beam" & sBeamData, True)
If bMchgTypesExists Then My.Computer.FileSystem.MoveFile( sMachDir & sMchgTypes, sMachDir & "\Beam" & sMchgTypes, True) If bMchgTypesExists Then My.Computer.FileSystem.MoveFile(sMachDir & sMchgTypes, sMachDir & "\Beam" & sMchgTypes, True)
End If End If
If My.Computer.FileSystem.DirectoryExists( sBackupDir & "\Wall") Then If My.Computer.FileSystem.DirectoryExists(sBackupDir & "\Wall") Then
' Flag per sovrascrittura vecchio file WallData.lua con nuovo ' Flag per sovrascrittura vecchio file WallData.lua con nuovo
Dim bWallDataExists As Boolean = False Dim bWallDataExists As Boolean = False
Const sWallData As String = "\WallData.lua" Const sWallData As String = "\WallData.lua"
' Flag per sovrascrivere vecchio file MachiningTypes.ini ' Flag per sovrascrivere vecchio file MachiningTypes.ini
Dim bMchgTypesExists As Boolean = False Dim bMchgTypesExists As Boolean = False
Const sMchgTypes As String = "\MachiningTypes.ini" Const sMchgTypes As String = "\MachiningTypes.ini"
If My.Computer.FileSystem.DirectoryExists( sMachDir & "\Wall") Then If My.Computer.FileSystem.DirectoryExists(sMachDir & "\Wall") Then
If My.Computer.FileSystem.FileExists( sMachDir & "\Wall" & sWallData) Then If My.Computer.FileSystem.FileExists(sMachDir & "\Wall" & sWallData) Then
bWallDataExists = True bWallDataExists = True
My.Computer.FileSystem.MoveFile( sMachDir & "\Wall" & sWallData, sMachDir & sWallData, True) My.Computer.FileSystem.MoveFile(sMachDir & "\Wall" & sWallData, sMachDir & sWallData, True)
End If End If
If My.Computer.FileSystem.FileExists( sMachDir & "\Wall" & sMchgTypes) Then If My.Computer.FileSystem.FileExists(sMachDir & "\Wall" & sMchgTypes) Then
bMchgTypesExists = True bMchgTypesExists = True
My.Computer.FileSystem.MoveFile( sMachDir & "\Wall" & sMchgTypes, sMachDir & sMchgTypes, True) My.Computer.FileSystem.MoveFile(sMachDir & "\Wall" & sMchgTypes, sMachDir & sMchgTypes, True)
End If End If
My.Computer.FileSystem.DeleteDirectory( sMachDir & "\Wall", FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sMachDir & "\Wall", FileIO.DeleteDirectoryOption.DeleteAllContents)
End If End If
My.Computer.FileSystem.CopyDirectory( sBackupDir & "\Wall", sMachDir & "\Wall", True) My.Computer.FileSystem.CopyDirectory(sBackupDir & "\Wall", sMachDir & "\Wall", True)
If bWallDataExists Then My.Computer.FileSystem.MoveFile( sMachDir & sWallData, sMachDir & "\Wall" & sWallData, True) If bWallDataExists Then My.Computer.FileSystem.MoveFile(sMachDir & sWallData, sMachDir & "\Wall" & sWallData, True)
If bMchgTypesExists Then My.Computer.FileSystem.MoveFile( sMachDir & sMchgTypes, sMachDir & "\Wall" & sMchgTypes, True) If bMchgTypesExists Then My.Computer.FileSystem.MoveFile(sMachDir & sMchgTypes, sMachDir & "\Wall" & sMchgTypes, True)
End If End If
End If End If
'La macchina "{0}" è stata aggiornata con successo. 'La macchina "{0}" è stata aggiornata con successo.
Dim sOk As String = String.Format(EgtMsg(MSG_OPTIONPAGE + 30), sMachName) Dim sOk As String = String.Format(EgtMsg(MSG_OPTIONPAGE + 30), sMachName)
EgtOutLog( sOk) EgtOutLog(sOk)
MessageBox.Show(sOk, EgtMsg(MSG_MESSAGEBOX + 3), MessageBoxButton.OK) MessageBox.Show(sOk, EgtMsg(MSG_MESSAGEBOX + 3), MessageBoxButton.OK)
' Rimuovo il direttorio temporaneo ' Rimuovo il direttorio temporaneo
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
' Aggiorno la lista delle macchina ' Aggiorno la lista delle macchina
Map.refMachinePanelVM.InsertMachine(sMachDir) Map.refMachinePanelVM.InsertMachine(sMachDir)
End Sub End Sub
@@ -1270,7 +1381,7 @@ Public Class OptionWindowVM
' aggiungo i file della Macchina ' aggiungo i file della Macchina
Dim sMachineDir As String = IniFile.m_sMachinesRoot & "\" & sCurrMachineName Dim sMachineDir As String = IniFile.m_sMachinesRoot & "\" & sCurrMachineName
If Directory.Exists(sMachineDir) Then If Directory.Exists(sMachineDir) Then
zip.AddSelectedFiles( "name != *\.git\*.* and name != *.git*", sMachineDir, sCurrMachineName, True) zip.AddSelectedFiles("name != *\.git\*.* and name != *.git*", sMachineDir, sCurrMachineName, True)
End If End If
' salvo lo zip ' salvo lo zip
zip.Save() zip.Save()
@@ -1281,7 +1392,7 @@ Public Class OptionWindowVM
Dim sKo As String = String.Format(EgtMsg(6551), sCurrMachineName) Dim sKo As String = String.Format(EgtMsg(6551), sCurrMachineName)
EgtOutLog(sKo) EgtOutLog(sKo)
MessageBox.Show(sKo, EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.OK) MessageBox.Show(sKo, EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.OK)
return Return
End Try End Try
'La macchina "{0}" è stata esportata con successo. 'La macchina "{0}" è stata esportata con successo.
Dim sOk As String = String.Format(EgtMsg(6552), sCurrMachineName) Dim sOk As String = String.Format(EgtMsg(6552), sCurrMachineName)
@@ -1306,10 +1417,10 @@ Public Class OptionWindowVM
Dim sExeVer As String = IniFile.GetProgramVersion() Dim sExeVer As String = IniFile.GetProgramVersion()
' Verifico presenza di una precedente installazione del Beam ' Verifico presenza di una precedente installazione del Beam
Dim sBeamVer As String = "" Dim sBeamVer As String = ""
IniFile.GetSpecialLuaVersion( IniFile.m_sBeamDirPath, sBeamVer) IniFile.GetSpecialLuaVersion(IniFile.m_sBeamDirPath, sBeamVer)
If String.IsNullOrEmpty( sBeamVer) Then If String.IsNullOrEmpty(sBeamVer) Then
' Il modulo "{0}" non è stato trovato, impossibile aggiornare. - Avviso ' Il modulo "{0}" non è stato trovato, impossibile aggiornare. - Avviso
Dim sOut As String = String.Format(EgtMsg(6555), "Beam") Dim sOut As String = String.Format(EgtMsg(6555), "Beam")
MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning) MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning)
' Esco ' Esco
Return Return
@@ -1325,26 +1436,26 @@ Public Class OptionWindowVM
Dim sBeamZip As String = BeamDlg.FileName Dim sBeamZip As String = BeamDlg.FileName
' Preparo direttorio temporaneo ' Preparo direttorio temporaneo
Dim sTempDir As String = Path.Combine(IniFile.m_sTempDir, "Beam") Dim sTempDir As String = Path.Combine(IniFile.m_sTempDir, "Beam")
If My.Computer.FileSystem.DirectoryExists( sTempDir) Then If My.Computer.FileSystem.DirectoryExists(sTempDir) Then
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
End If End If
My.Computer.FileSystem.CreateDirectory( sTempDir) My.Computer.FileSystem.CreateDirectory(sTempDir)
' Unzip nel direttorio temporaneo ' Unzip nel direttorio temporaneo
Using zip As New Ionic.Zip.ZipFile(sBeamZip) Using zip As New Ionic.Zip.ZipFile(sBeamZip)
zip.ExtractAll( sTempDir, Ionic.Zip.ExtractExistingFileAction.DoNotOverwrite) zip.ExtractAll(sTempDir, Ionic.Zip.ExtractExistingFileAction.DoNotOverwrite)
End Using End Using
' Recupero i dati del nuovo Beam ' Recupero i dati del nuovo Beam
Dim sNewName = "" Dim sNewName = ""
Dim sNewVer = "" Dim sNewVer = ""
Dim sNewMinExe = "" Dim sNewMinExe = ""
IniFile.GetSpecialLuaData( sTempDir, sNewName, sNewVer, sNewMinExe) IniFile.GetSpecialLuaData(sTempDir, sNewName, sNewVer, sNewMinExe)
' Verifico che sia veramente il Beam ' Verifico che sia veramente il Beam
If String.Compare(sNewName, "Beam") <> 0 Then If String.Compare(sNewName, "Beam") <> 0 Then
' Il file zip non contiene il modulo "{0}". - Avviso ' Il file zip non contiene il modulo "{0}". - Avviso
Dim sOut As String = String.Format(EgtMsg(6556), "Beam") Dim sOut As String = String.Format(EgtMsg(6556), "Beam")
MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning) MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning)
' Rimuovo il direttorio temporaneo ed esco ' Rimuovo il direttorio temporaneo ed esco
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
Return Return
End If End If
' Verifico la versione minima del programma ' Verifico la versione minima del programma
@@ -1353,42 +1464,42 @@ Public Class OptionWindowVM
Dim sOut As String = String.Format(EgtMsg(6557), "Beam", sNewMinExe) Dim sOut As String = String.Format(EgtMsg(6557), "Beam", sNewMinExe)
MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning) MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning)
' Rimuovo il direttorio temporaneo ed esco ' Rimuovo il direttorio temporaneo ed esco
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
Return Return
End If End If
' Verifico la versione del Beam e se più vecchia chiedo cosa fare ' Verifico la versione del Beam e se più vecchia chiedo cosa fare
If String.Compare(sNewVer, sBeamVer) < 0 Then If String.Compare(sNewVer, sBeamVer) < 0 Then
' La versione del nuovo modulo "{0}" è più vecchia dell'attuale. Vuoi sovrascrivere lo stesso ? ' La versione del nuovo modulo "{0}" è più vecchia dell'attuale. Vuoi sovrascrivere lo stesso ?
Dim sOut As String = String.Format(EgtMsg(6558), "Beam") Dim sOut As String = String.Format(EgtMsg(6558), "Beam")
if MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15003), MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.No Then If MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15003), MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.No Then
' Rimuovo il direttorio temporaneo ed esco ' Rimuovo il direttorio temporaneo ed esco
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
Return Return
End If End If
End If End If
' Faccio una copia di backup del Beam corrente ' Faccio una copia di backup del Beam corrente
Dim sBackupDir As String = IniFile.m_sBeamDirPath & ".old" Dim sBackupDir As String = IniFile.m_sBeamDirPath & ".old"
If My.Computer.FileSystem.DirectoryExists( sBackupDir) Then If My.Computer.FileSystem.DirectoryExists(sBackupDir) Then
My.Computer.FileSystem.DeleteDirectory( sBackupDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sBackupDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
End If End If
Try Try
My.Computer.FileSystem.MoveDirectory( IniFile.m_sBeamDirPath, sBackupDir, True) My.Computer.FileSystem.MoveDirectory(IniFile.m_sBeamDirPath, sBackupDir, True)
Catch ex As Exception Catch ex As Exception
' Ripristino lo stato originale ed esco ' Ripristino lo stato originale ed esco
My.Computer.FileSystem.MoveDirectory( sBackupDir, IniFile.m_sBeamDirPath, True) My.Computer.FileSystem.MoveDirectory(sBackupDir, IniFile.m_sBeamDirPath, True)
' L'aggiornamento del modulo "{0}" non è riuscito. - Errore ' L'aggiornamento del modulo "{0}" non è riuscito. - Errore
Dim sOut As String = String.Format(EgtMsg(6559), "Beam") Dim sOut As String = String.Format(EgtMsg(6559), "Beam")
EgtOutLog( sOut) EgtOutLog(sOut)
MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15001), MessageBoxButton.OK, MessageBoxImage.Error) MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15001), MessageBoxButton.OK, MessageBoxImage.Error)
' Rimuovo il direttorio temporaneo ed esco ' Rimuovo il direttorio temporaneo ed esco
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
Return Return
End Try End Try
' Installo il Beam ' Installo il Beam
My.Computer.FileSystem.MoveDirectory( sTempDir, IniFile.m_sBeamDirPath, True) My.Computer.FileSystem.MoveDirectory(sTempDir, IniFile.m_sBeamDirPath, True)
' Il modulo "{0}" è stata aggiornato con successo. - Info ' Il modulo "{0}" è stata aggiornato con successo. - Info
Dim sOk As String = String.Format(EgtMsg(6560), "Beam") Dim sOk As String = String.Format(EgtMsg(6560), "Beam")
EgtOutLog( sOk) EgtOutLog(sOk)
MessageBox.Show(Application.Current.MainWindow, sOk, EgtMsg(15003), MessageBoxButton.OK) MessageBox.Show(Application.Current.MainWindow, sOk, EgtMsg(15003), MessageBoxButton.OK)
End Sub End Sub
@@ -1410,10 +1521,10 @@ Public Class OptionWindowVM
Dim sExeVer As String = IniFile.GetProgramVersion() Dim sExeVer As String = IniFile.GetProgramVersion()
' Verifico presenza di una precedente installazione del Wall ' Verifico presenza di una precedente installazione del Wall
Dim sWallVer As String = "" Dim sWallVer As String = ""
IniFile.GetSpecialLuaVersion( IniFile.m_sWallDirPath, sWallVer) IniFile.GetSpecialLuaVersion(IniFile.m_sWallDirPath, sWallVer)
If String.IsNullOrEmpty( sWallVer) Then If String.IsNullOrEmpty(sWallVer) Then
' Il modulo "{0}" non è stato trovato, impossibile aggiornare. - Avviso ' Il modulo "{0}" non è stato trovato, impossibile aggiornare. - Avviso
Dim sOut As String = String.Format(EgtMsg(6555), "Wall") Dim sOut As String = String.Format(EgtMsg(6555), "Wall")
MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning) MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning)
' Esco ' Esco
Return Return
@@ -1429,26 +1540,26 @@ Public Class OptionWindowVM
Dim sWallZip As String = WallDlg.FileName Dim sWallZip As String = WallDlg.FileName
' Preparo direttorio temporaneo ' Preparo direttorio temporaneo
Dim sTempDir As String = Path.Combine(IniFile.m_sTempDir, "Wall") Dim sTempDir As String = Path.Combine(IniFile.m_sTempDir, "Wall")
If My.Computer.FileSystem.DirectoryExists( sTempDir) Then If My.Computer.FileSystem.DirectoryExists(sTempDir) Then
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
End If End If
My.Computer.FileSystem.CreateDirectory( sTempDir) My.Computer.FileSystem.CreateDirectory(sTempDir)
' Unzip nel direttorio temporaneo ' Unzip nel direttorio temporaneo
Using zip As New Ionic.Zip.ZipFile(sWallZip) Using zip As New Ionic.Zip.ZipFile(sWallZip)
zip.ExtractAll( sTempDir, Ionic.Zip.ExtractExistingFileAction.DoNotOverwrite) zip.ExtractAll(sTempDir, Ionic.Zip.ExtractExistingFileAction.DoNotOverwrite)
End Using End Using
' Recupero i dati del nuovo Wall ' Recupero i dati del nuovo Wall
Dim sNewName = "" Dim sNewName = ""
Dim sNewVer = "" Dim sNewVer = ""
Dim sNewMinExe = "" Dim sNewMinExe = ""
IniFile.GetSpecialLuaData( sTempDir, sNewName, sNewVer, sNewMinExe) IniFile.GetSpecialLuaData(sTempDir, sNewName, sNewVer, sNewMinExe)
' Verifico che sia veramente il Wall ' Verifico che sia veramente il Wall
If String.Compare(sNewName, "Wall") <> 0 Then If String.Compare(sNewName, "Wall") <> 0 Then
' Il file zip non contiene il modulo "{0}". - Avviso ' Il file zip non contiene il modulo "{0}". - Avviso
Dim sOut As String = String.Format(EgtMsg(6556), "Wall") Dim sOut As String = String.Format(EgtMsg(6556), "Wall")
MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning) MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning)
' Rimuovo il direttorio temporaneo ed esco ' Rimuovo il direttorio temporaneo ed esco
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
Return Return
End If End If
' Verifico la versione minima del programma ' Verifico la versione minima del programma
@@ -1457,42 +1568,42 @@ Public Class OptionWindowVM
Dim sOut As String = String.Format(EgtMsg(6557), "Wall", sNewMinExe) Dim sOut As String = String.Format(EgtMsg(6557), "Wall", sNewMinExe)
MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning) MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning)
' Rimuovo il direttorio temporaneo ed esco ' Rimuovo il direttorio temporaneo ed esco
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
Return Return
End If End If
' Verifico la versione del Wall e se più vecchia chiedo cosa fare ' Verifico la versione del Wall e se più vecchia chiedo cosa fare
If String.Compare(sNewVer, sWallVer) < 0 Then If String.Compare(sNewVer, sWallVer) < 0 Then
' La versione del nuovo modulo "{0}" è più vecchia dell'attuale. Vuoi sovrascrivere lo stesso ? ' La versione del nuovo modulo "{0}" è più vecchia dell'attuale. Vuoi sovrascrivere lo stesso ?
Dim sOut As String = String.Format(EgtMsg(6558), "Wall") Dim sOut As String = String.Format(EgtMsg(6558), "Wall")
if MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15003), MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.No Then If MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15003), MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.No Then
' Rimuovo il direttorio temporaneo ed esco ' Rimuovo il direttorio temporaneo ed esco
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
Return Return
End If End If
End If End If
' Faccio una copia di backup del Wall corrente ' Faccio una copia di backup del Wall corrente
Dim sBackupDir As String = IniFile.m_sWallDirPath & ".old" Dim sBackupDir As String = IniFile.m_sWallDirPath & ".old"
If My.Computer.FileSystem.DirectoryExists( sBackupDir) Then If My.Computer.FileSystem.DirectoryExists(sBackupDir) Then
My.Computer.FileSystem.DeleteDirectory( sBackupDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sBackupDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
End If End If
Try Try
My.Computer.FileSystem.MoveDirectory( IniFile.m_sWallDirPath, sBackupDir, True) My.Computer.FileSystem.MoveDirectory(IniFile.m_sWallDirPath, sBackupDir, True)
Catch ex As Exception Catch ex As Exception
' Ripristino lo stato originale ed esco ' Ripristino lo stato originale ed esco
My.Computer.FileSystem.MoveDirectory( sBackupDir, IniFile.m_sWallDirPath, True) My.Computer.FileSystem.MoveDirectory(sBackupDir, IniFile.m_sWallDirPath, True)
' L'aggiornamento del modulo "{0}" non è riuscito. - Errore ' L'aggiornamento del modulo "{0}" non è riuscito. - Errore
Dim sOut As String = String.Format(EgtMsg(6559), "Wall") Dim sOut As String = String.Format(EgtMsg(6559), "Wall")
EgtOutLog( sOut) EgtOutLog(sOut)
MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15001), MessageBoxButton.OK, MessageBoxImage.Error) MessageBox.Show(Application.Current.MainWindow, sOut, EgtMsg(15001), MessageBoxButton.OK, MessageBoxImage.Error)
' Rimuovo il direttorio temporaneo ed esco ' Rimuovo il direttorio temporaneo ed esco
My.Computer.FileSystem.DeleteDirectory( sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents) My.Computer.FileSystem.DeleteDirectory(sTempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
Return Return
End Try End Try
' Installo il Wall ' Installo il Wall
My.Computer.FileSystem.MoveDirectory( sTempDir, IniFile.m_sWallDirPath, True) My.Computer.FileSystem.MoveDirectory(sTempDir, IniFile.m_sWallDirPath, True)
' Il modulo "{0}" è stata aggiornato con successo. - Info ' Il modulo "{0}" è stata aggiornato con successo. - Info
Dim sOk As String = String.Format(EgtMsg(6560), "Wall") Dim sOk As String = String.Format(EgtMsg(6560), "Wall")
EgtOutLog( sOk) EgtOutLog(sOk)
MessageBox.Show(Application.Current.MainWindow, sOk, EgtMsg(15003), MessageBoxButton.OK) MessageBox.Show(Application.Current.MainWindow, sOk, EgtMsg(15003), MessageBoxButton.OK)
End Sub End Sub
@@ -1580,4 +1691,29 @@ Public Class GeomTypeConverter
Throw New NotImplementedException Throw New NotImplementedException
End Function End Function
End Class
Public Class VMillTypeConverter
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
Select Case CInt(value)
Case VMillSelTypeOpt.LOWER
Return EgtMsg(31215)
Case VMillSelTypeOpt.LOW
Return EgtMsg(31216)
Case VMillSelTypeOpt.STANDARD
Return EgtMsg(31217)
Case VMillSelTypeOpt.HIGH
Return EgtMsg(31218)
Case VMillSelTypeOpt.HIGHER
Return EgtMsg(31219)
Case Else
Return ""
End Select
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
Throw New NotImplementedException()
End Function
End Class End Class
+3
View File
@@ -6,6 +6,9 @@
<Button Command="{Binding CPlaneViewCommand}" ToolTip="{Binding CPlaneViewToolTip}" Style="{StaticResource GridViewPanelButton}"> <Button Command="{Binding CPlaneViewCommand}" ToolTip="{Binding CPlaneViewToolTip}" Style="{StaticResource GridViewPanelButton}">
<Image Source="/Resources/GridViewPanel/CplaneView.png" Stretch="Uniform"/> <Image Source="/Resources/GridViewPanel/CplaneView.png" Stretch="Uniform"/>
</Button> </Button>
<Button Command="{Binding CPlaneInvertCommand}" ToolTip="{Binding CPlaneInvertToolTip}" Style="{StaticResource GridViewPanelButton}">
<Image Source="/Resources/GridViewPanel/CplaneInvert.png" Stretch="Uniform"/>
</Button>
<Button Command="{Binding CPlaneRotateCommand}" ToolTip="{Binding CPlaneRotateToolTip}" Style="{StaticResource GridViewPanelButton}"> <Button Command="{Binding CPlaneRotateCommand}" ToolTip="{Binding CPlaneRotateToolTip}" Style="{StaticResource GridViewPanelButton}">
<Image Source="/Resources/GridViewPanel/CplaneROTATE.png" Stretch="Uniform"/> <Image Source="/Resources/GridViewPanel/CplaneROTATE.png" Stretch="Uniform"/>
</Button> </Button>
+29
View File
@@ -7,6 +7,7 @@ Public Class PopUpGridPanelVM
' Definizione comandi ' Definizione comandi
Private m_cmdCPlaneView As ICommand Private m_cmdCPlaneView As ICommand
Private m_cmdCPlaneInvert As ICommand
Private m_cmdCPlaneRotate As ICommand Private m_cmdCPlaneRotate As ICommand
Private m_cmdCPlane3P As ICommand Private m_cmdCPlane3P As ICommand
Private m_cmdCPlanePerpObj As ICommand Private m_cmdCPlanePerpObj As ICommand
@@ -19,6 +20,11 @@ Public Class PopUpGridPanelVM
Return EgtMsg(MSG_GRIDVIEWPANEL + 25) Return EgtMsg(MSG_GRIDVIEWPANEL + 25)
End Get End Get
End Property End Property
Public ReadOnly Property CPlaneInvertToolTip As String
Get
Return EgtMsg(5285)
End Get
End Property
Public ReadOnly Property CPlaneRotateToolTip As String Public ReadOnly Property CPlaneRotateToolTip As String
Get Get
Return EgtMsg(MSG_GRIDVIEWPANEL + 28) Return EgtMsg(MSG_GRIDVIEWPANEL + 28)
@@ -70,6 +76,29 @@ Public Class PopUpGridPanelVM
#End Region ' CPlaneViewCommand #End Region ' CPlaneViewCommand
#Region "CPlaneInvertCommand"
''' <summary>
''' Returns a command that do CPlaneInvert.
''' </summary>
Public ReadOnly Property CPlaneInvertCommand As ICommand
Get
If m_cmdCPlaneInvert Is Nothing Then
m_cmdCPlaneInvert = New RelayCommand(AddressOf CPlaneInvert)
End If
Return m_cmdCPlaneInvert
End Get
End Property
''' <summary>
''' Execute the CPlaneInvert. This method is invoked by the CPlaneInvertCommand.
''' </summary>
Public Sub CPlaneInvert(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.GRID_INVERT)
End Sub
#End Region
#Region "CPlaneRotateCommand" #Region "CPlaneRotateCommand"
''' <summary> ''' <summary>
-3
View File
@@ -12,9 +12,6 @@
<Button ToolTip="{Binding ZoomSelToolTip}" Style="{StaticResource GridViewPanelButton}" Command="{Binding ZoomSelCommand}"> <Button ToolTip="{Binding ZoomSelToolTip}" Style="{StaticResource GridViewPanelButton}" Command="{Binding ZoomSelCommand}">
<Image Source="/Resources/GridViewPanel/ZoomSel.png" Stretch="Uniform"/> <Image Source="/Resources/GridViewPanel/ZoomSel.png" Stretch="Uniform"/>
</Button> </Button>
<Button ToolTip="{Binding LookFromIso_SEToolTip}" Style="{StaticResource GridViewPanelButton}" Command="{Binding IsoViewSECommand}">
<Image Source="/Resources/GridViewPanel/LookFromISO_SE.png" Stretch="Uniform"/>
</Button>
<Button ToolTip="{Binding LookFromIso_NEToolTip}" Style="{StaticResource GridViewPanelButton}" Command="{Binding IsoViewNECommand}"> <Button ToolTip="{Binding LookFromIso_NEToolTip}" Style="{StaticResource GridViewPanelButton}" Command="{Binding IsoViewNECommand}">
<Image Source="/Resources/GridViewPanel/LookFromISO_NE.png" Stretch="Uniform"/> <Image Source="/Resources/GridViewPanel/LookFromISO_NE.png" Stretch="Uniform"/>
</Button> </Button>
-30
View File
@@ -9,7 +9,6 @@ Public Class PopUpViewPanelVM
Private m_cmdZoomIn As ICommand Private m_cmdZoomIn As ICommand
Private m_cmdZoomOut As ICommand Private m_cmdZoomOut As ICommand
Private m_cmdZoomSel As ICommand Private m_cmdZoomSel As ICommand
Private m_cmdIsoViewSE As ICommand
Private m_cmdIsoViewNE As ICommand Private m_cmdIsoViewNE As ICommand
Private m_cmdIsoViewNW As ICommand Private m_cmdIsoViewNW As ICommand
Private m_cmdViewToCPlane As ICommand Private m_cmdViewToCPlane As ICommand
@@ -34,12 +33,6 @@ Public Class PopUpViewPanelVM
End Get End Get
End Property End Property
Public ReadOnly Property LookFromIso_SEToolTip As String
Get
Return EgtMsg(MSG_GRIDVIEWPANEL + 13)
End Get
End Property
Public ReadOnly Property LookFromIso_NEToolTip As String Public ReadOnly Property LookFromIso_NEToolTip As String
Get Get
Return EgtMsg(MSG_GRIDVIEWPANEL + 14) Return EgtMsg(MSG_GRIDVIEWPANEL + 14)
@@ -133,29 +126,6 @@ Public Class PopUpViewPanelVM
#End Region ' ZoomOutCommand #End Region ' ZoomOutCommand
#Region "IsoViewSECommand"
''' <summary>
''' Returns a command that do IsoViewSE.
''' </summary>
Public ReadOnly Property IsoViewSECommand As ICommand
Get
If m_cmdIsoViewSE Is Nothing Then
m_cmdIsoViewSE = New RelayCommand(AddressOf IsoViewSE)
End If
Return m_cmdIsoViewSE
End Get
End Property
''' <summary>
''' Execute the IsoViewSE. This method is invoked by the IsoViewSECommand.
''' </summary>
Public Sub IsoViewSE(ByVal param As Object)
Map.refProjectVM.GetScene.IsoViewSE()
End Sub
#End Region ' IsoViewSECommand
#Region "IsoViewNECommand" #Region "IsoViewNECommand"
''' <summary> ''' <summary>
+1 -1
View File
@@ -16,7 +16,7 @@
<Setter Property="DockPanel.Dock" Value="{Binding}" /> <Setter Property="DockPanel.Dock" Value="{Binding}" />
</Style> </Style>
</ItemsControl.ItemContainerStyle> </ItemsControl.ItemContainerStyle>
<interactivity:Interaction.Triggers> <interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="Loaded"> <interactivity:EventTrigger EventName="Loaded">
<interactivity:InvokeCommandAction Command="{Binding LoadedCommand}"/> <interactivity:InvokeCommandAction Command="{Binding LoadedCommand}"/>
+248 -29
View File
@@ -58,11 +58,25 @@ Public Class ProjectVM
End Get End Get
End Property End Property
Private m_DynamicGrid As New Grid()
Public ReadOnly Property DynamicGrid As Grid
Get
Return m_DynamicGrid
End Get
End Property
Private m_DynamicGridList As New List(Of Object)
Public ReadOnly Property DynamicGridList As List(Of Object)
Get
Return m_DynamicGridList
End Get
End Property
#End Region #End Region
#Region "EGTUILIB FIELDS" #Region "EGTUILIB FIELDS"
Private m_bCPlaneTypePos As Boolean Private m_bCPlaneTypePos As Boolean
' Variabile per implementazione eventi ' Variabile per implementazione eventi
Private m_InputText As String Private m_InputText As String
@@ -79,6 +93,17 @@ Public Class ProjectVM
TMDbParamVisibility.bFirst = True TMDbParamVisibility.bFirst = True
' Inizializza i parametri della scena ' Inizializza i parametri della scena
'InitializeEgtProject() 'InitializeEgtProject()
Dim m_TopTrayV As New TopTrayV
Dim m_LeftTrayV As New LeftTrayV
Dim m_RightTrayV As New RightTrayV
Dim m_BottomTrayV As New BottomTrayV
Dim m_SceneContentControlV As New SceneContentControlV
CreateDynamicGrid()
Dim gridSplitter As GridSplitter = CreateGridSplitter()
' aggiungo componenti interfaccia ' aggiungo componenti interfaccia
Dim bPlugin As Boolean = False Dim bPlugin As Boolean = False
Dim PluginDirNameList() As String = {} Dim PluginDirNameList() As String = {}
@@ -105,30 +130,57 @@ Public Class ProjectVM
Dim ConfigurationData As IPluginConfigData = Map.refMainWindowVM.GetConfigData(Of IPluginConfigData)(PluginName & ".ConfigurationData") Dim ConfigurationData As IPluginConfigData = Map.refMainWindowVM.GetConfigData(Of IPluginConfigData)(PluginName & ".ConfigurationData")
If Not IsNothing(ConfigurationData) And ConfigurationData.ControlList.Count > 0 Then If Not IsNothing(ConfigurationData) And ConfigurationData.ControlList.Count > 0 Then
For Each Element In ConfigurationData.ControlList For Each Element In ConfigurationData.ControlList
PopolateGridWithPlugIn(m_TopTrayV, m_RightTrayV, m_BottomTrayV, m_SceneContentControlV, gridSplitter)
Select Case Element.Name Select Case Element.Name
Case PLUGIN_RIGHT_TRAY Case PLUGIN_RIGHT_TRAY
m_PanelList.Add(New RightTrayV) 'm_PanelList.Add(New RightTrayV)
'aggiungo RightTrayV alla griglia
m_DynamicGrid.Children.Add(m_RightTrayV)
Map.refOptionPanelVM.SetPanelViewState(Element.ViewPanelState) Map.refOptionPanelVM.SetPanelViewState(Element.ViewPanelState)
Case PLUGIN_LEFT_TRAY Case PLUGIN_LEFT_TRAY
m_PanelList.Add(New LeftTrayV) 'm_PanelList.Add(New LeftTrayV)
' aggiungo LeftTrayV alla griglia
m_DynamicGrid.Children.Add(m_LeftTrayV)
Case Else Case Else
m_PanelList.Add(Map.refMainWindowVM.GetControlByName(Of IPluginControl)(Element)) m_PanelList.Add(Map.refMainWindowVM.GetControlByName(Of IPluginControl)(Element))
' aggiungo LeftTrayV alla griglia
'm_DynamicGrid.Children.Add(Map.refMainWindowVM.GetControlByName(Of IPluginControl)(Element))
End Select End Select
Next Next
End If End If
End If End If
Next Next
m_PanelList.Add(New BottomTrayV) ' aggiungo gridSplitter alla griglia
m_PanelList.Add(New TopTrayV) m_DynamicGrid.Children.Add(gridSplitter)
'm_PanelList.Add(New BottomTrayV)
' aggiungo BottomTrayV alla griglia
m_DynamicGrid.Children.Add(m_BottomTrayV)
'm_PanelList.Add(New TopTrayV)
' aggiungo TopTrayV alla griglia
m_DynamicGrid.Children.Add(m_TopTrayV)
' nascondo tasti gestione progetto se attivo plugin ' nascondo tasti gestione progetto se attivo plugin
Map.refTopCommandBarVM.SetProjectManagerVisibility(False) Map.refTopCommandBarVM.SetProjectManagerVisibility(False)
Else Else
m_PanelList.Add(New TopTrayV) PololateGrid(m_TopTrayV, m_LeftTrayV, m_RightTrayV, m_BottomTrayV, m_SceneContentControlV, gridSplitter)
m_PanelList.Add(New LeftTrayV) 'm_PanelList.Add(New TopTrayV)
m_PanelList.Add(New RightTrayV) 'm_PanelList.Add(New LeftTrayV)
m_PanelList.Add(New BottomTrayV) 'm_PanelList.Add(New RightTrayV)
'm_PanelList.Add(New BottomTrayV)
' aggiungo TopTrayV alla griglia
m_DynamicGrid.Children.Add(m_TopTrayV)
' aggiungo LeftTrayV alla griglia
m_DynamicGrid.Children.Add(m_LeftTrayV)
' aggiungo gridSplitter alla griglia
m_DynamicGrid.Children.Add(gridSplitter)
' aggiungo RightTrayV alla griglia
m_DynamicGrid.Children.Add(m_RightTrayV)
' aggiungo BottomTrayV alla griglia
m_DynamicGrid.Children.Add(m_BottomTrayV)
End If End If
m_PanelList.Add(New SceneContentControlV) 'm_PanelList.Add(New SceneContentControlV)
' aggiungo SceneContentControlV alla griglia
m_DynamicGrid.Children.Add(m_SceneContentControlV)
m_PanelList.Add(m_DynamicGrid)
End Sub End Sub
#End Region #End Region
@@ -231,18 +283,33 @@ Public Class ProjectVM
SceneHost.Child = Nothing SceneHost.Child = Nothing
' Se manca la chiave ' Se manca la chiave
If IniFile.m_nKeyLevel = -1 Or IniFile.m_nKeyLevel = -2 Then If IniFile.m_nKeyLevel = -1 Or IniFile.m_nKeyLevel = -2 Then
EgtOutLog("Missing Dongle") If Not EgtGetNetHwKey() Then
' Box di avviso chiave mancante : "Chiave non presente. \n Inserirla e riavviare il programma." "Errore" EgtOutLog("Missing Dongle")
Dim sText As String = EgtMsg(MSG_MISSINGKEYWD + 2) & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 3) ' Box di avviso chiave mancante : "Chiave non presente. \n Inserirla e riavviare il programma." "Errore"
Dim sTitle As String = EgtMsg(MSG_MISSINGKEYWD + 1) Dim sText As String = EgtMsg(10102) & vbCrLf & EgtMsg(10103)
Dim sTitle As String = EgtMsg(10101)
MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error)
Else
EgtOutLog("NetDongle is full")
' Box di avviso slot chiave di rete occupato : "Chiave di Rete completamente occupata. \n Uscire dal programma su un altro PC." "Errore"
Dim sText As String = EgtMsg(10110) & vbCrLf & EgtMsg(10111)
Dim sTitle As String = EgtMsg(10101)
MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error)
End If
' Se altrimenti manca il collegamento con la chiave di rete
ElseIf IniFile.m_nKeyLevel = -9 Then
EgtOutLog("Missing Link with Net Dongle")
' Box di avviso chiave mancante : "Collegamento con la Chiave di rete non riuscito. \n Verificare la connessione." "Errore"
Dim sText As String = EgtMsg(10108) & vbCrLf & EgtMsg(10109)
Dim sTitle As String = EgtMsg(10101)
MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error) MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error)
' Altrimenti manca la licenza ' Altrimenti manca la licenza
Else Else
EgtOutLog("Problems with Licence") EgtOutLog("Problems with Licence")
' Box di avviso licenza con problemi : sKeyInfo \n "Programma senza licenza. \n Caricala e riavvia il programma." "Errore" ' Box di avviso licenza con problemi : sKeyInfo \n "Programma senza licenza. \n Caricala e riavvia il programma." "Errore"
Dim sKeyInfo As String = "" : EgtGetKeyInfo(sKeyInfo) Dim sKeyInfo As String = "" : EgtGetKeyInfo(sKeyInfo)
Dim sText As String = sKeyInfo & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 5) & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 6) Dim sText As String = sKeyInfo & vbCrLf & EgtMsg(10105) & vbCrLf & EgtMsg(10106)
Dim sTitle As String = EgtMsg(MSG_MISSINGKEYWD + 1) Dim sTitle As String = EgtMsg(10101)
If MessageBox.Show(sText, sTitle, MessageBoxButton.OKCancel, MessageBoxImage.Error) = MessageBoxResult.OK Then If MessageBox.Show(sText, sTitle, MessageBoxButton.OKCancel, MessageBoxImage.Error) = MessageBoxResult.OK Then
' Apro dialogo per richiesta file licenza ' Apro dialogo per richiesta file licenza
Dim LicDlg As New Microsoft.Win32.OpenFileDialog() With { Dim LicDlg As New Microsoft.Win32.OpenFileDialog() With {
@@ -277,6 +344,125 @@ Public Class ProjectVM
#Region "METHODS" #Region "METHODS"
''' <summary>
''' Funzione per popolare la griglia
''' </summary>
''' <param name="m_TopTrayV"></param>
''' <param name="m_LeftTrayV"></param>
''' <param name="m_RightTrayV"></param>
''' <param name="m_BottomTrayV"></param>
''' <param name="m_SceneContentControlV"></param>
''' <param name="gridSplitter"></param>
Private Shared Sub PololateGrid(m_TopTrayV As TopTrayV, m_LeftTrayV As LeftTrayV, m_RightTrayV As RightTrayV, m_BottomTrayV As BottomTrayV, m_SceneContentControlV As SceneContentControlV, gridSplitter As GridSplitter)
' aggiungo TopTrayV
Grid.SetRow(m_TopTrayV, 0)
Grid.SetColumnSpan(m_TopTrayV, 3)
' aggiungo LeftTrayV
Grid.SetRow(m_LeftTrayV, 1)
Grid.SetColumn(m_LeftTrayV, 0)
Grid.SetRowSpan(m_LeftTrayV, 2)
' aggiungo RightTrayV
Grid.SetRow(m_RightTrayV, 1)
Grid.SetColumn(m_RightTrayV, 2)
Grid.SetRowSpan(m_RightTrayV, 2)
'aggiungo gridSplitter
Grid.SetRow(gridSplitter, 1)
Grid.SetColumn(gridSplitter, 2)
' aggiungo BottomTrayV
Grid.SetRow(m_BottomTrayV, 2)
Grid.SetColumn(m_BottomTrayV, 1)
' aggiungo Scena
Grid.SetRow(m_SceneContentControlV, 1)
Grid.SetColumn(m_SceneContentControlV, 1)
End Sub
''' <summary>
''' Funzione per popolare la griglia con PlugIn
''' </summary>
''' <param name="m_TopTrayV"></param>
''' <param name="m_RightTrayV"></param>
''' <param name="m_BottomTrayV"></param>
''' <param name="m_SceneContentControlV"></param>
''' <param name="gridSplitter"></param>
Private Shared Sub PopolateGridWithPlugIn(m_TopTrayV As TopTrayV, m_RightTrayV As RightTrayV, m_BottomTrayV As BottomTrayV, m_SceneContentControlV As SceneContentControlV, gridSplitter As GridSplitter)
' aggiungo TopTrayV
Grid.SetRow(m_TopTrayV, 0)
Grid.SetColumn(m_TopTrayV, 1)
' aggiungo RightTrayV
Grid.SetRow(m_RightTrayV, 0)
Grid.SetColumn(m_RightTrayV, 2)
Grid.SetRowSpan(m_RightTrayV, 2)
'aggiungo gridSplitter
Grid.SetRow(gridSplitter, 0)
Grid.SetColumn(gridSplitter, 2)
Grid.SetRowSpan(gridSplitter, 2)
' aggiungo BottomTrayV
Grid.SetRow(m_BottomTrayV, 2)
Grid.SetColumn(m_BottomTrayV, 1)
' aggiungo Scena
Grid.SetRow(m_SceneContentControlV, 1)
Grid.SetColumn(m_SceneContentControlV, 1)
End Sub
''' <summary>
''' Creazione GridSplitter
''' </summary>
''' <returns></returns>
Private Shared Function CreateGridSplitter() As GridSplitter
' creo gridsplitter
Return New GridSplitter With {
.Width = 30,
.HorizontalAlignment = HorizontalAlignment.Left,
.VerticalAlignment = VerticalAlignment.Stretch,
.Background = Brushes.Transparent
}
End Function
''' <summary>
''' Creazione Griglia Dinamica
''' </summary>
Private Sub CreateDynamicGrid()
' creo colonne griglia dinamica
Dim gridCol1 As New ColumnDefinition With {
.Width = New GridLength(1, GridUnitType.Auto)
}
'.Width = New GridLength(1, GridUnitType.Auto)
Dim gridCol2 As New ColumnDefinition With {
.Width = New GridLength(1, GridUnitType.Star)
}
Dim gridCol3 As New ColumnDefinition With {
.Width = New GridLength(250)
}
' aggiungo le colonne alla griglia
m_DynamicGrid.ColumnDefinitions.Add(gridCol1)
m_DynamicGrid.ColumnDefinitions.Add(gridCol2)
m_DynamicGrid.ColumnDefinitions.Add(gridCol3)
' creo righe griglia dinamica
Dim gridRow1 As New RowDefinition With {
.Height = New GridLength(1, GridUnitType.Auto)
}
Dim gridRow2 As New RowDefinition With {
.Height = New GridLength(1, GridUnitType.Star)
}
Dim gridRow3 As New RowDefinition With {
.Height = New GridLength(1, GridUnitType.Auto)
}
' aggiungo righe alla griglia
m_DynamicGrid.RowDefinitions.Add(gridRow1)
m_DynamicGrid.RowDefinitions.Add(gridRow2)
m_DynamicGrid.RowDefinitions.Add(gridRow3)
End Sub
Private Sub PreInitializeScene() Private Sub PreInitializeScene()
' imposto colore di default ' imposto colore di default
Dim DefColor As New Color3d(0, 0, 0) Dim DefColor As New Color3d(0, 0, 0)
@@ -292,10 +478,13 @@ Public Class ProjectVM
Dim nLineWidth As Integer = 1 Dim nLineWidth As Integer = 1
nLineWidth = GetPrivateProfileInt(S_SCENE, K_LINEWIDTH, nLineWidth) nLineWidth = GetPrivateProfileInt(S_SCENE, K_LINEWIDTH, nLineWidth)
m_ProjectScene.SetLineWidth(nLineWidth) m_ProjectScene.SetLineWidth(nLineWidth)
' imposto colore di evidenziazione ' imposto colori di evidenziazione
Dim MarkColor As New Color3d(255, 255, 0) Dim MarkColor As New Color3d(255, 255, 0)
GetPrivateProfileColor(S_SCENE, K_MARK, MarkColor) GetPrivateProfileColor(S_SCENE, K_MARK, MarkColor)
m_ProjectScene.SetMarkMaterial(MarkColor) m_ProjectScene.SetMarkMaterial(MarkColor)
Dim Mark2Color As New Color3d(255, 64, 64)
GetPrivateProfileColor(S_SCENE, K_MARK2, Mark2Color)
m_ProjectScene.SetMark2Material(Mark2Color)
' imposto colore per superfici selezionate ' imposto colore per superfici selezionate
Dim SelSurfColor As New Color3d(255, 255, 192) Dim SelSurfColor As New Color3d(255, 255, 192)
GetPrivateProfileColor(S_SCENE, K_SELSURF, SelSurfColor) GetPrivateProfileColor(S_SCENE, K_SELSURF, SelSurfColor)
@@ -1084,8 +1273,8 @@ Public Class ProjectVM
Select Case m_SceneSelType Select Case m_SceneSelType
Case SceneSelTypeOpt.FIXTURE Case SceneSelTypeOpt.FIXTURE
Dim nFixtureId As Integer = EgtGetParent(EgtGetParent(nId)) Dim nFixtureId As Integer = EgtGetParent(EgtGetParent(nId))
Dim sName As String = "" 'Dim sName As String = ""
EgtGetName(EgtGetParent(nId), sName) 'EgtGetName(EgtGetParent(nId), sName)
If EgtVerifyFixture(nFixtureId) Then If EgtVerifyFixture(nFixtureId) Then
m_SelType = DispositionUtility.SelType.FIXTURE m_SelType = DispositionUtility.SelType.FIXTURE
' Se già selezionato ' Se già selezionato
@@ -1103,14 +1292,12 @@ Public Class ProjectVM
EgtGetPlaneSnapPoint(e.Location, Vector3d.Z_AX, TableRef.z, ptCurr) EgtGetPlaneSnapPoint(e.Location, Vector3d.Z_AX, TableRef.z, ptCurr)
DispositionUtility.VtHookFinder(nFixtureId, ptCurr) DispositionUtility.VtHookFinder(nFixtureId, ptCurr)
Exit While Exit While
ElseIf sName.Contains(DispositionUtility.MOBILE) Then ElseIf DispositionUtility.VerifyTableAxis(nFixtureId) Then
Dim sInfo As String = "" m_SelType = DispositionUtility.SelType.BARS
If EgtGetInfo(EgtGetParent(nId), "MDir", sInfo) Then m_nIdToSel = nFixtureId
m_SelType = DispositionUtility.SelType.BARS ' Drag possibile
m_nIdToSel = EgtGetParent(nId) m_bDrag = True
' Drag possibile Exit While
m_bDrag = True
End If
End If End If
Case SceneSelTypeOpt.RAWPART, SceneSelTypeOpt.RAWPARTWITHFIXTURE Case SceneSelTypeOpt.RAWPART, SceneSelTypeOpt.RAWPARTWITHFIXTURE
Dim nRawPartId As Integer = EgtGetParent(nId) Dim nRawPartId As Integer = EgtGetParent(nId)
@@ -1172,7 +1359,6 @@ Public Class ProjectVM
vtMove.z = 0 vtMove.z = 0
' Muovo gli oggetti selezionati se consentito ' Muovo gli oggetti selezionati se consentito
DispositionUtility.MoveRawPartPartAndFixture(nMoveId, vtMove, m_SelType, ptCurr) DispositionUtility.MoveRawPartPartAndFixture(nMoveId, vtMove, m_SelType, ptCurr)
'EgtSaveFile("c:\Temp\ProveMovimentoVentose\Prova1.nge", NGE.BIN)
EgtDraw() EgtDraw()
' Aggiorno il punto precedente ' Aggiorno il punto precedente
m_ptPrev = ptCurr m_ptPrev = ptCurr
@@ -1375,7 +1561,7 @@ Public Class ProjectVM
If nFac <> -1 Then If nFac <> -1 Then
' Visualizzo la normale e il contorno della faccia ' Visualizzo la normale e il contorno della faccia
Analyze.CreateAnalyzeGroup() Analyze.CreateAnalyzeGroup()
Analyze.CreateNormal(nId, nFac) Analyze.CreateFacetNormal(nId, nFac)
Analyze.CreateFacetLoops(nId, nFac) Analyze.CreateFacetLoops(nId, nFac)
' Recupero i dati (in globale o griglia a seconda della impostazione) ' Recupero i dati (in globale o griglia a seconda della impostazione)
Dim ptC As Point3d Dim ptC As Point3d
@@ -1390,6 +1576,27 @@ Public Class ProjectVM
" / φ=" + DoubleToString(dPhi, 2) + " θ=" + DoubleToString(dTheta, 2) " / φ=" + DoubleToString(dPhi, 2) + " θ=" + DoubleToString(dTheta, 2)
Map.refStatusBarVM.NotifyStatusOutput(sOut) Map.refStatusBarVM.NotifyStatusOutput(sOut)
End If End If
' Se Regione, visualizzo dati parte toccata
ElseIf EgtGetType(nId) = GDB_TY.SRF_FRGN Then
Dim nChk As Integer = nSub
If nChk >= 0 AndAlso nChk < EgtSurfFrChunkCount(nId) Then
' Visualizzo la normale e il contorno della parte
Analyze.CreateAnalyzeGroup()
Analyze.CreateChunkNormal(nId, nChk)
Analyze.CreateChunkLoops(nId, nChk)
' Recupero i dati (in globale o griglia a seconda della impostazione)
Dim ptC As Point3d
Dim vtN As Vector3d
EgtSurfFrChunkCenter(nId, nChk, If(m_bCPlaneTypePos, GDB_ID.GRID, GDB_ID.ROOT), ptC, vtN)
Dim dLen, dPhi, dTheta As Double
vtN.ToSpherical(dLen, dTheta, dPhi)
' Emetto info sulla barra di stato
Dim sOut As String = "Chunk " + nChk.ToString() +
" : C(" + LenToString(ptC.x, 3) + "," + LenToString(ptC.y, 3) + "," + LenToString(ptC.z, 3) + ")" +
" N(" + DoubleToString(vtN.x, 4) + "," + DoubleToString(vtN.y, 4) + "," + DoubleToString(vtN.z, 4) + ")" +
" / φ=" + DoubleToString(dPhi, 2) + " θ=" + DoubleToString(dTheta, 2)
Map.refStatusBarVM.NotifyStatusOutput(sOut)
End If
End If End If
' Aggiorno la visualizzazione ' Aggiorno la visualizzazione
EgtDraw() EgtDraw()
@@ -1462,6 +1669,15 @@ Public Class ProjectVM
End If End If
End Sub End Sub
Private Sub OnInsertingProject(ByVal sender As Object, nType As Integer, ByRef nFlag As Integer) Handles m_Controller.OnInsertingProject
If nType = FT.OBJ Or nType = FT.IGES Or nType = FT.STEP_ Or nType = FT.ACIS Or
nType = FT.PARASOLID Or nType = FT.JT Or nType = FT.VRML Or nType = FT.C3D Then
nFlag = GetMainPrivateProfileInt(S_IMPORT, K_ADVFLAG, 0)
Else
nFlag = 0
End If
End Sub
Private Sub OnInsertedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnInsertedProject Private Sub OnInsertedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnInsertedProject
EgtZoom(ZM.ALL) EgtZoom(ZM.ALL)
WritePrivateProfileString(S_GENERAL, K_LASTNGEINSDIR, Path.GetDirectoryName(sFile)) WritePrivateProfileString(S_GENERAL, K_LASTNGEINSDIR, Path.GetDirectoryName(sFile))
@@ -1502,6 +1718,9 @@ Public Class ProjectVM
nFlag = GetPrivateProfileInt(S_IMPORT, K_CNCFLAG, EIC_FL.NONE) nFlag = GetPrivateProfileInt(S_IMPORT, K_CNCFLAG, EIC_FL.NONE)
ElseIf nType = FT.BTL Or nType = FT.BTLX Then ElseIf nType = FT.BTL Or nType = FT.BTLX Then
nFlag = GetPrivateProfileInt(S_IMPORT, K_BTLFLAG, EIB_FL.NONE) nFlag = GetPrivateProfileInt(S_IMPORT, K_BTLFLAG, EIB_FL.NONE)
ElseIf nType = FT.OBJ Or nType = FT.IGES Or nType = FT.STEP_ Or nType = FT.ACIS Or
nType = FT.PARASOLID Or nType = FT.JT Or nType = FT.VRML Or nType = FT.C3D Then
nFlag = GetPrivateProfileInt(S_IMPORT, K_ADVFLAG, 0)
Else Else
nFlag = 0 nFlag = 0
End If End If
Binary file not shown.

After

Width:  |  Height:  |  Size: 951 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 875 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 821 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Some files were not shown because too many files have changed in this diff Show More