예제 #1
0
 // изменение/удаление строки с данными по объекту
 public void ent_ModifEntityRow(object sender, EventArgs evtArgs)
 {
     PropertyDataList.setEventParentENT();
     if (PropertyDataList.isEventParentENT())
     {
         if (!(sender is BlockBegin) && !(sender is BlockEnd))
         {
             Entity ent = sender as Entity;
             int    row = this.FindIndex(o => o.ent == ent);
             if (!(sender as DBObject).IsErased)
             {
                 if (row != -1)
                 {
                     this[row].Init();
                 }
                 else
                 {
                     this.Add(new PropertyData(ref ent, ent_ModifEntityRow));
                 }
             }
             else
             {
                 if (row != -1)
                 {
                     this.RemoveAt(row);
                 }
             }
             UpdateDataGridView();
             SelectRow(row, true);
         }
     }
     PropertyDataList.clearEventParentENT();
 }
        public void InitDataList()
        {
            Document  doc = Application.DocumentManager.MdiActiveDocument;
            Editor    ed  = doc.Editor;
            Hashtable ud  = doc.UserData;

            const string myKey = "PropertyDataList";

            data = ud[myKey] as PropertyDataList;
            if (data == null)
            {
                object obj = ud[myKey];
                if (obj == null)
                {
                    // PropertyDataList не найден - первый запуск
                    data = new PropertyDataList();
                    ud.Add(myKey, data);
                    data.dataGridView = dataGridView;
                    data.UpdateDataGridView();
                }
                else
                {
                    // Найден объект другого типа
                    ed.WriteMessage("Найден объект типа \"" + obj.GetType().ToString() + "\" вместо PropertyDataList.");
                }
            }
            else
            //if (data != null)
            {
                data.Update();
            }
        }
 private void dataGridView_SelectionChanged(object sender, EventArgs e)
 {
     PropertyDataList.setEventParentDGV();
     if (PropertyDataList.isEventParentDGV())
     {
         data.SelectEntity();
     }
     PropertyDataList.clearEventParentDGV();
 }
예제 #4
0
        // добавить строку с данными по объекту
        private void db_AddEntityRow(object sender, ObjectEventArgs e)
        {
            PropertyDataList.setEventParentENT();
            //if (PropertyDataList.isEventParentENT())
            {
                if ((e.DBObject is Entity) && !(e.DBObject is BlockBegin) && !(e.DBObject is BlockEnd) && (e.DBObject.OwnerId == db.CurrentSpaceId && !e.DBObject.IsErased && e.DBObject.ObjectId != ObjectId.Null))
                {
                    Entity ent = e.DBObject as Entity;
                    ent.Modified += new EventHandler(ent_ModifEntityRow);
                }
            }

/*
 *      if (this.Find(o => o.Handle == ent.Handle.Value.ToString()) == null)
 *      {
 *        this.Add(new PropertyData(ref ent, ent_ModifEntityRow));
 *        UpdateDataGridView();
 *        SelectRow(-1, true);
 *      }
 *    }
 *  }
 *  PropertyDataList.clearEventParentENT();*/
        }
예제 #5
0
 // обработка изменения набора выбора объектов
 private void doc_EntitySelectionChanged(object sender, System.EventArgs e)
 {
     PropertyDataList.setEventParentENT();
     if (PropertyDataList.isEventParentENT())
     {
         PromptSelectionResult res = ((Document)sender).Editor.SelectImplied();
         if (res != null && res.Value != null)
         {
             ObjectId[] ids = res.Value.GetObjectIds();
             if (ids != null)
             {
                 foreach (ObjectId objID in ids)
                 {
                     SelectEntityRow(objID.Handle.Value.ToString());
                 }
             }
         }
         else
         {
             dataGridView.ClearSelection();
         }
     }
     PropertyDataList.clearEventParentENT();
 }