예제 #1
0
        private void OrderManagerSelectedIndexChangedEvent(object sender, BeforeNewSelectionEventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            try
            {
                if (sender == DocumentoSimplesOrderManager1)
                {
                    var item       = e.ItemToBeSelected;
                    var selectedOD = default(ObjDigital);
                    if (item != null && item.Tag != null)
                    {
                        selectedOD = item.Tag as ObjDigital;
                    }
                    else
                    {
                        // Limpar browser se nada estiver seleccionado
                        var items = DocumentoSimplesOrderManager1.getTrulySelectedItems();
                        if (items.Count != 1)
                        {
                            previewControl.Clear(true); DocumentoSimplesOrderManager1.updateToolBarButtons(); return;
                        }
                        selectedOD = items[0].Tag as ObjDigital;
                    }

                    if (selectedOD == null || (selectedOD != null && selectedOD.state == State.added))
                    {
                        previewControl.Clear(); DocumentoSimplesOrderManager1.updateToolBarButtons(); return;
                    }

                    if (!FedoraHelper.HasObjDigWritePermission(selectedOD.pid))
                    {
                        DocumentoSimplesOrderManager1.ActivateReadOnlyMode();
                    }
                    else
                    {
                        DocumentoSimplesOrderManager1.DeactivateReadOnlyMode();
                    }

                    if (FedoraHelper.HasObjDigReadPermission(selectedOD.pid))
                    {
                        previewControl.Clear(true);
                        previewControl.ShowPDF(selectedOD.pid);
                    }
                    else
                    {
                        previewControl.Clear(true);
                    }

                    if (disableSave)
                    {
                        DocumentoSimplesOrderManager1.DisableToolBar();
                    }
                }
                else if (sender == FicheirosOrderManager1)
                {
                    var item = e.ItemToBeSelected;
                    if (item != null && item.Tag != null)
                    {
                        previewControl.ShowAnexo(item.Tag as Anexo);
                    }
                    else
                    {
                        var items = FicheirosOrderManager1.getTrulySelectedItems();
                        if (items.Count != 1)
                        {
                            previewControl.Clear(true); return;
                        }

                        previewControl.ShowAnexo(items[0].Tag as Anexo);
                    }
                    FicheirosOrderManager1.updateToolBarButtons();
                }
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }
        }
예제 #2
0
        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;
            }
        }