public override IEnumerable <ISavableFile> Create(FileCreationContext context) { byte[] data = null; var evaluator = context.GetStringEvaluator(); if (ContentsType == Templates.ContentsType.Text) { data = Encoding.UTF8.GetBytes(evaluator.EvaluateString(UnevaluatedContents)); } else { data = Convert.FromBase64String(UnevaluatedContents); } var file = context.FileService.CreateFile(context.FilePath.ParentDirectory.Combine(evaluator.EvaluateString(UnevaluatedName)), data); if (!string.IsNullOrEmpty(DependentUpon)) { file.Dependencies.Add(evaluator.EvaluateString(DependentUpon)); } if (context.CurrentProject != null) { var entry = new ProjectFileEntry(file.FilePath); entry.Dependencies.AddRange(file.Dependencies); context.CurrentProject.ProjectFiles.Add(entry); } return(new ISavableFile[] { file }); }
public MSBuildProject(FilePath filePath) { FilePath = filePath; _msBuildProject = ProjectRootElement.Open(filePath.FullPath, _globalCollection); foreach (var item in _msBuildProject.Items) { if (item.ItemType == "Reference") References.Add(item.Include); else if (item.ItemType == "Compile" || item.ItemType == "None") { var entry = new ProjectFileEntry(new FilePath(this.ProjectDirectory, item.Include)); foreach (var element in item.Metadata) { if (element.Name == "DependentUpon") { entry.Dependencies.Add(element.Value); } } entry.ParentProject = this; AddFileEventHandlers(entry); ProjectFiles.Add(entry); } } SetupEventHandlers(); HasUnsavedData = false; }
public MSBuildProject(FilePath filePath) { FilePath = filePath; _msBuildProject = ProjectRootElement.Open(filePath.FullPath, _globalCollection); foreach (var item in _msBuildProject.Items) { if (item.ItemType == "Reference") { References.Add(item.Include); } else if (item.ItemType == "Compile" || item.ItemType == "None") { var entry = new ProjectFileEntry(new FilePath(this.ProjectDirectory, item.Include)); foreach (var element in item.Metadata) { if (element.Name == "DependentUpon") { entry.Dependencies.Add(element.Value); } } entry.ParentProject = this; AddFileEventHandlers(entry); ProjectFiles.Add(entry); } } SetupEventHandlers(); HasUnsavedData = false; }
public FileNode(ProjectFileEntry file, IconProvider iconProvider) : base(file.FilePath) { if (file == null) throw new ArgumentNullException("file"); if (iconProvider == null) throw new ArgumentNullException("iconProvider"); FileEntry = file; FileEntry.FilePathChanged += FileEntry_FilePathChanged; ImageIndex = SelectedImageIndex = (_iconProvider = iconProvider).GetImageIndex(file); }
private ProjectFileEntry ReadProjectFileEntryItem(ProjectItemElement element) { var entry = new ProjectFileEntry(new FilePath(this.ProjectDirectory, element.Include)); foreach (var metadata in element.Metadata) { if (metadata.Name == "DependentUpon") { entry.Dependencies.Add(metadata.Value); } } entry.ParentProject = this; return(entry); }
private void existingFileToolStripMenuItem_Click(object sender, EventArgs e) { using (var dialog = new OpenFileDialog()) { if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { var directoryNode = GetCurrentDirectoryNode(); var projectNode = directoryNode.GetProjectNode(); var sourcePath = new FilePath(dialog.FileName); var newPath = new FilePath(directoryNode.FilePath, sourcePath.FileName + sourcePath.Extension); _extensionHost.FileService.CopyFile(sourcePath, newPath); var fileEntry = new ProjectFileEntry(newPath); projectNode.ProjectEntry.Project.ProjectFiles.Add(fileEntry); } } }
public FileNode(ProjectFileEntry file, IconProvider iconProvider) : base(file.FilePath) { if (file == null) { throw new ArgumentNullException("file"); } if (iconProvider == null) { throw new ArgumentNullException("iconProvider"); } FileEntry = file; FileEntry.FilePathChanged += FileEntry_FilePathChanged; ImageIndex = SelectedImageIndex = (_iconProvider = iconProvider).GetImageIndex(file); }
private void RemoveFileEventHandlers(ProjectFileEntry entry) { entry.FilePathChanged -= new PathChangedEventHandler(ProjectFileEntry_FilePathChanged); entry.Dependencies.InsertedItem -= DependantFiles_InsertedItem; entry.Dependencies.RemovedItem -= DependantFiles_RemovedItem; }
private ProjectFileEntry ReadProjectFileEntryItem(ProjectItemElement element) { var entry = new ProjectFileEntry(new FilePath(this.ProjectDirectory, element.Include)); foreach (var metadata in element.Metadata) { if (metadata.Name == "DependentUpon") { entry.Dependencies.Add(metadata.Value); } } entry.ParentProject = this; return entry; }