Compare commits
31 Commits
v2.0.0-alp
...
v2.0.0-alp
Author | SHA1 | Date | |
---|---|---|---|
34006ba1e9 | |||
204139d16b | |||
41b155e8be | |||
b6209731ec | |||
a128b76522 | |||
805da69d47 | |||
8437f0907c | |||
db8f88c563 | |||
14b09f89c5 | |||
305baf2402 | |||
e4edd0f197 | |||
23acb13019 | |||
1e4c3681f2 | |||
9fd0907310 | |||
286ddb1641 | |||
d0be7524d3 | |||
5197c294b9 | |||
088422b8a1 | |||
09b3decd03 | |||
12cd58180f | |||
a725246f27 | |||
f2e75b1abe | |||
4bae35b665 | |||
4d614e0be5 | |||
4ca9e21e80 | |||
cf1b75e6a0 | |||
6a9b5010a1 | |||
28b31533c7 | |||
edd81457cf | |||
81619edcb1 | |||
b4f3d81336 |
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "www/PHPMailer"]
|
||||
path = www/PHPMailer
|
||||
url = git@github.com:PHPMailer/PHPMailer.git
|
30
HISTORY.md
30
HISTORY.md
@ -1,6 +1,32 @@
|
||||
Unpublished changes (2015-06-19)
|
||||
Version 2.0.0-alpha.5 (2015-08-04)
|
||||
========================================================================
|
||||
|
||||
|
||||
- FIX: Daniels Spezial löscht nicht mehr die Unterschriften.
|
||||
- NEU: Eingebautes Demo-Dokument zum Ausprobieren.
|
||||
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
|
||||
|
||||
|
||||
Version 2.0.0-alpha.3 (2015-07-31)
|
||||
========================================================================
|
||||
|
||||
- FIX: Beim Start wird jetzt nach Updates gesucht.
|
||||
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
|
||||
|
||||
Version 2.0.0-alpha.2 (2015-07-28)
|
||||
========================================================================
|
||||
|
||||
- NEU: Fehlerbehandlung und Fehlerberichte.
|
||||
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
|
||||
|
||||
Version 2.0.0-alpha.1 (2015-07-27)
|
||||
========================================================================
|
||||
|
||||
- NEW: First release of version 2 series.
|
||||
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
|
@ -49,12 +49,12 @@ namespace Tests.Controller
|
||||
Settings s = new Settings();
|
||||
string testName = "test";
|
||||
s.Name = testName;
|
||||
sr.Settings.Add(s);
|
||||
sr.SettingsList.Add(s);
|
||||
sr.Store();
|
||||
sr = null;
|
||||
sr = SettingsRepository.Load();
|
||||
Assert.AreEqual(1, sr.Settings.Count);
|
||||
Assert.AreEqual(testName, sr.Settings[0].Name);
|
||||
Assert.AreEqual(1, sr.SettingsList.Count);
|
||||
Assert.AreEqual(testName, sr.SettingsList[0].Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -41,6 +41,10 @@
|
||||
<AssemblyOriginatorKeyFile>zaaReloaded2.pfx</AssemblyOriginatorKeyFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Bovender, Version=0.2.0.0, Culture=neutral, PublicKeyToken=df1c15557d8b6df8, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Bovender.0.2.0.0\lib\net40\Bovender.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Office.Interop.Word, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</Reference>
|
||||
@ -48,10 +52,18 @@
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Expression.Blend.Sdk.1.0.2\lib\net40-client\System.Windows.Interactivity.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<Choose>
|
||||
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
|
||||
@ -79,6 +91,9 @@
|
||||
<Compile Include="Thesaurus\TestThesaurus.cs" />
|
||||
<Compile Include="Importer\ZaaImporter\TimePointTest.cs" />
|
||||
<Compile Include="TestHelpers.cs" />
|
||||
<Compile Include="ViewModels\ElementPickerViewModelTest.cs" />
|
||||
<Compile Include="ViewModels\SettingsRepositoryViewModelTest.cs" />
|
||||
<Compile Include="ViewModels\SettingsViewModelTest.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
|
54
Tests/ViewModels/ElementPickerViewModelTest.cs
Executable file
54
Tests/ViewModels/ElementPickerViewModelTest.cs
Executable file
@ -0,0 +1,54 @@
|
||||
/* ElementPickerViewModelTest.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 NUnit.Framework;
|
||||
using Bovender.Mvvm.ViewModels;
|
||||
using zaaReloaded2.ViewModels;
|
||||
|
||||
namespace Tests.ViewModels
|
||||
{
|
||||
[TestFixture]
|
||||
class ElementPickerViewModelTest
|
||||
{
|
||||
[Test]
|
||||
public void ChooseElement()
|
||||
{
|
||||
ElementPickerViewModel vm = new ElementPickerViewModel(true);
|
||||
ViewModelBase elementVM = vm.Categories.First().Children.First();
|
||||
elementVM.IsSelected = true;
|
||||
string expectedLabel = elementVM.DisplayString;
|
||||
|
||||
Assert.IsTrue(vm.ChooseElementCommand.CanExecute(null),
|
||||
"Cannot execute ChooseElementCommand");
|
||||
|
||||
bool messageSent = false;
|
||||
vm.ElementChosenMessage.Sent += (sender, args) =>
|
||||
{
|
||||
messageSent = true;
|
||||
ViewModelBase messageContentVM = args.Content.ViewModel as ViewModelBase;
|
||||
Assert.AreEqual(expectedLabel, messageContentVM.DisplayString);
|
||||
};
|
||||
|
||||
vm.ChooseElementCommand.Execute(null);
|
||||
Assert.IsTrue(messageSent, "No message was sent when element was chosen");
|
||||
}
|
||||
}
|
||||
}
|
72
Tests/ViewModels/SettingsRepositoryViewModelTest.cs
Executable file
72
Tests/ViewModels/SettingsRepositoryViewModelTest.cs
Executable file
@ -0,0 +1,72 @@
|
||||
/* SettingsRepositoryViewModel.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 NUnit.Framework;
|
||||
using zaaReloaded2.Controller;
|
||||
using zaaReloaded2.ViewModels;
|
||||
|
||||
namespace Tests.ViewModels
|
||||
{
|
||||
[TestFixture]
|
||||
class SettingsRepositoryViewModelTest
|
||||
{
|
||||
SettingsRepositoryViewModel _vm;
|
||||
const string TESTNAME = "hello world";
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
SettingsRepository rep = new SettingsRepository();
|
||||
rep.SettingsList.Add(new Settings(TESTNAME));
|
||||
_vm = new SettingsRepositoryViewModel(rep);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CanDeleteNonDefaultSettings()
|
||||
{
|
||||
_vm.SettingsList[_vm.SettingsList.Count - 1].IsSelected = true;
|
||||
Assert.IsTrue(_vm.DeleteSettingsCommand.CanExecute(null));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CannotDeleteDefaultSettings()
|
||||
{
|
||||
_vm.SettingsList[0].IsSelected = true;
|
||||
Assert.IsFalse(_vm.DeleteSettingsCommand.CanExecute(null));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CopySettings()
|
||||
{
|
||||
SettingsViewModel orig = _vm.SettingsList[0];
|
||||
orig.IsSelected = true;
|
||||
_vm.CopySettingsCommand.Execute(null);
|
||||
SettingsViewModel copy = _vm.SettingsList[_vm.SettingsList.Count-1];
|
||||
|
||||
// Make sure we have a new object
|
||||
Assert.AreNotSame(orig, copy);
|
||||
Assert.AreNotSame(orig.RevealModelObject(), copy.RevealModelObject());
|
||||
|
||||
Assert.AreEqual(String.Format("Kopie von {0}", orig.Name), copy.Name);
|
||||
Assert.IsTrue(copy.IsSelected);
|
||||
}
|
||||
}
|
||||
}
|
118
Tests/ViewModels/SettingsViewModelTest.cs
Executable file
118
Tests/ViewModels/SettingsViewModelTest.cs
Executable file
@ -0,0 +1,118 @@
|
||||
/* SettingsViewModelTest.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 NUnit.Framework;
|
||||
using zaaReloaded2.ViewModels;
|
||||
using zaaReloaded2.Controller;
|
||||
using zaaReloaded2.Controller.Elements;
|
||||
|
||||
namespace Tests.ViewModels
|
||||
{
|
||||
[TestFixture]
|
||||
class SettingsViewModelTest
|
||||
{
|
||||
SettingsViewModel _settingsVM;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_settingsVM = new SettingsViewModel();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void AddElement()
|
||||
{
|
||||
bool messageSent = false;
|
||||
Settings model = _settingsVM.RevealModelObject() as Settings;
|
||||
int oldViewModelElementCount = _settingsVM.Elements.Count;
|
||||
int oldModelElementCount = model.Elements.Count;
|
||||
_settingsVM.AddElementMessage.Sent += (sender, args) =>
|
||||
{
|
||||
messageSent = true;
|
||||
ElementPickerViewModel picker = args.Content.ViewModel as ElementPickerViewModel;
|
||||
Assert.IsNotNull(picker, "ViewModel in MessageContent is not an ElementPickerViewModel");
|
||||
picker.Categories.First().Children.First().IsSelected = true;
|
||||
picker.ChooseElementCommand.Execute(null);
|
||||
};
|
||||
_settingsVM.AddElementCommand.Execute(null);
|
||||
Assert.IsTrue(messageSent, "Message was not sent");
|
||||
Assert.AreEqual(oldViewModelElementCount + 1, _settingsVM.Elements.Count,
|
||||
"Count of elements in ViewModel was not increased by 1");
|
||||
Assert.AreEqual(oldModelElementCount + 1, model.Elements.Count,
|
||||
"Count of elements in settings Model was not increased by 1");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void AddChildElement()
|
||||
{
|
||||
bool messageSent = false;
|
||||
SelectEachDay model = new SelectEachDay();
|
||||
ControlElementViewModel viewModel = new ControlElementViewModel(model);
|
||||
_settingsVM.AddElementViewModel(viewModel);
|
||||
viewModel.IsSelected = true;
|
||||
int oldViewModelChildrenCount = viewModel.Elements.Count;
|
||||
int oldModelChildrenCount = model.FormatElements.Count;
|
||||
_settingsVM.AddChildElementMessage.Sent += (sender, args) =>
|
||||
{
|
||||
messageSent = true;
|
||||
ElementPickerViewModel picker = args.Content.ViewModel as ElementPickerViewModel;
|
||||
Assert.IsNotNull(picker, "ViewModel in MessageContent is not an ElementPickerViewModel");
|
||||
picker.Categories.First().Children.First().IsSelected = true;
|
||||
Assert.IsTrue(picker.ChooseElementCommand.CanExecute(null),
|
||||
"Cannot execute element picker's ChooseElementCommand.");
|
||||
picker.ChooseElementCommand.Execute(null);
|
||||
};
|
||||
_settingsVM.AddChildElementCommand.Execute(null);
|
||||
Assert.IsTrue(messageSent, "Message was not sent");
|
||||
Assert.AreEqual(oldViewModelChildrenCount + 1, viewModel.Elements.Count,
|
||||
"Count of children in ViewModel was not increased by 1");
|
||||
Assert.AreEqual(oldModelChildrenCount + 1, model.FormatElements.Count,
|
||||
"Count of children in Model was not increased by 1");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CannotAddChildElementToFormatElement()
|
||||
{
|
||||
ControlElementViewModel parent = new ControlElementViewModel(
|
||||
new SelectFirstDay());
|
||||
_settingsVM.AddElementViewModel(parent);
|
||||
parent.IsSelected = true;
|
||||
Assert.IsTrue(_settingsVM.AddChildElementCommand.CanExecute(null));
|
||||
FormatElementViewModel child = new FormatElementViewModel(new Items());
|
||||
_settingsVM.AddChildElementViewModel(parent, child);
|
||||
parent.IsSelected = false;
|
||||
child.IsSelected = true;
|
||||
Assert.IsFalse(_settingsVM.AddChildElementCommand.CanExecute(null));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DeleteElement()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CopyElement()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,4 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Bovender" version="0.2.0.0" targetFramework="net40" />
|
||||
<package id="Expression.Blend.Sdk" version="1.0.2" targetFramework="net40" />
|
||||
<package id="NUnit" version="2.6.4" targetFramework="net40" />
|
||||
</packages>
|
BIN
gimp/d.xcf
Normal file
BIN
gimp/d.xcf
Normal file
Binary file not shown.
BIN
gimp/dk.xcf
Normal file
BIN
gimp/dk.xcf
Normal file
Binary file not shown.
BIN
gimp/fff.xcf
Normal file
BIN
gimp/fff.xcf
Normal file
Binary file not shown.
@ -1,345 +1,120 @@
|
||||
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff41\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1031\deflangfe1031\themelang1031\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f40\fbidi \fswiss\fcharset128\fprq2{\*\panose 00000000000000000000}Liberation Sans{\*\falt Arial};}{\f41\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0502040204020203}Segoe UI;}
|
||||
{\f43\fbidi \fswiss\fcharset128\fprq2{\*\panose 00000000000000000000}@Liberation Sans;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}
|
||||
{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
|
||||
{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f414\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f415\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}
|
||||
{\f417\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f418\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f421\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f422\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}
|
||||
{\f454\fbidi \fswiss\fcharset238\fprq2 Segoe UI CE;}{\f455\fbidi \fswiss\fcharset204\fprq2 Segoe UI Cyr;}{\f457\fbidi \fswiss\fcharset161\fprq2 Segoe UI Greek;}{\f458\fbidi \fswiss\fcharset162\fprq2 Segoe UI Tur;}
|
||||
{\f460\fbidi \fswiss\fcharset178\fprq2 Segoe UI (Arabic);}{\f461\fbidi \fswiss\fcharset186\fprq2 Segoe UI Baltic;}{\f462\fbidi \fswiss\fcharset163\fprq2 Segoe UI (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
||||
{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
|
||||
{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
||||
{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
|
||||
{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
|
||||
{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
|
||||
{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
|
||||
\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp
|
||||
\fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{
|
||||
\ql \li0\ri0\sa170\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af41\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\f41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 \snext0 \sqformat \spriority0 Normal;}{\*
|
||||
\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
|
||||
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
|
||||
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 \snext11 \ssemihidden \sunhideused
|
||||
Normal Table;}{\*\cs15 \additive \ul\cf9\lang255\langfe255\langnp255\langfenp255\ulc1 Internet Link;}{\s16\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af40\afs28\alang1081 \ltrch\fcs0
|
||||
\fs28\cf1\lang1031\langfe1031\kerning1\loch\f40\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 \sbasedon0 \snext17 Heading;}{\s17\ql \li0\ri0\sa140\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af41\afs22\alang1081
|
||||
\ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\f41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 \sbasedon0 \snext17 Text Body;}{\s18\ql \li0\ri0\sa140\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1
|
||||
\af40\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\f40\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 \sbasedon17 \snext18 List;}{\s19\ql \li0\ri0\sb120\sa120\nowidctlpar\noline\wrapdefault\faauto\rin0\lin0\itap0
|
||||
\rtlch\fcs1 \ai\af40\afs20\alang1081 \ltrch\fcs0 \i\fs20\cf1\lang1031\langfe1031\kerning1\loch\f40\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 \sbasedon0 \snext19 \sqformat caption;}{
|
||||
\s20\ql \li0\ri0\sa170\nowidctlpar\noline\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af40\afs20\alang1081 \ltrch\fcs0 \fs20\cf1\lang1031\langfe1031\kerning1\loch\f40\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 \sbasedon0 \snext20 Index;}}
|
||||
{\*\rsidtbl \rsid4605650\rsid15302586}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Daniel Kraus}{\operator Daniel Kraus}{\creatim\yr2015\mo1\dy28\hr17\min3}
|
||||
{\revtim\yr2015\mo1\dy28\hr17\min5}{\version2}{\edmins0}{\nofpages3}{\nofwords1381}{\nofchars8701}{\nofcharsws10062}{\vern49247}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
|
||||
\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect
|
||||
\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\formshade\horzdoc\dghspace120\dgvspace120
|
||||
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale150\rsidroot4605650 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0{\*\ftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1
|
||||
\af41\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\af41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\cf0\kerning0\loch\af40\dbch\af40\insrsid15302586
|
||||
\par }}{\*\ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af41\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\af41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 {
|
||||
\rtlch\fcs1 \af41 \ltrch\fcs0 \insrsid15302586 \chftnsepc
|
||||
\par }}{\*\aftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af41\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\af41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 {
|
||||
\rtlch\fcs1 \af41 \ltrch\fcs0 \insrsid15302586 \chftnsep
|
||||
\par }}{\*\aftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af41\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\af41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 {
|
||||
\rtlch\fcs1 \af41 \ltrch\fcs0 \insrsid15302586 \chftnsepc
|
||||
\par }}\ltrpar \sectd \ltrsect\sbknone\linex0\sectunlocked1\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang
|
||||
{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7
|
||||
\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar
|
||||
\qj \li0\ri0\sa40\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4605650 \rtlch\fcs1 \af41\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\af41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1
|
||||
\ai\af41\afs18 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Daniel}{\rtlch\fcs1 \ai\af41\afs18 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\loch\af41\dbch\af0\hich\f31506 \rquote }{\rtlch\fcs1 \ai\af41\afs18 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 s XL Toolbox NG is distributed under the A
|
||||
\hich\af31506\dbch\af0\loch\f41 pache License, Version 2.0, which allows you to use this add-in free of charge in any environment (e.g., academic or commercial), but does not give any warranty. Please see the license text below for details.}{\rtlch\fcs1
|
||||
\af41 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 The add-in contains code whose copyright is own\hich\af31506\dbch\af0\loch\f41 ed by others:}{\rtlch\fcs1
|
||||
\af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
DLLs from the Visual Studio Tools for Office runtime and the Expression Blend software development kit (SDK) are }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\loch\af41\dbch\af0\hich\f31506 \'a9}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 copyright Microsoft Corporation.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 The FreeImage library is }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'a9}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
copyright Herv}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'e9}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Drolon and others and is used under the FreeImage P\hich\af31506\dbch\af0\loch\f41
|
||||
ublic License (FIPL). The source code of the FreeImage library is available at }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
HYPERLINK "http://freeimage.sf.net" }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \insrsid4605650 {\*\datafield
|
||||
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4a00000068007400740070003a002f002f00660072006500650069006d006100670065002e00730066002e006e00650074002f000000795881f43b1d7f48af2c825dc485276300000000a5ab0000}}}{\fldrslt {
|
||||
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\ul\cf9\lang255\langfe255\langnp255\langfenp255\ulc1\insrsid15302586 \hich\af31506\dbch\af0\loch\f41 http://freeimage.sf.net}}}\sectd \ltrsect\sbknone\linex0\sectunlocked1\sectdefaultcl\sftnbj {\rtlch\fcs1
|
||||
\af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 and in the XL Toolbox code repository at }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 HYPERLINK "http://sf.net/p/xltoolbox/ng-code" }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \insrsid4605650 {\*\datafield
|
||||
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5c00000068007400740070003a002f002f00730066002e006e00650074002f0070002f0078006c0074006f006f006c0062006f0078002f006e0067002d0063006f00640065000000795881f43b1d7f48af2c825dc485
|
||||
276300000000a5ab0000}}}{\fldrslt {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\ul\cf9\lang255\langfe255\langnp255\langfenp255\ulc1\insrsid15302586 \hich\af31506\dbch\af0\loch\f41 http://sf.net/p/xltoolbox/n\hich\af31506\dbch\af0\loch\f41 g-code}}}
|
||||
\sectd \ltrsect\sbknone\linex0\sectunlocked1\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 .}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid4605650 \hich\af31506\dbch\af0\loch\f41 The LittleCMS2 library is }{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0
|
||||
\i\fs18\lang1033\langfe1031\langnp1033\insrsid4605650\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'a9}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid4605650\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 copyright
|
||||
}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid4605650 \hich\af31506\dbch\af0\loch\f41 }{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid4605650\charrsid4605650
|
||||
\hich\af31506\dbch\af0\loch\f41 Marti Maria Saguer}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid4605650 \hich\af31506\dbch\af0\loch\f41 and is used under the MIT license.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\lang1033\langfe1031\langnp1033\insrsid4605650\charrsid4605650
|
||||
\par }\pard \ltrpar\qc \li0\ri0\sa40\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4605650 {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \emdash \emdash
|
||||
\emdash \emdash \emdash }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Apache License}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \line }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Version 2.0, January 2004}{
|
||||
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 HYPERLINK "http://www.apache.org/licenses/" }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\insrsid4605650 {\*\datafield
|
||||
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5800000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f000000795881f43b1d7f48af2c825dc48527630000
|
||||
0000a5ab0000}}}{\fldrslt {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\ul\cf9\lang255\langfe255\langnp255\langfenp255\ulc1\insrsid15302586 \hich\af31506\dbch\af0\loch\f41 http://www.apache.org/licenses/}}}\sectd \ltrsect
|
||||
\sbknone\linex0\sectunlocked1\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }\pard \ltrpar\qj \li0\ri0\sa40\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4605650 {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 1. Definitions}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 .}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 License}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}
|
||||
{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 shall mean the terms and conditi\hich\af31506\dbch\af0\loch\f41
|
||||
ons for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Licensor}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94
|
||||
}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.}{
|
||||
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Legal Entity}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506
|
||||
\'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 shall mean the union of the \hich\af31506\dbch\af0\loch\f41
|
||||
acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 control}
|
||||
{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\hich\af31506\dbch\af0\loch\f41 means (i) the power, direct or indirect, to cause the direction or management of such entity,\hich\af31506\dbch\af0\loch\f41
|
||||
whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 You}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{
|
||||
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 (or }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Your}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
) shall mean an individual or Legal Entity exercising permissions granted by this L\hich\af31506\dbch\af0\loch\f41 icense.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Source}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{
|
||||
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Object}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{
|
||||
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 form shall mean any form resulting from mechanical transformation or tr\hich\af31506\dbch\af0\loch\f41
|
||||
anslation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Work}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{
|
||||
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).}{\rtlch\fcs1
|
||||
\af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Derivative Works}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 shall \hich\af31506\dbch\af0\loch\f41
|
||||
mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes o
|
||||
\hich\af31506\dbch\af0\loch\f41 f\hich\af31506\dbch\af0\loch\f41 this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.}{
|
||||
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Contribution}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506
|
||||
\'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 shall mean any work of authorship, including the original versi\hich\af31506\dbch\af0\loch\f41
|
||||
on of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of
|
||||
\hich\af31506\dbch\af0\loch\f41 t\hich\af31506\dbch\af0\loch\f41 he copyright owner. For the purposes of this definition, }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 submitted}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source \hich\af31506\dbch\af0\loch\f41
|
||||
code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the co
|
||||
\hich\af31506\dbch\af0\loch\f41 p\hich\af31506\dbch\af0\loch\f41 yright owner as }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1
|
||||
\af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Not a Contribution.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Contributor}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506
|
||||
\'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 2. Grant of Copyright License}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicl
|
||||
\hich\af31506\dbch\af0\loch\f41 y\hich\af31506\dbch\af0\loch\f41 perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 3. Grant of Patent License}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 . Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
|
||||
\hich\af31506\dbch\af0\loch\f41
|
||||
no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contrib
|
||||
\hich\af31506\dbch\af0\loch\f41 u\hich\af31506\dbch\af0\loch\f41
|
||||
tor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or count
|
||||
\hich\af31506\dbch\af0\loch\f41 e\hich\af31506\dbch\af0\loch\f41
|
||||
rclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such
|
||||
\hich\af31506\dbch\af0\loch\f41 \hich\af31506\dbch\af0\loch\f41 litigation is filed.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 4. Redistribution}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }\pard \ltrpar\qj \fi-360\li360\ri0\sa40\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid4605650 {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 1.\tab
|
||||
You must\hich\af31506\dbch\af0\loch\f41 give any other recipients of the Work or Derivative Works a copy of this License; and}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 2.\tab You must cause any modified files to carry prominent notices stating that You changed the files; and}{
|
||||
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 3.\tab You must retain, in the Source form of any Derivative Works th\hich\af31506\dbch\af0\loch\f41
|
||||
at You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 4.\tab If the Work includes a }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 NOTICE}{
|
||||
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\hich\af31506\dbch\af0\loch\f41 text file as part of its \hich\af31506\dbch\af0\loch\f41
|
||||
distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the
|
||||
\hich\af31506\dbch\af0\loch\f41 f\hich\af31506\dbch\af0\loch\f41
|
||||
ollowing places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such thir
|
||||
\hich\af31506\dbch\af0\loch\f41 d\hich\af31506\dbch\af0\loch\f41
|
||||
-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOT
|
||||
\hich\af31506\dbch\af0\loch\f41 I\hich\af31506\dbch\af0\loch\f41 CE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.\line \line
|
||||
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions fo\hich\af31506\dbch\af0\loch\f41 r\hich\af31506\dbch\af0\loch\f41
|
||||
use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.}{\rtlch\fcs1
|
||||
\af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }\pard \ltrpar\qj \li0\ri0\sa40\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4605650 {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
5. Submission of Contributi\hich\af31506\dbch\af0\loch\f41 ons}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the a
|
||||
\hich\af31506\dbch\af0\loch\f41 bove, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 6. Trademarks}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 . This License does not grant permission to use the trade names, trademarks, service m\hich\af31506\dbch\af0\loch\f41
|
||||
arks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 7. Disclaimer of Warranty}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 . Unless required by applicable law or agreed to in wr\hich\af31506\dbch\af0\loch\f41
|
||||
iting, Licensor provides the Work (and each Contributor provides its Contributions) on an }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1
|
||||
\af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 AS IS}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFR\hich\af31506\dbch\af0\loch\f41
|
||||
INGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.}{
|
||||
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 8. Limi\hich\af31506\dbch\af0\loch\f41 tation of Liability}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||
. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be
|
||||
\hich\af31506\dbch\af0\loch\f41
|
||||
liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of
|
||||
\hich\af31506\dbch\af0\loch\f41 g\hich\af31506\dbch\af0\loch\f41 oodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.}{
|
||||
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 9. Accepting Warranty or Additional Liability}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 . While redistributing t\hich\af31506\dbch\af0\loch\f41
|
||||
he Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act
|
||||
\hich\af31506\dbch\af0\loch\f41 o\hich\af31506\dbch\af0\loch\f41
|
||||
nly on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by r
|
||||
\hich\af31506\dbch\af0\loch\f41 e\hich\af31506\dbch\af0\loch\f41 ason of your accepting any such warranty or additional liability.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||
\par }\pard \ltrpar\qc \li0\ri0\sa40\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4605650 {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\insrsid15302586 \loch\af41\dbch\af0\hich\f31506 \emdash \emdash \emdash \emdash \emdash }{\rtlch\fcs1
|
||||
\af31507\afs24 \ltrch\fcs0 \insrsid15302586
|
||||
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
|
||||
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
|
||||
5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
|
||||
b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
|
||||
0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
|
||||
a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
|
||||
c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
|
||||
0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
|
||||
a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
|
||||
6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
|
||||
4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
|
||||
4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210060ffbff5a4060000a21b0000160000007468656d652f7468656d652f
|
||||
7468656d65312e786d6cec594f6f1b4514bf23f11d467b6f6327761a4775aad8b11b6852a2d82dea71bc3bde9d66766735334eea1b6a8f484888823850891b07
|
||||
04546a252ee5d3048aa048fd0abc99d95defc46b92b411ada039b4f6ec6fdefff79b37ebabd7eec50c1d1221294fda5efd72cd4324f1794093b0eddd1af62fad
|
||||
79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607f22d771db8b944ad79796a40fcb585ee62949e0d9988b182bf82ac2a540e023901bb3a5e55a6d
|
||||
7529c634f150826310bb830595127b1bb9dc1e03e189927ac16762a0a5920a707050d71039955d26d021666d0f7404fc6848ee290f312c153c687b35f3e72d6d
|
||||
5c5dc2ebd926a616ec2dedeb9bbf6c5fb6213858363a45382a94d6fb8dd695ad42be0130358febf57add5ebd906700d8f7c1556b4b5966a3bf56efe4324b20fb
|
||||
715e76b7d6ac355c7c49feca9ccdad4ea7d36c65b658a106643f36e6f06bb5d5c6e6b28337208b6fcee11b9dcd6e77d5c11b90c5afcee1fb575aab0d176f4011
|
||||
a3c9c11c5a27b4dfcfa417903167db95f03580afd532f80c05d55094975631e6895a586c31becb451f101ac9b0a20952d3948cb10f25dcc5f14850ac35e07582
|
||||
4b4fec922fe796b432247d4153d5f63e4c31b4c34cdecb673fbc7cf6041ddf7f7a7cffe7e3070f8eefff640539bbb671129677bdf8eef3bf1e7d82fe7cf2ed8b
|
||||
875f56e36519ffdb8f9ffefacb17d540e89f9939cfbf7afcfbd3c7cfbffeec8fef1f56c037051e95e1431a13896e9223b4cf6370cc44c5b59c8cc4f9760c234c
|
||||
cb3b369350e2046b2d15f27b2a72d037a79865d971ece8103782b705f04715f0fae4ae63f0201213452b34df886207b8cb39eb705119851b5a5729ccc3491256
|
||||
2b1793326e1fe3c32add5d9c38f9ed4d5260cebc2c1dc7bb1171ccdc63385138240951483fe30784547877875227aebbd4175cf2b1427728ea605a1992211d39
|
||||
d534dbb44d63c8cbb4ca67c8b7139bdddba8c35995d75be4d0454257605661fc9030278cd7f144e1b84ae410c7ac1cf01daca22a230753e197713da920d32161
|
||||
1cf502a2cfb4f9d2ff4880bfa5a4dfc040599569df65d3d8450a450faa64ee60cecbc82d7ed08d709c5661073489cad80fe4019428467b5c55c177b9db21fa3b
|
||||
e401270bd37d9b1227dda7b3c12d1a3a26cd0a443f99888a285e27dca9dfc1948d31315403acee70754c937f226e4681b9ad868b236ea0cae7df3caab0fb6da5
|
||||
ec4d38bdaa7a66fb04512fc29da4e72e17017dfbd9790b4f923d020d31dfa7efc8f91d397bff79725ed4cf174fc933160682d6b3889db4cddc1d2f1ebbc794b1
|
||||
819a32b223cde42de1f009fab0a8379afb2629ee6169041f752b830607170a6cf620c1d5c754458308a730b5d73d2d249499e850a2944bb82e9ae54ad91a0f93
|
||||
bfb297cda6be8658ea9058edf2c02eafe8e5fcb65188315685e64e9b2b5ad102ceaa6ce54a26147c7b1565756dd499b5d58d6986151d6d85cb3ac4e65e0e212f
|
||||
5c83c5229a30d520988520caab70e3d7aae1b683190974dc6d8ef2b4982c5c648a64840392e548fb3d9fa3ba49525e2b738e683f6c31e8abe329512b696b69b1
|
||||
afa1ed2c492aab6b2c509767ef75b29457f02c4b20ed643bb2a4dc9c2c41476dafd55c6e7ac8c769db1bc345193ec629645dea4112b3105e35f94ad8b23fb599
|
||||
4d97cfb2d9ca1d739ba00e2f3f6cdce71c76782015526d6119d9d2308fb2126089d664ed5f6e42582fca810a363a9b152b6b500c6fcc0a88a39b5a321e135f95
|
||||
935d5ad1b1b35f332ae51345c4200a8ed0884dc43e86f4eb52057f022ae17d876104fd05decee9689b472e39674d577e276670761db334c219ddea16cd3bd9c2
|
||||
0d211536986f25f3c0b74adb8d73e777c5b4fc05b9522ee3ff992bfa3c81d70f2b81ce800f2f860546ba53da1e172ae2c0426944fdbe80c9c17007540bbce185
|
||||
c75054f07adafc2fc8a1fedff69c9561da1a6e916a9f864850388f542408d9035a32d5778ab07a767659912c13642aaa64ae4cadd9237248d85073e0aa3edb3d
|
||||
1441a91b36c968c0e04ed69ffb3deba051a8879c72bf394c569cbdb607feedc9c7363338e5f2b01968f2f8172616e3c1ec54b5fbcdf6fcec2d3ba21fccc6ac46
|
||||
de15a0ac7414b4b2b67f4513ce79d45ac69af378b9991b07599cf718168b812885974848ff03e71f153e23a68cf5813ae4fbc0ad087ebed0c2a06ca0aa2fd9c1
|
||||
036982b48b23189ceca22d262dca86361b9d74d4f2c3fa8227dd42ef89606bcbce92ef7306bb18ce5c754e2f5e64b0b3083bb1b66b0b430d993dd9a2b034ce6f
|
||||
322631e647b2f28f597c741712bd053f1a4c9892a698e0972a8161861e983e80e6b71acdd68dbf010000ffff0300504b0304140006000800000021000dd1909f
|
||||
b60000001b010000270000007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f
|
||||
6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b0
|
||||
60828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509a
|
||||
ffb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000
|
||||
001c0200001300000000000000000000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c000
|
||||
0000360100000b00000000000000000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c
|
||||
00000000000000000000000000190200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210060ffbf
|
||||
f5a4060000a21b00001600000000000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021
|
||||
000dd1909fb60000001b0100002700000000000000000000000000ae0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000a90a00000000}
|
||||
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
|
||||
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
|
||||
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
|
||||
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
|
||||
{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
|
||||
\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
|
||||
\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
|
||||
\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 caption;\lsdunhideused0 \lsdlocked0 List;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;
|
||||
\lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;
|
||||
\lsdunhideused0 \lsdlocked0 Revision;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;
|
||||
\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 0105000002000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
|
||||
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000010db
|
||||
9f3f143bd001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000105000000000000}}
|
||||
{\rtf1\ansi\deff4\adeflang1025
|
||||
{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset128 Liberation Sans{\*\falt Arial};}{\f5\fswiss\fprq2\fcharset128 Segoe UI;}{\f6\fswiss\fprq2\fcharset128 Calibri;}{\f7\fnil\fprq2\fcharset0 Times New Roman;}{\f8\fswiss\fprq2\fcharset128 FreeSans;}{\f9\fnil\fprq2\fcharset0 Calibri;}}
|
||||
{\colortbl;\red0\green0\blue0;\red0\green0\blue128;\red128\green128\blue128;}
|
||||
{\stylesheet{\s0\snext0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031 Normal;}
|
||||
{\*\cs15\snext15 Default Paragraph Font;}
|
||||
{\*\cs16\snext16\cf2\ul\ulc0\langfe255\lang255 Internet Link;}
|
||||
{\s17\sbasedon0\snext18\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb240\sa120\keepn\ltrpar\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs28\alang1081\loch\f4\fs28\lang1031 Heading;}
|
||||
{\s18\sbasedon0\snext18\sl288\slmult1\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa140\ltrpar\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031 Text Body;}
|
||||
{\s19\sbasedon18\snext19\sl288\slmult1\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa140\ltrpar\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f4\fs22\lang1031 List;}
|
||||
{\s20\sbasedon0\snext20\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\noline\ltrpar\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af8\afs24\alang1081\ai\loch\f4\fs20\lang1031 Caption;}
|
||||
{\s21\sbasedon0\snext21\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs20\alang1081\loch\f4\fs20\lang1031 Index;}
|
||||
{\s22\snext22\sl276\slmult1\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa200\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\dbch\af7\langfe1031\dbch\af9\afs22\alang1025\cf0\kerning1\loch\f6\fs22\lang1031 DocumentMap;}
|
||||
{\s23\sbasedon0\snext23\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs20\alang1081\ai\loch\f4\fs20\lang1031 caption;}
|
||||
}{\*\generator LibreOffice/4.4.2.2$Linux_X86_64 LibreOffice_project/40m0$Build-2}{\info{\author Daniel Kraus}{\creatim\yr2015\mo1\dy28\hr17\min3}{\author Daniel Kraus}{\revtim\yr2015\mo7\dy28\hr18\min16}{\printim\yr0\mo0\dy0\hr0\min0}}\deftab720\deftab720
|
||||
\viewscale150
|
||||
{\*\pgdsctbl
|
||||
{\pgdsc0\pgdscuse451\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\pgdscnxt0 Default Style;}}
|
||||
\formshade{\*\pgdscno0}\paperh15840\paperw12240\margl1800\margr1800\margt1440\margb1440\sectd\sbknone\sectunlocked1\pgndec\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
|
||||
{\*\ftnsep}\pgndec\pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs18\alang1081\ai\rtlch \ltrch\loch\fs18\lang1033
|
||||
zaaReloaded2 ist mit der \uc2 \u8220\'81\'67Apache 2.0 License\u8221\'81\'68 lizensiert.\uc1 }{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs18\alang1081\ai\rtlch \ltrch\loch\fs18\lang1033
|
||||
}{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs18\alang1081\ai\rtlch \ltrch\loch\fs18\lang1033
|
||||
Diese Lizenz erlaubt kostenfreie Nutzung und schlie\u223\'3ft jedwede Haftung aus. Bitte lesen Sie sich den unten stehenden Lizenztext vor der Nutzung genau durch und stimmen Sie den Bedingungen zu.}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Diese Software enth\u228\'3flt Code von Dritten:}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
DLLs }{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
der}{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Visual Studio Tools for Office }{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Laufzeit und des }{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Expression Blend }{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
S}{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
oftware }{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
D}{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
evelopment }{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
K}{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
it}{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
s}{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
(SDK), \u169\'3f }{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
C}{\cf1\i\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
opyright Microsoft Corporation.}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qc\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\fs18\lang1033
|
||||
\uc2 \u8212\'81\'5c\u8212\'81\'5c\u8212\'81\'5c\u8212\'81\'5c\u8212\'81\'5c\uc1 }
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qc\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\b\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Apache License}{\rtlch \ltrch\loch
|
||||
\line }{\cf1\b\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Version 2.0, January 2004}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qc\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{{\field{\*\fldinst HYPERLINK "http://www.apache.org/licenses/" }{\fldrslt {\cf2\ul\ulc0\langfe255\lang255\cf2\ul\ulc0\kerning1\dbch\af7\langfe255\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang255
|
||||
http://www.apache.org/licenses/}}}}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\b\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\b\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
1. Definitions}{\cf1\kerning1\dbch\af7\langfe1031\dbch\af7\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
.}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\fs18\lang1033
|
||||
\uc2 \u8220\'81\'67\uc1 }{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
License\uc2 \u8221\'81\'68 shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.\uc1 }
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\fs18\lang1033
|
||||
\uc2 \u8220\'81\'67\uc1 }{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Licensor\uc2 \u8221\'81\'68 shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.\uc1 }
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\fs18\lang1033
|
||||
\uc2 \u8220\'81\'67\uc1 }{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Legal Entity\uc2 \u8221\'81\'68 shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, \u8220\'81\'67control\u8221\'81\'68 means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.\uc1 }
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\fs18\lang1033
|
||||
\uc2 \u8220\'81\'67\uc1 }{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
You\uc2 \u8221\'81\'68 (or \u8220\'81\'67Your\u8221\'81\'68) shall mean an individual or Legal Entity exercising permissions granted by this License.\uc1 }
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\fs18\lang1033
|
||||
\uc2 \u8220\'81\'67\uc1 }{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Source\uc2 \u8221\'81\'68 form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.\uc1 }
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\fs18\lang1033
|
||||
\uc2 \u8220\'81\'67\uc1 }{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Object\uc2 \u8221\'81\'68 form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.\uc1 }
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\fs18\lang1033
|
||||
\uc2 \u8220\'81\'67\uc1 }{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Work\uc2 \u8221\'81\'68 shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).\uc1 }
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\fs18\lang1033
|
||||
\uc2 \u8220\'81\'67\uc1 }{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Derivative Works\uc2 \u8221\'81\'68 shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.\uc1 }
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\fs18\lang1033
|
||||
\uc2 \u8220\'81\'67\uc1 }{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Contribution\uc2 \u8221\'81\'68 shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, \u8220\'81\'67submitted\u8221\'81\'68 means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as \u8220\'81\'67Not a Contribution.\u8221\'81\'68\uc1 }
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\fs18\lang1033
|
||||
\uc2 \u8220\'81\'67\uc1 }{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
Contributor\uc2 \u8221\'81\'68 shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.\uc1 }
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\b\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
2. Grant of Copyright License}{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\b\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
3. Grant of Patent License}{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\b\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
4. Redistribution}{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li360\ri0\lin360\rin0\fi-360\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
1.\tab You must give any other recipients of the Work or Derivative Works a copy of this License; and}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li360\ri0\lin360\rin0\fi-360\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
2.\tab You must cause any modified files to carry prominent notices stating that You changed the files; and}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li360\ri0\lin360\rin0\fi-360\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
3.\tab You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li360\ri0\lin360\rin0\fi-360\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
4.\tab If the Work includes a \uc2 \u8220\'81\'67NOTICE\u8221\'81\'68 text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.\uc1 }{\rtlch \ltrch\loch
|
||||
\line \line }{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\b\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
5. Submission of Contributions}{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\b\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
6. Trademarks}{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\b\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
7. Disclaimer of Warranty}{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \uc2 \u8220\'81\'67AS IS\u8221\'81\'68 BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.\uc1 }
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\b\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
8. Limitation of Liability}{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qj\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\b\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
9. Accepting Warranty or Additional Liability}{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\loch\fs18\lang1033
|
||||
. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.}
|
||||
\par \pard\plain \s0\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa170\ltrpar{\*\hyphen2\hyphlead0\hyphtrail4\hyphmax0}\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs22\alang1081\loch\f5\fs22\lang1031\qc\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa40{\cf1\kerning1\dbch\af7\langfe1031\dbch\af9\afs24\alang1081\rtlch \ltrch\fs18\lang1031
|
||||
\uc2 \u8212\'81\'5c\u8212\'81\'5c\u8212\'81\'5c\u8212\'81\'5c\u8212\'81\'5c\uc1 }
|
||||
\par }
|
1
www/PHPMailer
Submodule
1
www/PHPMailer
Submodule
Submodule www/PHPMailer added at 1193eb9d28
53
www/postreport.php
Normal file
53
www/postreport.php
Normal file
@ -0,0 +1,53 @@
|
||||
<?php
|
||||
require(__DIR__ . '/PHPMailer/PHPMailerAutoload.php');
|
||||
$reportId = $_POST['report_id'];
|
||||
$mail = new PHPMailer;
|
||||
$mail->isSMTP();
|
||||
$mail->SMTPAuth = true;
|
||||
$mail->Host = 'nephrowiki.de';
|
||||
$mail->Username = 'zaareloaded@nephrowiki.de';
|
||||
$mail->Password = 'ooZ1eiJa';
|
||||
// $mail->SMTPSecure = 'tls';
|
||||
$mail->Port = 25;
|
||||
|
||||
$mail->From = 'zaareloaded@nephrowiki.de';
|
||||
$mail->FromName = 'zaaReloaded';
|
||||
$mail->addAddress('dk@doktorkraus.de');
|
||||
$mail->Subject = "[zaaReloaded] Exception $reportId";
|
||||
|
||||
if ( $_POST['ccUser'] ) {
|
||||
$validMail = filter_var( $_POST['usersMail'], FILTER_VALIDATE_EMAIL );
|
||||
$validUser = filter_var( $_POST['usersName'], FILTER_SANITIZE_STRING );
|
||||
if ( $validUser ) {
|
||||
$validUser = "\"$validUser\" "; // space character deliberately placed
|
||||
};
|
||||
if ( $validMail ) {
|
||||
$mail->addCC($validMail, $validUser);
|
||||
};
|
||||
};
|
||||
|
||||
$info = print_r( $_POST, true );
|
||||
|
||||
$mail->Body = <<<EOF
|
||||
zaaReloaded exception
|
||||
|
||||
User's comment on submission:
|
||||
{$_POST['comment']}
|
||||
|
||||
***
|
||||
|
||||
Technical details: $info
|
||||
|
||||
--
|
||||
http://zaa.nephrowiki.de
|
||||
EOF;
|
||||
|
||||
if ($mail->send())
|
||||
{
|
||||
// Must return the report ID to indicate success
|
||||
echo($reportId);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo($mail->ErrorInfo);
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
2.0.0-alpha.1
|
||||
0e0620c09c28cc494352dd3901245e7402ea5b64 publish/release/zaaReloaded-2.0.0-alpha.1.exe
|
||||
http://zaa.nephrowiki.de/downloads/zaaReloaded-2.0.0-alpha.1.exe
|
||||
2.0.0-alpha.5
|
||||
http://zaa.nephrowiki.de/downloads/zaaReloaded-2.0.0-alpha.5.exe
|
||||
423cbe81b42ddfc293cf5b387c1d8d269dce3f61 publish/release/zaaReloaded-2.0.0-alpha.5.exe
|
||||
|
||||
|
@ -31,7 +31,9 @@ namespace zaaReloaded2.Controller.Elements
|
||||
/// </summary>
|
||||
public IList<FormatElementBase> FormatElements { get; private set; }
|
||||
|
||||
public ControlElementBase() { }
|
||||
public ControlElementBase()
|
||||
: this(new List<FormatElementBase>())
|
||||
{ }
|
||||
|
||||
public ControlElementBase(IList<FormatElementBase> formatElements)
|
||||
{
|
||||
|
@ -25,22 +25,23 @@ namespace zaaReloaded2.Controller.Elements
|
||||
/// <summary>
|
||||
/// Controller element that writes arbitrary text to the document.
|
||||
/// </summary>
|
||||
class CustomText : ElementBase
|
||||
class CustomText : FormatElementBase
|
||||
{
|
||||
public override string Label
|
||||
{
|
||||
get { return String.Format("\"{0}\"", Text); }
|
||||
get { return String.Format("\"{0}\"", Content); }
|
||||
}
|
||||
|
||||
public override void Run(Formatter.Formatter formatter)
|
||||
{
|
||||
formatter.Write(Text);
|
||||
formatter.WriteParagraph(Content);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the arbitrary text that will be written
|
||||
/// to the document.
|
||||
/// </summary>
|
||||
public string Text { get; set; }
|
||||
protected override ElementBase CreateInstance()
|
||||
{
|
||||
CustomText clone = new CustomText();
|
||||
clone.Content = Content;
|
||||
return clone;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ namespace zaaReloaded2.Controller.Elements
|
||||
/// Base class for formatting elements.
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public abstract class ElementBase
|
||||
public abstract class ElementBase : ICloneable
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns the label for this formatting element.
|
||||
@ -44,5 +44,16 @@ namespace zaaReloaded2.Controller.Elements
|
||||
/// Element belongs to. The Formatter object provides access
|
||||
/// to the current Word document etc.</param>
|
||||
abstract public void Run(zaaReloaded2.Formatter.Formatter formatter);
|
||||
|
||||
public object Clone()
|
||||
{
|
||||
return CreateInstance();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new instance that can be used for cloning.
|
||||
/// </summary>
|
||||
/// <returns>New instance of a derived class.</returns>
|
||||
protected abstract ElementBase CreateInstance();
|
||||
}
|
||||
}
|
||||
|
@ -23,5 +23,24 @@ namespace zaaReloaded2.Controller.Elements
|
||||
/// </summary>
|
||||
public abstract class FormatElementBase : ElementBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the content of this format element.
|
||||
/// </summary>
|
||||
public string Content
|
||||
{
|
||||
get { return _content; }
|
||||
set
|
||||
{
|
||||
_content = value;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Is called whenever the Content is changed.
|
||||
/// </summary>
|
||||
protected virtual void OnContentChanged() {}
|
||||
|
||||
private string _content;
|
||||
}
|
||||
}
|
||||
|
@ -31,17 +31,18 @@ namespace zaaReloaded2.Controller.Elements
|
||||
/// to a Word document.
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
class Items : FormatElementBase
|
||||
class Items : CustomText
|
||||
{
|
||||
#region ElementBase implementation
|
||||
|
||||
public override string Label
|
||||
{
|
||||
get { return Line; }
|
||||
get { return Content; }
|
||||
}
|
||||
|
||||
public override void Run(zaaReloaded2.Formatter.Formatter formatter)
|
||||
{
|
||||
ParseLine();
|
||||
if (_items == null || _items.Count == 0) return;
|
||||
|
||||
bool _needComma = false;
|
||||
@ -75,37 +76,14 @@ namespace zaaReloaded2.Controller.Elements
|
||||
|
||||
#endregion
|
||||
|
||||
#region Properties
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a text line that contains a comma-separated list of
|
||||
/// parsable laboratory item names. The list may optionally be preceded
|
||||
/// with a caption followed by a colon.
|
||||
/// </summary>
|
||||
public string Line
|
||||
{
|
||||
[DebuggerStepThrough]
|
||||
get
|
||||
{
|
||||
return _line;
|
||||
}
|
||||
set
|
||||
{
|
||||
_line = value;
|
||||
ParseLine();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public Items() : base() { }
|
||||
|
||||
public Items(string line)
|
||||
public Items(string content)
|
||||
: this()
|
||||
{
|
||||
Line = line;
|
||||
Content = content;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -121,7 +99,7 @@ namespace zaaReloaded2.Controller.Elements
|
||||
_items = null;
|
||||
_caption = null;
|
||||
Regex r = new Regex(@"((?<caption>[^:]+):\s*)?((?<items>[^,]+),\s*)*(?<items>[^,]+)");
|
||||
Match m = r.Match(Line);
|
||||
Match m = r.Match(Content);
|
||||
if (m.Success)
|
||||
{
|
||||
if (m.Groups["caption"].Success)
|
||||
@ -203,7 +181,6 @@ namespace zaaReloaded2.Controller.Elements
|
||||
|
||||
#region Fields
|
||||
|
||||
string _line;
|
||||
string _caption;
|
||||
List<string> _items;
|
||||
static Regex _wildcard = new Regex(@"(?<material>[^-]+-)?\*");
|
||||
|
@ -39,5 +39,14 @@ namespace zaaReloaded2.Controller.Elements
|
||||
public SelectEachDay(FormatElementBase formatElement)
|
||||
: base(formatElement)
|
||||
{ }
|
||||
|
||||
public SelectEachDay(IList<FormatElementBase> formatElements)
|
||||
: base(formatElements)
|
||||
{ }
|
||||
|
||||
protected override ElementBase CreateInstance()
|
||||
{
|
||||
return new SelectEachDay();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -43,5 +43,14 @@ namespace zaaReloaded2.Controller.Elements
|
||||
public SelectFirstDay(FormatElementBase formatElement)
|
||||
: base(formatElement)
|
||||
{ }
|
||||
|
||||
public SelectFirstDay(IList<FormatElementBase> formatElements)
|
||||
: base(formatElements)
|
||||
{ }
|
||||
|
||||
protected override ElementBase CreateInstance()
|
||||
{
|
||||
return new SelectFirstDay();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -44,5 +44,14 @@ namespace zaaReloaded2.Controller.Elements
|
||||
public SelectLastDay(FormatElementBase formatElement)
|
||||
: base(formatElement)
|
||||
{ }
|
||||
|
||||
public SelectLastDay(IList<FormatElementBase> formatElements)
|
||||
: base(formatElements)
|
||||
{ }
|
||||
|
||||
protected override ElementBase CreateInstance()
|
||||
{
|
||||
return new SelectLastDay();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ namespace zaaReloaded2.Controller
|
||||
/// Holds settings related to controlling laboratory output.
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class Settings
|
||||
public class Settings : ICloneable
|
||||
{
|
||||
#region Properties
|
||||
|
||||
@ -47,13 +47,73 @@ namespace zaaReloaded2.Controller
|
||||
/// </summary>
|
||||
public IList<ElementBase> Elements { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the unique ID of this Settings object. The unique
|
||||
/// ID is not included in deep-copying (cloning).
|
||||
/// </summary>
|
||||
public Guid Uid { get; private set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
#region Constructors
|
||||
|
||||
public Settings()
|
||||
: this(string.Empty, new List<ElementBase>())
|
||||
{ }
|
||||
|
||||
public Settings(string name)
|
||||
: this(name, null)
|
||||
{ }
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new Settings object with an initial
|
||||
/// set of elements.
|
||||
/// </summary>
|
||||
/// <param name="initialElements">Set of ElementBase
|
||||
/// object (or derived ones).</param>
|
||||
public Settings(IList<ElementBase> initialElements)
|
||||
: this(String.Empty, initialElements)
|
||||
{ }
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new Settings object with an initial
|
||||
/// set of elements and a name.
|
||||
/// </summary>
|
||||
/// <param name="initialElements">Set of ElementBase
|
||||
/// object (or derived ones).</param>
|
||||
/// <param name="name">Name of these settings.</param>
|
||||
public Settings(string name, IList<ElementBase> initialElements)
|
||||
{
|
||||
Elements = new List<ElementBase>();
|
||||
Uid = Guid.NewGuid();
|
||||
Name = name;
|
||||
Elements = initialElements;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public methods
|
||||
|
||||
/// <summary>
|
||||
/// Adds an element to the list of Elements.
|
||||
/// </summary>
|
||||
/// <param name="element">Element to add.</param>
|
||||
public void AddElement(ElementBase element)
|
||||
{
|
||||
Elements.Add(element);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Implementation of ICloneable
|
||||
|
||||
public object Clone()
|
||||
{
|
||||
Settings clone = new Settings(
|
||||
String.Format("Kopie von {0}", Name),
|
||||
Elements.Select(e => e.Clone() as ElementBase).ToList()
|
||||
);
|
||||
clone.ReferenceStyle = ReferenceStyle;
|
||||
return clone;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -21,9 +21,19 @@ using System.Collections.ObjectModel;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using zaaReloaded2.Controller.Elements;
|
||||
|
||||
namespace zaaReloaded2.Controller
|
||||
{
|
||||
/// <summary>
|
||||
/// A repository for zaaReloaded2.Controller.Settings.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This class is derived from ApplicationSettingsBase to be able
|
||||
/// to simply store it in the assembly's properties. However, this
|
||||
/// causes some confusion because .NET's ApplicationSettings are
|
||||
/// different from zaaReloaded's Settings.
|
||||
/// </remarks>
|
||||
[Serializable]
|
||||
public class SettingsRepository : ApplicationSettingsBase
|
||||
{
|
||||
@ -48,15 +58,91 @@ namespace zaaReloaded2.Controller
|
||||
|
||||
[UserScopedSetting()]
|
||||
[SettingsSerializeAs(SettingsSerializeAs.Xml)]
|
||||
public IList<Settings> Settings { get; private set; }
|
||||
public IList<Settings> SettingsList { get; private set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new instance of a settings repository that will
|
||||
/// contain a default set of settings.
|
||||
/// </summary>
|
||||
public SettingsRepository()
|
||||
{
|
||||
Settings = new List<Settings>();
|
||||
SettingsList = new List<Settings>();
|
||||
CreateDefault();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public methods
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a Settings object contained in this repository
|
||||
/// by unique ID.
|
||||
/// </summary>
|
||||
/// <param name="uid">GUID to look for.</param>
|
||||
/// <returns>Settings object with this GUID, or null if the
|
||||
/// GUID was not found.</returns>
|
||||
public Settings FindByGuid(Guid uid)
|
||||
{
|
||||
return SettingsList.FirstOrDefault(s => s.Uid == uid);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Private methods
|
||||
|
||||
/// <summary>
|
||||
/// Resets the Settings contained in this SettingsRepository
|
||||
/// to the default set of settings.
|
||||
/// </summary>
|
||||
private void CreateDefault()
|
||||
{
|
||||
SettingsList.Clear();
|
||||
|
||||
// Shortcut to assembly properties
|
||||
zaaReloaded2.Properties.Settings def = zaaReloaded2.Properties.Settings.Default;
|
||||
|
||||
// TODO: May want to create deep copies of this list below
|
||||
List<FormatElementBase> defaultItems = new List<FormatElementBase>()
|
||||
{
|
||||
new Items(def.DefaultItemsClinicalChem),
|
||||
new Items(def.DefaultItemsInflammation),
|
||||
new Items(def.DefaultItemsCardio),
|
||||
new Items(def.DefaultItemsKidney),
|
||||
new Items(def.DefaultItemsLiver),
|
||||
new Items(def.DefaultItemsLipids),
|
||||
new Items(def.DefaultItemsHematology),
|
||||
new Items(def.DefaultItemsCoagulation),
|
||||
new Items(def.DefaultItemsDrugs),
|
||||
new Items(def.DefaultItemsCollectedUrine),
|
||||
new Items(def.DefaultItemsSpotUrine),
|
||||
new Items(def.DefaultItemsOther),
|
||||
};
|
||||
|
||||
// Configure the settings for the ward
|
||||
SettingsList.Add(
|
||||
new Settings(
|
||||
def.SettingsNameWard,
|
||||
new List<ElementBase>()
|
||||
{
|
||||
new SelectFirstDay(defaultItems),
|
||||
new SelectLastDay(defaultItems)
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
// Configure the settings for the outpatient clinic
|
||||
SettingsList.Add(
|
||||
new Settings(
|
||||
def.SettingsNameClinic,
|
||||
new List<ElementBase>()
|
||||
{
|
||||
new SelectEachDay(defaultItems),
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
75
zaaReloaded2/Demo/Demo.cs
Executable file
75
zaaReloaded2/Demo/Demo.cs
Executable file
@ -0,0 +1,75 @@
|
||||
/* Demo.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.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Microsoft.Office.Interop.Word;
|
||||
|
||||
namespace zaaReloaded2.Demo
|
||||
{
|
||||
/// <summary>
|
||||
/// Static class that serves to load an embedded Word document
|
||||
/// into a temporary file and open that temporary file in Word.
|
||||
/// </summary>
|
||||
static class Demo
|
||||
{
|
||||
#region Public methods
|
||||
|
||||
/// <summary>
|
||||
/// Opens a demo document. The document's Saved property is set to
|
||||
/// false so that a user who wants to save changes will be prompted
|
||||
/// for a file name.
|
||||
/// </summary>
|
||||
public static void OpenDemoDocument()
|
||||
{
|
||||
string tempFile = CreateTempFileFromResource();
|
||||
Document demoDoc = Globals.ThisAddIn.Application.Documents
|
||||
.Add(Template: tempFile);
|
||||
File.Delete(tempFile);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private methods
|
||||
|
||||
/// <summary>
|
||||
/// Copies the built-in demo file from a resource stream to a
|
||||
/// temporary file and returns the path to that file.
|
||||
/// </summary>
|
||||
/// <returns>Path to the newly created temporary file.</returns>
|
||||
static string CreateTempFileFromResource()
|
||||
{
|
||||
string resourceName = "zaaReloaded2.Demo.Demo.docx";
|
||||
Stream resourceStream = typeof(Demo).Assembly
|
||||
.GetManifestResourceStream(resourceName);
|
||||
if (resourceStream == null)
|
||||
{
|
||||
throw new IOException("Unable to open stream " + resourceName);
|
||||
}
|
||||
string fileName = Path.GetTempFileName() + ".docx";
|
||||
Stream tempStream = File.Create(fileName);
|
||||
resourceStream.CopyTo(tempStream);
|
||||
tempStream.Close();
|
||||
return fileName;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
BIN
zaaReloaded2/Demo/Demo.docx
Executable file
BIN
zaaReloaded2/Demo/Demo.docx
Executable file
Binary file not shown.
@ -34,7 +34,7 @@
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger SourceObject="{Binding ViewDetailsMessage}" EventName="Sent">
|
||||
<i:EventTrigger.Actions>
|
||||
<actions:ShowViewAction Assembly="zaaReloaded2" View="XLToolbox.ExceptionHandler.ExceptionDetailView" />
|
||||
<actions:ShowViewAction Assembly="zaaReloaded2" View="zaaReloaded2.ExceptionHandler.ExceptionDetailView" />
|
||||
</i:EventTrigger.Actions>
|
||||
</i:EventTrigger>
|
||||
<i:EventTrigger SourceObject="{Binding SubmitReportMessage}" EventName="Sent">
|
||||
|
91
zaaReloaded2/Formatter/DanielsStyle.cs
Executable file
91
zaaReloaded2/Formatter/DanielsStyle.cs
Executable file
@ -0,0 +1,91 @@
|
||||
/* DanielsStyle.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 Microsoft.Office.Interop.Word;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace zaaReloaded2.Formatter
|
||||
{
|
||||
/// <summary>
|
||||
/// Makes design changes and edits especially for Daniel Kraus.
|
||||
/// </summary>
|
||||
static class DanielsStyle
|
||||
{
|
||||
public static void Apply(Document document, Selection selection)
|
||||
{
|
||||
FixWords(document);
|
||||
FormatDiagnoses(selection);
|
||||
FixSalutation(document);
|
||||
}
|
||||
|
||||
static void FormatDiagnoses(Selection selection)
|
||||
{
|
||||
Range r = selection.Range;
|
||||
r.ListFormat.RemoveNumbers();
|
||||
r.Bold = 0;
|
||||
r.Italic = 0;
|
||||
r.Underline = WdUnderline.wdUnderlineNone;
|
||||
r.Font.Size = 10;
|
||||
Paragraphs p = r.Paragraphs;
|
||||
p.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
|
||||
p.FirstLineIndent = -45;
|
||||
p.LeftIndent = 45;
|
||||
p.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle;
|
||||
p.SpaceAfter = 0;
|
||||
p.SpaceBefore = 0;
|
||||
|
||||
if (p[p.Count].Range.Text.StartsWith("Aktuell"))
|
||||
{
|
||||
p[p.Count].Range.Bold = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void FixWords(Document document)
|
||||
{
|
||||
Find find = document.Range().Find;
|
||||
find.Execute2007(FindText: "Körperlicher Untersuchungsbefund", ReplaceWith: "Körperl. Untersuchung", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "Dr.D.Kraus", ReplaceWith: "Dr. D. Kraus", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "Z. n.", ReplaceWith: "Z.n.", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "Zust. n.", ReplaceWith: "Z.n.", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "Zust.n.", ReplaceWith: "Z.n.", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "Assistent der Klinik", ReplaceWith: "Internist/Nephrologe", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "Professor Dr.", ReplaceWith: "Prof. Dr.", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "mmHg", ReplaceWith: "mm Hg", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "RR ", ReplaceWith: "", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "HF ", ReplaceWith: "", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "TAC-Spiegel", ReplaceWith: "Tacrolimus-Talspiegel", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "4-7", ReplaceWith: "4 bis 7", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "5-8", ReplaceWith: "5 bis 8", Replace: WdReplace.wdReplaceAll);
|
||||
find.Execute2007(FindText: "8-10", ReplaceWith: "8 bis 10", Replace: WdReplace.wdReplaceAll);
|
||||
}
|
||||
|
||||
static void FixSalutation(Document document)
|
||||
{
|
||||
Regex sal = new Regex(@"^Mit.*?Grüßen");
|
||||
Regex med = new Regex(@"^((Häusl|Empf).*?Medikat)|Therapieempf");
|
||||
foreach (Paragraph p in document.Paragraphs)
|
||||
{
|
||||
if (sal.IsMatch(p.Range.Text)) p.Range.Text = "Mit freundlichen, kollegialen Grüßen,";
|
||||
if (med.IsMatch(p.Range.Text)) p.Range.Text = "Aktuelle Medikation:";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
BIN
zaaReloaded2/Icons/d.png
Normal file
BIN
zaaReloaded2/Icons/d.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1012 B |
BIN
zaaReloaded2/Icons/dk.png
Normal file
BIN
zaaReloaded2/Icons/dk.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
zaaReloaded2/Icons/fff.png
Normal file
BIN
zaaReloaded2/Icons/fff.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
147
zaaReloaded2/Properties/Settings.Designer.cs
generated
147
zaaReloaded2/Properties/Settings.Designer.cs
generated
@ -98,5 +98,152 @@ namespace zaaReloaded2.Properties {
|
||||
this["LastUpdateCheck"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("http://www.apache.org/licenses/LICENSE-2.0")]
|
||||
public global::System.Uri LicenseUrl {
|
||||
get {
|
||||
return ((global::System.Uri)(this["LicenseUrl"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Standard für Station")]
|
||||
public string SettingsNameWard {
|
||||
get {
|
||||
return ((string)(this["SettingsNameWard"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Standard für NepA")]
|
||||
public string SettingsNameClinic {
|
||||
get {
|
||||
return ((string)(this["SettingsNameClinic"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Klinische Chemie: Na, K, Cl, Mg, Pi, Alb, Prot, LDH, Hsre")]
|
||||
public string DefaultItemsClinicalChem {
|
||||
get {
|
||||
return ((string)(this["DefaultItemsClinicalChem"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Hämatologie: Hb, Hkt, Reti, Leu, Thr, Neu, HbA1c")]
|
||||
public string DefaultItemsHematology {
|
||||
get {
|
||||
return ((string)(this["DefaultItemsHematology"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa")]
|
||||
public string DefaultItemsCoagulation {
|
||||
get {
|
||||
return ((string)(this["DefaultItemsCoagulation"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Spot-Urin: U-*")]
|
||||
public string DefaultItemsSpotUrine {
|
||||
get {
|
||||
return ((string)(this["DefaultItemsSpotUrine"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Sammelurin: SU-*")]
|
||||
public string DefaultItemsCollectedUrine {
|
||||
get {
|
||||
return ((string)(this["DefaultItemsCollectedUrine"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Weitere Werte: *")]
|
||||
public string DefaultItemsOther {
|
||||
get {
|
||||
return ((string)(this["DefaultItemsOther"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Kardiale Marker: CK, CKMB, Trop, NTproBNP")]
|
||||
public string DefaultItemsCardio {
|
||||
get {
|
||||
return ((string)(this["DefaultItemsCardio"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Blutfette: TG, Chol, LDL, HDL, Lp(a)")]
|
||||
public string DefaultItemsLipids {
|
||||
get {
|
||||
return ((string)(this["DefaultItemsLipids"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Leber: GOT, GGT, GPT, AP, Bili, CHE")]
|
||||
public string DefaultItemsLiver {
|
||||
get {
|
||||
return ((string)(this["DefaultItemsLiver"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Niere: Krea, Hst, eGFR")]
|
||||
public string DefaultItemsKidney {
|
||||
get {
|
||||
return ((string)(this["DefaultItemsKidney"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Entzündung/Immunsystem: CRP, Pct, C3, C4")]
|
||||
public string DefaultItemsInflammation {
|
||||
get {
|
||||
return ((string)(this["DefaultItemsInflammation"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Medikamente: TAC, CSA, SIR, Vancomycin, Gentamicin, Tobramicin")]
|
||||
public string DefaultItemsDrugs {
|
||||
get {
|
||||
return ((string)(this["DefaultItemsDrugs"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("00000000-0000-0000-0000-000000000000")]
|
||||
public global::System.Guid LastSettings {
|
||||
get {
|
||||
return ((global::System.Guid)(this["LastSettings"]));
|
||||
}
|
||||
set {
|
||||
this["LastSettings"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,5 +26,53 @@
|
||||
<Setting Name="LastUpdateCheck" Type="System.DateTime" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="LicenseUrl" Type="System.Uri" Scope="Application">
|
||||
<Value Profile="(Default)">http://www.apache.org/licenses/LICENSE-2.0</Value>
|
||||
</Setting>
|
||||
<Setting Name="SettingsNameWard" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Standard für Station</Value>
|
||||
</Setting>
|
||||
<Setting Name="SettingsNameClinic" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Standard für NepA</Value>
|
||||
</Setting>
|
||||
<Setting Name="DefaultItemsClinicalChem" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Klinische Chemie: Na, K, Cl, Mg, Pi, Alb, Prot, LDH, Hsre</Value>
|
||||
</Setting>
|
||||
<Setting Name="DefaultItemsHematology" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Hämatologie: Hb, Hkt, Reti, Leu, Thr, Neu, HbA1c</Value>
|
||||
</Setting>
|
||||
<Setting Name="DefaultItemsCoagulation" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa</Value>
|
||||
</Setting>
|
||||
<Setting Name="DefaultItemsSpotUrine" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Spot-Urin: U-*</Value>
|
||||
</Setting>
|
||||
<Setting Name="DefaultItemsCollectedUrine" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Sammelurin: SU-*</Value>
|
||||
</Setting>
|
||||
<Setting Name="DefaultItemsOther" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Weitere Werte: *</Value>
|
||||
</Setting>
|
||||
<Setting Name="DefaultItemsCardio" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Kardiale Marker: CK, CKMB, Trop, NTproBNP</Value>
|
||||
</Setting>
|
||||
<Setting Name="DefaultItemsLipids" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Blutfette: TG, Chol, LDL, HDL, Lp(a)</Value>
|
||||
</Setting>
|
||||
<Setting Name="DefaultItemsLiver" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Leber: GOT, GGT, GPT, AP, Bili, CHE</Value>
|
||||
</Setting>
|
||||
<Setting Name="DefaultItemsKidney" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Niere: Krea, Hst, eGFR</Value>
|
||||
</Setting>
|
||||
<Setting Name="DefaultItemsInflammation" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Entzündung/Immunsystem: CRP, Pct, C3, C4</Value>
|
||||
</Setting>
|
||||
<Setting Name="DefaultItemsDrugs" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Medikamente: TAC, CSA, SIR, Vancomycin, Gentamicin, Tobramicin</Value>
|
||||
</Setting>
|
||||
<Setting Name="LastSettings" Type="System.Guid" Scope="User">
|
||||
<Value Profile="(Default)">00000000-0000-0000-0000-000000000000</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
@ -26,6 +26,11 @@ using System.Windows;
|
||||
using System.Drawing;
|
||||
using System.Windows.Resources;
|
||||
using Office = Microsoft.Office.Core;
|
||||
using zaaReloaded2.Views;
|
||||
using zaaReloaded2.ViewModels;
|
||||
using zaaReloaded2.Importer.ZaaImporter;
|
||||
using zaaReloaded2.Formatter;
|
||||
using zaaReloaded2.Controller;
|
||||
|
||||
// TODO: Follow these steps to enable the Ribbon (XML) item:
|
||||
|
||||
@ -51,12 +56,14 @@ namespace zaaReloaded2
|
||||
[ComVisible(true)]
|
||||
public class Ribbon : Office.IRibbonExtensibility
|
||||
{
|
||||
private Office.IRibbonUI ribbon;
|
||||
#region Constructor
|
||||
|
||||
public Ribbon()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IRibbonExtensibility Members
|
||||
|
||||
public string GetCustomUI(string ribbonID)
|
||||
@ -71,7 +78,8 @@ namespace zaaReloaded2
|
||||
|
||||
public void Ribbon_Load(Office.IRibbonUI ribbonUI)
|
||||
{
|
||||
this.ribbon = ribbonUI;
|
||||
_ribbon = ribbonUI;
|
||||
Globals.ThisAddIn.Application.WindowSelectionChange += Application_WindowSelectionChange;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -86,10 +94,24 @@ namespace zaaReloaded2
|
||||
{
|
||||
switch (control.Id)
|
||||
{
|
||||
case "zrlFormat":
|
||||
DoFormat();
|
||||
break;
|
||||
case "zrlSettings":
|
||||
DoChooseSettings();
|
||||
break;
|
||||
case "zrlAbout":
|
||||
ViewModels.AboutViewModel vm = new ViewModels.AboutViewModel();
|
||||
vm.InjectInto<Views.AboutView>().ShowDialog();
|
||||
break;
|
||||
case "zrlDaniel":
|
||||
Formatter.DanielsStyle.Apply(
|
||||
Globals.ThisAddIn.Application.ActiveDocument,
|
||||
Globals.ThisAddIn.Application.Selection);
|
||||
break;
|
||||
case "zrlDemo":
|
||||
Demo.Demo.OpenDemoDocument();
|
||||
break;
|
||||
default:
|
||||
throw new InvalidOperationException("No operation defined for " + control.Id);
|
||||
}
|
||||
@ -118,6 +140,79 @@ namespace zaaReloaded2
|
||||
return Image.FromStream(sri.Stream);
|
||||
}
|
||||
|
||||
public bool Daniel_GetVisible(Office.IRibbonControl control)
|
||||
{
|
||||
switch (Environment.UserName.ToUpper())
|
||||
{
|
||||
case "DANIEL":
|
||||
case "KRAUS_D1":
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public bool CanFormat(Office.IRibbonControl control)
|
||||
{
|
||||
return Globals.ThisAddIn.Application.Selection.Paragraphs.Count > 0;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private methods
|
||||
|
||||
void DoFormat()
|
||||
{
|
||||
if (CanFormat(null))
|
||||
{
|
||||
SettingsRepository repository = SettingsRepository.Load();
|
||||
Guid lastSettingsUid = Properties.Settings.Default.LastSettings;
|
||||
Settings lastSettings = repository.FindByGuid(lastSettingsUid);
|
||||
if (lastSettings != null)
|
||||
{
|
||||
DoFormat(lastSettings);
|
||||
}
|
||||
else
|
||||
{
|
||||
DoChooseSettings();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DoFormat(Settings settings)
|
||||
{
|
||||
ZaaImporter importer = new ZaaImporter();
|
||||
importer.Import(Globals.ThisAddIn.Application.Selection.Text);
|
||||
Formatter.Formatter formatter =new Formatter.Formatter(
|
||||
Globals.ThisAddIn.Application.ActiveDocument);
|
||||
formatter.Settings = settings;
|
||||
formatter.Laboratory = importer.Laboratory;
|
||||
formatter.Run();
|
||||
}
|
||||
|
||||
void DoChooseSettings()
|
||||
{
|
||||
SettingsRepository repository = SettingsRepository.Load();
|
||||
SettingsRepositoryViewModel vm = new SettingsRepositoryViewModel(repository);
|
||||
vm.UseSettingsMessage.Sent += (sender, args) =>
|
||||
{
|
||||
SettingsViewModel settingsVM = args.Content.ViewModel as SettingsViewModel;
|
||||
Settings settings = settingsVM.RevealModelObject() as Settings;
|
||||
DoFormat(settings);
|
||||
Properties.Settings.Default.LastSettings = settings.Uid;
|
||||
};
|
||||
vm.RequestCloseView += (sender, args) =>
|
||||
{
|
||||
repository.Save();
|
||||
};
|
||||
vm.InjectInto<SettingsRepositoryView>().ShowDialog();
|
||||
}
|
||||
|
||||
public void Application_WindowSelectionChange(Microsoft.Office.Interop.Word.Selection Sel)
|
||||
{
|
||||
_ribbon.Invalidate();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Helpers
|
||||
@ -143,5 +238,11 @@ namespace zaaReloaded2
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
|
||||
private Office.IRibbonUI _ribbon;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -20,17 +20,28 @@
|
||||
-->
|
||||
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
|
||||
onLoad="Ribbon_Load" loadImage="Ribbon_LoadImage">
|
||||
<ribbon>
|
||||
<tabs>
|
||||
<tab id="zaaReloaded2" label="zaaReloaded2">
|
||||
<group id="zrlFormatGroup" label="Formatieren">
|
||||
<button id="zrlFormat" label="Formatieren" image="f.png" onAction="Ribbon_Click" size="large" />
|
||||
</group>
|
||||
<group id="zrlInfoGroup" label="Info">
|
||||
<button id="zrlAbout" label="Über..." image="i.png" onAction="Ribbon_Click" size="large" />
|
||||
</group>
|
||||
</tab>
|
||||
</tabs>
|
||||
</ribbon>
|
||||
<ribbon>
|
||||
<tabs>
|
||||
<tab id="zaaReloaded2" label="zaaReloaded2">
|
||||
<group id="zrlFormatGroup" label="Formatieren">
|
||||
<button id="zrlFormat" label="Formatieren" image="f.png" onAction="Ribbon_Click" size="large"
|
||||
supertip="Formatiert den ausgewählten Bereich mit dem zuletzt verwendeten Stil."
|
||||
getEnabled="CanFormat" />
|
||||
<button id="zrlSettings" label="Stilauswahl" image="fff.png" onAction="Ribbon_Click" size="large"
|
||||
supertip="Zeigt eine Liste vorhandener Stile an. Stile können bearbeitet, hinzugefügt, gelöscht werden." />
|
||||
<button id="zrlDaniel" label="Daniels Spezial" image="dk.png" onAction="Ribbon_Click" size="large"
|
||||
getVisible="Daniel_GetVisible"/>
|
||||
</group>
|
||||
<group id="zrlInfoGroup" label="Info">
|
||||
<button id="zrlDemo" label="Demo" image="d.png" onAction="Ribbon_Click" size="large"
|
||||
screentip="Demo-Dokument öffnen"
|
||||
supertip="Öffnet ein eingebautes Demo-Dokument, das zum Ausprobieren verwendet werden kann." />
|
||||
<button id="zrlAbout" label="Über..." image="i.png" onAction="Ribbon_Click" size="large"
|
||||
screentip="Über zaaReloaded"
|
||||
supertip="Zeigt Informationen über das Add-in an." />
|
||||
</group>
|
||||
</tab>
|
||||
</tabs>
|
||||
</ribbon>
|
||||
</customUI>
|
||||
|
||||
|
@ -26,6 +26,7 @@ using Office = Microsoft.Office.Core;
|
||||
using Microsoft.Office.Tools.Word;
|
||||
using Bovender.Versioning;
|
||||
using Bovender.Mvvm.Messaging;
|
||||
using zaaReloaded2.ExceptionHandler;
|
||||
|
||||
namespace zaaReloaded2
|
||||
{
|
||||
@ -46,6 +47,8 @@ namespace zaaReloaded2
|
||||
|
||||
private void ThisAddIn_Startup(object sender, System.EventArgs e)
|
||||
{
|
||||
Bovender.ExceptionHandler.CentralHandler.ManageExceptionCallback += CentralHandler_ManageExceptionCallback;
|
||||
CheckForUpdates();
|
||||
}
|
||||
|
||||
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
|
||||
@ -108,6 +111,17 @@ namespace zaaReloaded2
|
||||
|
||||
#endregion
|
||||
|
||||
#region Exception handler
|
||||
|
||||
void CentralHandler_ManageExceptionCallback(object sender, Bovender.ExceptionHandler.ManageExceptionEventArgs e)
|
||||
{
|
||||
e.IsHandled = true;
|
||||
ExceptionViewModel vm = new ExceptionViewModel(e.Exception);
|
||||
vm.InjectInto<ExceptionView>().ShowDialog();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private fields
|
||||
|
||||
Ribbon _ribbon;
|
||||
|
@ -1,2 +1,2 @@
|
||||
2.0.0-alpha.1
|
||||
2.0.0.1
|
||||
2.0.0-alpha.5
|
||||
2.0.0.5
|
||||
|
@ -79,6 +79,14 @@ namespace zaaReloaded2.ViewModels
|
||||
}
|
||||
}
|
||||
|
||||
public string LicenseUrl
|
||||
{
|
||||
get
|
||||
{
|
||||
return Properties.Settings.Default.LicenseUrl.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Commands
|
||||
@ -96,6 +104,19 @@ namespace zaaReloaded2.ViewModels
|
||||
}
|
||||
}
|
||||
|
||||
public DelegatingCommand GotoLicenseCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_gotoLicenseCommand == null)
|
||||
{
|
||||
_gotoLicenseCommand = new DelegatingCommand(
|
||||
param => { Process.Start(new ProcessStartInfo(LicenseUrl)); });
|
||||
}
|
||||
return _gotoLicenseCommand;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ViewModelBase implementation
|
||||
@ -110,6 +131,7 @@ namespace zaaReloaded2.ViewModels
|
||||
#region Fields
|
||||
|
||||
DelegatingCommand _gotoHomepageCommand;
|
||||
DelegatingCommand _gotoLicenseCommand;
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
46
zaaReloaded2/ViewModels/CategoryViewModel.cs
Executable file
46
zaaReloaded2/ViewModels/CategoryViewModel.cs
Executable file
@ -0,0 +1,46 @@
|
||||
/* CategoryViewModel.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 Bovender.Mvvm.ViewModels;
|
||||
|
||||
namespace zaaReloaded2.ViewModels
|
||||
{
|
||||
/// <summary>
|
||||
/// A simple view model that can be used to categorize items
|
||||
/// in a tree view. It has a custom DisplayString and holds
|
||||
/// a collection of child view model items.
|
||||
/// </summary>
|
||||
class CategoryViewModel : ViewModelBase
|
||||
{
|
||||
public IEnumerable<ViewModelBase> Children { get; private set; }
|
||||
|
||||
public CategoryViewModel(string name, IEnumerable<ViewModelBase> children)
|
||||
{
|
||||
DisplayString = name;
|
||||
Children = children;
|
||||
}
|
||||
|
||||
public override object RevealModelObject()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
71
zaaReloaded2/ViewModels/ControlElementViewModel.cs
Executable file
71
zaaReloaded2/ViewModels/ControlElementViewModel.cs
Executable file
@ -0,0 +1,71 @@
|
||||
/* ElementViewModelBase.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 Bovender.Mvvm.ViewModels;
|
||||
using zaaReloaded2.Controller.Elements;
|
||||
using System.Diagnostics;
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
namespace zaaReloaded2.ViewModels
|
||||
{
|
||||
public class ControlElementViewModel : ElementViewModel
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <summary>
|
||||
/// Gets a collection of child ElementViewModels.
|
||||
/// </summary>
|
||||
public ObservableCollection<ElementViewModel> Elements { get; protected set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public ControlElementViewModel() : this(null) { }
|
||||
|
||||
public ControlElementViewModel(ControlElementBase controlElement)
|
||||
: base(controlElement)
|
||||
{
|
||||
Elements = new ObservableCollection<ElementViewModel>();
|
||||
if (controlElement != null)
|
||||
{
|
||||
foreach (FormatElementBase childElement in controlElement.FormatElements)
|
||||
{
|
||||
FormatElementViewModel childVM = new FormatElementViewModel(childElement);
|
||||
Elements.Add(childVM);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public methods
|
||||
|
||||
public void AddChildElement(FormatElementViewModel viewModel)
|
||||
{
|
||||
Elements.Add(viewModel);
|
||||
ControlElementBase e = Element as ControlElementBase;
|
||||
e.FormatElements.Add(viewModel.RevealModelObject() as FormatElementBase);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
196
zaaReloaded2/ViewModels/ElementPickerViewModel.cs
Executable file
196
zaaReloaded2/ViewModels/ElementPickerViewModel.cs
Executable file
@ -0,0 +1,196 @@
|
||||
/* ElementPickerViewModel.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 Bovender.Mvvm;
|
||||
using Bovender.Mvvm.Messaging;
|
||||
using Bovender.Mvvm.ViewModels;
|
||||
using System.Collections.ObjectModel;
|
||||
using zaaReloaded2.Controller.Elements;
|
||||
|
||||
namespace zaaReloaded2.ViewModels
|
||||
{
|
||||
/// <summary>
|
||||
/// View model that presents a list of zaaReloaded2.Contorller.Elements.ElementBase
|
||||
/// classes to choose from.
|
||||
/// </summary>
|
||||
class ElementPickerViewModel : ViewModelBase
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <summary>
|
||||
/// A two-dimensional tree
|
||||
/// </summary>
|
||||
public IList<CategoryViewModel> Categories { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the currently selected element, or null if no element is selected.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// TODO: Raise PropertyChanged event.
|
||||
/// </remarks>
|
||||
public ElementViewModel Selected { get; private set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Commands
|
||||
|
||||
public DelegatingCommand ChooseElementCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_chooseElementCommand == null)
|
||||
{
|
||||
_chooseElementCommand = new DelegatingCommand(
|
||||
param => DoChooseElement(),
|
||||
param => CanChooseElement());
|
||||
}
|
||||
return _chooseElementCommand;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Messages
|
||||
|
||||
/// <summary>
|
||||
/// A message that is sent out when an element has been chosen;
|
||||
/// the message content is the element's view model with the element
|
||||
/// wrapped inside.
|
||||
/// </summary>
|
||||
public Message<ViewModelMessageContent> ElementChosenMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_elementChosenMessage == null)
|
||||
{
|
||||
_elementChosenMessage = new Message<ViewModelMessageContent>();
|
||||
}
|
||||
return _elementChosenMessage;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public ElementPickerViewModel(bool allowControlElements)
|
||||
{
|
||||
Categories = new List<CategoryViewModel>();
|
||||
if (allowControlElements)
|
||||
{
|
||||
Categories.Add(
|
||||
new CategoryViewModel(
|
||||
"Kontroll-Elemente",
|
||||
new Collection<ViewModelBase>()
|
||||
{
|
||||
CreateControlElementViewModel(new SelectFirstDay()),
|
||||
CreateControlElementViewModel(new SelectLastDay()),
|
||||
CreateControlElementViewModel(new SelectEachDay())
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
Categories.Add(
|
||||
new CategoryViewModel(
|
||||
"Ausgabe-Elemente",
|
||||
new Collection<ViewModelBase>()
|
||||
{
|
||||
CreateFormatElementViewModel("Laborparameter", new Items()),
|
||||
CreateFormatElementViewModel("Beliebiger Text", new CustomText()),
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private methods
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new ControlElementViewModel that wraps a ControlElementBase
|
||||
/// object. The display string of the ControlElementViewModel is taken
|
||||
/// from the canonical Label of the control element.
|
||||
/// </summary>
|
||||
ViewModelBase CreateControlElementViewModel(ControlElementBase element)
|
||||
{
|
||||
ControlElementViewModel vm = new ControlElementViewModel(element);
|
||||
vm.DisplayString = element.Label;
|
||||
vm.PropertyChanged += ElementViewModel_PropertyChanged;
|
||||
return vm;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new FormatElementViewModel that wraps a FormatElementBase
|
||||
/// object and has a custom display string. The custom display string
|
||||
/// is necessary because format elements do not have a canonical label.
|
||||
/// </summary>
|
||||
ViewModelBase CreateFormatElementViewModel(string name, FormatElementBase element)
|
||||
{
|
||||
FormatElementViewModel vm = new FormatElementViewModel(element);
|
||||
vm.DisplayString = name;
|
||||
vm.PropertyChanged += ElementViewModel_PropertyChanged;
|
||||
return vm;
|
||||
}
|
||||
|
||||
void ElementViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == "IsSelected")
|
||||
{
|
||||
// Casting sender as ElementViewModel may result in Null, but this
|
||||
// is a desired effect because category headings may be selected
|
||||
// in a view, but are not valid ElementViewModels that we could
|
||||
// 'choose'.
|
||||
Selected = sender as ElementViewModel;
|
||||
}
|
||||
}
|
||||
|
||||
void DoChooseElement()
|
||||
{
|
||||
if (CanChooseElement())
|
||||
{
|
||||
ElementChosenMessage.Send(new ViewModelMessageContent(Selected));
|
||||
}
|
||||
}
|
||||
|
||||
bool CanChooseElement()
|
||||
{
|
||||
return Selected != null;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Implementation ov ViewModelBase
|
||||
|
||||
public override object RevealModelObject()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
|
||||
DelegatingCommand _chooseElementCommand;
|
||||
Message<ViewModelMessageContent> _elementChosenMessage;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
73
zaaReloaded2/ViewModels/ElementViewModel.cs
Executable file
73
zaaReloaded2/ViewModels/ElementViewModel.cs
Executable file
@ -0,0 +1,73 @@
|
||||
/* ElementViewModel.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.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Bovender.Mvvm.ViewModels;
|
||||
using zaaReloaded2.Controller.Elements;
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
namespace zaaReloaded2.ViewModels
|
||||
{
|
||||
public abstract class ElementViewModel : ViewModelBase
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <summary>
|
||||
/// Gets the label of the wrapped element.
|
||||
/// </summary>
|
||||
public virtual string Label
|
||||
{
|
||||
[DebuggerStepThrough]
|
||||
get
|
||||
{
|
||||
return Element.Label;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public ElementViewModel() { }
|
||||
|
||||
public ElementViewModel(ElementBase element)
|
||||
{
|
||||
Element = element;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Protected properties
|
||||
|
||||
protected ElementBase Element { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Implementation of ViewModelBase
|
||||
|
||||
public override object RevealModelObject()
|
||||
{
|
||||
return Element;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
56
zaaReloaded2/ViewModels/FormatElementViewModel.cs
Executable file
56
zaaReloaded2/ViewModels/FormatElementViewModel.cs
Executable file
@ -0,0 +1,56 @@
|
||||
/* FormatElementViewModel.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.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using zaaReloaded2.Controller.Elements;
|
||||
|
||||
namespace zaaReloaded2.ViewModels
|
||||
{
|
||||
public class FormatElementViewModel : ElementViewModel
|
||||
{
|
||||
#region Public properties
|
||||
|
||||
public string Content
|
||||
{
|
||||
[DebuggerStepThrough]
|
||||
get { return ((FormatElementBase)Element).Content; }
|
||||
set
|
||||
{
|
||||
((FormatElementBase)Element).Content = value;
|
||||
OnPropertyChanged("Content");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public FormatElementViewModel() : base() { }
|
||||
|
||||
public FormatElementViewModel(FormatElementBase formatElement)
|
||||
: this()
|
||||
{
|
||||
Element = formatElement;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
343
zaaReloaded2/ViewModels/SettingsRepositoryViewModel.cs
Executable file
343
zaaReloaded2/ViewModels/SettingsRepositoryViewModel.cs
Executable file
@ -0,0 +1,343 @@
|
||||
/* SettingsRepositoryViewModel.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 Bovender.Mvvm;
|
||||
using Bovender.Mvvm.ViewModels;
|
||||
using Bovender.Mvvm.Messaging;
|
||||
using zaaReloaded2.Controller;
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
namespace zaaReloaded2.ViewModels
|
||||
{
|
||||
public class SettingsRepositoryViewModel : ViewModelBase
|
||||
{
|
||||
#region Properties
|
||||
|
||||
public ObservableCollection<SettingsViewModel> SettingsList { get; private set; }
|
||||
|
||||
public SettingsViewModel Selected { get; private set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Commands
|
||||
|
||||
public DelegatingCommand AddSettingsCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_addSettingsCommand == null)
|
||||
{
|
||||
_addSettingsCommand = new DelegatingCommand(
|
||||
param => DoAddSettings());
|
||||
}
|
||||
return _addSettingsCommand;
|
||||
}
|
||||
}
|
||||
|
||||
public DelegatingCommand EditSettingsCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_editSettingsCommand == null)
|
||||
{
|
||||
_editSettingsCommand = new DelegatingCommand(
|
||||
param => DoEditSettings(),
|
||||
param => CanEditSettings());
|
||||
}
|
||||
return _editSettingsCommand;
|
||||
}
|
||||
}
|
||||
|
||||
public DelegatingCommand UseSettingsCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_useSettingsCommand == null)
|
||||
{
|
||||
_useSettingsCommand = new DelegatingCommand(
|
||||
param => DoUseSettings(),
|
||||
param => CanUseSettings());
|
||||
}
|
||||
return _useSettingsCommand;
|
||||
}
|
||||
}
|
||||
|
||||
public DelegatingCommand DeleteSettingsCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_deleteSettingsCommand == null)
|
||||
{
|
||||
_deleteSettingsCommand = new DelegatingCommand(
|
||||
param => DoDeleteSettings(),
|
||||
param => CanDeleteSettings());
|
||||
}
|
||||
return _deleteSettingsCommand;
|
||||
}
|
||||
}
|
||||
|
||||
public DelegatingCommand CopySettingsCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_copySettingsCommand == null)
|
||||
{
|
||||
_copySettingsCommand = new DelegatingCommand(
|
||||
param => DoCopySettings());
|
||||
}
|
||||
return _copySettingsCommand;
|
||||
}
|
||||
}
|
||||
|
||||
public DelegatingCommand ResetSettingsCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_resetSettingsCommand == null)
|
||||
{
|
||||
_resetSettingsCommand = new DelegatingCommand(
|
||||
param => DoResetSettings());
|
||||
}
|
||||
return _resetSettingsCommand;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Messages
|
||||
|
||||
public Message<ViewModelMessageContent> EditSettingsMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_editSettingsMessage == null)
|
||||
{
|
||||
_editSettingsMessage = new Message<ViewModelMessageContent>();
|
||||
}
|
||||
return _editSettingsMessage;
|
||||
}
|
||||
}
|
||||
|
||||
public Message<ViewModelMessageContent> UseSettingsMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_useSettingsMessage == null)
|
||||
{
|
||||
_useSettingsMessage = new Message<ViewModelMessageContent>();
|
||||
}
|
||||
return _useSettingsMessage;
|
||||
}
|
||||
}
|
||||
|
||||
public Message<ViewModelMessageContent> ConfirmDeleteSettingsMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_confirmDeleteSettingsMessage == null)
|
||||
{
|
||||
_confirmDeleteSettingsMessage = new Message<ViewModelMessageContent>();
|
||||
}
|
||||
return _confirmDeleteSettingsMessage;
|
||||
}
|
||||
}
|
||||
|
||||
public Message<ViewModelMessageContent> ConfirmResetSettingsMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_confirmResetSettingsMessage == null)
|
||||
{
|
||||
_confirmResetSettingsMessage = new Message<ViewModelMessageContent>();
|
||||
}
|
||||
return _confirmResetSettingsMessage;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public SettingsRepositoryViewModel(SettingsRepository repository)
|
||||
{
|
||||
_repository = repository;
|
||||
SettingsList = new ObservableCollection<SettingsViewModel>();
|
||||
foreach (Settings s in repository.SettingsList)
|
||||
{
|
||||
SettingsViewModel vm = new SettingsViewModel(s);
|
||||
AddSettingsViewModel(vm);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private methods
|
||||
|
||||
void DoEditSettings()
|
||||
{
|
||||
if (CanEditSettings())
|
||||
{
|
||||
EditSettingsMessage.Send(new ViewModelMessageContent(Selected));
|
||||
}
|
||||
}
|
||||
|
||||
bool CanEditSettings()
|
||||
{
|
||||
return Selected != null && !IsDefaultSettings();
|
||||
}
|
||||
|
||||
void DoUseSettings()
|
||||
{
|
||||
UseSettingsMessage.Send(new ViewModelMessageContent(Selected));
|
||||
}
|
||||
|
||||
bool CanUseSettings()
|
||||
{
|
||||
return Selected != null;
|
||||
}
|
||||
|
||||
void DoAddSettings()
|
||||
{
|
||||
Settings s = new Settings("Neu");
|
||||
SettingsViewModel vm = new SettingsViewModel(s);
|
||||
_repository.SettingsList.Add(s);
|
||||
SettingsList.Add(vm);
|
||||
vm.IsSelected = true;
|
||||
}
|
||||
|
||||
bool CanDeleteSettings()
|
||||
{
|
||||
return Selected != null && !IsDefaultSettings();
|
||||
}
|
||||
|
||||
void DoDeleteSettings()
|
||||
{
|
||||
if (CanDeleteSettings())
|
||||
{
|
||||
ConfirmDeleteSettingsMessage.Send(
|
||||
new ViewModelMessageContent(Selected),
|
||||
param => ConfirmDeleteSettings(param));
|
||||
}
|
||||
}
|
||||
|
||||
void ConfirmDeleteSettings(ViewModelMessageContent content)
|
||||
{
|
||||
SettingsViewModel vm = content.ViewModel as SettingsViewModel;
|
||||
if (CanDeleteSettings() && content.Confirmed)
|
||||
{
|
||||
_repository.SettingsList.Remove(vm.RevealModelObject() as Settings);
|
||||
SettingsList.Remove(vm);
|
||||
}
|
||||
}
|
||||
|
||||
void DoResetSettings()
|
||||
{
|
||||
ConfirmResetSettingsMessage.Send(
|
||||
new ViewModelMessageContent(this),
|
||||
param => ConfirmResetSettings(param));
|
||||
}
|
||||
|
||||
void ConfirmResetSettings(ViewModelMessageContent content)
|
||||
{
|
||||
if (content.Confirmed)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void DoCopySettings()
|
||||
{
|
||||
if (Selected != null)
|
||||
{
|
||||
SettingsViewModel copy = Selected.Clone() as SettingsViewModel;
|
||||
_repository.SettingsList.Add(copy.RevealModelObject() as Settings);
|
||||
AddSettingsViewModel(copy);
|
||||
Selected.IsSelected = false;
|
||||
copy.IsSelected = true;
|
||||
}
|
||||
}
|
||||
|
||||
void SettingsViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
SettingsViewModel vm = sender as SettingsViewModel;
|
||||
if (vm != null && e.PropertyName == "IsSelected")
|
||||
{
|
||||
Selected = vm.IsSelected ? vm : null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether the selected SettingsViewModel belongs
|
||||
/// to one of the default settings.
|
||||
/// </summary>
|
||||
bool IsDefaultSettings()
|
||||
{
|
||||
if (Selected != null)
|
||||
{
|
||||
return
|
||||
(Selected.Name == zaaReloaded2.Properties.Settings.Default.SettingsNameClinic
|
||||
|| Selected.Name == zaaReloaded2.Properties.Settings.Default.SettingsNameWard);
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds a settings view model to the collection and wires the
|
||||
/// PropertyChanged event.
|
||||
/// </summary>
|
||||
/// <param name="settingsViewModel">SettingsViewModel to add.</param>
|
||||
void AddSettingsViewModel(SettingsViewModel settingsViewModel)
|
||||
{
|
||||
settingsViewModel.PropertyChanged += SettingsViewModel_PropertyChanged;
|
||||
SettingsList.Add(settingsViewModel);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Implementation of ViewModelBase
|
||||
|
||||
public override object RevealModelObject()
|
||||
{
|
||||
return _repository;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
|
||||
SettingsRepository _repository;
|
||||
DelegatingCommand _useSettingsCommand;
|
||||
DelegatingCommand _addSettingsCommand;
|
||||
DelegatingCommand _editSettingsCommand;
|
||||
DelegatingCommand _deleteSettingsCommand;
|
||||
DelegatingCommand _resetSettingsCommand;
|
||||
DelegatingCommand _copySettingsCommand;
|
||||
Message<ViewModelMessageContent> _confirmDeleteSettingsMessage;
|
||||
Message<ViewModelMessageContent> _confirmResetSettingsMessage;
|
||||
Message<ViewModelMessageContent> _editSettingsMessage;
|
||||
Message<ViewModelMessageContent> _useSettingsMessage;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
348
zaaReloaded2/ViewModels/SettingsViewModel.cs
Executable file
348
zaaReloaded2/ViewModels/SettingsViewModel.cs
Executable file
@ -0,0 +1,348 @@
|
||||
/* SettingsViewModel.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.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Bovender.Mvvm;
|
||||
using Bovender.Mvvm.ViewModels;
|
||||
using Bovender.Mvvm.Messaging;
|
||||
using zaaReloaded2.Controller;
|
||||
using zaaReloaded2.Controller.Elements;
|
||||
using zaaReloaded2.Formatter;
|
||||
|
||||
namespace zaaReloaded2.ViewModels
|
||||
{
|
||||
/// <summary>
|
||||
/// View model for the zaaReloaded2.Controller.Settings class.
|
||||
/// </summary>
|
||||
public class SettingsViewModel : ViewModelBase, ICloneable
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the Settings
|
||||
/// </summary>
|
||||
public string Name
|
||||
{
|
||||
[DebuggerStepThrough]
|
||||
get
|
||||
{
|
||||
return _settings.Name;
|
||||
}
|
||||
[DebuggerStepThrough]
|
||||
set
|
||||
{
|
||||
_settings.Name = value;
|
||||
OnPropertyChanged("Name");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Is true if the settings' name is editable.
|
||||
/// If the settings' name is a default, preconfigured name,
|
||||
/// this will be false.
|
||||
/// </summary>
|
||||
public bool IsNameEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
return (Name != Properties.Settings.Default.SettingsNameClinic) &&
|
||||
(Name != Properties.Settings.Default.SettingsNameWard);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a list of element view models.
|
||||
/// </summary>
|
||||
public IList<ElementViewModel> Elements { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the currently selected element.
|
||||
/// </summary>
|
||||
public ElementViewModel SelectedElement
|
||||
{
|
||||
get { return _selectedElement; }
|
||||
set
|
||||
{
|
||||
_selectedElement = value;
|
||||
OnPropertyChanged("SelectedElement");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns an EnumProvider object for the ReferenceStyle
|
||||
/// </summary>
|
||||
public EnumProvider<ReferenceStyle> ReferenceStyle
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_referenceStyle == null)
|
||||
{
|
||||
_referenceStyle = new EnumProvider<ReferenceStyle>(_settings.ReferenceStyle);
|
||||
}
|
||||
return _referenceStyle;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public SettingsViewModel()
|
||||
: this(new Settings())
|
||||
{ }
|
||||
|
||||
public SettingsViewModel(Settings settings)
|
||||
: base()
|
||||
{
|
||||
_settings = settings;
|
||||
Elements = new List<ElementViewModel>();
|
||||
foreach (ElementBase element in settings.Elements)
|
||||
{
|
||||
ElementViewModel vm;
|
||||
if (element is FormatElementBase)
|
||||
{
|
||||
vm = new FormatElementViewModel(element as FormatElementBase);
|
||||
}
|
||||
else if (element is ControlElementBase)
|
||||
{
|
||||
vm = new ControlElementViewModel(element as ControlElementBase);
|
||||
foreach (FormatElementViewModel childVM in ((ControlElementViewModel)vm).Elements)
|
||||
{
|
||||
childVM.PropertyChanged += ElementViewModel_PropertyChanged;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"Cannot create ViewModel for " + element.GetType().ToString());
|
||||
}
|
||||
vm.PropertyChanged += ElementViewModel_PropertyChanged;
|
||||
Elements.Add(vm);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Messages
|
||||
|
||||
public Message<ViewModelMessageContent> AddElementMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_addElementMessage == null)
|
||||
{
|
||||
_addElementMessage = new Message<ViewModelMessageContent>();
|
||||
}
|
||||
return _addElementMessage;
|
||||
}
|
||||
}
|
||||
|
||||
public Message<ViewModelMessageContent> AddChildElementMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_addChildElementMessage == null)
|
||||
{
|
||||
_addChildElementMessage = new Message<ViewModelMessageContent>();
|
||||
}
|
||||
return _addChildElementMessage;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Commands
|
||||
|
||||
public DelegatingCommand AddElementCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_addElementCommand == null)
|
||||
{
|
||||
_addElementCommand = new DelegatingCommand(
|
||||
param => DoAddElement());
|
||||
}
|
||||
return _addElementCommand;
|
||||
}
|
||||
}
|
||||
|
||||
public DelegatingCommand AddChildElementCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_addChildElementCommand == null)
|
||||
{
|
||||
_addChildElementCommand = new DelegatingCommand(
|
||||
param => DoAddChildElement(),
|
||||
param => CanAddChildElement());
|
||||
}
|
||||
return _addChildElementCommand;
|
||||
}
|
||||
}
|
||||
|
||||
public DelegatingCommand DeleteElementCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_deleteElementCommand == null)
|
||||
{
|
||||
_deleteElementCommand = new DelegatingCommand(
|
||||
param => DoDeleteElement(),
|
||||
param => CanDeleteElement());
|
||||
}
|
||||
return _deleteElementCommand;
|
||||
}
|
||||
}
|
||||
|
||||
public DelegatingCommand CopyElementCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_copyElementCommand == null)
|
||||
{
|
||||
_copyElementCommand = new DelegatingCommand(
|
||||
param => DoCopyElement(),
|
||||
param => CanCopyElement());
|
||||
}
|
||||
return _copyElementCommand;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public methods
|
||||
|
||||
/// <summary>
|
||||
/// Wires the OnProperty changed event of an ElementViewModel's
|
||||
/// wrapped model and adds the view model to the Elements collection.
|
||||
/// </summary>
|
||||
public void AddElementViewModel(ElementViewModel elementViewModel)
|
||||
{
|
||||
elementViewModel.PropertyChanged += ElementViewModel_PropertyChanged;
|
||||
Elements.Add(elementViewModel);
|
||||
_settings.Elements.Add(elementViewModel.RevealModelObject() as ElementBase);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wires the OnProperty changed event of an ElementViewModel's
|
||||
/// wrapped model and adds the view model as a child of another
|
||||
/// view model.
|
||||
/// </summary>
|
||||
public void AddChildElementViewModel(ControlElementViewModel parent, FormatElementViewModel child)
|
||||
{
|
||||
child.PropertyChanged += ElementViewModel_PropertyChanged;
|
||||
parent.AddChildElement(child);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private methods
|
||||
|
||||
void DoAddElement()
|
||||
{
|
||||
// Create a new element picker; it will automatically create and
|
||||
// send us a new element view model if one is chosen by the view.
|
||||
ElementPickerViewModel picker = new ElementPickerViewModel(true);
|
||||
picker.ElementChosenMessage.Sent += (sender, args) =>
|
||||
{
|
||||
ElementViewModel newVM = args.Content.ViewModel as ElementViewModel;
|
||||
AddElementViewModel(newVM);
|
||||
};
|
||||
AddElementMessage.Send(new ViewModelMessageContent(picker));
|
||||
}
|
||||
|
||||
void DoAddChildElement()
|
||||
{
|
||||
if (CanAddChildElement())
|
||||
{
|
||||
// Create a new element picker; it will automatically create and
|
||||
// send us a new element view model if one is chosen by the view.
|
||||
ElementPickerViewModel picker = new ElementPickerViewModel(false);
|
||||
picker.ElementChosenMessage.Sent += (sender, args) =>
|
||||
{
|
||||
FormatElementViewModel newVM = args.Content.ViewModel as FormatElementViewModel;
|
||||
AddChildElementViewModel(SelectedElement as ControlElementViewModel, newVM);
|
||||
};
|
||||
AddChildElementMessage.Send(new ViewModelMessageContent(picker));
|
||||
}
|
||||
}
|
||||
|
||||
bool CanAddChildElement()
|
||||
{
|
||||
return SelectedElement is ControlElementViewModel;
|
||||
}
|
||||
|
||||
void DoDeleteElement() { }
|
||||
|
||||
bool CanDeleteElement() { return _selectedElement != null; }
|
||||
|
||||
void DoCopyElement() { }
|
||||
|
||||
bool CanCopyElement() { return _selectedElement != null; }
|
||||
|
||||
/// <summary>
|
||||
/// Sets or unsets the SelectedElement property whenever the IsSelected
|
||||
/// property of an ElementViewModel changes.
|
||||
/// </summary>
|
||||
void ElementViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
ElementViewModel vm = sender as ElementViewModel;
|
||||
if (vm != null && e.PropertyName == "IsSelected")
|
||||
{
|
||||
SelectedElement = vm.IsSelected ? vm : null;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Implementation of ViewModelBase
|
||||
|
||||
public override object RevealModelObject()
|
||||
{
|
||||
return _settings;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Implementation of ICloneable
|
||||
|
||||
public object Clone()
|
||||
{
|
||||
return new SettingsViewModel(_settings.Clone() as Settings);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
|
||||
Settings _settings;
|
||||
DelegatingCommand _addElementCommand;
|
||||
DelegatingCommand _addChildElementCommand;
|
||||
DelegatingCommand _deleteElementCommand;
|
||||
DelegatingCommand _copyElementCommand;
|
||||
Message<ViewModelMessageContent> _addElementMessage;
|
||||
Message<ViewModelMessageContent> _addChildElementMessage;
|
||||
ElementViewModel _selectedElement;
|
||||
EnumProvider<ReferenceStyle> _referenceStyle;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -32,9 +32,15 @@
|
||||
<TextBlock TextAlignment="Center" Text="{Binding Version}" Margin="0, 5, 0, 10" />
|
||||
<TextBlock TextAlignment="Center" Text="{Binding CopyrightString}" Margin="0, 0, 0, 10" />
|
||||
<TextBlock TextAlignment="Center" Margin="0, 10, 0, 10">
|
||||
Homepage:
|
||||
<Hyperlink Command="{Binding GotoHomepageCommand}">
|
||||
<TextBlock Text="{Binding Homepage}" />
|
||||
</Hyperlink>
|
||||
<LineBreak />
|
||||
Lizenz:
|
||||
<Hyperlink Command="{Binding GotoLicenseCommand}">
|
||||
<TextBlock Text="Apache 2.0" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0, 10, 0, 0">
|
||||
<Button Content="Schließen" Command="{Binding CloseViewCommand}" />
|
||||
|
60
zaaReloaded2/Views/SettingsRepositoryView.xaml
Executable file
60
zaaReloaded2/Views/SettingsRepositoryView.xaml
Executable file
@ -0,0 +1,60 @@
|
||||
<!--
|
||||
AboutView - Copy.xaml
|
||||
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.
|
||||
-->
|
||||
|
||||
<Window x:Class="zaaReloaded2.Views.SettingsRepositoryView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:b="clr-namespace:Bovender.Mvvm.Views.Settings;assembly=Bovender"
|
||||
SizeToContent="WidthAndHeight" ResizeMode="CanResizeWithGrip" ShowInTaskbar="False"
|
||||
b:WindowState.CenterScreen="True" b:WindowState.Save="True"
|
||||
Title="Stil auswählen"
|
||||
>
|
||||
<Window.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="/zaaReloaded2;component/style.xaml" />
|
||||
<ResourceDictionary>
|
||||
<Style x:Key="settingsListItem" TargetType="{x:Type ListBoxItem}">
|
||||
<Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</Window.Resources>
|
||||
<StackPanel Margin="10">
|
||||
<Label Target="{Binding ElementName=settingsList}">Bitte Stil auswählen:</Label>
|
||||
<DockPanel Margin="0 5 0 0">
|
||||
<StackPanel DockPanel.Dock="Right" Margin="10 0 0 0">
|
||||
<Button Command="{Binding UseSettingsCommand}" Content="Wählen" Margin="0 0 0 5" />
|
||||
<Button Command="{Binding AddSettingsCommand}" Content="Hinzufügen" Margin="0 10 0 5" />
|
||||
<Button Command="{Binding EditSettingsCommand}" Content="Bearbeiten" Margin="0 0 0 5" />
|
||||
<Button Command="{Binding DeleteSettingsCommand}" Content="Entfernen" Margin="0 0 0 5" />
|
||||
<Button Command="{Binding CopySettingsCommand}" Content="Kopieren" Margin="0 0 0 5" />
|
||||
<Button Command="{Binding CloseViewCommand}" Content="Abbruch" Margin="0 10 0 0" IsCancel="True" />
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ListBox ItemsSource="{Binding SettingsList}"
|
||||
DisplayMemberPath="Name"
|
||||
ItemContainerStyle="{StaticResource settingsListItem}"
|
||||
x:Name="settingsList"
|
||||
MinWidth="240" MinHeight="240" />
|
||||
</StackPanel>
|
||||
</DockPanel>
|
||||
</StackPanel>
|
||||
</Window>
|
33
zaaReloaded2/Views/SettingsRepositoryView.xaml.cs
Executable file
33
zaaReloaded2/Views/SettingsRepositoryView.xaml.cs
Executable file
@ -0,0 +1,33 @@
|
||||
/* SettingsRepositoryView.xaml.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.Windows;
|
||||
|
||||
namespace zaaReloaded2.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for SettingsRepositoryView.xaml
|
||||
/// </summary>
|
||||
public partial class SettingsRepositoryView : Window
|
||||
{
|
||||
public SettingsRepositoryView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
@ -47,6 +47,51 @@
|
||||
<setting name="ExceptionPostUrl" serializeAs="String">
|
||||
<value>http://zaa.nephrowiki.de/postreport.php</value>
|
||||
</setting>
|
||||
<setting name="LicenseUrl" serializeAs="String">
|
||||
<value>http://www.apache.org/licenses/LICENSE-2.0</value>
|
||||
</setting>
|
||||
<setting name="SettingsNameWard" serializeAs="String">
|
||||
<value>Standard für Station</value>
|
||||
</setting>
|
||||
<setting name="SettingsNameClinic" serializeAs="String">
|
||||
<value>Standard für NepA</value>
|
||||
</setting>
|
||||
<setting name="DefaultItemsClinicalChem" serializeAs="String">
|
||||
<value>Klinische Chemie: Na, K, Cl, Mg, Pi, Alb, Prot, LDH, Hsre</value>
|
||||
</setting>
|
||||
<setting name="DefaultItemsHematology" serializeAs="String">
|
||||
<value>Hämatologie: Hb, Hkt, Reti, Leu, Thr, Neu, HbA1c</value>
|
||||
</setting>
|
||||
<setting name="DefaultItemsCoagulation" serializeAs="String">
|
||||
<value>Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa</value>
|
||||
</setting>
|
||||
<setting name="DefaultItemsSpotUrine" serializeAs="String">
|
||||
<value>Spot-Urin: U-*</value>
|
||||
</setting>
|
||||
<setting name="DefaultItemsCollectedUrine" serializeAs="String">
|
||||
<value>Sammelurin: SU-*</value>
|
||||
</setting>
|
||||
<setting name="DefaultItemsOther" serializeAs="String">
|
||||
<value>Weitere Werte: *</value>
|
||||
</setting>
|
||||
<setting name="DefaultItemsCardio" serializeAs="String">
|
||||
<value>Kardiale Marker: CK, CKMB, Trop, NTproBNP</value>
|
||||
</setting>
|
||||
<setting name="DefaultItemsLipids" serializeAs="String">
|
||||
<value>Blutfette: TG, Chol, LDL, HDL, Lp(a)</value>
|
||||
</setting>
|
||||
<setting name="DefaultItemsLiver" serializeAs="String">
|
||||
<value>Leber: GOT, GGT, GPT, AP, Bili, CHE</value>
|
||||
</setting>
|
||||
<setting name="DefaultItemsKidney" serializeAs="String">
|
||||
<value>Niere: Krea, Hst, eGFR</value>
|
||||
</setting>
|
||||
<setting name="DefaultItemsInflammation" serializeAs="String">
|
||||
<value>Entzündung/Immunsystem: CRP, Pct, C3, C4</value>
|
||||
</setting>
|
||||
<setting name="DefaultItemsDrugs" serializeAs="String">
|
||||
<value>Medikamente: TAC, CSA, SIR, Vancomycin, Gentamicin, Tobramicin</value>
|
||||
</setting>
|
||||
</zaaReloaded2.Properties.Settings>
|
||||
</applicationSettings>
|
||||
<userSettings>
|
||||
@ -54,6 +99,9 @@
|
||||
<setting name="LastUpdateCheck" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="LastSettings" serializeAs="String">
|
||||
<value>00000000-0000-0000-0000-000000000000</value>
|
||||
</setting>
|
||||
</zaaReloaded2.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
@ -176,6 +176,7 @@
|
||||
<Compile Include="Controller\Elements\CustomText.cs" />
|
||||
<Compile Include="Controller\Settings.cs" />
|
||||
<Compile Include="Controller\SettingsRepository.cs" />
|
||||
<Compile Include="Demo\Demo.cs" />
|
||||
<Compile Include="ExceptionHandler\ExceptionDetailView.xaml.cs" />
|
||||
<Compile Include="ExceptionHandler\ExceptionView.xaml.cs" />
|
||||
<Compile Include="ExceptionHandler\ExceptionViewModel.cs" />
|
||||
@ -184,6 +185,7 @@
|
||||
<Compile Include="ExceptionHandler\SubmissionProcessAction.cs" />
|
||||
<Compile Include="ExceptionHandler\SubmissionProcessView.xaml.cs" />
|
||||
<Compile Include="ExceptionHandler\SubmissionSuccessView.xaml.cs" />
|
||||
<Compile Include="Formatter\DanielsStyle.cs" />
|
||||
<Compile Include="Formatter\DocumentWriter.cs" />
|
||||
<Compile Include="Ribbon.cs" />
|
||||
<Compile Include="Thesaurus\ThesaurusBase.cs" />
|
||||
@ -218,10 +220,20 @@
|
||||
</Compile>
|
||||
<Compile Include="Updater\Updater.cs" />
|
||||
<Compile Include="ViewModels\AboutViewModel.cs" />
|
||||
<Compile Include="ViewModels\CategoryViewModel.cs" />
|
||||
<Compile Include="ViewModels\ElementPickerViewModel.cs" />
|
||||
<Compile Include="ViewModels\ElementViewModel.cs" />
|
||||
<Compile Include="ViewModels\FormatElementViewModel.cs" />
|
||||
<Compile Include="ViewModels\ControlElementViewModel.cs" />
|
||||
<Compile Include="ViewModels\SettingsRepositoryViewModel.cs" />
|
||||
<Compile Include="Views\SettingsRepositoryView.xaml.cs">
|
||||
<DependentUpon>SettingsRepositoryView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\AboutView.xaml.cs">
|
||||
<DependentUpon>AboutView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Updater\Version.cs" />
|
||||
<Compile Include="ViewModels\SettingsViewModel.cs" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
@ -232,6 +244,7 @@
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="app.config" />
|
||||
<EmbeddedResource Include="Demo\Demo.docx" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
@ -284,6 +297,10 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Resource>
|
||||
<Page Include="Views\SettingsRepositoryView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Views\AboutView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
@ -293,7 +310,9 @@
|
||||
<EmbeddedResource Include="VERSION" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Ribbon.xml" />
|
||||
<EmbeddedResource Include="Ribbon.xml">
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Icons\i.png" />
|
||||
@ -301,6 +320,15 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Icons\f.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Icons\dk.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Icons\fff.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Icons\d.png" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
|
Reference in New Issue
Block a user