Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
    void OnServerModuleInitOk()
    {
        AModule a = BusinessModuleMgr.Instance.CreateBusinessModule <AModule>();
        BModule b = BusinessModuleMgr.Instance.CreateBusinessModule <BModule>();

        a.SendMessage();
        b.Event("onModuleEventB").Invoke("sdasd");
    }
Beispiel #4
0
        protected void Application_Start()
        {
            AModule.ConfigureContainer();

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
Beispiel #5
0
        /// <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);
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        /// <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);
        }
Beispiel #8
0
        /// <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);
        }
Beispiel #9
0
        /// <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);
        }
Beispiel #10
0
        /// <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);
        }
Beispiel #11
0
        /// <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);
 }
Beispiel #14
0
 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;
 }
Beispiel #15
0
 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;
 }