diff options
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates')
5 files changed, 62 insertions, 152 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateListDataProvider.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateListDataProvider.cs index ee59f0fbf1..09be8ba643 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateListDataProvider.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateListDataProvider.cs @@ -32,23 +32,23 @@ namespace MonoDevelop.Ide.CodeTemplates { public class CodeTemplateListDataProvider : IListDataProvider<string> { - List<KeyValuePair<string, string>> itemList; + List<CodeTemplateVariableValue> itemList; - public CodeTemplateListDataProvider (List<KeyValuePair<string, string>> itemList) + public CodeTemplateListDataProvider (List<CodeTemplateVariableValue> itemList) { this.itemList = itemList; } public CodeTemplateListDataProvider (string s) { - itemList = new List<KeyValuePair<string, string>> (); - itemList.Add (new KeyValuePair<string, string> (null, s)); + itemList = new List<CodeTemplateVariableValue> (); + itemList.Add (new CodeTemplateVariableValue (s, null)); } #region IListDataProvider implementation public string GetText (int index) { - return itemList[index].Value; + return itemList[index].Text; } public string this [int index] { @@ -59,7 +59,7 @@ namespace MonoDevelop.Ide.CodeTemplates public Gdk.Pixbuf GetIcon (int index) { - string iconName = itemList[index].Key; + string iconName = itemList[index].IconName; if (string.IsNullOrEmpty (iconName)) return null; return MonoDevelop.Core.Gui.ImageService.GetPixbuf (iconName, Gtk.IconSize.Menu); diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplatePanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplatePanel.cs index 3e071afcbd..b38e8fc4ac 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplatePanel.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplatePanel.cs @@ -115,7 +115,6 @@ namespace MonoDevelop.Ide.CodeTemplates if (treeviewCodeTemplates.Selection.GetSelected (out selected)) { EditTemplateDialog editDialog = new EditTemplateDialog ((CodeTemplate)templateStore.GetValue (selected, 0), false); editDialog.TransientFor = this.Toplevel as Gtk.Window; - editDialog.Parent = parent; editDialog.Run (); editDialog.Destroy (); } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs index d5891df333..4f1bf7e9a0 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs @@ -25,6 +25,7 @@ // THE SOFTWARE. using System; +using System.ComponentModel; using System.Collections.Generic; using System.Xml; using MonoDevelop.Core; @@ -33,38 +34,47 @@ namespace MonoDevelop.Ide.CodeTemplates { public class CodeTemplateVariable { + [Browsable (false)] public string Name { get; set; } + [LocalizedDescription ("Default value for this variable.")] public string Default { get; set; } + [LocalizedDescription ("The tooltip to display to the user for this variable.")] public string ToolTip { get; set; } + [LocalizedDescription ("A function to be evaluated for the contents of this variable.")] public string Function { get; set; } + [LocalizedDisplayName ("Editable")] + [LocalizedDescription ("Whether the variable is an editable region.")] public bool IsEditable { get; set; } + [LocalizedDisplayName ("Identifier")] + [LocalizedDescription ("Whether the variable is an identifier, and should only accept valid identifiers as input.")] public bool IsIdentifier { get; set; } - List<KeyValuePair<string, string>> values = new List<KeyValuePair<string, string>> (); - public List<KeyValuePair<string, string>> Values { + [LocalizedDescription ("A list of values for the user to choose from.")] + List<CodeTemplateVariableValue> values = new List<CodeTemplateVariableValue> (); + public List<CodeTemplateVariableValue> Values { get { return values; } @@ -115,11 +125,11 @@ namespace MonoDevelop.Ide.CodeTemplates if (Values.Count > 0) { writer.WriteStartElement (ValuesNode); - foreach (KeyValuePair<string, string> val in Values) { + foreach (var val in Values) { writer.WriteStartElement (ValueNode); - if (!string.IsNullOrEmpty (val.Key)) - writer.WriteAttributeString (iconAttribute, val.Key); - writer.WriteString (val.Value); + if (!string.IsNullOrEmpty (val.IconName)) + writer.WriteAttributeString (iconAttribute, val.IconName); + writer.WriteString (val.Text); writer.WriteEndElement (); } writer.WriteEndElement (); // ValuesNode @@ -166,7 +176,7 @@ namespace MonoDevelop.Ide.CodeTemplates case ValueNode: string icon = reader.GetAttribute (iconAttribute); string val = reader.ReadElementContentAsString (); - result.Values.Add (new KeyValuePair<string, string> (icon, val)); + result.Values.Add (new CodeTemplateVariableValue (val, icon)); return true; } return false; @@ -182,4 +192,28 @@ namespace MonoDevelop.Ide.CodeTemplates return result; } } + + public class CodeTemplateVariableValue + { + public CodeTemplateVariableValue () + { + } + + public CodeTemplateVariableValue (string text, string iconName) + { + this.Text = text; + this.IconName = iconName; + } + + [LocalizedDisplayName ("Text")] + public string Text { get; set; } + + [LocalizedDisplayName ("Icon name")] + public string IconName { get; set; } + + public override string ToString () + { + return Text; + } + } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/EditTemplateDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/EditTemplateDialog.cs index 4c9fc62d48..e90651805e 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/EditTemplateDialog.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/EditTemplateDialog.cs @@ -46,6 +46,7 @@ namespace MonoDevelop.Ide.CodeTemplates ListStore variablesListStore; List<CodeTemplateVariable> variables = new List<CodeTemplateVariable> (); + MonoDevelop.Components.PropertyGrid.PropertyGrid grid; TreeStore variableStore; @@ -109,118 +110,15 @@ namespace MonoDevelop.Ide.CodeTemplates nameRenderer.Markup = ((string)model.GetValue (iter, 2)); }); -/* - treeviewVariables.HeadersClickable = true; + grid = new MonoDevelop.Components.PropertyGrid.PropertyGrid (); + grid.PropertySort = System.Windows.Forms.PropertySort.Alphabetical; + grid.ShowHelp = true; + grid.ShowAll (); + grid.ShowToolbar = false; - #region NameColumn - TreeViewColumn column; - CellRendererText nameRenderer = new CellRendererText (); - column = treeviewVariables.AppendColumn (GettextCatalog.GetString ("Name"), nameRenderer, - delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { - nameRenderer.Text = ((CodeTemplateVariable)model.GetValue (iter, 0)).Name; - }); - //column.Resizable = true; - #endregion - - #region TipColumn - CellRendererText tipRenderer = new CellRendererText (); - tipRenderer.Editable = true; - tipRenderer.Edited += delegate(object o, EditedArgs args) { - TreeIter iter; - if (variablesStore.GetIterFromString (out iter, args.Path)) { - CodeTemplateVariable var = (CodeTemplateVariable)variablesStore.GetValue (iter, 0); - var.ToolTip = args.NewText; - } - }; - column = treeviewVariables.AppendColumn (GettextCatalog.GetString ("Tooltip"), tipRenderer, - delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { - tipRenderer.Text = ((CodeTemplateVariable)model.GetValue (iter, 0)).ToolTip; - }); - column.Resizable = true; - #endregion - - #region DefaultValueColumn - CellRendererText defaultRenderer = new CellRendererText (); - defaultRenderer.Editable = true; - defaultRenderer.Edited += delegate(object o, EditedArgs args) { - TreeIter iter; - if (variablesStore.GetIterFromString (out iter, args.Path)) { - CodeTemplateVariable var = (CodeTemplateVariable)variablesStore.GetValue (iter, 0); - var.Default = args.NewText; - } - }; + vbox4.Remove (scrolledwindow2); + vbox4.PackEnd (grid, true, true, 0); - column = treeviewVariables.AppendColumn (GettextCatalog.GetString ("Default"), defaultRenderer, - delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { - defaultRenderer.Text = ((CodeTemplateVariable)model.GetValue (iter, 0)).Default; - }); - column.Resizable = true; - #endregion - - #region EditableColumn - CellRendererToggle toggleRenderer = new CellRendererToggle (); - toggleRenderer.Activatable = true; - toggleRenderer.Toggled += delegate(object o, ToggledArgs args) { - TreeIter iter; - if (variablesStore.GetIterFromString (out iter, args.Path)) { - CodeTemplateVariable var = (CodeTemplateVariable)variablesStore.GetValue (iter, 0); - var.IsEditable = !var.IsEditable; - } - }; - treeviewVariables.AppendColumn (GettextCatalog.GetString ("Editable"), toggleRenderer, - delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { - toggleRenderer.Active = ((CodeTemplateVariable)model.GetValue (iter, 0)).IsEditable; - }); - #endregion - - #region FunctionColumn - Gtk.CellRendererCombo cellRendererFunction = new Gtk.CellRendererCombo (); - cellRendererFunction.Mode = CellRendererMode.Editable; - cellRendererFunction.Editable = true; - cellRendererFunction.HasEntry = true; - cellRendererFunction.TextColumn = 0; - cellRendererFunction.Edited += delegate(object o, EditedArgs args) { - TreeIter iter; - if (variablesStore.GetIterFromString (out iter, args.Path)) { - CodeTemplateVariable var = (CodeTemplateVariable)variablesStore.GetValue (iter, 0); - var.Function = args.NewText; - } - }; - - ListStore store = new ListStore (typeof(string)); - ExpansionObject expansion = CodeTemplateService.GetExpansionObject (template); - foreach (string str in expansion.Descriptions) { - store.AppendValues (str); - } - cellRendererFunction.Model = store; - - column = treeviewVariables.AppendColumn (GettextCatalog.GetString ("Function"), cellRendererFunction, - delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { - cellRendererFunction.Text = ((CodeTemplateVariable)model.GetValue (iter, 0)).Function; - }); - column.Resizable = true; - #endregion - - #region ValueColumn - CellRendererText valueRenderer = new CellRendererText (); - valueRenderer.Editable = true; - valueRenderer.EditingStarted += delegate(object o, EditingStartedArgs args) { - Console.WriteLine ("Editing Started !!!"); - }; - - treeviewVariables.AppendColumn (GettextCatalog.GetString ("Values"), valueRenderer, - delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { - CodeTemplateVariable var = (CodeTemplateVariable)model.GetValue (iter, 0); - if (var.Values.Count == 0) { - valueRenderer.Markup = "<span foreground=\"" + CodeTemplatePanelWidget.GetColorString (Style.Text (StateType.Insensitive)) + "\">(empty)</span>"; - } else if (var.Values.Count == 1) { - valueRenderer.Text = var.Values[0].Value; - } else { - valueRenderer.Text = var.Values[0].Value + ", ..."; - } - }); - #endregion - */ UpdateVariables (); } @@ -317,31 +215,10 @@ namespace MonoDevelop.Ide.CodeTemplates } } - class CellRendererProperty : CellRendererText - { - - } + void FillVariableTree (CodeTemplateVariable var) { - variableStore.Clear (); - if (var == null) - return; - - variableStore.AppendValues (GettextCatalog.GetString ("Name"), var, GLib.Markup.EscapeText (var.Name ?? ""), 0); - variableStore.AppendValues (GettextCatalog.GetString ("Tooltip"), var, GLib.Markup.EscapeText (var.ToolTip ?? ""), 1); - variableStore.AppendValues (GettextCatalog.GetString ("Default"), var, GLib.Markup.EscapeText (var.Default ?? ""), 2); - variableStore.AppendValues (GettextCatalog.GetString ("Editable"), var, var.IsEditable ? "True" : "False", 3); - variableStore.AppendValues (GettextCatalog.GetString ("Function"), var, GLib.Markup.EscapeText (var.Function ?? ""), 4); - string valueStr; - - if (var.Values.Count == 0) { - valueStr = "<span foreground=\"" + CodeTemplatePanelWidget.GetColorString (Style.Text (StateType.Insensitive)) + "\">(empty)</span>"; - } else if (var.Values.Count == 1) { - valueStr = GLib.Markup.EscapeText (var.Values[0].Value); - } else { - valueStr = GLib.Markup.EscapeText (var.Values[0].Value) + ", ..."; - } - variableStore.AppendValues (GettextCatalog.GetString ("Values"), var, valueStr, 5); + grid.CurrentObject = var; } void UpdateVariables () diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/ExpansionObject.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/ExpansionObject.cs index de711e8c81..227b55f0f6 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/ExpansionObject.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/ExpansionObject.cs @@ -135,8 +135,8 @@ namespace MonoDevelop.Ide.CodeTemplates MonoDevelop.Projects.Gui.Completion.ICompletionDataList list; public IListDataProvider<string> GetCollections () { - List<KeyValuePair<string, string>> result = new List<KeyValuePair<string, string>> (); - CompletionTextEditorExtension ext = CurrentContext.Document.GetContent <CompletionTextEditorExtension> (); + var result = new List<CodeTemplateVariableValue> (); + var ext = CurrentContext.Document.GetContent <CompletionTextEditorExtension> (); if (ext != null) { if (list == null) list = ext.CodeCompletionCommand (CurrentContext.Document.TextEditor.CurrentCodeCompletionContext); @@ -149,7 +149,7 @@ namespace MonoDevelop.Ide.CodeTemplates if (data.Member is IMember) { IMember m = data.Member as IMember; if (DomType.GetComponentType (CurrentContext.ProjectDom, m.ReturnType) != null) - result.Add (new KeyValuePair<string, string>(data.Icon, m.Name)); + result.Add (new CodeTemplateVariableValue (m.Name, data.Icon)); } } @@ -160,7 +160,7 @@ namespace MonoDevelop.Ide.CodeTemplates if (data.Member is IParameter) { IParameter m = data.Member as IParameter; if (DomType.GetComponentType (CurrentContext.ProjectDom, m.ReturnType) != null) - result.Add (new KeyValuePair<string, string>(data.Icon, m.Name)); + result.Add (new CodeTemplateVariableValue (m.Name, data.Icon)); } } @@ -171,7 +171,7 @@ namespace MonoDevelop.Ide.CodeTemplates if (data.Member is LocalVariable) { LocalVariable m = data.Member as LocalVariable; if (DomType.GetComponentType (CurrentContext.ProjectDom, m.ReturnType) != null) - result.Add (new KeyValuePair<string, string>(data.Icon, m.Name)); + result.Add (new CodeTemplateVariableValue (m.Name, data.Icon)); } } } |