/// <summary> /// Occurs when the selection changes /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void lvwNewItems_SelectedIndexChanged(object sender, EventArgs e) { btnAdd.Enabled = lvwNewItems.SelectedItems.Count > 0; if (lvwNewItems.SelectedItems.Count > 0) { _selectedTemplateDef = lvwNewItems.SelectedItems[0].Tag as DocumentTemplateDef; lblDescription.Text = _selectedTemplateDef.TemplateDescription; if (_itemType == NewItemTypes.Item) { if (_isNameModified) { Path.ChangeExtension(txtFileName.Text, _selectedTemplateDef.AssociatedExtension); } else { txtFileName.Text = FrameworkManager.Instance.GetItemNewFileName(_parentContext, _selectedTemplateDef.SuggestiveName, _selectedTemplateDef.AssociatedExtension); } } else if (_itemType == NewItemTypes.ItemGroup) { txtFileName.Text = _selectedTemplateDef.SuggestiveName; } } else { txtFileName.Text = string.Empty; } }
private void LoadTemplates() { foreach (string fileName in Directory.GetFiles(TemplateDefinitionsPath, "*.letemplate")) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(DocumentTemplateDef)); using (XmlTextReader xmlReader = new XmlTextReader(fileName)) { DocumentTemplateDef templateDef = xmlSerializer.Deserialize(xmlReader) as DocumentTemplateDef; templateDef.DefinitionFileName = fileName; _documentTemplates.Add(templateDef); } } }
public void RefreshList() { foreach (ListViewItem item in lvwNewItems.Items) { DocumentTemplateDef templateDef = item.Tag as DocumentTemplateDef; if (lvwNewItems.View == View.LargeIcon) { item.ImageIndex = DocumentFactory.Instance.GetDocumentLargeImageIndex(templateDef.AssociatedExtension); } else { item.ImageIndex = DocumentFactory.Instance.GetDocumentSmallImageIndex(templateDef.AssociatedExtension); } } }
/// <summary> /// Deploy the specified template using the specified file name /// </summary> /// <param name="templateDef">The template definition to be deployed</param> /// <param name="deployFileName">The file name used during deploy</param> /// <returns>True if the template was actually deployed. Otherwise false</returns> public bool DeployTemplate(DocumentTemplateDef templateDef, string deployFileName) { bool isDeployed = true; string deployPath = string.IsNullOrEmpty(deployFileName) ? null : Path.GetDirectoryName(deployFileName); if (NewItemTypes.Item == (NewItemTypes)Enum.Parse(typeof(NewItemTypes), templateDef.TemplateType)) { if (!string.IsNullOrEmpty(deployPath)) { DialogResult result = DialogResult.Yes; string entryOutFileName = deployFileName; if (!Directory.Exists(deployPath)) { Directory.CreateDirectory(deployPath); } if (File.Exists(entryOutFileName)) { string msg = string.Format("The file '{0}' already exists. Do you want to replace it?", entryOutFileName); result = MessageBox.Show(msg, "LuaEdit", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); } if (result == DialogResult.Yes) { FileStream fs = File.Create(entryOutFileName); fs.Close(); } else { isDeployed = false; } } } else if (NewItemTypes.ItemGroup == (NewItemTypes)Enum.Parse(typeof(NewItemTypes), templateDef.TemplateType) && templateDef.TemplateContent != null && templateDef.ContentItemToRename != null) { string contentToRename = templateDef.ContentItemToRename.TemplateContentItemName; ZipFile zipFile = new ZipFile(templateDef.TemplateFileName); foreach (ZipEntry zipEntry in zipFile) { Stream zipEntryStream = zipFile.GetInputStream(zipEntry); DialogResult result = DialogResult.Yes; string outFileName = (contentToRename == zipEntry.Name) ? Path.GetFileName(deployFileName) : zipEntry.Name; string entryOutFileName = Path.Combine(deployPath, outFileName); if (File.Exists(entryOutFileName)) { string msg = string.Format("The file '{0}' already exists. Do you want to replace it?", entryOutFileName); result = MessageBox.Show(msg, "LuaEdit", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); } if (result == DialogResult.Yes) { using (FileStream fileStream = new FileStream(entryOutFileName, FileMode.OpenOrCreate)) { byte[] data = new byte[] { }; Array.Resize <byte>(ref data, (int)zipEntry.Size); zipEntryStream.Read(data, 0, (int)zipEntry.Size); fileStream.Write(data, 0, data.Length); fileStream.Flush(); } } else { isDeployed = false; break; } } } return(isDeployed); }