Create new namespace zaaReloaded2.Formatter, move settings there.

This commit is contained in:
Daniel Kraus 2015-07-16 01:49:17 +02:00
parent 26766dbf81
commit e4e7f80ed2
8 changed files with 86 additions and 64 deletions

View File

@ -23,7 +23,7 @@ using NUnit.Framework;
using Microsoft.Office.Interop.Word; using Microsoft.Office.Interop.Word;
using zaaReloaded2.LabModel; using zaaReloaded2.LabModel;
using zaaReloaded2.Formatter; using zaaReloaded2.Formatter;
using zaa = zaaReloaded2.Formatter.Elements; using zaa = zaaReloaded2.Controller.Elements;
namespace Tests.Formatter.Elements namespace Tests.Formatter.Elements
{ {
@ -55,9 +55,9 @@ namespace Tests.Formatter.Elements
// We do not add a 'Cl' item, and it should not appear in output. // We do not add a 'Cl' item, and it should not appear in output.
lab.AddTimePoint(tp); lab.AddTimePoint(tp);
_formatter.ReferenceStyle = ReferenceStyle.IfAbnormal; _formatter.Settings.ReferenceStyle = ReferenceStyle.IfAbnormal;
_formatter.Laboratory = lab; _formatter.Laboratory = lab;
_formatter.Elements.Add(new zaa.Items("Na, K, Cl")); _formatter.Settings.Elements.Add(new zaa.Items("Na, K, Cl"));
_formatter.Run(); _formatter.Run();
Assert.AreEqual("Na 133, K 6 (5)\r", _formatter.Document.Range().Text); Assert.AreEqual("Na 133, K 6 (5)\r", _formatter.Document.Range().Text);
} }
@ -73,9 +73,9 @@ namespace Tests.Formatter.Elements
// We do not add a 'Cl' item, and it should not appear in output. // We do not add a 'Cl' item, and it should not appear in output.
lab.AddTimePoint(tp); lab.AddTimePoint(tp);
_formatter.ReferenceStyle = ReferenceStyle.IfAbnormal; _formatter.Settings.ReferenceStyle = ReferenceStyle.IfAbnormal;
_formatter.Laboratory = lab; _formatter.Laboratory = lab;
_formatter.Elements.Add(new zaa.Items("Klinische Chemie: Na, K, Cl")); _formatter.Settings.Elements.Add(new zaa.Items("Klinische Chemie: Na, K, Cl"));
_formatter.Run(); _formatter.Run();
Assert.AreEqual("Klinische Chemie: Na 133, K 6 (5)\r", _formatter.Document.Range().Text); Assert.AreEqual("Klinische Chemie: Na 133, K 6 (5)\r", _formatter.Document.Range().Text);
} }
@ -91,9 +91,9 @@ namespace Tests.Formatter.Elements
// We do not add a 'Cl' item, and it should not appear in output. // We do not add a 'Cl' item, and it should not appear in output.
lab.AddTimePoint(tp); lab.AddTimePoint(tp);
_formatter.ReferenceStyle = ReferenceStyle.IfAbnormal; _formatter.Settings.ReferenceStyle = ReferenceStyle.IfAbnormal;
_formatter.Laboratory = lab; _formatter.Laboratory = lab;
_formatter.Elements.Add(new zaa.Items("Klinische Chemie: this, does, not, exist")); _formatter.Settings.Elements.Add(new zaa.Items("Klinische Chemie: this, does, not, exist"));
_formatter.Run(); _formatter.Run();
Assert.AreEqual("\r", _formatter.Document.Range().Text); Assert.AreEqual("\r", _formatter.Document.Range().Text);
} }

View File

@ -23,6 +23,7 @@ using NUnit.Framework;
using f = zaaReloaded2.Formatter; using f = zaaReloaded2.Formatter;
using zaaReloaded2.LabModel; using zaaReloaded2.LabModel;
using zaaReloaded2.Importer.ZaaImporter; using zaaReloaded2.Importer.ZaaImporter;
using zaaReloaded2.Controller.Elements;
using Microsoft.Office.Interop.Word; using Microsoft.Office.Interop.Word;
namespace Tests.Formatter namespace Tests.Formatter
@ -37,7 +38,7 @@ namespace Tests.Formatter
ZaaImporter importer = TestHelpers.ZaaImporterFromResource(); ZaaImporter importer = TestHelpers.ZaaImporterFromResource();
f.Formatter formatter = new f.Formatter(document); f.Formatter formatter = new f.Formatter(document);
formatter.Laboratory = importer.Laboratory; formatter.Laboratory = importer.Laboratory;
formatter.Elements.Add(new f.Elements.Items("Klinische Chemie: Na, K, Cl")); formatter.Settings.Elements.Add(new Items("Klinische Chemie: Na, K, Cl"));
formatter.Run(); formatter.Run();
Assert.AreEqual("Klinische Chemie: Na 144 mM, K 4,3 mM\r", document.Range().Text); Assert.AreEqual("Klinische Chemie: Na 144 mM, K 4,3 mM\r", document.Range().Text);
((_Document)document).Close(WdSaveOptions.wdDoNotSaveChanges); ((_Document)document).Close(WdSaveOptions.wdDoNotSaveChanges);

View File

@ -22,13 +22,13 @@ using System.Text;
using Microsoft.Office.Interop.Word; using Microsoft.Office.Interop.Word;
using zaaReloaded2.LabModel; using zaaReloaded2.LabModel;
namespace zaaReloaded2.Formatter.Elements namespace zaaReloaded2.Controller.Elements
{ {
/// <summary> /// <summary>
/// Base class for formatting elements. /// Base class for formatting elements.
/// </summary> /// </summary>
[Serializable] [Serializable]
abstract class ElementBase public abstract class ElementBase
{ {
/// <summary> /// <summary>
/// Returns the label for this formatting element. /// Returns the label for this formatting element.
@ -43,6 +43,6 @@ namespace zaaReloaded2.Formatter.Elements
/// <param name="formatter">Formatter object that this /// <param name="formatter">Formatter object that this
/// Element belongs to. The Formatter object provides access /// Element belongs to. The Formatter object provides access
/// to the current Word document etc.</param> /// to the current Word document etc.</param>
abstract public void Run(Formatter formatter); abstract public void Run(zaaReloaded2.Formatter.Formatter formatter);
} }
} }

View File

@ -20,16 +20,18 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Diagnostics;
using Microsoft.Office.Interop.Word; using Microsoft.Office.Interop.Word;
using zaaReloaded2.LabModel; using zaaReloaded2.LabModel;
using System.Diagnostics; using zaaReloaded2.Formatter;
namespace zaaReloaded2.Formatter.Elements namespace zaaReloaded2.Controller.Elements
{ {
/// <summary> /// <summary>
/// This formatting element is concerned with writing <see cref="LabItem"/>s /// This formatting element is concerned with writing <see cref="LabItem"/>s
/// to a Word document. /// to a Word document.
/// </summary> /// </summary>
[Serializable]
class Items : ElementBase class Items : ElementBase
{ {
#region ElementBase implementation #region ElementBase implementation
@ -39,7 +41,7 @@ namespace zaaReloaded2.Formatter.Elements
get { return Line; } get { return Line; }
} }
public override void Run(Formatter formatter) public override void Run(zaaReloaded2.Formatter.Formatter formatter)
{ {
bool _needComma = false; bool _needComma = false;

View File

@ -0,0 +1,56 @@
/* Settings.cs
* part of zaaReloaded2
*
* Copyright 2015 Daniel Kraus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using zaaReloaded2.Formatter;
using zaaReloaded2.Controller.Elements;
namespace zaaReloaded2.Controller
{
/// <summary>
/// Holds settings related to controlling laboratory output.
/// </summary>
[Serializable]
public class Settings
{
#region Properties
/// <summary>
/// Gets or sets the reference style.
/// </summary>
public ReferenceStyle ReferenceStyle { get; set; }
/// <summary>
/// Gets the list of controlling elements.
/// </summary>
public IList<ElementBase> Elements { get; private set; }
#endregion
#region Constructor
public Settings()
{
Elements = new List<ElementBase>();
}
#endregion
}
}

View File

@ -1,29 +0,0 @@
/* ElementsList.cs
* part of zaaReloaded2
*
* Copyright 2015 Daniel Kraus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace zaaReloaded2.Formatter.Elements
{
[Serializable]
class ElementsList : List<ElementBase>
{
}
}

View File

@ -19,37 +19,28 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using Microsoft.Office.Interop.Word;
using zaaReloaded2.Formatter.Elements;
using zaaReloaded2.LabModel;
using System.Diagnostics; using System.Diagnostics;
using Microsoft.Office.Interop.Word;
using zaaReloaded2.LabModel;
using zaaReloaded2.Controller;
using zaaReloaded2.Controller.Elements;
namespace zaaReloaded2.Formatter namespace zaaReloaded2.Formatter
{ {
/// <summary> /// <summary>
/// Formats and writes a <see cref="Laboratory"/> to a Word document. /// Formats and writes a <see cref="Laboratory"/> to a Word document.
/// </summary> /// </summary>
[Serializable] public class Formatter
class Formatter
{ {
#region Properties #region Properties
/// <summary> public Settings Settings { get; set; }
/// Gets a list of formatting elements (derived from
/// <see cref="ElementBase"/>).
/// </summary>
public ElementsList Elements { get; private set; }
/// <summary> /// <summary>
/// Gets the working Word document. /// Gets the working Word document.
/// </summary> /// </summary>
public Document Document { get; private set; } public Document Document { get; private set; }
/// <summary>
/// Gets or sets the style of the normal range reference.
/// </summary>
public ReferenceStyle ReferenceStyle { get; set; }
/// <summary> /// <summary>
/// Gets or sets the <see cref="Laboratory"/> that shall be /// Gets or sets the <see cref="Laboratory"/> that shall be
/// formatted. /// formatted.
@ -67,7 +58,8 @@ namespace zaaReloaded2.Formatter
_timePointFormatters = new TimePointFormatterDictionary(); _timePointFormatters = new TimePointFormatterDictionary();
foreach (TimePoint tp in _laboratory.TimePoints.Values) foreach (TimePoint tp in _laboratory.TimePoints.Values)
{ {
_timePointFormatters[tp.TimeStamp] = new TimePointFormatter(tp, ReferenceStyle); _timePointFormatters[tp.TimeStamp] =
new TimePointFormatter(tp, Settings.ReferenceStyle);
} }
} }
} }
@ -83,7 +75,7 @@ namespace zaaReloaded2.Formatter
public Formatter() public Formatter()
{ {
Elements = new ElementsList(); Settings = new Settings();
} }
public Formatter(Document document) public Formatter(Document document)
@ -104,7 +96,7 @@ namespace zaaReloaded2.Formatter
public void Run() public void Run()
{ {
WorkingTimePoints = _timePointFormatters; WorkingTimePoints = _timePointFormatters;
foreach (ElementBase element in Elements) foreach (ElementBase element in Settings.Elements)
{ {
element.Run(this); element.Run(this);
} }

View File

@ -163,8 +163,8 @@
can be found. can be found.
--> -->
<ItemGroup> <ItemGroup>
<Compile Include="Controller\Settings.cs" />
<Compile Include="Thesaurus\ThesaurusBase.cs" /> <Compile Include="Thesaurus\ThesaurusBase.cs" />
<Compile Include="Formatter\Elements\ElementsList.cs" />
<Compile Include="Formatter\IItemFormatterDictionary.cs" /> <Compile Include="Formatter\IItemFormatterDictionary.cs" />
<Compile Include="Formatter\ItemFormatter.cs" /> <Compile Include="Formatter\ItemFormatter.cs" />
<Compile Include="Formatter\ItemFormatterDictionary.cs" /> <Compile Include="Formatter\ItemFormatterDictionary.cs" />
@ -176,8 +176,8 @@
<Compile Include="Thesaurus\LineParser.cs" /> <Compile Include="Thesaurus\LineParser.cs" />
<Compile Include="Thesaurus\Parameters.cs" /> <Compile Include="Thesaurus\Parameters.cs" />
<Compile Include="Thesaurus\Units.cs" /> <Compile Include="Thesaurus\Units.cs" />
<Compile Include="Formatter\Elements\ElementBase.cs" /> <Compile Include="Controller\Elements\ElementBase.cs" />
<Compile Include="Formatter\Elements\Items.cs" /> <Compile Include="Controller\Elements\Items.cs" />
<Compile Include="Formatter\Formatter.cs" /> <Compile Include="Formatter\Formatter.cs" />
<Compile Include="Formatter\ReferenceStyle.cs" /> <Compile Include="Formatter\ReferenceStyle.cs" />
<Compile Include="Importer\IImporter.cs" /> <Compile Include="Importer\IImporter.cs" />