| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550 |
- namespace IndexFormula.Finance.Win
- {
- using IndexFormula.Finance;
- using MuchInfo.Chart.Data.EnumTypes;
- using System;
- using System.CodeDom.Compiler;
- using System.ComponentModel;
- using System.Drawing;
- using System.IO;
- using System.Windows;
- using System.Windows.Forms;
- [ToolboxItem(false)]
- public class FormulaSourceEditor : Form
- {
- private Button btnClose;
- private Button btnCompile;
- private Button btnDebug;
- private Button btnFormula;
- private Button btnInsertMethod;
- private CheckBox cbIsMainView;
- private CheckBox cbNotRealNameSpace;
- private ComboBox cbParamType;
- private IContainer components;
- private static FormulaSourceEditor CurrentEditor;
- private bool DisableChange;
- private string filename = "";
- private TreeView FormulaTree;
- private FormulaSpace fs;
- private ColumnHeader HeaderColumn;
- private ColumnHeader HeaderLine;
- private ColumnHeader HeaderMessage;
- private ColumnHeader HeaderName;
- private ColumnHeader HeaderNumber;
- private ImageList ilFormula;
- private TreeNode LastNode;
- private ListBox lbIntelliSence;
- private Label lDefaultValue;
- private Label lFormulaProgramCode;
- private Label lFormulaProgramDesc;
- private Label lFormulaProgramName;
- private Label lFullName;
- private Label lMaxValue;
- private Label lMinValue;
- private Label lNamespaceDescription;
- private Label lNamespaceName;
- private Label lOverride = new Label();
- private Label lParamDesc;
- private Label lParamName;
- private Label lParamType;
- private ListView lvErrors;
- private Label lVersion;
- private MenuItem menuItem1;
- private MenuItem menuItem4;
- private MenuItem miCompile;
- private MenuItem miExit;
- private MenuItem miNew;
- private MenuItem miOpen;
- private MenuItem miSave;
- private MenuItem miSaveAs;
- private MainMenu mmFumular;
- private bool modified;
- private OpenFileDialog odFormula;
- private Panel pnBottom;
- private Panel pnCode;
- private Panel pnFormula;
- private Panel pnNamespace;
- private Panel pnProgram;
- private Panel pnTop;
- private SaveFileDialog sdFormula;
- private Splitter spFormula;
- private Splitter spProgram;
- private TextBox tbDefaultValue;
- private RichTextBox tbFormulaProgramCode;
- private TextBox tbFormulaProgramDesc;
- private TextBox tbFormulaProgramName;
- private TextBox tbMaxValue;
- private TextBox tbMinValue;
- private TextBox tbNamespaceDesc;
- private TextBox tbNamespaceName;
- private TextBox tbParamDesc;
- private TextBox tbParamName;
- private TextBox tbProgramFullName;
- private TextBox tbVersion;
- private TabControl tcFormula;
- private TabPage tpFormulaProgram;
- private TabPage tpNamespace;
- private ContextMenuStrip cmTree;
- private ToolStripMenuItem miAddNamespace;
- private ToolStripMenuItem miAddFormulaProgram;
- private ToolStripMenuItem miAddParam;
- private ToolStripMenuItem miDeleteNode;
- private TabPage tpParameter;
- public FormulaSourceEditor()
- {
- this.InitializeComponent();
- this.fs = new FormulaSpace("FML");
- this.fs.Description = "Namespace description";
- this.fs.Version = "1.0.0.0";
- this.LoadToTree(this.fs);
- this.lOverride.Parent = this.pnFormula;
- this.lOverride.Width = 0x7d0;
- this.lOverride.Height = 0x18;
- this.lOverride.Top = this.tcFormula.Top;
- this.lOverride.Left = 0;
- this.lOverride.BringToFront();
- this.lOverride.BackColor = Color.WhiteSmoke;
- this.lOverride.Font = new Font("verdana", 11f, FontStyle.Bold);
- this.lOverride.ForeColor = Color.DarkGray;
- this.AddChangeEvent(this);
- }
- private void AddChangeEvent(Control c)
- {
- if (c is TextBox)
- {
- ((TextBox)c).TextChanged += new EventHandler(this.cbIsMainView_CheckedChanged);
- }
- else if (c is CheckBox)
- {
- ((CheckBox)c).TextChanged += new EventHandler(this.cbIsMainView_CheckedChanged);
- }
- else if (c is RichTextBox)
- {
- ((RichTextBox)c).TextChanged += new EventHandler(this.cbIsMainView_CheckedChanged);
- }
- foreach (Control control in c.Controls)
- {
- this.AddChangeEvent(control);
- }
- }
- private void AddError(CompilerErrorCollection ces, FormulaProgram fp)
- {
- this.lvErrors.Items.Clear();
- foreach (CompilerError error in ces)
- {
- ListViewItem item = null;
- if (fp != null)
- {
- item = this.lvErrors.Items.Add(fp.Name);
- item.Tag = fp;
- }
- else
- {
- FormulaProgram programByLineNum = this.fs.GetProgramByLineNum(error.Line);
- if (programByLineNum != null)
- {
- item = this.lvErrors.Items.Add(programByLineNum.Name);
- programByLineNum.AdjustErrors(error);
- item.Tag = programByLineNum;
- }
- else
- {
- item = this.lvErrors.Items.Add("");
- }
- }
- if (item != null)
- {
- item.SubItems.Add(error.Line.ToString());
- item.SubItems.Add(error.Column.ToString());
- item.SubItems.Add(error.ErrorNumber.ToString());
- item.SubItems.Add(error.ErrorText);
- }
- }
- }
- private void btnClose_Click(object sender, EventArgs e)
- {
- base.Close();
- }
- private void btnCompile_Click(object sender, EventArgs e)
- {
- this.Compile();
- }
- private void btnDebug_Click(object sender, EventArgs e)
- {
- FormulaProgram tag = (FormulaProgram)this.FormulaTree.SelectedNode.Tag;
- try
- {
- tag.Compile();
- this.lvErrors.Items.Clear();
- this.lvErrors.Items.Add("OK!");
- }
- catch (FormulaErrorException exception)
- {
- this.AddError(exception.ces, tag);
- }
- }
- private void btnFormula_Click(object sender, EventArgs e)
- {
- string str = new SelectFormula().Select(null, null, true);
- if (str != null)
- {
- Clipboard.SetDataObject("\"" + str + "\"");
- this.tbFormulaProgramCode.Paste();
- }
- }
- private void btnInsertMethod_Click(object sender, EventArgs e)
- {
- string data = new SelectMethod().Select(null);
- if (data != null)
- {
- Clipboard.SetDataObject(data);
- this.tbFormulaProgramCode.Paste();
- }
- }
- private void cbIsMainView_CheckedChanged(object sender, EventArgs e)
- {
- if (!this.DisableChange)
- {
- this.Modified = true;
- }
- }
- /// <summary>
- /// 编译成DLL
- /// </summary>
- /// <returns></returns>
- private bool Compile()
- {
- bool flag;
- try
- {
- long ticks = DateTime.Now.Ticks;
- this.SaveDataToNode();
- string curFileDir = Path.GetDirectoryName(this.filename);
- string curFileName = Path.GetFileName(this.filename);
- string sourceFile = string.Format("{0}\\{1}", curFileDir, curFileName.Replace('.', '_') + ".cs");
- string dllFile = string.Format("{0}\\{1}", curFileDir, curFileName.Replace('.', '_') + ".dll");
- this.fs.SaveCShartSource(sourceFile);
- string ReferenceRoot = Environment.CurrentDirectory;
- this.fs.Compile(dllFile, ReferenceRoot);
- this.lvErrors.Items.Clear();
- this.lvErrors.Items.Add("OK! - " + ((DateTime.Now.Ticks - ticks) / 0x2710L) + "ms");
- flag = true;
- }
- catch (FormulaErrorException exception)
- {
- this.AddError(exception.ces, null);
- flag = false;
- }
- finally
- {
- this.LocateFirstProgram();
- }
- return flag;
- }
- protected override void Dispose(bool disposing)
- {
- if (disposing && (this.components != null))
- {
- this.components.Dispose();
- }
- base.Dispose(disposing);
- }
- private TreeNode FindNode(TreeNode tn, FormulaProgram fp)
- {
- if (tn.Tag == fp)
- {
- return tn;
- }
- foreach (TreeNode node in tn.Nodes)
- {
- TreeNode node2 = this.FindNode(node, fp);
- if (node2 != null)
- {
- return node2;
- }
- }
- return null;
- }
- private TreeNode FindNode(TreeNode tn, string ProgramName)
- {
- if ((tn.Tag is FormulaProgram) && ((tn.Tag as FormulaProgram).Name == ProgramName))
- {
- return tn;
- }
- foreach (TreeNode node in tn.Nodes)
- {
- TreeNode node2 = this.FindNode(node, ProgramName);
- if (node2 != null)
- {
- return node2;
- }
- }
- return null;
- }
- private void FormulaEditor_Activated(object sender, EventArgs e)
- {
- this.tbFormulaProgramCode.Focus();
- }
- private void FormulaEditor_Closing(object sender, CancelEventArgs e)
- {
- if (this.Modified)
- {
- e.Cancel = true;
- }
- }
- private void FormulaEditor_Load(object sender, EventArgs e)
- {
- this.cbParamType.Items.Clear();
- this.cbParamType.Items.AddRange(Enum.GetNames(typeof(FormulaParamType)));
- string[] commandLineArgs = Environment.GetCommandLineArgs();
- if (commandLineArgs.Length == 2)
- {
- this.LoadEditor(commandLineArgs[1], null);
- }
- else if (commandLineArgs.Length == 3)
- {
- this.LoadEditor(commandLineArgs[1], commandLineArgs[2]);
- }
- }
- private void FormulaTree_AfterSelect(object sender, TreeViewEventArgs e)
- {
- this.DisableChange = true;
- try
- {
- if (e.Node.Tag is FormulaSpace)
- {
- FormulaSpace tag = (FormulaSpace)e.Node.Tag;
- if (e.Node.Parent == null && tag.Name == "FML")
- {
- tbNamespaceName.Enabled = false;
- cbNotRealNameSpace.Enabled = false;
- }
- else
- {
- tbNamespaceName.Enabled = true;
- cbNotRealNameSpace.Enabled = true;
- }
- this.tbNamespaceName.Text = tag.Name;
- this.tbNamespaceDesc.Text = tag.Description;
- this.tbVersion.Visible = e.Node.Parent == null;
- this.lVersion.Visible = this.tbVersion.Visible;
- this.tbVersion.Text = tag.Version;
- this.cbNotRealNameSpace.Checked = tag.GroupOnly;
- this.tcFormula.SelectedTab = this.tpNamespace;
- this.lOverride.Text = "Namespace properties:" + tag.Name;
- }
- else if (e.Node.Tag is FormulaProgram)
- {
- FormulaProgram program = (FormulaProgram)e.Node.Tag;
- this.tbFormulaProgramName.Text = program.Name;
- this.tbProgramFullName.Text = program.FullName;
- if (program.Code != null)
- {
- this.tbFormulaProgramCode.Lines = this.Trim(program.Code.Split(new char[] { '\n' }));
- }
- else
- {
- this.tbFormulaProgramCode.Text = "";
- }
- if (program.Description != null)
- {
- this.tbFormulaProgramDesc.Lines = this.Trim(program.Description.Split(new char[] { '\n' }));
- }
- else
- {
- this.tbFormulaProgramDesc.Text = "";
- }
- this.cbIsMainView.Checked = program.IsMainView;
- this.tcFormula.SelectedTab = this.tpFormulaProgram;
- this.lOverride.Text = "Formula script code:" + program.Name;
- }
- else if (e.Node.Tag is FormulaParam)
- {
- FormulaParam param = (FormulaParam)e.Node.Tag;
- this.tbParamName.Text = param.Name;
- this.tbParamDesc.Text = param.Description;
- this.tbMinValue.Text = param.MinValue;
- this.tbMaxValue.Text = param.MaxValue;
- this.tbDefaultValue.Text = param.DefaultValue;
- this.cbParamType.SelectedIndex = (int)param.ParamType;
- this.tcFormula.SelectedTab = this.tpParameter;
- this.lOverride.Text = "Formula script parameter:" + param.Name;
- }
- this.FormulaTree.Focus();
- this.LastNode = e.Node;
- }
- finally
- {
- this.DisableChange = false;
- }
- }
- private void FormulaTree_BeforeSelect(object sender, TreeViewCancelEventArgs e)
- {
- this.SaveDataToNode(this.LastNode);
- }
- private void FormulaTree_MouseDown(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Right)
- {
- TreeNode nodeAt = this.FormulaTree.GetNodeAt(e.X, e.Y);
- if (nodeAt == null)
- {
- nodeAt = this.FormulaTree.SelectedNode;
- }
- else
- {
- this.FormulaTree.SelectedNode = nodeAt;
- }
- if (nodeAt.Tag is FormulaSpace)
- {
- this.miAddFormulaProgram.Visible = true;
- this.miAddNamespace.Visible = true;
- this.miAddParam.Visible = false;
- }
- else if (nodeAt.Tag is FormulaProgram)
- {
- this.miAddFormulaProgram.Visible = false;
- this.miAddNamespace.Visible = false;
- this.miAddParam.Visible = true;
- }
- else if (nodeAt.Tag is FormulaParam)
- {
- this.miAddFormulaProgram.Visible = false;
- this.miAddNamespace.Visible = false;
- this.miAddParam.Visible = false;
- }
- this.cmTree.Show(this.FormulaTree, new Point(e.X, e.Y));
- }
- }
- private void InitializeComponent()
- {
- this.components = new System.ComponentModel.Container();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormulaSourceEditor));
- this.FormulaTree = new System.Windows.Forms.TreeView();
- this.ilFormula = new System.Windows.Forms.ImageList(this.components);
- this.tcFormula = new System.Windows.Forms.TabControl();
- this.tpNamespace = new System.Windows.Forms.TabPage();
- this.pnNamespace = new System.Windows.Forms.Panel();
- this.cmTree = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.miAddNamespace = new System.Windows.Forms.ToolStripMenuItem();
- this.miAddFormulaProgram = new System.Windows.Forms.ToolStripMenuItem();
- this.miAddParam = new System.Windows.Forms.ToolStripMenuItem();
- this.miDeleteNode = new System.Windows.Forms.ToolStripMenuItem();
- this.tbVersion = new System.Windows.Forms.TextBox();
- this.lVersion = new System.Windows.Forms.Label();
- this.cbNotRealNameSpace = new System.Windows.Forms.CheckBox();
- this.lNamespaceDescription = new System.Windows.Forms.Label();
- this.tbNamespaceDesc = new System.Windows.Forms.TextBox();
- this.lNamespaceName = new System.Windows.Forms.Label();
- this.tbNamespaceName = new System.Windows.Forms.TextBox();
- this.tpFormulaProgram = new System.Windows.Forms.TabPage();
- this.spProgram = new System.Windows.Forms.Splitter();
- this.pnProgram = new System.Windows.Forms.Panel();
- this.btnFormula = new System.Windows.Forms.Button();
- this.btnInsertMethod = new System.Windows.Forms.Button();
- this.btnCompile = new System.Windows.Forms.Button();
- this.lbIntelliSence = new System.Windows.Forms.ListBox();
- this.lFullName = new System.Windows.Forms.Label();
- this.tbProgramFullName = new System.Windows.Forms.TextBox();
- this.btnDebug = new System.Windows.Forms.Button();
- this.lFormulaProgramDesc = new System.Windows.Forms.Label();
- this.tbFormulaProgramDesc = new System.Windows.Forms.TextBox();
- this.cbIsMainView = new System.Windows.Forms.CheckBox();
- this.tbFormulaProgramName = new System.Windows.Forms.TextBox();
- this.lFormulaProgramName = new System.Windows.Forms.Label();
- this.lFormulaProgramCode = new System.Windows.Forms.Label();
- this.pnCode = new System.Windows.Forms.Panel();
- this.tbFormulaProgramCode = new System.Windows.Forms.RichTextBox();
- this.lvErrors = new System.Windows.Forms.ListView();
- this.HeaderName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.HeaderLine = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.HeaderColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.HeaderNumber = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.HeaderMessage = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.tpParameter = new System.Windows.Forms.TabPage();
- this.cbParamType = new System.Windows.Forms.ComboBox();
- this.lParamType = new System.Windows.Forms.Label();
- this.tbParamDesc = new System.Windows.Forms.TextBox();
- this.lParamDesc = new System.Windows.Forms.Label();
- this.tbParamName = new System.Windows.Forms.TextBox();
- this.lParamName = new System.Windows.Forms.Label();
- this.tbMaxValue = new System.Windows.Forms.TextBox();
- this.tbMinValue = new System.Windows.Forms.TextBox();
- this.tbDefaultValue = new System.Windows.Forms.TextBox();
- this.lDefaultValue = new System.Windows.Forms.Label();
- this.lMaxValue = new System.Windows.Forms.Label();
- this.lMinValue = new System.Windows.Forms.Label();
- this.mmFumular = new System.Windows.Forms.MainMenu(this.components);
- this.menuItem1 = new System.Windows.Forms.MenuItem();
- this.miNew = new System.Windows.Forms.MenuItem();
- this.miOpen = new System.Windows.Forms.MenuItem();
- this.miSave = new System.Windows.Forms.MenuItem();
- this.miSaveAs = new System.Windows.Forms.MenuItem();
- this.miCompile = new System.Windows.Forms.MenuItem();
- this.menuItem4 = new System.Windows.Forms.MenuItem();
- this.miExit = new System.Windows.Forms.MenuItem();
- this.odFormula = new System.Windows.Forms.OpenFileDialog();
- this.sdFormula = new System.Windows.Forms.SaveFileDialog();
- this.pnFormula = new System.Windows.Forms.Panel();
- this.pnTop = new System.Windows.Forms.Panel();
- this.spFormula = new System.Windows.Forms.Splitter();
- this.pnBottom = new System.Windows.Forms.Panel();
- this.btnClose = new System.Windows.Forms.Button();
- this.tcFormula.SuspendLayout();
- this.tpNamespace.SuspendLayout();
- this.pnNamespace.SuspendLayout();
- this.cmTree.SuspendLayout();
- this.tpFormulaProgram.SuspendLayout();
- this.pnProgram.SuspendLayout();
- this.pnCode.SuspendLayout();
- this.tpParameter.SuspendLayout();
- this.pnFormula.SuspendLayout();
- this.pnTop.SuspendLayout();
- this.pnBottom.SuspendLayout();
- this.SuspendLayout();
- //
- // FormulaTree
- //
- resources.ApplyResources(this.FormulaTree, "FormulaTree");
- this.FormulaTree.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.FormulaTree.FullRowSelect = true;
- this.FormulaTree.HideSelection = false;
- this.FormulaTree.ImageList = this.ilFormula;
- this.FormulaTree.Name = "FormulaTree";
- this.FormulaTree.BeforeSelect += new System.Windows.Forms.TreeViewCancelEventHandler(this.FormulaTree_BeforeSelect);
- this.FormulaTree.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.FormulaTree_AfterSelect);
- this.FormulaTree.MouseDown += new System.Windows.Forms.MouseEventHandler(this.FormulaTree_MouseDown);
- //
- // ilFormula
- //
- this.ilFormula.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilFormula.ImageStream")));
- this.ilFormula.TransparentColor = System.Drawing.Color.Transparent;
- this.ilFormula.Images.SetKeyName(0, "");
- this.ilFormula.Images.SetKeyName(1, "");
- this.ilFormula.Images.SetKeyName(2, "");
- //
- // tcFormula
- //
- resources.ApplyResources(this.tcFormula, "tcFormula");
- this.tcFormula.AllowDrop = true;
- this.tcFormula.Controls.Add(this.tpNamespace);
- this.tcFormula.Controls.Add(this.tpFormulaProgram);
- this.tcFormula.Controls.Add(this.tpParameter);
- this.tcFormula.Name = "tcFormula";
- this.tcFormula.SelectedIndex = 0;
- this.tcFormula.TabStop = false;
- //
- // tpNamespace
- //
- resources.ApplyResources(this.tpNamespace, "tpNamespace");
- this.tpNamespace.Controls.Add(this.pnNamespace);
- this.tpNamespace.Name = "tpNamespace";
- //
- // pnNamespace
- //
- resources.ApplyResources(this.pnNamespace, "pnNamespace");
- this.pnNamespace.ContextMenuStrip = this.cmTree;
- this.pnNamespace.Controls.Add(this.tbVersion);
- this.pnNamespace.Controls.Add(this.lVersion);
- this.pnNamespace.Controls.Add(this.cbNotRealNameSpace);
- this.pnNamespace.Controls.Add(this.lNamespaceDescription);
- this.pnNamespace.Controls.Add(this.tbNamespaceDesc);
- this.pnNamespace.Controls.Add(this.lNamespaceName);
- this.pnNamespace.Controls.Add(this.tbNamespaceName);
- this.pnNamespace.Name = "pnNamespace";
- //
- // cmTree
- //
- resources.ApplyResources(this.cmTree, "cmTree");
- this.cmTree.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.miAddNamespace,
- this.miAddFormulaProgram,
- this.miAddParam,
- this.miDeleteNode});
- this.cmTree.Name = "cmTree";
- //
- // miAddNamespace
- //
- resources.ApplyResources(this.miAddNamespace, "miAddNamespace");
- this.miAddNamespace.Name = "miAddNamespace";
- this.miAddNamespace.Click += new System.EventHandler(this.miAddNamespace_Click);
- //
- // miAddFormulaProgram
- //
- resources.ApplyResources(this.miAddFormulaProgram, "miAddFormulaProgram");
- this.miAddFormulaProgram.Name = "miAddFormulaProgram";
- this.miAddFormulaProgram.Click += new System.EventHandler(this.miAddFormulaProgram_Click);
- //
- // miAddParam
- //
- resources.ApplyResources(this.miAddParam, "miAddParam");
- this.miAddParam.Name = "miAddParam";
- this.miAddParam.Click += new System.EventHandler(this.miAddParam_Click);
- //
- // miDeleteNode
- //
- resources.ApplyResources(this.miDeleteNode, "miDeleteNode");
- this.miDeleteNode.Name = "miDeleteNode";
- this.miDeleteNode.Click += new System.EventHandler(this.miDeleteNode_Click);
- //
- // tbVersion
- //
- resources.ApplyResources(this.tbVersion, "tbVersion");
- this.tbVersion.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.tbVersion.Name = "tbVersion";
- //
- // lVersion
- //
- resources.ApplyResources(this.lVersion, "lVersion");
- this.lVersion.Name = "lVersion";
- //
- // cbNotRealNameSpace
- //
- resources.ApplyResources(this.cbNotRealNameSpace, "cbNotRealNameSpace");
- this.cbNotRealNameSpace.Name = "cbNotRealNameSpace";
- //
- // lNamespaceDescription
- //
- resources.ApplyResources(this.lNamespaceDescription, "lNamespaceDescription");
- this.lNamespaceDescription.BackColor = System.Drawing.SystemColors.Control;
- this.lNamespaceDescription.Name = "lNamespaceDescription";
- //
- // tbNamespaceDesc
- //
- resources.ApplyResources(this.tbNamespaceDesc, "tbNamespaceDesc");
- this.tbNamespaceDesc.BackColor = System.Drawing.SystemColors.Info;
- this.tbNamespaceDesc.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.tbNamespaceDesc.Name = "tbNamespaceDesc";
- //
- // lNamespaceName
- //
- resources.ApplyResources(this.lNamespaceName, "lNamespaceName");
- this.lNamespaceName.BackColor = System.Drawing.SystemColors.Control;
- this.lNamespaceName.Name = "lNamespaceName";
- //
- // tbNamespaceName
- //
- resources.ApplyResources(this.tbNamespaceName, "tbNamespaceName");
- this.tbNamespaceName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.tbNamespaceName.Name = "tbNamespaceName";
- //
- // tpFormulaProgram
- //
- resources.ApplyResources(this.tpFormulaProgram, "tpFormulaProgram");
- this.tpFormulaProgram.Controls.Add(this.spProgram);
- this.tpFormulaProgram.Controls.Add(this.pnProgram);
- this.tpFormulaProgram.Controls.Add(this.lvErrors);
- this.tpFormulaProgram.Name = "tpFormulaProgram";
- //
- // spProgram
- //
- resources.ApplyResources(this.spProgram, "spProgram");
- this.spProgram.Name = "spProgram";
- this.spProgram.TabStop = false;
- //
- // pnProgram
- //
- resources.ApplyResources(this.pnProgram, "pnProgram");
- this.pnProgram.Controls.Add(this.btnFormula);
- this.pnProgram.Controls.Add(this.btnInsertMethod);
- this.pnProgram.Controls.Add(this.btnCompile);
- this.pnProgram.Controls.Add(this.lbIntelliSence);
- this.pnProgram.Controls.Add(this.lFullName);
- this.pnProgram.Controls.Add(this.tbProgramFullName);
- this.pnProgram.Controls.Add(this.btnDebug);
- this.pnProgram.Controls.Add(this.lFormulaProgramDesc);
- this.pnProgram.Controls.Add(this.tbFormulaProgramDesc);
- this.pnProgram.Controls.Add(this.cbIsMainView);
- this.pnProgram.Controls.Add(this.tbFormulaProgramName);
- this.pnProgram.Controls.Add(this.lFormulaProgramName);
- this.pnProgram.Controls.Add(this.lFormulaProgramCode);
- this.pnProgram.Controls.Add(this.pnCode);
- this.pnProgram.Name = "pnProgram";
- //
- // btnFormula
- //
- resources.ApplyResources(this.btnFormula, "btnFormula");
- this.btnFormula.Name = "btnFormula";
- this.btnFormula.Click += new System.EventHandler(this.btnFormula_Click);
- //
- // btnInsertMethod
- //
- resources.ApplyResources(this.btnInsertMethod, "btnInsertMethod");
- this.btnInsertMethod.Name = "btnInsertMethod";
- this.btnInsertMethod.Click += new System.EventHandler(this.btnInsertMethod_Click);
- //
- // btnCompile
- //
- resources.ApplyResources(this.btnCompile, "btnCompile");
- this.btnCompile.Name = "btnCompile";
- this.btnCompile.Click += new System.EventHandler(this.btnCompile_Click);
- //
- // lbIntelliSence
- //
- resources.ApplyResources(this.lbIntelliSence, "lbIntelliSence");
- this.lbIntelliSence.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.lbIntelliSence.Name = "lbIntelliSence";
- this.lbIntelliSence.TabStop = false;
- this.lbIntelliSence.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lbIntelliSence_KeyDown);
- //
- // lFullName
- //
- resources.ApplyResources(this.lFullName, "lFullName");
- this.lFullName.Name = "lFullName";
- //
- // tbProgramFullName
- //
- resources.ApplyResources(this.tbProgramFullName, "tbProgramFullName");
- this.tbProgramFullName.BackColor = System.Drawing.Color.SeaShell;
- this.tbProgramFullName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.tbProgramFullName.Name = "tbProgramFullName";
- //
- // btnDebug
- //
- resources.ApplyResources(this.btnDebug, "btnDebug");
- this.btnDebug.Name = "btnDebug";
- this.btnDebug.Click += new System.EventHandler(this.btnDebug_Click);
- //
- // lFormulaProgramDesc
- //
- resources.ApplyResources(this.lFormulaProgramDesc, "lFormulaProgramDesc");
- this.lFormulaProgramDesc.Name = "lFormulaProgramDesc";
- //
- // tbFormulaProgramDesc
- //
- resources.ApplyResources(this.tbFormulaProgramDesc, "tbFormulaProgramDesc");
- this.tbFormulaProgramDesc.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.tbFormulaProgramDesc.Name = "tbFormulaProgramDesc";
- this.tbFormulaProgramDesc.Leave += new System.EventHandler(this.tbFormulaProgramCode_Leave);
- //
- // cbIsMainView
- //
- resources.ApplyResources(this.cbIsMainView, "cbIsMainView");
- this.cbIsMainView.Name = "cbIsMainView";
- this.cbIsMainView.Leave += new System.EventHandler(this.tbFormulaProgramCode_Leave);
- //
- // tbFormulaProgramName
- //
- resources.ApplyResources(this.tbFormulaProgramName, "tbFormulaProgramName");
- this.tbFormulaProgramName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.tbFormulaProgramName.Name = "tbFormulaProgramName";
- this.tbFormulaProgramName.Leave += new System.EventHandler(this.tbFormulaProgramCode_Leave);
- //
- // lFormulaProgramName
- //
- resources.ApplyResources(this.lFormulaProgramName, "lFormulaProgramName");
- this.lFormulaProgramName.Name = "lFormulaProgramName";
- //
- // lFormulaProgramCode
- //
- resources.ApplyResources(this.lFormulaProgramCode, "lFormulaProgramCode");
- this.lFormulaProgramCode.Name = "lFormulaProgramCode";
- //
- // pnCode
- //
- resources.ApplyResources(this.pnCode, "pnCode");
- this.pnCode.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.pnCode.Controls.Add(this.tbFormulaProgramCode);
- this.pnCode.Name = "pnCode";
- this.pnCode.TabStop = true;
- //
- // tbFormulaProgramCode
- //
- resources.ApplyResources(this.tbFormulaProgramCode, "tbFormulaProgramCode");
- this.tbFormulaProgramCode.BackColor = System.Drawing.SystemColors.Info;
- this.tbFormulaProgramCode.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.tbFormulaProgramCode.Name = "tbFormulaProgramCode";
- this.tbFormulaProgramCode.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbFormulaProgramCode_KeyDown);
- this.tbFormulaProgramCode.Leave += new System.EventHandler(this.tbFormulaProgramCode_Leave);
- //
- // lvErrors
- //
- resources.ApplyResources(this.lvErrors, "lvErrors");
- this.lvErrors.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.lvErrors.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.HeaderName,
- this.HeaderLine,
- this.HeaderColumn,
- this.HeaderNumber,
- this.HeaderMessage});
- this.lvErrors.FullRowSelect = true;
- this.lvErrors.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
- this.lvErrors.Name = "lvErrors";
- this.lvErrors.UseCompatibleStateImageBehavior = false;
- this.lvErrors.View = System.Windows.Forms.View.Details;
- this.lvErrors.DoubleClick += new System.EventHandler(this.lvErrors_DoubleClick);
- //
- // HeaderName
- //
- resources.ApplyResources(this.HeaderName, "HeaderName");
- //
- // HeaderLine
- //
- resources.ApplyResources(this.HeaderLine, "HeaderLine");
- //
- // HeaderColumn
- //
- resources.ApplyResources(this.HeaderColumn, "HeaderColumn");
- //
- // HeaderNumber
- //
- resources.ApplyResources(this.HeaderNumber, "HeaderNumber");
- //
- // HeaderMessage
- //
- resources.ApplyResources(this.HeaderMessage, "HeaderMessage");
- //
- // tpParameter
- //
- resources.ApplyResources(this.tpParameter, "tpParameter");
- this.tpParameter.Controls.Add(this.cbParamType);
- this.tpParameter.Controls.Add(this.lParamType);
- this.tpParameter.Controls.Add(this.tbParamDesc);
- this.tpParameter.Controls.Add(this.lParamDesc);
- this.tpParameter.Controls.Add(this.tbParamName);
- this.tpParameter.Controls.Add(this.lParamName);
- this.tpParameter.Controls.Add(this.tbMaxValue);
- this.tpParameter.Controls.Add(this.tbMinValue);
- this.tpParameter.Controls.Add(this.tbDefaultValue);
- this.tpParameter.Controls.Add(this.lDefaultValue);
- this.tpParameter.Controls.Add(this.lMaxValue);
- this.tpParameter.Controls.Add(this.lMinValue);
- this.tpParameter.Name = "tpParameter";
- //
- // cbParamType
- //
- resources.ApplyResources(this.cbParamType, "cbParamType");
- this.cbParamType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.cbParamType.Name = "cbParamType";
- //
- // lParamType
- //
- resources.ApplyResources(this.lParamType, "lParamType");
- this.lParamType.Name = "lParamType";
- //
- // tbParamDesc
- //
- resources.ApplyResources(this.tbParamDesc, "tbParamDesc");
- this.tbParamDesc.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.tbParamDesc.Name = "tbParamDesc";
- this.tbParamDesc.Leave += new System.EventHandler(this.tbFormulaProgramCode_Leave);
- //
- // lParamDesc
- //
- resources.ApplyResources(this.lParamDesc, "lParamDesc");
- this.lParamDesc.Name = "lParamDesc";
- //
- // tbParamName
- //
- resources.ApplyResources(this.tbParamName, "tbParamName");
- this.tbParamName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.tbParamName.Name = "tbParamName";
- this.tbParamName.Leave += new System.EventHandler(this.tbFormulaProgramCode_Leave);
- //
- // lParamName
- //
- resources.ApplyResources(this.lParamName, "lParamName");
- this.lParamName.Name = "lParamName";
- //
- // tbMaxValue
- //
- resources.ApplyResources(this.tbMaxValue, "tbMaxValue");
- this.tbMaxValue.BackColor = System.Drawing.SystemColors.Info;
- this.tbMaxValue.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.tbMaxValue.Name = "tbMaxValue";
- this.tbMaxValue.Leave += new System.EventHandler(this.tbFormulaProgramCode_Leave);
- //
- // tbMinValue
- //
- resources.ApplyResources(this.tbMinValue, "tbMinValue");
- this.tbMinValue.BackColor = System.Drawing.SystemColors.Info;
- this.tbMinValue.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.tbMinValue.Name = "tbMinValue";
- this.tbMinValue.Leave += new System.EventHandler(this.tbFormulaProgramCode_Leave);
- //
- // tbDefaultValue
- //
- resources.ApplyResources(this.tbDefaultValue, "tbDefaultValue");
- this.tbDefaultValue.BackColor = System.Drawing.SystemColors.Info;
- this.tbDefaultValue.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.tbDefaultValue.Name = "tbDefaultValue";
- this.tbDefaultValue.Leave += new System.EventHandler(this.tbFormulaProgramCode_Leave);
- //
- // lDefaultValue
- //
- resources.ApplyResources(this.lDefaultValue, "lDefaultValue");
- this.lDefaultValue.Name = "lDefaultValue";
- //
- // lMaxValue
- //
- resources.ApplyResources(this.lMaxValue, "lMaxValue");
- this.lMaxValue.Name = "lMaxValue";
- //
- // lMinValue
- //
- resources.ApplyResources(this.lMinValue, "lMinValue");
- this.lMinValue.Name = "lMinValue";
- //
- // mmFumular
- //
- this.mmFumular.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
- this.menuItem1});
- resources.ApplyResources(this.mmFumular, "mmFumular");
- //
- // menuItem1
- //
- resources.ApplyResources(this.menuItem1, "menuItem1");
- this.menuItem1.Index = 0;
- this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
- this.miNew,
- this.miOpen,
- this.miSave,
- this.miSaveAs,
- this.miCompile,
- this.menuItem4,
- this.miExit});
- //
- // miNew
- //
- resources.ApplyResources(this.miNew, "miNew");
- this.miNew.Index = 0;
- this.miNew.Click += new System.EventHandler(this.miNew_Click);
- //
- // miOpen
- //
- resources.ApplyResources(this.miOpen, "miOpen");
- this.miOpen.Index = 1;
- this.miOpen.Click += new System.EventHandler(this.miOpen_Click);
- //
- // miSave
- //
- resources.ApplyResources(this.miSave, "miSave");
- this.miSave.Index = 2;
- this.miSave.Click += new System.EventHandler(this.miSave_Click);
- //
- // miSaveAs
- //
- resources.ApplyResources(this.miSaveAs, "miSaveAs");
- this.miSaveAs.Index = 3;
- this.miSaveAs.Click += new System.EventHandler(this.miSaveAs_Click);
- //
- // miCompile
- //
- resources.ApplyResources(this.miCompile, "miCompile");
- this.miCompile.Index = 4;
- this.miCompile.Click += new System.EventHandler(this.miCompile_Click);
- //
- // menuItem4
- //
- resources.ApplyResources(this.menuItem4, "menuItem4");
- this.menuItem4.Index = 5;
- //
- // miExit
- //
- resources.ApplyResources(this.miExit, "miExit");
- this.miExit.Index = 6;
- this.miExit.Click += new System.EventHandler(this.miExit_Click);
- //
- // odFormula
- //
- this.odFormula.DefaultExt = "fml";
- resources.ApplyResources(this.odFormula, "odFormula");
- this.odFormula.RestoreDirectory = true;
- //
- // sdFormula
- //
- this.sdFormula.DefaultExt = "fml";
- resources.ApplyResources(this.sdFormula, "sdFormula");
- this.sdFormula.RestoreDirectory = true;
- //
- // pnFormula
- //
- resources.ApplyResources(this.pnFormula, "pnFormula");
- this.pnFormula.Controls.Add(this.tcFormula);
- this.pnFormula.Name = "pnFormula";
- //
- // pnTop
- //
- resources.ApplyResources(this.pnTop, "pnTop");
- this.pnTop.Controls.Add(this.pnFormula);
- this.pnTop.Controls.Add(this.spFormula);
- this.pnTop.Controls.Add(this.FormulaTree);
- this.pnTop.Name = "pnTop";
- //
- // spFormula
- //
- resources.ApplyResources(this.spFormula, "spFormula");
- this.spFormula.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
- this.spFormula.Name = "spFormula";
- this.spFormula.TabStop = false;
- //
- // pnBottom
- //
- resources.ApplyResources(this.pnBottom, "pnBottom");
- this.pnBottom.Controls.Add(this.btnClose);
- this.pnBottom.Name = "pnBottom";
- //
- // btnClose
- //
- resources.ApplyResources(this.btnClose, "btnClose");
- this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.btnClose.Name = "btnClose";
- this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
- //
- // FormulaSourceEditor
- //
- resources.ApplyResources(this, "$this");
- this.CancelButton = this.btnClose;
- this.Controls.Add(this.pnTop);
- this.Controls.Add(this.pnBottom);
- this.Menu = this.mmFumular;
- this.Name = "FormulaSourceEditor";
- this.Activated += new System.EventHandler(this.FormulaEditor_Activated);
- this.Closing += new System.ComponentModel.CancelEventHandler(this.FormulaEditor_Closing);
- this.Load += new System.EventHandler(this.FormulaEditor_Load);
- this.Click += new System.EventHandler(this.btnDebug_Click);
- this.tcFormula.ResumeLayout(false);
- this.tpNamespace.ResumeLayout(false);
- this.pnNamespace.ResumeLayout(false);
- this.pnNamespace.PerformLayout();
- this.cmTree.ResumeLayout(false);
- this.tpFormulaProgram.ResumeLayout(false);
- this.pnProgram.ResumeLayout(false);
- this.pnProgram.PerformLayout();
- this.pnCode.ResumeLayout(false);
- this.tpParameter.ResumeLayout(false);
- this.tpParameter.PerformLayout();
- this.pnFormula.ResumeLayout(false);
- this.pnTop.ResumeLayout(false);
- this.pnBottom.ResumeLayout(false);
- this.ResumeLayout(false);
- }
- private void lbIntelliSence_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Escape)
- {
- this.lbIntelliSence.Visible = false;
- }
- else if (e.KeyCode == Keys.Enter)
- {
- Clipboard.SetDataObject(this.lbIntelliSence.SelectedItem.ToString());
- this.tbFormulaProgramCode.Paste();
- this.lbIntelliSence.Visible = false;
- }
- }
- private void LoadEditor(string Filename, string Formula)
- {
- if (File.Exists(Filename))
- {
- this.LoadFromFile(Filename);
- if (Formula != null)
- {
- int num = Formula.LastIndexOf('.');
- if (num >= 0)
- {
- Formula = Formula.Substring(num + 1);
- }
- TreeNode node = this.FindNode(this.FormulaTree.Nodes[0], Formula);
- if (node != null)
- {
- this.FormulaTree.SelectedNode = node;
- this.FormulaTree.SelectedNode.Expand();
- }
- }
- }
- base.ShowDialog();
- }
- private void LoadFromFile(string FileName)
- {
- if (File.Exists(FileName))
- {
- this.fs = FormulaSpace.Read(FileName);
- this.fs.AddVersion();
- this.Filename = FileName;
- this.sdFormula.FileName = this.Filename;
- this.LoadToTree(this.fs);
- this.Modified = false;
- this.FormulaTree.Nodes[0].Expand();
- }
- }
- private void LoadToTree(FormulaSpace fs)
- {
- this.FormulaTree.BeginUpdate();
- try
- {
- this.FormulaTree.Nodes.Clear();
- TreeNode node = new TreeNode("FML", 0, 0);
- this.FormulaTree.Nodes.Add(node);
- this.LoadToTree(this.FormulaTree.Nodes[0], fs);
- }
- finally
- {
- this.FormulaTree.EndUpdate();
- }
- this.FormulaTree.SelectedNode = this.FormulaTree.TopNode;
- }
- private void LoadToTree(TreeNode tn, FormulaParam fp)
- {
- tn.Text = fp.Name;
- tn.Tag = fp;
- }
- private void LoadToTree(TreeNode tn, FormulaProgram p)
- {
- tn.Text = p.Name;
- tn.Tag = p;
- foreach (FormulaParam param in p.Params)
- {
- TreeNode node = new TreeNode();
- node.ImageIndex = 2;
- node.SelectedImageIndex = 2;
- tn.Nodes.Add(node);
- this.LoadToTree(node, param);
- }
- }
- private void LoadToTree(TreeNode tn, FormulaSpace fs)
- {
- tn.Text = fs.Name;
- tn.Tag = fs;
- foreach (FormulaSpace space in fs.Namespaces)
- {
- TreeNode node = new TreeNode();
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- tn.Nodes.Add(node);
- this.LoadToTree(node, space);
- }
- foreach (FormulaProgram program in fs.Programs)
- {
- TreeNode node2 = new TreeNode();
- node2.ImageIndex = 1;
- node2.SelectedImageIndex = 1;
- tn.Nodes.Add(node2);
- this.LoadToTree(node2, program);
- }
- }
- private void LocateFirstProgram()
- {
- TreeNode selectedNode = this.FormulaTree.SelectedNode;
- if (!(selectedNode.Tag is FormulaProgram))
- {
- selectedNode = this.FormulaTree.Nodes[0];
- while (!(selectedNode.Tag is FormulaProgram) && (selectedNode.Nodes.Count > 0))
- {
- selectedNode = selectedNode.Nodes[0];
- }
- }
- this.FormulaTree.SelectedNode = selectedNode;
- }
- private void lvErrors_DoubleClick(object sender, EventArgs e)
- {
- ListViewItem focusedItem = this.lvErrors.FocusedItem;
- if (focusedItem != null)
- {
- FormulaProgram tag = (FormulaProgram)focusedItem.Tag;
- if (tag != null)
- {
- TreeNode node = this.FindNode(this.FormulaTree.Nodes[0], tag);
- if (node != null)
- {
- this.FormulaTree.SelectedNode = node;
- int num = int.Parse(focusedItem.SubItems[1].Text);
- int num2 = int.Parse(focusedItem.SubItems[2].Text);
- for (int i = 0; (i < (num - 1)) && (i < this.tbFormulaProgramCode.Lines.Length); i++)
- {
- num2 += this.tbFormulaProgramCode.Lines[i].Length + 1;
- }
- if (num2 < 0)
- {
- num2 = 0;
- }
- this.tbFormulaProgramCode.SelectionStart = num2;
- this.tbFormulaProgramCode.Focus();
- }
- }
- }
- }
- private void miAddFormulaProgram_Click(object sender, EventArgs e)
- {
- TreeNode selectedNode = this.FormulaTree.SelectedNode;
- FormulaSpace tag = (FormulaSpace)selectedNode.Tag;
- FormulaProgram program = new FormulaProgram();
- tag.Programs.Add(program);
- TreeNode node = new TreeNode("NewCode");
- program.Name = node.Text;
- selectedNode.Nodes.Add(node);
- node.ImageIndex = 1;
- node.SelectedImageIndex = 1;
- node.Tag = program;
- this.FormulaTree.SelectedNode = node;
- }
- private void miAddNamespace_Click(object sender, EventArgs e)
- {
- TreeNode selectedNode = this.FormulaTree.SelectedNode;
- FormulaSpace tag = (FormulaSpace)selectedNode.Tag;
- FormulaSpace space2 = new FormulaSpace();
- tag.Namespaces.Add(space2);
- TreeNode node = new TreeNode("NewSpace");
- space2.Name = node.Text;
- selectedNode.Nodes.Add(node);
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- node.Tag = space2;
- this.FormulaTree.SelectedNode = node;
- }
- private void miAddParam_Click(object sender, EventArgs e)
- {
- TreeNode selectedNode = this.FormulaTree.SelectedNode;
- FormulaProgram tag = (FormulaProgram)selectedNode.Tag;
- FormulaParam fp = new FormulaParam();
- tag.Params.Add(fp);
- TreeNode node = new TreeNode("NewParam");
- fp.Name = node.Text;
- selectedNode.Nodes.Add(node);
- node.ImageIndex = 2;
- node.SelectedImageIndex = 2;
- node.Tag = fp;
- this.FormulaTree.SelectedNode = node;
- }
- private void miCompile_Click(object sender, EventArgs e)
- {
- this.Compile();
- }
- private void miDeleteNode_Click(object sender, EventArgs e)
- {
- TreeNode selectedNode = this.FormulaTree.SelectedNode;
- TreeNode parent = selectedNode.Parent;
- if (parent != null)
- {
- object tag = parent.Tag;
- object obj3 = selectedNode.Tag;
- if (tag is FormulaSpace)
- {
- if (obj3 is FormulaSpace)
- {
- ((FormulaSpace)tag).Namespaces.Remove((FormulaSpace)obj3);
- }
- else if (obj3 is FormulaProgram)
- {
- ((FormulaSpace)tag).Programs.Remove((FormulaProgram)obj3);
- }
- }
- else if ((tag is FormulaProgram) && (obj3 is FormulaParam))
- {
- ((FormulaProgram)tag).Params.Remove((FormulaParam)obj3);
- }
- selectedNode.Remove();
- }
- }
- private void miExit_Click(object sender, EventArgs e)
- {
- base.Close();
- }
- private void miNew_Click(object sender, EventArgs e)
- {
- if (!this.Modified)
- {
- this.Filename = "";
- this.fs = new FormulaSpace("FML");
- this.LoadToTree(this.fs);
- }
- }
- private void miOpen_Click(object sender, EventArgs e)
- {
- if (!this.Modified && (this.odFormula.ShowDialog() == DialogResult.OK))
- {
- try
- {
- this.LoadFromFile(this.odFormula.FileName);
- }
- catch (Exception exception)
- {
- MessageBox.Show(exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- }
- }
- private void miSave_Click(object sender, EventArgs e)
- {
- this.Save();
- }
- private void miSaveAs_Click(object sender, EventArgs e)
- {
- this.SaveAs();
- }
- public static void Open(string Filename, string Formula)
- {
- //if (CurrentEditor == null)
- //{
- CurrentEditor = new FormulaSourceEditor();
- //}
- //SetLanguage.CurrentUICulture();
- CurrentEditor.LoadEditor(Filename, Formula);
- }
- public static void Show(string Filename)
- {
- CurrentEditor = new FormulaSourceEditor();
- CurrentEditor.LoadEditor(Filename, "");
- }
- private bool Save()
- {
- if (this.Filename == "")
- {
- return this.SaveAs();
- }
- try
- {
- if (this.Compile())
- {
- this.SaveDataToNode();
- this.fs.Write(this.Filename);
- this.Modified = false;
- return true;
- }
- }
- catch (Exception exception)
- {
- MessageBox.Show(exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- return false;
- }
- private bool SaveAs()
- {
- bool isNewFile = false; //标识文件是否为最新
- if (!string.IsNullOrEmpty(this.Filename))
- {
- this.sdFormula.FileName = this.Filename;
- }
- else
- {
- isNewFile = true;
- this.sdFormula.FileName = string.Format("{0}\\Plugins\\NewFML.fml", Environment.CurrentDirectory);
- }
- if (this.sdFormula.ShowDialog() == DialogResult.OK)
- {
- this.SaveDataToNode();
- this.Filename = this.sdFormula.FileName;
- this.odFormula.FileName = this.Filename;
- try
- {
- if (this.Compile())
- {
- this.fs.Write(this.Filename);
- this.Modified = false;
- if (isNewFile) //如果为最新文件,那么进行载入程序集
- {
- //载入新存储的DLL
- string directoryName = Path.GetDirectoryName(this.Filename);
- string dllName = string.Format("{0}\\{1}.dll", directoryName, Path.GetFileName(this.Filename).Replace('.', '_'));
- PluginManager.LoadDll(dllName);
- }
- return true;
- }
- }
- catch (Exception exception)
- {
- MessageBox.Show(exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- }
- return false;
- }
- private void SaveDataToNode()
- {
- this.SaveDataToNode(this.FormulaTree.SelectedNode);
- }
- private void SaveDataToNode(TreeNode tn)
- {
- if (tn != null)
- {
- if (tn.Tag is FormulaProgram)
- {
- FormulaProgram tag = tn.Tag as FormulaProgram;
- tag.Name = this.tbFormulaProgramName.Text;
- tag.FullName = this.tbProgramFullName.Text;
- tag.Code = this.tbFormulaProgramCode.Text;
- tag.Description = this.tbFormulaProgramDesc.Text;
- tag.IsMainView = this.cbIsMainView.Checked;
- tn.Text = tag.Name;
- }
- else if (tn.Tag is FormulaSpace)
- {
- FormulaSpace space = tn.Tag as FormulaSpace;
- space.Name = this.tbNamespaceName.Text;
- space.Description = this.tbNamespaceDesc.Text;
- space.Version = this.tbVersion.Text;
- space.GroupOnly = this.cbNotRealNameSpace.Checked;
- tn.Text = space.Name;
- }
- else if (tn.Tag is FormulaParam)
- {
- FormulaParam param = tn.Tag as FormulaParam;
- param.Name = this.tbParamName.Text;
- param.MinValue = this.tbMinValue.Text;
- param.MaxValue = this.tbMaxValue.Text;
- param.DefaultValue = this.tbDefaultValue.Text;
- if (this.cbParamType.Text == "")
- {
- this.cbParamType.SelectedIndex = 0;
- }
- param.ParamType = (FormulaParamType)this.cbParamType.SelectedIndex;
- param.Description = this.tbParamDesc.Text;
- tn.Text = param.Name;
- }
- }
- }
- private void tbFormulaProgramCode_KeyDown(object sender, KeyEventArgs e)
- {
- if ((e.KeyCode == Keys.J) && e.Control)
- {
- this.lbIntelliSence.Items.Clear();
- this.lbIntelliSence.Items.AddRange(FormulaBase.GetAllFormulas());
- int selectionStart = this.tbFormulaProgramCode.SelectionStart;
- int lineFromCharIndex = this.tbFormulaProgramCode.GetLineFromCharIndex(selectionStart);
- Point location = this.pnCode.Location;
- Point positionFromCharIndex = this.tbFormulaProgramCode.GetPositionFromCharIndex(selectionStart);
- positionFromCharIndex.Offset(location.X + 8, location.Y + 14);
- this.lbIntelliSence.Location = positionFromCharIndex;
- this.lbIntelliSence.Visible = true;
- this.lbIntelliSence.Focus();
- }
- }
- private void tbFormulaProgramCode_Leave(object sender, EventArgs e)
- {
- this.SaveDataToNode();
- }
- private string[] Trim(string[] ss)
- {
- for (int i = 0; i < ss.Length; i++)
- {
- ss[i] = ss[i].Trim();
- }
- return ss;
- }
- public static bool EditorVisible
- {
- get
- {
- return ((CurrentEditor != null) && CurrentEditor.Visible);
- }
- }
- public string Filename
- {
- get
- {
- return this.filename;
- }
- set
- {
- this.filename = value;
- this.Text = this.filename;
- }
- }
- private bool Modified
- {
- get
- {
- if (this.modified)
- {
- string messageOwner = string.Empty;
- string messageText = string.Empty;
- switch (SetLanguage.currentLanguage)
- {
- case ChartLanguageType.SimplifiedChinese:
- messageOwner = "内容已修改。是否进行保存?";
- messageText = "确认";
- break;
- case ChartLanguageType.TraditionalChinese:
- messageOwner = "內容已修改。是否進行保存?";
- messageText = "確認";
- break;
- case ChartLanguageType.English:
- messageOwner = "Text modified. Save modifications ?";
- messageText = "Confirmation";
- break;
- }
- switch (MessageBox.Show(messageOwner, messageText, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question))
- {
- case DialogResult.Yes:
- return !this.Save();
- case DialogResult.No:
- return false;
- }
- return true;
- }
- return false;
- }
- set
- {
- if (this.modified != value)
- {
- this.modified = value;
- if (this.modified)
- {
- if (!this.Text.EndsWith("*"))
- {
- this.Text = this.Text + "*";
- }
- }
- else
- {
- this.Text = this.Filename;
- }
- }
- }
- }
- }
- }
|