Begin implemenation of format and choose style commands.
This commit is contained in:
parent
b6209731ec
commit
41b155e8be
@ -58,16 +58,12 @@ namespace zaaReloaded2.Controller
|
||||
#region Constructors
|
||||
|
||||
public Settings()
|
||||
{
|
||||
Elements = new List<ElementBase>();
|
||||
Uid = Guid.NewGuid();
|
||||
}
|
||||
: this(string.Empty, new List<ElementBase>())
|
||||
{ }
|
||||
|
||||
public Settings(string name)
|
||||
: this()
|
||||
{
|
||||
Name = name;
|
||||
}
|
||||
: this(name, null)
|
||||
{ }
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new Settings object with an initial
|
||||
@ -76,9 +72,8 @@ namespace zaaReloaded2.Controller
|
||||
/// <param name="initialElements">Set of ElementBase
|
||||
/// object (or derived ones).</param>
|
||||
public Settings(IList<ElementBase> initialElements)
|
||||
{
|
||||
Elements = initialElements;
|
||||
}
|
||||
: this(String.Empty, initialElements)
|
||||
{ }
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new Settings object with an initial
|
||||
@ -88,9 +83,10 @@ namespace zaaReloaded2.Controller
|
||||
/// object (or derived ones).</param>
|
||||
/// <param name="name">Name of these settings.</param>
|
||||
public Settings(string name, IList<ElementBase> initialElements)
|
||||
: this(initialElements)
|
||||
{
|
||||
Uid = Guid.NewGuid();
|
||||
Name = name;
|
||||
Elements = initialElements;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
12
zaaReloaded2/Properties/Settings.Designer.cs
generated
12
zaaReloaded2/Properties/Settings.Designer.cs
generated
@ -233,5 +233,17 @@ namespace zaaReloaded2.Properties {
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -71,5 +71,8 @@
|
||||
<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,6 +94,12 @@ 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();
|
||||
@ -138,6 +152,67 @@ namespace zaaReloaded2
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
@ -163,5 +238,11 @@ namespace zaaReloaded2
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
|
||||
private Office.IRibbonUI _ribbon;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -25,8 +25,9 @@
|
||||
<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." />
|
||||
<button id="zrlChooseFormat" label="Stilauswahl" image="fff.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"/>
|
||||
|
@ -119,6 +119,7 @@ namespace zaaReloaded2
|
||||
ExceptionViewModel vm = new ExceptionViewModel(e.Exception);
|
||||
vm.InjectInto<ExceptionView>().ShowDialog();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private fields
|
||||
|
@ -45,6 +45,14 @@ namespace zaaReloaded2.ViewModels
|
||||
: base(controlElement)
|
||||
{
|
||||
Elements = new ObservableCollection<ElementViewModel>();
|
||||
if (controlElement != null)
|
||||
{
|
||||
foreach (FormatElementBase childElement in controlElement.FormatElements)
|
||||
{
|
||||
FormatElementViewModel childVM = new FormatElementViewModel(childElement);
|
||||
Elements.Add(childVM);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -23,6 +23,7 @@ using Bovender.Mvvm;
|
||||
using Bovender.Mvvm.ViewModels;
|
||||
using Bovender.Mvvm.Messaging;
|
||||
using zaaReloaded2.Controller;
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
namespace zaaReloaded2.ViewModels
|
||||
{
|
||||
@ -30,7 +31,7 @@ namespace zaaReloaded2.ViewModels
|
||||
{
|
||||
#region Properties
|
||||
|
||||
public IList<SettingsViewModel> SettingsList { get; private set; }
|
||||
public ObservableCollection<SettingsViewModel> SettingsList { get; private set; }
|
||||
|
||||
public SettingsViewModel Selected { get; private set; }
|
||||
|
||||
@ -123,7 +124,7 @@ namespace zaaReloaded2.ViewModels
|
||||
|
||||
#region Messages
|
||||
|
||||
Message<ViewModelMessageContent> EditSettingsMessage
|
||||
public Message<ViewModelMessageContent> EditSettingsMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
@ -134,8 +135,8 @@ namespace zaaReloaded2.ViewModels
|
||||
return _editSettingsMessage;
|
||||
}
|
||||
}
|
||||
|
||||
Message<ViewModelMessageContent> UseSettingsMessage
|
||||
|
||||
public Message<ViewModelMessageContent> UseSettingsMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
@ -146,8 +147,8 @@ namespace zaaReloaded2.ViewModels
|
||||
return _useSettingsMessage;
|
||||
}
|
||||
}
|
||||
|
||||
Message<ViewModelMessageContent> ConfirmDeleteSettingsMessage
|
||||
|
||||
public Message<ViewModelMessageContent> ConfirmDeleteSettingsMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
@ -158,8 +159,8 @@ namespace zaaReloaded2.ViewModels
|
||||
return _confirmDeleteSettingsMessage;
|
||||
}
|
||||
}
|
||||
|
||||
Message<ViewModelMessageContent> ConfirmResetSettingsMessage
|
||||
|
||||
public Message<ViewModelMessageContent> ConfirmResetSettingsMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
@ -178,7 +179,7 @@ namespace zaaReloaded2.ViewModels
|
||||
public SettingsRepositoryViewModel(SettingsRepository repository)
|
||||
{
|
||||
_repository = repository;
|
||||
SettingsList = new List<SettingsViewModel>();
|
||||
SettingsList = new ObservableCollection<SettingsViewModel>();
|
||||
foreach (Settings s in repository.SettingsList)
|
||||
{
|
||||
SettingsViewModel vm = new SettingsViewModel(s);
|
||||
|
@ -71,14 +71,7 @@ namespace zaaReloaded2.ViewModels
|
||||
/// <summary>
|
||||
/// Gets a list of element view models.
|
||||
/// </summary>
|
||||
public IList<ElementViewModel> Elements
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_elements == null) { _elements = new List<ElementViewModel>(); }
|
||||
return _elements;
|
||||
}
|
||||
}
|
||||
public IList<ElementViewModel> Elements { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the currently selected element.
|
||||
@ -120,7 +113,7 @@ namespace zaaReloaded2.ViewModels
|
||||
: base()
|
||||
{
|
||||
_settings = settings;
|
||||
_elements = new List<ElementViewModel>();
|
||||
Elements = new List<ElementViewModel>();
|
||||
foreach (ElementBase element in settings.Elements)
|
||||
{
|
||||
ElementViewModel vm;
|
||||
@ -131,13 +124,18 @@ namespace zaaReloaded2.ViewModels
|
||||
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());
|
||||
}
|
||||
AddElementViewModel(vm);
|
||||
vm.PropertyChanged += ElementViewModel_PropertyChanged;
|
||||
Elements.Add(vm);
|
||||
}
|
||||
}
|
||||
|
||||
@ -342,7 +340,6 @@ namespace zaaReloaded2.ViewModels
|
||||
DelegatingCommand _copyElementCommand;
|
||||
Message<ViewModelMessageContent> _addElementMessage;
|
||||
Message<ViewModelMessageContent> _addChildElementMessage;
|
||||
List<ElementViewModel> _elements;
|
||||
ElementViewModel _selectedElement;
|
||||
EnumProvider<ReferenceStyle> _referenceStyle;
|
||||
|
||||
|
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();
|
||||
}
|
||||
}
|
||||
}
|
@ -99,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>
|
@ -226,6 +226,9 @@
|
||||
<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>
|
||||
@ -294,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>
|
||||
|
Loading…
Reference in New Issue
Block a user