public RefactoringPreviewDialog(ProjectDom ctx, List <Change> changes) { this.Build(); this.changes = changes; treeviewPreview.Model = store; TreeViewColumn column = new TreeViewColumn(); // pixbuf column var pixbufCellRenderer = new CellRendererPixbuf(); column.PackStart(pixbufCellRenderer, false); column.SetAttributes(pixbufCellRenderer, "pixbuf", pixbufColumn); column.AddAttribute(pixbufCellRenderer, "visible", statusVisibleColumn); // text column CellRendererText cellRendererText = new CellRendererText(); column.PackStart(cellRendererText, false); column.SetAttributes(cellRendererText, "text", textColumn); column.AddAttribute(cellRendererText, "visible", statusVisibleColumn); // location column CellRendererText cellRendererText2 = new CellRendererText(); column.PackStart(cellRendererText2, false); column.SetCellDataFunc(cellRendererText2, new TreeCellDataFunc(SetLocationTextData)); CellRendererDiff cellRendererDiff = new CellRendererDiff(); column.PackStart(cellRendererDiff, true); column.SetCellDataFunc(cellRendererDiff, new TreeCellDataFunc(SetDiffCellData)); treeviewPreview.AppendColumn(column); treeviewPreview.HeadersVisible = false; buttonCancel.Clicked += delegate { Destroy(); }; buttonOk.Clicked += delegate { IProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetBackgroundProgressMonitor(this.Title, null); RefactoringService.AcceptChanges(monitor, ctx, changes); Destroy(); }; FillChanges(); Resize(IdeApp.Workbench.ActiveDocument.ActiveView.Control.Allocation.Width, IdeApp.Workbench.ActiveDocument.ActiveView.Control.Allocation.Height); }
public RefactoringPreviewDialog(IList <Change> changes) { this.Build(); this.changes = changes; treeviewPreview.Model = store; treeviewPreview.SearchColumn = -1; // disable the interactive search TreeViewColumn column = new TreeViewColumn(); // pixbuf column var pixbufCellRenderer = new CellRendererImage(); column.PackStart(pixbufCellRenderer, false); column.SetAttributes(pixbufCellRenderer, "image", pixbufColumn); column.AddAttribute(pixbufCellRenderer, "visible", statusVisibleColumn); // text column CellRendererText cellRendererText = new CellRendererText(); column.PackStart(cellRendererText, false); column.SetAttributes(cellRendererText, "text", textColumn); column.AddAttribute(cellRendererText, "visible", statusVisibleColumn); // location column CellRendererText cellRendererText2 = new CellRendererText(); column.PackStart(cellRendererText2, false); column.SetCellDataFunc(cellRendererText2, new TreeCellDataFunc(SetLocationTextData)); CellRendererDiff cellRendererDiff = new CellRendererDiff(); column.PackStart(cellRendererDiff, true); column.SetCellDataFunc(cellRendererDiff, new TreeCellDataFunc(SetDiffCellData)); treeviewPreview.AppendColumn(column); treeviewPreview.HeadersVisible = false; buttonCancel.Clicked += delegate { Destroy(); }; buttonOk.Clicked += delegate { ProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetBackgroundProgressMonitor(this.Title, null); RefactoringService.AcceptChanges(monitor, changes); Destroy(); }; FillChanges(); }
public RefactoringPreviewDialog (ProjectDom ctx, List<Change> changes) { this.Build (); this.changes = changes; treeviewPreview.Model = store; TreeViewColumn column = new TreeViewColumn (); // pixbuf column var pixbufCellRenderer = new CellRendererPixbuf (); column.PackStart (pixbufCellRenderer, false); column.SetAttributes (pixbufCellRenderer, "pixbuf", pixbufColumn); column.AddAttribute (pixbufCellRenderer, "visible", statusVisibleColumn); // text column CellRendererText cellRendererText = new CellRendererText (); column.PackStart (cellRendererText, false); column.SetAttributes (cellRendererText, "text", textColumn); column.AddAttribute (cellRendererText, "visible", statusVisibleColumn); // location column CellRendererText cellRendererText2 = new CellRendererText (); column.PackStart (cellRendererText2, false); column.SetCellDataFunc (cellRendererText2, new TreeCellDataFunc (SetLocationTextData)); CellRendererDiff cellRendererDiff = new CellRendererDiff (); column.PackStart (cellRendererDiff, true); column.SetCellDataFunc (cellRendererDiff, new TreeCellDataFunc (SetDiffCellData)); treeviewPreview.AppendColumn (column); treeviewPreview.HeadersVisible = false; buttonCancel.Clicked += delegate { Destroy (); }; buttonOk.Clicked += delegate { IProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetBackgroundProgressMonitor (this.Title, null); RefactoringService.AcceptChanges (monitor, ctx, changes); Destroy (); }; FillChanges (); Resize (IdeApp.Workbench.ActiveDocument.ActiveView.Control.Allocation.Width, IdeApp.Workbench.ActiveDocument.ActiveView.Control.Allocation.Height); }
public RefactoringPreviewDialog (IList<Change> changes) { this.Build (); this.changes = changes; treeviewPreview.Model = store; treeviewPreview.SearchColumn = -1; // disable the interactive search TreeViewColumn column = new TreeViewColumn (); // pixbuf column var pixbufCellRenderer = new CellRendererImage (); column.PackStart (pixbufCellRenderer, false); column.SetAttributes (pixbufCellRenderer, "image", pixbufColumn); column.AddAttribute (pixbufCellRenderer, "visible", statusVisibleColumn); // text column CellRendererText cellRendererText = new CellRendererText (); column.PackStart (cellRendererText, false); column.SetAttributes (cellRendererText, "text", textColumn); column.AddAttribute (cellRendererText, "visible", statusVisibleColumn); // location column CellRendererText cellRendererText2 = new CellRendererText (); column.PackStart (cellRendererText2, false); column.SetCellDataFunc (cellRendererText2, new TreeCellDataFunc (SetLocationTextData)); CellRendererDiff cellRendererDiff = new CellRendererDiff (); column.PackStart (cellRendererDiff, true); column.SetCellDataFunc (cellRendererDiff, new TreeCellDataFunc (SetDiffCellData)); treeviewPreview.AppendColumn (column); treeviewPreview.HeadersVisible = false; buttonCancel.Clicked += delegate { Destroy (); }; buttonOk.Clicked += delegate { ProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetBackgroundProgressMonitor (this.Title, null); RefactoringService.AcceptChanges (monitor, changes); Destroy (); }; FillChanges (); }
void SetDiffCellData (Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { try { CellRendererDiff cellRendererDiff = (CellRendererDiff)cell; Change change = store.GetValue (iter, objColumn) as Change; cellRendererDiff.Visible = !(bool)store.GetValue (iter, statusVisibleColumn); if (change == null || !cellRendererDiff.Visible) { cellRendererDiff.InitCell (treeviewPreview, false, "", ""); return; } TextReplaceChange replaceChange = change as TextReplaceChange; if (replaceChange == null) return; var openDocument = IdeApp.Workbench.GetDocument (replaceChange.FileName); Mono.TextEditor.TextDocument originalDocument = new Mono.TextEditor.TextDocument (); originalDocument.FileName = replaceChange.FileName; if (openDocument == null) { originalDocument.Text = Mono.TextEditor.Utils.TextFileUtility.ReadAllText (replaceChange.FileName); } else { originalDocument.Text = openDocument.Editor.Document.Text; } Mono.TextEditor.TextDocument changedDocument = new Mono.TextEditor.TextDocument (); changedDocument.FileName = replaceChange.FileName; changedDocument.Text = originalDocument.Text; changedDocument.Replace (replaceChange.Offset, replaceChange.RemovedChars, replaceChange.InsertedText); string diffString = Mono.TextEditor.Utils.Diff.GetDiffString (originalDocument, changedDocument); cellRendererDiff.InitCell (treeviewPreview, true, diffString, replaceChange.FileName); } catch (Exception e) { Console.WriteLine (e); } }
void SetDiffCellData(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { try { CellRendererDiff cellRendererDiff = (CellRendererDiff)cell; Change change = store.GetValue(iter, objColumn) as Change; cellRendererDiff.Visible = !(bool)store.GetValue(iter, statusVisibleColumn); if (change == null || !cellRendererDiff.Visible) { cellRendererDiff.InitCell(treeviewPreview, false, "", ""); return; } TextReplaceChange replaceChange = change as TextReplaceChange; if (replaceChange == null) { return; } Mono.TextEditor.Document doc = new Mono.TextEditor.Document(); doc.Text = System.IO.File.ReadAllText(replaceChange.FileName); List <string> before = new List <string> (); foreach (var line in doc.Lines) { before.Add(doc.GetTextAt(line.Offset, line.EditableLength)); } ((Mono.TextEditor.IBuffer)doc).Replace(replaceChange.Offset, replaceChange.RemovedChars, replaceChange.InsertedText); List <string> after = new List <string> (); foreach (var line in doc.Lines) { after.Add(doc.GetTextAt(line.Offset, line.EditableLength)); } Diff diff = new Diff(before.ToArray(), after.ToArray(), true, true); System.IO.StringWriter w = new System.IO.StringWriter(); UnifiedDiff.WriteUnifiedDiff(diff, w, replaceChange.FileName, replaceChange.FileName, 2); cellRendererDiff.InitCell(treeviewPreview, true, w.ToString().Trim(), replaceChange.FileName); } catch (Exception e) { Console.WriteLine(e); } }