public GtiForm(String titleMessage, GtiXml gtiXml) { Width = 600; if (String.IsNullOrEmpty(titleMessage)) { Text = "GTI GUI"; } else { Text = "GTI GUI - " + titleMessage; } Padding = new Padding(3); splitContainer = new SplitContainer(); splitContainer.Dock = DockStyle.Fill; Controls.Add(splitContainer); { DataGridView taskAppsGrid = CreateTaskAppGrid(gtiXml, out taskAppsByRow); taskAppsGrid.Dock = DockStyle.Fill; taskAppsGrid.BackgroundColor = Color.White; taskAppsGrid.CellClick += TaskAppPanelClicked; taskAppGridPreferredWidth = 3 + taskAppsGrid.Columns[0].GetPreferredWidth(DataGridViewAutoSizeColumnMode.AllCells, true) + taskAppsGrid.Columns[1].GetPreferredWidth(DataGridViewAutoSizeColumnMode.AllCells, true); splitContainer.SplitterDistance = taskAppGridPreferredWidth; splitContainer.Panel1.Controls.Add(taskAppsGrid); splitContainer.Panel1.BackColor = Color.White; splitContainer.FixedPanel = FixedPanel.Panel1; } Width = taskAppGridPreferredWidth + 500; }
DataGridView CreateTaskAppGrid(GtiXml gtiXml, out IList <TaskAppImplementationGui> taskAppsByRow) { DataGridView dataGridView = new DataGridView(); dataGridView.ColumnCount = 2; dataGridView.ReadOnly = true; dataGridView.AllowUserToAddRows = false; dataGridView.RowHeadersVisible = false; dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dataGridView.MultiSelect = false; dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None; dataGridView.AllowUserToResizeRows = false; dataGridView.AllowUserToResizeColumns = true; dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; dataGridView.Columns[0].Name = "Task"; dataGridView.Columns[1].Name = "App"; dataGridView.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; dataGridView.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; taskAppsByRow = new List <TaskAppImplementationGui>(); foreach (var task in gtiXml.Tasks.SafeEnumerable()) { TaskGui taskGui = new TaskGui(task); Int32 appImplementationCount = 0; foreach (var app in gtiXml.ConsoleApplications.SafeEnumerable()) { foreach (var impl in app.TaskImplementations) { if (impl.TaskName.Equals(task.Name, StringComparison.OrdinalIgnoreCase)) { dataGridView.Rows.Add(new String[] { task.Name, app.Name }); taskAppsByRow.Add(new ConsoleTaskImplementationGui(this, taskGui, app, impl)); appImplementationCount++; } } } if (appImplementationCount == 0) { dataGridView.Rows.Add(new String[] { task.Name, "<no-app>" }); taskAppsByRow.Add(new NoAppTaskImplementationGui(this, taskGui)); } } return(dataGridView); }
static Int32 Main(string[] args) { try { if (args.Length == 0) { Usage(); return(0); } List <String> nonOptionArgs = ParseCommandLine(args); if (nonOptionArgs.Count <= 0) { Console.WriteLine("Error: not enough command line arguments"); return(1); } String gtiFilename = nonOptionArgs[0]; GtiXml gtiXml; { var serializer = GtiXml.CreateSerializer(); using (XmlReader xmlReader = XmlReader.Create(new FileStream(gtiFilename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))) { gtiXml = (GtiXml)serializer.Deserialize(xmlReader, GtiXml.SerializerEvents); } } gtiXml.FinalizeDeserialization(); GtiForm.Start(gtiFilename, gtiXml); return(0); } catch (ErrorMessageException e) { Console.WriteLine(e.Message); return(1); } }
public static void Start(String titleMessage, GtiXml gtiXml) { Application.EnableVisualStyles(); Application.Run(new GtiForm(titleMessage, gtiXml)); }