/// <summary> /// Writes all or part of this data object to XML. If this data object owns other /// data objects that will also be written, this method may leave some XML elements /// open, which will be closed with a later call to <i>WriteXmlFooter</i>. /// </summary> /// <param name="writer">An open XML writer. The writer will be left open by this method /// after writing.</param> /// <returns>Returns <b>true</b> if successful; <b>false</b> otherwise.</returns> public bool WriteXmlHeader(XmlTextWriter writer) { bool success = true; try { writer.WriteStartDocument(true); writer.WriteStartElement("Fitts_Study"); writer.WriteAttributeString("subject", XmlConvert.ToString(_subject)); writer.WriteAttributeString("circular", XmlConvert.ToString(_circular)); writer.WriteAttributeString("metronome", XmlConvert.ToString(this.UsedMetronome)); writer.WriteAttributeString("conditions", XmlConvert.ToString(_conditions.Count)); writer.WriteAttributeString("MTPct", StringEx.Array2String(_mtpct)); writer.WriteAttributeString("A", StringEx.Array2String(_a)); writer.WriteAttributeString("W", StringEx.Array2String(_w)); writer.WriteAttributeString("intercept", XmlConvert.ToString(_intercept)); writer.WriteAttributeString("slope", XmlConvert.ToString(_slope)); writer.WriteAttributeString("screen", Screen.PrimaryScreen.Bounds.ToString()); writer.WriteAttributeString("version", Assembly.GetExecutingAssembly().GetName().Version.ToString()); writer.WriteAttributeString("date", DateTime.Now.ToLongDateString()); writer.WriteAttributeString("timeOfDay", DateTime.Now.ToLongTimeString()); } catch (XmlException xex) { Console.WriteLine(xex); success = false; } catch (Exception ex) { Console.WriteLine(ex); success = false; } return(success); }