You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
4.5 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ICSharpCode.Core;
using System.IO;
using Mesnac.Gui.Edit.Global;
using Mesnac.Gui.Edit.Common;
namespace Mesnac.Gui.Edit.Dialog
{
public partial class FrmTemplateList : Form
{
private readonly string _templatePath = Application.StartupPath + AppConfigHandler.Instance.TemplatePath; //模板文件路径
private string _templateName = String.Empty; //模板名称
private string _selectTemplate = String.Empty; //选则的模板名称
private string _selectTemplatePath = String.Empty; //选择的模板路径
private bool exitFlag = false; //是否退出对话框
private string caption = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_Caption"));
private string msg = String.Empty;
/// <summary>
/// 带参数构造方法
/// </summary>
/// <param name="templateName">模板名称</param>
public FrmTemplateList(string templateName)
{
this._templateName = templateName;
InitializeComponent();
}
private void FrmTemplateList_Load(object sender, EventArgs e)
{
this.InitUIMethod();
this.listView1.Items.Clear();
string templateFullPath = Path.Combine(this._templatePath, this._templateName);
if (Directory.Exists(templateFullPath))
{
DirectoryInfo dir = new DirectoryInfo(templateFullPath);
IEnumerable<DirectoryInfo> subDirs = dir.EnumerateDirectories();
foreach (DirectoryInfo di in subDirs)
{
ListViewItem item = new ListViewItem();
item.Text = di.Name;
item.Tag = di.FullName;
item.SubItems.Add(di.FullName);
this.listView1.Items.Add(item);
}
this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
}
else
{
LoggingService<FrmTemplateList>.Warn("模板目录不存在!");
}
}
/// <summary>
/// 初始化界面元素
/// </summary>
public void InitUIMethod()
{
this.Text = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_FrmTemplateList_Text"));
this.groupBox1.Text = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_FrmTemplateList_groupBox1"));
this.btnOk.Text = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_btnOK"));
this.btnCancel.Text = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_btnCancel"));
this.listView1.Columns[0].Text = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_FrmTemplateList_listView1_columnName"));
this.listView1.Columns[1].Text = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_FrmTemplateList_listView1_columnComment"));
}
/// <summary>
/// 选择的模板名称
/// </summary>
public string SelectTemplate
{
get { return _selectTemplate; }
}
/// <summary>
/// 选择的模板路径
/// </summary>
public string SelectTemplatePath
{
get { return _selectTemplatePath; }
}
private void btnOk_Click(object sender, EventArgs e)
{
if (this.listView1.SelectedItems.Count == 0)
{
this.msg = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_FrmTemplateList_Msg1")); //请选择项目模板!
MessageBox.Show(this.msg, this.caption, MessageBoxButtons.OK, MessageBoxIcon.Information);
this.exitFlag = false;
}
else
{
this._selectTemplate = this.listView1.SelectedItems[0].Text;
this._selectTemplatePath = this.listView1.SelectedItems[0].Tag.ToString();
this.exitFlag = true;
}
}
private void FrmTemplateList_FormClosing(object sender, FormClosingEventArgs e)
{
if (!this.exitFlag)
{
e.Cancel = true;
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.exitFlag = true;
}
}
}