~ubuntu-branches/ubuntu/feisty/monodevelop/feisty

« back to all changes in this revision

Viewing changes to Unused/TextEditor/Gui/Dialogs/ReplaceInFilesDialog.cs

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Dröge
  • Date: 2006-08-18 00:51:23 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20060818005123-5iit07y0j7wjg55f
Tags: 0.11+svn20060818-0ubuntu1
* New SVN snapshot
  + Works with Gtk# 2.9.0
* debian/control:
  + Updated Build-Depends
* debian/patches/use_nunit2.2.dpatch,
  debian/patches/use_real_libs.dpatch:
  + Updated
* debian/patches/versioncontrol_buildfix.dpatch:
  + Fix build failure in the version control addin

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// <file>
 
2
//     <copyright see="prj:///doc/copyright.txt"/>
 
3
//     <license see="prj:///doc/license.txt"/>
 
4
//     <owner name="Mike Krger" email="mike@icsharpcode.net"/>
 
5
//     <version value="$version"/>
 
6
// </file>
 
7
 
 
8
using System;
 
9
using System.IO;
 
10
using System.Drawing;
 
11
using System.ComponentModel;
 
12
 
 
13
using MonoDevelop.Core.Gui;
 
14
using MonoDevelop.DefaultEditor.Gui.Editor;
 
15
using MonoDevelop.TextEditor.Document;
 
16
using MonoDevelop.Core.Properties;
 
17
 
 
18
using MonoDevelop.Core;
 
19
using MonoDevelop.Core;
 
20
//using MonoDevelop.XmlForms;
 
21
//using MonoDevelop.Core.Gui.XmlForms;
 
22
using MonoDevelop.TextEditor;
 
23
 
 
24
namespace MonoDevelop.Core.Gui.Dialogs
 
25
{
 
26
        public class ReplaceInFilesDialog //: BaseSharpDevelopForm
 
27
        {/*
 
28
                ResourceService resourceService = (ResourceService)ServiceManager.Services.GetService(typeof(IResourceService));
 
29
                IMessageService messageService  = (IMessageService)ServiceManager.Services.GetService(typeof(IMessageService));
 
30
                static PropertyService propertyService = (PropertyService)ServiceManager.Services.GetService(typeof(PropertyService));
 
31
                bool replaceMode;
 
32
                
 
33
                public ReplaceInFilesDialog(bool replaceMode)
 
34
                {
 
35
                        this.replaceMode = replaceMode;
 
36
                        FileUtilityService fileUtilityService = (FileUtilityService)ServiceManager.Services.GetService(typeof(FileUtilityService));
 
37
                        if (replaceMode) {
 
38
                                this.SetupFromXml(propertyService.DataDirectory + @"\resources\dialogs\ReplaceInFilesDialog.xfrm");
 
39
                                ControlDictionary["replacePatternComboBox"].Text = SearchReplaceInFilesManager.SearchOptions.ReplacePattern;
 
40
                                ControlDictionary["replaceHelpButton"].Enabled = false;
 
41
                        } else {
 
42
                                this.SetupFromXml(propertyService.DataDirectory + @"\resources\dialogs\FindInFilesDialog.xfrm");
 
43
                        }
 
44
                        
 
45
                        ControlDictionary["findHelpButton"].Enabled = false;
 
46
                        ControlDictionary["searchPatternComboBox"].Text = SearchReplaceInFilesManager.SearchOptions.SearchPattern;
 
47
                        
 
48
                        AcceptButton = (Button)ControlDictionary["findButton"];
 
49
                        CancelButton = (Button)ControlDictionary["closeButton"];
 
50
                        
 
51
                        ((ComboBox)ControlDictionary["specialSearchStrategyComboBox"]).Items.Add(resourceService.GetString("Dialog.NewProject.SearchReplace.SearchStrategy.WildcardSearch"));
 
52
                        ((ComboBox)ControlDictionary["specialSearchStrategyComboBox"]).Items.Add(resourceService.GetString("Dialog.NewProject.SearchReplace.SearchStrategy.RegexSearch"));
 
53
                        int index = 0;
 
54
                        switch (SearchReplaceManager.SearchOptions.SearchStrategyType) {
 
55
                                case SearchStrategyType.Normal:
 
56
                                case SearchStrategyType.Wildcard:
 
57
                                        break;
 
58
                                case SearchStrategyType.RegEx:
 
59
                                        index = 1;
 
60
                                        break;
 
61
                        }
 
62
                        ((ComboBox)ControlDictionary["specialSearchStrategyComboBox"]).SelectedIndex = index;
 
63
                        
 
64
                        ((ComboBox)ControlDictionary["searchLocationComboBox"]).Items.Add(resourceService.GetString("Global.Location.directories"));
 
65
                        ((ComboBox)ControlDictionary["searchLocationComboBox"]).Items.Add(resourceService.GetString("Global.Location.allopenfiles"));
 
66
                        ((ComboBox)ControlDictionary["searchLocationComboBox"]).Items.Add(resourceService.GetString("Global.Location.wholeproject"));
 
67
                                                
 
68
                        index = 0;
 
69
                        switch (SearchReplaceInFilesManager.SearchOptions.DocumentIteratorType) {
 
70
                                case DocumentIteratorType.AllOpenFiles:
 
71
                                        index = 1;
 
72
                                        break;
 
73
                                case DocumentIteratorType.WholeCombine:
 
74
                                        index = 2;
 
75
                                        break;
 
76
                        }
 
77
                        
 
78
                        ((ComboBox)ControlDictionary["searchLocationComboBox"]).SelectedIndex = index;
 
79
                        ((ComboBox)ControlDictionary["searchLocationComboBox"]).SelectedIndexChanged += new EventHandler(SearchLocationCheckBoxChangedEvent);
 
80
                        
 
81
                        ((CheckBox)ControlDictionary["useSpecialSearchStrategyCheckBox"]).CheckedChanged += new EventHandler(SpecialSearchStrategyCheckBoxChangedEvent);
 
82
                        
 
83
                        ControlDictionary["directoryTextBox"].Text = SearchReplaceInFilesManager.SearchOptions.SearchDirectory;
 
84
                        ControlDictionary["fileMaskTextBox"].Text = SearchReplaceInFilesManager.SearchOptions.FileMask;
 
85
                        ((CheckBox)ControlDictionary["includeSubdirectoriesCheckBox"]).Checked = SearchReplaceInFilesManager.SearchOptions.SearchSubdirectories;
 
86
                        
 
87
                        ControlDictionary["browseButton"].Click += new EventHandler(BrowseDirectoryEvent);
 
88
                        
 
89
                        ControlDictionary["findButton"].Click += new EventHandler(FindEvent);
 
90
                        
 
91
                        if (replaceMode) {
 
92
                                ControlDictionary["replaceAllButton"].Click += new EventHandler(ReplaceEvent);
 
93
                        }
 
94
                        
 
95
                        
 
96
                        SearchLocationCheckBoxChangedEvent(null, null);
 
97
                        SpecialSearchStrategyCheckBoxChangedEvent(null, null);
 
98
                }
 
99
                
 
100
                void FindEvent(object sender, EventArgs e)
 
101
                {
 
102
                        if (SetupSearchReplaceInFilesManager()) {
 
103
                                SearchReplaceInFilesManager.FindAll();
 
104
                        }
 
105
                }
 
106
                
 
107
                void ReplaceEvent(object sender, EventArgs e)
 
108
                {
 
109
                        if (SetupSearchReplaceInFilesManager()) {
 
110
                                SearchReplaceInFilesManager.ReplaceAll();
 
111
                        }
 
112
                }
 
113
                
 
114
                void BrowseDirectoryEvent(object sender, EventArgs e)
 
115
                {
 
116
                        FolderDialog fd = new FolderDialog();
 
117
                        if (fd.DisplayDialog(resourceService.GetString("NewProject.SearchReplace.FindInFilesBrowseLabel")) == DialogResult.OK) {
 
118
                                ControlDictionary["directoryTextBox"].Text = fd.Path;
 
119
                        }
 
120
                }
 
121
                
 
122
                void SearchLocationCheckBoxChangedEvent(object sender, EventArgs e)
 
123
                {
 
124
                        bool enableDirectorySearch = ((ComboBox)ControlDictionary["searchLocationComboBox"]).SelectedIndex == 0;
 
125
                        ControlDictionary["fileMaskTextBox"].Enabled = enableDirectorySearch;
 
126
                        ControlDictionary["directoryTextBox"].Enabled = enableDirectorySearch;
 
127
                        ControlDictionary["browseButton"].Enabled = enableDirectorySearch;
 
128
                        ControlDictionary["includeSubdirectoriesCheckBox"].Enabled = enableDirectorySearch;
 
129
                }
 
130
                
 
131
                void SpecialSearchStrategyCheckBoxChangedEvent(object sender, EventArgs e)
 
132
                {
 
133
                        CheckBox cb = (CheckBox)ControlDictionary["useSpecialSearchStrategyCheckBox"];
 
134
                        if (cb != null) {
 
135
                                ControlDictionary["specialSearchStrategyComboBox"].Enabled = cb.Checked;
 
136
                        }
 
137
                }
 
138
                
 
139
                bool SetupSearchReplaceInFilesManager()
 
140
                {
 
141
                        FileUtilityService fileUtilityService = (FileUtilityService)ServiceManager.Services.GetService(typeof(FileUtilityService));
 
142
                        
 
143
                        string directoryName = ControlDictionary["directoryTextBox"].Text;
 
144
                        string fileMask      = ControlDictionary["fileMaskTextBox"].Text;
 
145
                        if (fileMask == null || fileMask.Length == 0) {
 
146
                                fileMask = "*";
 
147
                        }
 
148
                        
 
149
                        if (SearchReplaceInFilesManager.SearchOptions.DocumentIteratorType == DocumentIteratorType.Directory) {
 
150
                                
 
151
                                if (!fileUtilityService.IsValidFileName(directoryName)) {
 
152
                                        messageService.ShowErrorFormatted("${res:NewProject.SearchReplace.FindInFilesInvalidDirectoryMessage}", directoryName);
 
153
                                        return false;
 
154
                                }
 
155
                                
 
156
                                if (!Directory.Exists(directoryName)) {
 
157
                                        messageService.ShowErrorFormatted("${res:NewProject.SearchReplace.FindInFilesDirectoryNotExistingMessage}", directoryName);
 
158
                                        return false;
 
159
                                }
 
160
                                
 
161
                                if (!fileUtilityService.IsValidFileName(fileMask) || fileMask.IndexOf('\\') >= 0) {
 
162
                                        messageService.ShowErrorFormatted("${res:NewProject.SearchReplace.FindInFilesInvalidFilemaskMessage}", fileMask);
 
163
                                        return false;
 
164
                                }
 
165
                        }
 
166
                        if (fileMask == null || fileMask.Length == 0) {
 
167
                                SearchReplaceInFilesManager.SearchOptions.FileMask = "*";
 
168
                        } else {
 
169
                                SearchReplaceInFilesManager.SearchOptions.FileMask        = fileMask;
 
170
                        }
 
171
                        SearchReplaceInFilesManager.SearchOptions.SearchDirectory = directoryName;
 
172
                        SearchReplaceInFilesManager.SearchOptions.SearchSubdirectories = ((CheckBox)ControlDictionary["includeSubdirectoriesCheckBox"]).Checked;
 
173
                        
 
174
                        SearchReplaceInFilesManager.SearchOptions.SearchPattern  = ControlDictionary["searchPatternComboBox"].Text;
 
175
                        if (replaceMode) {
 
176
                                SearchReplaceInFilesManager.SearchOptions.ReplacePattern = ControlDictionary["replacePatternComboBox"].Text;
 
177
                        }
 
178
                        
 
179
                        SearchReplaceInFilesManager.SearchOptions.IgnoreCase          = !((CheckBox)ControlDictionary["ignoreCaseCheckBox"]).Checked;
 
180
                        SearchReplaceInFilesManager.SearchOptions.SearchWholeWordOnly = ((CheckBox)ControlDictionary["searchWholeWordOnlyCheckBox"]).Checked;
 
181
                        
 
182
                        if (((CheckBox)ControlDictionary["useSpecialSearchStrategyCheckBox"]).Checked) {
 
183
                                switch (((ComboBox)ControlDictionary["specialSearchStrategyComboBox"]).SelectedIndex) {
 
184
                                        case 0:
 
185
                                                SearchReplaceInFilesManager.SearchOptions.SearchStrategyType = SearchStrategyType.Wildcard;
 
186
                                                break;
 
187
                                        case 1:
 
188
                                                SearchReplaceInFilesManager.SearchOptions.SearchStrategyType = SearchStrategyType.RegEx;
 
189
                                                break;
 
190
                                }
 
191
                        } else {
 
192
                                SearchReplaceInFilesManager.SearchOptions.SearchStrategyType = SearchStrategyType.Normal;
 
193
                        }
 
194
                        
 
195
                        switch (((ComboBox)ControlDictionary["searchLocationComboBox"]).SelectedIndex) {
 
196
                                case 0:
 
197
                                        SearchReplaceInFilesManager.SearchOptions.DocumentIteratorType = DocumentIteratorType.Directory;
 
198
                                        break;
 
199
                                case 1:
 
200
                                        SearchReplaceInFilesManager.SearchOptions.DocumentIteratorType = DocumentIteratorType.AllOpenFiles;
 
201
                                        break;
 
202
                                case 2:
 
203
                                        SearchReplaceInFilesManager.SearchOptions.DocumentIteratorType = DocumentIteratorType.WholeCombine;
 
204
                                        break;
 
205
                        }
 
206
                        return true;
 
207
                }
 
208
                */
 
209
        }
 
210
}