Changed composition of genQueue:

- Dependency templates are added before the template that triggered the dependency.
- Composition templates are added right after the template that triggered the addition of the composition item.
Changed wts.order to wts.displayOrder (for ordering in wizard) and wts.compositionOrder (for ordering the composition Templates in the genQueue)
This commit is contained in:
sibille 2017-09-12 15:24:04 +02:00
Родитель 659fffabfd
Коммит e21318a614
72 изменённых файлов: 230 добавлений и 76 удалений

Просмотреть файл

@ -212,9 +212,24 @@ namespace Microsoft.Templates.Core
return GetValueFromTag(ti, TagPrefix + "version");
}
public static int GetOrder(this ITemplateInfo ti)
public static int GetDisplayOrder(this ITemplateInfo ti)
{
var rawOrder = GetValueFromTag(ti, TagPrefix + "order");
var rawOrder = GetValueFromTag(ti, TagPrefix + "displayOrder");
if (!string.IsNullOrEmpty(rawOrder))
{
if (int.TryParse(rawOrder, out int order))
{
return order;
}
}
return int.MaxValue;
}
public static int GetCompositionOrder(this ITemplateInfo ti)
{
var rawOrder = GetValueFromTag(ti, TagPrefix + "compositionOrder");
if (!string.IsNullOrEmpty(rawOrder))
{

Просмотреть файл

@ -111,7 +111,7 @@ namespace Microsoft.Templates.UI
AddTemplates(userSelection.Pages, genQueue, userSelection);
AddTemplates(userSelection.Features, genQueue, userSelection);
AddCompositionTemplates(genQueue, userSelection);
genQueue = AddInCompositionTemplates(genQueue, userSelection);
return genQueue;
}
@ -128,7 +128,7 @@ namespace Microsoft.Templates.UI
AddTemplates(userSelection.Pages, genQueue, userSelection);
AddTemplates(userSelection.Features, genQueue, userSelection);
AddCompositionTemplates(genQueue, userSelection);
genQueue = AddInCompositionTemplates(genQueue, userSelection);
return genQueue;
}
@ -157,12 +157,37 @@ namespace Microsoft.Templates.UI
{
foreach (var selectionItem in templates)
{
var genInfo = CreateGenInfo(selectionItem.name, selectionItem.template, genQueue);
genInfo?.Parameters.Add(GenParams.HomePageName, userSelection.HomeName);
if (!genQueue.Any(t => t.Name == selectionItem.name && t.Template.Identity == selectionItem.template.Identity))
{
AddDependencyTemplates(selectionItem, genQueue, userSelection);
var genInfo = CreateGenInfo(selectionItem.name, selectionItem.template, genQueue);
genInfo?.Parameters.Add(GenParams.HomePageName, userSelection.HomeName);
}
}
}
private static void AddCompositionTemplates(List<GenInfo> genQueue, UserSelection userSelection)
private static void AddDependencyTemplates((string name, ITemplateInfo template) selectionItem, List<GenInfo> genQueue, UserSelection userSelection)
{
var dependencies = GetAllDependencies(selectionItem.template, userSelection.Framework);
foreach (var dependencyItem in dependencies)
{
var dependencyTemplate = userSelection.Features.FirstOrDefault(f => f.template.Identity == dependencyItem.Identity);
if (dependencyTemplate.template != null)
{
if (!genQueue.Any(t => t.Name == dependencyTemplate.name && t.Template.Identity == dependencyTemplate.template.Identity))
{
var depGenInfo = CreateGenInfo(dependencyTemplate.name, dependencyTemplate.template, genQueue);
depGenInfo?.Parameters.Add(GenParams.HomePageName, userSelection.HomeName);
}
}
else
{
LogOrAlertException(string.Format(StringRes.ExceptionDependencyMissing, dependencyItem.Identity));
}
}
}
private static List<GenInfo> AddInCompositionTemplates(List<GenInfo> genQueue, UserSelection userSelection)
{
var compositionCatalog = GetCompositionCatalog().ToList();
var context = new QueryablePropertyDictionary
@ -171,10 +196,13 @@ namespace Microsoft.Templates.UI
new QueryableProperty("framework", userSelection.Framework)
};
var compositionQueue = new List<GenInfo>();
var combinedQueue = new List<GenInfo>();
foreach (var genItem in genQueue)
{
combinedQueue.Add(genItem);
var compositionQueue = new List<GenInfo>();
foreach (var compositionItem in compositionCatalog)
{
if (compositionItem.query.Match(genItem.Template, context))
@ -182,9 +210,10 @@ namespace Microsoft.Templates.UI
AddTemplate(genItem, compositionQueue, compositionItem.template, userSelection);
}
}
combinedQueue.AddRange(compositionQueue.OrderBy(g => g.Template.GetCompositionOrder()));
}
genQueue.AddRange(compositionQueue.OrderBy(g => g.Template.GetOrder()));
return combinedQueue;
}
private static IEnumerable<(CompositionQuery query, ITemplateInfo template)> GetCompositionCatalog()

9
code/src/UI/Resources/StringRes.Designer.cs сгенерированный
Просмотреть файл

@ -420,6 +420,15 @@ namespace Microsoft.Templates.UI.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Dependency template {0} not found on user selection.
/// </summary>
public static string ExceptionDependencyMissing {
get {
return ResourceManager.GetString("ExceptionDependencyMissing", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Invalid dependency item {0}. Dependencies have to be configured as multpleInstance = false..
/// </summary>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -644,4 +644,8 @@
<value>Zoom out</value>
<comment>Zoom out button tooltip on changes summary view</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -636,4 +636,8 @@
<value>Close status box</value>
<comment>Status bar close button name</comment>
</data>
<data name="ExceptionDependencyMissing" xml:space="preserve">
<value>Dependency template {0} not found on user selection</value>
<comment>Log text for misssing dependency exception.</comment>
</data>
</root>

Просмотреть файл

@ -32,7 +32,7 @@ namespace Microsoft.Templates.UI.ViewModels.NewItem
Icon = template.GetIcon();
Name = template.Name;
Author = template.Author;
Order = template.GetOrder();
Order = template.GetDisplayOrder();
Summary = template.Description;
Identity = template.Identity;
Version = template.GetVersion();

Просмотреть файл

@ -167,7 +167,7 @@ namespace Microsoft.Templates.UI.ViewModels.NewProject
MultipleInstances = template.GetMultipleInstance();
GenGroup = template.GetGenGroup();
Name = template.Name;
Order = template.GetOrder();
Order = template.GetDisplayOrder();
Summary = template.Description;
TemplateType = template.GetTemplateType();
Template = template;

Просмотреть файл

@ -215,6 +215,7 @@
<Content Include="TestData\Templates\Naming.DefaultNameTemplate\.template.config\template.json" />
<Content Include="TestData\Templates\PageTemplateVB\.template.config\template.json" />
<Content Include="TestData\Templates\Naming.DefaultNameTemplateVB\.template.config\template.json" />
<Content Include="TestData\Templates\CompositionTemplate\.template.config\template.json" />
<None Include="TestData\Templates\ProjectTemplateVB\.template.config\description.md" />
<Content Include="TestData\Templates\ProjectTemplateVB\.template.config\Layout.json" />
<Content Include="TestData\Templates\ProjectTemplateVB\.template.config\template.json" />

Просмотреть файл

@ -208,26 +208,52 @@ namespace Microsoft.Templates.Core.Test
[Theory]
[MemberData("GetAllLanguages")]
[Trait("Type", "ProjectGeneration")]
public void GetOrder(string language)
public void GetDisplayOrder(string language)
{
SetUpFixtureForTesting(language);
var target = GetTargetByName("ProjectTemplate");
var target = GetTargetByIdentity("Microsoft.UWPTemplates.Test.PageTemplate.CSharp");
var result = target.GetOrder();
var result = target.GetDisplayOrder();
Assert.Equal(1, result);
}
[Theory]
[MemberData("GetAllLanguages")]
[Trait("Type", "ProjectGeneration")]
public void GetOrder_unspecified(string language)
public void GetDisplayOrder_unspecified(string language)
{
SetUpFixtureForTesting(language);
var target = GetTargetByName("UnspecifiedTemplate");
var result = target.GetOrder();
var result = target.GetDisplayOrder();
Assert.Equal(int.MaxValue, result);
}
[Theory]
[MemberData("GetAllLanguages")]
[Trait("Type", "ProjectGeneration")]
public void GetCompositionOrder(string language)
{
SetUpFixtureForTesting(language);
var target = GetTargetByName("CompositionTemplate");
var result = target.GetCompositionOrder();
Assert.Equal(1, result);
}
[Theory]
[MemberData("GetAllLanguages")]
[Trait("Type", "ProjectGeneration")]
public void GetCompositionOrder_unspecified(string language)
{
SetUpFixtureForTesting(language);
var target = GetTargetByName("UnspecifiedTemplate");
var result = target.GetCompositionOrder();
Assert.Equal(int.MaxValue, result);
}

Просмотреть файл

@ -0,0 +1,16 @@
{
"author": "Microsoft",
"classifications": [ "Test" ],
"name": "CompositionTemplate",
"tags": {
"language": "C#",
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.compositionFilter": "identity == Microsoft.UWPTemplates.Test.PageTemplate.CSharp",
"wts.compositionOrder" : "1"
},
"sourceName": "App_Name",
"preferNameDirectory": true
}

Просмотреть файл

@ -8,7 +8,8 @@
"tags": {
"language": "C#",
"type": "item",
"wts.type": "page"
"wts.type": "page",
"wts.displayOrder" : "1"
},
"sourceName": "App_Name",
"preferNameDirectory": true

Просмотреть файл

@ -11,7 +11,6 @@
"wts.framework": "fx1",
"wts.version": "1.0.0",
"wts.licenses": "[text1](url1)|[text2](url2)",
"wts.order": "1",
"wts.group": "group1",
"wts.defaultInstance": "DefaultName"
},

Просмотреть файл

@ -108,7 +108,7 @@ The replacements are done based on the configuration established in the `templat
"wts.type": "page",
"wts.framework": "MVVMBasic|MVVMLight", //Frameworks where this template can be used.
"wts.version": "1.0.0",
"wts.order": "1",
"wts.displayOrder": "1", //This tag is used to order the templates in the wizard.
"wts.rightClickEnabled":"true", //If set to 'true' then this feature or page is available from right click on an existing project.
"wts.isHidden": "false" //If set to 'true' then not shown in the wizard. Used for dependencies that can't be selected on their own.
},
@ -199,7 +199,8 @@ The structure of files and folders within the `_composition` folder is just for
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.compositionFilter": "$framework == CodeBehind|MVVMBasic & identity == wts.Proj.Blank"
"wts.compositionFilter": "$framework == CodeBehind|MVVMBasic & identity == wts.Proj.Blank",
"wts.compositionOrder" : "1"
},
```
@ -208,6 +209,7 @@ In this case, the template which have this configuration will be added to the ge
* There is a template within the generation basket whose `identity` property is "wts.Proj.Blank".
In other words, this template is designed to be added to the generation basket when we are generating a Blank Project Type with the CodeBehind or MVVMBasic framework.
The wts.compositionOrder can be used to establish the order in which of composition templates are generated where necessary.
We have a basic pseudo-language to define the composition filters. The composition filters must match the following structure:

Просмотреть файл

@ -11,7 +11,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.displayOrder": "1",
"wts.group": "BackgroundWork",
"wts.multipleInstance": "true",
"wts.genGroup": "0",

Просмотреть файл

@ -11,7 +11,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "5",
"wts.displayOrder": "5",
"wts.group": "UserInteraction",
"wts.dependencies":"wts.Feat.SettingsStorage",
"wts.multipleInstance": "false",

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "2",
"wts.displayOrder": "2",
"wts.group": "UserInteraction",
"wts.licenses": "[WindowsAzure.Messaging.Managed](http://go.microsoft.com/fwlink/?LinkId=218949)",
"wts.defaultInstance": "HubNotifications",

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "4",
"wts.displayOrder": "4",
"wts.group": "UserInteraction",
"wts.licenses": "[Microsoft.Toolkit.Uwp](https://github.com/Microsoft/UWPCommunityToolkit/blob/master/license.md)",
"wts.dependencies":"wts.Feat.SettingsStorage",

Просмотреть файл

@ -11,7 +11,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.displayOrder": "1",
"wts.defaultInstance": "SampleDataService",
"wts.multipleInstance": "false",
"wts.isHidden": "true",

Просмотреть файл

@ -11,7 +11,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.displayOrder": "1",
"wts.group": "ApplicationLifecycle",
"wts.licenses": "[Newtonsoft.Json](https://raw.githubusercontent.com/JamesNK/Newtonsoft.Json/master/LICENSE.md)",
"wts.defaultInstance": "SettingsStorage",

Просмотреть файл

@ -11,7 +11,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.displayOrder": "1",
"wts.group": "ApplicationLifecycle",
"wts.licenses": "[Newtonsoft.Json](https://raw.githubusercontent.com/JamesNK/Newtonsoft.Json/master/LICENSE.md)",
"wts.defaultInstance": "SettingsStorage",

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "2",
"wts.displayOrder": "2",
"wts.group": "UserInteraction",
"wts.licenses": "[Microsoft.Services.Store.SDK](https://www.microsoft.com/legal/intellectualproperty/copyright/default.aspx)",
"wts.defaultInstance": "StoreNotifications",

Просмотреть файл

@ -11,7 +11,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "2",
"wts.displayOrder": "2",
"wts.group": "ApplicationLifecycle",
"wts.multipleInstance": "false",
"wts.defaultInstance": "SuspendAndResume",

Просмотреть файл

@ -11,7 +11,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "2",
"wts.displayOrder": "2",
"wts.group": "ApplicationLifecycle",
"wts.multipleInstance": "false",
"wts.defaultInstance": "SuspendAndResume",

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.displayOrder": "1",
"wts.group": "UserInteraction",
"wts.licenses": "[Microsoft.Toolkit.Uwp](https://github.com/Microsoft/UWPCommunityToolkit/blob/master/license.md)",
"wts.defaultInstance": "ToastNotifications",

Просмотреть файл

@ -14,7 +14,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "7",
"wts.displayOrder": "7",
"wts.group": "UserInteraction",
"wts.defaultInstance": "UriScheme",
"wts.multipleInstance": "false",

Просмотреть файл

@ -11,7 +11,7 @@
"wts.type": "feature",
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.version": "1.0.0",
"wts.order": "6",
"wts.displayOrder": "6",
"wts.group": "UserInteraction",
"wts.dependencies":"wts.Feat.SettingsStorage",
"wts.multipleInstance": "false",

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "CodeBehind",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.displayOrder": "1",
"wts.genGroup": "0",
"wts.rightClickEnabled":"true"
},

Просмотреть файл

@ -14,7 +14,7 @@
"wts.type": "page",
"wts.framework": "CodeBehind",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.displayOrder": "1",
"wts.genGroup": "0",
"wts.rightClickEnabled":"true"
},

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "MVVMBasic|MVVMLight",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.displayOrder": "1",
"wts.genGroup": "0",
"wts.rightClickEnabled":"true"
},

Просмотреть файл

@ -14,7 +14,7 @@
"wts.type": "page",
"wts.framework": "MVVMBasic|MVVMLight",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.displayOrder": "1",
"wts.genGroup": "0",
"wts.rightClickEnabled":"true"
},

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "CodeBehind",
"wts.version": "1.0.0",
"wts.order": "7",
"wts.displayOrder": "7",
"wts.licenses": "[Telerik.UI-For-UWP](https://github.com/telerik/UI-For-UWP/blob/master/LICENSE.md)",
"wts.dependencies": "wts.Feat.SampleDataService",
"wts.genGroup": "0",

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "MVVMBasic|MVVMLight",
"wts.version": "1.0.0",
"wts.order": "7",
"wts.displayOrder": "7",
"wts.licenses": "[Telerik.UI-For-UWP](https://github.com/telerik/UI-For-UWP/blob/master/LICENSE.md)",
"wts.dependencies": "wts.Feat.SampleDataService",
"wts.genGroup": "0",

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "CodeBehind",
"wts.version": "1.0.0",
"wts.order": "6",
"wts.displayOrder": "6",
"wts.licenses": "[Telerik.UI-For-UWP](https://github.com/telerik/UI-For-UWP/blob/master/LICENSE.md)",
"wts.dependencies": "wts.Feat.SampleDataService",
"wts.genGroup": "0",

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "MVVMBasic|MVVMLight",
"wts.version": "1.0.0",
"wts.order": "6",
"wts.displayOrder": "6",
"wts.licenses": "[Telerik.UI-For-UWP](https://github.com/telerik/UI-For-UWP/blob/master/LICENSE.md)",
"wts.dependencies": "wts.Feat.SampleDataService",
"wts.genGroup": "0",

Просмотреть файл

@ -12,7 +12,7 @@
"wts.type": "page",
"wts.framework": "CodeBehind",
"wts.version": "1.0.0",
"wts.order": "9",
"wts.displayOrder": "9",
"wts.genGroup": "0",
"wts.rightClickEnabled":"true"
},

Просмотреть файл

@ -11,7 +11,7 @@
"wts.type": "page",
"wts.framework": "MVVMBasic|MVVMLight",
"wts.version": "1.0.0",
"wts.order": "9",
"wts.displayOrder": "9",
"wts.genGroup": "0",
"wts.rightClickEnabled":"true"
},

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "CodeBehind",
"wts.version": "1.0.0",
"wts.order": "5",
"wts.displayOrder": "5",
"wts.dependencies": "wts.Feat.SampleDataService",
"wts.genGroup": "0",
"wts.rightClickEnabled":"true"

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "MVVMBasic|MVVMLight",
"wts.version": "1.0.0",
"wts.order": "5",
"wts.displayOrder": "5",
"wts.dependencies": "wts.Feat.SampleDataService",
"wts.genGroup": "0",
"wts.rightClickEnabled":"true"

Просмотреть файл

@ -14,7 +14,7 @@
"wts.framework": "CodeBehind",
"wts.version": "1.0.0",
"wts.genGroup": "0",
"wts.order": "4",
"wts.displayOrder": "4",
"wts.rightClickEnabled":"true"
},
"sourceName": "MediaPlayerView",

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "MVVMBasic|MVVMLight",
"wts.version": "1.0.0",
"wts.order": "4",
"wts.displayOrder": "4",
"wts.genGroup": "0",
"wts.rightClickEnabled":"true"
},

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "CodeBehind",
"wts.version": "1.0.0",
"wts.order": "2",
"wts.displayOrder": "2",
"wts.dependencies":"wts.Feat.SettingsStorage",
"wts.multipleInstance": "false",
"wts.genGroup": "1",

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "MVVMLight",
"wts.version": "1.0.0",
"wts.order": "2",
"wts.displayOrder": "2",
"wts.dependencies":"wts.Feat.SettingsStorage",
"wts.multipleInstance": "false",
"wts.genGroup": "1",

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "MVVMBasic",
"wts.version": "1.0.0",
"wts.order": "2",
"wts.displayOrder": "2",
"wts.dependencies":"wts.Feat.SettingsStorage",
"wts.multipleInstance": "false",
"wts.genGroup": "1",

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "CodeBehind",
"wts.version": "1.0.0",
"wts.order": "8",
"wts.displayOrder": "8",
"wts.genGroup": "0",
"wts.rightClickEnabled":"true"
},

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "MVVMBasic|MVVMLight",
"wts.version": "1.0.0",
"wts.order": "8",
"wts.displayOrder": "8",
"wts.genGroup": "0",
"wts.rightClickEnabled":"true"
},

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "CodeBehind",
"wts.version": "2.0.0",
"wts.order": "3",
"wts.displayOrder": "3",
"wts.genGroup": "0",
"wts.rightClickEnabled":"true"
},

Просмотреть файл

@ -13,7 +13,7 @@
"wts.type": "page",
"wts.framework": "MVVMBasic|MVVMLight",
"wts.version": "2.0.0",
"wts.order": "3",
"wts.displayOrder": "3",
"wts.rightClickEnabled":"true",
"wts.genGroup": "0"
},

Просмотреть файл

@ -12,7 +12,7 @@
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.projecttype":"Blank|SplitView|TabbedPivot",
"wts.version": "1.0.0",
"wts.order": "1"
"wts.displayOrder": "1"
},
"sourceName": "wts.DefaultProject",
"preferNameDirectory": true,

Просмотреть файл

@ -13,7 +13,7 @@
"wts.framework": "MVVMBasic|MVVMLight|CodeBehind",
"wts.projecttype":"Blank|SplitView|TabbedPivot",
"wts.version": "1.0.0",
"wts.order": "1"
"wts.displayOrder": "1"
},
"sourceName": "wts.DefaultProject",
"preferNameDirectory": true,

Просмотреть файл

@ -9,8 +9,8 @@
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.compositionFilter": "wts.type == page & identity != wts.Page.Settings.CodeBehind & $projectType == SplitView & $framework == CodeBehind"
"wts.compositionFilter": "wts.type == page & identity != wts.Page.Settings.CodeBehind & $projectType == SplitView & $framework == CodeBehind",
"wts.compositionOrder": "1"
},
"sourceName": "wts.ItemName",
"preferNameDirectory": true,

Просмотреть файл

@ -9,8 +9,8 @@
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.order": "2",
"wts.compositionFilter": "identity == wts.Page.Settings.CodeBehind & $projectType == SplitView"
"wts.compositionFilter": "identity == wts.Page.Settings.CodeBehind & $projectType == SplitView",
"wts.compositionOrder": "2"
},
"sourceName": "wts.ItemName",
"preferNameDirectory": true,

Просмотреть файл

@ -9,8 +9,8 @@
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.order": "0",
"wts.compositionFilter": "$framework == CodeBehind & $projectType == SplitView & wts.type == project",
"wts.compositionOrder": "0",
"wts.licences": "[Microsoft.Toolkit.Uwp.UI.Controls](https://github.com/Microsoft/UWPCommunityToolkit/blob/master/license.md)"
},
"sourceName": "wts.ItemName",

Просмотреть файл

@ -9,8 +9,8 @@
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.compositionFilter": "wts.type == page & identity != wts.Page.Settings & $framework == MVVMBasic & $projectType == SplitView"
"wts.compositionFilter": "wts.type == page & identity != wts.Page.Settings & $framework == MVVMBasic & $projectType == SplitView",
"wts.compositionOrder": "1"
},
"sourceName": "wts.ItemName",
"preferNameDirectory": true,

Просмотреть файл

@ -9,8 +9,8 @@
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.order": "2",
"wts.compositionFilter": "$framework == MVVMBasic & $projectType == SplitView & identity == wts.Page.Settings"
"wts.compositionFilter": "$framework == MVVMBasic & $projectType == SplitView & identity == wts.Page.Settings",
"wts.compositionOrder": "2"
},
"sourceName": "wts.ItemName",
"preferNameDirectory": true,

Просмотреть файл

@ -8,9 +8,9 @@
"language": "VisualBasic",
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.order": "0",
"wts.version": "1.0.0",
"wts.compositionFilter": "$framework == MVVMBasic & $projectType == SplitView & wts.type == project",
"wts.compositionOrder": "0",
"wts.licences": "[Microsoft.Toolkit.Uwp.UI.Controls](https://github.com/Microsoft/UWPCommunityToolkit/blob/master/license.md)"
},
"sourceName": "wts.ItemName",

Просмотреть файл

@ -9,8 +9,8 @@
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.order": "2",
"wts.compositionFilter": "wts.type == page & identity != wts.Page.Settings.MVVMLight & $framework == MVVMLight & $projectType == SplitView"
"wts.compositionFilter": "wts.type == page & identity != wts.Page.Settings.MVVMLight & $framework == MVVMLight & $projectType == SplitView",
"wts.compositionOrder": "2"
},
"sourceName": "wts.ItemName",
"preferNameDirectory": true,

Просмотреть файл

@ -9,8 +9,8 @@
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.order": "3",
"wts.compositionFilter": "$framework == MVVMLight & $projectType == SplitView & identity == wts.Page.Settings.MVVMLight"
"wts.compositionFilter": "$framework == MVVMLight & $projectType == SplitView & identity == wts.Page.Settings.MVVMLight",
"wts.compositionOrder": "3"
},
"sourceName": "wts.ItemName",
"preferNameDirectory": true,

Просмотреть файл

@ -9,8 +9,8 @@
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.compositionFilter": "$framework == MVVMLight & $projectType == SplitView & wts.type == project",
"wts.compositionOrder": "1",
"wts.licences": "[Microsoft.Toolkit.Uwp.UI.Controls](https://github.com/Microsoft/UWPCommunityToolkit/blob/master/license.md)"
},
"sourceName": "wts.ItemName",

Просмотреть файл

@ -9,8 +9,8 @@
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.order": "1",
"wts.compositionFilter": "$framework == MVVMLight & $projectType == TabbedPivot & wts.type == project"
"wts.compositionFilter": "$framework == MVVMLight & $projectType == TabbedPivot & wts.type == project",
"wts.compositionOrder": "1",
},
"sourceName": "wts.ItemName",
"preferNameDirectory": true,

Просмотреть файл

@ -9,9 +9,9 @@
"type": "item",
"wts.type": "composition",
"wts.version": "1.0.0",
"wts.order": "0",
"wts.licenses": "[MVVM Light](http://mvvmlight.codeplex.com/license)",
"wts.compositionFilter": "$framework == MVVMLight & wts.type == project"
"wts.compositionFilter": "$framework == MVVMLight & wts.type == project",
"wts.compositionOrder": "0"
},
"sourceName": "wts.ItemName",
"preferNameDirectory": true,