This commit is contained in:
190
source/Plugins/AyaNova.Plugin.XTools/XTools.cs
Normal file
190
source/Plugins/AyaNova.Plugin.XTools/XTools.cs
Normal file
@@ -0,0 +1,190 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using AyaNova.PlugIn;
|
||||
using GZTW.AyaNova.BLL;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AyaNova.Plugin.XTools
|
||||
{
|
||||
class XTools : IAyaNovaPlugin
|
||||
{
|
||||
#region IAyaNovaPlugin Members
|
||||
|
||||
public string dbFile = "";
|
||||
public DataSet ds = null;
|
||||
#region header stuff
|
||||
public string PluginName
|
||||
{
|
||||
get { return "XTools"; }
|
||||
}
|
||||
|
||||
public string PluginVersion
|
||||
{
|
||||
get { return "7.5"; }
|
||||
}
|
||||
|
||||
public string About
|
||||
{
|
||||
get { return
|
||||
"AyaNova XTools\r\n"+
|
||||
"Built " + AyaNova.PlugIn.XTools.Timestamp.BuildAt.ToString() + "\r\n" +
|
||||
"Copyright 2009-2018 Ground Zero Tech-Works Inc."; }
|
||||
}
|
||||
|
||||
public Guid PluginID
|
||||
{
|
||||
get { return new Guid("{A18C735A-1D78-46c7-BEA6-0CF91E8A361F}"); }
|
||||
}
|
||||
|
||||
public System.Drawing.Image PluginSmallIcon
|
||||
{
|
||||
get { return Resource1.Xtools16; }
|
||||
}
|
||||
|
||||
public System.Drawing.Image PluginLargeIcon
|
||||
{
|
||||
get { return Resource1.Xtools32; }
|
||||
}
|
||||
|
||||
public System.Resources.ResourceManager AyaNovaResourceManager
|
||||
{
|
||||
set { ; }
|
||||
}
|
||||
#endregion header stuff
|
||||
|
||||
#region start / stop
|
||||
public bool Initialize(Version AyaNovaVersion, LocalizedTextTable localizedText)
|
||||
{
|
||||
//check for db file in same folder this plugin loaded from and if not found create one
|
||||
dbFile = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\xtools.xml";
|
||||
if (File.Exists(dbFile))
|
||||
{
|
||||
try
|
||||
{
|
||||
ds = new DataSet();
|
||||
ds.ReadXml(dbFile, XmlReadMode.ReadSchema);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("XTools plugin failed to load dataset from " + dbFile + ", error: \r\n" + ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//create it
|
||||
try
|
||||
{
|
||||
ds = new DataSet();
|
||||
ds.Tables.Add();
|
||||
ds.Tables[0].Columns.Add("Name", typeof(string));
|
||||
ds.Tables[0].Columns.Add("URL", typeof(string));
|
||||
//sample items
|
||||
ds.Tables[0].Rows.Add(new object[] { "AyaNova forum", "http://forum.ayanova.com" });
|
||||
ds.Tables[0].Rows.Add(new object[] { "Calc", "%SystemRoot%\\system32\\calc.exe" });
|
||||
|
||||
ds.WriteXml(dbFile, XmlWriteMode.WriteSchema);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("XTools plugin failed to initialize and write new dataset to " + dbFile + ", error: \r\n" + ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
;
|
||||
}
|
||||
#endregion start stop
|
||||
|
||||
#region Show / menu options
|
||||
public bool SingleObjectMenuShow(RootObjectTypes objectType)
|
||||
{
|
||||
//Only show in main menu
|
||||
return objectType == RootObjectTypes.Nothing;
|
||||
}
|
||||
|
||||
public bool MultipleObjectsMenuShow(RootObjectTypes objectType)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<AyaNovaPluginMenuItem> SingleObjectMenuOptions(RootObjectTypes objectType, object ayaNovaObject)
|
||||
{
|
||||
List<AyaNovaPluginMenuItem> l = new List<AyaNovaPluginMenuItem>(1);
|
||||
l.Add(new AyaNovaPluginMenuItem("CONFIGURE", "< Configure >", null, null));
|
||||
#if(DEBUG)
|
||||
l.Add(new AyaNovaPluginMenuItem("TEST", "< Test >", null, null));
|
||||
#endif
|
||||
|
||||
DataView dv = ds.Tables[0].DefaultView;
|
||||
dv.Sort = "Name";
|
||||
foreach (DataRowView drv in dv)
|
||||
{
|
||||
l.Add(new AyaNovaPluginMenuItem(drv["Name"].ToString(), drv["Name"].ToString(), null, null));
|
||||
|
||||
}
|
||||
|
||||
|
||||
return l;
|
||||
}
|
||||
|
||||
public List<AyaNovaPluginMenuItem> MultipleObjectsMenuOptions(RootObjectTypes objectType)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
#endregion show/options
|
||||
|
||||
#region Commands
|
||||
public bool CommandSelectedForList(string commandKey, RootObjectTypes objectType, List<Guid> objectIDList, object listObject)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void CommandSelectedForSingleObject(string commandKey, RootObjectTypes objectType, object ayaNovaObject)
|
||||
{
|
||||
#if(DEBUG)
|
||||
if (commandKey == "TEST")
|
||||
{
|
||||
System.Diagnostics.Process.Start("AyaNova:3,6818c177-ef0f-47d4-a769-8019b3227870");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (commandKey == "CONFIGURE")
|
||||
{
|
||||
new Configure(ds).ShowDialog();
|
||||
ds.WriteXml(dbFile, XmlWriteMode.WriteSchema);
|
||||
}
|
||||
else
|
||||
foreach (DataRow dr in ds.Tables[0].Rows)
|
||||
{
|
||||
if (commandKey == dr["Name"].ToString())
|
||||
{
|
||||
try
|
||||
{
|
||||
string sUrl = System.Environment.ExpandEnvironmentVariables(dr["URL"].ToString());
|
||||
|
||||
System.Diagnostics.Process.Start(sUrl);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Unable to start the url, error was:\r\n" + ex.Message);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endregion commands
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user