📄 frmplugin.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using FirebirdSql.Data.FirebirdClient;
namespace GPCore.Forms
{
/// <summary>
/// Allows the user to see which plugins are available and determine which should
/// be loaded when the program starts.
/// </summary>
internal partial class frmPlugin : Form
{
private bool doneLoading = false;
/// <summary>
/// Creates a new frmPlugin
/// </summary>
public frmPlugin()
{
doneLoading = false;
InitializeComponent();
}
private void frmInterface_Load(object sender, EventArgs e)
{
listView.SuspendLayout();
foreach (String s in Core.PluginManager.Listeners)
{
object[] os = Core.PluginManager.GetAttributes(s);
foreach (object o in os)
{
PluginAttribute pa = null;
if (o is PluginAttribute)
{
pa = (o as PluginAttribute);
ListViewItem li = listView.Items.Add(pa.Title);
li.Name = s;
li.Tag = s;
li.SubItems.Add(pa.Description);
li.SubItems.Add(pa.Company);
li.SubItems.Add(pa.Version);
li.SubItems.Add(pa.Developers);
}
}
}
if (listView.Items.Count > 0)
listView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
else listView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
initChecks();
doneLoading = true;
listView.ResumeLayout();
}
private void initChecks()
{
//if (File.Exists(PluginManager.pluginFile))
//{
// StreamReader sr = new StreamReader(PluginManager.pluginFile);
// while (!sr.EndOfStream)
// {
// string s = sr.ReadLine();
// listView.Items[s].Checked = true;
// }
// sr.Close();
//}
Sql.ExecuteReader(new Sql.ActOnQuery(delegate(GPDataReader read)
{
while (read.Read())
{
listView.Items[read.GetString(0).Trim()].Checked = true;
}
}), "Select Typename from Plugins");
}
private void cmdClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void listView_ItemChecked(object sender, ItemCheckedEventArgs e)
{
if (!doneLoading) return;
//if (e.Item.Checked == true)
//{
// StreamWriter sw = new StreamWriter(PluginManager.pluginFile, true);
// sw.WriteLine(e.Item.Name);
// Core.CreateInstance(e.Item.Name);
// sw.Close();
//}
//else
//{
// StreamWriter sw = new StreamWriter(PluginManager.pluginFile, false);
// Core.DestroyInstance(e.Item.Name);
// foreach (ListViewItem li in listView.CheckedItems)
// {
// sw.WriteLine(li.Name);
// }
// sw.Close();
//}
if (e.Item.Checked)
{
Core.CreateInstance(e.Item.Name);
Sql.ExecuteNonQuery("Insert into plugins (Typename) values(?)", e.Item.Name);
}
else
{
Core.DestroyInstance(e.Item.Name);
Sql.ExecuteNonQuery("Delete from plugins where Typename = ?", e.Item.Name);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -