//============================================================ // <T>搜索按键按下。</T> // // @param sender 事件产生者 // @param e 数据对象 // @author TYFNG 20120406 //============================================================ private void cbxSearch_KeyUp(object sender, KeyEventArgs e) { string value = cbxSearch.Text.ToLower(); if (_filterValue == value) { return; } // 资源过滤 lvwResources.BeginUpdate(); lvwResources.Items.Clear(); foreach (FNamePair <FRcFrame> pair in RContent2dManager.FrameConsole.Frames) { FRcFrame frame = pair.Value; string format = frame.Format().ToLower(); SUiResourceTag tag = frame.LinkerNode as SUiResourceTag; if (tag != null) { if (-1 != format.IndexOf(value)) { lvwResources.Items.Add(tag.item); } } } lvwResources.EndUpdate(); _filterValue = value; }
//============================================================ // <T>打开资源信息。</T> //============================================================ public void Open() { // 初始化界面附加数据 foreach (FNamePair <FRcFrame> pair in RContent2dManager.FrameConsole.Frames) { FRcFrame frame = pair.Value; frame.LinkerNode = new SUiResourceTag(); } // 打开资源列表 lvwResources.BeginUpdate(); foreach (FNamePair <FRcFrame> pair in RContent2dManager.FrameConsole.Frames) { FRcFrame frame = pair.Value; // 创建列表 ListViewItem lviResource = new ListViewItem(frame.Format()); lviResource.ForeColor = Color.Black; lviResource.ImageKey = frame.TypeName; // 创建信息 SUiResourceTag tag = new SUiResourceTag(); tag.frameResource = frame; tag.item = lviResource; // 存储关联 frame.LinkerNode = tag; lviResource.Tag = tag; lvwResources.Items.Add(lviResource); } lvwResources.EndUpdate(); // 选择资源 SelectResource(null); }
//============================================================ // <T>根据名称打开界面资源。</T> // // @param name 名称 // @return 界面资源 //============================================================ public FRcFrame OpenFrame(string name) { FRcFrame frame = _frames.Find(name); frame.Open(); return(frame); }
//============================================================ // <T>加载资源。</T> // // @param resource 资源 //============================================================ public void LoadResource(FRcObject resource) { // 检查参数 _resource = resource as FRcFrame; if (_resource == null) { return; } // 加载属性 txtCode.Text = _resource.Code.ToString(); }
//============================================================ // <T>根据名称打开界面。</T> // // @param name 名称 // @return 界面 //============================================================ public FUiFrame OpenFrame(string name) { FUiFrame frame = _frames.Find(name); if (frame == null) { FRcFrame resource = RContent2dManager.FrameConsole.OpenFrame(name); frame = CreateComponent(resource.TypeName) as FUiFrame; frame.LoadResource(resource); _frames.Set(name, frame); } return(frame); }
//============================================================ // <T>加载文件夹信息</T> // // @param config 文件路径。 //============================================================ public void ExportAll() { // 加载文件 FByteFile file = new FByteFile(); file.WriteInt32(_frames.Count); foreach (INamePair <FRcFrame> pair in _frames) { FRcFrame frame = pair.Value; // 打开顶层容器 frame.Open(); // 序列化顶层容器 frame.Serialize(file); } // 保存文件 file.SaveFile(_exportFileName); }
//============================================================ // <T>资源双击处理。</T> // // @param sender 事件产生者 // @param e 事件对象 //============================================================ private void lvwResources_DoubleClick(object sender, System.EventArgs e) { if (lvwResources.SelectedItems.Count == 1) { ListViewItem item = lvwResources.SelectedItems[0]; if (item != null) { SUiResourceTag tag = item.Tag as SUiResourceTag; if (tag != null) { // 打开容器 FRcFrame frame = tag.frameResource; frame.Open(); // 弹出画面 QUiDesignForm frameForm = RDesign2dManager.FrameConsole.OpenDesignForm(frame.Name); frameForm.Show(); } } } }
//============================================================ // <T>加载文件夹信息,取得地址。</T> // <P>加载文件下文件信息,取得文件地址。</P> // // @param directory 文件路径。 //============================================================ public void LoadDirectory(string rootDirectory) { // 加载给定路径下面的文件夹. FStrings directorys = RDirectory.ListDirectories(rootDirectory); foreach (string directory in directorys) { // 检查文件夹 if (directory.Contains(".svn")) { continue; } // 取得文件夹类型名称。 string fileName = directory.Substring(directory.LastIndexOf("\\") + 1); int codeIndex = fileName.IndexOf('-'); string code = fileName.Substring(0, codeIndex); int nameBeginIndex = fileName.IndexOf('('); int nameEndIndex = fileName.LastIndexOf(')'); string name = fileName.Substring(nameBeginIndex + 1, nameEndIndex - nameBeginIndex - 1).Trim(); string typeName = RString.FirstUpper(name.Substring(name.LastIndexOf('.') + 1)); string label = fileName.Substring(codeIndex + 1, nameBeginIndex - codeIndex - 1).Trim(); // 文件夹的全路径地址。 FRcFrame frame = CreateComponent(typeName) as FRcFrame; if (frame != null) { // 设置属性 frame.Code = RInt.Parse(code); frame.Name = name; frame.Label = label; // 设置信息 frame.FileName = directory + @"\config.xml"; frame.Directory = directory; // 放入集合 _frames.Set(name, frame); } } }
//============================================================ // <T>加载资源内容。</T> //============================================================ public void LoadResource(FRcFrame frame) { txtCode.Text = frame.Code.ToString(); txtName.Text = frame.Name; txtLabel.Text = frame.Label; }