//  Memorizza in _editingProperties tutte le proprietà editable
        private void InitializeEditingProperties()
        {
            //	Per ogni proprietà pubblica di EditingObject alla quale è stato associato l’attributo Editable:
            //    se la proprietà è write-only, sollevare un’eccezione;
            //    creare una nuova EditingProperty sulla proprietà e aggiungerla alla collezione _editingProperties;
            //    visualizzare nella finestra di output del debugger la descrizione completa dell'EditingProperty
            //      ad esempio: "Add EditingProperty Titolo  {Label = Titolo, Width = 100} OriginalValue = TitoloLibro_1"

            Type type = EditingObject.GetType();

            foreach (PropertyInfo propertyInfo in type.GetProperties())
            {
                EditableAttribute[] attributes = (EditableAttribute[])propertyInfo.GetCustomAttributes(typeof(EditableAttribute), false);
                if (attributes.Length == 0)
                {
                    continue;
                }
                if (!propertyInfo.CanRead)
                {
                    throw new ApplicationException("Attributo editable non applicabile");
                }
                EditingProperty editingProperty = new EditingProperty(propertyInfo, attributes[0], EditingObject);
                _editingProperties.Add(editingProperty);
                Console.WriteLine("Add EditingProperty " + editingProperty.ToString());
            }
        }
Esempio n. 2
0
    /// <summary>
    /// 클릭 위치에 Object 제거
    /// </summary>
    public void DestroyObject(GameObject target)
    {
        if (target.name == _gridAreaObjectName)
        {
            return;
        }

        EditingObject customObject = target.GetComponent <EditingObject>();
        Vector3       key          = Vector3.zero;

        foreach (var ob in _objectDic)
        {
            if (ob.Value == customObject)
            {
                key = ob.Key;
                break;
            }
        }

        if (key != Vector3.zero)
        {
            _objectDic.Remove(key);
        }
        DestroyImmediate(target);

        EditorUtility.SetDirty(this);
    }
 async Task QUpdateUserAsync()
 {
     try
     {
         await UIService.Execute(() =>
         {
             Commands ic = new Commands();
             HIOStaticValues.CheckingData(EditingObject);
             bool res = ic.UpdateUser(EditingObject.UserID, EditingObject.Url, EditingObject.AppID, EditingObject.Name, EditingObject.Username, EditingObject.Password, flagPass);
             if (res)
             {
                 Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                 {
                     IsSaving = true;
                     EditingObject.EndEdit();
                     if (_Form?.Owner == null) /*from extension*/
                     {
                         try
                         {
                             HIOStaticValues.tmain?.AccountManager?.LoadData();
                             HIOStaticValues.tmain?.AccountManager?.OnPropertyChanged(nameof(TAccountManagerViewModel.IsAllChecked));
                         }
                         catch { /*TODO: remove try catch*/ }
                     }
                     if (_Form.IsVisible)
                     {
                         _Form.Close();
                     }
                 }));
             }
         });
     }
     finally
     {
         IsSaving = false;
     }
 }
Esempio n. 4
0
        //  Memorizza in _editingProperties tutte le proprietà editable
        private void InitializeEditingProperties()
        {
            //	Per ogni proprietà pubblica di EditingObject alla quale è stato associato l’attributo Editable:
            //  se la proprietà è write-only, sollevare un’eccezione;
            //  creare una nuova EditingProperty sulla proprietà e aggiungerla alla collezione _editingProperties;
            //  visualizzare nella finestra di output del debugger la descrizione completa dell'EditingProperty
            //  ad esempio: "Add EditingProperty Titolo  {Label = Titolo, Width = 100} OriginalValue = TitoloLibro_1"

            Type t = EditingObject.GetType();

            foreach (PropertyInfo p in t.GetProperties())
            {
                if ((p.GetCustomAttributes(typeof(Model.EditableAttribute), false).Length > 0))
                {
                    if (p.CanWrite && !p.CanRead)
                    {
                        throw new ArgumentException("public editable property can not be write only");
                    }
                    EditingProperty ep = new EditingProperty(p, (Model.EditableAttribute)p.GetCustomAttributes(typeof(Model.EditableAttribute), false)[0], EditingObject);
                    _editingProperties.Add(ep);
                    Console.WriteLine(ep.ToString());
                }
            }
        }
Esempio n. 5
0
    /// <summary>
    /// 클릭 위치에 Object 생성
    /// </summary>
    public void InstantiateObject(Vector3 newPos, GameObject target)
    {
        if (_objectDic.ContainsKey(newPos) ||
            target.GetComponent <EditingObject>() == null)
        {
            return;
        }

        // 오브젝트 생성
        GameObject newObject = Instantiate(target, _objectContainer.transform);

        // 오브젝트 위치 지정
        float height = (newObject.GetComponent <Collider>()?.bounds.size.y ?? 0) * _cellSize * 0.5f;

        newObject.transform.position   = new Vector3(newPos.x, newPos.y + height, newPos.z);
        newObject.transform.localScale = new Vector3(_cellSize, _cellSize, _cellSize);

        // 오브젝트 캐싱
        EditingObject customObject = newObject.GetComponent <EditingObject>();

        _objectDic.Add(newObject.transform.position, customObject);

        EditorUtility.SetDirty(this);
    }
 private void _Form_Closed(object sender, EventArgs e)
 {
     EditingObject.CancelEdit();
     IsSaving = false;
     EditingObject.Password = "";
 }