Browse Source
Allow to continue on AddIn-loading errors. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2038 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61shortcuts
11 changed files with 420 additions and 191 deletions
@ -0,0 +1,123 @@
@@ -0,0 +1,123 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
namespace ICSharpCode.SharpDevelop.Gui |
||||
{ |
||||
partial class EditAvailableConfigurationsDialog : System.Windows.Forms.Form |
||||
{ |
||||
/// <summary>
|
||||
/// Designer variable used to keep track of non-visual components.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null; |
||||
|
||||
/// <summary>
|
||||
/// Disposes resources used by the form.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing) |
||||
{ |
||||
if (disposing) { |
||||
if (components != null) { |
||||
components.Dispose(); |
||||
} |
||||
} |
||||
base.Dispose(disposing); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// This method is required for Windows Forms designer support.
|
||||
/// Do not change the method contents inside the source code editor. The Forms designer might
|
||||
/// not be able to load this method if it was changed manually.
|
||||
/// </summary>
|
||||
private void InitializeComponent() |
||||
{ |
||||
this.listBox = new System.Windows.Forms.ListBox(); |
||||
this.okButton = new System.Windows.Forms.Button(); |
||||
this.removeButton = new System.Windows.Forms.Button(); |
||||
this.renameButton = new System.Windows.Forms.Button(); |
||||
this.addButton = new System.Windows.Forms.Button(); |
||||
this.SuspendLayout(); |
||||
//
|
||||
// listBox
|
||||
//
|
||||
this.listBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) |
||||
| System.Windows.Forms.AnchorStyles.Left) |
||||
| System.Windows.Forms.AnchorStyles.Right))); |
||||
this.listBox.FormattingEnabled = true; |
||||
this.listBox.IntegralHeight = false; |
||||
this.listBox.Location = new System.Drawing.Point(12, 12); |
||||
this.listBox.Name = "listBox"; |
||||
this.listBox.Size = new System.Drawing.Size(204, 93); |
||||
this.listBox.TabIndex = 0; |
||||
//
|
||||
// okButton
|
||||
//
|
||||
this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); |
||||
this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; |
||||
this.okButton.Location = new System.Drawing.Point(222, 111); |
||||
this.okButton.Name = "okButton"; |
||||
this.okButton.Size = new System.Drawing.Size(75, 23); |
||||
this.okButton.TabIndex = 1; |
||||
this.okButton.Text = "${res:Global.OKButtonText}"; |
||||
this.okButton.UseVisualStyleBackColor = true; |
||||
//
|
||||
// removeButton
|
||||
//
|
||||
this.removeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); |
||||
this.removeButton.Location = new System.Drawing.Point(222, 12); |
||||
this.removeButton.Name = "removeButton"; |
||||
this.removeButton.Size = new System.Drawing.Size(75, 23); |
||||
this.removeButton.TabIndex = 2; |
||||
this.removeButton.Text = "${res:Global.RemoveButtonText}"; |
||||
this.removeButton.UseVisualStyleBackColor = true; |
||||
this.removeButton.Click += new System.EventHandler(this.RemoveButtonClick); |
||||
//
|
||||
// renameButton
|
||||
//
|
||||
this.renameButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); |
||||
this.renameButton.Location = new System.Drawing.Point(222, 41); |
||||
this.renameButton.Name = "renameButton"; |
||||
this.renameButton.Size = new System.Drawing.Size(75, 23); |
||||
this.renameButton.TabIndex = 3; |
||||
this.renameButton.Text = "${res:Global.RenameButtonText}"; |
||||
this.renameButton.UseVisualStyleBackColor = true; |
||||
this.renameButton.Click += new System.EventHandler(this.RenameButtonClick); |
||||
//
|
||||
// addButton
|
||||
//
|
||||
this.addButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); |
||||
this.addButton.Location = new System.Drawing.Point(222, 70); |
||||
this.addButton.Name = "addButton"; |
||||
this.addButton.Size = new System.Drawing.Size(75, 23); |
||||
this.addButton.TabIndex = 4; |
||||
this.addButton.Text = "${res:Global.AddButtonText}..."; |
||||
this.addButton.UseVisualStyleBackColor = true; |
||||
this.addButton.Click += new System.EventHandler(this.AddButtonClick); |
||||
//
|
||||
// EditAvailableConfigurationsDialog
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); |
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
||||
this.ClientSize = new System.Drawing.Size(309, 146); |
||||
this.Controls.Add(this.addButton); |
||||
this.Controls.Add(this.renameButton); |
||||
this.Controls.Add(this.removeButton); |
||||
this.Controls.Add(this.okButton); |
||||
this.Controls.Add(this.listBox); |
||||
this.MinimumSize = new System.Drawing.Size(230, 165); |
||||
this.Name = "EditAvailableConfigurationsDialog"; |
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; |
||||
this.Text = "EditAvailableConfigurationsDialog"; |
||||
this.ResumeLayout(false); |
||||
} |
||||
private System.Windows.Forms.Button addButton; |
||||
private System.Windows.Forms.Button renameButton; |
||||
private System.Windows.Forms.Button removeButton; |
||||
private System.Windows.Forms.ListBox listBox; |
||||
private System.Windows.Forms.Button okButton; |
||||
} |
||||
} |
||||
@ -0,0 +1,157 @@
@@ -0,0 +1,157 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Drawing; |
||||
using System.Windows.Forms; |
||||
|
||||
using ICSharpCode.Core; |
||||
using ICSharpCode.SharpDevelop.Project; |
||||
|
||||
namespace ICSharpCode.SharpDevelop.Gui |
||||
{ |
||||
public partial class EditAvailableConfigurationsDialog |
||||
{ |
||||
Solution solution; |
||||
IProject project; |
||||
bool editPlatforms; |
||||
|
||||
public EditAvailableConfigurationsDialog(Solution solution, bool editPlatforms) |
||||
: this() |
||||
{ |
||||
this.solution = solution; |
||||
this.editPlatforms = editPlatforms; |
||||
InitList(); |
||||
} |
||||
|
||||
public EditAvailableConfigurationsDialog(IProject project, bool editPlatforms) |
||||
: this() |
||||
{ |
||||
this.project = project; |
||||
this.solution = project.ParentSolution; |
||||
this.editPlatforms = editPlatforms; |
||||
InitList(); |
||||
} |
||||
|
||||
void InitList() |
||||
{ |
||||
if (project != null) { |
||||
if (editPlatforms) { |
||||
ShowEntries(project.GetPlatformNames(), project.Platform); |
||||
} else { |
||||
ShowEntries(project.GetConfigurationNames(), project.Configuration); |
||||
} |
||||
} else { |
||||
if (editPlatforms) { |
||||
ShowEntries(solution.GetPlatformNames(), solution.Preferences.ActivePlatform); |
||||
} else { |
||||
ShowEntries(solution.GetConfigurationNames(), solution.Preferences.ActiveConfiguration); |
||||
} |
||||
} |
||||
} |
||||
|
||||
void ShowEntries(IEnumerable<string> list, string activeItem) |
||||
{ |
||||
string[] array = Linq.ToArray(list); |
||||
listBox.Items.Clear(); |
||||
listBox.Items.AddRange(array); |
||||
if (listBox.Items.Count == 0) { |
||||
throw new Exception("There must be at least one configuration/platform"); |
||||
} |
||||
listBox.SelectedIndex = Math.Max(Array.IndexOf(array, activeItem), 0); |
||||
} |
||||
|
||||
private EditAvailableConfigurationsDialog() |
||||
{ |
||||
//
|
||||
// The InitializeComponent() call is required for Windows Forms designer support.
|
||||
//
|
||||
InitializeComponent(); |
||||
|
||||
foreach (Control ctl in this.Controls) { |
||||
ctl.Text = StringParser.Parse(ctl.Text); |
||||
} |
||||
} |
||||
|
||||
void RemoveButtonClick(object sender, EventArgs e) |
||||
{ |
||||
if (listBox.Items.Count == 1) { |
||||
MessageService.ShowMessage("You cannot delete all configurations/platforms."); |
||||
} |
||||
string name = listBox.SelectedItem.ToString(); |
||||
if (MessageService.AskQuestionFormatted("Do you really want to remove '{0}'?", |
||||
new string[] { name })) |
||||
{ |
||||
if (project != null) { |
||||
Remove(project, name, editPlatforms); |
||||
} else { |
||||
Remove(solution, name, editPlatforms); |
||||
} |
||||
} |
||||
} |
||||
|
||||
static void Remove(IProject project, string name, bool isPlatform) |
||||
{ |
||||
throw new NotImplementedException(); |
||||
} |
||||
|
||||
static void Remove(Solution solution, string name, bool isPlatform) |
||||
{ |
||||
throw new NotImplementedException(); |
||||
} |
||||
|
||||
void RenameButtonClick(object sender, EventArgs e) |
||||
{ |
||||
string oldName = listBox.SelectedItem.ToString(); |
||||
string newName = MessageService.ShowInputBox("Rename", "Enter the new name:", oldName); |
||||
if (string.IsNullOrEmpty(newName) || newName == oldName) |
||||
return; |
||||
if (!EnsureCorrectName(ref newName)) |
||||
return; |
||||
if (project != null) { |
||||
Rename(project, oldName, newName); |
||||
} else { |
||||
if (editPlatforms) { |
||||
solution.RenameSolutionPlatform(oldName, newName); |
||||
} else { |
||||
solution.RenameSolutionConfiguration(oldName, newName); |
||||
} |
||||
// Solution platform name => project platform name
|
||||
foreach (IProject p in solution.Projects) { |
||||
Rename(p, oldName, newName); |
||||
} |
||||
} |
||||
InitList(); |
||||
} |
||||
|
||||
void Rename(IProject project, string oldName, string newName) |
||||
{ |
||||
} |
||||
|
||||
void AddButtonClick(object sender, EventArgs e) |
||||
{ |
||||
throw new NotImplementedException(); |
||||
} |
||||
|
||||
bool EnsureCorrectName(ref string newName) |
||||
{ |
||||
newName = newName.Trim(); |
||||
if (editPlatforms && string.Equals(newName, "AnyCPU", StringComparison.InvariantCultureIgnoreCase)) |
||||
newName = "Any CPU"; |
||||
if (listBox.Items.Contains(newName)) { |
||||
MessageService.ShowMessage("Duplicate name."); |
||||
return false; |
||||
} |
||||
if (!FileUtility.IsValidDirectoryName(newName)) { |
||||
MessageService.ShowMessage("The name was invalid."); |
||||
return false; |
||||
} |
||||
return true; |
||||
} |
||||
} |
||||
} |
||||
@ -1,129 +0,0 @@
@@ -1,129 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<root> |
||||
<!-- |
||||
Microsoft ResX Schema |
||||
|
||||
Version 2.0 |
||||
|
||||
The primary goals of this format is to allow a simple XML format |
||||
that is mostly human readable. The generation and parsing of the |
||||
various data types are done through the TypeConverter classes |
||||
associated with the data types. |
||||
|
||||
Example: |
||||
|
||||
... ado.net/XML headers & schema ... |
||||
<resheader name="resmimetype">text/microsoft-resx</resheader> |
||||
<resheader name="version">2.0</resheader> |
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
||||
<value>[base64 mime encoded serialized .NET Framework object]</value> |
||||
</data> |
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
||||
<comment>This is a comment</comment> |
||||
</data> |
||||
|
||||
There are any number of "resheader" rows that contain simple |
||||
name/value pairs. |
||||
|
||||
Each data row contains a name, and value. The row also contains a |
||||
type or mimetype. Type corresponds to a .NET class that support |
||||
text/value conversion through the TypeConverter architecture. |
||||
Classes that don't support this are serialized and stored with the |
||||
mimetype set. |
||||
|
||||
The mimetype is used for serialized objects, and tells the |
||||
ResXResourceReader how to depersist the object. This is currently not |
||||
extensible. For a given mimetype the value must be set accordingly: |
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format |
||||
that the ResXResourceWriter will generate, however the reader can |
||||
read any of the formats listed below. |
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64 |
||||
value : The object must be serialized with |
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter |
||||
: and then encoded with base64 encoding. |
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64 |
||||
value : The object must be serialized with |
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
||||
: and then encoded with base64 encoding. |
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64 |
||||
value : The object must be serialized into a byte array |
||||
: using a System.ComponentModel.TypeConverter |
||||
: and then encoded with base64 encoding. |
||||
--> |
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> |
||||
<xsd:element name="root" msdata:IsDataSet="true"> |
||||
<xsd:complexType> |
||||
<xsd:choice maxOccurs="unbounded"> |
||||
<xsd:element name="metadata"> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" /> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="name" use="required" type="xsd:string" /> |
||||
<xsd:attribute name="type" type="xsd:string" /> |
||||
<xsd:attribute name="mimetype" type="xsd:string" /> |
||||
<xsd:attribute ref="xml:space" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="assembly"> |
||||
<xsd:complexType> |
||||
<xsd:attribute name="alias" type="xsd:string" /> |
||||
<xsd:attribute name="name" type="xsd:string" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="data"> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> |
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
||||
<xsd:attribute ref="xml:space" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="resheader"> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="name" type="xsd:string" use="required" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:choice> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:schema> |
||||
<resheader name="resmimetype"> |
||||
<value>text/microsoft-resx</value> |
||||
</resheader> |
||||
<resheader name="version"> |
||||
<value>2.0</value> |
||||
</resheader> |
||||
<resheader name="reader"> |
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
||||
</resheader> |
||||
<resheader name="writer"> |
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
||||
</resheader> |
||||
<metadata name="projectNameColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
||||
<value>True</value> |
||||
</metadata> |
||||
<metadata name="configurationColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
||||
<value>True</value> |
||||
</metadata> |
||||
<metadata name="platformColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
||||
<value>True</value> |
||||
</metadata> |
||||
</root> |
||||
Loading…
Reference in new issue