﻿<?xml version="1.0" encoding="utf-8" ?>
<ControlType>
<!---<Category> is the category or "classification" of the control. It determines how rules wizard and other designers treat the control.
	The following Categories are available: 
		Display: 	A control that has a static value/representation at runtime. (Display only, value cannot be changed with rules)
		Input: 		A control that has a dynamic value at runtime. (can be read/write and value can be set with rules)
		Listing: 	A control that has a value derived from an associated data source. Listing controls support being populated with one or more SmartObject records
		Action:		A control usually without value that is used to perform an action by the user (example: Submit, Save, Navigate etc using Buttons, Links etc)
-->
	<Category>Display</Category>
<!--
<Group> is the name of the toolbox group where the control can be found at design time
-->
	<Group>MyCustomControlProject</Group>
<!--
<Name> is the short name for the control type stored in Form and View definitions.
-->
	<Name>MyCustomControl1</Name>
<!--
<DisplayName> is shown in the toolbox's "Controls" tab, and is the name used when creating control instance names.
	Example: MyCustomControl2_Definition, MyCustomControl2_Definition1, MyCustomControl2_Definition2 etc   
-->
	<DisplayName>MyCustomControl1</DisplayName>
<!--
<FullName> is used to load and instantiate the control. It tells smartforms where to find the control
	Format: {TypeFullName},{AssemblyName(without .dll extension)}
-->
	<FullName>MyCustomControlProject.MyCustomControl1.MyControl,MyCustomControlProject</FullName>
<!--
<Properties> defines the various properties that the control may have. These are usually shown in the 
	Properties tab when you design the form and select the control
-->
<!--
<Prop> is a property in the Properties collection. It supports the following attributes:
    ID: the unique name for the property
    setFunction: which function in the .js file should be called to set the value of the property
    friendlyName: the display name of the property in the design tool
    type: whether the property is a simple or complex type. Supported values are "simple", "drop" and "complex"
    category: specifies the property "group" that the property will be grouped under at design time
    refreshdisplay: whether the control should be refreshed when the property is changed. Supported values are "true" or "false"
    DesignerSet: the .js method called when the value is changed by the K2 designer
	DesignerValidate: the method used to validate the user's design-time input for the control. Mostly used to ensure unique Id for the control name
	inputlength: the maximim length of design-time input for the control
    
	Below is an example of a Prop item
    <Prop ID="Property1"
          setFunction="TestClientSideControl.CustomSmartFormControlItem1.setProperty1" friendlyname="Sample Property 1" type="simple" category="General"
          refreshdisplay="true"
          DesignerSet="TestClientSideControl.CustomSmartFormControlItem1._showEditStyles" />
-->
	<Properties>
		<Prop ID="ControlName" ValidationPattern="\S" ValidationMessage="InvalidName" 
			refreshdisplay="true" 
			DesignerValidate="SourceCode.Forms.Designers.validateControlName" 
			friendlyname="Name" type="string" category="Detail" inputlength="255" />
		<Prop ID="ControlText"  friendlyname="Control Text" type="string"  category="Detail">
			<Value>DEFAULT VALUE</Value>
		</Prop>
	</Properties>
</ControlType>