private IECInstance EditECInstance(IECInstance ecInst) { ECInstanceDialog ecDlg = new ECInstanceDialog(ecInst); ecDlg.DialogTitle = string.Format(LocalizableStrings.EditingInstanceTitle, ecInst.ClassDefinition.DisplayLabel, SchemaUtilities.GetDisplayNameForECInstance(ecInst, false)); ecDlg.ShowDialog(); //User didn't save the new instance if (!ecDlg.SavePressed) { return(null); } //We were not able to save the new instance if (!ecDlg.SaveData()) { return(null); } return(ecDlg.GetECInstance()); }
private void OnCellMouseClick ( object sender, DataGridViewCellMouseEventArgs e ) { if (e.RowIndex == -1) { return; } if (e.ColumnIndex == 1) { this.BeginEdit(true); ComboBox comboBox = (ComboBox)this.EditingControl; if (null != comboBox) { comboBox.DroppedDown = true; } } if (e.ColumnIndex < AddButtonColumn) { return; } DgnUtilities dgnUtil = DgnUtilities.GetInstance(); IECClass ecClass = getECClassInformationForCurrentSelection(e.RowIndex); //this[ClassColumn, e.RowIndex].Tag as IECClass; IECRelationshipClass ecRelClass = getECRelationshipClassInformationForCurrentSelection(e.RowIndex); //this[ComboBoxColumn, e.RowIndex].Tag as IECRelationshipClass; DataGridViewComboBoxCell itemInstanceCell = this[s_WBSInstanceKey, e.RowIndex] as DataGridViewComboBoxCell; string strVal = this[s_WBSInstanceKey, e.RowIndex].Value as string; if (strVal == LocalizableStrings.None && (e.ColumnIndex != AddButtonColumn && e.ColumnIndex != BrowseButtonColumn)) { this[e.ColumnIndex, e.RowIndex].Selected = false; return; } //ADD/////////////////////////////////////////////////////////////////////////////////////////////////////////// if (e.ColumnIndex == AddButtonColumn) { // If we are connected to iModelHub we should acquire a a new tag for WBS ECInstanceDialog ecDlg = new ECInstanceDialog(ecClass.Name); ecDlg.ShowDialog(); //User didn't save the new instance if (!ecDlg.SavePressed) { return; } //We were not able to save the new instance if (!ecDlg.SaveData()) { return; } RefillItems(e.RowIndex, ecClass.Name); if (itemInstanceCell.Items.Count > 0) { itemInstanceCell.Value = SchemaUtilities.GetDisplayNameForECInstance(ecDlg.GetECInstance(), false); } } //EDIT////////////////////////////////////////////////////////////////////////////////////////////////////////// else if (e.ColumnIndex == EditButtonColumn) { IECInstance ecInst = this[e.ColumnIndex, e.RowIndex].Tag as IECInstance; if (ecInst == null) { MessageBox.Show(LocalizableStrings.NoEditDesc, LocalizableStrings.NoEditTitle, MessageBoxButtons.OK, MessageBoxIcon.Stop); } else { IECInstance ecInstance = EditECInstance(ecInst); if (ecInstance == null) { return; } RefillItems(e.RowIndex, ecClass.Name); if (itemInstanceCell.Items.Count > 0) { itemInstanceCell.Value = SchemaUtilities.GetDisplayNameForECInstance(ecInstance, false); } _bInstanceModified = true; } } //DELETE//////////////////////////////////////////////////////////////////////////////////////////////////////// else if (e.ColumnIndex == DeleteButtonColumn) { IECInstance ecInst = this[e.ColumnIndex, e.RowIndex].Tag as IECInstance; if (ecInst == null) { MessageBox.Show(LocalizableStrings.NoDeleteDescRefOut, LocalizableStrings.NoDeleteTitle, MessageBoxButtons.OK, MessageBoxIcon.Stop); } else { //.GetRelationshipInstances (ecClass.Name, _instance.ClassDefinition.Name, ecRelClass.Name, dgnUtil.GetDGNConnection()); ECInstanceList ecList = dgnUtil.GetRelatedInstances(ecInst, ecRelClass, _ClassDef, dgnUtil.GetDGNConnection()); if (ecList.Count > 0) { MessageBox.Show(string.Format(LocalizableStrings.NoDeleteDescAssocCompFound, itemInstanceCell.Value), LocalizableStrings.NoDeleteTitle, MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } if (MessageBox.Show(String.Format(LocalizableStrings.AreYouSureDelete, SchemaUtilities.GetDisplayNameForECInstance(ecInst, true)), String.Format(LocalizableStrings.DeleteInstanceTitle, ecInst.ClassDefinition.DisplayLabel), MessageBoxButtons.YesNo, MessageBoxIcon.Stop) == DialogResult.No) { return; } dgnUtil.DeleteECInstanceFromDgn(ecInst, dgnUtil.GetDGNConnection()); RefillItems(e.RowIndex, ecClass.Name); if (itemInstanceCell.Items.Count > 0) { itemInstanceCell.Value = itemInstanceCell.Items[0]; } else { itemInstanceCell.Value = null; } } _bInstanceModified = true; } //BROWSE//////////////////////////////////////////////////////////////////////////////////////////////////////// else if (e.ColumnIndex == BrowseButtonColumn) { IECInstance newEcinstance = ecClass.CreateInstance() as IECInstance; if (newEcinstance == null) { return; } object instance = dgnUtil.TagBrowser(newEcinstance, dgnUtil.AssoicatedItemsTagBrowserOverrides); if (instance == null || !(instance is IECInstance)) { return; } IECInstance selectedECInstance = instance as IECInstance; //CommonTools.BIMAdapter.BIMAdapter.ReleaseTag (newEcinstance); dgnUtil.CopyProperties(selectedECInstance, newEcinstance, false); //BusinessKeyUtility.Release (newEcinstance); BusinessKeyUtility.SetIsReserved(newEcinstance, true); dgnUtil.UpdateFunctionalGuidProperty(selectedECInstance, newEcinstance); dgnUtil.WriteECInstanceToDgn(newEcinstance, dgnUtil.GetDGNConnection()); //CommonTools.BIMAdapter //IECInstance inst = EditECInstance (ecInstance); //if(inst == null) // return; // inst = ecInstance; RefillItems(e.RowIndex, ecClass.Name); if (itemInstanceCell.Items.Count > 0) { itemInstanceCell.Value = SchemaUtilities.GetDisplayNameForECInstance(newEcinstance, false); } _bInstanceModified = true; } this[e.ColumnIndex, e.RowIndex].Selected = false; }