Esempio n. 1
0
        /// <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;
            }
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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);
                }
            }
        }
Esempio n. 4
0
        /// <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);
        }