2
// <copyright see="prj:///doc/copyright.txt"/>
3
// <license see="prj:///doc/license.txt"/>
4
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
5
// <version value="$version"/>
9
using System.Collections;
10
using System.Collections.Specialized;
13
using MonoDevelop.Core.Gui;
14
using MonoDevelop.Projects;
15
using MonoDevelop.DefaultEditor.Gui.Editor;
16
using MonoDevelop.Core;
17
using MonoDevelop.Core;
18
using MonoDevelop.TextEditor;
20
namespace MonoDevelop.TextEditor.Document
22
public class DirectoryDocumentIterator : IDocumentIterator
24
string searchDirectory;
26
bool searchSubdirectories;
28
StringCollection files = null;
31
public DirectoryDocumentIterator(string searchDirectory, string fileMask, bool searchSubdirectories)
33
this.searchDirectory = searchDirectory;
34
this.fileMask = fileMask;
35
this.searchSubdirectories = searchSubdirectories;
40
public string CurrentFileName {
42
if (curIndex < 0 || curIndex >= files.Count) {
46
return files[curIndex].ToString();;
50
public ProvidedDocumentInformation Current {
52
if (curIndex < 0 || curIndex >= files.Count) {
55
if (!File.Exists(files[curIndex].ToString())) {
60
string fileName = files[curIndex].ToString();
61
foreach (Document doc in IdeApp.Workbench.Documents) {
62
// WINDOWS DEPENDENCY : ToUpper
63
if (doc.FileName != null &&
64
doc.FileName.ContentName.ToUpper() == fileName.ToUpper()) {
65
document = ((ITextEditorControlProvider)content).TextEditorControl.Document;
66
return new ProvidedDocumentInformation(document,
70
ITextBufferStrategy strategy = null;
72
strategy = StringTextBufferStrategy.CreateTextBufferFromFile(fileName);
74
TaskService taskService = (TaskService)MonoDevelop.Core.ServiceManager.Services.GetService(typeof(TaskService));
75
taskService.Tasks.Add(new Task(String.Empty, "can't access " + fileName, -1, -1));
78
return new ProvidedDocumentInformation(strategy,
84
public bool MoveForward()
87
FileUtilityService fileUtilityService = (FileUtilityService)ServiceManager.Services.GetService(typeof(FileUtilityService));
88
files = fileUtilityService.SearchDirectory(this.searchDirectory, this.fileMask, this.searchSubdirectories);
90
return ++curIndex < files.Count;
93
public bool MoveBackward()
96
curIndex = files.Count - 1;
99
return --curIndex >= -1;