Author: mkrueger
Date: 2007-09-05 08:15:02 -0400 (Wed, 05 Sep 2007)
New Revision: 85354
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/ChangeLog
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/NodeState.cs
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ProjectOperations.cs
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SdiWorkspaceLayout.cs
Log:
* MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs,
MonoDevelop.Ide.Gui.Pads/NodeState.cs,
MonoDevelop.Ide.Gui/Document.cs,
MonoDevelop.Ide.Gui/ProjectOperations.cs,
MonoDevelop.Ide.Gui/DefaultWorkbench.cs,
MonoDevelop.Ide.Gui/SdiWorkspaceLayout.cs: Updated to the
ICustomXmlSerializer infrastructure.
Modified: trunk/monodevelop/Core/src/MonoDevelop.Ide/ChangeLog
===================================================================
--- trunk/monodevelop/Core/src/MonoDevelop.Ide/ChangeLog 2007-09-05
12:14:59 UTC (rev 85353)
+++ trunk/monodevelop/Core/src/MonoDevelop.Ide/ChangeLog 2007-09-05
12:15:02 UTC (rev 85354)
@@ -1,3 +1,12 @@
+2007-09-05 Mike Krüger <[EMAIL PROTECTED]>
+
+ * MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs,
+ MonoDevelop.Ide.Gui.Pads/NodeState.cs,
MonoDevelop.Ide.Gui/Document.cs,
+ MonoDevelop.Ide.Gui/ProjectOperations.cs,
+ MonoDevelop.Ide.Gui/DefaultWorkbench.cs,
+ MonoDevelop.Ide.Gui/SdiWorkspaceLayout.cs: Updated to the
+ ICustomXmlSerializer infrastructure.
+
2007-09-05 Michael Hutchinson <[EMAIL PROTECTED]>
* MonoDevelop.Ide.Templates/CodeTranslationFileDescriptionTemplate.cs:
Add
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
2007-09-05 12:14:59 UTC (rev 85353)
+++
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
2007-09-05 12:15:02 UTC (rev 85354)
@@ -344,7 +344,7 @@
// fileAttribute.InnerText = content.ContentName;
// doc.DocumentElement.Attributes.Append(fileAttribute);
//
- Properties memento =
((IMementoCapable)content).CreateMemento();
+ object memento =
((IMementoCapable)content).CreateMemento();
//
doc.DocumentElement.AppendChild(memento.ToXmlElement(doc));
//
@@ -352,14 +352,14 @@
// check the file name length because it could be more
than the maximum length of a file name
string fullFileName = System.IO.Path.Combine
(directory, fileName);
if (Runtime.FileService.IsValidFileName(fullFileName)) {
- memento.Save (fullFileName);
+ ((Properties)memento).Save (fullFileName);
// doc.Save (fullFileName);
}
}
// interface IMementoCapable
- public Properties CreateMemento()
+ public ICustomXmlSerializer CreateMemento()
{
WorkbenchMemento memento = new WorkbenchMemento (new
Properties ());
int x, y, width, height;
@@ -374,14 +374,14 @@
memento.FullScreen = fullscreen;
if (layout != null)
- memento.LayoutMemento = layout.CreateMemento ();
+ memento.LayoutMemento =
(Properties)layout.CreateMemento ();
return memento.ToProperties ();
}
- public void SetMemento(Properties xmlMemento)
+ public void SetMemento (ICustomXmlSerializer xmlMemento)
{
if (xmlMemento != null) {
- WorkbenchMemento memento = new WorkbenchMemento
(xmlMemento);
+ WorkbenchMemento memento = new WorkbenchMemento
((Properties)xmlMemento);
normalBounds = memento.Bounds;
Move (normalBounds.X, normalBounds.Y);
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
===================================================================
--- trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
2007-09-05 12:14:59 UTC (rev 85353)
+++ trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
2007-09-05 12:15:02 UTC (rev 85354)
@@ -136,7 +136,7 @@
public void Reload ()
{
- Properties memento = null;
+ ICustomXmlSerializer memento = null;
IMementoCapable mc = GetContent<IMementoCapable> ();
if (mc != null) {
memento = mc.CreateMemento();
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ProjectOperations.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ProjectOperations.cs
2007-09-05 12:14:59 UTC (rev 85353)
+++
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ProjectOperations.cs
2007-09-05 12:15:02 UTC (rev 85354)
@@ -823,11 +823,18 @@
switch
(reader.LocalName) {
case
ViewMementoNode:
string
id = reader.GetAttribute (IdAttribute);
-
Properties memento = Properties.Read (reader);
+ string
raw = reader.ReadInnerXml ();
foreach
(Pad pad in IdeApp.Workbench.Pads) {
if (id == pad.Id && pad.Content is IMementoCapable) {
IMementoCapable m = (IMementoCapable) pad.Content;
-
m.SetMemento (memento);
+
XmlReader innerReader = new XmlTextReader (new MemoryStream
(System.Text.Encoding.UTF8.GetBytes (raw)));
+
try {
+
while (innerReader.Read () && innerReader.NodeType !=
XmlNodeType.Element)
+
;
+
m.SetMemento ((ICustomXmlSerializer)m.CreateMemento ().ReadFrom
(innerReader));
+
} finally {
+
innerReader.Close ();
+
}
}
}
return
true;
@@ -889,7 +896,8 @@
if (pad.Content is IMementoCapable) {
writer.WriteStartElement
(ViewMementoNode);
writer.WriteAttributeString
(IdAttribute, pad.Id);
-
((IMementoCapable)pad.Content).CreateMemento ().Write (writer);
+
+
((ICustomXmlSerializer)((IMementoCapable)pad.Content).CreateMemento ()).WriteTo
(writer);
writer.WriteEndElement (); //
ViewMementoNode
}
}
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SdiWorkspaceLayout.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SdiWorkspaceLayout.cs
2007-09-05 12:14:59 UTC (rev 85353)
+++
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SdiWorkspaceLayout.cs
2007-09-05 12:15:02 UTC (rev 85354)
@@ -193,15 +193,15 @@
}
}
- public Properties CreateMemento()
+ public ICustomXmlSerializer CreateMemento()
{
return new SdiWorkbenchLayoutMemento (initialized ?
toolbarFrame.GetStatus () : new DockToolbarFrameStatus ()).ToProperties ();
}
- public void SetMemento(Properties memento)
+ public void SetMemento (ICustomXmlSerializer memento)
{
initialized = true;
- SdiWorkbenchLayoutMemento m = new
SdiWorkbenchLayoutMemento (memento);
+ SdiWorkbenchLayoutMemento m = new
SdiWorkbenchLayoutMemento ((Properties)memento);
toolbarFrame.SetStatus (m.Status);
}
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/NodeState.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/NodeState.cs
2007-09-05 12:14:59 UTC (rev 85353)
+++
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/NodeState.cs
2007-09-05 12:15:02 UTC (rev 85354)
@@ -35,7 +35,7 @@
namespace MonoDevelop.Ide.Gui.Pads
{
- public class NodeState
+ public class NodeState : ICustomXmlSerializer
{
string nodeName;
@@ -90,71 +90,76 @@
}
}
- public Properties ToXml ()
+ void ICustomXmlSerializer.WriteTo (XmlWriter writer)
{
- return ToXml (null);
+ WriteTo (writer, null);
}
- public static NodeState FromXml (Properties state)
+ ICustomXmlSerializer ICustomXmlSerializer.ReadFrom (XmlReader
reader)
{
- return FromXml (state, null);
+ return ReadFrom (reader, null);
}
- Properties ToXml (TreeViewPad.TreeOptions parentOptions)
+ const string Node = "Node";
+ const string nameAttribute = "name";
+ const string expandedAttribute = "expanded";
+ const string selectedAttribute = "selected";
+
+ void WriteTo (XmlWriter writer, TreeViewPad.TreeOptions
parentOptions)
{
- Properties result = new Properties();
-
+ writer.WriteStartElement (Node);
if (NodeName != null)
- result.Set ("name", NodeName);
+ writer.WriteAttributeString (nameAttribute,
NodeName);
if (Expanded)
- result.Set ("expanded", bool.TrueString);
+ writer.WriteAttributeString (expandedAttribute,
bool.TrueString);
if (Selected)
- result.Set ("selected", bool.TrueString);
+ writer.WriteAttributeString (selectedAttribute,
bool.TrueString);
- Properties optionProperties = new Properties();
- result.Set ("Options", optionProperties);
-
TreeViewPad.TreeOptions ops = Options;
if (ops != null) {
foreach (DictionaryEntry de in ops) {
object parentVal = parentOptions !=
null ? parentOptions [de.Key] : null;
if (parentVal != null &&
!parentVal.Equals (de.Value) || (parentVal == null && de.Value != null) ||
parentOptions == null) {
- optionProperties.Set
(de.Key.ToString(), de.Value.ToString ());
+ writer.WriteStartElement
("Option");
+ writer.WriteAttributeString
("id", de.Key.ToString());
+ writer.WriteAttributeString
("value", de.Value.ToString ());
+ writer.WriteEndElement (); //
Option
}
}
}
- if (ChildrenState == null)
- return result;
-
- Properties nodeProperties = new Properties();
- result.Set ("Nodes", nodeProperties);
- foreach (NodeState ces in ChildrenState) {
- nodeProperties.Set (ces.NodeName, ces.ToXml
(ops != null ? ops : parentOptions));
+ if (ChildrenState != null) {
+ Properties nodeProperties = new Properties();
+ foreach (NodeState ces in ChildrenState) {
+ ces.WriteTo (writer, Options != null ?
Options : parentOptions);
+ }
}
- return result;
+ writer.WriteEndElement (); // NodeState
}
- static NodeState FromXml (Properties state,
TreeViewPad.TreeOptions parentOptions)
+ ICustomXmlSerializer ReadFrom (XmlReader reader,
TreeViewPad.TreeOptions parentOptions)
{
NodeState result = new NodeState ();
- result.NodeName = state.Get ("name", "");
- result.Expanded = state.Get ("expanded", false);
- result.Selected = state.Get ("selected", false);
+ result.NodeName = reader.GetAttribute (nameAttribute);
+ if (!String.IsNullOrEmpty (reader.GetAttribute
(expandedAttribute)))
+ result.Expanded = Boolean.Parse
(reader.GetAttribute (expandedAttribute));
+ if (!String.IsNullOrEmpty (reader.GetAttribute
(selectedAttribute)))
+ result.Selected = Boolean.Parse
(reader.GetAttribute (selectedAttribute));
- Properties optionProperties = state.Get ("Options", new
Properties ());
- foreach (string key in optionProperties.Keys) {
- if (result.Options == null)
- result.Options = parentOptions != null
? parentOptions.CloneOptions (Gtk.TreeIter.Zero) : new TreeViewPad.TreeOptions
();
- result.Options [key] = bool.Parse
(optionProperties.Get<string> (key));
- }
-
- Properties nodeProperties = state.Get ("Nodes", new
Properties ());
- result.ChildrenState = new
List<MonoDevelop.Ide.Gui.Pads.NodeState> ();
- foreach (string key in nodeProperties.Keys) {
- result.ChildrenState.Add (FromXml
(nodeProperties.Get (key, new Properties ()), result.Options != null ?
result.Options : parentOptions));
- }
+ XmlReadHelper.ReadList (reader, Node, delegate () {
+ switch (reader.LocalName) {
+ case "Option":
+ if (result.Options == null)
+ result.Options = parentOptions
!= null ? parentOptions.CloneOptions (Gtk.TreeIter.Zero) : new
TreeViewPad.TreeOptions ();
+ result.Options [reader.GetAttribute
("id")] = bool.Parse (reader.GetAttribute ("value"));
+ return true;
+ case "Node":
+ result.ChildrenState.Add
((NodeState)ReadFrom (reader, result.Options != null ? result.Options :
parentOptions));
+ return true;
+ }
+ return false;
+ });
return result;
}
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs
2007-09-05 12:14:59 UTC (rev 85353)
+++
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs
2007-09-05 12:15:02 UTC (rev 85354)
@@ -766,23 +766,21 @@
builder.Update ();
}
- public Properties SaveTreeState ()
+ public NodeState SaveTreeState ()
{
ITreeNavigator root = GetRootNode ();
if (root == null)
- return new Properties ();
+ return null;
- NodeState state = root.SaveState ();
- return state.ToXml ();
+ return root.SaveState ();
}
- public void RestoreTreeState (Properties properties)
+ public void RestoreTreeState (NodeState state)
{
ITreeNavigator nav = GetRootNode ();
if (nav == null)
return;
- if (properties != null) {
- NodeState state = NodeState.FromXml
(properties);
+ if (state != null) {
nav.RestoreState (state);
}
}
@@ -1189,14 +1187,14 @@
}
}
- public Properties CreateMemento ()
+ public ICustomXmlSerializer CreateMemento ()
{
return this.SaveTreeState ();
}
- public void SetMemento (Properties memento)
+ public void SetMemento (ICustomXmlSerializer memento)
{
- this.RestoreTreeState (memento);
+ this.RestoreTreeState ((NodeState)memento);
}
// ********* Own events
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches