diff options
| author | Jason Lepp <jlepp@arcresources.com> | 2010-10-15 15:21:13 -0600 |
|---|---|---|
| committer | Jason Lepp <jlepp@arcresources.com> | 2010-10-15 15:21:13 -0600 |
| commit | 50b064f27dd3e67aa77ae9e0c7da35b9b951e463 (patch) | |
| tree | 98766cba474b97a1a22859a2c46b90748fa976b5 | |
| parent | 6a2b2f2a767b2f75487fb37330bf5c22cffe6fc9 (diff) | |
Hooked up the new button
| -rwxr-xr-x | src/MVPtoMVVM.mvp/MvpWindow.xaml | 10 | ||||
| -rwxr-xr-x | src/MVPtoMVVM.mvp/MvpWindow.xaml.cs | 8 | ||||
| -rwxr-xr-x | src/MVPtoMVVM.mvp/TodoItemView.xaml.cs | 2 | ||||
| -rwxr-xr-x | src/MVPtoMVVM/mappers/ITodoItemPresenterMapper.cs | 1 | ||||
| -rwxr-xr-x | src/MVPtoMVVM/mappers/TodoItemPresenterMapper.cs | 2 | ||||
| -rwxr-xr-x | src/MVPtoMVVM/presenters/IMvpPresenter.cs | 2 | ||||
| -rwxr-xr-x | src/MVPtoMVVM/presenters/MvpPresenter.cs | 20 | ||||
| -rwxr-xr-x | src/MVPtoMVVM/repositories/TodoItemRepository.cs | 6 | ||||
| -rwxr-xr-x | src/MVPtoMVVM/views/IMvpView.cs | 1 | ||||
| -rwxr-xr-x | src/MVPtoMVVM/views/ITodoItemView.cs | 2 |
10 files changed, 46 insertions, 8 deletions
diff --git a/src/MVPtoMVVM.mvp/MvpWindow.xaml b/src/MVPtoMVVM.mvp/MvpWindow.xaml index ffc17f7..792337f 100755 --- a/src/MVPtoMVVM.mvp/MvpWindow.xaml +++ b/src/MVPtoMVVM.mvp/MvpWindow.xaml @@ -2,7 +2,11 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
- <StackPanel>
- <ListView Name="todoItemsList"></ListView>
- </StackPanel>
+ <DockPanel LastChildFill="False">
+ <ListView Name="todoItemsList" DockPanel.Dock="Top" />
+ <DockPanel DockPanel.Dock="Bottom" LastChildFill="False">
+ <Button Content="Cancel Changes" Name="cancelButton" DockPanel.Dock="Right"/>
+ <Button Content="Add New Item" Name="newItemButton" DockPanel.Dock="Right"/>
+ </DockPanel>
+ </DockPanel>
</Window>
diff --git a/src/MVPtoMVVM.mvp/MvpWindow.xaml.cs b/src/MVPtoMVVM.mvp/MvpWindow.xaml.cs index 9396c34..e1f77eb 100755 --- a/src/MVPtoMVVM.mvp/MvpWindow.xaml.cs +++ b/src/MVPtoMVVM.mvp/MvpWindow.xaml.cs @@ -15,7 +15,8 @@ namespace MVPtoMVVM.mvp InitializeComponent();
presenter = ObjectFactory.GetInstance<IMvpPresenter>();
presenter.SetView(this);
-
+ newItemButton.Click += (o, e) => presenter.AddNewItem();
+ cancelButton.Click += (o, e) => presenter.CancelAllChanges();
}
public void SetTodoItems(IEnumerable<ITodoItemPresenter> presenters)
@@ -23,5 +24,10 @@ namespace MVPtoMVVM.mvp todoItemsList.ItemsSource = presenters.Select(x => new TodoItemView(x));
}
+ public IEnumerable<ITodoItemPresenter> GetTodoItems()
+ {
+ return todoItemsList.ItemsSource.Cast<ITodoItemView>().Select(x => x.Presenter);
+ }
+
}
}
diff --git a/src/MVPtoMVVM.mvp/TodoItemView.xaml.cs b/src/MVPtoMVVM.mvp/TodoItemView.xaml.cs index 53586ec..8be4149 100755 --- a/src/MVPtoMVVM.mvp/TodoItemView.xaml.cs +++ b/src/MVPtoMVVM.mvp/TodoItemView.xaml.cs @@ -11,6 +11,7 @@ namespace MVPtoMVVM.mvp {
public TodoItemView(ITodoItemPresenter presenter)
{
+ Presenter = presenter;
InitializeComponent();
presenter.SetView(this);
saveButton.Click += (o, e) => presenter.SaveItem();
@@ -37,5 +38,6 @@ namespace MVPtoMVVM.mvp set { saveButton.IsEnabled = value; }
}
+ public ITodoItemPresenter Presenter { get; private set; }
}
}
diff --git a/src/MVPtoMVVM/mappers/ITodoItemPresenterMapper.cs b/src/MVPtoMVVM/mappers/ITodoItemPresenterMapper.cs index e1d7147..904444c 100755 --- a/src/MVPtoMVVM/mappers/ITodoItemPresenterMapper.cs +++ b/src/MVPtoMVVM/mappers/ITodoItemPresenterMapper.cs @@ -7,6 +7,7 @@ namespace MVPtoMVVM.mappers {
public interface ITodoItemPresenterMapper
{
+ ITodoItemPresenter MapFrom(TodoItem item);
IEnumerable<ITodoItemPresenter> MapAll(IEnumerable<TodoItem> items);
}
}
\ No newline at end of file diff --git a/src/MVPtoMVVM/mappers/TodoItemPresenterMapper.cs b/src/MVPtoMVVM/mappers/TodoItemPresenterMapper.cs index 3c4e984..69d56c5 100755 --- a/src/MVPtoMVVM/mappers/TodoItemPresenterMapper.cs +++ b/src/MVPtoMVVM/mappers/TodoItemPresenterMapper.cs @@ -8,7 +8,7 @@ namespace MVPtoMVVM.mappers {
public class TodoItemPresenterMapper : ITodoItemPresenterMapper
{
- private ITodoItemPresenter MapFrom(TodoItem item)
+ public ITodoItemPresenter MapFrom(TodoItem item)
{
var presenter = ObjectFactory.GetInstance<ITodoItemPresenter>();
presenter.Id = item.Id;
diff --git a/src/MVPtoMVVM/presenters/IMvpPresenter.cs b/src/MVPtoMVVM/presenters/IMvpPresenter.cs index ccc2003..71e919f 100755 --- a/src/MVPtoMVVM/presenters/IMvpPresenter.cs +++ b/src/MVPtoMVVM/presenters/IMvpPresenter.cs @@ -5,5 +5,7 @@ namespace MVPtoMVVM.presenters public interface IMvpPresenter
{
void SetView(IMvpView view);
+ void AddNewItem();
+ void CancelAllChanges();
}
}
\ No newline at end of file diff --git a/src/MVPtoMVVM/presenters/MvpPresenter.cs b/src/MVPtoMVVM/presenters/MvpPresenter.cs index 13a9bb5..f867614 100755 --- a/src/MVPtoMVVM/presenters/MvpPresenter.cs +++ b/src/MVPtoMVVM/presenters/MvpPresenter.cs @@ -1,5 +1,7 @@ using System;
+using System.Collections.Generic;
using System.Linq;
+using MVPtoMVVM.domain;
using MVPtoMVVM.mappers;
using MVPtoMVVM.repositories;
using MVPtoMVVM.views;
@@ -24,8 +26,26 @@ namespace MVPtoMVVM.presenters InitializeView();
}
+ public void AddNewItem()
+ {
+ var items = new List<ITodoItemPresenter>(view.GetTodoItems());
+ var newItem = presenterMapper.MapFrom(new TodoItem { DueDate = DateTime.Today});
+ items.Add(newItem);
+ view.SetTodoItems(items);
+ }
+
+ public void CancelAllChanges()
+ {
+ RefreshItems();
+ }
+
private void InitializeView()
{
+ RefreshItems();
+ }
+
+ private void RefreshItems()
+ {
view.SetTodoItems(presenterMapper.MapAll(itemRepository.GetAll()));
}
}
diff --git a/src/MVPtoMVVM/repositories/TodoItemRepository.cs b/src/MVPtoMVVM/repositories/TodoItemRepository.cs index 298794c..01fcf01 100755 --- a/src/MVPtoMVVM/repositories/TodoItemRepository.cs +++ b/src/MVPtoMVVM/repositories/TodoItemRepository.cs @@ -7,13 +7,13 @@ namespace MVPtoMVVM.repositories {
public class TodoItemRepository : ITodoItemRepository
{
- private List<TodoItem> items;
+ private static readonly List<TodoItem> items = new List<TodoItem>();
private int totalItems = 0;
public TodoItemRepository()
{
- items = new List<TodoItem>();
- Save(new TodoItem {Description = "First One", DueDate = DateTime.Today});
+ if (!items.Any())
+ Save(new TodoItem {Description = "First One", DueDate = DateTime.Today});
}
public void Save(TodoItem item)
diff --git a/src/MVPtoMVVM/views/IMvpView.cs b/src/MVPtoMVVM/views/IMvpView.cs index 321df66..e3f3d4e 100755 --- a/src/MVPtoMVVM/views/IMvpView.cs +++ b/src/MVPtoMVVM/views/IMvpView.cs @@ -6,5 +6,6 @@ namespace MVPtoMVVM.views public interface IMvpView
{
void SetTodoItems(IEnumerable<ITodoItemPresenter> presenters);
+ IEnumerable<ITodoItemPresenter> GetTodoItems();
}
}
\ No newline at end of file diff --git a/src/MVPtoMVVM/views/ITodoItemView.cs b/src/MVPtoMVVM/views/ITodoItemView.cs index 79d2174..eae05fe 100755 --- a/src/MVPtoMVVM/views/ITodoItemView.cs +++ b/src/MVPtoMVVM/views/ITodoItemView.cs @@ -1,4 +1,5 @@ using System;
+using MVPtoMVVM.presenters;
namespace MVPtoMVVM.views
{
@@ -7,5 +8,6 @@ namespace MVPtoMVVM.views string Description { get; set; }
DateTime DueDate { get; set; }
bool SaveButtonEnabled { get; set; }
+ ITodoItemPresenter Presenter { get; }
}
}
\ No newline at end of file |
