コード例 #1
0
        /// <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();
        }
コード例 #2
0
    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);
    }
コード例 #3
0
        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);
        }
コード例 #4
0
        public void DeleteDimensionGroup(DimensionGroup dimensionGroup)
        {
            var command = new DeleteDimensionGroupCommand
            {
                DimensionGroup = dimensionGroup
            };

            processXml.Process(command.ToXml());
        }
コード例 #5
0
        public DimensionGroup ReadDimensiongroup(string dimensionGroupCode)
        {
            var command = new ReadDimensionGroupCommand
            {
                Office             = session.Office,
                DimensionGroupCode = dimensionGroupCode
            };
            var response = processXml.Process(command.ToXml());

            return(DimensionGroup.FromXml(response));
        }
コード例 #6
0
    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();
    }
コード例 #7
0
    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);
    }
コード例 #8
0
        public bool WriteDimensionGroup(DimensionGroup dimensionGroup)
        {
            var response = processXml.Process(dimensionGroup.ToXml());

            return(response.IsSuccess());
        }