Skip to content
This repository was archived by the owner on Oct 4, 2021. It is now read-only.

Commit 3c8a4d8

Browse files
authored
Merge pull request #9367 from mono/fix-1024771
New Scaffolding should not appear on Dependencies node. Fixes https:/…
2 parents ea14de9 + 4cf1572 commit 3c8a4d8

File tree

1 file changed

+59
-55
lines changed

1 file changed

+59
-55
lines changed
Lines changed: 59 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,67 @@
1-
using System;
2-
using System.Linq;
3-
using System.Threading;
4-
using MonoDevelop.AspNetCore.Scaffolding;
5-
using MonoDevelop.Components.Commands;
6-
using MonoDevelop.Ide;
7-
using MonoDevelop.Ide.Gui.Components;
8-
using MonoDevelop.Ide.Gui.Pads.ProjectPad;
9-
using MonoDevelop.Projects;
10-
11-
namespace MonoDevelop.AspNetCore.Commands
12-
{
13-
enum AspNetCoreCommands
14-
{
15-
Scaffold
16-
}
17-
18-
class ScaffoldNodeExtension : NodeBuilderExtension
19-
{
20-
public override Type CommandHandlerType {
21-
get { return typeof (ScaffoldCommandHandler); }
22-
}
23-
24-
public override bool CanBuildNode (Type dataType)
25-
{
26-
return true;
27-
}
28-
}
29-
30-
class ScaffoldCommandHandler : NodeCommandHandler
31-
{
32-
[CommandHandler (AspNetCoreCommands.Scaffold)]
33-
public async void Scaffold ()
34-
{
35-
var project = IdeApp.ProjectOperations.CurrentSelectedProject as DotNetProject;
36-
if (project == null)
37-
return;
38-
39-
var folder = CurrentNode.GetParentDataItem (typeof (ProjectFolder), true) as ProjectFolder;
40-
string parentFolder = folder?.Path ?? project.BaseDirectory;
41-
42-
Xwt.Toolkit.NativeEngine.Invoke (() => {
43-
var w = new ScaffolderWizard (project, parentFolder);
44-
var res = w.RunWizard ();
45-
});
46-
}
47-
1+
using System;
2+
using System.Linq;
3+
using System.Threading;
4+
using MonoDevelop.AspNetCore.Scaffolding;
5+
using MonoDevelop.Components.Commands;
6+
using MonoDevelop.Ide;
7+
using MonoDevelop.Ide.Gui.Components;
8+
using MonoDevelop.Ide.Gui.Pads.ProjectPad;
9+
using MonoDevelop.Projects;
10+
11+
namespace MonoDevelop.AspNetCore.Commands
12+
{
13+
enum AspNetCoreCommands
14+
{
15+
Scaffold
16+
}
17+
18+
class ScaffoldNodeExtension : NodeBuilderExtension
19+
{
20+
public override Type CommandHandlerType {
21+
get { return typeof (ScaffoldCommandHandler); }
22+
}
23+
24+
public override bool CanBuildNode (Type dataType)
25+
{
26+
return true;
27+
}
28+
}
29+
30+
class ScaffoldCommandHandler : NodeCommandHandler
31+
{
32+
[CommandHandler (AspNetCoreCommands.Scaffold)]
33+
public void Scaffold ()
34+
{
35+
var project = IdeApp.ProjectOperations.CurrentSelectedProject as DotNetProject;
36+
if (project == null)
37+
return;
38+
39+
var folder = CurrentNode.GetParentDataItem (typeof (ProjectFolder), true) as ProjectFolder;
40+
string parentFolder = folder?.Path ?? project.BaseDirectory;
41+
42+
Xwt.Toolkit.NativeEngine.Invoke (() => {
43+
var w = new ScaffolderWizard (project, parentFolder);
44+
var res = w.RunWizard ();
45+
});
46+
}
47+
4848
[CommandUpdateHandler (AspNetCoreCommands.Scaffold)]
4949
public void ScaffoldUpdate (CommandInfo info)
5050
{
5151
var project = CurrentNode.GetParentDataItem (typeof (DotNetProject), true) as DotNetProject;
52+
info.Enabled = info.Visible = NodeIsFileOrFolder(CurrentNode) && IsAspNetCoreProject (project);
53+
}
54+
55+
static bool NodeIsFileOrFolder (ITreeNavigator node)
56+
{
57+
return node.DataItem is ProjectFile || node.DataItem is ProjectFolder;
58+
}
5259

53-
info.Enabled = info.Visible = IsAspNetCoreProject (project);
54-
}
55-
5660
bool IsAspNetCoreProject (Project project)
57-
{
58-
//TODO: this only checks for SDK style project
59-
return project != null
61+
{
62+
//TODO: this only checks for SDK style project
63+
return project != null
6064
&& (project.MSBuildProject.GetReferencedSDKs ().FirstOrDefault (x => x.IndexOf ("Microsoft.NET.Sdk.Web", StringComparison.OrdinalIgnoreCase) != -1) != null);
6165
}
62-
}
63-
}
66+
}
67+
}

0 commit comments

Comments
 (0)