2009-06-19 07:39:16 +00:00
using System ;
using System.Collections ;
using System.Web.UI ;
using System.Web.UI.WebControls ;
using umbraco.BusinessLogic ;
using umbraco.DataLayer ;
namespace umbraco.editorControls.uploadfield
{
class uploadFieldPreValue : System . Web . UI . WebControls . PlaceHolder , interfaces . IDataPrevalue
{
// UI controls
private TextBox _textboxThumbnails ;
private DropDownList _dropdownlist ;
// referenced datatype
private cms . businesslogic . datatype . BaseDataType _datatype ;
public static ISqlHelper SqlHelper
{
get { return Application . SqlHelper ; }
}
public uploadFieldPreValue ( cms . businesslogic . datatype . BaseDataType DataType )
{
// state it knows its datatypedefinitionid
_datatype = DataType ;
setupChildControls ();
}
private void setupChildControls ()
{
_dropdownlist = new DropDownList ();
_dropdownlist . ID = "dbtype" ;
_dropdownlist . Items . Add ( DBTypes . Date . ToString ());
_dropdownlist . Items . Add ( DBTypes . Integer . ToString ());
_dropdownlist . Items . Add ( DBTypes . Ntext . ToString ());
_dropdownlist . Items . Add ( DBTypes . Nvarchar . ToString ());
_textboxThumbnails = new TextBox ();
_textboxThumbnails . ID = "thumbNailSizes" ;
// put the childcontrols in context - ensuring that
// the viewstate is persisted etc.
this . Controls . Add ( _dropdownlist );
this . Controls . Add ( _textboxThumbnails );
}
protected override void OnLoad ( EventArgs e )
{
base . OnLoad ( e );
if (! Page . IsPostBack )
{
string [] config = Configuration . Split ( "|" . ToCharArray ());
if ( config . Length > 0 )
{
_textboxThumbnails . Text = config [ 0 ];
}
_dropdownlist . SelectedValue = _datatype . DBType . ToString ();
}
}
public Control Editor
{
get
{
return this ;
}
}
public void Save ()
{
_datatype . DBType = ( umbraco . cms . businesslogic . datatype . DBTypes ) Enum . Parse ( typeof ( umbraco . cms . businesslogic . datatype . DBTypes ), _dropdownlist . SelectedValue , true );
// Generate data-string
string data = _textboxThumbnails . Text ;
// If the add new prevalue textbox is filled out - add the value to the collection.
IParameter [] SqlParams = new IParameter [] {
SqlHelper . CreateParameter ( "@value" , data ),
SqlHelper . CreateParameter ( "@dtdefid" , _datatype . DataTypeDefinitionId )};
SqlHelper . ExecuteNonQuery ( "delete from cmsDataTypePreValues where datatypenodeid = @dtdefid" , SqlParams );
2011-01-11 11:14:31 -01:00
// need to unlock the parameters (for SQL CE compat)
SqlParams = new IParameter [] {
SqlHelper . CreateParameter ( "@value" , data ),
SqlHelper . CreateParameter ( "@dtdefid" , _datatype . DataTypeDefinitionId )};
SqlHelper . ExecuteNonQuery ( "insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')" , SqlParams );
2009-06-19 07:39:16 +00:00
}
protected override void Render ( HtmlTextWriter writer )
{
writer . WriteLine ( "<table>" );
writer . WriteLine ( "<tr><th>Database datatype</th><td>" );
_dropdownlist . RenderControl ( writer );
writer . Write ( "</td></tr>" );
writer . Write ( "<tr><th>Thumbnail sizes (max width/height, semicolon separated for multiples):</th><td>" );
_textboxThumbnails . RenderControl ( writer );
writer . Write ( "</td></tr>" );
writer . Write ( "</table>" );
}
public string Configuration
{
get
{
object configVal = SqlHelper . ExecuteScalar < object >( "select value from cmsDataTypePreValues where datatypenodeid = @datatypenodeid" , SqlHelper . CreateParameter ( "@datatypenodeid" , _datatype . DataTypeDefinitionId ));
if ( configVal != null )
return configVal . ToString ();
else
return "" ;
}
}
}
}