public void LoadDDF( DataDefinitionFile ddf ) { _catalog = new CatalogDirectory( ddf ); foreach( var entry in _catalog.Entries.OrderBy(e => e.Contents)) { ListViewItem item = new ListViewItem(); item.Text = entry.FileName; item.SubItems.Add( new ListViewItem.ListViewSubItem( item, entry.Contents ) ); listView1.Items.Add( item ); } }
public CatalogDirectory( DataDefinitionFile ddf ) { if( ddf.DescriptiveRecord.Directories.Last().Tag == DirectoryDataType.CATD ) { Entries = ddf.DataRecords[ 0 ].Rows.Select( row => new CatalogDirectoryEntry( row ) ).ToList(); var xref = Entries.First( entry => entry.Type == "XREF" ); var directory = xref.File.DescriptiveRecord.Directories.OfType<DDRDirectoryEntry>().First( dir => dir.Type == DDRDirectoryEntryType.FieldList ); var projCol = directory.SubFields.IndexOf( directory.SubFields.First( field => field.Name == "RSNM" ) ); var projection = xref.File.DataRecords[ 0 ].Rows[ 0 ].Fields[projCol].AsString; if( projection.ToUpper() == "UTM" ) { var zoneCol = directory.SubFields.IndexOf( directory.SubFields.First( field => field.Name == "ZONE" ) ); Projection = new UTM( int.Parse(xref.File.DataRecords[ 0 ].Rows[ 0 ].Fields[ zoneCol ].AsString) ); } } }
public static DataDefinitionFile FromFile( string path ) { var ddf = new DataDefinitionFile(); using( FileStream stream = new FileStream( path, FileMode.Open ) ) { using( var reader = new BinaryReader( stream ) ) { ddf.DescriptiveRecord = DataDescriptiveRecord.FromStream( reader ); ddf.DataRecords = new List<DataRecord>(); while( reader.PeekChar() != -1) { ddf.DataRecords.Add( DataRecord.FromStream( ddf.DescriptiveRecord, reader ) ); } } stream.Close(); } return ddf; }
public bool LoadDDF( DataDefinitionFile ddf ) { listView1.Columns.Clear(); if (ddf.DescriptiveRecord.Directories.OfType<DDRDirectoryEntry>().Any(dir => dir.Type == DDRDirectoryEntryType.ArrayFieldList)) { MessageBox.Show( "This file contains multiple value fields, which are not supported in generic mode at this time." ); return false; } IEnumerable<DDRDirectoryEntry> directories = ddf.DescriptiveRecord.Directories.OfType<DDRDirectoryEntry>().Where( dir => dir.Type == DDRDirectoryEntryType.FieldList ); IEnumerable<DataField> colDefs = directories.SelectMany( dir => dir.SubFields ); foreach (var col in colDefs) { listView1.Columns.Add( new ColumnHeader { Name = col.Name, Text = col.Name } ); } foreach( var row in ddf.DataRecords.SelectMany(dr => dr.Rows) ) { listView1.Items.Add( new ListViewItem( row.Fields.Select( field => field.AsString ).ToArray() ) ); } return true; }
public LineSet( DataDefinitionFile ddf ) { Lines = new List<Line>(); foreach( var record in ddf.DataRecords) { foreach (var row in record.Rows) { Lines.Add( new Line( row ) ); } } }
public void LoadLineSet( DataDefinitionFile ddf ) { _lineSet = new LineSet( ddf ); }
private void LoadLineSetPanelTab( DataDefinitionFile ddf ) { EnsureTabControl(); TabPage tab = new TabPage( ddf.DescriptiveRecord.Filename ); LineSetPanel panel = new LineSetPanel { Dock = DockStyle.Fill }; panel.LoadLineSet( ddf ); tab.Controls.Add( panel ); mainTabControl.TabPages.Add( tab ); mainTabControl.SelectedTab = tab; }
private void LoadGenericPanel( DataDefinitionFile ddf ) { EnsureTabControl(); TabPage tab = new TabPage( ddf.DescriptiveRecord.Filename ); var panel = new GenericPanel { Dock = DockStyle.Fill }; if (panel.LoadDDF( ddf )) { tab.Controls.Add( panel ); mainTabControl.TabPages.Add( tab ); mainTabControl.SelectedTab = tab; } }
private void LoadCatalogDirectoryPanel( DataDefinitionFile ddf ) { EnsureTabControl(); TabPage tab = new TabPage( ddf.DescriptiveRecord.Filename ); CatalogDirectoryPanel panel = new CatalogDirectoryPanel { Dock = DockStyle.Fill }; panel.OpenSDTSFile += new OpenSDTSFileHandler( panel_OpenSDTSFile ); panel.LoadDDF( ddf ); tab.Controls.Add( panel ); mainTabControl.TabPages.Add( tab ); mainTabControl.SelectedTab = tab; }