Browse Source

Worked on #Develop. Search & Replace panel now has 2 different view modes. ExtTreeView drawing is now more smooth. Fixed some issues.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@18 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Mike Krüger 21 years ago
parent
commit
77dbb0ecd5
  1. 5
      src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj
  2. 321
      src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceItemHashtable.cs
  3. 15
      src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs
  4. 2
      src/AddIns/Misc/AddinScout/Project/Src/Gui/CodonListPanel.cs
  5. 21
      src/AddIns/Misc/NUnitPad/Project/NUnitPad.csproj
  6. 3
      src/AddIns/Misc/NUnitPad/Project/Src/Gui/NUnitPadContent.cs
  7. 1
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  8. 18
      src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs
  9. 2
      src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectStylePanel.cs
  10. 6
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
  11. 3
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/ReferenceNode.cs
  12. 6
      src/Main/Base/Project/Src/Internal/Erbauer/DialogPanelErbauer.cs
  13. 3
      src/Main/Base/Project/Src/Project/Solution/AbstractProject.cs
  14. 2
      src/Main/Base/Project/Src/Services/IconService.cs
  15. 2
      src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingDescriptor.cs
  16. 1
      src/Main/Base/Project/Src/Services/ParserService/CaseSensitiveProjectContent.cs
  17. 2
      src/Main/Base/Project/Src/Services/ParserService/Erbauer/ParserDescriptor.cs
  18. 2
      src/Main/Base/Project/Src/TextEditor/Codons/EditActionErbauer.cs
  19. 1
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextAreaControl.cs
  20. 40
      src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/Nodes/SearchResultNode.cs
  21. 73
      src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs
  22. 38
      src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanelToolbarCommands.cs
  23. 2
      src/Main/Core/Project/Src/AddInTree/AddIn/Codon.cs
  24. 2
      src/Main/Core/Project/Src/AddInTree/AddIn/ExtensionPath.cs
  25. 4
      src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/Icon/IconDescriptor.cs
  26. 2
      src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/Gui/MenuCheckBox.cs
  27. 2
      src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/Gui/MenuCommand.cs
  28. 2
      src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/ToolBarItem/Gui/ToolBarCheckBox.cs
  29. 14
      src/Main/Core/Project/Src/AddInTree/AddInTreeNode.cs
  30. 2
      src/Main/StartUp/Project/StartUp.csproj

5
src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj

@ -55,10 +55,11 @@ @@ -55,10 +55,11 @@
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Src\ResourceEdit\ResourceItem.cs" />
<Compile Include="Src\ResourceEdit\ResourceItemHashtable.cs" />
<Compile Include="Src\ResourceEdit\ResourceList.cs" />
<Compile Include="Src\ResourceEdit\TextView.cs" />
<None Include="ResourceEditor.addin" />
<None Include="ResourceEditor.addin">
<CopyToOutputDirectory>True</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">

321
src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceItemHashtable.cs

@ -1,321 +0,0 @@ @@ -1,321 +0,0 @@
using System;
using System.Collections;
namespace ResourceEditor
{
public class ResourceItemHashtable : IDictionary, ICollection, IEnumerable, ICloneable
{
protected Hashtable innerHash;
#region "Constructors"
public ResourceItemHashtable()
{
innerHash = new Hashtable();
}
public ResourceItemHashtable(ResourceItemHashtable original)
{
innerHash = new Hashtable (original.innerHash);
}
public ResourceItemHashtable(IDictionary dictionary)
{
innerHash = new Hashtable (dictionary);
}
public ResourceItemHashtable(int capacity)
{
innerHash = new Hashtable(capacity);
}
public ResourceItemHashtable(IDictionary dictionary, float loadFactor)
{
innerHash = new Hashtable(dictionary, loadFactor);
}
public ResourceItemHashtable(IHashCodeProvider codeProvider, IComparer comparer)
{
innerHash = new Hashtable (codeProvider, comparer);
}
public ResourceItemHashtable(int capacity, int loadFactor)
{
innerHash = new Hashtable(capacity, loadFactor);
}
public ResourceItemHashtable(IDictionary dictionary, IHashCodeProvider codeProvider, IComparer comparer)
{
innerHash = new Hashtable (dictionary, codeProvider, comparer);
}
public ResourceItemHashtable(int capacity, IHashCodeProvider codeProvider, IComparer comparer)
{
innerHash = new Hashtable (capacity, codeProvider, comparer);
}
public ResourceItemHashtable(IDictionary dictionary, float loadFactor, IHashCodeProvider codeProvider, IComparer comparer)
{
innerHash = new Hashtable (dictionary, loadFactor, codeProvider, comparer);
}
public ResourceItemHashtable(int capacity, float loadFactor, IHashCodeProvider codeProvider, IComparer comparer)
{
innerHash = new Hashtable (capacity, loadFactor, codeProvider, comparer);
}
#endregion
#region Implementation of IDictionary
public ResourceItemHashtableEnumerator GetEnumerator()
{
return new ResourceItemHashtableEnumerator(this);
}
System.Collections.IDictionaryEnumerator IDictionary.GetEnumerator()
{
return new ResourceItemHashtableEnumerator(this);
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public void Remove(string key)
{
innerHash.Remove (key);
}
void IDictionary.Remove(object key)
{
Remove ((string)key);
}
public bool Contains(string key)
{
return innerHash.Contains(key);
}
bool IDictionary.Contains(object key)
{
return Contains((string)key);
}
public void Clear()
{
innerHash.Clear();
}
public void Add(string key, ResourceItem value)
{
innerHash.Add (key, value);
}
void IDictionary.Add(object key, object value)
{
Add ((string)key, (ResourceItem)value);
}
public bool IsReadOnly
{
get
{
return innerHash.IsReadOnly;
}
}
public ResourceItem this[string key]
{
get
{
return (ResourceItem) innerHash[key];
}
set
{
innerHash[key] = value;
}
}
object IDictionary.this[object key]
{
get
{
return this[(string)key];
}
set
{
this[(string)key] = (ResourceItem)value;
}
}
public System.Collections.ICollection Values
{
get
{
return innerHash.Values;
}
}
public System.Collections.ICollection Keys
{
get
{
return innerHash.Keys;
}
}
public bool IsFixedSize
{
get
{
return innerHash.IsFixedSize;
}
}
#endregion
#region Implementation of ICollection
public void CopyTo(System.Array array, int index)
{
innerHash.CopyTo (array, index);
}
public bool IsSynchronized
{
get
{
return innerHash.IsSynchronized;
}
}
public int Count
{
get
{
return innerHash.Count;
}
}
public object SyncRoot
{
get
{
return innerHash.SyncRoot;
}
}
#endregion
#region Implementation of ICloneable
public ResourceItemHashtable Clone()
{
ResourceItemHashtable clone = new ResourceItemHashtable();
clone.innerHash = (Hashtable) innerHash.Clone();
return clone;
}
object ICloneable.Clone()
{
return Clone();
}
#endregion
#region "HashTable Methods"
public bool ContainsKey (string key)
{
return innerHash.ContainsKey(key);
}
public bool ContainsValue (ResourceItem value)
{
return innerHash.ContainsValue(value);
}
public static ResourceItemHashtable Synchronized(ResourceItemHashtable nonSync)
{
ResourceItemHashtable sync = new ResourceItemHashtable();
sync.innerHash = Hashtable.Synchronized(nonSync.innerHash);
return sync;
}
#endregion
internal Hashtable InnerHash
{
get
{
return innerHash;
}
}
}
public class ResourceItemHashtableEnumerator : IDictionaryEnumerator
{
private IDictionaryEnumerator innerEnumerator;
internal ResourceItemHashtableEnumerator (ResourceItemHashtable enumerable)
{
innerEnumerator = enumerable.InnerHash.GetEnumerator();
}
#region Implementation of IDictionaryEnumerator
public string Key
{
get
{
return (string)innerEnumerator.Key;
}
}
object IDictionaryEnumerator.Key
{
get
{
return Key;
}
}
public ResourceItem Value
{
get
{
return (ResourceItem)innerEnumerator.Value;
}
}
object IDictionaryEnumerator.Value
{
get
{
return Value;
}
}
public System.Collections.DictionaryEntry Entry
{
get
{
return innerEnumerator.Entry;
}
}
#endregion
#region Implementation of IEnumerator
public void Reset()
{
innerEnumerator.Reset();
}
public bool MoveNext()
{
return innerEnumerator.MoveNext();
}
public object Current
{
get
{
return innerEnumerator.Current;
}
}
#endregion
}
}

15
src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs

@ -13,6 +13,7 @@ using System.Diagnostics; @@ -13,6 +13,7 @@ using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Collections;
using System.Collections.Generic;
using System.Resources;
using System.Runtime.Serialization.Formatters.Binary;
@ -33,7 +34,7 @@ namespace ResourceEditor @@ -33,7 +34,7 @@ namespace ResourceEditor
ColumnHeader type = new ColumnHeader();
ColumnHeader content = new ColumnHeader();
ResourceItemHashtable resources = new ResourceItemHashtable();
Dictionary<string, ResourceItem> resources = new Dictionary<string, ResourceItem>();
ImageList images = new ImageList();
UndoStack undoStack = null;
@ -51,7 +52,7 @@ namespace ResourceEditor @@ -51,7 +52,7 @@ namespace ResourceEditor
}
}
public ResourceItemHashtable Resources
public Dictionary<string, ResourceItem> Resources
{
get {
return resources;
@ -158,9 +159,9 @@ namespace ResourceEditor @@ -158,9 +159,9 @@ namespace ResourceEditor
// write XML resource
case ".RESX":
ResXResourceWriter rxw = new ResXResourceWriter(filename);
foreach (DictionaryEntry entry in resources) {
foreach (KeyValuePair<string, ResourceItem> entry in resources) {
if (entry.Value != null) {
ResourceItem item = (ResourceItem)entry.Value;
ResourceItem item = entry.Value;
rxw.AddResource(item.Name, item.ResourceValue);
}
}
@ -171,7 +172,7 @@ namespace ResourceEditor @@ -171,7 +172,7 @@ namespace ResourceEditor
// write default resource
default:
ResourceWriter rw = new ResourceWriter(filename);
foreach (DictionaryEntry entry in resources) {
foreach (KeyValuePair<string, ResourceItem> entry in resources) {
ResourceItem item = (ResourceItem)entry.Value;
rw.AddResource(item.Name, item.ResourceValue);
}
@ -230,8 +231,8 @@ namespace ResourceEditor @@ -230,8 +231,8 @@ namespace ResourceEditor
BeginUpdate();
Items.Clear();
foreach (DictionaryEntry entry in resources) {
ResourceItem item = (ResourceItem)entry.Value;
foreach (KeyValuePair<string, ResourceItem> entry in resources) {
ResourceItem item = entry.Value;
string tmp = item.ToString();
string type = item.ResourceValue.GetType().FullName;

2
src/AddIns/Misc/AddinScout/Project/Src/Gui/CodonListPanel.cs

@ -82,7 +82,7 @@ namespace AddInScout @@ -82,7 +82,7 @@ namespace AddInScout
foreach (Codon c in node.Codons) {
ListViewItem lvi = new ListViewItem(c.Name);
lvi.Tag = c;
lvi.SubItems.Add(c.ID);
lvi.SubItems.Add(c.Id);
lvi.SubItems.Add(c.Properties.Contains("class") ? c.Properties["class"] : "");

21
src/AddIns/Misc/NUnitPad/Project/NUnitPad.csproj

@ -31,15 +31,6 @@ @@ -31,15 +31,6 @@
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.core, Version=2.2.2.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
<HintPath>..\..\..\..\..\bin\nunit.core.dll</HintPath>
</Reference>
<Reference Include="nunit.extensions, Version=2.2.2.0, Culture=neutral">
<HintPath>..\..\..\..\..\bin\nunit.extensions.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.2.2.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
<HintPath>..\..\..\..\..\bin\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
@ -69,6 +60,18 @@ @@ -69,6 +60,18 @@
<Name>ICSharpCode.Core</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Tools\NUnit\src\NUnitFramework\extensions\nunit.extensions.dll.csproj">
<Project>{98B10E98-003C-45A0-9587-119142E39986}</Project>
<Name>nunit.extensions.dll</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Tools\NUnit\src\NUnitFramework\core\nunit.core.dll.csproj">
<Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
<Name>nunit.core.dll</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Tools\NUnit\src\NUnitFramework\framework\nunit.framework.dll.csproj">
<Project>{83DD7E12-A705-4DBA-9D71-09C8973D9382}</Project>
<Name>nunit.framework.dll</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
</Project>

3
src/AddIns/Misc/NUnitPad/Project/Src/Gui/NUnitPadContent.cs

@ -134,11 +134,8 @@ namespace ICSharpCode.NUnitPad @@ -134,11 +134,8 @@ namespace ICSharpCode.NUnitPad
void AddNUnitReference(object sender, EventArgs e)
{
if (ProjectService.CurrentProject != null) {
Console.WriteLine("Add reference!");
ProjectService.AddReference(ProjectService.CurrentProject, new ReferenceProjectItem(ProjectService.CurrentProject, "nunit.framework"));
ProjectService.CurrentProject.Save();
} else {
Console.WriteLine("prj == null");
}
}

1
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -13,7 +13,6 @@ @@ -13,7 +13,6 @@
<SignAssembly>True</SignAssembly>
<AssemblyOriginatorKeyFile>Resources\ICSharpCode.SharpDevelop.snk</AssemblyOriginatorKeyFile>
<AssemblyOriginatorKeyMode>File</AssemblyOriginatorKeyMode>
<AssemblyKeyProviderName />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>True</DebugSymbols>

18
src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs

@ -36,7 +36,6 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -36,7 +36,6 @@ namespace ICSharpCode.SharpDevelop.Gui
HideSelection = false;
AllowDrop = true;
this.TreeViewNodeSorter = new ExtTreeViewComparer();
DoubleBuffered = true;
ImageList newImageList = new ImageList();
newImageList.ImageSize = new Size(16, 16);
newImageList.ColorDepth = ColorDepth.Depth32Bit;
@ -132,16 +131,26 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -132,16 +131,26 @@ namespace ICSharpCode.SharpDevelop.Gui
SortNodes(e.Node.Parent);
}
#endregion
bool inRefresh = false;
protected override void OnBeforeExpand(TreeViewCancelEventArgs e)
{
base.OnBeforeExpand(e);
inRefresh = true;
BeginUpdate();
if (e.Node is ExtTreeNode) {
((ExtTreeNode)e.Node).Expanding();
}
SortNodes(e.Node);
}
protected override void OnAfterExpand(TreeViewEventArgs e)
{
base.OnAfterExpand(e);
inRefresh = false;
EndUpdate();
}
protected override void OnBeforeCollapse(TreeViewCancelEventArgs e)
{
base.OnBeforeCollapse(e);
@ -198,6 +207,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -198,6 +207,7 @@ namespace ICSharpCode.SharpDevelop.Gui
protected override void OnDrawNode(DrawTreeNodeEventArgs e)
{
if (!inRefresh) {
ExtTreeNode node = e.Node as ExtTreeNode;
if (node != null && !node.DrawDefault) {
node.Draw(e);
@ -205,6 +215,9 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -205,6 +215,9 @@ namespace ICSharpCode.SharpDevelop.Gui
} else {
e.DrawDefault = true;
}
} else {
e.DrawDefault = false;
}
base.OnDrawNode(e);
}
@ -266,7 +279,6 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -266,7 +279,6 @@ namespace ICSharpCode.SharpDevelop.Gui
string imageKey = performCutBitmap ? (image + "_ghost") : image;
if (!imageIndexTable.ContainsKey(imageKey)) {
ImageList.Images.Add(performCutBitmap ? IconService.GetGhostBitmap(image) : IconService.GetBitmap(image));
Console.WriteLine("Add image : " + image);
imageIndexTable[imageKey] = ImageList.Images.Count - 1;
return ImageList.Images.Count - 1;
}

2
src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectStylePanel.cs

@ -28,7 +28,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -28,7 +28,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
AddInTreeNode treeNode = AddInTree.GetTreeNode("/SharpDevelop/Workbench/Ambiences");
foreach (Codon codon in treeNode.Codons) {
((ComboBox)ControlDictionary["selectAmbienceComboBox"]).Items.Add(codon.ID);
((ComboBox)ControlDictionary["selectAmbienceComboBox"]).Items.Add(codon.Id);
}
((ComboBox)ControlDictionary["selectAmbienceComboBox"]).Text = PropertyService.Get("SharpDevelop.UI.CurrentAmbience", "C#");

6
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs

@ -68,9 +68,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -68,9 +68,7 @@ namespace ICSharpCode.SharpDevelop.Project
}
void ProjectServiceSolutionFolderRemoved(object sender, SolutionFolderEventArgs e)
{
Console.WriteLine("projectbrowser: Solution folder remove!!!");
CallVisitor(new SolutionFolderRemoveVisitor(e.SolutionFolder));
Console.WriteLine("projectbrowser: Solution folder remove done.!!!");
}
void ProjectServiceReferenceAdded(object sender, ProjectReferenceEventArgs e)
{
@ -79,16 +77,12 @@ namespace ICSharpCode.SharpDevelop.Project @@ -79,16 +77,12 @@ namespace ICSharpCode.SharpDevelop.Project
void FileServiceFileRemoving(object sender, FileEventArgs e)
{
Console.WriteLine("projectbrowser: Solution file removing!!!");
CallVisitor(new FileRemoveTreeNodeVisitor(e.FileName));
Console.WriteLine("projectbrowser: Solution file removing!!!");
}
void FileServiceFileRenaming(object sender, FileRenameEventArgs e)
{
Console.WriteLine("projectbrowser: Solution file renaming!!!");
CallVisitor(new FileRenameTreeNodeVisitor(e.SourceFile, e.TargetFile));
Console.WriteLine("projectbrowser: Solution file renaming!!!");
}
void SelectFile(ProjectNode projectNode, string fileName)

3
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/ReferenceNode.cs

@ -33,11 +33,12 @@ namespace ICSharpCode.SharpDevelop.Project @@ -33,11 +33,12 @@ namespace ICSharpCode.SharpDevelop.Project
public override void Delete()
{
IProject project = Project;
referenceProjectItem.Project.Items.Remove(referenceProjectItem);
Debug.Assert(Parent != null);
Debug.Assert(Parent is ReferenceFolder);
((ReferenceFolder)Parent).ShowReferences();
Project.Save();
project.Save();
}
#endregion

6
src/Main/Base/Project/Src/Internal/Erbauer/DialogPanelErbauer.cs

@ -23,13 +23,13 @@ namespace ICSharpCode.Core @@ -23,13 +23,13 @@ namespace ICSharpCode.Core
if (subItems == null || subItems.Count == 0) {
if (codon.Properties.Contains("class")) {
return new DefaultDialogPanelDescriptor(codon.ID, StringParser.Parse(label), (IDialogPanel)codon.AddIn.CreateObject(codon.Properties["class"]));
return new DefaultDialogPanelDescriptor(codon.Id, StringParser.Parse(label), (IDialogPanel)codon.AddIn.CreateObject(codon.Properties["class"]));
} else {
return new DefaultDialogPanelDescriptor(codon.ID, StringParser.Parse(label));
return new DefaultDialogPanelDescriptor(codon.Id, StringParser.Parse(label));
}
}
return new DefaultDialogPanelDescriptor(codon.ID, StringParser.Parse(label), subItems);
return new DefaultDialogPanelDescriptor(codon.Id, StringParser.Parse(label), subItems);
}
}
}

3
src/Main/Base/Project/Src/Project/Solution/AbstractProject.cs

@ -272,16 +272,13 @@ namespace ICSharpCode.SharpDevelop.Project @@ -272,16 +272,13 @@ namespace ICSharpCode.SharpDevelop.Project
public virtual void Dispose()
{
configurations.Clear();
configurations = null;
foreach (ProjectItem item in items) {
item.Dispose();
}
items.Clear();
items = null;
imports.Clear();
imports = null;
}
#endregion

2
src/Main/Base/Project/Src/Services/IconService.cs

@ -113,7 +113,7 @@ namespace ICSharpCode.Core @@ -113,7 +113,7 @@ namespace ICSharpCode.Core
IconDescriptor[] icons = (IconDescriptor[])treeNode.BuildChildItems(null).ToArray(typeof(IconDescriptor));
for (int i = 0; i < icons.Length; ++i) {
IconDescriptor iconCodon = icons[i];
string imageName = iconCodon.Resource != null ? iconCodon.Resource : iconCodon.ID;
string imageName = iconCodon.Resource != null ? iconCodon.Resource : iconCodon.Id;
if (iconCodon.Extensions != null) {
foreach (string ext in iconCodon.Extensions) {

2
src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingDescriptor.cs

@ -49,7 +49,7 @@ namespace ICSharpCode.Core @@ -49,7 +49,7 @@ namespace ICSharpCode.Core
public string Language {
get {
return codon.ID;
return codon.Id;
}
}

1
src/Main/Base/Project/Src/Services/ParserService/CaseSensitiveProjectContent.cs

@ -36,7 +36,6 @@ namespace ICSharpCode.Core @@ -36,7 +36,6 @@ namespace ICSharpCode.Core
public static IProjectContent Create(IProject project)
{
Console.WriteLine("CREATE : " + project);
CaseSensitiveProjectContent newProjectContent = new CaseSensitiveProjectContent();
newProjectContent.references.Add(typeof(object).Assembly);
foreach (ProjectItem item in project.Items) {

2
src/Main/Base/Project/Src/Services/ParserService/Erbauer/ParserDescriptor.cs

@ -39,7 +39,7 @@ namespace ICSharpCode.Core @@ -39,7 +39,7 @@ namespace ICSharpCode.Core
public string Language {
get {
return codon.ID;
return codon.Id;
}
}

2
src/Main/Base/Project/Src/TextEditor/Codons/EditActionErbauer.cs

@ -22,9 +22,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Codons @@ -22,9 +22,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Codons
{
public object BuildItem(object caller, Codon codon, ArrayList subItems)
{
Console.WriteLine("Try to create '{0}'", codon.Properties["class"]);
IEditAction editAction = (IEditAction)codon.AddIn.CreateObject(codon.Properties["class"]);
Console.WriteLine("Action : " + editAction);
string[] keys = codon.Properties["keys"].Split(',');
Keys[] actionKeys = new Keys[keys.Length];

1
src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextAreaControl.cs

@ -448,7 +448,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -448,7 +448,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
public void InitializeFormatter()
{
string formatterPath = formatingStrategyPath + "/" + Document.HighlightingStrategy.Name;
Console.WriteLine("try to get formatter: " + formatterPath);
if (AddInTree.ExistsTreeNode(formatterPath)) {
IFormattingStrategy[] formatter = (IFormattingStrategy[])(AddInTree.GetTreeNode(formatterPath).BuildChildItems(this)).ToArray(typeof(IFormattingStrategy));
if (formatter != null && formatter.Length > 0) {

40
src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/Nodes/SearchResultNode.cs

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
using System;
using System.IO;
using System.Drawing;
using System.Collections.Generic;
using System.Windows.Forms;
@ -24,7 +25,26 @@ namespace SearchAndReplace @@ -24,7 +25,26 @@ namespace SearchAndReplace
Point startPosition;
Point endPosition;
string positionText;
bool showFileName = false;
public bool ShowFileName {
get {
return showFileName;
}
set {
showFileName = value;
if (showFileName) {
Text = positionText + document.GetText(line) + FileNameText;
} else {
Text = positionText + document.GetText(line);
}
}
}
string FileNameText {
get {
return " in " + Path.GetFileName(result.FileName) + "(" + Path.GetDirectoryName(result.FileName) +")";
}
}
public SearchResultNode(IDocument document, SearchResult result)
{
drawDefault = false;
@ -43,6 +63,9 @@ namespace SearchAndReplace @@ -43,6 +63,9 @@ namespace SearchAndReplace
Graphics g = e.Graphics;
int x = MeasureTextWidth(g, positionText, BoldMonospacedFont);
x += MeasureTextWidth(g, document.GetText(line).Replace("\t", " "), BoldMonospacedFont);
if (ShowFileName) {
x += MeasureTextWidth(g, FileNameText, ItalicFont);
}
return x;
}
protected override void DrawForeground(DrawTreeNodeEventArgs e)
@ -53,7 +76,8 @@ namespace SearchAndReplace @@ -53,7 +76,8 @@ namespace SearchAndReplace
spaceSize = g.MeasureString("-", Font, new PointF(0, 0), StringFormat.GenericTypographic);
DrawLine(g, line, e.Bounds.Y, x);
x += DrawLine(g, line, e.Bounds.Y, x);
}
public override void ActivateItem()
@ -75,7 +99,7 @@ namespace SearchAndReplace @@ -75,7 +99,7 @@ namespace SearchAndReplace
sf);
return wordSize.Width;
}
void DrawLine(Graphics g, LineSegment line, float yPos, float xPos)
float DrawLine(Graphics g, LineSegment line, float yPos, float xPos)
{
int logicalX = 0;
if (line.Words != null) {
@ -119,14 +143,22 @@ namespace SearchAndReplace @@ -119,14 +143,22 @@ namespace SearchAndReplace
}
}
} else {
DrawDocumentWord(g,
xPos += DrawDocumentWord(g,
document.GetText(line),
new PointF(xPos, yPos),
MonospacedFont,
Color.Black
);
}
if (ShowFileName) {
xPos += DrawDocumentWord(g,
FileNameText,
new PointF(xPos, yPos),
ItalicMonospacedFont,
Color.Gray
);
}
return xPos;
}
}
}

73
src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs

@ -22,6 +22,12 @@ using ICSharpCode.SharpDevelop.Gui; @@ -22,6 +22,12 @@ using ICSharpCode.SharpDevelop.Gui;
namespace SearchAndReplace
{
public enum SearchResultPanelViewMode {
Flat,
PerFile,
Structural
}
public class SearchResultPanel : AbstractPadContent
{
static SearchResultPanel instance;
@ -35,12 +41,24 @@ namespace SearchAndReplace @@ -35,12 +41,24 @@ namespace SearchAndReplace
Panel myPanel = new Panel();
ExtTreeView resultTreeView = new ExtTreeView();
string curPattern = null;
List<SearchResult> curResults = null;
public override Control Control {
get {
return myPanel;
}
}
public SearchResultPanelViewMode ViewMode {
get {
return PropertyService.Get("SearchAndReplace.SearchResultPanelViewMode", SearchResultPanelViewMode.Flat);
}
set {
PropertyService.Set("SearchAndReplace.SearchResultPanelViewMode", value);
ShowSearchResults(curPattern, curResults);
}
}
public void ExpandAll()
{
@ -76,27 +94,72 @@ namespace SearchAndReplace @@ -76,27 +94,72 @@ namespace SearchAndReplace
}
}
public void ShowSearchResults(string pattern, List<SearchResult> results)
void ShowSearchResultsPerFile()
{
Dictionary<string, SearchFolderNode> folderNodes = new Dictionary<string, SearchFolderNode>();
foreach (SearchResult result in results) {
TreeNode newResult = new TreeNode();
foreach (SearchResult result in curResults) {
if (!folderNodes.ContainsKey(result.FileName)) {
folderNodes[result.FileName] = new SearchFolderNode(result.FileName);
}
folderNodes[result.FileName].Results.Add(result);
}
SearchRootNode searchRootNode = new SearchRootNode(pattern, results);
SearchRootNode searchRootNode = new SearchRootNode(curPattern, curResults);
foreach (SearchFolderNode folderNode in folderNodes.Values) {
folderNode.SetText();
searchRootNode.Nodes.Add(folderNode);
}
resultTreeView.Nodes.Clear();
resultTreeView.Nodes.Add(searchRootNode);
searchRootNode.Expand();
}
void ShowSearchResultsFlat()
{
Dictionary<string, SearchFolderNode> folderNodes = new Dictionary<string, SearchFolderNode>();
foreach (SearchResult result in curResults) {
if (!folderNodes.ContainsKey(result.FileName)) {
folderNodes[result.FileName] = new SearchFolderNode(result.FileName);
}
folderNodes[result.FileName].Results.Add(result);
}
SearchRootNode searchRootNode = new SearchRootNode(curPattern, curResults);
foreach (SearchFolderNode folderNode in folderNodes.Values) {
folderNode.PerformInitialization();
foreach (SearchResultNode node in folderNode.Nodes) {
node.ShowFileName = true;
searchRootNode.Nodes.Add(node);
}
}
resultTreeView.Nodes.Add(searchRootNode);
searchRootNode.Expand();
}
public void ShowSearchResults(string pattern, List<SearchResult> results)
{
this.curPattern = pattern;
this.curResults = results;
if (results == null) {
return;
}
resultTreeView.BeginUpdate();
resultTreeView.Nodes.Clear();
switch (ViewMode) {
case SearchResultPanelViewMode.PerFile:
ShowSearchResultsPerFile();
break;
case SearchResultPanelViewMode.Flat:
ShowSearchResultsFlat();
break;
}
resultTreeView.EndUpdate();
}
public SearchResultPanel()
{
instance = this;

38
src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanelToolbarCommands.cs

@ -99,11 +99,47 @@ namespace SearchAndReplace @@ -99,11 +99,47 @@ namespace SearchAndReplace
}
}
public class ToggleTreeList : AbstractMenuCommand
public class SelectViewMode : AbstractMenuCommand
{
ToolBarDropDownButton dropDownButton;
public override void Run()
{
}
void SetViewMode(object sender, EventArgs e)
{
PadDescriptor searchResultPanel = WorkbenchSingleton.Workbench.GetPad(typeof(SearchResultPanel));
if (searchResultPanel != null) {
searchResultPanel.BringPadToFront();
SearchResultPanel.Instance.ViewMode = (SearchResultPanelViewMode)((ToolStripItem)sender).Tag;
} else {
MessageService.ShowError("SearchResultPanel can't be found.");
}
}
void GenerateDropDownItems()
{
ToolStripItem newItem = new ToolStripMenuItem();
newItem.Text = "Per file";
newItem.Tag = SearchResultPanelViewMode.PerFile;
newItem.Click += new EventHandler(SetViewMode);
dropDownButton.DropDownItems.Add(newItem);
newItem = new ToolStripMenuItem();
newItem.Text = "Flat";
newItem.Tag = SearchResultPanelViewMode.Flat;
newItem.Click += new EventHandler(SetViewMode);
dropDownButton.DropDownItems.Add(newItem);
}
protected override void OnOwnerChanged(EventArgs e)
{
base.OnOwnerChanged(e);
dropDownButton = (ToolBarDropDownButton)Owner;
GenerateDropDownItems();
}
}
}

2
src/Main/Core/Project/Src/AddInTree/AddIn/Codon.cs

@ -27,7 +27,7 @@ namespace ICSharpCode.Core @@ -27,7 +27,7 @@ namespace ICSharpCode.Core
}
}
public string ID {
public string Id {
get {
return properties["id"];
}

2
src/Main/Core/Project/Src/AddInTree/AddIn/ExtensionPath.cs

@ -60,7 +60,7 @@ namespace ICSharpCode.Core @@ -60,7 +60,7 @@ namespace ICSharpCode.Core
Codon newCodon = new Codon(extensionPath.AddIn, elementName, Properties.ReadFromAttributes(reader), extensionPath.conditionStack.ToArray());
extensionPath.codons.Add(newCodon);
if (!reader.IsEmptyElement) {
ExtensionPath subPath = extensionPath.AddIn.GetExtensionPath(extensionPath.Name + "/" + newCodon.ID);
ExtensionPath subPath = extensionPath.AddIn.GetExtensionPath(extensionPath.Name + "/" + newCodon.Id);
foreach (ICondition condition in extensionPath.conditionStack) {
subPath.conditionStack.Push(condition);
}

4
src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/Icon/IconDescriptor.cs

@ -16,9 +16,9 @@ namespace ICSharpCode.Core @@ -16,9 +16,9 @@ namespace ICSharpCode.Core
{
Codon codon;
public string ID {
public string Id {
get {
return codon.ID;
return codon.Id;
}
}

2
src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/Gui/MenuCheckBox.cs

@ -27,7 +27,7 @@ namespace ICSharpCode.Core @@ -27,7 +27,7 @@ namespace ICSharpCode.Core
try {
menuCommand = (ICheckableMenuCommand)codon.AddIn.CreateObject(codon.Properties["class"]);
} catch (Exception e) {
MessageService.ShowError(e, "Can't create menu command : " + codon.ID);
MessageService.ShowError(e, "Can't create menu command : " + codon.Id);
}
}
return menuCommand;

2
src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/Gui/MenuCommand.cs

@ -45,7 +45,7 @@ namespace ICSharpCode.Core @@ -45,7 +45,7 @@ namespace ICSharpCode.Core
try {
menuCommand = (ICommand)codon.AddIn.CreateObject(codon.Properties["class"]);
} catch (Exception e) {
MessageService.ShowError(e, "Can't create menu command : " + codon.ID);
MessageService.ShowError(e, "Can't create menu command : " + codon.Id);
}
}

2
src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/ToolBarItem/Gui/ToolBarCheckBox.cs

@ -52,7 +52,7 @@ namespace ICSharpCode.Core @@ -52,7 +52,7 @@ namespace ICSharpCode.Core
} catch (Exception) {
}
if (menuCommand == null) {
MessageService.ShowError("Can't create toolbar checkbox : " + codon.ID);
MessageService.ShowError("Can't create toolbar checkbox : " + codon.Id);
}
if (Image == null && codon.Properties.Contains("icon")) {

14
src/Main/Core/Project/Src/AddInTree/AddInTreeNode.cs

@ -13,6 +13,7 @@ namespace ICSharpCode.Core @@ -13,6 +13,7 @@ namespace ICSharpCode.Core
Dictionary<string, AddInTreeNode> childNodes = new Dictionary<string, AddInTreeNode>();
List<Codon> codons = new List<Codon>();
bool isSorted = false;
public Dictionary<string, AddInTreeNode> ChildNodes {
get {
return childNodes;
@ -63,7 +64,7 @@ namespace ICSharpCode.Core @@ -63,7 +64,7 @@ namespace ICSharpCode.Core
// initialize visited to false and fill the indexOfName dictionary
for (int i = 0; i < node.codons.Count; ++i) {
visited[i] = false;
indexOfName[node.codons[i].ID] = i;
indexOfName[node.codons[i].Id] = i;
}
}
@ -76,9 +77,9 @@ namespace ICSharpCode.Core @@ -76,9 +77,9 @@ namespace ICSharpCode.Core
if (indexOfName.ContainsKey(before)) {
string after = node.codons[indexOfName[before]].InsertAfter;
if (after == null || after == "") {
node.codons[indexOfName[before]].InsertAfter = node.codons[i].ID;
node.codons[indexOfName[before]].InsertAfter = node.codons[i].Id;
} else {
after += ',' + node.codons[i].ID;
after += ',' + node.codons[i].Id;
}
} else {
Console.WriteLine("Codon ({0}) specified in the insertbefore of the {1} codon does not exist!", before, node.codons[i]);
@ -89,6 +90,7 @@ namespace ICSharpCode.Core @@ -89,6 +90,7 @@ namespace ICSharpCode.Core
public void Execute()
{
InsertEdges();
// Visit all codons
@ -128,8 +130,8 @@ namespace ICSharpCode.Core @@ -128,8 +130,8 @@ namespace ICSharpCode.Core
}
foreach (Codon codon in codons) {
ArrayList subItems = null;
if (childNodes.ContainsKey(codon.ID)) {
subItems = childNodes[codon.ID].BuildChildItems(caller);
if (childNodes.ContainsKey(codon.Id)) {
subItems = childNodes[codon.Id].BuildChildItems(caller);
}
items.Add(codon.BuildItem(caller, subItems));
}
@ -139,7 +141,7 @@ namespace ICSharpCode.Core @@ -139,7 +141,7 @@ namespace ICSharpCode.Core
public object BuildChildItem(string childItemID, object caller)
{
foreach (Codon codon in codons) {
if (codon.ID == childItemID) {
if (codon.Id == childItemID) {
return codon.BuildItem(caller, null);
}
}

2
src/Main/StartUp/Project/StartUp.csproj

@ -13,6 +13,8 @@ @@ -13,6 +13,8 @@
<RunPostBuildEvent>OnSuccessfulBuild</RunPostBuildEvent>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>Resources\StartUp.snk</AssemblyOriginatorKeyFile>
<OutputType>Exe</OutputType>
<ApplicationIcon>C:\Dokumente und Einstellungen\Omnibrain.DIABLO\Eigene Dateien\trunk\SharpDevelop\src\Main\StartUp\Project\Resources\SharpDevelop.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>True</DebugSymbols>

Loading…
Cancel
Save