protected override ImageMoniker GetIconMoniker(bool open) { if (ItemNode.IsExcluded) { return(KnownMonikers.HiddenFile); } else if (!File.Exists(Url)) { return(KnownMonikers.DocumentWarning); } else if (IsFormSubType) { return(FormFileIconMoniker); } else if (this._project.IsCodeFile(FileName)) { if (CommonUtils.IsSamePath(this.Url, _project.GetStartupFile())) { return(StartupCodeFileIconMoniker); } else { return(CodeFileIconMoniker); } } return(default(ImageMoniker)); }
internal override int IncludeInProject(bool includeChildren) { if (Parent.ItemNode != null && Parent.ItemNode.IsExcluded) { // if our parent is excluded it needs to first be included int hr = Parent.IncludeInProject(false); if (ErrorHandler.Failed(hr)) { return(hr); } } if (!ProjectMgr.QueryEditProjectFile(false) || !ProjectMgr.Tracker.CanAddItems(new[] { Url }, new[] { VSQUERYADDFILEFLAGS.VSQUERYADDFILEFLAGS_NoFlags })) { return(VSConstants.E_FAIL); } ResetNodeProperties(); ItemNode = ProjectMgr.CreateMsBuildFileItem( CommonUtils.GetRelativeFilePath(ProjectMgr.ProjectHome, Url), ProjectMgr.IsCodeFile(Url) ? ProjectFileConstants.Compile : ProjectFileConstants.Content ); IsVisible = true; ProjectMgr.ReDrawNode(this, UIHierarchyElement.Icon); ProjectMgr.OnPropertyChanged(this, (int)__VSHPROPID.VSHPROPID_IsNonMemberItem, 0); // https://nodejstools.codeplex.com/workitem/273, refresh the property browser... ((IVsUIShell)GetService(typeof(SVsUIShell))).RefreshPropertyBrowser(0); if (CommonUtils.IsSamePath(ProjectMgr.GetStartupFile(), Url)) { ProjectMgr.BoldItem(this, true); } return(VSConstants.S_OK); }