/// <summary> /// 查询某signal的所有KeyName /// </summary> /// <param name="Signal"></param> /// <param name="mycom"></param> /// <returns></returns> private List <CKeyName> SelectKeyNames(string Signal, MySqlConnection OpenedConn) { string sql = string.Format("select ID,KeyName,Odr from KeyTable where ExcelSignal='{0}' order by Odr", Signal); List <CKeyName> keyNames = null; //需要关闭 MySqlDataReader reader = new MySqlCommand(sql, OpenedConn).ExecuteReader(); try { if (reader.HasRows) { keyNames = new List <CKeyName>(); while (reader.Read()) { CKeyName one = new CKeyName(); one.Id = reader.GetInt32(0); one.KeyName = reader.GetString(1); one.Odr = reader.GetInt32(2); keyNames.Add(one); } } } catch (Exception e) { throw e; } finally { reader.Close(); } return(keyNames); }
public async Task <UIElement> GetUIAsync([EngineNS.Editor.Editor_RNameMacrossType(typeof(EngineNS.UISystem.UIElement))] RName name, string keyName = "__default", bool forceLoad = false) { if (name == null || name.IsExtension(CEngineDesc.UIExtension) == false) { return(null); } if (name.RNameType != RName.enRNameType.Game) { throw new InvalidOperationException("暂不支持非游戏UI"); } if (string.IsNullOrEmpty(keyName)) { keyName = "__default"; } var rc = CEngine.Instance.RenderContext; var key = new CKeyName(name, keyName); UIElement result; bool bFound = true; lock (UserUIs) { if (UserUIs.TryGetValue(key, out result) == false) { var nameSpace = name.RelativePath().Replace("/", "."); var typeName = nameSpace + name.PureName(); var resultType = EngineNS.CEngine.Instance.MacrossDataManager.MacrossScripAssembly.GetType(typeName); if (resultType == null) { return(null); } result = System.Activator.CreateInstance(resultType) as UIElement; bFound = false; UserUIs.Add(key, result); } } if (bFound) { if (forceLoad) { var atts = result.GetType().GetCustomAttributes(typeof(Editor_UIControlInitAttribute), false); var att = atts[0] as Editor_UIControlInitAttribute; var initType = att.InitializerType; var init = System.Activator.CreateInstance(initType) as UIElementInitializer; await result.Initialize(rc, init); } } else { var atts = result.GetType().GetCustomAttributes(typeof(Editor_UIControlInitAttribute), false); var att = atts[0] as Editor_UIControlInitAttribute; var initType = att.InitializerType; var init = System.Activator.CreateInstance(initType) as UIElementInitializer; await result.Initialize(rc, init); } return(result); }
public bool RemoveUIFromDic(RName name, string keyName) { lock (UserUIs) { var key = new CKeyName(name, keyName); return(UserUIs.Remove(key)); } }
public List <CKeyName> loadKeyNameForExcelAndGroup(string signal, int Group_id = -1) { List <CKeyName> result = null; string sql = string.Format("Select ID,KeyName,Group_ID={1} from KeyTable where ExcelSignal='{0}'", signal, Group_id); MySqlConnection conn = new MySqlConnection(this.connectMessage); MySqlDataReader reader = null; try { conn.Open(); MySqlCommand command = new MySqlCommand(sql, conn); reader = command.ExecuteReader(); if (reader.HasRows) { result = new List <CKeyName>(); } while (reader.Read()) { CKeyName one = new CKeyName(); one.Id = reader.GetInt32(0); one.KeyName = reader.GetString(1); if (!reader.IsDBNull(2)) { one.IsCheck = reader.GetBoolean(2); } result.Add(one); } } catch (Exception) { throw; } finally { reader.Close(); conn.Close(); conn.Dispose(); } return(result); }
public bool Equals(CKeyName tag) { return(RName.Equals(tag.RName) && KeyName == tag.KeyName); }