Пример #1
0
        public void CreateDefaultView(string view_name)
        {
            JArray  ja_views = ElementJson ["Views"] as JArray;
            JObject jo_view  = new JObject();

            jo_view.Add("Name", view_name);
            jo_view.Add("Type", "");
            jo_view.Add("Desc", "");

            JObject jo_view_members = new JObject();
            JArray  ja_members      = ElementJson ["Member"] as JArray;

            for (int i = 0; i < ja_members.Count; i++)
            {
                JObject jo_member     = ja_members [i] as JObject;
                string  member_name   = jo_member ["Name"].Value <string> ();
                string  member_rxtype = jo_member ["RxType"].Value <string> ();
                RxType  member_RxType = (RxType)Enum.Parse(typeof(RxType), member_rxtype);

                JObject jo_view_member_value = new JObject();
                jo_view_member_value.Add("Bind", CreateDefaultBindJObject(member_RxType));
                jo_view_members.Add(member_name, jo_view_member_value);
            }

            jo_view.Add("Members", jo_view_members);
            ja_views.Add(jo_view);
        }
Пример #2
0
        public string GetVMPropertyRefCode(JObject jo)
        {
            StringBuilder sb = new StringBuilder();

            string ws_name    = jo ["Workspace"].Value <string> ();
            JArray ja_members = jo ["Member"] as JArray;

            for (int i = 0; i < ja_members.Count; i++)
            {
                JObject jo_member = ja_members [i] as JObject;
                RxType  rt        = (RxType)Enum.Parse(typeof(RxType), jo_member ["RxType"].Value <string> ());
                if (rt == RxType.Property)
                {
                    string  member_name = jo_member ["Name"].Value <string> ();
                    string  member_type = jo_member ["Type"].Value <string> ();
                    DocType?dt          = PGFrameTools.GetDocTypeByWorkspaceAndType(ws_name, member_type);
                    if (dt.HasValue && dt.Value == DocType.Element)
                    {
                        string element_name = member_type.ConvertToElementName();
                        sb.AppendFormat(@"

			if (_{0}View != null) {{
				if (_{0}View.GetViewModel () == null) {{
					_{0}View.CreateViewModel ();
				}}
				ViewModelBase _{0}ViewModel = _{0}View.GetViewModel ();
				if (_{0}ViewModel != null) {{
					VM.{0} = _{0}View.GetViewModel () as {1}ViewModel;
				}}
			}}"            , member_name, element_name);
                    }
                }
            }
            return(sb.ToString());
        }
        public string GetVMPropertyViewCode(JObject jo)
        {
            StringBuilder sb = new StringBuilder();

            string ws_name    = jo ["Workspace"].Value <string> ();
            JArray ja_members = jo ["Member"] as JArray;

            for (int i = 0; i < ja_members.Count; i++)
            {
                JObject jo_member = ja_members [i] as JObject;
                RxType  rt        = (RxType)Enum.Parse(typeof(RxType), jo_member ["RxType"].Value <string> ());
                if (rt == RxType.Property)
                {
                    string  member_name = jo_member ["Name"].Value <string> ();
                    string  member_type = jo_member ["Type"].Value <string> ();
                    DocType?dt          = PGFrameTools.GetDocTypeByWorkspaceAndType(ws_name, member_type);
                    if (dt.HasValue && dt.Value == DocType.Element)
                    {
                        string[] element_splited_type = PGFrameTools.SplitWorkspaceAndTypeName(string.Empty, member_type);
                        string   element_ws           = element_splited_type [0];
                        string   element_type         = element_splited_type [1];
                        string   element_name         = element_type.ConvertToElementName();
                        sb.AppendFormat(@"
		{2}I{1}View {0}View {{ get; set; }}"        , member_name, element_name, string.IsNullOrEmpty(element_ws) ? "" : element_ws + ".");
                    }
                }
            }

            return(sb.ToString());
        }
Пример #4
0
        public void CreateDefaultMember(RxType rt, string member_name)
        {
            JArray ja_views = ElementJson ["Views"] as JArray;

            for (int i = 0; i < ja_views.Count; i++)
            {
                JObject jo_view         = ja_views [i] as JObject;
                JObject jo_view_members = jo_view ["Members"] as JObject;
                JObject jo_member       = new JObject();
                jo_member.Add("Bind", CreateDefaultBindJObject(rt));
                jo_view_members.Add(member_name, jo_member);
            }
        }
Пример #5
0
        public JObject CreateDefaultBindJObject(RxType rt)
        {
            JObject jo = new JObject();

            switch (rt)
            {
            case RxType.Property:
                jo.Add("Changed", false);
                jo.Add("PairChanged", false);
                break;

            case RxType.Collection:
                jo.Add("Add", false);
                jo.Add("CountChanged", false);
                jo.Add("Move", false);
                jo.Add("Remove", false);
                jo.Add("Replace", false);
                jo.Add("Reset", false);
                break;

            case RxType.Dictionary:
                jo.Add("Add", false);
                jo.Add("CountChanged", false);
                jo.Add("Remove", false);
                jo.Add("Replace", false);
                jo.Add("Reset", false);
                break;

            case RxType.Command:
                jo.Add("Executed", false);
                break;

            case RxType.FSM:
                jo.Add("Changed", false);
                jo.Add("PairChanged", false);
                break;

            default:
                break;
            }
            return(jo);
        }
Пример #6
0
        void GenericElementMenuOnAddCallback(object obj)
        {
            ElementViewTools evtools = new ElementViewTools(SelectedJsonElement.jo);

            JArray ja_members = SelectedJsonElement.jo ["Member"] as JArray;
//			JArray ja_views = SelectedJsonElement.jo ["Views"] as JArray;

            RxType selected = (RxType)obj;

            string default_name             = string.Format("Default{0}", selected.ToString());
            string default_name_with_suffix = default_name;
            int    suffix_number            = 0;

            while (ja_members.FirstOrDefault(_ => (_ as JObject) ["Name"].Value <string> () == default_name_with_suffix) != null)
            {
                suffix_number++;
                default_name_with_suffix = default_name + suffix_number;
            }

            JObject jo_member = new JObject();

            jo_member.Add("RxType", selected.ToString());
            jo_member.Add("Name", default_name_with_suffix);

            if (selected != RxType.Command)
            {
                if (selected == RxType.Dictionary)
                {
                    jo_member.Add("Type", "object,object");
                }
                else
                {
                    jo_member.Add("Type", "object");
                }
            }

            jo_member.Add("Desc", "");
            ja_members.Add(jo_member);

            evtools.CreateDefaultMember(selected, default_name_with_suffix);
        }
Пример #7
0
        public static string[] GenerateCode(JObject jo_member, JObject jo_view)
        {
            string[] result  = new string[2];
            RxType   rx_type = (RxType)Enum.Parse(typeof(RxType), jo_member ["RxType"].Value <string> ());

            switch (rx_type)
            {
            case RxType.Property:
                result [0] = GenBindCodeReactiveMemberProperty(jo_member, jo_view);
                result [1] = GenFuncCodeReactiveMemberProperty(jo_member, jo_view);
                break;

            case RxType.Collection:
                result [0] = GenBindCodeReactiveMemberCollection(jo_member, jo_view);
                result [1] = GenFuncCodeReactiveMemberCollection(jo_member, jo_view);
                break;

            case RxType.Dictionary:
                result [0] = GenBindCodeReactiveMemberDictionary(jo_member, jo_view);
                result [1] = GenFuncCodeReactiveMemberDictionary(jo_member, jo_view);
                break;

            case RxType.Command:
                result [0] = GenBindCodeReactiveMemberCommand(jo_member, jo_view);
                result [1] = GenFuncCodeReactiveMemberCommand(jo_member, jo_view);
                break;

            case RxType.FSM:
                result [0] = GenBindCodeFSMMemberProperty(jo_member, jo_view);
                result [1] = GenFuncCodeFSMMemberProperty(jo_member, jo_view);
                break;

            default:
                break;
            }

            return(result);
        }
Пример #8
0
 public void SetRxCallback(RxType theFunc)
 {
     Debug("Set callback");
 }
Пример #9
0
 // set callback
 public void SetRxCallback(RxType theFunc)
 {
     rxFunc = theFunc;
 }