Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit f440e25b authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

adding xml functionality (export json to xml, run xml jobs) to GUI

parent fb048548
No related branches found
No related tags found
No related merge requests found
Showing
with 952 additions and 402 deletions
......@@ -59,6 +59,9 @@
<Name>VECTO</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Choose>
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
<ItemGroup>
......
......@@ -54,8 +54,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoEngineeringAPITest", "
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Excel2XML", "..\VECTO_API\Excel2XML\Excel2XML.csproj", "{749F150A-F974-46DC-A1E2-F4153C54FC0D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoXMLImportExport", "..\VECTO_API\VectoXMLPlugin\VectoXMLImportExport.csproj", "{9958E236-C4C6-49A2-A58D-EF9D646BA3C4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoDB", "..\VECTO_API\VectoDB\VectoDB.csproj", "{2C58BA97-2954-4D19-920F-A24B78FC80A4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoCore BugReportTests", "..\VECTO-Bugreports\BugReportTests\VectoCore BugReportTests.csproj", "{7C364099-9B85-473A-8A42-BBEBE4798FF5}"
......@@ -222,14 +220,6 @@ Global
{749F150A-F974-46DC-A1E2-F4153C54FC0D}.Release|Any CPU.Build.0 = Release|Any CPU
{749F150A-F974-46DC-A1E2-F4153C54FC0D}.Release|x64.ActiveCfg = Release|Any CPU
{749F150A-F974-46DC-A1E2-F4153C54FC0D}.Release|x86.ActiveCfg = Release|Any CPU
{9958E236-C4C6-49A2-A58D-EF9D646BA3C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9958E236-C4C6-49A2-A58D-EF9D646BA3C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9958E236-C4C6-49A2-A58D-EF9D646BA3C4}.Debug|x64.ActiveCfg = Debug|Any CPU
{9958E236-C4C6-49A2-A58D-EF9D646BA3C4}.Debug|x86.ActiveCfg = Debug|Any CPU
{9958E236-C4C6-49A2-A58D-EF9D646BA3C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9958E236-C4C6-49A2-A58D-EF9D646BA3C4}.Release|Any CPU.Build.0 = Release|Any CPU
{9958E236-C4C6-49A2-A58D-EF9D646BA3C4}.Release|x64.ActiveCfg = Release|Any CPU
{9958E236-C4C6-49A2-A58D-EF9D646BA3C4}.Release|x86.ActiveCfg = Release|Any CPU
{2C58BA97-2954-4D19-920F-A24B78FC80A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2C58BA97-2954-4D19-920F-A24B78FC80A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2C58BA97-2954-4D19-920F-A24B78FC80A4}.Debug|x64.ActiveCfg = Debug|Any CPU
......@@ -266,7 +256,6 @@ Global
{41314A40-AB3E-4F43-B1A4-58443F4014F2} = {D29E62A2-CF08-469F-B29F-1B25DCB35386}
{35FBDFEF-07E6-4E2C-8C18-4753266A6EDE} = {D29E62A2-CF08-469F-B29F-1B25DCB35386}
{749F150A-F974-46DC-A1E2-F4153C54FC0D} = {351FF7E8-B56B-445E-8E98-A61E07C990DA}
{9958E236-C4C6-49A2-A58D-EF9D646BA3C4} = {D29E62A2-CF08-469F-B29F-1B25DCB35386}
{2C58BA97-2954-4D19-920F-A24B78FC80A4} = {D29E62A2-CF08-469F-B29F-1B25DCB35386}
{7C364099-9B85-473A-8A42-BBEBE4798FF5} = {CC93EA68-F3FE-4BCB-9292-1101F94A4D09}
EndGlobalSection
......
......@@ -227,7 +227,6 @@ Partial Class MainForm
Me.btnExportXML.TabIndex = 22
Me.btnExportXML.Text = "Export as XML"
Me.btnExportXML.UseVisualStyleBackColor = True
Me.btnExportXML.Visible = False
'
'Label6
'
......
......@@ -223,6 +223,9 @@
<metadata name="CmOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>732, 12</value>
</metadata>
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>850, 12</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>49</value>
</metadata>
......
......@@ -39,14 +39,19 @@ Imports TUGraz.VectoCore.InputData.FileIO.JSON
Imports System.Text
Imports System.Text.RegularExpressions
Imports System.Threading
Imports System.Xml
Imports System.Xml.Linq
Imports Microsoft.VisualBasic.FileIO
Imports TUGraz.VectoCommon.Exceptions
Imports TUGraz.VectoCommon.InputData
Imports TUGraz.VectoCommon.Models
Imports TUGraz.VectoCommon.OutputData
Imports TUGraz.VectoCommon.Utils
Imports TUGraz.VectoCore.InputData.FileIO.XML.Declaration
Imports TUGraz.VectoCore.InputData.FileIO.XML.Engineering
Imports TUGraz.VectoCore.OutputData
Imports TUGraz.VectoCore.OutputData.FileIO
Imports TUGraz.VectoCore.Resources
Imports TUGraz.VectoCore.Utils
Imports VectoAuxiliaries
......@@ -55,7 +60,7 @@ Imports VectoAuxiliaries
''' </summary>
''' <remarks></remarks>
Public Class MainForm
Public Class MainForm
Private _jobListView As FileListView
Private _cycleListView As FileListView
......@@ -73,7 +78,7 @@ Imports VectoAuxiliaries
#Region "SLEEP Control - Prevent sleep while VECTO is running"
Private Declare Function SetThreadExecutionState Lib "kernel32"(esFlags As Long) As Long
Private Declare Function SetThreadExecutionState Lib "kernel32" (esFlags As Long) As Long
Private Shared Sub AllowSleepOff()
#If Not PLATFORM = "x86" Then
......@@ -235,8 +240,8 @@ Imports VectoAuxiliaries
LoadOptions()
'Resize columns ... after Loading the @file-lists
LvGEN.Columns(1).Width = - 2
LvMsg.Columns(2).Width = - 2
LvGEN.Columns(1).Width = -2
LvMsg.Columns(2).Width = -2
'Initialize BackgroundWorker
......@@ -252,16 +257,6 @@ Imports VectoAuxiliaries
'Set mode (Batch/Standard)
ModeUpdate()
DetectPlugins()
'Dim exportPlugins As Dictionary(Of String, String) = PluginRegistry.Instance.GetExportPluginList()
Dim exportPlugin As IExportPlugin = PluginRegistry.Instance.GetExportPlugin("TUG.IVT.Vecto.XMLExport")
btnExportXML.Visible = Not exportPlugin Is Nothing
Dim importPlugin As IImportPlugin = PluginRegistry.Instance.GetImportPlugin("TUG.IVT.Vecto.XMLImport")
btnImportXML.Visible = Not importPlugin Is Nothing
#If DEBUG Then
Const LicCheck As Boolean = False
......@@ -527,7 +522,7 @@ Imports VectoAuxiliaries
lastindx = LvGEN.SelectedIndices(LvGEN.SelectedItems.Count - 1)
For i = UBound(selIx) To 0 Step - 1
For i = UBound(selIx) To 0 Step -1
LvGEN.Items.RemoveAt(selIx(i))
Next
......@@ -552,8 +547,7 @@ Imports VectoAuxiliaries
x = New String() {""}
Dim extensions As String = "vecto"
Dim inputDataExtensions As String() =
PluginRegistry.Instance.GetKnownInputExtensions().Select(Function(e) e.Substring(1)).ToArray()
Dim inputDataExtensions As String() = New String() {"xml"}
If (inputDataExtensions.Any()) Then extensions = String.Join(",", extensions, String.Join(",", inputDataExtensions))
'STANDARD/BATCH
......@@ -596,7 +590,7 @@ Imports VectoAuxiliaries
Dim p As Integer
Dim f As Integer
Dim fList As String()
Dim fListDim As Integer = - 1
Dim fListDim As Integer = -1
Dim listViewItem As ListViewItem
'If VECTO runs: Cancel operation (because Mode-change during calculation is not very clever)
......@@ -651,7 +645,7 @@ Imports VectoAuxiliaries
listViewItem.Selected = True
LvGEN.Items.Add(listViewItem)
listViewItem.EnsureVisible()
lbFound:
lbFound:
Next
LvGEN.EndUpdate()
......@@ -948,7 +942,7 @@ Imports VectoAuxiliaries
Status("Launching VECTO ...")
JobFileList.Clear()
JobFileList.AddRange(
From listViewItem As ListViewItem In LvGEN.CheckedItems.Cast (Of ListViewItem)()
From listViewItem As ListViewItem In LvGEN.CheckedItems.Cast(Of ListViewItem)()
Select fFileRepl = FileRepl(listViewItem.SubItems(0).Text))
SetOptions()
......@@ -989,9 +983,9 @@ Imports VectoAuxiliaries
mode = ExecutionMode.Declaration
Else
mode = ExecutionMode.Engineering
Physics.FuelDensity = Cfg.FuelDens.SI (Of KilogramPerCubicMeter)() _
Physics.FuelDensity = Cfg.FuelDens.SI(Of KilogramPerCubicMeter)() _
'New SI(Cfg.FuelDens).Kilo.Gramm.Per.Cubic.Dezi.Meter.Cast(Of KilogramPerCubicMeter)()
Physics.AirDensity = Cfg.AirDensity.SI (Of KilogramPerCubicMeter)() _
Physics.AirDensity = Cfg.AirDensity.SI(Of KilogramPerCubicMeter)() _
'New SI(Cfg.AirDensity).Kilo.Gramm.Per.Cubic.Meter.Cast(Of KilogramPerCubicMeter)()
Physics.CO2PerFuelWeight = Cfg.Co2PerFc
End If
......@@ -1001,45 +995,44 @@ Imports VectoAuxiliaries
'list of finished runs
Dim finishedRuns As List(Of Integer) = New List(Of Integer)
Dim plugins As KeyValuePair(Of String, IInputDataPlugin)() = PluginRegistry.Instance.GetInputDataPlugins().ToArray()
For Each jobFile As String In JobFileList
Try
sender.ReportProgress(0,
New VectoProgress With {.Target = "ListBox", .Message = "Reading File " + jobFile, .Link = jobFile})
If (Path.GetExtension(jobFile) = VectoCore.Configuration.Constants.FileExtensions.VectoJobFile) Then
Dim dataProvider As IInputDataProvider = JSONInputDataFactory.ReadJsonJob(jobFile)
Dim fileWriter As FileOutputWriter = New FileOutputWriter(jobFile)
Dim runsFactory As SimulatorFactory = New SimulatorFactory(mode, dataProvider, fileWriter)
runsFactory.WriteModalResults = Cfg.ModOut
runsFactory.ModalResults1Hz = Cfg.Mod1Hz
Dim extension As String = Path.GetExtension(jobFile)
Dim input As IInputDataProvider = Nothing
Select Case extension
Case VectoCore.Configuration.Constants.FileExtensions.VectoJobFile
input = JSONInputDataFactory.ReadJsonJob(jobFile)
Case ".xml"
Dim xDocument As XDocument = xDocument.Load(jobFile)
Dim rootNode As String = If(xDocument Is Nothing, "", xDocument.Root.Name.LocalName)
Select Case rootNode
Case XMLNames.VectoInputEngineering
input = New XMLEngineeringInputDataProvider(jobFile, True)
Case XMLNames.VectoInputDeclaration
input = New XMLInputDataProvider(XmlReader.Create(jobFile), True)
End Select
End Select
For Each runId As Integer In jobContainer.AddRuns(runsFactory)
fileWriters.Add(runId, fileWriter)
Next
Else
Dim handled As Boolean = False
For Each entry As KeyValuePair(Of String, IInputDataPlugin) In plugins
If Not handled AndAlso entry.Value.CanHandleJob(jobFile) Then
Dim dataprovider As IInputDataProvider = entry.Value.ReadVectoJob(jobFile)
Dim fileWriter As FileOutputWriter = New FileOutputWriter(jobFile)
Dim runsFactory As SimulatorFactory = New SimulatorFactory(mode, dataprovider, fileWriter)
runsFactory.WriteModalResults = Cfg.ModOut
runsFactory.ModalResults1Hz = Cfg.Mod1Hz
For Each runId As Integer In jobContainer.AddRuns(runsFactory)
fileWriters.Add(runId, fileWriter)
Next
handled = True
End If
Next
If Not handled Then
sender.ReportProgress(0,
New VectoProgress With {.Target = "ListBoxError", .Message = "No Input Provider for job: " + jobFile})
End If
If input Is Nothing Then
sender.ReportProgress(0,
New VectoProgress With {.Target = "ListBoxError", .Message = "No Input Provider for job: " + jobFile})
Continue For
End If
Dim fileWriter As FileOutputWriter = New FileOutputWriter(jobFile)
Dim runsFactory As SimulatorFactory = New SimulatorFactory(mode, input, fileWriter)
runsFactory.WriteModalResults = Cfg.ModOut
runsFactory.ModalResults1Hz = Cfg.Mod1Hz
For Each runId As Integer In jobContainer.AddRuns(runsFactory)
fileWriters.Add(runId, fileWriter)
Next
sender.ReportProgress(0,
New VectoProgress With {.Target = "ListBox", .Message = "Finished Reading Data for job: " + jobFile})
......@@ -1076,10 +1069,10 @@ Imports VectoAuxiliaries
Dim sumProgress As Double = progress.Sum(Function(pair) pair.Value.Progress)
Dim duration As Double = (DateTime.Now() - start).TotalSeconds
sender.ReportProgress(Convert.ToInt32((sumProgress*100.0)/progress.Count),
sender.ReportProgress(Convert.ToInt32((sumProgress * 100.0) / progress.Count),
New VectoProgress With {.Target = "Status",
.Message = _
String.Format("Duration: {0:0}s, Current Progress: {1:P} ({2})", duration, sumProgress/progress.Count,
String.Format("Duration: {0:0}s, Current Progress: {1:P} ({2})", duration, sumProgress / progress.Count,
String.Join(", ", progress.Select(Function(pair) String.Format("{0,4:P}", pair.Value.Progress))))})
Dim justFinished As Dictionary(Of Integer, JobContainer.ProgressEntry) =
......@@ -1103,7 +1096,7 @@ Imports VectoAuxiliaries
.Message = String.Format("{0,-60} {1,8:P} {2,10:F2}s - {3}",
String.Format("{0} {1} {2}", progressEntry.Value.RunName, progressEntry.Value.CycleName,
progressEntry.Value.RunSuffix),
progressEntry.Value.Progress, progressEntry.Value.ExecTime/1000.0,
progressEntry.Value.Progress, progressEntry.Value.ExecTime / 1000.0,
IIf(progressEntry.Value.Success, "Success", "Aborted"))})
If (Not progressEntry.Value.Success) Then
sender.ReportProgress(100,
......@@ -1397,9 +1390,9 @@ Imports VectoAuxiliaries
ToolStripProgBarJob.Value = .ProgJobInt
If .ProgOverallStartInt > - 1 Then
If .ProgOverallStartInt > -1 Then
ToolStripProgBarOverall.Value =
CInt(.ProgOverallStartInt + (.PgroOverallEndInt - .ProgOverallStartInt)*.ProgJobInt/100)
CInt(.ProgOverallStartInt + (.PgroOverallEndInt - .ProgOverallStartInt) * .ProgJobInt / 100)
End If
End With
......@@ -1716,7 +1709,7 @@ Imports VectoAuxiliaries
_mainForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & " " & Space(10) & "*| |*")
End Select
Exit Sub
LbRace:
LbRace:
_pRbAlt = Not _pRbAlt
......@@ -1744,17 +1737,17 @@ Imports VectoAuxiliaries
Abort()
Exit Sub
End If
_scr += 5*_diffLvl
_scr += 5 * _diffLvl
End If
_scr += _diffLvl
_diffC += 1
'Erhöhe Schwierigkeitsgrad
If _diffC = (_diffLvl + 3)*4 Then
If _diffC = (_diffLvl + 3) * 4 Then
_diffC = 0
_diffLvl += 1
If _diffLvl > 2 And _diffLvl < 7 Then _mainForm.TmProgSec.Interval = 300 - (_diffLvl)*30
If _diffLvl > 2 And _diffLvl < 7 Then _mainForm.TmProgSec.Interval = 300 - (_diffLvl) * 30
_scr += 100
Select Case _diffLvl
Case 3
......@@ -1838,10 +1831,10 @@ Imports VectoAuxiliaries
_ctrls(RowLim + 1) = 0
_ctrlC += 1
If _ctrlC < _ctrlCl Then Exit Sub
Select Case CInt(Int((_ctrlRnd*Rnd()) + 1))
Select Case CInt(Int((_ctrlRnd * Rnd()) + 1))
Case 1, 2
_ctrlC = 0
x = CInt(Int((7*Rnd()) + 1))
x = CInt(Int((7 * Rnd()) + 1))
_ctrls(RowLim + 1) = x
End Select
End Sub
......@@ -1884,7 +1877,7 @@ Imports VectoAuxiliaries
s = s.Insert(_ctrls(RowLim + 1) + 1, "X")
End If
Select Case _xPanel - _pnls(RowLim)
Case - 1
Case -1
s = Replace(s, "|", "\")
Case 1
s = Replace(s, "|", "/")
......@@ -1896,15 +1889,15 @@ Imports VectoAuxiliaries
_pnDirC += 1
If _pnDirC < _pnDirCl Then GoTo Lb1
_pnDirC = 0
Select Case CInt(Int((_pnDirRnd*Rnd()) + 1))
Select Case CInt(Int((_pnDirRnd * Rnd()) + 1))
Case 1
_pnDir = 1
Case 2
_pnDir = - 1
_pnDir = -1
Case Else
_pnDir = 0
End Select
Lb1:
Lb1:
_xPanel += _pnDir
If _xPanel > ColLim Then
_xPanel = ColLim
......@@ -1955,7 +1948,7 @@ Imports VectoAuxiliaries
Dim builder As StringBuilder = New StringBuilder()
For Each selectedItem As ListViewItem In LvMsg.SelectedItems
builder.AppendLine(String.Join(", ",
selectedItem.SubItems.Cast (Of ListViewItem.ListViewSubItem).Select(
selectedItem.SubItems.Cast(Of ListViewItem.ListViewSubItem).Select(
Function(item) item.Text)))
Next
Clipboard.SetText(builder.ToString())
......@@ -1998,19 +1991,25 @@ Imports VectoAuxiliaries
End If
Try
Dim input As IInputDataProvider = Nothing
If Path.GetExtension(f) = ".vecto" Then
input = JSONInputDataFactory.ReadJsonJob(f)
Else
For Each plugin As KeyValuePair(Of String, IInputDataPlugin) In PluginRegistry.Instance.GetInputDataPlugins()
Dim extension As String = Path.GetExtension(f)
Select Case extension
Case ".vecto"
input = JSONInputDataFactory.ReadJsonJob(f)
Case ".xml"
Dim xDocument As XDocument = xDocument.Load(f)
Dim rootNode As String = If(xDocument Is Nothing, "", xDocument.Root.Name.LocalName)
Select Case rootNode
Case XMLNames.VectoInputEngineering
input = New XMLEngineeringInputDataProvider(f, True)
Case XMLNames.VectoInputDeclaration
input = New XMLInputDataProvider(XmlReader.Create(f), True)
End Select
End Select
If plugin.Value.CanHandleJob(f) Then
input = plugin.Value.ReadVectoJob(f)
Exit For
End If
Next
End If
If input Is Nothing Then Throw New VectoException("No InputDataProvider for file {0} found!", f)
PluginRegistry.Instance.GetExportPlugin("TUG.IVT.Vecto.XMLExport").ExportJob(input)
XMLExportJobDialog.Initialize(input)
XMLExportJobDialog.ShowDialog()
Catch ex As Exception
MsgBox("Exporting job failed: " + ex.Message)
End Try
......@@ -2021,12 +2020,12 @@ Imports VectoAuxiliaries
End Sub
Private Sub btnImportXML_Click(sender As Object, e As EventArgs) Handles btnImportXML.Click
Try
Dim jobFile As String = PluginRegistry.Instance.GetImportPlugin("TUG.IVT.Vecto.XMLImport").ImportJob()
AddToJobListView(jobFile)
Catch ex As Exception
MsgBox("Importing job failed: " + ex.Message)
End Try
'Try
' Dim jobFile As String = PluginRegistry.Instance.GetImportPlugin("TUG.IVT.Vecto.XMLImport").ImportJob()
' AddToJobListView(jobFile)
'Catch ex As Exception
' MsgBox("Importing job failed: " + ex.Message)
'End Try
End Sub
Private Sub LvGEN_MouseClick(sender As Object, e As MouseEventArgs) Handles LvGEN.MouseClick
......
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class XMLExportJobDialog
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(XMLExportJobDialog))
Me.lbVendor = New System.Windows.Forms.Label()
Me.tbVendor = New System.Windows.Forms.TextBox()
Me.btnExport = New System.Windows.Forms.Button()
Me.cbSingleFile = New System.Windows.Forms.CheckBox()
Me.label1 = New System.Windows.Forms.Label()
Me.btnBrowseOutputDir = New System.Windows.Forms.Button()
Me.tbJobfile = New System.Windows.Forms.TextBox()
Me.tbMode = New System.Windows.Forms.TextBox()
Me.lblJobfile = New System.Windows.Forms.Label()
Me.lblDstDir = New System.Windows.Forms.Label()
Me.tbDestination = New System.Windows.Forms.TextBox()
Me.lblMode = New System.Windows.Forms.Label()
Me.btnCancel = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
'lbVendor
'
Me.lbVendor.AutoSize = True
Me.lbVendor.Location = New System.Drawing.Point(10, 97)
Me.lbVendor.Name = "lbVendor"
Me.lbVendor.Size = New System.Drawing.Size(44, 13)
Me.lbVendor.TabIndex = 25
Me.lbVendor.Text = "Vendor:"
'
'tbVendor
'
Me.tbVendor.Location = New System.Drawing.Point(120, 94)
Me.tbVendor.Name = "tbVendor"
Me.tbVendor.Size = New System.Drawing.Size(231, 20)
Me.tbVendor.TabIndex = 24
'
'btnExport
'
Me.btnExport.Location = New System.Drawing.Point(276, 150)
Me.btnExport.Name = "btnExport"
Me.btnExport.Size = New System.Drawing.Size(75, 23)
Me.btnExport.TabIndex = 23
Me.btnExport.Text = "Export"
Me.btnExport.UseVisualStyleBackColor = True
'
'cbSingleFile
'
Me.cbSingleFile.AutoSize = True
Me.cbSingleFile.Location = New System.Drawing.Point(132, 121)
Me.cbSingleFile.Name = "cbSingleFile"
Me.cbSingleFile.Size = New System.Drawing.Size(15, 14)
Me.cbSingleFile.TabIndex = 22
Me.cbSingleFile.UseVisualStyleBackColor = True
'
'label1
'
Me.label1.AutoSize = True
Me.label1.Location = New System.Drawing.Point(10, 121)
Me.label1.Name = "label1"
Me.label1.Size = New System.Drawing.Size(116, 13)
Me.label1.TabIndex = 21
Me.label1.Text = "Output single XML File:"
'
'btnBrowseOutputDir
'
Me.btnBrowseOutputDir.Location = New System.Drawing.Point(357, 65)
Me.btnBrowseOutputDir.Name = "btnBrowseOutputDir"
Me.btnBrowseOutputDir.Size = New System.Drawing.Size(75, 23)
Me.btnBrowseOutputDir.TabIndex = 20
Me.btnBrowseOutputDir.Text = "Browse"
Me.btnBrowseOutputDir.UseVisualStyleBackColor = True
'
'tbJobfile
'
Me.tbJobfile.Location = New System.Drawing.Point(120, 20)
Me.tbJobfile.Name = "tbJobfile"
Me.tbJobfile.ReadOnly = True
Me.tbJobfile.Size = New System.Drawing.Size(231, 20)
Me.tbJobfile.TabIndex = 19
'
'tbMode
'
Me.tbMode.Location = New System.Drawing.Point(120, 43)
Me.tbMode.Name = "tbMode"
Me.tbMode.ReadOnly = True
Me.tbMode.Size = New System.Drawing.Size(231, 20)
Me.tbMode.TabIndex = 18
'
'lblJobfile
'
Me.lblJobfile.AutoSize = True
Me.lblJobfile.Location = New System.Drawing.Point(10, 23)
Me.lblJobfile.Name = "lblJobfile"
Me.lblJobfile.Size = New System.Drawing.Size(58, 13)
Me.lblJobfile.TabIndex = 17
Me.lblJobfile.Text = "Vecto Job:"
'
'lblDstDir
'
Me.lblDstDir.AutoSize = True
Me.lblDstDir.Location = New System.Drawing.Point(10, 71)
Me.lblDstDir.Name = "lblDstDir"
Me.lblDstDir.Size = New System.Drawing.Size(87, 13)
Me.lblDstDir.TabIndex = 16
Me.lblDstDir.Text = "Output Directory:"
'
'tbDestination
'
Me.tbDestination.Location = New System.Drawing.Point(120, 68)
Me.tbDestination.Name = "tbDestination"
Me.tbDestination.Size = New System.Drawing.Size(231, 20)
Me.tbDestination.TabIndex = 15
'
'lblMode
'
Me.lblMode.AutoSize = True
Me.lblMode.Location = New System.Drawing.Point(10, 46)
Me.lblMode.Name = "lblMode"
Me.lblMode.Size = New System.Drawing.Size(68, 13)
Me.lblMode.TabIndex = 14
Me.lblMode.Text = "Vecto Mode:"
'
'btnCancel
'
Me.btnCancel.Location = New System.Drawing.Point(357, 150)
Me.btnCancel.Name = "btnCancel"
Me.btnCancel.Size = New System.Drawing.Size(75, 23)
Me.btnCancel.TabIndex = 13
Me.btnCancel.Text = "Cancel"
Me.btnCancel.UseVisualStyleBackColor = True
'
'XMLExportJobDialog
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(449, 185)
Me.Controls.Add(Me.lbVendor)
Me.Controls.Add(Me.tbVendor)
Me.Controls.Add(Me.btnExport)
Me.Controls.Add(Me.cbSingleFile)
Me.Controls.Add(Me.label1)
Me.Controls.Add(Me.btnBrowseOutputDir)
Me.Controls.Add(Me.tbJobfile)
Me.Controls.Add(Me.tbMode)
Me.Controls.Add(Me.lblJobfile)
Me.Controls.Add(Me.lblDstDir)
Me.Controls.Add(Me.tbDestination)
Me.Controls.Add(Me.lblMode)
Me.Controls.Add(Me.btnCancel)
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "XMLExportJobDialog"
Me.Text = "VECTO XML Export"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Private WithEvents lbVendor As System.Windows.Forms.Label
Private WithEvents tbVendor As System.Windows.Forms.TextBox
Private WithEvents btnExport As System.Windows.Forms.Button
Private WithEvents cbSingleFile As System.Windows.Forms.CheckBox
Private WithEvents label1 As System.Windows.Forms.Label
Private WithEvents btnBrowseOutputDir As System.Windows.Forms.Button
Private WithEvents tbJobfile As System.Windows.Forms.TextBox
Private WithEvents tbMode As System.Windows.Forms.TextBox
Private WithEvents lblJobfile As System.Windows.Forms.Label
Private WithEvents lblDstDir As System.Windows.Forms.Label
Private WithEvents tbDestination As System.Windows.Forms.TextBox
Private WithEvents lblMode As System.Windows.Forms.Label
Private WithEvents btnCancel As System.Windows.Forms.Button
End Class
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP39
/QLg6NsG/v7+Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD+/v4B1uDQEIildi319/MQ////Af///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP7+/gudtI5FRHEmhMbUvS7+/v4C////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8B7PDpJmOJS5s4aBnEjal8Wf39/A////8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP7+/ga3ya0+PGsexzdnGO9Vfjut4OfcLP///wL///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8B+vv6Fn+ea3E2ZhfeN2cY/DhnGc+nvJpJ/v7+Cf//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP/+/gLU3s0vSHQstTZmF/Y2Zhf+NmYX6G2Q
V4zy9fAg////Af///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/v7+DJqyilI1ZhbTNmYW/TZm
F/82Zhf5P20hwMDPtzj+/v4E////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wLr7+cpX4ZFpTVm
FfA2ZhX/NmYW/zZmFv42ZhfZh6N0ZPz9/BL+/v4B////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/v7+B7TG
qEI6ahnMNmcV/DZnFf82ZhX/NmYV/zVlF/RPeTOw2+TWLf7+/gL///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wH4+vgZeppleTVmFOE2ZxX+NmcV/zZnFf82ZhX/NmYV/TZmFtGhuJNO/v7+Cv///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A/v7+As/byDBGcyi3NWYU9zVmFP82ZxX/NmcV/zZnFf82ZxX+NWYV7GeMT5fv8+0k////Af//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD+/v4Mlq+FVDRlE9Q1ZhT9NWYU/zVmFP82ZxX/NmcV/zZnFf82ZxX7PWwdxbzM
sTz+/v4F////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////Auju5Stbg0GqNWUU8jVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZn
Ff41ZhTdgqBubfv8+hX///8B////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD+/v4HscOlRThoGM41ZhT9NWYU/zVmFP81ZhT/NWYU/zVm
FP82ZxX/NmcV/zVmFPVLdy6z1+DQL/7+/gL///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////Afj59xt2l2F+NGUT4zVmFP41ZhT/NWYU/zVm
FP81ZhT/NWYU/zVmFP82ZxX/NmcV/TVmFdOctI1R/v7+C////wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD+/v4CzdnFMURxJbo1ZhT4NWYU/zVm
FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NWYU7mKISZ/s8ekn////Af///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP7+/gyUroNUNGUT1DVm
FP01ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX8O2obybfIq0L+/v4I/v7+Av39
/QL9/v0C/f79Av3+/QL9/v0C/f79Av3+/QL9/v0C/f79Av///wD///8A////AP///wD///8C5uziK1mB
Pqs0ZRPzNWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf41ZhThepplhNTe
zUPZ4tM12eLTNdni0zXZ4tM12eLTNdni1DXZ4tQ12eLUNdrj1DXa49U1////AP///wD///8A////AP7+
/givwqJGN2cWzjVmFP01ZhT/NWYU/zVmFP81ZhT/NGYT/zVmFP41ZhT/NWYU/zVmFP81ZhT/NWYU/zZn
Ffg1ZhThRHImz0RxJspEcSfKRXEoykVyKMpFcinKRnMqykd0K8pIdCvKSXUsykt3Lsr///8A////AP//
/wD//v8B9vj1HXSWXoM0ZRPlNWYU/jVmFP81ZhT/NWYU/zVmFP82ZhX0U3w34DRlE/Q1ZhT/NWYU/zVm
FP81ZhT/NWYU/zZnFf42ZxX9NmYV/TZmFv02Zhf9NmYX/TdnGP03Zxj9OWgZ/TppGv06ahv9PGwd/f//
/wD///8A////AP7//gLK1sIyQnAkuzRlE/g1ZhT/NWYU/zVmFP81ZhT/NWYU+0dzKc2gt5GGP24g0zVm
FP01ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZxX/NmYW/zZmF/82Zhf/N2cY/zdnGP84aBn/Omka/zpq
G/87axz/////AP///wD///8A/f79DY+qflc0ZRPVNWYU/TVmFP81ZhT/NWYU/zVmFP41ZRTraY1RluLp
3k1fhkWnNGUT8TVmFP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhX/NmYW/zZmF/83Zxf/N2cY/zho
Gf85aRr/Omob/ztrHP////8A////AP///gLj6t8rVn88rDRlFPM1ZhT/NWYU/zVmFP81ZhT/NWYU/jRl
E9KWr4VN/f39F5CqflU0ZRPVNWYU/jVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZm
F/83Zxj/N2cY/zlpGv86ahv/O2sc/////wD///8A/v7+CKzAn0c3ZxbPNWYU/TVmFP81ZhT/NWYU/zVm
FP81ZhT9PWwdycPSujb+/v4EwtC4Nz1sHco1ZhT9NWYU/zVmFP81ZhT/NWYU/zZnFf82ZxX/NmYV/zZm
Fv82Zhf/NmYX/zdnGP83Zxj/OWka/zpqG/86ahv/////AP///wH1+PQecpRchjRlE+Y1ZhT+NWYU/zVm
FP81ZhT/NWYU/zVmFPZXgDyz6e7mLv///wPp7uYsWYE+rzVmFPQ1ZhT/NWYU/zVmFP81ZhT/NmcV/zZn
Ff82ZhT/NmYV/zZmF/82Zhf/N2cX/zdnGP85aRr/Omob/zpqG/////8A/v7+AsjVvzFBbyK6NGUU9jVm
FP01ZhT9NWYU/TVmFP01ZhT8NGUT3IGgbW78/PwW////Af39/RGJpXZiNGUT2DVmFPw1ZhT9NGUT/TVm
FP02ZxX9NmcV/TZmFf02ZhX9NmYX/TZmF/03Zxf9N2cY/ThoGf06aRr9Omob/f///wD9/v0Dj6p9LjZn
FaE2ZxXINmcVyjZnFco2ZxXKNmcVyjZnFck4aBijr8KiNP7+/gX///8A/v7+A7rKrzA7ahuiNmcVyTZn
Fco2ZxXKN2cWyjdoFso3aBbKN2gWyjdnF8o3ZxjKOGcZyjhoGco5aBrKOmobyjtrHMo8ax3K////APr7
+gHB0LcMscSkKrHEpDWxxKQ1scSkNbHEpDWxxKQ1scSkNbTGqCru8uwM///+Af///wD///8A8/bxC7bH
qiqxxKQ1scSkNbHEpDWxxKQ1scSlNbHEpTWxxKU1scSlNbHEpTWxxKU1scSmNbLEpjWyxaY1s8WnNbPF
pzX5+vgA////AP///wD///8C////Av///wL///8C////Av///wL///8C////Av///wD///8A////AP//
/wD///8A////Av///wL///8C////Av///wL///8C////Av///wL///8C////Av///wL///8C////Av//
/wL///8C////Av///wD4+vcA+Pr3APj69wD9/fwA////APj69wD4+vcA+Pr3APj69wD4+vcA+fr4APn6
+AD5+vgA+fr4APn7+QD6+/kA+/v6APv7+wD7/PsA/Pz8AP39/AD9/v0A/v/+APr6+gD6+voA+vr6APr6
+gD6+voA////AP///wD///8A//////////////////v////z////8f////H////g////4P///8D////A
f///wH///4A///+AP///AD///wAf//8AH//+AA///gAP//wAB//8AAAA+AAAAPgAAAD4BAAA8A4AAPAO
AADgDgAA4B8AAOAfAAD///////////////8=
</value>
</data>
</root>
\ No newline at end of file
Imports System.IO
Imports System.Xml.Linq
Imports Microsoft.WindowsAPICodePack.Dialogs
Imports TUGraz.IVT.VectoXML.Writer
Imports TUGraz.VectoCommon.Exceptions
Imports TUGraz.VectoCommon.InputData
Imports TUGraz.VectoCommon.Models
Imports TUGraz.VectoCore.Models.Declaration
Public Class XMLExportJobDialog
Private _mode As ExecutionMode
Private _data As IInputDataProvider
Public Sub Initialize(data As IInputDataProvider)
Dim source As String
Dim allowSingleFile As Boolean
Dim eng As IEngineeringInputDataProvider = CType(data, IEngineeringInputDataProvider)
If (Not eng Is Nothing AndAlso Not eng.JobInputData().SavedInDeclarationMode) Then
source = eng.JobInputData().JobName
_mode = ExecutionMode.Engineering
allowSingleFile = True
Else
Dim decl As IDeclarationInputDataProvider = CType(data, IDeclarationInputDataProvider)
If (Not decl Is Nothing AndAlso decl.JobInputData().SavedInDeclarationMode) Then
source = decl.JobInputData().JobName
_mode = ExecutionMode.Declaration
allowSingleFile = False
Else
Throw New VectoException("Input data is neither declaration nor engineering mode!")
End If
End If
_data = data
tbJobfile.Text = source
tbMode.Text = If(_mode = ExecutionMode.Engineering, "Engineering Mode", "Declaration Mode")
cbSingleFile.Checked = True
cbSingleFile.Enabled = allowSingleFile
End Sub
Private Sub btnBrowseOutputDir_Click(sender As Object, e As EventArgs) Handles btnBrowseOutputDir.Click
Dim dialog As CommonOpenFileDialog = New CommonOpenFileDialog()
dialog.IsFolderPicker = True
If (dialog.ShowDialog() = CommonFileDialogResult.Ok) Then
tbDestination.Text = Path.GetFullPath(dialog.FileName)
End If
End Sub
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
Close()
End Sub
Private Sub btnExport_Click(sender As Object, e As EventArgs) Handles btnExport.Click
If (String.IsNullOrWhiteSpace(tbDestination.Text) OrElse Not Directory.Exists(tbDestination.Text)) Then
MessageBox.Show("Output directory is invalid", "Invalid Output", MessageBoxButtons.OK)
Exit Sub
End If
If (_mode = ExecutionMode.Engineering) Then
Dim engineeringData As IEngineeringInputDataProvider = CType(_data, IEngineeringInputDataProvider)
If (engineeringData Is Nothing OrElse engineeringData.JobInputData().SavedInDeclarationMode) Then
Throw New Exception("Input data is not in engineering mode!")
End If
Dim document As XDocument =
New XMLEngineeringWriter(tbDestination.Text, cbSingleFile.Checked, tbVendor.Text).GenerateVectoJob(engineeringData)
document.Save(Path.Combine(tbDestination.Text, engineeringData.JobInputData().JobName + ".xml"))
MessageBox.Show("Successfully exported")
Close()
Else
Dim declarationData As IDeclarationInputDataProvider = CType(_data, IDeclarationInputDataProvider)
If (declarationData Is Nothing OrElse Not declarationData.JobInputData().SavedInDeclarationMode) Then
Throw New Exception("Input data is not in declaration mode")
End If
Dim document As XDocument =
New XMLDeclarationWriter(tbDestination.Text, tbVendor.Text).GenerateVectoJob(declarationData)
document.Save(Path.Combine(tbDestination.Text, declarationData.JobInputData().JobName + ".xml"))
MessageBox.Show("Successfully exported")
Close()
End If
End Sub
End Class
\ No newline at end of file
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class XMLImportJobDialog
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(XMLImportJobDialog))
Me.btnClose = New System.Windows.Forms.Button()
Me.btnImport = New System.Windows.Forms.Button()
Me.btnBrowseOutput = New System.Windows.Forms.Button()
Me.btnBrowseJob = New System.Windows.Forms.Button()
Me.tbDestination = New System.Windows.Forms.TextBox()
Me.tbJobFile = New System.Windows.Forms.TextBox()
Me.label2 = New System.Windows.Forms.Label()
Me.label1 = New System.Windows.Forms.Label()
Me.SuspendLayout()
'
'btnClose
'
Me.btnClose.Location = New System.Drawing.Point(391, 92)
Me.btnClose.Name = "btnClose"
Me.btnClose.Size = New System.Drawing.Size(75, 23)
Me.btnClose.TabIndex = 15
Me.btnClose.Text = "Cancel"
Me.btnClose.UseVisualStyleBackColor = True
'
'btnImport
'
Me.btnImport.Location = New System.Drawing.Point(310, 92)
Me.btnImport.Name = "btnImport"
Me.btnImport.Size = New System.Drawing.Size(75, 23)
Me.btnImport.TabIndex = 14
Me.btnImport.Text = "Import"
Me.btnImport.UseVisualStyleBackColor = True
'
'btnBrowseOutput
'
Me.btnBrowseOutput.Location = New System.Drawing.Point(345, 41)
Me.btnBrowseOutput.Name = "btnBrowseOutput"
Me.btnBrowseOutput.Size = New System.Drawing.Size(75, 23)
Me.btnBrowseOutput.TabIndex = 13
Me.btnBrowseOutput.Text = "Browse"
Me.btnBrowseOutput.UseVisualStyleBackColor = True
'
'btnBrowseJob
'
Me.btnBrowseJob.Location = New System.Drawing.Point(345, 12)
Me.btnBrowseJob.Name = "btnBrowseJob"
Me.btnBrowseJob.Size = New System.Drawing.Size(75, 23)
Me.btnBrowseJob.TabIndex = 12
Me.btnBrowseJob.Text = "Browse"
Me.btnBrowseJob.UseVisualStyleBackColor = True
'
'tbDestination
'
Me.tbDestination.Location = New System.Drawing.Point(105, 43)
Me.tbDestination.Name = "tbDestination"
Me.tbDestination.Size = New System.Drawing.Size(224, 20)
Me.tbDestination.TabIndex = 11
'
'tbJobFile
'
Me.tbJobFile.Location = New System.Drawing.Point(105, 14)
Me.tbJobFile.Name = "tbJobFile"
Me.tbJobFile.Size = New System.Drawing.Size(224, 20)
Me.tbJobFile.TabIndex = 10
'
'label2
'
Me.label2.AutoSize = True
Me.label2.Location = New System.Drawing.Point(11, 46)
Me.label2.Name = "label2"
Me.label2.Size = New System.Drawing.Size(87, 13)
Me.label2.TabIndex = 9
Me.label2.Text = "Output Directory:"
'
'label1
'
Me.label1.AutoSize = True
Me.label1.Location = New System.Drawing.Point(11, 17)
Me.label1.Name = "label1"
Me.label1.Size = New System.Drawing.Size(46, 13)
Me.label1.TabIndex = 8
Me.label1.Text = "Job File:"
'
'XMLImportJobDialog
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(480, 130)
Me.Controls.Add(Me.btnClose)
Me.Controls.Add(Me.btnImport)
Me.Controls.Add(Me.btnBrowseOutput)
Me.Controls.Add(Me.btnBrowseJob)
Me.Controls.Add(Me.tbDestination)
Me.Controls.Add(Me.tbJobFile)
Me.Controls.Add(Me.label2)
Me.Controls.Add(Me.label1)
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "XMLImportJobDialog"
Me.Text = "VECTO Import Job"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Private WithEvents btnClose As System.Windows.Forms.Button
Private WithEvents btnImport As System.Windows.Forms.Button
Private WithEvents btnBrowseOutput As System.Windows.Forms.Button
Private WithEvents btnBrowseJob As System.Windows.Forms.Button
Private WithEvents tbDestination As System.Windows.Forms.TextBox
Private WithEvents tbJobFile As System.Windows.Forms.TextBox
Private WithEvents label2 As System.Windows.Forms.Label
Private WithEvents label1 As System.Windows.Forms.Label
End Class
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP39
/QLg6NsG/v7+Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD+/v4B1uDQEIildi319/MQ////Af///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP7+/gudtI5FRHEmhMbUvS7+/v4C////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8B7PDpJmOJS5s4aBnEjal8Wf39/A////8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP7+/ga3ya0+PGsexzdnGO9Vfjut4OfcLP///wL///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8B+vv6Fn+ea3E2ZhfeN2cY/DhnGc+nvJpJ/v7+Cf//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP/+/gLU3s0vSHQstTZmF/Y2Zhf+NmYX6G2Q
V4zy9fAg////Af///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/v7+DJqyilI1ZhbTNmYW/TZm
F/82Zhf5P20hwMDPtzj+/v4E////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wLr7+cpX4ZFpTVm
FfA2ZhX/NmYW/zZmFv42ZhfZh6N0ZPz9/BL+/v4B////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/v7+B7TG
qEI6ahnMNmcV/DZnFf82ZhX/NmYV/zVlF/RPeTOw2+TWLf7+/gL///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wH4+vgZeppleTVmFOE2ZxX+NmcV/zZnFf82ZhX/NmYV/TZmFtGhuJNO/v7+Cv///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A/v7+As/byDBGcyi3NWYU9zVmFP82ZxX/NmcV/zZnFf82ZxX+NWYV7GeMT5fv8+0k////Af//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD+/v4Mlq+FVDRlE9Q1ZhT9NWYU/zVmFP82ZxX/NmcV/zZnFf82ZxX7PWwdxbzM
sTz+/v4F////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////Auju5Stbg0GqNWUU8jVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZn
Ff41ZhTdgqBubfv8+hX///8B////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD+/v4HscOlRThoGM41ZhT9NWYU/zVmFP81ZhT/NWYU/zVm
FP82ZxX/NmcV/zVmFPVLdy6z1+DQL/7+/gL///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////Afj59xt2l2F+NGUT4zVmFP41ZhT/NWYU/zVm
FP81ZhT/NWYU/zVmFP82ZxX/NmcV/TVmFdOctI1R/v7+C////wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD+/v4CzdnFMURxJbo1ZhT4NWYU/zVm
FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NWYU7mKISZ/s8ekn////Af///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP7+/gyUroNUNGUT1DVm
FP01ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX8O2obybfIq0L+/v4I/v7+Av39
/QL9/v0C/f79Av3+/QL9/v0C/f79Av3+/QL9/v0C/f79Av///wD///8A////AP///wD///8C5uziK1mB
Pqs0ZRPzNWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf41ZhThepplhNTe
zUPZ4tM12eLTNdni0zXZ4tM12eLTNdni1DXZ4tQ12eLUNdrj1DXa49U1////AP///wD///8A////AP7+
/givwqJGN2cWzjVmFP01ZhT/NWYU/zVmFP81ZhT/NGYT/zVmFP41ZhT/NWYU/zVmFP81ZhT/NWYU/zZn
Ffg1ZhThRHImz0RxJspEcSfKRXEoykVyKMpFcinKRnMqykd0K8pIdCvKSXUsykt3Lsr///8A////AP//
/wD//v8B9vj1HXSWXoM0ZRPlNWYU/jVmFP81ZhT/NWYU/zVmFP82ZhX0U3w34DRlE/Q1ZhT/NWYU/zVm
FP81ZhT/NWYU/zZnFf42ZxX9NmYV/TZmFv02Zhf9NmYX/TdnGP03Zxj9OWgZ/TppGv06ahv9PGwd/f//
/wD///8A////AP7//gLK1sIyQnAkuzRlE/g1ZhT/NWYU/zVmFP81ZhT/NWYU+0dzKc2gt5GGP24g0zVm
FP01ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZxX/NmYW/zZmF/82Zhf/N2cY/zdnGP84aBn/Omka/zpq
G/87axz/////AP///wD///8A/f79DY+qflc0ZRPVNWYU/TVmFP81ZhT/NWYU/zVmFP41ZRTraY1RluLp
3k1fhkWnNGUT8TVmFP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhX/NmYW/zZmF/83Zxf/N2cY/zho
Gf85aRr/Omob/ztrHP////8A////AP///gLj6t8rVn88rDRlFPM1ZhT/NWYU/zVmFP81ZhT/NWYU/jRl
E9KWr4VN/f39F5CqflU0ZRPVNWYU/jVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZm
F/83Zxj/N2cY/zlpGv86ahv/O2sc/////wD///8A/v7+CKzAn0c3ZxbPNWYU/TVmFP81ZhT/NWYU/zVm
FP81ZhT9PWwdycPSujb+/v4EwtC4Nz1sHco1ZhT9NWYU/zVmFP81ZhT/NWYU/zZnFf82ZxX/NmYV/zZm
Fv82Zhf/NmYX/zdnGP83Zxj/OWka/zpqG/86ahv/////AP///wH1+PQecpRchjRlE+Y1ZhT+NWYU/zVm
FP81ZhT/NWYU/zVmFPZXgDyz6e7mLv///wPp7uYsWYE+rzVmFPQ1ZhT/NWYU/zVmFP81ZhT/NmcV/zZn
Ff82ZhT/NmYV/zZmF/82Zhf/N2cX/zdnGP85aRr/Omob/zpqG/////8A/v7+AsjVvzFBbyK6NGUU9jVm
FP01ZhT9NWYU/TVmFP01ZhT8NGUT3IGgbW78/PwW////Af39/RGJpXZiNGUT2DVmFPw1ZhT9NGUT/TVm
FP02ZxX9NmcV/TZmFf02ZhX9NmYX/TZmF/03Zxf9N2cY/ThoGf06aRr9Omob/f///wD9/v0Dj6p9LjZn
FaE2ZxXINmcVyjZnFco2ZxXKNmcVyjZnFck4aBijr8KiNP7+/gX///8A/v7+A7rKrzA7ahuiNmcVyTZn
Fco2ZxXKN2cWyjdoFso3aBbKN2gWyjdnF8o3ZxjKOGcZyjhoGco5aBrKOmobyjtrHMo8ax3K////APr7
+gHB0LcMscSkKrHEpDWxxKQ1scSkNbHEpDWxxKQ1scSkNbTGqCru8uwM///+Af///wD///8A8/bxC7bH
qiqxxKQ1scSkNbHEpDWxxKQ1scSlNbHEpTWxxKU1scSlNbHEpTWxxKU1scSmNbLEpjWyxaY1s8WnNbPF
pzX5+vgA////AP///wD///8C////Av///wL///8C////Av///wL///8C////Av///wD///8A////AP//
/wD///8A////Av///wL///8C////Av///wL///8C////Av///wL///8C////Av///wL///8C////Av//
/wL///8C////Av///wD4+vcA+Pr3APj69wD9/fwA////APj69wD4+vcA+Pr3APj69wD4+vcA+fr4APn6
+AD5+vgA+fr4APn7+QD6+/kA+/v6APv7+wD7/PsA/Pz8AP39/AD9/v0A/v/+APr6+gD6+voA+vr6APr6
+gD6+voA////AP///wD///8A//////////////////v////z////8f////H////g////4P///8D////A
f///wH///4A///+AP///AD///wAf//8AH//+AA///gAP//wAB//8AAAA+AAAAPgAAAD4BAAA8A4AAPAO
AADgDgAA4B8AAOAfAAD///////////////8=
</value>
</data>
</root>
\ No newline at end of file
Imports System.IO
Imports Microsoft.WindowsAPICodePack.Dialogs
Public Class XMLImportJobDialog
Private Sub btnBrowseJob_Click(sender As Object, e As EventArgs) Handles btnBrowseJob.Click
Dim dialog As OpenFileDialog = New OpenFileDialog()
If (dialog.ShowDialog() = DialogResult.OK) Then
tbJobFile.Text = Path.GetFullPath(dialog.FileName)
End If
End Sub
Private Sub btnBrowseOutput_Click(sender As Object, e As EventArgs) Handles btnBrowseOutput.Click
Dim dialog As CommonOpenFileDialog = New CommonOpenFileDialog()
dialog.IsFolderPicker = True
If (dialog.ShowDialog() = CommonFileDialogResult.Ok) Then
tbDestination.Text = Path.GetFullPath(dialog.FileName)
End If
End Sub
Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
Close()
End Sub
Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click
' TODO!
End Sub
End Class
\ No newline at end of file
......@@ -64,55 +64,5 @@ Module MainModule
Return filePath
End Function
Public Sub DetectPlugins()
Dim dllFileNames As String()
Dim Path As String = "."
'If Directory.Exists(Path) Then
dllFileNames = Directory.GetFiles(Path, "*.dll")
Dim assemblies As ICollection(Of Assembly) = New List(Of Assembly)(dllFileNames.Length)
For Each dllFile As String In dllFileNames
Dim an As AssemblyName = AssemblyName.GetAssemblyName(dllFile)
Dim assembly As Assembly = assembly.Load(an)
assemblies.Add(assembly)
Next
Dim exportPluginType As Type = GetType(IExportPlugin)
Dim importPluginType As Type = GetType(IImportPlugin)
Dim inputDataPluginType As Type = GetType(IInputDataPlugin)
For Each assembly As Assembly In assemblies
If assembly <> Nothing Then
Dim types As Type() = assembly.GetTypes()
For Each type As Type In types
If type.IsInterface Or type.IsAbstract Then
Continue For
Else
If type.GetInterface(exportPluginType.FullName) <> Nothing Then
Dim plugin As IExportPlugin = TryCast(Activator.CreateInstance(type), IExportPlugin)
If Not plugin Is Nothing Then
PluginRegistry.Instance.RegisterPlugin(plugin)
End If
End If
If type.GetInterface(importPluginType.FullName) <> Nothing Then
Dim plugin As IImportPlugin = TryCast(Activator.CreateInstance(type), IImportPlugin)
If Not plugin Is Nothing Then
PluginRegistry.Instance.RegisterPlugin(plugin)
End If
End If
If type.GetInterface(inputDataPluginType.FullName) <> Nothing Then
Dim plugin As IInputDataPlugin = TryCast(Activator.CreateInstance(type), IInputDataPlugin)
If Not plugin Is Nothing Then
PluginRegistry.Instance.RegisterPlugin(plugin)
End If
End If
End If
Next
End If
Next
'End If
End Sub
End Module
......@@ -136,6 +136,14 @@
<HintPath>..\packages\iTextSharp.5.5.9\lib\itextsharp.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Framework" />
<Reference Include="Microsoft.WindowsAPICodePack, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Microsoft.WindowsAPICodePack.Core.1.1.0\lib\Microsoft.WindowsAPICodePack.dll</HintPath>
</Reference>
<Reference Include="Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Microsoft.WindowsAPICodePack.Shell.1.1.0\lib\Microsoft.WindowsAPICodePack.Shell.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
......@@ -172,6 +180,18 @@
</ItemGroup>
<ItemGroup>
<Compile Include="ApplicationEvents.vb" />
<Compile Include="GUI\XMLExportJobDialog.Designer.vb">
<DependentUpon>XMLExportJobDialog.vb</DependentUpon>
</Compile>
<Compile Include="GUI\XMLExportJobDialog.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="GUI\XMLImportJobDialog.Designer.vb">
<DependentUpon>XMLImportJobDialog.vb</DependentUpon>
</Compile>
<Compile Include="GUI\XMLImportJobDialog.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Input Files\AdvancedAuxiliary.vb" />
<Compile Include="GUI\FileSignDialog.Designer.vb">
<DependentUpon>FileSignDialog.vb</DependentUpon>
......@@ -364,6 +384,12 @@
<EmbeddedResource Include="GUI\GearboxGearDialog.resx">
<DependentUpon>GearboxGearDialog.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="GUI\XMLExportJobDialog.resx">
<DependentUpon>XMLExportJobDialog.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="GUI\XMLImportJobDialog.resx">
<DependentUpon>XMLImportJobDialog.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
......
......@@ -6,27 +6,21 @@
</configSections>
<runtime>
<loadFromRemoteSources enabled="true" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="false"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" autoReload="false" throwExceptions="false" internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<targets async="true">
<target xsi:type="Console" name="ConsoleLogger" error="true" />
<target name="WarningLogger" xsi:type="MethodCall" className="TUGraz.VECTO.MainForm, VECTO" methodName="LogMethod">
<parameter layout="${level}" />
<parameter layout="${message}" />
</target>
<target xsi:type="File"
name="LogFile"
fileName="${basedir}/logs/log.txt"
layout="${longdate} [${processid}:${threadid}@${machinename}] ${callsite:skipFrames=1} ${level:uppercase=true}: ${message} ${exception:format=tostring}"
keepFileOpen="false"
archiveFileName="${basedir}/logs/archive{#}.txt"
maxArchiveFiles="1"
archiveAboveSize="10000000" />
<target xsi:type="File" name="LogFile" fileName="${basedir}/logs/log.txt" layout="${longdate} [${processid}:${threadid}@${machinename}] ${callsite:skipFrames=1} ${level:uppercase=true}: ${message} ${exception:format=tostring}" keepFileOpen="false" archiveFileName="${basedir}/logs/archive{#}.txt" maxArchiveFiles="1" archiveAboveSize="10000000" />
</targets>
<rules>
<logger name="TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory" minlevel="Info" writeTo="LogFile" />
......@@ -49,9 +43,7 @@
<add name="DefaultSwitch" value="Information" />
</switches>
<sharedListeners>
<add name="FileLog"
type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
initializeData="FileLogWriter" />
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter" />
<!-- Auskommentierung des nachfolgenden Abschnitts aufheben und APPLICATION_NAME durch den Namen der Anwendung ersetzen, um in das Anwendungsereignisprotokoll zu schreiben -->
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
</sharedListeners>
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="iTextSharp" version="5.5.9" targetFramework="net45" />
<package id="Microsoft.WindowsAPICodePack.Core" version="1.1.0" targetFramework="net45" />
<package id="Microsoft.WindowsAPICodePack.Shell" version="1.1.0" targetFramework="net45" />
<package id="Newtonsoft.Json" version="8.0.3" targetFramework="net45" />
<package id="NLog" version="4.2.3" targetFramework="net45" />
</packages>
\ No newline at end of file
/*
* This file is part of VECTO.
*
* Copyright © 2012-2016 European Union
*
* Developed by Graz University of Technology,
* Institute of Internal Combustion Engines and Thermodynamics,
* Institute of Technical Informatics
*
* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved
* by the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use VECTO except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* https://joinup.ec.europa.eu/community/eupl/og_page/eupl
*
* Unless required by applicable law or agreed to in writing, VECTO
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* Authors:
* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology
* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology
* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology
* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology
* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology
* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
*/
namespace TUGraz.VectoCommon.InputData
{
public interface IImportPlugin
{
string Key { get; }
string Name { get; }
string ImportJob();
}
}
\ No newline at end of file
/*
* This file is part of VECTO.
*
* Copyright © 2012-2016 European Union
*
* Developed by Graz University of Technology,
* Institute of Internal Combustion Engines and Thermodynamics,
* Institute of Technical Informatics
*
* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved
* by the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use VECTO except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* https://joinup.ec.europa.eu/community/eupl/og_page/eupl
*
* Unless required by applicable law or agreed to in writing, VECTO
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* Authors:
* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology
* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology
* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology
* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology
* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology
* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
*/
using System.Threading;
namespace TUGraz.VectoCommon.InputData
{
public interface IInputDataPlugin
{
string Key { get; }
string Name { get; }
bool CanHandleJob(string filename);
IInputDataProvider ReadVectoJob(string filename);
string[] KnownExtensions { get; }
}
}
\ No newline at end of file
/*
* This file is part of VECTO.
*
* Copyright © 2012-2016 European Union
*
* Developed by Graz University of Technology,
* Institute of Internal Combustion Engines and Thermodynamics,
* Institute of Technical Informatics
*
* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved
* by the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use VECTO except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* https://joinup.ec.europa.eu/community/eupl/og_page/eupl
*
* Unless required by applicable law or agreed to in writing, VECTO
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* Authors:
* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology
* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology
* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology
* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology
* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology
* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
*/
using TUGraz.VectoCommon.InputData;
namespace TUGraz.VectoCommon.OutputData
{
public interface IExportPlugin
{
string Key { get; }
string Name { get; }
void ExportJob(IInputDataProvider data);
}
}
\ No newline at end of file
/*
* This file is part of VECTO.
*
* Copyright © 2012-2016 European Union
*
* Developed by Graz University of Technology,
* Institute of Internal Combustion Engines and Thermodynamics,
* Institute of Technical Informatics
*
* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved
* by the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use VECTO except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* https://joinup.ec.europa.eu/community/eupl/og_page/eupl
*
* Unless required by applicable law or agreed to in writing, VECTO
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* Authors:
* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology
* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology
* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology
* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology
* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology
* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
*/
using System;
using System.Collections.Generic;
using System.Linq;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.OutputData;
namespace TUGraz.VectoCommon.Utils
{
public class PluginRegistry
{
private static PluginRegistry _instance;
private readonly Dictionary<string, IExportPlugin> _exportPlugins = new Dictionary<string, IExportPlugin>();
private readonly Dictionary<string, IImportPlugin> _importPlugins = new Dictionary<string, IImportPlugin>();
private readonly Dictionary<string, IInputDataPlugin> _inputDataPlugins = new Dictionary<string, IInputDataPlugin>();
public static PluginRegistry Instance
{
get { return _instance ?? (_instance = new PluginRegistry()); }
}
public void RegisterPlugin(IExportPlugin plugin)
{
_exportPlugins.Add(plugin.Key, plugin);
}
public void RegisterPlugin(IImportPlugin plugin)
{
_importPlugins.Add(plugin.Key, plugin);
}
public void RegisterPlugin(IInputDataPlugin plugin)
{
_inputDataPlugins.Add(plugin.Key, plugin);
}
public IExportPlugin GetExportPlugin(string key)
{
return _exportPlugins.ContainsKey(key) ? _exportPlugins[key] : null;
}
public IImportPlugin GetImportPlugin(string key)
{
return _importPlugins.ContainsKey(key) ? _importPlugins[key] : null;
}
public IEnumerable<KeyValuePair<string, IInputDataPlugin>> GetInputDataPlugins()
{
return _inputDataPlugins.Select(x => x).ToList();
}
public IInputDataPlugin GetInputDataPlugin(string key)
{
return _inputDataPlugins.ContainsKey(key) ? _inputDataPlugins[key] : null;
}
public IEnumerable<string> GetKnownInputExtensions()
{
var retVal = new List<string>();
foreach (var entry in _inputDataPlugins) {
retVal.AddRange(entry.Value.KnownExtensions);
}
return retVal;
}
}
}
\ No newline at end of file
......@@ -45,8 +45,6 @@
</ItemGroup>
<ItemGroup>
<Compile Include="InputData\DataSourceType.cs" />
<Compile Include="InputData\IImportPlugin.cs" />
<Compile Include="InputData\IInputDataPlugin.cs" />
<Compile Include="InputData\TableData.cs">
<SubType>Component</SubType>
</Compile>
......@@ -70,7 +68,6 @@
<Compile Include="Models\OperatingPoint.cs" />
<Compile Include="Models\RetarderType.cs" />
<Compile Include="Models\VehicleCategory.cs" />
<Compile Include="OutputData\IExportPlugin.cs" />
<Compile Include="OutputData\IOutputFileWriter.cs" />
<Compile Include="OutputData\IOutputPlugin.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
......@@ -78,7 +75,6 @@
<Compile Include="Utils\EnumerableExtensionMethods.cs" />
<Compile Include="Utils\EnumHelper.cs" />
<Compile Include="Utils\IntExtensionMethods.cs" />
<Compile Include="Utils\PluginRegistry.cs" />
<Compile Include="Utils\SI.cs" />
<Compile Include="Utils\StringExtensionMethods.cs" />
<Compile Include="Utils\Validation.cs" />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment