TestEIn 1.6d10 :

- possibilità di salvare un singolo pezzo o layer o entità.
This commit is contained in:
Dario Sassi
2015-04-30 20:44:28 +00:00
parent dcdee3c092
commit 040cb7b15e
7 changed files with 106 additions and 13 deletions
+1
View File
@@ -24,6 +24,7 @@ Public Const K_COMMANDLOG As String = "CommandLog"
Public Const K_MESSAGES As String = "Messages"
Public Const K_WINPLACE As String = "WinPlace"
Public Const K_LASTNGEDIR As String = "LastNgeDir"
Public Const K_LASTNGEOBJDIR As String = "LastNgeObjDir"
Public Const K_LASTLUADIR As String = "LastLuaDir"
Public Const K_LASTIMPDIR As String = "LastImpDir"
Public Const K_LASTEXPDIR As String = "LastExpDir"
+55
View File
@@ -24,6 +24,8 @@ Public Class Controller
Public Event OnOpenProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean)
Public Event OnSavingProject(ByVal sender As Object)
Public Event OnSavedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean)
Public Event OnSavingObject(ByVal sender As Object)
Public Event OnSavedObject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean)
Public Event OnImportingProject(ByVal sender As Object, ByVal bOkType As Boolean)
Public Event OnImportedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean)
Public Event OnExportingProject(ByVal sender As Object)
@@ -330,6 +332,59 @@ Public Class Controller
Return bOk
End Function
Public Function SaveObject(ByVal nId As Integer, Optional ByVal sDir As String = "", Optional ByVal nType As NGE = NGE.CMPTEXT) As Boolean
'Creo nome di default
Dim sName As String = String.Empty
If Not EgtGetName(nId, sName) Then
Dim nObjType As Integer = EgtGetType(nId)
If nObjType = GDB_TY.GROUP Then
If EgtIsPart(nId) Then
sName = "Part" & nId.ToString()
ElseIf EgtIsLayer(nId) Then
sName = "Layer" & nId.ToString()
Else
sName = "Group" & nId.ToString()
End If
ElseIf nObjType <> GDB_TY.NONE Then
Dim sTitle As String = String.Empty
EgtGetTitle(nId, sTitle)
sName = sTitle & nId.ToString()
Else
sName = "Unknown" & nId.ToString()
End If
End If
'Sistemo path
Dim sFile As String
If String.IsNullOrWhiteSpace(sDir) Then
sFile = sName
Else
sFile = sDir.TrimEnd("\") & "\" & sName
End If
'Assegnazione nome file con dialogo
Dim SaveFileDialog As New SaveFileDialog
SaveFileDialog.Title = "Save Object"
SaveFileDialog.Filter = "New geometry EgalTech(*.nge)|*.nge"
SaveFileDialog.FileName = sFile
SaveFileDialog.InitialDirectory = sDir.TrimEnd("\")
If SaveFileDialog.ShowDialog <> Windows.Forms.DialogResult.OK Then
Return True
End If
Dim sFileName As String = SaveFileDialog.FileName
'Prima del salvataggio
RaiseEvent OnSavingObject(Me)
'Salvataggio dell'oggetto con la sua ascendenza
m_Scene.Cursor = Cursors.WaitCursor
EnableCommandLog()
Dim bOk As Boolean = EgtSaveObjToFile(nId, sFileName, nType)
DisableCommandLog()
m_Scene.Cursor = Cursors.Default
'Aggiorno
RaiseEvent UpdateUI(Me, False)
'Gestione risultato
RaiseEvent OnSavedObject(Me, sFileName, bOk)
Return bOk
End Function
Public Function ImportProject(Optional ByVal sDir As String = "", Optional ByVal bWithDlg As Boolean = True) As Boolean
' gestisco eventuale file corrente modificato
If Not ManageModified() Then
+4
View File
@@ -797,6 +797,10 @@ End Function
Public Function EgtSaveFile(ByVal sFilePath As String, ByVal nFlag As NGE) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtSaveObjToFile(ByVal nId As Integer, ByVal sFilePath As String, ByVal nFlag As NGE) As Boolean
End Function
'---------- Exchange -----------------------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
+10 -2
View File
@@ -154,6 +154,7 @@ Partial Class Form1
Me.cmdRelocatePartLayObj = New System.Windows.Forms.ToolStripMenuItem()
Me.cmdCopyPartLayObj = New System.Windows.Forms.ToolStripMenuItem()
Me.cmdDeletePartLayObj = New System.Windows.Forms.ToolStripMenuItem()
Me.cmdSavePartLay = New System.Windows.Forms.ToolStripMenuItem()
Me.OpenFileDialog = New System.Windows.Forms.OpenFileDialog()
Me.SaveFileDialog = New System.Windows.Forms.SaveFileDialog()
Me.btnGetDist = New System.Windows.Forms.CheckBox()
@@ -2126,11 +2127,11 @@ Partial Class Form1
'
'ContextMenuTreeView1
'
Me.ContextMenuTreeView1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmdSelectPartLayObj, Me.cmdDeselectPartLayObj, Me.ToolStripSeparator1, Me.cmdSetName, Me.cmdSetInfo, Me.ToolStripSeparator2, Me.cmdRelocatePartLayObj, Me.cmdCopyPartLayObj, Me.cmdDeletePartLayObj})
Me.ContextMenuTreeView1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmdSelectPartLayObj, Me.cmdDeselectPartLayObj, Me.ToolStripSeparator1, Me.cmdSetName, Me.cmdSetInfo, Me.ToolStripSeparator2, Me.cmdRelocatePartLayObj, Me.cmdCopyPartLayObj, Me.cmdDeletePartLayObj, Me.cmdSavePartLay})
Me.ContextMenuTreeView1.Name = "ContextMenuStrip1"
Me.ContextMenuTreeView1.ShowCheckMargin = True
Me.ContextMenuTreeView1.ShowImageMargin = False
Me.ContextMenuTreeView1.Size = New System.Drawing.Size(120, 170)
Me.ContextMenuTreeView1.Size = New System.Drawing.Size(120, 192)
'
'cmdSelectPartLayObj
'
@@ -2184,6 +2185,12 @@ Partial Class Form1
Me.cmdDeletePartLayObj.Size = New System.Drawing.Size(119, 22)
Me.cmdDeletePartLayObj.Text = "Delete"
'
'cmdSavePartLay
'
Me.cmdSavePartLay.Name = "cmdSavePartLay"
Me.cmdSavePartLay.Size = New System.Drawing.Size(119, 22)
Me.cmdSavePartLay.Text = "Save"
'
'OpenFileDialog
'
Me.OpenFileDialog.DefaultExt = "Nge"
@@ -2578,5 +2585,6 @@ End Sub
Friend WithEvents btnChangeStartCurve As System.Windows.Forms.Button
Friend WithEvents btnFillet As System.Windows.Forms.Button
Friend WithEvents btnExplodeSurf As System.Windows.Forms.Button
Friend WithEvents cmdSavePartLay As System.Windows.Forms.ToolStripMenuItem
End Class
+7 -7
View File
@@ -883,7 +883,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC2
DQAAAk1TRnQBSQFMAgEBDgEAAXgBEAF4AhABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
DQAAAk1TRnQBSQFMAgEBDgEAAZABEAGQAhABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AUADAAFAAwABAQEAAQgGAAEQGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
@@ -952,7 +952,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADW
CAAAAk1TRnQBSQFMAgEBAgEAAZgBBwGYAQcBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAAbABBwGwAQcBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -1092,11 +1092,11 @@
</data>
<data name="btnPoint.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQffBBwHAxGEIS8JAAAAq0lEQVRYR+3TUQqDMBBF
UReWxbkWV9ddxKRN4qgXppTOSz8qHAjXgcyHLjnnqTAqYVTCqIRRCaMSRiWMShiVML6jPKmohy7RnAej
p172vHR7HD5cAqPndrlZ4jrrwej5L1Ceud9ANZY46P6Cb8KohFEJY6Trt3J6Ga1eXqx2idtQlH55O48l
cDhCu9Qu8DrboWh2gdH6QeEnFuhGswMzYFTCqIRRCaMSRp287IDzhJ/eCN+kAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAAd0SU1FB98EHAcDEYQhLwkAAACrSURBVFhH7dNRCoMwEEVRF5bFuRZX113EpE3i
qBemlM5LPyocCNeBzIcuOeepMCphVMKohFEJoxJGJYxKGJUwvqM8qaiHLtGcB6OnXva8dHscPlwCo+d2
uVniOuvB6PkvUJ6530A1ljjo/oJvwqiEUQljpOu3cnoZrV5erHaJ21CUfnk7jyVwOEK71C7wOtuhaHaB
0fpB4ScW6EazAzNgVMKohFEJoxJGnbzsgPOEn94I36QAAAAASUVORK5CYII=
</value>
</data>
<data name="btnLine2P.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+27 -2
View File
@@ -448,6 +448,20 @@ Public Class Form1
End If
End Sub
Private Sub OnSavingObject(ByVal sender As Object) Handles m_Controller.OnSavingObject
End Sub
Private Sub OnSavedObject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnSavedObject
WritePrivateProfileString(S_GENERAL, K_LASTNGEOBJDIR, Path.GetDirectoryName(sFile), m_sIniFile)
If bOk Then
m_MruFiles.Add(sFile)
Else
m_MruFiles.Remove(sFile)
Dim sMsg As String = EgtMsg(10004) & " '" & sFile & "'" 'Error saving file
MessageBox.Show(sMsg, EgtMsg(10001), MessageBoxButtons.OK, MessageBoxIcon.Error) ' Error
End If
End Sub
Private Sub OnImportingProject(ByVal sender As Object, ByVal bOkType As Boolean) Handles m_Controller.OnImportingProject
If bOkType Then
ClearObjTree()
@@ -1493,8 +1507,12 @@ Public Class Form1
' verifico stato visualizzazione per abilitare voci menù
Dim nStat As GDB_ST = GDB_ST.ON_
Dim bOn As Boolean = EgtGetCalcStatus(m_nObjTreeMenuId, nStat) And nStat <> GDB_ST.OFF
For Each i As ToolStripItem In ContextMenuTreeView1.Items
i.Enabled = bOn
For Each Item As ToolStripItem In ContextMenuTreeView1.Items
If Item.Name = "cmdSetName" Or Item.Name = "cmdSetInfo" Then
Item.Enabled = True
Else
Item.Enabled = bOn
End If
Next
ContextMenuTreeView1.Show(TreeView1, e.Location)
End If
@@ -1592,6 +1610,12 @@ Public Class Form1
ElseIf e.ClickedItem.Name = "cmdDeletePartLayObj" Then
m_Controller.SetLastInteger(m_nObjTreeMenuId)
m_Controller.ExecuteCommand(CMD.DELETE)
ElseIf e.ClickedItem.Name = "cmdSavePartLay" Then
ContextMenuTreeView1.Close()
Dim sDir As String = String.Empty
GetPrivateProfileString(S_GENERAL, K_LASTNGEOBJDIR, "", sDir, m_sIniFile)
Dim nType As NGE = GetPrivateProfileInt(S_GEOMDB, K_SAVETYPE, NGE.CMPTEXT, m_sIniFile)
m_Controller.SaveObject(m_nObjTreeMenuId, sDir, nType)
End If
End Sub
@@ -1700,6 +1724,7 @@ Public Class Form1
Private Sub OnMenuMruFiles_ItemClick(sender As Object, e As ToolStripItemClickedEventArgs) Handles ContextMenuMruFiles.ItemClicked
If e.ClickedItem.Text <> "" Then
ContextMenuMruFiles.Close()
m_Controller.OpenProject(e.ClickedItem.Text, False)
End If
End Sub
+2 -2
View File
@@ -46,5 +46,5 @@ Imports System.Runtime.InteropServices
' utilizzando l'asterisco (*) come descritto di seguito:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.6.4.9")>
<Assembly: AssemblyFileVersion("1.6.4.9")>
<Assembly: AssemblyVersion("1.6.4.10")>
<Assembly: AssemblyFileVersion("1.6.4.10")>