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(); } }
public void ModelToView() { grpNiveisOrObjFed.Visible = true; if (mViewMode == ObjetoDigitalFedoraHelper.Contexto.objetosDigitais) { grpODTitleAndPub.Enabled = true; // configurar check que permite criar ou não um OD composto chkKeepODComposto.Visible = true; chkPublicar.Enabled = false; txtTitulo.Text = mTitulo; // configurar lista de ODs DocumentoSimplesOrderManager1.Visible = true; var itemsToBeAdded = new List <ListViewItem>(); if (mCurrentODComp != null) { chkPublicar.Checked = mCurrentODComp.publicado; mCurrentODComp.objSimples.ForEach(objSimples => itemsToBeAdded.Add(AddODSimplesToList(objSimples))); } else { mCurrentODSimples.ForEach(objSimples => itemsToBeAdded.Add(AddODSimplesToList(objSimples))); } // adicionar os subdocumentos sem objeto digital à lista docSimplesSemOD.ForEach(docSimples => { if ((int)docSimples.guiorder - 1 < itemsToBeAdded.Count) { itemsToBeAdded.Insert((int)docSimples.guiorder - 1, AddDocSimplesToList(docSimples)); } else { itemsToBeAdded.Add(AddDocSimplesToList(docSimples)); } }); if (itemsToBeAdded.Count > 0) { DocumentoSimplesOrderManager1.populateItems(itemsToBeAdded); DocumentoSimplesOrderManager1.selectFirst(); } if (itemsToBeAdded.Count(lvi => lvi.Tag.GetType() == typeof(ObjDigital) && ((ObjDigital)lvi.Tag).state == State.notFound) > 0) { disableSave = true; DocumentoSimplesOrderManager1.DisableToolBar(); grpODTitleAndPub.Enabled = false; chkKeepODComposto.Enabled = false; MessageBox.Show("A unidade informacional selecionada tem associado(s) objeto(s) " + System.Environment.NewLine + "digital(ais) o(s) qual(ais) não foi possivel obter do repositório. " + System.Environment.NewLine + "Por esse motivo não será possível efetuar qualquer alteração nesta área. " + System.Environment.NewLine + "Contacte o administrador de sistemas.", "Objeto(s) digital(ais) não encontrado(s)", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else if (itemsToBeAdded.Count > 0 && itemsToBeAdded[0].Tag.GetType() == typeof(SubDocumento)) { DocumentoSimplesOrderManager1.SetEditMixedMode(); } else { DocumentoSimplesOrderManager1.updateToolBarButtons(); } UpdateGrpODComposto(); } else if (mViewMode == ObjetoDigitalFedoraHelper.Contexto.imagens) { chkKeepODComposto.Visible = false; FicheirosOrderManager1.Visible = true; FicheirosOrderManager1.updateToolBarButtons(); grpNiveisOrObjFed.Visible = true; versionControl.Visible = true; chkPublicar.Enabled = true; txtTitulo.Enabled = true; txtTitulo.Text = mTitulo; FicheirosOrderManager1.Enabled = true; versionControl.Enabled = true; if (mCurrentODSimples.Count == 0) { grpODTitleAndPub.Enabled = false; versionControl.Reset(); versionControl.Enabled = false; return; } var odSimples = mCurrentODSimples[0]; txtTitulo.Text = odSimples.titulo; chkPublicar.Checked = odSimples.publicado; if (!FedoraHelper.HasObjDigReadPermission(odSimples.pid)) { FicheirosOrderManager1.Enabled = false; return; } var itemsToBeAdded = new List <ListViewItem>(); odSimples.fich_associados.ForEach(f => { var datastream = f as Anexo; var item = FicheirosOrderManager1.CreateItem(datastream.url, datastream); itemsToBeAdded.Add(item); }); versionControl.Load(odSimples); if (!FedoraHelper.HasObjDigWritePermission(odSimples.pid)) { FicheirosOrderManager1.ActivateReadOnlyMode(); } } else { grpNiveisOrObjFed.Visible = false; } }