/// <summary> /// 设置属性 /// </summary> protected override void SetAttributes() { DimensionGroup control = this.ControlHost.Content as DimensionGroup; this.HtmlWriter.AddAttribute("dojoType", "Controls/DimensionPane"); if (!IsPreview && !string.IsNullOrEmpty(this.ControlHost.Name)) { this.HtmlWriter.AddAttribute("id", this.ControlHost.Name); this.HtmlWriter.AddAttribute("name", this.ControlHost.Name); } StringBuilder sbProps = new StringBuilder(); StringBuilder returnContent = new StringBuilder(); string props = control.BuildControlProps(this.ScreenDefinition, this.IsPreview, this.PermissionData, returnContent); if (!string.IsNullOrEmpty(props)) { sbProps.AppendFormat("{0},", props); } if (sbProps.ToString().Length > 0) { this.HtmlWriter.AddAttribute("data-dojo-props", sbProps.ToString().Substring(0, sbProps.ToString().Length - 1), false); } base.SetAttributes(); }
void RebuiltGroupData(DimensionGroup group) { //find all bricks in resources var separator = Path.DirectorySeparatorChar; string path = string.Concat("Assets", separator, "Resources", separator, "AgaQ"); var bricks = AssetDatabase.FindAssets("t:Prefab", new string[] { path }); //remove all data about bricks in group group.bricksInGroup.Clear(); //iterate over found items an collect data foreach (var brickGUID in bricks) { var brickPath = AssetDatabase.GUIDToAssetPath(brickGUID); GameObject brickObject = AssetDatabase.LoadAssetAtPath <GameObject>(brickPath); AgaQBrick brickScript = brickObject.GetComponent <AgaQBrick>(); brickPath = brickPath.Substring(17, brickPath.Length - 17 - 7); //remove trailing path /Assets/Resources/ and extension .prefab if (brickScript.dimensionGroup == group) { brickScript.name = string.Format(group.groupName, brickScript.dimensionParams); //add brick to group group.bricksInGroup.Add(new DimensionGroupItem(brickPath, brickScript.dimensionParams)); } } EditorUtility.SetDirty(target); }
private static DimensionGroup CreateDimensionGroupFrom(DimensionGroupCommand command) { var group = new DimensionGroup(command.Title); group.AddDimensionItem(command.Items.Select(p => new DimensionItem(p.Title, (UnitOfMeasurementType)p.UnitOfMeasurementType))); return(group); }
public void DeleteDimensionGroup(DimensionGroup dimensionGroup) { var command = new DeleteDimensionGroupCommand { DimensionGroup = dimensionGroup }; processXml.Process(command.ToXml()); }
public DimensionGroup ReadDimensiongroup(string dimensionGroupCode) { var command = new ReadDimensionGroupCommand { Office = session.Office, DimensionGroupCode = dimensionGroupCode }; var response = processXml.Process(command.ToXml()); return(DimensionGroup.FromXml(response)); }
public override void OnInspectorGUI() { serializedObject.Update(); DrawDefaultInspector(); DimensionGroup group = target as DimensionGroup; GUILayout.Space(10); if (GUILayout.Button("Rebuilt group data")) { RebuiltGroupData(group); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { serializedObject.Update(); EditorGUILayout.PropertyField(serializedObject.FindProperty("name")); serializedObject.ApplyModifiedProperties(); //Encapsualte button GUILayout.Space(10); AgaQBrick brick = target as AgaQBrick; if (!brick.gameObject.transform.Find("brick") && GUILayout.Button("Encapsulate")) { Encapsualte(brick); } //Group GUILayout.Space(10); brick.dimensionGroup = EditorGUILayout.ObjectField(brick.dimensionGroup, typeof(DimensionGroup), false) as DimensionGroup; DimensionGroup group = brick.dimensionGroup; if (group != null) { //group params GUILayout.Space(10); GUILayout.BeginVertical(); int index = 0; if (brick.dimensionParams == null || group.dimensions.Length != brick.dimensionParams.Length) { brick.dimensionParams = new string[group.dimensions.Length]; } foreach (var dimension in group.dimensions) { GUILayout.BeginHorizontal(); //label GUILayout.Label(dimension.translationLabel); //property field if (dimension.paramType == DimensionParamType.integerNumber) { int val = 0; int.TryParse(brick.dimensionParams[index], out val); val = EditorGUILayout.IntField(val); brick.dimensionParams[index] = val.ToString(); } else if (dimension.paramType == DimensionParamType.floatNumber) { float val = 0; float.TryParse(brick.dimensionParams[index], out val); val = EditorGUILayout.FloatField(val); brick.dimensionParams[index] = val.ToString(); } else if (dimension.paramType == DimensionParamType.text) { brick.dimensionParams[index] = EditorGUILayout.TextField(brick.dimensionParams[index]); } else if (dimension.paramType == DimensionParamType.boolean) { bool toggleValue = brick.dimensionParams[index] == "1"; bool toggleNewValue = EditorGUILayout.Toggle(toggleValue); brick.dimensionParams[index] = toggleValue ? "1" : "0"; } GUILayout.EndHorizontal(); index++; } GUILayout.EndVertical(); } GUILayout.Space(10); if (GUILayout.Button("Move colliders")) { var colliders = brick.gameObject.GetComponentsInChildren <Collider>(); foreach (var collider in colliders) { Collider newCollider = brick.gameObject.AddComponent(collider.GetType()) as Collider; EditorUtility.CopySerialized(collider, newCollider); if (newCollider is BoxCollider) { ((BoxCollider)newCollider).center += collider.gameObject.transform.localPosition; } DestroyImmediate(collider); } } EditorUtility.SetDirty(brick); }
public bool WriteDimensionGroup(DimensionGroup dimensionGroup) { var response = processXml.Process(dimensionGroup.ToXml()); return(response.IsSuccess()); }