Add control elements for columns.
- NEU: Steuer-Elemente für Spalten.
This commit is contained in:
parent
5833e0fcb7
commit
a009c1ab39
@ -26,12 +26,23 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class ControlElementBase : ElementBase
|
public abstract class ControlElementBase : ElementBase
|
||||||
{
|
{
|
||||||
|
#region Propertis
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets a list of child elements, all of which must be derived
|
/// Gets a list of child elements, all of which must be derived
|
||||||
/// from FormatElementBase.
|
/// from FormatElementBase.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public IList<FormatElementBase> Children { get; internal set; }
|
public IList<FormatElementBase> Children { get; internal set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Informs whether this control element can have child elements.
|
||||||
|
/// </summary>
|
||||||
|
public virtual bool CanHaveChildren { get { return true; } }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Constructors
|
||||||
|
|
||||||
public ControlElementBase()
|
public ControlElementBase()
|
||||||
: this(new List<FormatElementBase>())
|
: this(new List<FormatElementBase>())
|
||||||
{ }
|
{ }
|
||||||
@ -45,6 +56,10 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
: this(new List<FormatElementBase>() { children })
|
: this(new List<FormatElementBase>() { children })
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Protected methods
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a clone of the Children list (for use in cloning
|
/// Creates a clone of the Children list (for use in cloning
|
||||||
/// derived classes).
|
/// derived classes).
|
||||||
@ -54,5 +69,7 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
{
|
{
|
||||||
return Children.Select(child => child.Clone() as FormatElementBase).ToList();
|
return Children.Select(child => child.Clone() as FormatElementBase).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,6 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
_content = value;
|
_content = value;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
54
zaaReloaded2/Controller/Elements/NextColumn.cs
Executable file
54
zaaReloaded2/Controller/Elements/NextColumn.cs
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
/* NextColumn.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.Controller.Elements
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Format element that causes a Formatter object to move the
|
||||||
|
/// insertion point to the next colum in a layout table.
|
||||||
|
/// </summary>
|
||||||
|
class NextColumn : ControlElementBase
|
||||||
|
{
|
||||||
|
public override string Label
|
||||||
|
{
|
||||||
|
get { return "Nächste Spalte"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool CanHaveChildren
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Run(Formatter.Formatter formatter)
|
||||||
|
{
|
||||||
|
formatter.NextColumn();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override ElementBase CreateInstance()
|
||||||
|
{
|
||||||
|
return new NextColumn();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
54
zaaReloaded2/Controller/Elements/TwoColumns.cs
Executable file
54
zaaReloaded2/Controller/Elements/TwoColumns.cs
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
/* TwoColumns.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.Controller.Elements
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Format element that causes a Formatter object to insert a table with
|
||||||
|
/// two columns and one row into the documents.
|
||||||
|
/// </summary>
|
||||||
|
class TwoColumns : ControlElementBase
|
||||||
|
{
|
||||||
|
public override string Label
|
||||||
|
{
|
||||||
|
get { return "Zwei Spalten einfügen"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool CanHaveChildren
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Run(Formatter.Formatter formatter)
|
||||||
|
{
|
||||||
|
formatter.InsertTwoColumns();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override ElementBase CreateInstance()
|
||||||
|
{
|
||||||
|
return new TwoColumns();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -89,6 +89,7 @@ namespace zaaReloaded2.Controller
|
|||||||
{
|
{
|
||||||
return SettingsList.FirstOrDefault(s => s.Uid == uid);
|
return SettingsList.FirstOrDefault(s => s.Uid == uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Private methods
|
#region Private methods
|
||||||
@ -127,7 +128,9 @@ namespace zaaReloaded2.Controller
|
|||||||
def.SettingsNameWard,
|
def.SettingsNameWard,
|
||||||
new List<ElementBase>()
|
new List<ElementBase>()
|
||||||
{
|
{
|
||||||
|
new TwoColumns(),
|
||||||
new SelectFirstDay(defaultItems),
|
new SelectFirstDay(defaultItems),
|
||||||
|
new NextColumn(),
|
||||||
new SelectLastDay(defaultItems)
|
new SelectLastDay(defaultItems)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -119,13 +119,14 @@ namespace zaaReloaded2.Formatter
|
|||||||
|
|
||||||
if (Document != null)
|
if (Document != null)
|
||||||
{
|
{
|
||||||
Document.ActiveWindow.Selection.ClearCharacterDirectFormatting();
|
Selection s = Document.ActiveWindow.Selection;
|
||||||
Document.ActiveWindow.Selection.ClearParagraphDirectFormatting();
|
s.ClearCharacterDirectFormatting();
|
||||||
|
s.ClearParagraphDirectFormatting();
|
||||||
if (!string.IsNullOrEmpty(ParagraphStyle))
|
if (!string.IsNullOrEmpty(ParagraphStyle))
|
||||||
{
|
{
|
||||||
Document.ActiveWindow.Selection.set_Style(ParagraphStyle);
|
s.set_Style(ParagraphStyle);
|
||||||
}
|
}
|
||||||
Document.ActiveWindow.Selection.Range.Text = _buffer.ToString();
|
s.Range.Text = _buffer.ToString();
|
||||||
}
|
}
|
||||||
if (Parent != null)
|
if (Parent != null)
|
||||||
{
|
{
|
||||||
|
@ -121,6 +121,8 @@ namespace zaaReloaded2.Formatter
|
|||||||
{
|
{
|
||||||
if (!CanRun) throw new InvalidOperationException("No laboratory data to format.");
|
if (!CanRun) throw new InvalidOperationException("No laboratory data to format.");
|
||||||
|
|
||||||
|
CreateParagraphStyle();
|
||||||
|
_secondaryBuffer.ParagraphStyle = zaaReloaded2.Properties.Settings.Default.ParagraphStyleName;
|
||||||
int current = 0;
|
int current = 0;
|
||||||
while (current < Settings.Elements.Count)
|
while (current < Settings.Elements.Count)
|
||||||
{
|
{
|
||||||
@ -145,8 +147,6 @@ namespace zaaReloaded2.Formatter
|
|||||||
current++;
|
current++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CreateParagraphStyle();
|
|
||||||
_secondaryBuffer.ParagraphStyle = zaaReloaded2.Properties.Settings.Default.ParagraphStyleName;
|
|
||||||
_secondaryBuffer.Flush();
|
_secondaryBuffer.Flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,6 +208,39 @@ namespace zaaReloaded2.Formatter
|
|||||||
ProcessAllTimePoints(controlElement.Children);
|
ProcessAllTimePoints(controlElement.Children);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Inserts a table with two columns into the document.
|
||||||
|
/// </summary>
|
||||||
|
public void InsertTwoColumns()
|
||||||
|
{
|
||||||
|
_secondaryBuffer.Flush();
|
||||||
|
if (Document != null)
|
||||||
|
{
|
||||||
|
Range r = Document.ActiveWindow.Selection.Range;
|
||||||
|
_table = Document.Tables.Add(r, NumRows: 1, NumColumns: 2);
|
||||||
|
_table.AllowAutoFit = true;
|
||||||
|
_table.AutoFitBehavior(WdAutoFitBehavior.wdAutoFitWindow);
|
||||||
|
_table.PreferredWidthType = WdPreferredWidthType.wdPreferredWidthPercent;
|
||||||
|
_table.PreferredWidth = 100;
|
||||||
|
_table.Borders.Enable = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Moves the insertion point to the next column in a layout
|
||||||
|
/// table.
|
||||||
|
/// </summary>
|
||||||
|
public void NextColumn()
|
||||||
|
{
|
||||||
|
if (_table == null)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException(
|
||||||
|
"Kann nicht zur nächsten Spalte wechseln, da bislang keine Tabelle eingefügt wurde.");
|
||||||
|
}
|
||||||
|
_secondaryBuffer.Flush();
|
||||||
|
Document.ActiveWindow.Selection.MoveRight(WdUnits.wdCell);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a zaaReloaded2 paragraph style in the document.
|
/// Creates a zaaReloaded2 paragraph style in the document.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -324,6 +357,7 @@ namespace zaaReloaded2.Formatter
|
|||||||
Laboratory _laboratory;
|
Laboratory _laboratory;
|
||||||
DocumentWriter _primaryBuffer;
|
DocumentWriter _primaryBuffer;
|
||||||
DocumentWriter _secondaryBuffer;
|
DocumentWriter _secondaryBuffer;
|
||||||
|
Table _table;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,18 @@ namespace zaaReloaded2.ViewModels
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public ObservableCollection<ElementViewModel> Elements { get; protected set; }
|
public ObservableCollection<ElementViewModel> Elements { get; protected set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets information whether this control element view model can
|
||||||
|
/// have child elements;
|
||||||
|
/// </summary>
|
||||||
|
public virtual bool CanHaveChildren
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return ((ControlElementBase)Element).CanHaveChildren;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Constructors
|
#region Constructors
|
||||||
|
@ -105,7 +105,9 @@ namespace zaaReloaded2.ViewModels
|
|||||||
{
|
{
|
||||||
CreateControlElementViewModel(new SelectFirstDay()),
|
CreateControlElementViewModel(new SelectFirstDay()),
|
||||||
CreateControlElementViewModel(new SelectLastDay()),
|
CreateControlElementViewModel(new SelectLastDay()),
|
||||||
CreateControlElementViewModel(new SelectEachDay())
|
CreateControlElementViewModel(new SelectEachDay()),
|
||||||
|
CreateControlElementViewModel(new TwoColumns()),
|
||||||
|
CreateControlElementViewModel(new NextColumn()),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -130,7 +132,9 @@ namespace zaaReloaded2.ViewModels
|
|||||||
{
|
{
|
||||||
CreateControlElementViewModel(new SelectFirstDay(), copyFromViewModel),
|
CreateControlElementViewModel(new SelectFirstDay(), copyFromViewModel),
|
||||||
CreateControlElementViewModel(new SelectLastDay(), copyFromViewModel),
|
CreateControlElementViewModel(new SelectLastDay(), copyFromViewModel),
|
||||||
CreateControlElementViewModel(new SelectEachDay(), copyFromViewModel)
|
CreateControlElementViewModel(new SelectEachDay(), copyFromViewModel),
|
||||||
|
CreateControlElementViewModel(new TwoColumns()),
|
||||||
|
CreateControlElementViewModel(new NextColumn()),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -30,23 +30,11 @@ namespace zaaReloaded2.ViewModels
|
|||||||
{
|
{
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the label of the wrapped element.
|
|
||||||
/// </summary>
|
|
||||||
public virtual string Label
|
|
||||||
{
|
|
||||||
[DebuggerStepThrough]
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return Element.Label;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string DisplayString
|
public override string DisplayString
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return Label;
|
return Element.Label;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,25 +89,6 @@ namespace zaaReloaded2.ViewModels
|
|||||||
return clone;
|
return clone;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string DisplayString
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (String.IsNullOrEmpty(Content))
|
|
||||||
{
|
|
||||||
return _displayString;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return base.DisplayString;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
_displayString = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Private methods
|
#region Private methods
|
||||||
|
@ -345,7 +345,8 @@ namespace zaaReloaded2.ViewModels
|
|||||||
|
|
||||||
bool CanAddChildElement()
|
bool CanAddChildElement()
|
||||||
{
|
{
|
||||||
return LastSelectedElement is ControlElementViewModel;
|
return LastSelectedElement is ControlElementViewModel &&
|
||||||
|
((ControlElementViewModel)LastSelectedElement).CanHaveChildren;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoEditElement()
|
void DoEditElement()
|
||||||
|
@ -193,10 +193,12 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Controller\Elements\ControlElementBase.cs" />
|
<Compile Include="Controller\Elements\ControlElementBase.cs" />
|
||||||
<Compile Include="Controller\Elements\FormatElementBase.cs" />
|
<Compile Include="Controller\Elements\FormatElementBase.cs" />
|
||||||
|
<Compile Include="Controller\Elements\NextColumn.cs" />
|
||||||
<Compile Include="Controller\Elements\SelectEachDay.cs" />
|
<Compile Include="Controller\Elements\SelectEachDay.cs" />
|
||||||
<Compile Include="Controller\Elements\SelectLastDay.cs" />
|
<Compile Include="Controller\Elements\SelectLastDay.cs" />
|
||||||
<Compile Include="Controller\Elements\SelectFirstDay.cs" />
|
<Compile Include="Controller\Elements\SelectFirstDay.cs" />
|
||||||
<Compile Include="Controller\Elements\CustomText.cs" />
|
<Compile Include="Controller\Elements\CustomText.cs" />
|
||||||
|
<Compile Include="Controller\Elements\TwoColumns.cs" />
|
||||||
<Compile Include="Controller\Settings.cs" />
|
<Compile Include="Controller\Settings.cs" />
|
||||||
<Compile Include="Controller\SettingsRepository.cs" />
|
<Compile Include="Controller\SettingsRepository.cs" />
|
||||||
<Compile Include="Demo\Demo.cs" />
|
<Compile Include="Demo\Demo.cs" />
|
||||||
|
Loading…
Reference in New Issue
Block a user