public override void UpdateToolBarButtons(ListViewItem item) { if (this.nivelNavigator1.PanelToggleState == NivelNavigator.ToggleState.Estrutural) { //vista estrutural GISADataset.NivelRow nRow = null; GISADataset.TipoNivelRelacionadoRow tnrRow = null; if (this.nivelNavigator1.EPFilterMode) // modo filtro { if (item != null && item.ListView != null && !(((GISADataset.NivelRow)item.Tag).RowState == DataRowState.Detached)) { //contexto da listview nRow = (GISADataset.NivelRow)item.Tag; } if (nRow != null && !(nRow.RowState == DataRowState.Detached)) { tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().FirstOrDefault()); } } this.ToolBarButtonToggleEstruturaSeries.Enabled = this.nivelNavigator1.isTogglable(nRow, tnrRow) && PermissoesHelper.AllowExpand; } else { this.ToolBarButtonToggleEstruturaSeries.Enabled = true; } SetButtonFiltroState(); }
private void GetExtraResources() { btnRemove.Image = SharedResourcesOld.CurrentSharedResources.Apagar; lstVwNiveisAssoc.SmallImageList = TipoNivelRelacionado.GetImageList(); base.ParentChanged += PanelIdentificacao_ParentChanged; }
protected virtual void updateContextStatusBar(GISATreeNode node) { if (!(MasterPanel.isContextPanel(this))) { return; } if (node == null || node.NivelRow.RowState == DataRowState.Detached) { ((frmMain)TopLevelControl).StatusBarPanelHint.Text = string.Empty; } else { GISADataset.RelacaoHierarquicaRow rhRow = ((GISATreeNode)node).RelacaoHierarquicaRow; GISADataset.TipoNivelRelacionadoRow tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRow); ArrayList pathEstrut = ControloNivelList.GetCodigoCompletoCaminhoUnico(node); if (pathEstrut.Count == 0) { ((frmMain)TopLevelControl).StatusBarPanelHint.Text = string.Format(" {0}: {1}", tnrRow.Designacao, node.NivelRow.Codigo); } else { ((frmMain)TopLevelControl).StatusBarPanelHint.Text = string.Format(" {0}: {1}", tnrRow.Designacao, Nivel.buildPath(pathEstrut)); } } }
private void ConfigureContextMenu(GISADataset.NivelRow NivelRow, GISADataset.NivelRow NivelUpperRow, GISADataset.TipoNivelRelacionadoRow tnrRow, GISADataset.TipoNivelRelacionadoRow tnrRowBC) { ContextMenu CurrentMenu = new ContextMenu(); ToolBarButtonCreateAny.DropDownMenu = CurrentMenu; // force an update to the button's icon int i = ToolBarButtonCreateAny.ImageIndex; ToolBarButtonCreateAny.ImageIndex = -1; ImageList toolbarImageList = ToolBar.ImageList; ImageList niveisImageList = TipoNivelRelacionado.GetImageList(); toolbarImageList.Images[2] = niveisImageList.Images[SharedResourcesOld.CurrentSharedResources.NivelImageEditar(System.Convert.ToInt32(tnrRow.GUIOrder))]; toolbarImageList.Images[3] = niveisImageList.Images[SharedResourcesOld.CurrentSharedResources.NivelImageEliminar(System.Convert.ToInt32(tnrRow.GUIOrder))]; ToolBarButtonCreateAny.ImageIndex = i; if (tnrRowBC == null) { TipoNivelRelacionado.ConfigureMenu(GisaDataSetHelper.GetInstance(), tnrRow, ref ToolBarButtonCreateAny, ToolBarButtonCreateMenuItemClick); // IsDocumentView) } else { TipoNivelRelacionado.ConfigureMenu(GisaDataSetHelper.GetInstance(), tnrRowBC, ref ToolBarButtonCreateAny, ToolBarButtonCreateMenuItemClick); // IsDocumentView) } }
private void GetExtraResources() { lstVwEstruturaDocs.SmallImageList = TipoNivelRelacionado.GetImageList(); ToolBar.ImageList = SharedResourcesOld.CurrentSharedResources.PesquisaUFsImageList; ToolBarButton2.ToolTipText = "Resultados"; ToolBarButton3.ToolTipText = "Detalhes"; ToolBarButton5.ToolTipText = "Níveis associados"; ToolBarButtonReports.ToolTipText = "Relatórios"; }
public bool isTogglable(GISADataset.NivelRow nivelRow, GISADataset.TipoNivelRelacionadoRow tnrRow) { if (this.nivelDocumentalListNavigator1.Visible) { return(true); } if (nivelRow == null && tnrRow == null) { SeleccaoActual(out nivelRow, out tnrRow); if (nivelRow == null || nivelRow.IDTipoNivel == TipoNivel.LOGICO) { return(false); } } bool result = false; // Determinar se existe pelo menos 1 nível documental // pendurado no nível selecionado foreach (GISADataset.RelacaoHierarquicaRow rhRow in GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("IDUpper={0}", nivelRow.ID))) { if (rhRow.NivelRowByNivelRelacaoHierarquica.TipoNivelRow.IsDocument) { result = true; break; } } // No caso de não existirem níveis documentais pendurados no // nível selecionado verificamos se é possível faze-lo. Caso // seja podemos da mesma forma passar à vista documental onde // poderemos criar novos níveis. if (!result) { if (TipoNivelRelacionado.GetSubTipoNivelRelacionado(GisaDataSetHelper.GetInstance(), tnrRow).Length == 0) { return(result); } foreach (GISADataset.TipoNivelRelacionadoRow subtnrRow in TipoNivelRelacionado.GetSubTipoNivelRelacionado(GisaDataSetHelper.GetInstance(), tnrRow)) { if (subtnrRow.TipoNivelRow.IsDocument) { result = true; break; } } } return(result); }
//INSTANT C# NOTE: C# does not support optional parameters. Overloaded method(s) are created above. //ORIGINAL LINE: Public Sub LoadContents(Optional ByVal EditMode As Boolean = false) public void LoadContents(bool EditMode) { trVwLocalizacao.ImageList = TipoNivelRelacionado.GetImageList(); if (EditMode) { this.Enabled = false; } else { this.Enabled = true; LoadNivelRoot(trVwLocalizacao); //LoadTimeLine() trVwLocalizacao.BeforeExpand += trvwEstrutura_BeforeExpand; } }
protected override string GetDependenciesReport(DataRow[] rows) { string report = null; foreach (DataRow dependentRow in rows) { if (report == null) { report = ""; } report += " " + TipoNivelRelacionado.GetTipoNivelRelacionadoDaPrimeiraRelacaoEncontrada(((GISADataset.SFRDUFDescricaoFisicaRow)dependentRow).FRDBaseRow.NivelRow).Designacao + ": " + Nivel.GetDesignacao(((GISADataset.SFRDUFDescricaoFisicaRow)dependentRow).FRDBaseRow.NivelRow) + Environment.NewLine; } if (report != null) { report = "Remover este material fará com que todas as suas referências passem a \"" + ((GISADataset.TipoSuporteRow)(GisaDataSetHelper.GetInstance().TipoSuporte.Select("ID = 1")[0])).Designacao + "\"" + Environment.NewLine + "Foram encontrados os seguintes níveis associados a " + "este material:" + Environment.NewLine + Environment.NewLine + report; } return report; }
private string GetCodigoCompleto(object element) { MasterPanelPermissoesPlanoClassificacao mpPPC = (MasterPanelPermissoesPlanoClassificacao)(((frmMain)this.TopLevelControl).MasterPanel); string nCod = null; if (element is GISATreeNode) { GISATreeNode node = (GISATreeNode)element; ArrayList pathEstrut = ControloNivelList.GetCodigoCompletoCaminhoUnico(node); if (pathEstrut.Count == 0) { nCod = node.NivelRow.Codigo; } else { nCod = Nivel.buildPath(pathEstrut); } } else if (element is ListViewItem) { ListViewItem item = (ListViewItem)element; GISADataset.RelacaoHierarquicaRow rhRow = (GISADataset.RelacaoHierarquicaRow)(GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", ((GISADataset.NivelRow)item.Tag).ID, mpPPC.nivelNavigator1.ContextBreadCrumbsPathID))[0]); GISADataset.TipoNivelRelacionadoRow tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRow); ArrayList pathEstrut = ControloNivelList.GetCodigoCompletoCaminhoUnico(mpPPC.nivelNavigator1.SelectedNode); ArrayList pathDoc = mpPPC.nivelNavigator1.GetCodigoCompletoCaminhoUnico(item); if (pathDoc.Count == 0 && pathEstrut.Count == 0) { nCod = tnrRow.Designacao; } else { nCod = string.Format("{0}/{1}", Nivel.buildPath(pathEstrut), Nivel.buildPath(pathDoc)); } } return(nCod); }
public NivelDocumentalListNavigator() { InitializeComponent(); this.GrpResultadosLabel = "Descrições encontradas"; this.showItemsCount = true; lstVwPaginated.DeeperLevelSelection += paginatedList_DeeperLevelSelection; BreadCrumbsPath1.NewBreadCrumbSelected += NewBreadCrumbSelected_Action; BreadCrumbsPath.mImgList = TipoNivelRelacionado.GetImageList(); if (!SessionHelper.AppConfiguration.GetCurrentAppconfiguration().IsReqEnable()) { this.lstVwPaginated.Columns.Remove(this.colRequisitado); } // Esta chamada é necessária para permitir a inserção dos ícones de ordenação da listview. A inserção // está dependente das colunas associadas na listview, que, na class parent onde este método é chamado, // essas colunas ainda não foram adicionadas á listview base.GetExtraResources(); }
protected virtual void updateContextStatusBar(ListViewItem listViewItem) { if (!(MasterPanel.isContextPanel(this))) { return; } if (listViewItem == null || (listViewItem != null && listViewItem.ListView == null) || ((GISADataset.NivelRow)listViewItem.Tag).RowState == DataRowState.Detached) { ((frmMain)TopLevelControl).StatusBarPanelHint.Text = string.Empty; } else { // prever a situação onde, concorrentemente, outro utilizador fez cut/paste do nível em(questão) // mudando assim, o caminho actual do mesmo if (GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", ((GISADataset.NivelRow)listViewItem.Tag).ID, this.nivelNavigator1.ContextBreadCrumbsPathID)).Length > 0) { GISADataset.RelacaoHierarquicaRow rhRow = (GISADataset.RelacaoHierarquicaRow)(GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", ((GISADataset.NivelRow)listViewItem.Tag).ID, this.nivelNavigator1.ContextBreadCrumbsPathID))[0]); GISADataset.TipoNivelRelacionadoRow tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRow); ArrayList pathEstrut = ControloNivelList.GetCodigoCompletoCaminhoUnico(this.nivelNavigator1.SelectedNode); ArrayList pathDoc = this.nivelNavigator1.GetCodigoCompletoCaminhoUnico(listViewItem); if (pathDoc.Count == 0 && pathEstrut.Count == 0) { ((frmMain)TopLevelControl).StatusBarPanelHint.Text = string.Format(" {0}", tnrRow.Designacao); } else { ((frmMain)TopLevelControl).StatusBarPanelHint.Text = string.Format(" {0}: {1}/{2}", tnrRow.Designacao, Nivel.buildPath(pathEstrut), Nivel.buildPath(pathDoc)); } } else { ((frmMain)TopLevelControl).StatusBarPanelHint.Text = string.Empty; } } }
//Filtro public void PopulateFiltro() { GISADataset.TipoNivelRelacionadoRow emptyRow = GisaDataSetHelper.GetInstance().TipoNivelRelacionado.NewTipoNivelRelacionadoRow(); emptyRow.ID = 0; emptyRow.Designacao = "<Todos>"; ArrayList ds = new ArrayList(); ds.Add(emptyRow); ds.AddRange(GisaDataSetHelper.GetInstance().TipoNivelRelacionado.Select("ID < 11")); cbTipoNivelRelacionado.DataSource = ds; cbTipoNivelRelacionado.DisplayMember = "Designacao"; cbTipoNivelRelacionado.ValueMember = "ID"; SelectFirstTipo(); cbTipoNivelRelacionado.ImageList = TipoNivelRelacionado.GetImageList(); cbTipoNivelRelacionado.ImageIndexes.Clear(); cbTipoNivelRelacionado.ImageIndexes.Add(-1); foreach (GISADataset.TipoNivelRelacionadoRow tnrRow in GisaDataSetHelper.GetInstance().TipoNivelRelacionado.Select("ID < 11")) { cbTipoNivelRelacionado.ImageIndexes.Add(SharedResourcesOld.CurrentSharedResources.NivelImageBase(System.Convert.ToInt32(tnrRow.GUIOrder))); } }
public void ActivateEstruturaDocs() { if (PesquisaUFList1.GetSelectedRows.Count() == 1) { long ticks = DateTime.Now.Ticks; List <PesquisaRule.DocAssociado> docsAssociados = new List <PesquisaRule.DocAssociado>(); var nivelRow = (GISADataset.NivelRow)PesquisaUFList1.SelectedRow; string ID = nivelRow.ID.ToString(); // Conta como consulta de detalhe da Unidade Física GisaDataSetHelper.RecordEstatisticaPesquisa(nivelRow.ID, "UF"); GisaDataSetHelper.ManageDatasetConstraints(false); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { docsAssociados = PesquisaRule.Current.LoadEstruturaDocsData(GisaDataSetHelper.GetInstance(), ID, ho.Connection); GisaDataSetHelper.ManageDatasetConstraints(true); } catch (Exception ex) { Debug.WriteLine(ex); throw; } finally { ho.Dispose(); } panelInfoEPs1.ClearAll(); lstVwEstruturaDocs.BeginUpdate(); lstVwEstruturaDocs.Items.Clear(); lstVwEstruturaDocs.SmallImageList = TipoNivelRelacionado.GetImageList(); List <ListViewItem> items = new List <ListViewItem>(); foreach (var dAssoc in docsAssociados) { ListViewItem item = new ListViewItem(new string[] { string.Empty, string.Empty, string.Empty, string.Empty }); item.SubItems[chCodigo.Index].Text = dAssoc.Codigo; item.SubItems[chTipoNivel.Index].Text = dAssoc.RelDesignacao; item.SubItems[chDesignacao.Index].Text = dAssoc.NivelDesignacao; if (this.lstVwEstruturaDocs.Columns.Contains(this.chRequisitado)) { if (dAssoc.Requisitado) { item.SubItems[chRequisitado.Index].Text = "Sim"; } else { item.SubItems[chRequisitado.Index].Text = "Não"; } } item.ImageIndex = SharedResourcesOld.CurrentSharedResources.NivelImageBase(dAssoc.GUIOrder); item.StateImageIndex = item.ImageIndex; item.Tag = (GISADataset.NivelRow)(GisaDataSetHelper.GetInstance().Nivel.Select("ID=" + dAssoc.IDNivel.ToString())[0]); items.Add(item); } lstVwEstruturaDocs.Items.AddRange(items.ToArray()); lstVwEstruturaDocs.EndUpdate(); pnlEstruturaDocs.BringToFront(); Debug.WriteLine("<<ActivateEstruturaDocs>>: " + new TimeSpan(DateTime.Now.Ticks - ticks).ToString()); } else { ToolBar_ButtonClick(this, new ToolBarButtonClickEventArgs(ToolBarButton2)); } }
private string GetFRDBaseAsRTF(GISADataset.NivelRow NivelRow) { GISADataset.FRDBaseRow FRDBaseRow = null; GisaDataSetHelper.ManageDatasetConstraints(false); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { PesquisaRule.Current.LoadFRDBaseUFData(GisaDataSetHelper.GetInstance(), NivelRow.ID, ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw ex; } finally { ho.Dispose(); } GisaDataSetHelper.ManageDatasetConstraints(true); StringBuilder Result = new StringBuilder(); if (GisaDataSetHelper.GetInstance().FRDBase.Select("IDNivel=" + NivelRow.ID.ToString()).Length > 0) { FRDBaseRow = (GISADataset.FRDBaseRow)(GisaDataSetHelper.GetInstance().FRDBase.Select("IDNivel=" + NivelRow.ID.ToString())[0]); // --Identificação-- Result.Append("\\fs36\\b{}Identificação\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}"); // Entidade Detentora if (FRDBaseRow.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().Length == 1) { Result.Append(GetConditionalText("\\i{}Entidade detentora: \\i0{}", FRDBaseRow.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].NivelRowByNivelRelacaoHierarquicaUpper.GetNivelDesignadoRows()[0].Designacao, "\\par{}")); } // Codigo de Referência Result.Append(GetConditionalText("\\i{}Número de recenseamento: \\i0{}", FRDBaseRow.NivelRow.Codigo, "\\par{}")); // Cota if (FRDBaseRow.GetSFRDUFCotaRows().Length == 1) { if (!(FRDBaseRow.GetSFRDUFCotaRows()[0].IsCotaNull())) { Result.Append(GetConditionalText("\\i{}Cota: \\i0{}", FRDBaseRow.GetSFRDUFCotaRows()[0].Cota, "\\par{}")); } else { Result.Append(GetConditionalText("\\i{}Cota: \\i0{}", "", "\\par{}")); } } // Título Result.Append("\\i{}" + TipoNivelRelacionado.GetTipoNivelRelacionadoDaPrimeiraRelacaoEncontrada(FRDBaseRow.NivelRow).Designacao + ": \\i0{}" + Nivel.GetDesignacao(FRDBaseRow.NivelRow) + "\\par{}"); // Datas if (FRDBaseRow.GetSFRDDatasProducaoRows().Length == 1) { Result.Append("\\i{}Datas: \\i0{}" + GUIHelper.GUIHelper.FormatDateInterval(FRDBaseRow.GetSFRDDatasProducaoRows()[0]) + "\\par{}"); } // Tipo e dimensões if (FRDBaseRow.GetSFRDUFDescricaoFisicaRows().Length == 1) { GISADataset.SFRDUFDescricaoFisicaRow sfrdufRow = null; string tipoMedida = null; sfrdufRow = FRDBaseRow.GetSFRDUFDescricaoFisicaRows()[0]; Result.Append("\\i{}Tipo: \\i0{}" + sfrdufRow.TipoAcondicionamentoRow.Designacao + "\\par{}"); if (sfrdufRow.TipoMedidaRow == null) { tipoMedida = string.Empty; } else { tipoMedida = sfrdufRow.TipoMedidaRow.Designacao; } Result.Append("\\i{}Dimensões: \\i0{}" + string.Format("{0} x {1} x {2} ({3})", GISA.Utils.GUIHelper.getStringifiedDecimal(sfrdufRow["MedidaLargura"]), GISA.Utils.GUIHelper.getStringifiedDecimal(sfrdufRow["MedidaAltura"]), GISA.Utils.GUIHelper.getStringifiedDecimal(sfrdufRow["MedidaProfundidade"]), tipoMedida) + "\\par{}"); } // --ConteudoEstrutura-- string ConteudoEstrutura = ""; if (FRDBaseRow.GetSFRDConteudoEEstruturaRows().Length == 1) { GISADataset.SFRDConteudoEEstruturaRow ceRow = (GISADataset.SFRDConteudoEEstruturaRow)FRDBaseRow.GetSFRDConteudoEEstruturaRows()[0]; if (ceRow.IsConteudoInformacionalNull()) { ConteudoEstrutura = GetConditionalText("\\i{}Conteúdo informacional: \\i0{}\\par{}", "", "\\li128\\par\\li0{}"); } else { ConteudoEstrutura = GetConditionalText("\\i{}Conteúdo informacional: \\i0{}\\par{}", ceRow.ConteudoInformacional, "\\li128\\par\\li0{}"); } } Result.Append(Section("\\fs36\\b{}Conteúdo e estrutura\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}", GetConditionalText("\\i{}Tipologia informacional: \\i0{}\\par{}", GetTermosIndexados(FRDBaseRow, TipoNoticiaAut.TipologiaInformacional), ""), ConteudoEstrutura)); // --Documentação associada-- if (FRDBaseRow.GetSFRDDocumentacaoAssociadaRows().Length > 0) { Result.Append(Section("\\fs36\\b{}Documentação associada\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}", GetConditionalText("\\i{}Existência e localização de originais: \\i0{}\\par{}", FRDBaseRow.GetSFRDDocumentacaoAssociadaRows()[0].ExistenciaDeOriginais, "\\li128\\par\\li0{}") + GetConditionalText("\\i{}Existência e localização de cópias: \\i0{}\\par{}", FRDBaseRow.GetSFRDDocumentacaoAssociadaRows()[0].ExistenciaDeCopias, "\\li128\\par\\li0{}"))); } // --Indexação-- Result.Append(Section("\\fs36\\b{}Indexação\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}", GetConditionalText("\\i{}Conteúdos: \\i0{}\\par{}", GetTermosIndexados(FRDBaseRow, TipoNoticiaAut.Ideografico, TipoNoticiaAut.Onomastico, TipoNoticiaAut.ToponimicoGeografico), ""))); } return(Result.ToString()); }
protected virtual ArrayList GetPossibleSubItems(GISADataset.NivelRow nRow) { return TipoNivelRelacionado.GetPossibleSubItems(nRow); }
public override void UpdateToolBarButtons(ListViewItem item) { base.UpdateToolBarButtons(item); //Obter selecção actual GISATreeNode selectedNode = null; GISADataset.NivelRow nRow = null; GISADataset.NivelRow nUpperRow = null; GISADataset.RelacaoHierarquicaRow rhRow = null; GISADataset.TipoNivelRelacionadoRow tnrRow = null; // Estas variaveis identificam o contexto definido pelo breadcrumbspath da vista documental // (só são usadas quando a vista actual é a documental) GISADataset.NivelRow nRowBC = null; GISADataset.NivelRow nUpperRowBC = null; GISADataset.RelacaoHierarquicaRow rhRowBC = null; GISADataset.TipoNivelRelacionadoRow tnrRowBC = null; if (this.nivelNavigator1.PanelToggleState == NivelNavigator.ToggleState.Estrutural) { //vista estrutural if (this.nivelNavigator1.EPFilterMode) // modo filtro { if (item != null && item.ListView != null && !(((GISADataset.NivelRow)item.Tag).RowState == DataRowState.Detached)) { //contexto da listview nRow = (GISADataset.NivelRow)item.Tag; } } else //modo árvore { //vista estrutural selectedNode = (GISATreeNode)this.nivelNavigator1.SelectedNode; if (selectedNode != null && !(selectedNode.NivelRow.RowState == DataRowState.Detached)) { nRow = selectedNode.NivelRow; nUpperRow = selectedNode.NivelUpperRow; } } } else { //vista documental if (item != null && item.ListView != null && !(((GISADataset.NivelRow)item.Tag).RowState == DataRowState.Detached)) { //contexto da listview nRow = (GISADataset.NivelRow)item.Tag; nUpperRow = nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].NivelRowByNivelRelacaoHierarquicaUpper; } //contexto do breadcrumbspath nRowBC = GisaDataSetHelper.GetInstance().Nivel.Cast <GISADataset.NivelRow>().SingleOrDefault(r => r.RowState != DataRowState.Deleted && r.ID == this.nivelNavigator1.ContextBreadCrumbsPathID); nUpperRowBC = GisaDataSetHelper.GetInstance().Nivel.Cast <GISADataset.NivelRow>().SingleOrDefault(r => r.RowState != DataRowState.Deleted && r.ID == this.nivelNavigator1.ContextBreadCrumbsPathIDUpper); } if (nRow != null && !(nRow.RowState == DataRowState.Detached) && nUpperRow == null) { tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(null); } else if (nUpperRow != null && !(nUpperRow.RowState == DataRowState.Detached) && nRow != null && !(nRow.RowState == DataRowState.Detached)) { if (this.nivelNavigator1.PanelToggleState == NivelNavigator.ToggleState.Estrutural) { rhRow = selectedNode.RelacaoHierarquicaRow; // excluimos desta forma as relacoes hirarquicas entretanto eliminadas (as que seriam NULL mas cujo nó respectivo teria um NivelUpper) if (selectedNode.NivelUpperRow != null && rhRow != null) { tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRow); } } else { if (item != null && item.ListView != null) { DataRow[] rhRows = GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", nRow.ID.ToString(), nUpperRow.ID.ToString())); // A relação pode ter desaparecido por algum motivo (ie, concorrencia). if (rhRows.Length > 0) { rhRow = (GISADataset.RelacaoHierarquicaRow)(rhRows[0]); tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRow); } } if (nRowBC != null && nUpperRowBC != null) { DataRow[] rhRowBCs = GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", nRowBC.ID.ToString(), nUpperRowBC.ID.ToString())); // A relação pode ter desaparecido por algum motivo (ie, concorrencia). if (rhRowBCs.Length > 0) { rhRowBC = (GISADataset.RelacaoHierarquicaRow)(rhRowBCs[0]); tnrRowBC = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRowBC); } } } } if (nRow == null && this.nivelNavigator1.PanelToggleState == NivelNavigator.ToggleState.Documental && nRowBC != null && nUpperRowBC != null) { GISADataset.RelacaoHierarquicaRow[] bcRHRow = (GISADataset.RelacaoHierarquicaRow[])(GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", nRowBC.ID.ToString(), nUpperRowBC.ID.ToString()))); if (bcRHRow.Length > 0) { if (bcRHRow[0].IDTipoNivelRelacionado < TipoNivelRelacionado.SD) { ToolBarButtonCreateAny.Enabled = AllowCreate && PermissoesHelper.AllowCreate; } else { ToolBarButtonCreateAny.Enabled = false; } rhRowBC = (GISADataset.RelacaoHierarquicaRow)(GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", nRowBC.ID.ToString(), nUpperRowBC.ID.ToString()))[0]); tnrRowBC = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRowBC); ConfigureContextMenu(nRowBC, nUpperRowBC, tnrRowBC, tnrRowBC); ToolBarButtonEdit.Enabled = false; ToolBarButtonRemove.Enabled = false; } else { ToolBarButtonCreateAny.Enabled = false; ToolBarButtonPaste.Enabled = false; } } else if (TipoNivel.isNivelDocumental(nRow)) { ToolBarButtonCreateAny.Enabled = AllowCreate && PermissoesHelper.AllowCreate; ConfigureContextMenu(nRowBC, nUpperRowBC, tnrRow, tnrRowBC); if (rhRow.IDTipoNivelRelacionado == TipoNivelRelacionado.D) { ToolBarButtonEdit.Enabled = AllowEdit && PermissoesHelper.AllowEdit; ToolBarButtonRemove.Enabled = NiveisHelper.isRemovable(nRow, nUpperRow, false) && AllowDelete && PermissoesHelper.AllowDelete; } else if (rhRow.IDTipoNivelRelacionado == TipoNivelRelacionado.SD) { ToolBarButtonEdit.Enabled = AllowEdit && PermissoesHelper.AllowEdit; ToolBarButtonRemove.Enabled = NiveisHelper.isRemovable(nRow, nUpperRow, false) && AllowDelete && PermissoesHelper.AllowDelete && PermissoesHelper.ObjDigAllowWrite; } else { ToolBarButtonEdit.Enabled = false; ToolBarButtonRemove.Enabled = false; } } else { ToolBarButtonCreateAny.Enabled = false; ToolBarButtonEdit.Enabled = false; ToolBarButtonRemove.Enabled = false; } }
protected override void AcceptContents(object Value) { GISADataset.ControloAutRow ControloAutRow = (GISADataset.ControloAutRow)Value; if (FRDBase != null) { // Carregar nivel do CA largado IDbConnection conn = GisaDataSetHelper.GetConnection(); try { conn.Open(); DBAbstractDataLayer.DataAccessRules.NivelRule.Current.LoadNivelByControloAut(ControloAutRow.ID, GisaDataSetHelper.GetInstance(), conn); } finally { conn.Close(); } if (IsValidRelacaoHierarquica(ControloAutRow)) { // Apresentar form que permita escolher a data da relação FormRelacaoHierarquica frmRh = new FormRelacaoHierarquica(); // Pode-se obter a primeira relação encontrada para efeitos de determinação // do tipo de nível uma vez que o tipo de nível dos níveis documentais nunca se alterará frmRh.relacaoNvl.TipoNivelRelacionadoRow = TipoNivelRelacionado.GetPrimeiraRelacaoEncontrada(this.FRDBase.NivelRow).TipoNivelRelacionadoRow; frmRh.relacaoNvl.ContextNivelRow = ControloAutRow.GetNivelControloAutRows()[0].NivelRow; if (frmRh.ShowDialog() == DialogResult.Cancel) { return; } if (GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", this.FRDBase.NivelRow.ID, ControloAutRow.GetNivelControloAutRows()[0].NivelRow.ID), "", DataViewRowState.Deleted).Length > 0) { GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", this.FRDBase.NivelRow.ID, ControloAutRow.GetNivelControloAutRows()[0].NivelRow.ID), "", DataViewRowState.Deleted)[0].AcceptChanges(); } GISADataset.RelacaoHierarquicaRow rhRow = null; rhRow = GisaDataSetHelper.GetInstance().RelacaoHierarquica.NewRelacaoHierarquicaRow(); TempRelacaoHierarquica = rhRow; rhRow.ID = this.FRDBase.NivelRow.ID; rhRow.IDUpper = ControloAutRow.GetNivelControloAutRows()[0].NivelRow.ID; rhRow.IDTipoNivelRelacionado = TipoNivelRelacionado.GetTipoNivelRelacionadoDaPrimeiraRelacaoEncontrada(this.FRDBase.NivelRow).ID; rhRow.Descricao = frmRh.relacaoNvl.txtDescricao.Text; rhRow.InicioAno = frmRh.relacaoNvl.dtRelacaoInicio.ValueYear; rhRow.InicioMes = frmRh.relacaoNvl.dtRelacaoInicio.ValueMonth; rhRow.InicioDia = frmRh.relacaoNvl.dtRelacaoInicio.ValueDay; rhRow.FimAno = frmRh.relacaoNvl.dtRelacaoFim.ValueYear; rhRow.FimMes = frmRh.relacaoNvl.dtRelacaoFim.ValueMonth; rhRow.FimDia = frmRh.relacaoNvl.dtRelacaoFim.ValueDay; GisaDataSetHelper.GetInstance().RelacaoHierarquica.AddRelacaoHierarquicaRow(rhRow); // no caso de se tratar de uma entidade produtora é necessário validar o código de referência do nivel documental do contexto if (ControloAutRow.IDTipoNoticiaAut == (long)TipoNoticiaAut.EntidadeProdutora) { var argsPC = new PersistencyHelper.EnsureUniqueCodigoNivelPreConcArguments(); argsPC.rhRowID = rhRow.ID; argsPC.rhRowIDUpper = rhRow.IDUpper; var postSaveAction = new PostSaveAction(); PersistencyHelper.UpdatePermissionsPostSaveArguments args = new PersistencyHelper.UpdatePermissionsPostSaveArguments(); postSaveAction.args = args; postSaveAction.postSaveDelegate = delegate(PersistencyHelper.PostSaveArguments postSaveArgs) { if (argsPC.successful) { if (this.parent == null) Debug.Assert(false, "CONTEXTO PARENT DEVE ESTAR DEFINIDO."); if (this.parent.GetType() == typeof(MasterPanelSeries)) { ((MasterPanelSeries)this.parent).CurrentContext.RaiseRegisterModificationEvent(this.FRDBase); PersistencyHelperRule.Current.saveRows(GisaDataSetHelper.GetInstance().FRDBaseDataDeDescricao, GisaDataSetHelper.GetInstance().FRDBaseDataDeDescricao.Cast<GISADataset.FRDBaseDataDeDescricaoRow>().Where(r => r.RowState == DataRowState.Added).ToArray(), postSaveArgs.tran); } } }; var result = PersistencyHelper.save(DelegatesHelper.verificaCodigosRepetidos, argsPC, postSaveAction, true); if (result == PersistencyHelper.SaveResult.successful) { PersistencyHelper.cleanDeletedData(); GisaDataSetHelper.VisitControloAutDicionario(ControloAutRow, DisplayFormaAutorizada); GISA.Search.Updater.updateNivelDocumental(this.FRDBase.NivelRow.ID); } else { if (argsPC.message.Length > 0) MessageBox.Show(argsPC.message, "Adição", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } else { MessageBox.Show("Não é possível a existência de items repetidos.", "Adição", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else if (this.ControloAut != null) { Debug.Assert(false, "ORGANIC RELATIONS BETWEEN CAS NOT IMPLEMENTED. SHOULDN'T BE NEEDED"); } }
private void EditNivel() { var nRow = this.nivelNavigator1.SelectedNivel; var frdRow = nRow.GetFRDBaseRows().Single(); var rhRow = nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().First(); var tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRow); var frm = new FormNivelDocumentalFedora(); frm.IDTipoNivelRelacionado = tnrRow.ID; string WindowTitle = string.Format("Editar {0}", tnrRow.Designacao); frm.Text = WindowTitle; frm.txtCodigo.Text = nRow.Codigo; frm.txtDesignacao.Text = Nivel.GetDesignacao(nRow); frm.FRDBaseRow = nRow.GetFRDBaseRows().Single(); frm.LoadData(); var idxFRDCARow = frdRow.GetIndexFRDCARows().SingleOrDefault(r => r["Selector"] != DBNull.Value && r.Selector == -1); // show form and receive user feedback if (frm.ShowDialog() == DialogResult.OK) { Trace.WriteLine("A editar nível..."); GISADataset.NivelDesignadoRow ndRow = null; nRow.Codigo = frm.txtCodigo.Text; // Um Nivel documental deve ter obrigatoriamente um NivelDesignado. Debug.Assert(nRow.GetNivelDesignadoRows().Length > 0); ndRow = nRow.GetNivelDesignadoRows()[0]; ndRow.Designacao = frm.txtDesignacao.Text; var tipologiaSelected = ((FormNivelDocumentalFedora)frm).Tipologia; if (tipologiaSelected == null && idxFRDCARow != null) { idxFRDCARow.Delete(); } else if (tipologiaSelected != null && idxFRDCARow == null) { idxFRDCARow = GisaDataSetHelper.GetInstance().IndexFRDCA.AddIndexFRDCARow(frdRow, ((FormNivelDocumentalFedora)frm).Tipologia.ControloAutRow, -1, new byte[] { }, 0); } else if (tipologiaSelected != null && idxFRDCARow != null && idxFRDCARow.IDControloAut != tipologiaSelected.IDControloAut) { idxFRDCARow.Delete(); idxFRDCARow = GisaDataSetHelper.GetInstance().IndexFRDCA.AddIndexFRDCARow(frdRow, ((FormNivelDocumentalFedora)frm).Tipologia.ControloAutRow, -1, new byte[] { }, 0); } string termoToCompare = frm.Tipologia == null ? null : ((FormNivelDocumentalFedora)frm).Tipologia.DicionarioRow.Termo; if (objetoDigital != null && objetoDigital.tipologia != termoToCompare) { objetoDigital.tipologia = tipologiaSelected != null ? tipologiaSelected.DicionarioRow.Termo : ""; objetoDigital.state = State.modified; } // registar a edição do item selecionado CurrentContext.RaiseRegisterModificationEvent(nRow.GetFRDBaseRows()[0]); PersistencyHelper.EnsureUniqueCodigoNivelPreConcArguments pcArgs = new PersistencyHelper.EnsureUniqueCodigoNivelPreConcArguments(); pcArgs.nRowID = nRow.ID; pcArgs.ndRowID = ndRow.ID; // Se se tratar de uma entidade detentora não passar os Ids de uma relação // hierárquica para um nível superior pois não existe nenhum. if (nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().Length > 0) { pcArgs.rhRowID = nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].ID; pcArgs.rhRowIDUpper = nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].IDUpper; } pcArgs.testOnlyWithinNivel = true; // actualizar objecto digital caso exista var preTransactionAction = new PreTransactionAction(); var args = new PersistencyHelper.FedoraIngestPreTransactionArguments(); preTransactionAction.args = args; preTransactionAction.preTransactionDelegate = delegate(PersistencyHelper.PreTransactionArguments preTransactionArgs) { string msg = null; if (objetoDigital != null) { preTransactionArgs.cancelAction = !SessionHelper.AppConfiguration.GetCurrentAppconfiguration().FedoraHelperSingleton.Ingest(objetoDigital, out msg); } preTransactionArgs.message = msg; }; PersistencyHelper.SaveResult successfulSave = PersistencyHelper.save(DelegatesHelper.ensureUniqueCodigo, pcArgs, preTransactionAction); if (!pcArgs.successful) { MessageBox.Show(pcArgs.message, "Edição da unidade de descrição", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else if (successfulSave == PersistencyHelper.SaveResult.successful) { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { List <string> IDNiveis = new List <string>(); IDNiveis.Add(nRow.ID.ToString()); GISA.Search.Updater.updateNivelDocumental(IDNiveis); } catch (Exception ex) { Trace.WriteLine(ex.ToString()); throw; } finally { ho.Dispose(); } } PersistencyHelper.cleanDeletedData(); // Actualizar a interface com os novos valores. Se editarmos a // raiz (estrutural) da vista documental é necessário actualizar // automaticamente também a vista estrutural. if (!(nRow.RowState == DataRowState.Detached)) { if (this.nivelNavigator1.PanelToggleState == NivelNavigator.ToggleState.Estrutural) { this.nivelNavigator1.UpdateSelectedNodeName(Nivel.GetDesignacao(nRow)); } else { this.nivelNavigator1.UpdateSelectedListItemName(Nivel.GetDesignacao(nRow)); } } // Forçar a gravação do documento CurrentContext.SetNivelEstrututalDocumental(null); CurrentContext.SetNivelEstrututalDocumental(nRow); } }
private void GetExtraResources() { trVwLocalizacao.ImageList = TipoNivelRelacionado.GetImageList(); }
public ArrayList AddNivel(TreeView trvw, GISADataset.NivelRow nRow, GISADataset.NivelRow nUpperRow, IDbConnection connection) { ArrayList result = new ArrayList(); GISATreeNode node = null; // Para as EDs (em relação às quais não existem níveis superiores) if (nUpperRow == null) { node = FindTreeNodeByNivelRow(trvw.Nodes, nRow); if (node == null) { node = new GISATreeNode(Nivel.GetDesignacao(nRow)); //Node.Tag = rhRow node.NivelRow = nRow; node.NivelUpperRow = null; GISADataset.TipoNivelRelacionadoRow tnrRow = null; int iconIndex = 0; tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(node.NivelRow, node.NivelUpperRow); iconIndex = -1; if (tnrRow != null) { iconIndex = System.Convert.ToInt32(tnrRow.GUIOrder); } if (nRow.CatCode.Trim().Equals("CA")) { if (iconIndex == -1) { node.ImageIndex = SharedResourcesOld.CurrentSharedResources.NivelImageIncognitoControloAut(); } else { node.ImageIndex = SharedResourcesOld.CurrentSharedResources.NivelImageControloAut(iconIndex); } } else { if (iconIndex == -1) { node.ImageIndex = SharedResourcesOld.CurrentSharedResources.NivelImageIncognito(); } else { node.ImageIndex = SharedResourcesOld.CurrentSharedResources.NivelImageBase(iconIndex); } } node.SelectedImageIndex = node.ImageIndex; trvw.Nodes.Add(node); } result.Add(node); } else { ArrayList ParentNodes = new ArrayList(); GISADataset.RelacaoHierarquicaRow[] TempParentRelations = Nivel.GetParentRelations(nRow, nUpperRow, connection); //Obter os nós pai com base nas rows pai if (TempParentRelations.Length == 0) { ArrayList nodes = null; nodes = AddNivel(trvw, nUpperRow, null, connection); ParentNodes.AddRange(nodes); } foreach (GISADataset.RelacaoHierarquicaRow parentRhRow in TempParentRelations) { ArrayList nodes = null; nodes = AddNivel(trvw, parentRhRow.NivelRowByNivelRelacaoHierarquica, parentRhRow.NivelRowByNivelRelacaoHierarquicaUpper, connection); ParentNodes.AddRange(nodes); } // Neste ponto ParentNodes contém todos os nós a que um nó de nRow deverá ser adicionado foreach (TreeNode parentNode in ParentNodes) { node = FindTreeNodeByNivelRow(parentNode.Nodes, nRow); if (node == null) { node = new GISATreeNode(Nivel.GetDesignacao(nRow)); //node.Tag = rhRow node.NivelRow = nRow; node.NivelUpperRow = nUpperRow; string data = FormatYearsInterval(node.RelacaoHierarquicaRow); if (data.Length > 0) { node.Text = string.Format("{0} {1}", node.Text, data); } if (nRow.CatCode.Trim().Equals("CA")) { node.ImageIndex = SharedResourcesOld.CurrentSharedResources.NivelImageControloAut(System.Convert.ToInt32(TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(node.RelacaoHierarquicaRow).GUIOrder)); } else { node.ImageIndex = SharedResourcesOld.CurrentSharedResources.NivelImageBase(System.Convert.ToInt32(TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(node.RelacaoHierarquicaRow).GUIOrder)); } node.SelectedImageIndex = node.ImageIndex; parentNode.Nodes.Add(node); } result.Add(node); } } return result; }
private void SeleccaoActual(out GISADataset.NivelRow NivelRow, out GISADataset.TipoNivelRelacionadoRow TnrRow) { //Obter selecção actual GISATreeNode selectedNode = null; GISADataset.NivelRow nRow = null; GISADataset.NivelRow nUpperRow = null; GISADataset.RelacaoHierarquicaRow rhRow = null; GISADataset.TipoNivelRelacionadoRow tnrRow = null; // Estas variaveis identificam o contexto definido pelo breadcrumbspath da vista documental // (só são usadas quando a vista actual é a documental) GISADataset.NivelRow nRowBC = null; GISADataset.NivelRow nUpperRowBC = null; GISADataset.RelacaoHierarquicaRow rhRowBC = null; GISADataset.TipoNivelRelacionadoRow tnrRowBC = null; if (this.mPanelToggleState == ToggleState.Estrutural) { //vista estrutural if (mEPFilterMode) { var selItem = this.nivelEstruturalList1.SelectedItems.FirstOrDefault(); if (selItem != null) { nRow = selItem.Tag as GISADataset.NivelRow; } } else { selectedNode = (GISATreeNode)this.controloNivelListEstrutural1.SelectedNode; if (selectedNode != null && !(selectedNode.NivelRow.RowState == DataRowState.Detached)) { nRow = selectedNode.NivelRow; nUpperRow = selectedNode.NivelUpperRow; } } } else { //vista documental if (!(this.nivelDocumentalListNavigator1.SelectedItems.Count == 0)) { nRow = (GISADataset.NivelRow)(this.nivelDocumentalListNavigator1.SelectedItems[0].Tag); } if (nRow != null && !(nRow.RowState == DataRowState.Detached)) { nUpperRow = nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].NivelRowByNivelRelacaoHierarquicaUpper; } } if (nRow != null && !(nRow.RowState == DataRowState.Detached) && nUpperRow == null) { if (this.mPanelToggleState == ToggleState.Estrutural && this.mEPFilterMode) { rhRow = nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().FirstOrDefault(); tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRow); } else { tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(null); } } else if (nUpperRow != null && !(nUpperRow.RowState == DataRowState.Detached) && nRow != null && !(nRow.RowState == DataRowState.Detached)) { if (this.mPanelToggleState == ToggleState.Estrutural) { rhRow = selectedNode.RelacaoHierarquicaRow; // excluimos desta forma as relacoes hirarquicas entretanto eliminadas (as que seriam NULL mas cujo nó respectivo teria um NivelUpper) if (selectedNode.NivelUpperRow != null && rhRow != null) { tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRow); } } else { //Documental if (nRow != null) { DataRow[] rhRows = GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", nRow.ID.ToString(), nUpperRow.ID.ToString())); // A relação pode ter desaparecido por algum motivo (ie, concorrencia). if (rhRows.Length > 0) { rhRow = (GISADataset.RelacaoHierarquicaRow)(rhRows[0]); tnrRow = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRow); } } if (nRowBC != null && nUpperRowBC != null) { DataRow[] rhRowBCs = GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", nRowBC.ID.ToString(), nUpperRowBC.ID.ToString())); // A relação pode ter desaparecido por algum motivo (ie, concorrencia). if (rhRowBCs.Length > 0) { rhRowBC = (GISADataset.RelacaoHierarquicaRow)(rhRowBCs[0]); tnrRowBC = TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRowBC); } } } } NivelRow = nRow; TnrRow = tnrRow; }