public void WriteFile(string file, object node, IProgressMonitor monitor)
        {
            Project project = node as Project;
            if (project == null)
                throw new InvalidOperationException ("The provided object is not a Project");

            StreamWriter sw = new StreamWriter (file);
            try {
                monitor.BeginTask (string.Format (GettextCatalog.GetString("Saving project: {0}"), file), 1);
                XmlDataSerializer ser = new XmlDataSerializer (Runtime.ProjectService.DataContext);
                ser.SerializationContext.BaseFile = file;
                ser.Serialize (sw, project, typeof(Project));
            } catch (Exception ex) {
                monitor.ReportError (string.Format (GettextCatalog.GetString ("Could not save project: {0}"), file), ex);
            } finally {
                monitor.EndTask ();
                sw.Close ();
            }
        }