void girLoadButton_Clicked(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(girFileNameEntry.Text)) { var dialog = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Must specify a gir file name."); dialog.Run(); dialog.Destroy(); return; } if (!File.Exists(girFileNameEntry.Text)) { var dialog = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "The gir file '{0}' could not be found.", girFileNameEntry.Text); dialog.Run(); dialog.Destroy(); return; } try { var xmlDoc = XDocument.Load(girFileNameEntry.Text); var implementor = new GirTreeModel(xmlDoc.Root); girTreeView.Model = new TreeModelAdapter(implementor); girTreeView.ExpandToPath(new TreePath("0:2")); fixupApplyButton.Click(); } catch (Exception ex) { var dialog = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Error while loading gir file:\n\n {0}.", ex.Message); dialog.Run(); dialog.Destroy(); return; } }
void fixupApplyButton_Clicked(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(fixupFileNameEntry.Text)) { var dialog = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Must specify a fixup file name."); dialog.Run(); dialog.Destroy(); return; } if (!File.Exists(fixupFileNameEntry.Text)) { var dialog = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "The fixup file '{0}' could not be found.", fixupFileNameEntry.Text); dialog.Run(); dialog.Destroy(); return; } try { var model = girTreeView.Model as TreeModelAdapter; var impl = model.Implementor as GirTreeModel; var newDoc = new XDocument(impl.Root.Document); newDoc.ApplyFixupFile(fixupFileNameEntry.Text); newDoc.ApplyBuiltinFixup(); var fixupImpl = new GirTreeModel(newDoc.Root); fixupTreeView.Model = new TreeModelAdapter(fixupImpl); fixupTreeView.ExpandToPath(new TreePath("0:2")); } catch (Exception ex) { var dialog = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Error while applying fixup file '{0}':\n\n{1}.", fixupFileNameEntry.Text, ex.Message); dialog.Run(); dialog.Destroy(); return; } }