We have a default page that implements a desktop control
Default.aspx
----------------
<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="CooliteDemo._Default" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<%@ Register TagPrefix="uc10" TagName="Permissions" Src="~/Planroom/UserControls/Permissions.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<%--<link rel="stylesheet" type="text/css" href="resources/css/ext-all-notheme.css" />
<link rel="stylesheet" type="text/css" href="resources/css/xtheme-tp.css" />--%>
<title>BlueprintOnline</title>
<style type="text/css">
#ux-taskbar-start, #TaskBarStart-xsplit
{
display: none;
}
.start-button
{
background-image: url(vista_start_button.gif) !important;
}
.icon-AddressBook
{
background-image: url(resources/images/address_book_btn_off.png) !important;
background-repeat: no-repeat;
background-position: center bottom;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="resources/images/address_book_btn_off.png");
}
.desktopEl
{
position: absolute !important;
background-color: black;
}
.desktopEl1
{
position: absolute !important;
}
.desktopElText
{
color: #4dc8e9;
font-size: medium;
font-weight: bold;
}
</style>
</head>
<body>
<form id="DefaultForm" runat="server">
<ext:Hidden ID="ShowPermissions" runat="server" />
<ext:ResourceManager ID="ResourceManager1" DirectMethodNamespace="BPOLX" runat="server"
RethrowAjaxExceptions="true" Theme="Slate">
</ext:ResourceManager>
<ext:Desktop ID="MyDesktop" runat="server" BackgroundColor="Black" ShortcutTextColor="White">
<Modules>
<ext:DesktopModule ModuleID="DesktopModule6" WindowID="winPermissions">
<Launcher ID="Launcher6" runat="server" Text="Permissions" Icon="UserTick" />
</ext:DesktopModule>
</Modules>
<Shortcuts>
<ext:DesktopShortcut ModuleID="DesktopModule6" X="100" Y="200" IconCls="shortcut-icon icon-AddressBook" />
</Shortcuts>
</ext:Desktop>
<ext:DesktopWindow ID="winPermissions" runat="server" Title="Permissions" Width="600"
Height="500" Maximizable="false">
<Content>
<ext:Panel runat="server" ID="pnlPermission" />
</Content>
<DirectEvents>
<BeforeShow OnEvent="ShowPermissionControl" />
<BeforeHide OnEvent="HidePermissionControl" />
</DirectEvents>
</ext:DesktopWindow>
</form>
</body>
</html>
Code-behind for default.aspx
------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CooliteDemo.Planroom.UserControls;
using Ext.Net;
namespace CooliteDemo
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (ShowPermissions.Text == "true")
{
var permissionControl = (WebUserControl1)LoadControl("Planroom/UserControls/Permissions.ascx");
permissionControl.ID = "PermissionsControl";
pnlPermission.ContentControls.Add(permissionControl);
}
}
protected void ShowPermissionControl(object sender, DirectEventArgs e)
{
try
{
var permissionControl = (WebUserControl1)LoadControl("Planroom/UserControls/Permissions.ascx");
permissionControl.ID = "PermissionControl";
pnlPermission.ContentControls.Add(permissionControl);
pnlPermission.UpdateContent();
ShowPermissions.Text = "true";
}
catch (Exception ex)
{
}
return;
}
[DirectMethod]
public void HidePermissionControl(object sender, DirectEventArgs e)
{
ShowPermissions.Text = "false";
}
}
}
User Control -Permissions.ascx
------------------------------------------------------------------
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Permissions.ascx.cs" Inherits="CooliteDemo.Planroom.UserControls.WebUserControl1" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<ext:XScript ID="XScript1" runat="server">
<script type="text/javascript">
var AddUserToGrid = function () {
var grid = #{grdUsers};
grid.addRecord({ID:#{cbPerson}.getValue(), Name:#{cbPerson}.getText()});
grid.getView().refresh();
#{cbPerson}.clearValue();
}
var RemoveUser = function () {
var grid = #{grdUsers};
var selections = grid.getSelectionModel().getSelections();
for (var i = 0, r; r = selections[i]; i++) {
#{SelectedUserStore}.remove(r);
}
grid.getView().refresh();
}
var SetPermission = function()
{
var role = #{cbRoles}.getValue();
if( role == '' )
return;
else
{
#{chkPermission}.setDisabled(false);
if (role ==2)
{
#{chkViewDrawings}.setValue(true);
#{chkOrder}.setValue(true);
#{chkUpload}.setValue(true);
#{chkDownload}.setValue(true);
#{chkCurrentSet}.setValue(true);
#{chkEdit}.setValue(false);
#{chkDelete}.setValue(false);
#{chkCreateFolder}.setValue(false);
#{chkAddProject}.setValue(false);
#{chkEditProject}.setValue(false);
#{chkHistorical}.setValue(false);
#{chkOriginal}.setValue(false);
#{chkAssignPermission}.setValue(false);
#{chkSendBid}.setValue(false);
#{chkSendRFI}.setValue(false);
#{chkSendInvitation}.setValue(false);
#{chkSendChangeOrder}.setValue(false);
#{chkViewBid}.setValue(false);
#{chkViewRFI}.setValue(false);
#{chkViewInvitation}.setValue(false);
#{chkViewChangeOrder}.setValue(false);
}
else if (role == 3)
{
#{chkViewDrawings}.setValue(true);
#{chkOrder}.setValue(true);
#{chkUpload}.setValue(true);
#{chkDownload}.setValue(true);
#{chkCurrentSet}.setValue(true);
#{chkEdit}.setValue(true);
#{chkDelete}.setValue(true);
#{chkCreateFolder}.setValue(true);
#{chkAddProject}.setValue(true);
#{chkEditProject}.setValue(true);
#{chkHistorical}.setValue(true);
#{chkOriginal}.setValue(true);
#{chkAssignPermission}.setValue(true);
#{chkSendBid}.setValue(false);
#{chkSendRFI}.setValue(false);
#{chkSendInvitation}.setValue(false);
#{chkSendChangeOrder}.setValue(false);
#{chkViewBid}.setValue(false);
#{chkViewRFI}.setValue(false);
#{chkViewInvitation}.setValue(false);
#{chkViewChangeOrder}.setValue(false);
}
else if (role == 4)
{
#{chkViewDrawings}.setValue(true);
#{chkOrder}.setValue(true);
#{chkUpload}.setValue(true);
#{chkDownload}.setValue(true);
#{chkCurrentSet}.setValue(true);
#{chkEdit}.setValue(true);
#{chkDelete}.setValue(true);
#{chkCreateFolder}.setValue(true);
#{chkAddProject}.setValue(true);
#{chkEditProject}.setValue(true);
#{chkHistorical}.setValue(true);
#{chkOriginal}.setValue(true);
#{chkAssignPermission}.setValue(true);
#{chkSendBid}.setValue(true);
#{chkSendRFI}.setValue(true);
#{chkSendInvitation}.setValue(true);
#{chkSendChangeOrder}.setValue(true);
#{chkViewBid}.setValue(false);
#{chkViewRFI}.setValue(false);
#{chkViewInvitation}.setValue(false);
#{chkViewChangeOrder}.setValue(false);
}
else if (role == 5)
{
#{chkViewDrawings}.setValue(true);
#{chkOrder}.setValue(true);
#{chkUpload}.setValue(true);
#{chkDownload}.setValue(true);
#{chkCurrentSet}.setValue(true);
#{chkEdit}.setValue(true);
#{chkDelete}.setValue(true);
#{chkCreateFolder}.setValue(true);
#{chkAddProject}.setValue(true);
#{chkEditProject}.setValue(true);
#{chkHistorical}.setValue(true);
#{chkOriginal}.setValue(true);
#{chkAssignPermission}.setValue(true);
#{chkSendBid}.setValue(true);
#{chkSendRFI}.setValue(true);
#{chkSendInvitation}.setValue(true);
#{chkSendChangeOrder}.setValue(true);
#{chkViewBid}.setValue(true);
#{chkViewRFI}.setValue(true);
#{chkViewInvitation}.setValue(true);
#{chkViewChangeOrder}.setValue(true);
}
else if (role == 6)
{
#{chkViewDrawings}.setValue(true);
#{chkOrder}.setValue(true);
#{chkUpload}.setValue(true);
#{chkDownload}.setValue(true);
#{chkCurrentSet}.setValue(true);
#{chkEdit}.setValue(true);
#{chkDelete}.setValue(true);
#{chkCreateFolder}.setValue(true);
#{chkAddProject}.setValue(true);
#{chkEditProject}.setValue(true);
#{chkHistorical}.setValue(true);
#{chkOriginal}.setValue(true);
#{chkAssignPermission}.setValue(true);
#{chkSendBid}.setValue(true);
#{chkSendRFI}.setValue(true);
#{chkSendInvitation}.setValue(true);
#{chkViewBid}.setValue(true);
#{chkSendChangeOrder}.setValue(true);
#{chkViewRFI}.setValue(true);
#{chkViewInvitation}.setValue(true);
#{chkViewChangeOrder}.setValue(true);
}
}
}
var setPermissionComponentParameters = function()
{
if (!#{PermissionsComponentMenuItem}.component.collapsed)
{
#{PermissionPanelsMenu}.setWidth(#{pnlPermissionBreadCrumb}.getWidth());
#{PermissionPanelsMenu}.setPosition(#{pnlPermissionBreadCrumb}.getPosition()[0], #{pnlPermissionBreadCrumb}.getPosition()[1] + #{pnlPermissionBreadCrumb}.getHeight());
}
}
var expandPermissionCurrentProject = function(e)
{
Ext.net.Mask.show({el: #{PermissionDocumentTree}});
if (e.nodes.length > 0 && e.nodes[0].id==2094)
{
BPOLX.Documents.GetPath(#{txtProjectId}.getValue(), {success:expandPermissionProjectFromPath});
}
Ext.net.Mask.hide();
}
var expandPermissionProjectFromPath = function(e)
{
if (e.length > 0)
{
var nodes = e.split('\\');
if (nodes.length> 2)
{
expandPermissionTreeNode(nodes[2]);
}
if (nodes.length> 3)
{
setTimeout("expandPermissionTreeNode(" + nodes[3] +")",700);
}
}
}
var expandPermissionTreeNode = function(e)
{
var node = #{PermissionDocumentTree}.getNodeById(e);
if (node != null)
{
node.expand();
}
}
var ShowHideUser = function (field, index) {
if (#{grdPermissions}.getRowsValues({selectedOnly : true}).length == 1)
{
#{btnEditUser}.setDisabled(false);
#{btnDeleteUser}.setDisabled(false);
}
else if (#{grdPermissions}.getRowsValues({selectedOnly : true}).length == 1)
{
#{btnEditUser}.setDisabled(false);
#{btnDeleteUser}.setDisabled(false);
}
else if (#{grdPermissions}.getRowsValues({selectedOnly : true}).length > 1)
{
#{btnEditUser}.setDisabled(true);
#{btnDeleteUser}.setDisabled(false);
}
}
</script>
</ext:XScript>
<ext:TextField Hidden="true" ID="txtProjectId" runat="server" />
<ext:Store ID="PermissionsStore" runat="server">
<Reader>
<ext:ArrayReader>
<Fields>
<ext:RecordField Name="ID" Mapping="ID" Type="Int" />
<ext:RecordField Name="PersonName" Mapping="PersonName" Type="String" />
<ext:RecordField Name="UserName" Mapping="UserName" Type="String" />
<ext:RecordField Name="Company" Mapping="Company" Type="String" />
<ext:RecordField Name="Role" Mapping="Role" Type="String" />
</Fields>
</ext:ArrayReader>
</Reader>
</ext:Store>
<ext:Store ID="SelectedUserStore" runat="server">
<Reader>
<ext:ArrayReader>
<Fields>
<ext:RecordField Name="ID" Mapping="ID" Type="Int" />
<ext:RecordField Name="Name" Mapping="Name" Type="String" />
</Fields>
</ext:ArrayReader>
</Reader>
</ext:Store>
<ext:FitLayout runat="server" ID="Permissionlayout">
<Items>
<ext:GridPanel ID="grdPermissions" runat="server" ColumnLines="true" StoreID="PermissionsStore">
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server" Layout="Container">
<Items>
<ext:Toolbar runat="server">
<Items>
<ext:HBoxLayout ID="hblBreadCrumb" runat="server" Padding="2" Align="Top">
<BoxItems>
<ext:BoxItem Flex="1">
<ext:Panel ID="pnlPermissionBreadCrumb" runat="server" Height="24" Width="540">
<Items>
</Items>
</ext:Panel>
</ext:BoxItem>
<ext:BoxItem>
<ext:Panel ID="Panel8" runat="server">
<Items>
<ext:Button ID="btnJumpFolders" runat="server" Icon="ArrowDown">
<Menu>
<ext:Menu ID="PermissionPanelsMenu" runat="server" StyleSpec="overflow:visible;">
<Listeners>
<Show Fn="setPermissionComponentParameters" />
</Listeners>
<Items>
<ext:ComponentMenuItem ID="PermissionsComponentMenuItem" runat="server" Shift="false"
HideOnClick="false">
<Component>
<ext:TreePanel ID="PermissionDocumentTree" runat="server" Height="300" AutoWidth="true"
Icon="ChartOrganisation" ContainerScroll="true" AutoScroll="true" Animate="true"
UseArrows="true" RootVisible="false">
<Loader>
<ext:PageTreeLoader OnNodeLoad="ProjectTreeLoad">
</ext:PageTreeLoader>
</Loader>
<Root>
<ext:AsyncTreeNode NodeID="2094" Text="" />
</Root>
<DirectEvents>
<Click OnEvent="ProjectNodeClick">
<ExtraParams>
<ext:Parameter Name="nodeId" Value="node.id" Mode="Raw" />
</ExtraParams>
<EventMask ShowMask="true" MinDelay="2000" />
</Click>
</DirectEvents>
<Listeners>
<Click Handler="#{PermissionPanelsMenu}.hide();" />
<AfterRender Fn="expandPermissionCurrentProject" />
</Listeners>
</ext:TreePanel>
</Component>
</ext:ComponentMenuItem>
</Items>
</ext:Menu>
</Menu>
</ext:Button>
</Items>
</ext:Panel>
</ext:BoxItem>
</BoxItems>
</ext:HBoxLayout>
</Items>
</ext:Toolbar>
<ext:Toolbar ID="Toolbar2" runat="server">
<Items>
<ext:Button runat="server" ID="btnAddUser" Text="Add User" Icon="UserAdd">
<Listeners>
<Click Handler="#{winPermission}.show();" />
</Listeners>
</ext:Button>
<ext:Button runat="server" ID="btnEditUser" Text="Edit" Icon="UserEdit" Disabled="true">
<Listeners>
<Click Handler="BPOLX.ContactBookEditor.RenameGroup(#{cbGroups}.getValue());#{winAddEditGroup}.show();" />
</Listeners>
</ext:Button>
<ext:Button runat="server" ID="btnDeleteUser" Text="Delete" Icon="UserDelete"
Disabled="true">
<Listeners>
<Click Handler="#{winMove}.show();BPOLX.ContactBookEditor.LoadMoveGroup()" />
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
</Items>
</ext:Toolbar>
</TopBar>
<ColumnModel>
<Columns>
<ext:Column DataIndex="ID" Hidden="true" />
<ext:Column Header="Name" DataIndex="PersonName" />
<ext:Column Header="UserName" DataIndex="UserName" />
<ext:Column Header="Role" DataIndex="Role" />
</Columns>
</ColumnModel>
<View>
<ext:BufferView ForceFit="true" />
</View>
<Listeners>
<CellClick Handler="ShowHideUser(this,rowIndex)" Delay="50" />
</Listeners>
<SelectionModel>
<ext:CheckboxSelectionModel ID="CheckboxSelectionModel1222" runat="server" MoveEditorOnEnter="false">
</ext:CheckboxSelectionModel>
</SelectionModel>
</ext:GridPanel>
</Items>
</ext:FitLayout>
<ext:Window ID="winPermission" runat="server" Hidden="true" Width="550" Height="400"
AutoScroll="true" Title="Add/Edit User">
<Content>
<ext:FieldSet ID="fldUserRoles" runat="server" Title="Role" AnchorHorizontal="60%">
<Content>
<ext:ComboBox ID="cbPerson" runat="server" EmptyText="Search by Name" DisplayField="Text"
ValueField="Value" TypeAhead="false" LoadingText="Searching..." PageSize="10"
HideTrigger="true" ItemSelector="div.search-item" MinChars="2" AnchorHorizontal="100%"
Width="250" ListWidth="250">
<Store>
<ext:Store ID="PersonStore" runat="server" AutoLoad="false">
<Proxy>
<ext:HttpProxy Method="POST" Url="PublicHttpHandlers/SearchUsers.ashx">
<Headers>
<ext:Parameter Name='companyId' />
</Headers>
</ext:HttpProxy>
</Proxy>
<Reader>
<ext:JsonReader Root="Companies" TotalProperty="total">
<Fields>
<ext:RecordField Name="Text" />
<ext:RecordField Name="Value" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<Template ID="Template2" runat="server">
<Html>
<tpl for=".">
<div class="search-item">
<h3>{Text}</h3>
</div>
</tpl>
</Html>
</Template>
<Listeners>
<TriggerClick Handler="switch(tag) {
case 'search':
BPOLX.Documents.GoToDocument();
#{cbCompany}.clearValue();
break;
case 'clear':
#{cbCompany}.clearValue();
break;
}" />
<Select Handler="AddUserToGrid();" />
<Focus Handler="BPOLX.Permissions.GetCompanyId(1,{success:function(e){#{PersonStore}.proxy.conn.headers.companyId = e;}})" />
</Listeners>
<Triggers>
<ext:FieldTrigger Icon="Search" Tag="search" />
<ext:FieldTrigger Icon="Clear" Tag="clear" />
</Triggers>
</ext:ComboBox>
</br>
<ext:GridPanel ID="grdUsers" StoreID="SelectedUserStore" runat="server" Width="300"
Height="100" AutoScroll="true">
<ColumnModel>
<Columns>
<ext:Column Header="ID" DataIndex="ID" Hidden="true" />
<ext:Column Header="User" DataIndex="Name">
<Commands>
<ext:ImageCommand CommandName="Delete" Icon="Delete">
<ToolTip Text="Delete" />
</ext:ImageCommand>
</Commands>
</ext:Column>
</Columns>
</ColumnModel>
</ext:GridPanel>
</Content>
</ext:FieldSet>
<ext:FieldSet runat="server" ID="fldPermissions" Title="Permissions">
<Content>
<ext:ComboBox ID="cbRoles" runat="server" AnchorHorizontal="70%" Width="250" EmptyText="Select a Role">
<Items>
<ext:ListItem Text="Basic Level One User" Value="2" />
<ext:ListItem Text="Level One Administrator" Value="3" />
<ext:ListItem Text="Basic Level Two User" Value="4" />
<ext:ListItem Text="Level Two Administrator" Value="5" />
<ext:ListItem Text="BPOL Administrator" Value="6" />
</Items>
<Listeners>
<Select Handler="SetPermission();" />
</Listeners>
</ext:ComboBox>
<ext:CheckboxGroup ID="chkPermission" runat="server" MsgTarget="Side" ItemCls="x-check-group-alt"
AllowBlank="false" Disabled="true">
<Items>
<ext:CheckboxColumn ID="CheckboxColumn1" runat="server" ColumnWidth="0.33">
<Items>
<ext:Label ID="Label1" runat="server" Text="Projects" Cls="x-form-check-group-label"
ForID="-">
<CustomConfig>
<ext:ConfigItem Name="anchor" Value="-15" Mode="Value" />
</CustomConfig>
</ext:Label>
<ext:Checkbox ID="chkAddProject" runat="server" BoxLabel="Add Project" />
<ext:Checkbox ID="chkEditProject" runat="server" BoxLabel="Edit Project Details" />
<ext:Checkbox ID="chkAssignPermission" runat="server" BoxLabel="Assign Permissions" />
<ext:Checkbox ID="chkCurrentSet" runat="server" BoxLabel="Show Current Set" />
<ext:Checkbox ID="chkHistorical" runat="server" BoxLabel="Show Historical Set" />
<ext:Checkbox ID="chkOriginal" runat="server" BoxLabel="Show Original Set" />
</Items>
</ext:CheckboxColumn>
<ext:CheckboxColumn ID="CheckboxColumn21" runat="server" ColumnWidth="0.33">
<Items>
<ext:Label ID="Label2" runat="server" Text="Documents" Cls="x-form-check-group-label"
ForID="-">
<CustomConfig>
<ext:ConfigItem Name="anchor" Value="-15" Mode="Value" />
</CustomConfig>
</ext:Label>
<ext:Checkbox ID="chkViewDrawings" runat="server" BoxLabel="View Drawing Packages" />
<ext:Checkbox ID="chkOrder" runat="server" BoxLabel="Order" />
<ext:Checkbox ID="chkUpload" runat="server" BoxLabel="Upload Files" />
<ext:Checkbox ID="chkDownload" runat="server" BoxLabel="Download Files" />
<ext:Checkbox ID="chkEdit" runat="server" BoxLabel="Edit Information" />
<ext:Checkbox ID="chkDelete" runat="server" BoxLabel="Delete Files/Folders" />
<ext:Checkbox ID="chkCreateFolder" runat="server" BoxLabel="Create Folders" />
</Items>
</ext:CheckboxColumn>
<ext:CheckboxColumn ID="CheckboxColumn22" runat="server" ColumnWidth="0.33">
<Items>
<ext:Label ID="Label3" runat="server" Text="Announcements" Cls="x-form-check-group-label"
ForID="-">
<CustomConfig>
<ext:ConfigItem Name="anchor" Value="-15" Mode="Value" />
</CustomConfig>
</ext:Label>
<ext:Checkbox ID="chkSendBid" runat="server" BoxLabel="Send Bids" />
<ext:Checkbox ID="chkSendRFI" runat="server" BoxLabel="Send RFI" />
<ext:Checkbox ID="chkSendInvitation" runat="server" BoxLabel="Send Invitation to Join" />
<ext:Checkbox ID="chkSendChangeOrder" runat="server" BoxLabel="Send Change Order" />
<ext:Checkbox ID="chkViewBid" runat="server" BoxLabel="View Bids" />
<ext:Checkbox ID="chkViewRFI" runat="server" BoxLabel="View RFI's" />
<ext:Checkbox ID="chkViewInvitation" runat="server" BoxLabel="View Invitations" />
<ext:Checkbox ID="chkViewChangeOrder" runat="server" BoxLabel="View Change Orders" />
</Items>
</ext:CheckboxColumn>
</Items>
</ext:CheckboxGroup>
</Content>
</ext:FieldSet>
</Content>
<Buttons>
<ext:Button Text="Save" runat="server">
<Listeners>
<Click Handler="#{winPermission}.hide();" />
</Listeners>
</ext:Button>
<ext:Button Text="Cancel" runat="server">
<Listeners>
<Click Handler="#{winPermission}.hide();" />
</Listeners>
</ext:Button>
</Buttons>
<Listeners>
<BeforeShow Handler="BPOLX.Permissions.SetCompany()" />
</Listeners>
</ext:Window>
Permission.ascx code behind
----------------------------------
using System;
using Ext.Net;
namespace CooliteDemo.Planroom.UserControls
{
public partial class WebUserControl1 : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
[DirectMethod]
public void ProjectTreeLoad(object sender, NodeLoadEventArgs e)
{
}
protected void ProjectNodeClick(object sender, DirectEventArgs e)
{
var id = e.ExtraParams["nodeId"];
//PermissionPanelsMenu.Hidden = true;
}
}
}