/// <summary> /// Creates instance of module from HTML node /// </summary> /// <param name="node">Module HTML node</param> /// <returns>Instance of AModule with UserSetup</returns> public AModule GetModuleFromNode(HtmlNode node) { if (node.Attributes["name"] == null) { return(null); } AModule module = CModuleReader.Instance.GetModuleInstanceFromName(node.Attributes["name"].Value); // Set attributes foreach (HtmlAttribute attribute in node.Attributes) { try { Object[] args = new Object[] { attribute.Value }; module.setup.GetType().InvokeMember(attribute.Name, BindingFlags.Public | BindingFlags.Instance | BindingFlags.SetProperty, null, module.setup, args); } catch (Exception) { // Attribute not found, ignoring } } // And location RectangleConverter converter = new RectangleConverter(); module.setup.location = (Rectangle)converter.ConvertFromString(node.Attributes["location"].Value); return(module); }
/// <summary> /// Generates final HTML from project XML /// </summary> /// <param name="projectXML">The project XML</param> /// <param name="moduleList">List of modules generated from project code</param> /// <returns>HTML part of final output</returns> public String GetHTMLFromProjectXML(String projectXML, out List <AModule> moduleList) { // List of modules, to have module ID saved moduleList = new List <AModule>(); HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(projectXML); // And generate modules' html HtmlNodeCollection moduleNodeList = doc.DocumentNode.SelectNodes("//module"); if (moduleNodeList != null) { foreach (HtmlNode moduleNode in moduleNodeList) { // Change project modulenode for proper html output AModule module = this.GetModuleFromNode(moduleNode); moduleNode.Name = "div"; moduleNode.Attributes.RemoveAll(); moduleNode.InnerHtml = module.generateHTML(); moduleList.Add(module); } } return(doc.DocumentNode.OuterHtml); }
void OnServerModuleInitOk() { AModule a = BusinessModuleMgr.Instance.CreateBusinessModule <AModule>(); BModule b = BusinessModuleMgr.Instance.CreateBusinessModule <BModule>(); a.SendMessage(); b.Event("onModuleEventB").Invoke("sdasd"); }
protected void Application_Start() { AModule.ConfigureContainer(); AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); }
/// <summary> /// Gets instance of module (with usersetup) /// </summary> /// <param name="moduleType">Module type</param> /// <returns>Instance of module</returns> public AModule GetModuleInstanceFromType(Type moduleType) { String moduleName = (String)moduleType.GetField("name", BindingFlags.Static | BindingFlags.Public | BindingFlags.FlattenHierarchy).GetValue(null); AModuleUserSetup userSetup = (AModuleUserSetup)moduleToSetupMap[moduleName].InvokeMember(null, BindingFlags.Public | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null); Object[] args = new Object[] { userSetup }; AModule module = (AModule)moduleType.InvokeMember(null, BindingFlags.Public | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, args); return(module); }
public override UnityEngine.Color GetColour(double x, double y) { // Read L: float l = (float)LightModule.GetValue(x, y); // Read A: float a = (float)AModule.GetValue(x, y); // Read B: float b = (float)BModule.GetValue(x, y); // Convert to RGB: LabRgb.ToRgb(ref l, ref a, ref b); // Now RGB. return(new Color(l, a, b, 1f)); }
/// <summary> /// Takes whole HTML document and replaces modules tag with their preview templates /// </summary> /// <param name="inputHTML">Complete project HTML</param> /// <returns>Complete preview</returns> public String GetPreviewFromProjectXML(String inputHTML) { HtmlDocument doc = new HtmlDocument(); inputHTML = this.CleanProjectXml(inputHTML); doc.LoadHtml(inputHTML); // For checking/saving output to cache int hash = inputHTML.GetHashCode(); // Check cache if (this.projectXMLToPreviewCache.ContainsKey(hash)) { return((String)projectXMLToPreviewCache[hash]); } HtmlNodeCollection moduleNodeList = doc.DocumentNode.SelectNodes("//module"); if (moduleNodeList != null) { foreach (HtmlNode moduleNode in moduleNodeList) { AModule module = this.GetModuleFromNode(moduleNode); if (module != null) { // Because nodetag is not html, HtmlNode is not in dom structure (parent is null). // Therefore HtmlNode.ReplaceChild method cannot by applied asi in this.getProjectXMLFromPreview HtmlNode newNode = moduleNode.Clone(); moduleNode.Name = "div"; moduleNode.Attributes.RemoveAll(); moduleNode.Attributes.Add("class", "modulecontainer"); moduleNode.Attributes.Add("id", module.setup.id.ToString()); moduleNode.AppendChild(newNode); moduleNode.InnerHtml += module.generatePreview(); } } } // Clear cache and add output of this projectXMLToPreviewCache.Clear(); projectXMLToPreviewCache.Add(hash, doc.DocumentNode.OuterHtml); return(doc.DocumentNode.OuterHtml); }
/// <summary> /// Creates textboxes with labels /// TODO: textboxes are not copy-pastable, not even selectable /// </summary> /// <param name="element">Module element</param> /// <returns></returns> public bool SetContent(HtmlAgilityPack.HtmlNode element) { // Save element (<div class='modulecontainer'><module ....) this.activeElem = element; // Create module module = CXMLParser.Instance.GetModuleFromNode(element.FirstChild); // Clear Properties tableLayoutPanel1.Controls.Clear(); tableLayoutPanel1.RowStyles.Clear(); textboxList.Clear(); // Create row for each setup_ property in moduleSetup class int row = 0; foreach (HtmlAgilityPack.HtmlAttribute attribute in element.FirstChild.Attributes) { if (attribute.Name.Length > 6 && attribute.Name.StartsWith("setup_")) { tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30)); Label label = new Label(); label.Text = attribute.Name.Substring(6); tableLayoutPanel1.Controls.Add(label, 0, row); TextBox textbox = new TextBox(); textbox.Width = 200; textbox.Name = attribute.Name; textbox.Text = attribute.Value; textbox.KeyDown += new KeyEventHandler(textbox_KeyDown); textboxList.Add(textbox); tableLayoutPanel1.Controls.Add(textbox, 1, row++); } } this.Text = element.FirstChild.Attributes["name"].Value + " properties"; return(true); }
/// <summary> /// Changes language of project XML - removes all modules that are not in new language /// </summary> /// <param name="projectXML">The project XML</param> /// <param name="newLang">The new lang</param> /// <returns></returns> public String ChangeProjectLanguage(String projectXML, String newLang) { HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(projectXML); HtmlNodeCollection moduleNodeList = doc.DocumentNode.SelectNodes("//module"); if (moduleNodeList != null) { foreach (HtmlNode moduleNode in moduleNodeList) { AModule module = this.GetModuleFromNode(moduleNode); List <String> availableLangs = CModuleReader.GetAvailableLanguages(module.GetType()); if (!availableLangs.Contains(newLang) && availableLangs.Count != 0) { moduleNode.Remove(); } } } return(doc.DocumentNode.OuterHtml); }
/// <summary> /// Creates XML string from instance of module /// </summary> /// <param name="module">Module</param> /// <returns>XML Node of module</returns> public HtmlNode GetNodeFromModule(AModule module) { Type moduleType = module.GetType(); Type setupType = module.setup.GetType(); // Create root node String moduleName = (String)moduleType.GetField("name", BindingFlags.Static | BindingFlags.Public | BindingFlags.FlattenHierarchy).GetValue(null); HtmlDocument htmlDoc = new HtmlDocument(); HtmlNode node = htmlDoc.CreateElement("module"); // Save all setup_* members to attributes MemberInfo[] setupMembers = setupType.GetMember("setup_*", BindingFlags.Public | BindingFlags.Instance); foreach (MemberInfo setupMember in setupMembers) { HtmlAttribute attribute = htmlDoc.CreateAttribute(setupMember.Name); attribute.Value = (String)setupType.InvokeMember(setupMember.Name, BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty, null, module.setup, null); node.Attributes.Append(attribute); } // Save name(type) of module HtmlAttribute nameAttr = htmlDoc.CreateAttribute("name"); nameAttr.Value = moduleName; node.Attributes.Append(nameAttr); // Save position as attr Rectangle location = (Rectangle)setupType.GetField("location", BindingFlags.Public | BindingFlags.Instance | BindingFlags.FlattenHierarchy).GetValue(module.setup); HtmlAttribute locationAttr = htmlDoc.CreateAttribute("location"); RectangleConverter converter = new RectangleConverter(); locationAttr.Value = converter.ConvertToString(location); node.Attributes.Append(locationAttr); return(node); }
/// <summary> /// Removes module tags that are not loadable /// </summary> /// <param name="projectXML">The project XML</param> /// <returns></returns> public String CleanProjectXml(String projectXML) { HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(projectXML); HtmlNodeCollection moduleNodeList = doc.DocumentNode.SelectNodes("//module"); if (moduleNodeList != null) { foreach (HtmlNode moduleNode in moduleNodeList) { try { AModule module = this.GetModuleFromNode(moduleNode); } catch (Exception) { moduleNode.Remove(); } } } return(doc.DocumentNode.OuterHtml); }
protected virtual Node_Module parseModule(AModule node) { return new Node_Module( parseOne<TInteger,Node_Integer>(parseInteger, (TInteger)node.GetNiviokmajorversionnumber()), parseOne<TInteger,Node_Integer>(parseInteger, (TInteger)node.GetNiviokminorversionnumber()), parseMult0<AImport,Node_Import>(parseImport, node.GetImport()), parseOne<ASieve,Node_Sieve>(parseSieve, (ASieve)node.GetSieve()), getSource(node)); }
public override void CaseAModule(AModule node) { mOutputFile = new AssemblyFile(); base.CaseAModule(node); }
ArrayList New22() { ArrayList nodeList = new ArrayList(); ArrayList nodeArrayList6 = (ArrayList) Pop(); ArrayList nodeArrayList5 = (ArrayList) Pop(); ArrayList nodeArrayList4 = (ArrayList) Pop(); ArrayList nodeArrayList3 = (ArrayList) Pop(); ArrayList nodeArrayList2 = (ArrayList) Pop(); ArrayList nodeArrayList1 = (ArrayList) Pop(); TypedList listNode5 = new TypedList(); TInteger tintegerNode2 = (TInteger)nodeArrayList2[0]; TInteger tintegerNode3 = (TInteger)nodeArrayList3[0]; TypedList listNode4 = (TypedList)nodeArrayList5[0]; if ( listNode4 != null ) { listNode5.AddAll(listNode4); } PSieve psieveNode6 = (PSieve)nodeArrayList6[0]; AModule pmoduleNode1 = new AModule ( tintegerNode2, tintegerNode3, listNode5, psieveNode6 ); nodeList.Add(pmoduleNode1); return nodeList; }
ArrayList New21() { ArrayList nodeList = new ArrayList(); ArrayList nodeArrayList5 = (ArrayList) Pop(); ArrayList nodeArrayList4 = (ArrayList) Pop(); ArrayList nodeArrayList3 = (ArrayList) Pop(); ArrayList nodeArrayList2 = (ArrayList) Pop(); ArrayList nodeArrayList1 = (ArrayList) Pop(); TypedList listNode4 = new TypedList(); TInteger tintegerNode2 = (TInteger)nodeArrayList2[0]; TInteger tintegerNode3 = (TInteger)nodeArrayList3[0]; PSieve psieveNode5 = (PSieve)nodeArrayList5[0]; AModule pmoduleNode1 = new AModule ( tintegerNode2, tintegerNode3, listNode4, psieveNode5 ); nodeList.Add(pmoduleNode1); return nodeList; }