Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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();
        }