//
//
//
//
// $Revision$
//
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using ICSharpCode.SharpDevelop.Gui.XmlForms;
namespace ICSharpCode.XmlEditor
{
public class AddElementDialog : BaseSharpDevelopForm, IAddElementDialog
{
ListBox elementsListBox;
Button okButton;
TextBox elementTextBox;
public AddElementDialog(string[] elementNames)
{
SetupFromXmlStream(GetType().Assembly.GetManifestResourceStream("ICSharpCode.XmlEditor.Resources.AddElementDialog.xfrm"));
okButton = (Button)ControlDictionary["okButton"];
okButton.Enabled = false;
AcceptButton = okButton;
CancelButton = (Button)ControlDictionary["cancelButton"];
elementTextBox = (TextBox)ControlDictionary["elementTextBox"];
elementTextBox.TextChanged += ElementTextBoxTextChanged;
elementsListBox = (ListBox)ControlDictionary["elementsListBox"];
elementsListBox.SelectedIndexChanged += ElementsListBoxSelectedIndexChanged;
foreach (string name in elementNames) {
elementsListBox.Items.Add(name);
}
}
///
/// Gets the element names selected.
///
public string[] ElementNames {
get {
List elementNames = new List();
if (IsElementSelected) {
foreach (string elementName in elementsListBox.SelectedItems) {
elementNames.Add(elementName);
}
}
string customElementName = elementTextBox.Text.Trim();
if (customElementName.Length > 0) {
elementNames.Add(customElementName);
}
return elementNames.ToArray();
}
}
void ElementsListBoxSelectedIndexChanged(object source, EventArgs e)
{
okButton.Enabled = IsOkButtonEnabled;
}
void ElementTextBoxTextChanged(object source, EventArgs e)
{
okButton.Enabled = IsOkButtonEnabled;
}
bool IsElementSelected {
get {
return elementsListBox.SelectedIndex >= 0;
}
}
bool IsOkButtonEnabled {
get {
return IsElementSelected || IsElementNameEntered;
}
}
bool IsElementNameEntered {
get {
return elementTextBox.Text.Trim().Length > 0;
}
}
}
}