private void LoadVersion(int version) { this.Cursor = Cursors.WaitCursor; var objSimples = mCurrentODSimples[0]; if (version > 0) { // Mostrar versão historica (e bloquear alterações) ObjDigSimples VersaoObjectoDigital = (ObjDigSimples)SessionHelper.AppConfiguration.GetCurrentAppconfiguration().FedoraHelperSingleton.LoadID(objSimples.pid, objSimples.historico[version].timestamp); FicheirosOrderManager1.Deactivate(); ObjectToView(VersaoObjectoDigital); grpODTitleAndPub.Enabled = false; FicheirosOrderManager1.ActivateReadOnlyMode(); } else { // Mostar versão original (desbloquear alterações) FicheirosOrderManager1.Deactivate(); ObjectToView(objSimples); grpODTitleAndPub.Enabled = true; if (FedoraHelper.HasObjDigWritePermission(objSimples.pid)) { FicheirosOrderManager1.DeactivateReadOnlyMode(); } } this.Cursor = Cursors.Default; }
private void DocumentoSimplesOrderManager1_NewInvoked(object sender, EventArgs e) { var frm = new frmObjetoDigitalSimples(); var result = frm.ShowDialog(); if (result == DialogResult.Cancel) { return; } var odSimples = new ObjDigSimples(); odSimples.pid = "-1"; odSimples.gisa_id = ""; odSimples.titulo = frm.Titulo; odSimples.publicado = frm.Publicado; odSimples.fich_associados = frm.imagens; odSimples.state = State.added; var item = AddODSimplesToList(odSimples); DocumentoSimplesOrderManager1.addNewItem(item); UpdateODCompostoStatePublicado(); UpdateGrpODComposto(); }
private void CreateDatabaseObjDigSimplesSolto(ObjDigSimples odSimples) { Debug.Assert(odSimples.guiorder > 0); var odRow = GisaDataSetHelper.GetInstance().ObjetoDigital.AddObjetoDigitalRow(odSimples.pid, odSimples.titulo, odSimples.publicado, odSimples.guiorder, new byte[] { }, 0); //PermissoesHelper.AddNewObjDigGrantPermissions(odRow, currentNivel); FedoraHelper.RelateODtoUI(odSimples, odRow, currentNivel.GetFRDBaseRows().Single()); newObjects.Add(odRow, odSimples); }
private static void UpdateNvlDocSimplesOrderNr(ObjDigSimples odSimples) { if (odSimples.gisa_id != null && odSimples.gisa_id.Length > 0) { var nds = GisaDataSetHelper.GetInstance().NivelDocumentoSimples.Cast <GISADataset.NivelDocumentoSimplesRow>().SingleOrDefault(r => r.RowState != DataRowState.Deleted && r.ID == FedoraHelper.GetGisaID(odSimples.gisa_id)); if (nds != null) { nds.GUIOrder = odSimples.guiorder; } } }
public void Load(ObjDigSimples objecto) { this.objSimples = objecto; if (objSimples != null) { versionBar.Minimum = 0; versionBar.Maximum = Math.Max(objSimples.historico.Count - 1, 0); versionBar.Value = 0; UpdateVersionLabels(false); VersionChanged(this, versionBar.Value); this.Enabled = true; } else { this.Enabled = false; } }
private static void UpdateObjSimples(ObjDigComposto odComposto, ObjDigSimples odSimples, List <Anexo> anexos, string titulo, bool publicado) { if (anexos.Count != odSimples.fich_associados.Count) { odSimples.fich_associados.Clear(); odSimples.fich_associados.AddRange(anexos); odSimples.state = odSimples.state != State.added ? State.modified : State.added; if (odComposto != null) { odComposto.state = State.poked; } } else { for (int i = 0; i < anexos.Count; i++) { if (!anexos[i].url.Equals(odSimples.fich_associados[i].url)) { odSimples.fich_associados[i] = anexos[i]; odSimples.state = odSimples.state != State.added ? State.modified : State.added; if (odComposto != null && odComposto.state == State.unchanged) { odComposto.state = State.poked; } } } } if (!odSimples.titulo.Equals(titulo) || odSimples.publicado != publicado) { odSimples.titulo = titulo.Length > 0 ? titulo : odSimples.titulo; odSimples.publicado = publicado; odSimples.state = odSimples.state != State.added ? State.modified : State.added; if (odComposto != null) { odComposto.state = odComposto.state != State.added ? State.modified : State.added; } } }
private void ObjectToView(ObjDigSimples objDigital) { txtTitulo.Text = objDigital.titulo; chkPublicar.Checked = objDigital.publicado; var itemsToBeAdded = new List <ListViewItem>(); objDigital.fich_associados.ForEach(f => { var datastream = f as Anexo; var item = FicheirosOrderManager1.CreateItem(datastream.url, datastream); itemsToBeAdded.Add(item); }); if (itemsToBeAdded.Count > 0) { FicheirosOrderManager1.populateItems(itemsToBeAdded); FicheirosOrderManager1.selectFirst(); } }
private void AddOrRemoveODRelations(ObjDigComposto odComp, ObjDigSimples odSimples, GISADataset.ObjetoDigitalRow odRow) { var frdRow = currentNivel.GetFRDBaseRows().Single(); if (odComp.state == State.added) { var imgODRow = odRow.GetSFRDImagemObjetoDigitalRows().SingleOrDefault(r => r.IDFRDBase == frdRow.ID); if (imgODRow != null) // esta row é nula no caso dos ODs Simples associados a subdocumentos { imgODRow.SFRDImagemRowParent.Delete(); imgODRow.Delete(); } GisaDataSetHelper.GetInstance().ObjetoDigitalRelacaoHierarquica.AddObjetoDigitalRelacaoHierarquicaRow(odRow, currentObjetoDigitalRowComp, new byte[] { }, 0); } else if (odComp.state == State.deleted) { if (odRow.GetSFRDImagemObjetoDigitalRows().Count() == 0) // se se tratar de um od simples sem estar relacionado com um subdocumento cria-se relacao com a UI selecionada { FedoraHelper.RelateODtoUI(odSimples, odRow, currentNivel.GetFRDBaseRows().Single()); } } }
private ListViewItem AddODSimplesToList(ObjDigSimples objSimples) { var hasReadPermission = true; if (objSimples.state != State.added) { hasReadPermission = FedoraHelper.HasObjDigReadPermission(objSimples.pid); } var item = DocumentoSimplesOrderManager1.CreateItem(FedoraHelper.GetDesignacaoUI(objSimples.pid), objSimples.titulo, objSimples.state == State.added ? "" : objSimples.pid, objSimples.publicado, objSimples); // marcar os objetos simples para os quais não existe permissão de leitura if (!hasReadPermission) { item.ForeColor = Color.Gray; } if (objSimples.state == State.notFound) { item.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, FontStyle.Italic, System.Drawing.GraphicsUnit.Point, System.Convert.ToByte(0)); } return(item); }
private void CreateDatabaseObjDigSimples(ObjDigComposto odComp, GISADataset.ObjetoDigitalRow odRowComp, ObjDigSimples odSimples) { Debug.Assert(odComp != null); Debug.Assert(odSimples != null); Debug.Assert(odRowComp != null && odRowComp.RowState != DataRowState.Deleted); var orderNr = odComp.objSimples.IndexOf(odSimples); var odRow = GisaDataSetHelper.GetInstance().ObjetoDigital.AddObjetoDigitalRow(odSimples.pid, odSimples.titulo, odSimples.publicado, (orderNr + 1), new byte[] { }, 0); GisaDataSetHelper.GetInstance().ObjetoDigitalRelacaoHierarquica.AddObjetoDigitalRelacaoHierarquicaRow(odRow, odRowComp, new byte[] { }, 0); //PermissoesHelper.AddNewObjDigGrantPermissions(odRow, currentNivel); newObjects.Add(odRow, odSimples); }
public void ViewToModel() { if (mViewMode == ObjetoDigitalFedoraHelper.Contexto.objetosDigitais) { // neste modo não deveria haver qualquer mudança neste ponto if (disableSave) { return; } if (mCurrentODComp == null) { var hasChanges = false; UpdateObjectsList(ref mCurrentODSimples, out hasChanges); if (chkKeepODComposto.Checked && mCurrentODSimples.Count > 0) { mCurrentODComp = new ObjDigComposto(); mCurrentODComp.state = State.added; mCurrentODComp.pid = "-1"; mCurrentODComp.objSimples.AddRange(mCurrentODSimples); mCurrentODComp.titulo = mTitulo; UpdateODSimplesParentTitle(mTitulo); mCurrentODComp.publicado = chkPublicar.Checked; } } else { // actualizar ODs simples sem se considerar o OD Composto var hasChanges = false; UpdateObjectsList(ref mCurrentODComp.objSimples, out hasChanges); if (hasChanges) { mCurrentODComp.state = State.modified; } mCurrentODComp.publicado = chkPublicar.Checked; if (!chkKeepODComposto.Checked) { // foi decidido não manter o OD Composto mCurrentODComp.state = State.deleted; UpdateODSimplesParentTitle(""); } else if (!mCurrentODComp.titulo.Equals(txtTitulo.Text)) { mCurrentODComp.titulo = txtTitulo.Text; mCurrentODComp.state = State.modified; } } } else if (mViewMode == ObjetoDigitalFedoraHelper.Contexto.imagens) { var items = FicheirosOrderManager1.Items(); if (mCurrentODSimples.Count == 0) { if (items.Count == 0) { return; } else { var odSimples = new ObjDigSimples(); odSimples.state = State.added; odSimples.pid = "-1"; odSimples.fich_associados.AddRange(items.Select(i => i.Tag as Anexo)); odSimples.nextDatastreamId = 1; odSimples.gisa_id = "-1"; odSimples.titulo = txtTitulo.Text.Trim().Length == 0 ? mTitulo : txtTitulo.Text.Trim(); odSimples.publicado = chkPublicar.Checked; if (mCurrentODComp != null) { mCurrentODComp.state = State.modified; // o objeto digital será adicionado ao composto no ModelToView do SlavePanelFedora //mCurrentODComp.objSimples.Add(odSimples); } mCurrentODSimples = new List <ObjDigSimples>() { odSimples }; } } else { var odSimples = mCurrentODSimples[0]; if (items.Count == 0) { // objeto simples sem ficheiros odSimples.state = State.deleted; if (mCurrentODComp != null) { mCurrentODComp.state = ((ObjDigComposto)mCurrentODComp).objSimples.Count(od => od.state != State.deleted) > 1 ? State.modified : State.deleted; } } else { // actualizar a ordem dos ficheiros dentro do objeto digital simples var anexos = items.Select(i => i.Tag as Anexo).ToList(); UpdateObjSimples(mCurrentODComp, odSimples, anexos, txtTitulo.Text, chkPublicar.Checked); // actualizar estado publicado do documento composto caso exista if (mCurrentODComp != null) { mCurrentODComp.publicado = mCurrentODComp.objSimples.FirstOrDefault(od => od.publicado) != null; } } } } }