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:
Родитель
659fffabfd
Коммит
e21318a614
|
@ -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()
|
||||
|
|
|
@ -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,
|
||||
|
|
Загрузка…
Ссылка в новой задаче