1
0
mirror of https://github.com/Ylianst/MeshCentralRouter synced 2025-12-06 00:13:33 +00:00

Added some drag & drop support in the file manager.

This commit is contained in:
Ylian Saint-Hilaire
2020-09-20 23:46:22 -07:00
parent 1a65312747
commit 59b54bf520
3 changed files with 170 additions and 106 deletions

44
FileViewer.Designer.cs generated
View File

@@ -48,6 +48,8 @@ namespace MeshCentralRouter
this.remoteDeleteButton = new System.Windows.Forms.Button(); this.remoteDeleteButton = new System.Windows.Forms.Button();
this.downloadButton = new System.Windows.Forms.Button(); this.downloadButton = new System.Windows.Forms.Button();
this.uploadButton = new System.Windows.Forms.Button(); this.uploadButton = new System.Windows.Forms.Button();
this.localDeleteButton = new System.Windows.Forms.Button();
this.localNewFolderButton = new System.Windows.Forms.Button();
this.topPanel = new System.Windows.Forms.Panel(); this.topPanel = new System.Windows.Forms.Panel();
this.statusStrip = new System.Windows.Forms.StatusStrip(); this.statusStrip = new System.Windows.Forms.StatusStrip();
this.mainToolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); this.mainToolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
@@ -71,8 +73,6 @@ namespace MeshCentralRouter
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.leftTopPanel = new System.Windows.Forms.Panel(); this.leftTopPanel = new System.Windows.Forms.Panel();
this.localLabel = new System.Windows.Forms.Label(); this.localLabel = new System.Windows.Forms.Label();
this.localDeleteButton = new System.Windows.Forms.Button();
this.localNewFolderButton = new System.Windows.Forms.Button();
this.topPanel.SuspendLayout(); this.topPanel.SuspendLayout();
this.statusStrip.SuspendLayout(); this.statusStrip.SuspendLayout();
this.mainTableLayoutPanel.SuspendLayout(); this.mainTableLayoutPanel.SuspendLayout();
@@ -200,6 +200,24 @@ namespace MeshCentralRouter
this.uploadButton.UseVisualStyleBackColor = true; this.uploadButton.UseVisualStyleBackColor = true;
this.uploadButton.Click += new System.EventHandler(this.uploadButton_Click); this.uploadButton.Click += new System.EventHandler(this.uploadButton_Click);
// //
// localDeleteButton
//
resources.ApplyResources(this.localDeleteButton, "localDeleteButton");
this.localDeleteButton.Image = global::MeshCentralRouter.Properties.Resources.delete16;
this.localDeleteButton.Name = "localDeleteButton";
this.mainToolTip.SetToolTip(this.localDeleteButton, resources.GetString("localDeleteButton.ToolTip"));
this.localDeleteButton.UseVisualStyleBackColor = true;
this.localDeleteButton.Click += new System.EventHandler(this.localDeleteButton_Click);
//
// localNewFolderButton
//
resources.ApplyResources(this.localNewFolderButton, "localNewFolderButton");
this.localNewFolderButton.Image = global::MeshCentralRouter.Properties.Resources.foldernew16;
this.localNewFolderButton.Name = "localNewFolderButton";
this.mainToolTip.SetToolTip(this.localNewFolderButton, resources.GetString("localNewFolderButton.ToolTip"));
this.localNewFolderButton.UseVisualStyleBackColor = true;
this.localNewFolderButton.Click += new System.EventHandler(this.localNewFolderButton_Click);
//
// topPanel // topPanel
// //
this.topPanel.BackColor = System.Drawing.SystemColors.Control; this.topPanel.BackColor = System.Drawing.SystemColors.Control;
@@ -252,6 +270,7 @@ namespace MeshCentralRouter
// //
// rightListView // rightListView
// //
this.rightListView.AllowDrop = true;
this.rightListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.rightListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader3, this.columnHeader3,
this.columnHeader4}); this.columnHeader4});
@@ -265,6 +284,8 @@ namespace MeshCentralRouter
this.rightListView.View = System.Windows.Forms.View.Details; this.rightListView.View = System.Windows.Forms.View.Details;
this.rightListView.ColumnWidthChanged += new System.Windows.Forms.ColumnWidthChangedEventHandler(this.rightListView_ColumnWidthChanged); this.rightListView.ColumnWidthChanged += new System.Windows.Forms.ColumnWidthChangedEventHandler(this.rightListView_ColumnWidthChanged);
this.rightListView.SelectedIndexChanged += new System.EventHandler(this.rightListView_SelectedIndexChanged); this.rightListView.SelectedIndexChanged += new System.EventHandler(this.rightListView_SelectedIndexChanged);
this.rightListView.DragDrop += new System.Windows.Forms.DragEventHandler(this.rightListView_DragDrop);
this.rightListView.DragEnter += new System.Windows.Forms.DragEventHandler(this.rightListView_DragEnter);
this.rightListView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.rightListView_MouseDoubleClick); this.rightListView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.rightListView_MouseDoubleClick);
this.rightListView.Resize += new System.EventHandler(this.rightListView_Resize); this.rightListView.Resize += new System.EventHandler(this.rightListView_Resize);
// //
@@ -351,6 +372,7 @@ namespace MeshCentralRouter
this.leftListView.ColumnWidthChanged += new System.Windows.Forms.ColumnWidthChangedEventHandler(this.leftListView_ColumnWidthChanged); this.leftListView.ColumnWidthChanged += new System.Windows.Forms.ColumnWidthChangedEventHandler(this.leftListView_ColumnWidthChanged);
this.leftListView.SelectedIndexChanged += new System.EventHandler(this.leftListView_SelectedIndexChanged); this.leftListView.SelectedIndexChanged += new System.EventHandler(this.leftListView_SelectedIndexChanged);
this.leftListView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.leftListView_MouseDoubleClick); this.leftListView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.leftListView_MouseDoubleClick);
this.leftListView.MouseMove += new System.Windows.Forms.MouseEventHandler(this.leftListView_MouseMove);
this.leftListView.Resize += new System.EventHandler(this.leftListView_Resize); this.leftListView.Resize += new System.EventHandler(this.leftListView_Resize);
// //
// columnHeader1 // columnHeader1
@@ -377,24 +399,6 @@ namespace MeshCentralRouter
resources.ApplyResources(this.localLabel, "localLabel"); resources.ApplyResources(this.localLabel, "localLabel");
this.localLabel.Name = "localLabel"; this.localLabel.Name = "localLabel";
// //
// localDeleteButton
//
resources.ApplyResources(this.localDeleteButton, "localDeleteButton");
this.localDeleteButton.Image = global::MeshCentralRouter.Properties.Resources.delete16;
this.localDeleteButton.Name = "localDeleteButton";
this.mainToolTip.SetToolTip(this.localDeleteButton, resources.GetString("localDeleteButton.ToolTip"));
this.localDeleteButton.UseVisualStyleBackColor = true;
this.localDeleteButton.Click += new System.EventHandler(this.localDeleteButton_Click);
//
// localNewFolderButton
//
resources.ApplyResources(this.localNewFolderButton, "localNewFolderButton");
this.localNewFolderButton.Image = global::MeshCentralRouter.Properties.Resources.foldernew16;
this.localNewFolderButton.Name = "localNewFolderButton";
this.mainToolTip.SetToolTip(this.localNewFolderButton, resources.GetString("localNewFolderButton.ToolTip"));
this.localNewFolderButton.UseVisualStyleBackColor = true;
this.localNewFolderButton.Click += new System.EventHandler(this.localNewFolderButton_Click);
//
// FileViewer // FileViewer
// //
resources.ApplyResources(this, "$this"); resources.ApplyResources(this, "$this");

View File

@@ -694,7 +694,7 @@ namespace MeshCentralRouter
string r; string r;
if (remoteFolder.EndsWith("/")) { r = remoteFolder + f.filename; } else { r = remoteFolder + "/" + f.filename; } if (remoteFolder.EndsWith("/")) { r = remoteFolder + f.filename; } else { r = remoteFolder + "/" + f.filename; }
requestCreateFolder(r); requestCreateFolder(r);
updateTimer.Enabled = true; remoteRefresh();
} }
} }
@@ -771,7 +771,7 @@ namespace MeshCentralRouter
if (f.ShowDialog(this) == DialogResult.OK) if (f.ShowDialog(this) == DialogResult.OK)
{ {
requestDelete(remoteFolder, files, f.recursive); requestDelete(remoteFolder, files, f.recursive);
updateTimer.Enabled = true; remoteRefresh();
} }
} }
@@ -798,7 +798,7 @@ namespace MeshCentralRouter
//string r; //string r;
//if (remoteFolder.EndsWith("/")) { r = remoteFolder + f.filename; } else { r = remoteFolder + "/" + f.filename; } //if (remoteFolder.EndsWith("/")) { r = remoteFolder + f.filename; } else { r = remoteFolder + "/" + f.filename; }
requestRename(remoteFolder, oldname, f.filename); requestRename(remoteFolder, oldname, f.filename);
updateTimer.Enabled = true; remoteRefresh();
} }
} }
@@ -857,14 +857,23 @@ namespace MeshCentralRouter
private void uploadNextFile() private void uploadNextFile()
{ {
string localFilePath; string localFilePath, localFileName;
localFilePath = Path.Combine(uploadLocalPath.FullName, (string)uploadFileArray[uploadFileArrayPtr]); if (uploadLocalPath != null)
{
localFilePath = Path.Combine(uploadLocalPath.FullName, (string)uploadFileArray[uploadFileArrayPtr]);
localFileName = (string)uploadFileArray[uploadFileArrayPtr];
}
else
{
localFilePath = (string)uploadFileArray[uploadFileArrayPtr];
localFileName = Path.GetFileName(localFilePath);
}
uploadFileStream = File.OpenRead(localFilePath); uploadFileStream = File.OpenRead(localFilePath);
uploadFileSize = new FileInfo(localFilePath).Length; uploadFileSize = new FileInfo(localFilePath).Length;
uploadFilePtr = 0; uploadFilePtr = 0;
// Send UPLOAD command // Send UPLOAD command
string cmd = "{\"action\":\"upload\",\"reqid\":" + (uploadFileArrayPtr + 1000) + ",\"path\":\"" + uploadRemotePath + "\",\"name\":\"" + uploadFileArray[uploadFileArrayPtr] + "\",\"size\":" + uploadFileSize + "}"; string cmd = "{\"action\":\"upload\",\"reqid\":" + (uploadFileArrayPtr + 1000) + ",\"path\":\"" + uploadRemotePath + "\",\"name\":\"" + localFileName + "\",\"size\":" + uploadFileSize + "}";
byte[] bincmd = UTF8Encoding.UTF8.GetBytes(cmd); byte[] bincmd = UTF8Encoding.UTF8.GetBytes(cmd);
wc.SendBinary(bincmd, 0, bincmd.Length); wc.SendBinary(bincmd, 0, bincmd.Length);
} }
@@ -889,7 +898,7 @@ namespace MeshCentralRouter
uploadFileSize = 0; uploadFileSize = 0;
if (uploadFileStream != null) { uploadFileStream.Close(); uploadFileStream = null; } if (uploadFileStream != null) { uploadFileStream.Close(); uploadFileStream = null; }
closeTransferDialog(); closeTransferDialog();
updateTimer.Enabled = true; remoteRefresh();
} }
private void uploadNextPart(bool dataPriming) private void uploadNextPart(bool dataPriming)
@@ -1061,5 +1070,44 @@ namespace MeshCentralRouter
updateLocalFileView(); updateLocalFileView();
} }
} }
private void rightListView_DragEnter(object sender, DragEventArgs e)
{
if (uploadActive || downloadActive) return;
if ((node.agentid < 5) && ((remoteFolder == null) || (remoteFolder == ""))) { return; }
if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;
}
private void rightListView_DragDrop(object sender, DragEventArgs e)
{
if (uploadActive || downloadActive) return;
if ((node.agentid < 5) && ((remoteFolder == null) || (remoteFolder == ""))) { return; }
uploadFileArrayPtr = 0;
uploadFileArray = new ArrayList();
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string file in files) { uploadFileArray.Add(file); }
uploadLocalPath = null;
uploadRemotePath = remoteFolder;
uploadActive = true;
uploadStop = false;
uploadNextFile();
// Show transfer status dialog
transferStatusForm = new FileTransferStatusForm(this);
transferStatusForm.Show(this);
}
private void leftListView_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ArrayList files = new ArrayList();
foreach (ListViewItem l in leftListView.SelectedItems) { if (l.ImageIndex == 2) { files.Add(Path.Combine(localFolder.FullName, l.Text)); } }
if (files.Count > 0)
{
leftListView.DoDragDrop(new DataObject(DataFormats.FileDrop, (string[])files.ToArray(typeof(string))), DragDropEffects.Copy);
}
}
}
} }
} }

View File

@@ -486,6 +486,66 @@
<data name="&gt;&gt;uploadButton.ZOrder" xml:space="preserve"> <data name="&gt;&gt;uploadButton.ZOrder" xml:space="preserve">
<value>1</value> <value>1</value>
</data> </data>
<data name="localDeleteButton.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="localDeleteButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="localDeleteButton.Location" type="System.Drawing.Point, System.Drawing">
<value>150, 21</value>
</data>
<data name="localDeleteButton.Size" type="System.Drawing.Size, System.Drawing">
<value>30, 23</value>
</data>
<data name="localDeleteButton.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="localDeleteButton.ToolTip" xml:space="preserve">
<value>Delete</value>
</data>
<data name="&gt;&gt;localDeleteButton.Name" xml:space="preserve">
<value>localDeleteButton</value>
</data>
<data name="&gt;&gt;localDeleteButton.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;localDeleteButton.Parent" xml:space="preserve">
<value>leftTopPanel</value>
</data>
<data name="&gt;&gt;localDeleteButton.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="localNewFolderButton.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="localNewFolderButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="localNewFolderButton.Location" type="System.Drawing.Point, System.Drawing">
<value>114, 21</value>
</data>
<data name="localNewFolderButton.Size" type="System.Drawing.Size, System.Drawing">
<value>30, 23</value>
</data>
<data name="localNewFolderButton.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="localNewFolderButton.ToolTip" xml:space="preserve">
<value>New Folder</value>
</data>
<data name="&gt;&gt;localNewFolderButton.Name" xml:space="preserve">
<value>localNewFolderButton</value>
</data>
<data name="&gt;&gt;localNewFolderButton.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;localNewFolderButton.Parent" xml:space="preserve">
<value>leftTopPanel</value>
</data>
<data name="&gt;&gt;localNewFolderButton.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="topPanel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> <data name="topPanel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value> <value>Top</value>
</data> </data>
@@ -692,7 +752,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC+
CQAAAk1TRnQBSQFMAgEBAwEAAWgBAAFoAQABEAEAARABAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAFA CQAAAk1TRnQBSQFMAgEBAwEAAXABAAFwAQABEAEAARABAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABEAMAAQEBAAEQBgABCDoAATABcwHKAWYBygFmAbUBexIAARABQgEQAUIBEAFCARABQgEQAUIBEAFC AwABEAMAAQEBAAEQBgABCDoAATABcwHKAWYBygFmAbUBexIAARABQgEQAUIBEAFCARABQgEQAUIBEAFC
ARABQgEQAUIBEAFCARABQgEQAUIBEAFCARABQkYAAcoBZgHKAWYBygFmAcoBZgHKAWYBygFmAcoBZgHK ARABQgEQAUIBEAFCARABQgEQAUIBEAFCARABQkYAAcoBZgHKAWYBygFmAcoBZgHKAWYBygFmAcoBZgHK
AWYBygFmAcoBZgHKAWYBygFmATABcwYAARABQgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7 AWYBygFmAcoBZgHKAWYBygFmATABcwYAARABQgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7
@@ -751,84 +811,6 @@
<data name="&gt;&gt;leftListView.ZOrder" xml:space="preserve"> <data name="&gt;&gt;leftListView.ZOrder" xml:space="preserve">
<value>1</value> <value>1</value>
</data> </data>
<data name="localDeleteButton.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="localDeleteButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="localDeleteButton.Location" type="System.Drawing.Point, System.Drawing">
<value>150, 21</value>
</data>
<data name="localDeleteButton.Size" type="System.Drawing.Size, System.Drawing">
<value>30, 23</value>
</data>
<data name="localDeleteButton.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="localDeleteButton.ToolTip" xml:space="preserve">
<value>Delete</value>
</data>
<data name="&gt;&gt;localDeleteButton.Name" xml:space="preserve">
<value>localDeleteButton</value>
</data>
<data name="&gt;&gt;localDeleteButton.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;localDeleteButton.Parent" xml:space="preserve">
<value>leftTopPanel</value>
</data>
<data name="&gt;&gt;localDeleteButton.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="localNewFolderButton.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="localNewFolderButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="localNewFolderButton.Location" type="System.Drawing.Point, System.Drawing">
<value>114, 21</value>
</data>
<data name="localNewFolderButton.Size" type="System.Drawing.Size, System.Drawing">
<value>30, 23</value>
</data>
<data name="localNewFolderButton.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="localNewFolderButton.ToolTip" xml:space="preserve">
<value>New Folder</value>
</data>
<data name="&gt;&gt;localNewFolderButton.Name" xml:space="preserve">
<value>localNewFolderButton</value>
</data>
<data name="&gt;&gt;localNewFolderButton.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;localNewFolderButton.Parent" xml:space="preserve">
<value>leftTopPanel</value>
</data>
<data name="&gt;&gt;localNewFolderButton.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="localLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="localLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="localLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="localLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>33, 13</value>
</data>
<data name="localLabel.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="localLabel.Text" xml:space="preserve">
<value>Local</value>
</data>
<data name="&gt;&gt;localLabel.Name" xml:space="preserve"> <data name="&gt;&gt;localLabel.Name" xml:space="preserve">
<value>localLabel</value> <value>localLabel</value>
</data> </data>
@@ -1054,6 +1036,36 @@
<data name="&gt;&gt;remoteLabel.ZOrder" xml:space="preserve"> <data name="&gt;&gt;remoteLabel.ZOrder" xml:space="preserve">
<value>5</value> <value>5</value>
</data> </data>
<data name="localLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="localLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="localLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="localLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>33, 13</value>
</data>
<data name="localLabel.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="localLabel.Text" xml:space="preserve">
<value>Local</value>
</data>
<data name="&gt;&gt;localLabel.Name" xml:space="preserve">
<value>localLabel</value>
</data>
<data name="&gt;&gt;localLabel.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;localLabel.Parent" xml:space="preserve">
<value>leftTopPanel</value>
</data>
<data name="&gt;&gt;localLabel.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>