Files
Umbraco-CMS/components/editorControls/dropdownlist/dropdown.cs

101 lines
2.5 KiB
C#

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Collections;
using umbraco.cms.businesslogic;
using umbraco.cms.businesslogic.language;
using System.Collections.Generic;
namespace umbraco.editorControls
{
public class dropdown : System.Web.UI.WebControls.DropDownList, interfaces.IDataEditor
{
private interfaces.IData _data;
private SortedList _prevalues;
public dropdown(interfaces.IData Data, SortedList Prevalues)
{
_data = Data;
_prevalues = Prevalues;
}
List<KeyValuePair<int, String>> Prevalues;
public dropdown(interfaces.IData Data, List<KeyValuePair<int, String>> Prevalues)
{
_data = Data;
this.Prevalues = Prevalues;
}
public Control Editor {
get {return this;}
}
public virtual bool TreatAsRichTextEditor
{
get {return false;}
}
public virtual bool ShowLabel
{
get {return true;}
}
public void Save()
{
string tmpVal = "";
if (this.SelectedIndex > 0)
tmpVal = this.SelectedValue;
_data.Value = tmpVal;
}
protected override void OnInit(EventArgs e)
{
base.OnInit (e);
if (_prevalues != null)
{
foreach (object key in _prevalues.Keys)
{
this.Items.Add(new ListItem(dropdown.DictionaryReplace(_prevalues[key].ToString()), key.ToString()));
}
}
else if (Prevalues != null)
{
foreach (KeyValuePair<int, String> item in Prevalues)
{
this.Items.Add(new ListItem(dropdown.DictionaryReplace(item.Value), item.Key.ToString()));
}
}
base.Items.Insert(0, new ListItem(ui.Text("choose") + "...",""));
if (_data != null && _data.Value != null)
this.SelectedValue = _data.Value.ToString();
}
static string DictionaryReplace(string text)
{
if (!text.StartsWith("#"))
return text;
else
{
Language lang = Language.GetByCultureCode(System.Threading.Thread.CurrentThread.CurrentCulture.Name);
if (lang != null)
{
if (Dictionary.DictionaryItem.hasKey(text.Substring(1, text.Length - 1)))
{
Dictionary.DictionaryItem di = new Dictionary.DictionaryItem(text.Substring(1, text.Length - 1));
return di.Value(lang.id);
}
}
return "[" + text + "]";
}
}
}
}