private void DocumentoSimplesOrderManager1_RemoveInvoked(object sender, EventArgs e) { var result = MessageBox.Show("Tem a certeza que pretende apagar o(s) objeto(s) digital(ais) selecionado(s)?", "Apagar objeto(s) digital(ais)", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.No) { return; } // TODO: avisar se existem ods associadados a subdocumentos var odsSimples = new List <ObjDigSimples>(); if (mCurrentODComp != null) { odsSimples = mCurrentODComp.objSimples; } else { odsSimples = mCurrentODSimples; } DocumentoSimplesOrderManager1.getSelectedItems().ForEach(item => { var selectedODSimples = item.Tag as ObjDigSimples; var odSimples = odsSimples.SingleOrDefault(od => od.pid.Equals(selectedODSimples.pid)); if (odSimples != null) // se OD está com o estado "added" basta removê-lo da lista; caso contrário é necessário atualizá-lo { odSimples.state = State.deleted; } var nRow = FedoraHelper.GetRelatedNivelDoc(selectedODSimples.pid); if (nRow != null) { DocumentoSimplesOrderManager1.RefreshItem(item, "", null, ""); var docSimples = new SubDocumento(); docSimples.nRow = nRow; docSimples.id = nRow.ID; docSimples.guiorder = item.Index + 1; docSimples.designacao = nRow.GetNivelDesignadoRows().Single().Designacao; item.Tag = docSimples; } item.Remove(); }); UpdateODCompostoStatePublicado(); UpdateGrpODComposto(); if (DocumentoSimplesOrderManager1.getSelectedItems().Count == 1 && DocumentoSimplesOrderManager1.getSelectedItems()[0].Tag.GetType() == typeof(SubDocumento)) { DocumentoSimplesOrderManager1.SetEditMixedMode(); } }
private void DocumentoSimplesOrderManager1_EditInvoked(object sender, EventArgs e) { if (DocumentoSimplesOrderManager1.getSelectedItems().Count != 1) { return; } var item = DocumentoSimplesOrderManager1.getSelectedItems().Single(); var odSimples = item.Tag as ObjDigSimples; if (odSimples.state != State.added && odSimples.original == null) { odSimples.original = odSimples.Clone(); } var frm = new frmObjetoDigitalSimples(); frm.Titulo = odSimples.titulo; frm.Publicado = odSimples.publicado; frm.imagens.Clear(); frm.imagens.AddRange(odSimples.fich_associados); frm.objSimples = odSimples; var currentCursor = this.Cursor; this.Cursor = Cursors.WaitCursor; try { frm.Populate(); } catch (Exception ex) { Trace.WriteLine(ex.ToString()); } finally { this.Cursor = currentCursor; } var result = frm.ShowDialog(); if (result == DialogResult.Cancel) { return; } UpdateObjSimples(mCurrentODComp, odSimples, frm.imagens, frm.Titulo, frm.Publicado); DocumentoSimplesOrderManager1.RefreshItem(item, odSimples.titulo, odSimples.publicado, odSimples.state == State.added ? "" : odSimples.pid); UpdateODCompostoStatePublicado(); UpdateGrpODComposto(); }