private void BuildBoard() { RegionContainer[] originalityContainers = new RegionContainer[5]; var coordinatesLo = new List <System.Drawing.Point> { new System.Drawing.Point(0, 50), new System.Drawing.Point(34, 50), new System.Drawing.Point(67, 50) }; var coordinatesUp = new List <System.Drawing.Point> { new System.Drawing.Point(0, 0), new System.Drawing.Point(50, 0) }; for (int i = 0; i < 2; i++) { originalityContainers[i] = new RegionContainer(coordinatesUp[i].X, coordinatesUp[i].Y, 50, 50, RegionContainer.OrientationType.VERTICAL); originalityContainers[i].SetAcceptElement(idea); BoardRegion region = new BoardRegion(new Color(0, 0, 0), 0.0f, "Nazwa"); region.PopupAttribute = "Nazwa"; originalityContainers[i].AddRegion(region); matrix.Board.AddContainer(originalityContainers[i]); } for (int i = 0; i < 3; i++) { originalityContainers[i] = new RegionContainer(coordinatesLo[i].X, coordinatesLo[i].Y, 33, 50, RegionContainer.OrientationType.VERTICAL); originalityContainers[i].SetAcceptElement(idea); BoardRegion region = new BoardRegion(new Color(0, 250, 0), 0.0f, "Nazwa"); region.PopupAttribute = "Nazwa"; originalityContainers[i].AddRegion(region); matrix.Board.AddContainer(originalityContainers[i]); } }
private void BuildBoard() { RegionContainer[] modulesContainers = new RegionContainer[3]; RegionContainer[] featuresContainers = new RegionContainer[3]; int[] pos1 = { 0, 33, 67 }; for (int i = 0; i < 3; i++) { modulesContainers[i] = new RegionContainer(0, pos1[i], 100, 8, RegionContainer.OrientationType.HORIZONTAL); modulesContainers[i].SetAcceptElement(module); BoardRegion region = new BoardRegion(new Color(0, 0, 255), 0.5f, "Nazwa"); region.Attributes.Add(new BoardRegion.Attribute("Numer modułu", (i + 1).ToString())); region.PopupAttribute = "Opis"; modulesContainers[i].AddRegion(region); avax.Board.AddContainer(modulesContainers[i]); } int[] pos2 = { 8, 41, 75 }; BoardRegion[] regions = new BoardRegion[3]; for (int i = 0; i < 3; i++) { featuresContainers[i] = new RegionContainer(0, pos2[i], 100, i == 1 ? 26 : 25, RegionContainer.OrientationType.VERTICAL); featuresContainers[i].SetAcceptElement(feature); for (int j = 0; j < 3; j++) { regions[j] = new BoardRegion(new Color(0, 0, 255), 0.1f * (j + 1), "Nazwa"); regions[j].PopupAttribute = "Opis"; regions[j].Attributes.Add(new BoardRegion.Attribute("Priorytet", ((EnumType)feature.GetAttribute("Priorytet").Type).Domain[j])); regions[j].CalcAttributes.Add(new BoardRegion.CalcAttribute("Moduł", new ElementQuery().Select("Nazwa").From("Moduł").Where("Numer modułu").Equals((i + 1).ToString()))); featuresContainers[i].AddRegion(regions[j]); } avax.Board.AddContainer(featuresContainers[i]); } }
private void BuildBoard() { RegionContainer anchorsContainer = new RegionContainer(0, 50, 100, 50, RegionContainer.OrientationType.HORIZONTAL); anchorsContainer.SetAcceptElement(anchor); BoardRegion[] regions = new BoardRegion[3]; Color red = new Color(255, 0, 0); for (int i = 0; i < 3; i++) { regions[i] = new BoardRegion(red, 0.1f * (i + 1), "Nazwa"); regions[i].PopupAttribute = "Opis"; regions[i].Attributes.Add(new BoardRegion.Attribute("Głębokość", ((EnumType)anchor.GetAttribute("Głębokość").Type).Domain[i])); anchorsContainer.AddRegion(regions[i]); } speedBoat.Board.AddContainer(anchorsContainer); RegionContainer propellersContainer = new RegionContainer(0, 0, 50, 50, RegionContainer.OrientationType.HORIZONTAL); propellersContainer.SetAcceptElement(propeller); Color blue = new Color(0, 0, 255); for (int i = 0; i < 3; i++) { regions[i] = new BoardRegion(blue, 0.1f * (i + 1), "Nazwa"); regions[i].PopupAttribute = "Opis"; regions[i].Attributes.Add(new BoardRegion.Attribute("Siła", ((EnumType)propeller.GetAttribute("Siła").Type).Domain[i])); propellersContainer.AddRegion(regions[i]); } speedBoat.Board.AddContainer(propellersContainer); }
public void SelectPrefab(RegionContainer regionContainer) { regionContainer.prefab.GetComponent <MeshCollider>().enabled = false; selectObject.SetObjectInfo(regionContainer); regionContainer.prefab.GetComponent <MeshCollider>().enabled = true; usingWalls = false; rotationSide = 0; }
protected override FrameworkElement ArrageCore(RegionContainer regions) { var components = new UIComponents(regions); this.LayoutControl.Arrange(components); return(this.LayoutControl.CastTo <FrameworkElement>()); }
/// <summary> /// 为多个控件进行布局,然后返回组合的控件。 /// </summary> /// <param name="regions"></param> /// <returns></returns> public FrameworkElement Arrange(RegionContainer regions) { if (regions == null) throw new ArgumentNullException("regions"); var result = this.ArrageCore(regions); return result; }
/// <summary> /// 为多个控件进行布局,然后返回组合的控件。 /// </summary> /// <param name="regions"></param> /// <returns></returns> public FrameworkElement Arrange(RegionContainer regions) { if (regions == null) { throw new ArgumentNullException("regions"); } var result = this.ArrageCore(regions); return(result); }
public void DeletePrefab(RegionContainer regionContainer) { dataBase.regions.Remove(regionContainer); if (selectObject.realObject.GetInstanceID() == regionContainer.prefab.GetInstanceID()) { selectObject.SetToNull(); } EditorUtility.SetDirty(dataBase); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); }
private void BuildBoard() { var featureContainer = new RegionContainer(4, 25, 92, 71, RegionContainer.OrientationType.HORIZONTAL); featureContainer.SetAcceptElement(feature); BoardRegion r1 = new BoardRegion(new Color(255, 255, 0), 0.1f, "Nazwa"); r1.PopupAttribute = "Opis"; featureContainer.AddRegion(r1); baf.Board.AddContainer(featureContainer); }
protected async override void OnNavigatedTo(NavigationEventArgs e) { if (e.NavigationMode == NavigationMode.Back) { return; } if (e.Parameter != null && e.Parameter is RegionContainer _con) { _regionContainer = _con; } App.AppViewModel.CurrentSubPageControl.SubPageTitle = _regionContainer.name + "分区"; await Refresh(); _isInit = true; }
private void BuildBoard() { RegionContainer[] containers = new RegionContainer[4]; for (int i = 0; i < 4; i++) { containers[i] = new RegionContainer(i * 22, i * 25, 100 - (i * 22), 25, RegionContainer.OrientationType.VERTICAL); containers[i].SetAcceptElement(_idea); BoardRegion region = new BoardRegion(new Color(0, 0, 0), 0.0f, "Name"); region.Attributes.Add(new BoardRegion.Attribute("Area", ((EnumType)_idea.GetAttribute("Area").Type).Domain[i])); region.PopupAttribute = "Name"; containers[i].AddRegion(region); _wholeProduct.Board.AddContainer(containers[i]); } }
private void BuildBoard() { RegionContainer[] originalityContainers = new RegionContainer[4]; var coordinates = new List <System.Drawing.Point> { new System.Drawing.Point(5, 13), new System.Drawing.Point(5, 63), new System.Drawing.Point(55, 13), new System.Drawing.Point(55, 63) }; for (int i = 0; i < 4; i++) { originalityContainers[i] = new RegionContainer(coordinates[i].X, coordinates[i].Y, 40, 35, RegionContainer.OrientationType.VERTICAL); BoardRegion region = new BoardRegion(new Color(0, 0, 0), 0.0f, "Name"); region.PopupAttribute = "Name"; originalityContainers[i].AddRegion(region); SWOT.Board.AddContainer(originalityContainers[i]); } originalityContainers[0].SetAcceptElement(strength); originalityContainers[2].SetAcceptElement(weakness); originalityContainers[1].SetAcceptElement(opportunity); originalityContainers[3].SetAcceptElement(threat); }
protected async override void OnNavigatedTo(NavigationEventArgs e) { App.AppViewModel.CurrentPagePanel.ScrollToBottom = ScrollViewerBottomHandle; App.AppViewModel.CurrentPagePanel.ScrollChanged = ScrollViewerChanged; RecommendVideoView.DesiredWidth = 220 + ((App.AppViewModel.BasicFontSize - 14) * 5); if (e.NavigationMode == NavigationMode.Back) { return; } if (e.Parameter != null && e.Parameter is RegionContainer _con) { if (_region != null && _con.tid == _region.tid) { return; } _region = _con; } TitleBlock.Text = _region.name; await Refresh(); _isInit = true; }
/// <summary> /// 为聚合对象生成组合控件。 /// </summary> /// <param name="aggt"> /// 需要生成聚合控件的聚合对象元数据 /// </param> /// <param name="mainView"> /// 已经生成好的聚合对象 aggt 中的“根”对象所对应的 LogicalView。 /// </param> /// <returns></returns> private ControlResult GenerateCompoundControl(AggtBlocks aggt, LogicalView mainView) { var regions = new RegionContainer(aggt); //如果不要查询面板,则需要生成主区域 var viewInfo = aggt.MainBlock.ViewMeta; regions.Add(TraditionalRegions.Main, AutoUIHelper.CreateBusyControlResult(mainView)); if (mainView.CommandsContainer != null) { regions.Add(TraditionalRegions.CommandsContainer, new ControlResult(mainView.CommandsContainer, mainView)); } //Surrounders this.SurroundersToRegions(aggt.Surrounders, mainView, regions); //Children this.ChildrenToRegions(aggt.Children, mainView, regions); //Layout var layout = CreateLayoutMethod(aggt); var result = layout.Arrange(regions); //在 View 中保存最终布局完成的控件。 mainView.LayoutControl = result; //返回布局后的整个控件。 var ui = new ControlResult(result, mainView, aggt); if (this.GesturesLocation == GesturesLocation.Layout) { this.CreateCommandBindings(ui.Control, ui.MainView); } return(ui); }
private void Reset() { RankDetailList.Clear(); RegionCollection.Clear(); foreach (var item in App.BiliViewModel.RegionCollection) { if (item.is_bangumi == 0) { RegionCollection.Add(item); } } var total = new RegionContainer() { tid = 0, reid = 0, name = "全区动态", logo = "ms-appx:///Assets/logo_small.png", type = 1 }; var chinaAnime = new RegionContainer() { tid = 168, reid = 0, name = "国创相关", logo = "http://i0.hdslb.com/bfs/archive/1586ec926eac1ea876cb74d32df51394d8e72341.png", type = 1 }; RegionCollection.Insert(0, total); RegionCollection.Insert(1, chinaAnime); foreach (var item in RegionCollection) { RankDetailList.Add(new Tuple <int, List <WebVideo> >(item.tid, new List <WebVideo>())); } RegionListView.SelectedIndex = 0; }
private void BuildBoard() { RegionContainer[] originalityContainers = new RegionContainer[4]; var coordinates = new List <System.Drawing.Point> { new System.Drawing.Point(5, 50), new System.Drawing.Point(50, 5), new System.Drawing.Point(50, 50) }; for (int i = 0; i < 3; i++) { originalityContainers[i] = new RegionContainer(coordinates[i].X, coordinates[i].Y, 45, 45, RegionContainer.OrientationType.VERTICAL); originalityContainers[i].SetAcceptElement(idea); BoardRegion region = new BoardRegion(new Color(0, 0, 0), 0.0f, "Nazwa"); region.PopupAttribute = "Nazwa"; originalityContainers[i].AddRegion(region); matrix.Board.AddContainer(originalityContainers[i]); } // originalityContainers[3] = new RegionContainer(coordinates[0].X+10, coordinates[0].Y+10, 25, 25, RegionContainer.OrientationType.VERTICAL); // originalityContainers[3].SetAcceptElement(idea); // BoardRegion region2 = new BoardRegion(new Color(0, 250, 0), 1.0f, "Nazwa"); // region2.PopupAttribute = "Nazwa"; // originalityContainers[3].AddRegion(region2); // matrix.Board.AddContainer(originalityContainers[3]); }
internal UIComponents(RegionContainer regions) { this._regions = regions; }
/// <summary> /// 为多个控件进行布局,然后返回组合的控件。 /// </summary> /// <param name="regions"></param> /// <returns></returns> protected abstract FrameworkElement ArrageCore(RegionContainer regions);
/// <summary> /// 为聚合对象生成组合控件。 /// </summary> /// <param name="aggt"> /// 需要生成聚合控件的聚合对象元数据 /// </param> /// <param name="mainView"> /// 已经生成好的聚合对象 aggt 中的“根”对象所对应的 LogicalView。 /// </param> /// <returns></returns> private ControlResult GenerateCompoundControl(AggtBlocks aggt, LogicalView mainView) { var regions = new RegionContainer(aggt); //如果不要查询面板,则需要生成主区域 var viewInfo = aggt.MainBlock.ViewMeta; regions.Add(TraditionalRegions.Main, AutoUIHelper.CreateBusyControlResult(mainView)); if (mainView.CommandsContainer != null) { regions.Add(TraditionalRegions.CommandsContainer, new ControlResult(mainView.CommandsContainer, mainView)); } //Surrounders this.SurroundersToRegions(aggt.Surrounders, mainView, regions); //Children this.ChildrenToRegions(aggt.Children, mainView, regions); //Layout var layout = CreateLayoutMethod(aggt); var result = layout.Arrange(regions); //在 View 中保存最终布局完成的控件。 mainView.LayoutControl = result; //返回布局后的整个控件。 var ui = new ControlResult(result, mainView, aggt); if (this.GesturesLocation == GesturesLocation.Layout) { this.CreateCommandBindings(ui.Control, ui.MainView); } return ui; }
/// <summary> /// 把环绕块生成控件并加入到 Regions 中。 /// </summary> /// <param name="surrounders"></param> /// <param name="mainView"></param> /// <param name="regions"></param> private void SurroundersToRegions(IList<AggtBlocks> surrounders, LogicalView mainView, RegionContainer regions) { foreach (var surrounder in surrounders) { var surBlock = surrounder.MainBlock as SurrounderBlock; var surrounderType = surBlock.SurrounderType; var surrounderView = this.CreateSurrounderView(mainView, surBlock); //为 Surrouder 生成它的聚合控件 var surrounderControl = this.GenerateCompoundControl(surrounder, surrounderView); regions.Add(surrounderType, surrounderControl); } }
public bool AcceptElement(int elementId, int containerId, int regionId) { ElementInstance element = GetElement(elementId); if (element == null) { return(false); } RegionContainer container = Definition.Board.GetContainer(containerId); if (container == null) { return(false); } if (container.AcceptElementId != element.Definition.Id) { return(false); } BoardRegion region = container.GetRegion(regionId); if (region == null) { return(false); } if (element.IsAccepted == true && (element.Region.Container.Id != containerId || element.Region.Id != regionId)) { GetAcceptedElements(element.Region.Container.Id, element.Region.Id).ForEach(el => { if (el.Order > element.Order) { el.Order--; } }); } var elements = GetAcceptedElements(containerId, regionId); if (element.IsAccepted == true && element.Region.Container.Id == containerId && element.Region.Id == regionId) { elements.ForEach(el => { if (el.Order > element.Order) { el.Order--; } }); } foreach (var a in region.Attributes) { element[a.Name] = a.Value; } foreach (var calcAttr in region.CalcAttributes) { element[calcAttr.Name] = ExecuteQuery(calcAttr.Query); } element.IsAccepted = true; element.Region = region; element.Order = elements.Count; Definition.OnAcceptElement(this, element); return(true); }
/// <summary> /// 把孩子块生成控件并加入到 Regions 中。 /// </summary> /// <param name="children"></param> /// <param name="mainView"></param> /// <param name="regions"></param> private void ChildrenToRegions(IList <AggtBlocks> children, LogicalView mainView, RegionContainer regions) { foreach (var child in children) { var childBlock = child.MainBlock as ChildBlock; if (this.NeedPermission && !PermissionMgr.CanShowBlock(this.PermissionModule, childBlock)) { continue; } //生成 childView LogicalView childView = this._viewFactory.CreateView(childBlock); childView.ChildBlock = childBlock; //子视图默认不显示,当选中某个父对象时,再重新计算其可见性。 childView.IsVisible = false; childView.Parent = mainView; //ChildView Commands Container this.CreateCommandsUI(childView, childBlock); //Child Control var childControl = this.GenerateCompoundControl(child, childView); //Region regions.AddChildren(childBlock.Label, childControl); this.OnChildUICreated(childControl); } }
/// <summary> /// 把环绕块生成控件并加入到 Regions 中。 /// </summary> /// <param name="surrounders"></param> /// <param name="mainView"></param> /// <param name="regions"></param> private void SurroundersToRegions(IList <AggtBlocks> surrounders, LogicalView mainView, RegionContainer regions) { foreach (var surrounder in surrounders) { var surBlock = surrounder.MainBlock as SurrounderBlock; var surrounderType = surBlock.SurrounderType; var surrounderView = this.CreateSurrounderView(mainView, surBlock); //为 Surrouder 生成它的聚合控件 var surrounderControl = this.GenerateCompoundControl(surrounder, surrounderView); regions.Add(surrounderType, surrounderControl); } }
public void Reload(RegionContainer regionContainer) { regionContainer.Reload(this); }
public void Edit(RegionContainer regionContainer) { dataBase.ShowEditWindow(this, regionContainer); }
/// <summary> /// 把孩子块生成控件并加入到 Regions 中。 /// </summary> /// <param name="children"></param> /// <param name="mainView"></param> /// <param name="regions"></param> private void ChildrenToRegions(IList<AggtBlocks> children, LogicalView mainView, RegionContainer regions) { foreach (var child in children) { var childBlock = child.MainBlock as ChildBlock; if (this.NeedPermission && !PermissionMgr.CanShowBlock(this.PermissionModule, childBlock)) continue; //生成 childView LogicalView childView = this._viewFactory.CreateView(childBlock); childView.ChildBlock = childBlock; //子视图默认不显示,当选中某个父对象时,再重新计算其可见性。 childView.IsVisible = false; childView.Parent = mainView; //ChildView Commands Container this.CreateCommandsUI(childView, childBlock); //Child Control var childControl = this.GenerateCompoundControl(child, childView); //Region regions.AddChildren(childBlock.Label, childControl); this.OnChildUICreated(childControl); } }
/// <summary> /// Builds a BlockContainer control, populating it with the appropriate controls /// based on the supplied XML TDF data. /// </summary> /// <returns>The BlockContainer that was created.</returns> protected BlockContainer BuildStruct(XmlNode node, bool mainBlock) { int depth = 0; // Setup the block container. BlockContainer container = new BlockContainer(); container.LinkedUndoManager = this.undoManager; containers.Push(container); XmlNodeList valueNodes = node.SelectNodes("*"); foreach (XmlNode valueNode in valueNodes) { if (valueNode.Name.ToLower() == "group") { // Make sure that this node is a direct child of the Main Struct. // That's the only place that groups are allowed to exist. bool allowGroup = false; if (valueNode.ParentNode.Name.ToLower() == "struct") { if (valueNode.ParentNode.Attributes["name"] != null) { if (valueNode.ParentNode.Attributes["name"].InnerText == mainStructName) { allowGroup = true; } } } if (!allowGroup) { throw new Exception("Unable to create group: Not a direct member of the main struct."); } buildDepth.Push(0); CreateTab(valueNode.Attributes["caption"].InnerText); BlockContainer newContainer = BuildStruct(valueNode, mainBlock); newContainer.DatabindChildrenToBlock(this.tagData); containers.Peek().AddFieldContainer(newContainer); containers.Pop(); buildDepth.Pop(); } else if (valueNode.Name.ToLower() == "section") { // NOTE: This code is duplicated from the block creation. // A seperate method for building sections would really be ideal, but I don't feel // like going into that right now. IFieldContainer fieldContainer; if (((int)buildDepth.Peek()) < 1) { fieldContainer = new SectionContainer(); (fieldContainer as SectionContainer).Title = valueNode.Attributes["caption"].InnerText; if (valueNode.Attributes["description"] != null) { (fieldContainer as SectionContainer).Description = valueNode.Attributes["description"].InnerText; } } else { fieldContainer = new RegionContainer(); (fieldContainer as RegionContainer).Caption = valueNode.Attributes["caption"].InnerText; } depth = (int)(buildDepth.Pop()); buildDepth.Push(depth + 1); BlockContainer newContainer = BuildStruct(valueNode, mainBlock); newContainer.DatabindChildrenToBlock(this.tagData); fieldContainer.AddFieldContainer(newContainer); containers.Peek().AddFieldContainer(fieldContainer); } else if (valueNode.Name.ToLower() == "value") { string valueName = valueNode.Attributes["name"].InnerText; Field fieldControl = new Field(); string valueText = valueNode.Attributes["type"].InnerText; string fullPropertyName = (mainBlock ? className + "Values." : "") + Types.GlobalMethods.MakePublicName(valueName); if (standardControls.ContainsKey(valueText)) { //TODO: Look into adding the types into the hashtable, rather than using reflection. string controlTypeName = "TagEditor.Controls." + valueText; Type fieldControlType = Type.GetType(controlTypeName); Assembly targetAssembly = Assembly.GetAssembly(fieldControlType); fieldControl = (targetAssembly.CreateInstance(controlTypeName) as Field); fieldControl.Configure(valueNode); if (valueText != "Block") { containers.Peek().AddField(fieldControl); } else { fieldControl = new Block(); fieldControl.Configure(valueNode); (fieldControl as Block).Caption = "Select Block:"; // At this point, we need to recurse and create the sub control for this block. // Step 1: Locate the proper struct in the document. string structName = valueNode.Attributes["struct"].InnerText; XmlNode structNode = tagDefinition.SelectSingleNode("//struct[@name='" + structName + "']"); IFieldContainer fieldContainer; if (((int)buildDepth.Peek()) < 1) { fieldContainer = new SectionContainer(); (fieldContainer as SectionContainer).Title = Utility.CapitalizeWords(fieldControl.Caption); XmlNode descriptionNode = structNode.SelectSingleNode("description"); if (descriptionNode != null) { (fieldContainer as SectionContainer).Description = descriptionNode.InnerText; } } else { fieldContainer = new RegionContainer(); (fieldContainer as RegionContainer).Caption = Utility.CapitalizeWords(fieldControl.Caption); } depth = (int)(buildDepth.Pop()); buildDepth.Push(depth + 1); // Step 2: Build the BlockContainer and dock it. BlockContainer subBlockContainer = BuildStruct(structNode, false); fieldContainer.AddField(fieldControl); fieldContainer.AddFieldContainer(subBlockContainer); containers.Peek().AddFieldContainer(fieldContainer); subBlockContainer.Refresh(); // Step 3: Wire up the BlockChanged event for databinding. (fieldControl as Block).BlockChanged += new Block.BlockChangedHandler(subBlockContainer.DatabindChildrenToBlock); (fieldControl as Block).Initialize(); } } else { continue; } fieldControl.BoundPropertyName = fullPropertyName; } } depth = (int)(buildDepth.Pop()); buildDepth.Push(depth - 1); containers.Pop(); return(container); }