Skip to content

Commit

Permalink
Performance fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
chandramouleswaran committed Sep 8, 2013
1 parent 84234a7 commit 7356beb
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 27 deletions.
28 changes: 24 additions & 4 deletions Src/Test/Wide-MD/MDWorkspace.cs
Expand Up @@ -25,10 +25,11 @@ namespace WideMD
internal class MDWorkspace : AbstractWorkspace
{
private string _document;
private ILoggerService _logger;
private const string _title = "Wide MD";

public MDWorkspace(IUnityContainer container, IEventAggregator eventAggregator, ILoggerService logger)
: base(container, eventAggregator, logger)
public MDWorkspace(IUnityContainer container, IEventAggregator eventAggregator)
: base(container, eventAggregator)
{
IEventAggregator aggregator = container.Resolve<IEventAggregator>();
aggregator.GetEvent<ActiveContentChangedEvent>().Subscribe(ContentChanged);
Expand Down Expand Up @@ -57,16 +58,35 @@ public override string Title
}
}

private ILoggerService Logger
{
get
{
if (_logger == null)
_logger = _container.Resolve<ILoggerService>();
return _logger;
}
}

private void ContentChanged(ContentViewModel model)
{
_document = model == null ? "" : model.Title;
RaisePropertyChanged("Title");
if(model != null)
{
Logger.Log("Active document changed to " + model.Title, LogCategory.Info, LogPriority.None);
}
}

protected override void ModelChangedEventHandler(object sender, PropertyChangedEventArgs e)
{
ContentChanged(this.ActiveDocument);
base.ModelChangedEventHandler(sender, e);
string newValue = ActiveDocument == null ? "" : ActiveDocument.Title;
if (_document != newValue)
{
_document = newValue;
RaisePropertyChanged("Title");
base.ModelChangedEventHandler(sender, e);
}
}
}
}
5 changes: 0 additions & 5 deletions Src/Wide/Core/TextDocument/TextModel.cs
Expand Up @@ -66,11 +66,6 @@ protected internal set
{
OldText = Document.Text;
}
else
{
_commandManager.Refresh();
_menuService.Refresh();
}
}
}

Expand Down
5 changes: 2 additions & 3 deletions Src/Wide/Core/Workspace.cs
Expand Up @@ -27,9 +27,8 @@ internal class Workspace : AbstractWorkspace
/// </summary>
/// <param name="container">The injected container - can be used by custom flavors of workspace</param>
/// <param name="eventAggregator">The event aggregator.</param>
/// <param name="logger">The logger.</param>
public Workspace(IUnityContainer container, IEventAggregator eventAggregator, ILoggerService logger)
: base(container, eventAggregator, logger)
public Workspace(IUnityContainer container, IEventAggregator eventAggregator)
: base(container, eventAggregator)
{
}
}
Expand Down
21 changes: 6 additions & 15 deletions Src/Wide/Interfaces/AbstractWorkspace.cs
Expand Up @@ -33,17 +33,12 @@ public abstract class AbstractWorkspace : ViewModelBase, IWorkspace
/// <summary>
/// The injected container
/// </summary>
private readonly IUnityContainer _container;
protected readonly IUnityContainer _container;

/// <summary>
/// The injected event aggregator
/// </summary>
private readonly IEventAggregator _eventAggregator;

/// <summary>
/// The injected container
/// </summary>
private readonly ILoggerService _logger;
protected readonly IEventAggregator _eventAggregator;

/// <summary>
/// The active document
Expand Down Expand Up @@ -89,12 +84,10 @@ public abstract class AbstractWorkspace : ViewModelBase, IWorkspace
/// </summary>
/// <param name="container">The injected container.</param>
/// <param name="eventAggregator">The event aggregator.</param>
/// <param name="logger">The logger.</param>
protected AbstractWorkspace(IUnityContainer container, IEventAggregator eventAggregator, ILoggerService logger)
protected AbstractWorkspace(IUnityContainer container, IEventAggregator eventAggregator)
{
_container = container;
_eventAggregator = eventAggregator;
_logger = logger;
_docs = new ObservableCollection<ContentViewModel>();
_docs.CollectionChanged += Docs_CollectionChanged;
_tools = new ObservableCollection<ToolViewModel>();
Expand Down Expand Up @@ -140,7 +133,7 @@ public IStatusbarService StatusBar
/// The list of documents which are open in the workspace
/// </summary>
/// <value>The documents.</value>
public ObservableCollection<ContentViewModel> Documents
public virtual ObservableCollection<ContentViewModel> Documents
{
get { return _docs; }
set { _docs = value; }
Expand All @@ -150,7 +143,7 @@ public ObservableCollection<ContentViewModel> Documents
/// The list of tools that are available in the workspace
/// </summary>
/// <value>The tools.</value>
public ObservableCollection<ToolViewModel> Tools
public virtual ObservableCollection<ToolViewModel> Tools
{
get { return _tools; }
set { _tools = value; }
Expand All @@ -160,7 +153,7 @@ public ObservableCollection<ToolViewModel> Tools
/// The current document which is active in the workspace
/// </summary>
/// <value>The active document.</value>
public ContentViewModel ActiveDocument
public virtual ContentViewModel ActiveDocument
{
get { return _activeDocument; }
set
Expand All @@ -172,8 +165,6 @@ public ContentViewModel ActiveDocument
_commandManager.Refresh();
_menus.Refresh();
_eventAggregator.GetEvent<ActiveContentChangedEvent>().Publish(_activeDocument);
_logger.Log("Active document changed to " + _activeDocument.Title, LogCategory.Info,
LogPriority.None);
}
}
}
Expand Down

0 comments on commit 7356beb

Please sign in to comment.