Skip to content

Commit

Permalink
Merge branch 'vNextDialog' of https://github.com/slodge/MvvmCross int…
Browse files Browse the repository at this point in the history
…o vnext
  • Loading branch information
slodge committed Nov 21, 2012
2 parents b691503 + b52d7b6 commit 9eac64f
Show file tree
Hide file tree
Showing 119 changed files with 6,303 additions and 6,291 deletions.
Expand Up @@ -18,15 +18,15 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\bin\Debug\</OutputPath>
<OutputPath>..\..\bin\Droid\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\bin\Release\</OutputPath>
<OutputPath>..\..\bin\Droid\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
Expand Down
Expand Up @@ -18,15 +18,15 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\bin\Debug\</OutputPath>
<OutputPath>..\..\bin\Droid\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\bin\Release\</OutputPath>
<OutputPath>..\..\bin\Droid\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
Expand Down
Expand Up @@ -26,19 +26,25 @@ public static class MvxAutoViewExtensionMethods
public static IParentMenu LoadMenu<TViewModel>(this IMvxAndroidAutoView<TViewModel> view)
where TViewModel : class, IMvxViewModel
{
return view.LoadCommon<TViewModel, ParentMenuDescription, IMenu, IParentMenu>(MvxAutoViewConstants.Menu);
return view.LoadUserInterfaceCommon<TViewModel, ParentMenuDescription, IMenu, IParentMenu>(MvxAutoViewConstants.Menu);
}

public static RootElement LoadDialogRoot<TViewModel>(this IMvxAndroidAutoView<TViewModel> view)
where TViewModel : class, IMvxViewModel
{
return view.LoadCommon<TViewModel, ElementDescription, Element, RootElement>(MvxAutoViewConstants.Dialog);
return view.LoadUserInterfaceCommon<TViewModel, ElementDescription, Element, RootElement>(MvxAutoViewConstants.Dialog);
}

public static RootElement LoadDialogRoot<TViewModel>(this IMvxAndroidAutoView<TViewModel> view, ElementDescription rootDescription)
where TViewModel : class, IMvxViewModel
{
return view.LoadUserInterfaceFromDescription<TViewModel, Element, RootElement>(rootDescription);
}

public static GeneralListLayout LoadList<TViewModel>(this IMvxAndroidAutoView<TViewModel> view)
where TViewModel : class, IMvxViewModel
{
return view.LoadCommon<TViewModel, ListLayoutDescription, IListLayout, GeneralListLayout>(MvxAutoViewConstants.List);
return view.LoadUserInterfaceCommon<TViewModel, ListLayoutDescription, IListLayout, GeneralListLayout>(MvxAutoViewConstants.List);
}

private static string GetJsonText<TViewModel>(this IMvxAndroidAutoView<TViewModel> view, string key)
Expand All @@ -54,23 +60,23 @@ private static string GetJsonText<TViewModel>(this IMvxAndroidAutoView<TViewMode
return json;
}

private static TResult LoadCommon<TViewModel, TDescription, TBuildable, TResult>(this IMvxAndroidAutoView<TViewModel> view, string key)
private static TResult LoadUserInterfaceCommon<TViewModel, TDescription, TBuildable, TResult>(this IMvxAndroidAutoView<TViewModel> view, string key)
where TViewModel : class, IMvxViewModel
where TDescription : KeyedDescription
where TResult : class
{
var root = view.LoadDialogRootFromAssets<TViewModel, TDescription, TBuildable, TResult>(key);
var root = view.LoadUserInterfaceRootFromAssets<TViewModel, TDescription, TBuildable, TResult>(key);
if (root != null)
return root;

root = LoadDialogFromAutoViewModel<TViewModel, TBuildable, TResult>(view, key);
root = LoadUserInterfaceFromAutoViewModel<TViewModel, TBuildable, TResult>(view, key);
if (root != null)
return root;

return null;
}

private static TResult LoadDialogFromJsonText<TViewModel, TDescription, TBuildable, TResult>(this IMvxAndroidAutoView<TViewModel> view, string jsonText)
private static TResult LoadUserInterfaceFromJsonText<TViewModel, TDescription, TBuildable, TResult>(this IMvxAndroidAutoView<TViewModel> view, string jsonText)
where TViewModel : class, IMvxViewModel
where TDescription : KeyedDescription
{
Expand All @@ -81,11 +87,11 @@ private static string GetJsonText<TViewModel>(this IMvxAndroidAutoView<TViewMode
var description = json.DeserializeObject<TDescription>(jsonText);
#warning Hack here - how to flatten these JObjects :/ Maybe need to do it inside the Json converter?
//HackFlattenJObjectsToStringDictionary(description as ListLayoutDescription);
var root = view.LoadDialogFromDescription<TViewModel, TBuildable, TResult>(description);
var root = view.LoadUserInterfaceFromDescription<TViewModel, TBuildable, TResult>(description);
return root;
}

private static TResult LoadDialogFromAutoViewModel<TViewModel, TBuildable, TResult>(this IMvxAndroidAutoView<TViewModel> view, string key)
public static TResult LoadUserInterfaceFromAutoViewModel<TViewModel, TBuildable, TResult>(this IMvxAndroidAutoView<TViewModel> view, string key)
where TViewModel : class, IMvxViewModel
where TResult : class
{
Expand All @@ -101,18 +107,18 @@ private static string GetJsonText<TViewModel>(this IMvxAndroidAutoView<TViewMode
return null;
}

return view.LoadDialogFromDescription<TViewModel, TBuildable, TResult>(description);
return view.LoadUserInterfaceFromDescription<TViewModel, TBuildable, TResult>(description);
}

private static TResult LoadDialogRootFromAssets<TViewModel, TDescription, TBuildable, TResult>(this IMvxAndroidAutoView<TViewModel> view, string key)
private static TResult LoadUserInterfaceRootFromAssets<TViewModel, TDescription, TBuildable, TResult>(this IMvxAndroidAutoView<TViewModel> view, string key)
where TViewModel : class, IMvxViewModel
where TDescription : KeyedDescription
{
var jsonText = view.GetJsonText(key);
return view.LoadDialogFromJsonText<TViewModel, TDescription, TBuildable, TResult>(jsonText);
return view.LoadUserInterfaceFromJsonText<TViewModel, TDescription, TBuildable, TResult>(jsonText);
}

private static TResult LoadDialogFromDescription<TViewModel, TBuildable, TResult>(this IMvxAndroidAutoView<TViewModel> view,
private static TResult LoadUserInterfaceFromDescription<TViewModel, TBuildable, TResult>(this IMvxAndroidAutoView<TViewModel> view,
KeyedDescription description)
where TViewModel : class, IMvxViewModel
{
Expand All @@ -121,56 +127,5 @@ private static string GetJsonText<TViewModel>(this IMvxAndroidAutoView<TViewMode
var root = (TResult)builder.Build(typeof(TBuildable), description);
return root;
}

#warning Cull the dead code
/*
private static void HackFlattenJObjectsToStringDictionary(ListLayoutDescription description)
{
if (description == null)
{
return;
}
if (description.ItemLayouts != null)
{
foreach (var layout in description.ItemLayouts)
{
HackFlattenJObjectsToStringDictionary(layout.Value);
}
}
HackFlattenJObjectsToStringDictionary((KeyedDescription)description);
}
private static void HackFlattenJObjectsToStringDictionary(KeyedDescription description)
{
foreach (var propertyInfo in description.GetType().GetProperties())
{
var value = propertyInfo.GetValue(description, null);
var keyedDescription = value as KeyedDescription;
if (keyedDescription != null)
{
HackFlattenJObjectsToStringDictionary(keyedDescription);
}
}
var flattener = MvxServiceProviderExtensions.GetService<IMvxJsonFlattener>();
var listToUpdate = new List<KeyValuePair<string, object>>();
foreach (var prop in description.Properties)
{
if (flattener.IsJsonObject(prop.Value))
{
listToUpdate.Add(prop);
}
}
foreach (var keyValuePair in listToUpdate)
{
var value = keyValuePair.Value;
var dict = flattener.FlattenJsonObjectToStringDictionary(value);
description.Properties[keyValuePair.Key] = dict;
}
}
*/

}
}
@@ -1,24 +1,24 @@
using Android.App;
using Cirrious.MvvmCross.AutoView.Droid.ExtensionMethods;
using Cirrious.MvvmCross.AutoView.Droid.Interfaces;
using Cirrious.MvvmCross.Binding.Droid.Views;
using Cirrious.MvvmCross.AutoView.ExtensionMethods;
using Cirrious.MvvmCross.Dialog.Droid.Views;
using Cirrious.MvvmCross.ViewModels;
using Cirrious.MvvmCross.Views.Attributes;

namespace Cirrious.MvvmCross.AutoView.Droid.Views.Lists
namespace Cirrious.MvvmCross.AutoView.Droid.Views
{
[Activity]
[MvxUnconventionalView]
public class MvxMissingActivityView
: MvxBindingActivityView<MvxViewModel>
, IMvxAndroidAutoView<MvxViewModel>
: MvxBindingDialogActivityView<MvxViewModel>
, IMvxAndroidAutoView<MvxViewModel>
{
protected override void OnViewModelSet()
{
#warning // TODO - something vaguely useful
#warning // TODO - something vaguely useful
#warning // TODO - something vaguely useful
#warning // TODO - something vaguely useful
#warning // TODO - something vaguely useful
var description = this.ViewModel.CreateMissingDialogDescription();
var root = this.LoadDialogRoot(description);
Root = root;
}
}
}
Expand Up @@ -15,21 +15,21 @@
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<NoStdLib>true</NoStdLib>
<NoStdLib>True</NoStdLib>
<DebugSymbols>True</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>False</Optimize>
<OutputPath>..\..\bin\Debug</OutputPath>
<OutputPath>..\..\bin\Touch\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>False</ConsolePause>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<NoStdLib>true</NoStdLib>
<NoStdLib>True</NoStdLib>
<DebugType>none</DebugType>
<Optimize>True</Optimize>
<OutputPath>..\..\bin\Release</OutputPath>
<OutputPath>..\..\bin\Touch\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>False</ConsolePause>
Expand Down
Expand Up @@ -17,24 +17,31 @@

namespace Cirrious.MvvmCross.AutoView.Touch.ExtensionMethods
{
#warning THIS NEEDS TO BE SHARED CODE SOMEHOW!
public static class MvxAutoViewExtensionMethods
{
public static IParentMenu LoadMenu<TViewModel>(this IMvxTouchAutoView<TViewModel> view)
where TViewModel : class, IMvxViewModel
{
return view.LoadCommon<TViewModel, ParentMenuDescription, IMenu, IParentMenu>(MvxAutoViewConstants.Menu);
return view.LoadUserInterfaceCommon<TViewModel, ParentMenuDescription, IMenu, IParentMenu>(MvxAutoViewConstants.Menu);
}

public static RootElement LoadDialogRoot<TViewModel>(this IMvxTouchAutoView<TViewModel> view)
where TViewModel : class, IMvxViewModel
{
return view.LoadCommon<TViewModel, ElementDescription, Element, RootElement>(MvxAutoViewConstants.Dialog);
return view.LoadUserInterfaceCommon<TViewModel, ElementDescription, Element, RootElement>(MvxAutoViewConstants.Dialog);
}

public static RootElement LoadDialogRoot<TViewModel>(this IMvxTouchAutoView<TViewModel> view, ElementDescription rootDescription)
where TViewModel : class, IMvxViewModel
{
return view.LoadUserInterfaceFromDescription<TViewModel, Element, RootElement>(rootDescription);
}

public static GeneralListLayout LoadList<TViewModel>(this IMvxTouchAutoView<TViewModel> view)
where TViewModel : class, IMvxViewModel
{
return view.LoadCommon<TViewModel, ListLayoutDescription, IListLayout, GeneralListLayout>(MvxAutoViewConstants.List);
return view.LoadUserInterfaceCommon<TViewModel, ListLayoutDescription, IListLayout, GeneralListLayout>(MvxAutoViewConstants.List);
}

private static string GetJsonText<TViewModel>(this IMvxTouchAutoView<TViewModel> view, string key)
Expand All @@ -50,23 +57,23 @@ private static string GetJsonText<TViewModel>(this IMvxTouchAutoView<TViewModel>
return json;
}

private static TResult LoadCommon<TViewModel, TDescription, TBuildable, TResult>(this IMvxTouchAutoView<TViewModel> view, string key)
private static TResult LoadUserInterfaceCommon<TViewModel, TDescription, TBuildable, TResult>(this IMvxTouchAutoView<TViewModel> view, string key)
where TViewModel : class, IMvxViewModel
where TDescription : KeyedDescription
where TResult : class
{
var root = view.LoadDialogRootFromAssets<TViewModel, TDescription, TBuildable, TResult>(key);
var root = view.LoadUserInterfaceFromAssets<TViewModel, TDescription, TBuildable, TResult>(key);
if (root != null)
return root;

root = LoadDialogFromAutoViewModel<TViewModel, TBuildable, TResult>(view, key);
root = LoadUserInterfaceFromAutoViewModel<TViewModel, TBuildable, TResult>(view, key);
if (root != null)
return root;

return null;
}

private static TResult LoadDialogFromJsonText<TViewModel, TDescription, TBuildable, TResult>(this IMvxTouchAutoView<TViewModel> view, string jsonText)
private static TResult LoadUserInterfaceFromJsonText<TViewModel, TDescription, TBuildable, TResult>(this IMvxTouchAutoView<TViewModel> view, string jsonText)
where TViewModel : class, IMvxViewModel
where TDescription : KeyedDescription
{
Expand All @@ -77,13 +84,13 @@ private static string GetJsonText<TViewModel>(this IMvxTouchAutoView<TViewModel>
var description = json.DeserializeObject<TDescription>(jsonText);
#warning Hack here - how to flatten these JObjects :/ Maybe need to do it inside the Json converter?
//HackFlattenJObjectsToStringDictionary(description as ListLayoutDescription);
var root = view.LoadDialogFromDescription<TViewModel, TBuildable, TResult>(description);
var root = view.LoadUserInterfaceFromDescription<TViewModel, TBuildable, TResult>(description);
return root;
}

#warning Method names need updating here - badly!

private static TResult LoadDialogFromAutoViewModel<TViewModel, TBuildable, TResult>(this IMvxTouchAutoView<TViewModel> view, string key)
private static TResult LoadUserInterfaceFromAutoViewModel<TViewModel, TBuildable, TResult>(this IMvxTouchAutoView<TViewModel> view, string key)
where TViewModel : class, IMvxViewModel
where TResult : class
{
Expand All @@ -99,18 +106,18 @@ private static string GetJsonText<TViewModel>(this IMvxTouchAutoView<TViewModel>
return null;
}

return view.LoadDialogFromDescription<TViewModel, TBuildable, TResult>(description);
return view.LoadUserInterfaceFromDescription<TViewModel, TBuildable, TResult>(description);
}

private static TResult LoadDialogRootFromAssets<TViewModel, TDescription, TBuildable, TResult>(this IMvxTouchAutoView<TViewModel> view, string key)
private static TResult LoadUserInterfaceFromAssets<TViewModel, TDescription, TBuildable, TResult>(this IMvxTouchAutoView<TViewModel> view, string key)
where TViewModel : class, IMvxViewModel
where TDescription : KeyedDescription
{
var jsonText = view.GetJsonText(key);
return view.LoadDialogFromJsonText<TViewModel, TDescription, TBuildable, TResult>(jsonText);
return view.LoadUserInterfaceFromJsonText<TViewModel, TDescription, TBuildable, TResult>(jsonText);
}

private static TResult LoadDialogFromDescription<TViewModel, TBuildable, TResult>(this IMvxTouchAutoView<TViewModel> view,
private static TResult LoadUserInterfaceFromDescription<TViewModel, TBuildable, TResult>(this IMvxTouchAutoView<TViewModel> view,
KeyedDescription description)
where TViewModel : class, IMvxViewModel
{
Expand Down
Expand Up @@ -42,22 +42,6 @@ private void ShowActionMenu ()
this.ShowOptionsMenu(_parentMenu);
}

/*
public override bool OnCreateOptionsMenu(Android.Views.IMenu menu)
{
return this.CreateOptionsMenu(_parentMenu, menu);
}
public override bool OnOptionsItemSelected(IMenuItem item)
{
if (_parentMenu.ProcessMenuItemSelected(item))
{
return true;
}
return base.OnOptionsItemSelected(item);
}
*/
public void RegisterBinding(IMvxUpdateableBinding binding)
{
Bindings.Add(binding);
Expand Down

0 comments on commit 9eac64f

Please sign in to comment.