void OnGUI()
    {
        if(_previewGUIComponent){
            PreviewGUIComponent();
            return;
        }

        if(!Application.isPlaying){
            EditorGUILayout.HelpBox("需要运行状态下才能编辑!", MessageType.Info);
            ResetEditor();
            return;
        }

        EditorGUI.BeginChangeCheck();
        Object obj = EditorGUILayout.ObjectField("拖动编辑对象至此",_rawAsset, typeof(Object), false);
        if(EditorGUI.EndChangeCheck()){
            ResetEditor();
            if(obj){
                _roleEditor = Editor.CreateEditor(obj, typeof(RoleEditor)) as RoleEditor;
                if(_roleEditor){
                    _roleEditor.RawAsset = _rawAsset = obj;
                }
            }
            return;
        }

        if(_roleEditor){
            _roleEditor.OnInspectorGUI();
        }
    }
Exemple #2
0
        public ActionResult RoleEditor(int?roleId)
        {
            var model = new RoleEditor();

            var allPermissions = AdapterDb.Database.GetAll <AdapterDb.Permission, Models.Config.Permission>(
                (dbPermissions) =>
            {
                var mappedPermissions = Mapper.Map <IEnumerable <AdapterDb.Permission>, IEnumerable <Models.Config.Permission> >(dbPermissions);
                foreach (var p in mappedPermissions)
                {
                    p.IsSelected = false;
                }
                return(mappedPermissions.OrderBy(p => p.Description));
            });

            if (roleId.HasValue)
            {
                model.Role = AdapterDb.Database.Find <AdapterDb.Roles, Role>(
                    roleId.Value,
                    (dbRole) =>
                {
                    var mappedRole = Mapper.Map <AdapterDb.Roles, Role>(dbRole);
                    foreach (var p in mappedRole.Permissions)
                    {
                        p.IsSelected = true;
                    }
                    return(mappedRole);
                });
                var selectedPermissionIds = model.Role.Permissions.Select(p => p.Id).ToArray();
                model.Role.Permissions.AddRange(allPermissions.Where(p => !selectedPermissionIds.Contains(p.Id)));
            }
            else
            {
                model.Role = new Role {
                    Permissions = new List <Models.Config.Permission>()
                };
                model.Role.Permissions.AddRange(allPermissions);
            }

            return(View(model));
        }
    void OnGUI()
    {
        if (_previewGUIComponent)
        {
            PreviewGUIComponent();
            return;
        }

        if (!Application.isPlaying)
        {
            EditorGUILayout.HelpBox("需要运行状态下才能编辑!", MessageType.Info);
            ResetEditor();
            return;
        }

        EditorGUI.BeginChangeCheck();
        Object obj = EditorGUILayout.ObjectField("拖动编辑对象至此", _rawAsset, typeof(Object), false);

        if (EditorGUI.EndChangeCheck())
        {
            ResetEditor();
            if (obj)
            {
                _roleEditor = Editor.CreateEditor(obj, typeof(RoleEditor)) as RoleEditor;
                if (_roleEditor)
                {
                    _roleEditor.RawAsset = _rawAsset = obj;
                }
            }
            return;
        }

        if (_roleEditor)
        {
            _roleEditor.OnInspectorGUI();
        }
    }
 private void ResetEditor()
 {
     _roleEditor = null;
     _rawAsset = null;
 }
Exemple #5
0
 /// <summary>
 /// Add button click event.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnAddRole_Activate(object sender, EventArgs e)
 {
     RoleEditor roleEditor = new RoleEditor(project);
     if (roleEditor.ShowDialog() == DialogResult.OK)
     {
         iCampaign.TACS.Data.RolesDs.RolesRow row =
             roleTable.NewRolesRow();
         row.AccessLevel = (int)roleEditor.Role.AccessLevel;
         row.RoleName = roleEditor.Role.Name;
         row.Project = project;
         roleTable.AddRolesRow(row);
         UpdateRoles();
         GetRoles();
     }
     roleEditor.Close();
 }
Exemple #6
0
        /// <summary>
        /// Open role in editor.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void roleView_DoubleClick(object sender, EventArgs e)
        {
            //  Get the list item and determine record to edit
            ListViewItem item = roleView.SelectedItems[0];
            long roleId = Convert.ToInt64(item.Name);
            iCampaign.TACS.Role role = new iCampaign.TACS.Role();
            int rowNum = -1;

            //  Find the record in the data table
            for (int x = 0; x < roleTable.Rows.Count; ++x)
            {
                iCampaign.TACS.Data.RolesDs.RolesRow row = roleTable[x];
                if (row.RoleId == roleId)
                {
                    role.Name = row.RoleName;
                    role.AccessLevel = (iCampaign.TACS.AccessLevelEnum)row.AccessLevel;
                    rowNum = x;
                }
            }

            //  Edit the role record
            RoleEditor roleEditor = new RoleEditor(project, role);
            if (roleEditor.ShowDialog() == DialogResult.OK)
            {
                iCampaign.TACS.Data.RolesDs.RolesRow row = roleTable[rowNum];
                row.RoleName = roleEditor.Role.Name;
                row.AccessLevel = (int)roleEditor.Role.AccessLevel;

                //  Save the changes and refresh the list view control
                UpdateRoles();
                GetRoles();
            }
            roleEditor.Close();
        }
 private void ResetEditor()
 {
     _roleEditor = null;
     _rawAsset   = null;
 }