public BaseFormulário() { // // Required for Windows Form Designer support // InitializeComponent(); baseAtual = baseInferior; if (Screen.PrimaryScreen.Bounds.Width <= 800) { FormBorderStyle = FormBorderStyle.None; WindowState = FormWindowState.Maximized; } }
/// <summary> /// Ocorre ao exibir a base inferior. /// </summary> /// <param name="baseInferior"></param> public void AoExibir(BaseInferior baseInferior) { //Visible = true; //opçãoVoltar.Visible = (baseInferior.baseAnterior != null); //opçãoAvançar.Visible = false; //AoMudarVisibilidade(); Visible = (baseInferior.baseAnterior != null && baseInferior.baseAnterior != baseInferior); if (exibindoAnteriomente != Visible) ReajustarBarraEsquerda(); exibindoAnteriomente = Visible; }
/// <summary> /// Ocorre ao inserir uma base inferior. /// </summary> /// <param name="baseInferior">Base inferior inserida.</param> protected virtual void AoInserirBaseInferior(BaseInferior baseInferior) { }
/// <summary> /// Substitui base inferior atual por outra. /// </summary> /// <param name="novaBase">Nova base inferior a ser exibida pelo formulário.</param> protected virtual void MostrarBaseFormulário(BaseInferior novaBase) { Formulário.SubstituirBase(novaBase, this); }
/// <summary> /// Exibe base atual. /// </summary> /// <remarks>Este método é chamado ao clicar no botão da base superior.</remarks> public virtual void Exibir() { if (basesInferiores.Count == 0) throw new Exception("Não há nenhuma base inferior associada a este botão"); if (baseAtual == null) baseAtual = basesInferiores[0]; if (retornarÀPrimeira || Exibindo) SubstituirBaseAtual(basesInferiores[0]); Formulário.SubstituirBase(baseAtual, this); }
/// <summary> /// Ocorre ao exibir a base ifnerior em que está inserido /// este controle. /// </summary> public void AoExibir(BaseInferior baseInferior) { SinalizaçãoCarga.Sinalizar(lst, "Carregando dados...", "Aguarde enquanto os dados sobre os álbuns são carregados do banco de dados."); bgRecuperação.RunWorkerAsync(); }
/// <summary> /// Substitui base inferior atual por outra, sem substituir /// no formulário. /// </summary> /// <param name="novaBase">Nova base inferior definida como atual.</param> protected void SubstituirBaseAtual(BaseInferior novaBase) { BaseInferior anterior = baseAtual; // Verificar se estamos retornando if (baseAtual != null && novaBase == baseAtual.baseAnterior) { basesPosteriores.Add(baseAtual); } else // se não estamos retornando { /* Se a nova base inferior é temporária, deve-se * manter as bases anteriores até que uma nova base * inferior permanente seja exibida. Somente neste * caso as bases inferiores anteriores e temporárias * serão liberadas. */ if (basesInferiores.Contains(novaBase)) { if (novaBase != basesInferiores[0]) novaBase.baseAnterior = baseAtual; while (baseAtual != null && !basesInferiores.Contains(baseAtual)) { novaBase.baseAnterior = baseAtual.baseAnterior; baseAtual.Dispose(); baseAtual = novaBase.baseAnterior; } } else novaBase.baseAnterior = baseAtual; LimparBasesPosteriores(); } baseAtual = novaBase; if (AoSubstituirBase != null) AoSubstituirBase(this, anterior, baseAtual); }
/// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BaseFormulário)); this.topo = new System.Windows.Forms.Panel(); this.barraBotões = new Apresentação.Formulários.BarraBotões(); this.conteúdo = new System.Windows.Forms.Panel(); this.baseInferior = new Apresentação.Formulários.BaseInferior(); this.topo.SuspendLayout(); this.conteúdo.SuspendLayout(); this.SuspendLayout(); // // topo // this.topo.BackColor = System.Drawing.Color.Transparent; this.topo.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("topo.BackgroundImage"))); this.topo.Controls.Add(this.barraBotões); this.topo.Dock = System.Windows.Forms.DockStyle.Top; this.topo.Location = new System.Drawing.Point(0, 0); this.topo.Name = "topo"; this.topo.Size = new System.Drawing.Size(1200, 93); this.topo.TabIndex = 2; // // barraBotões // this.barraBotões.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.barraBotões.BackColor = System.Drawing.Color.Transparent; this.barraBotões.Botões = new Apresentação.Formulários.Botão[0]; this.barraBotões.Cursor = System.Windows.Forms.Cursors.Hand; this.barraBotões.Location = new System.Drawing.Point(188, 0); this.barraBotões.Name = "barraBotões"; this.barraBotões.Size = new System.Drawing.Size(1012, 75); this.barraBotões.TabIndex = 0; // // conteúdo // this.conteúdo.Controls.Add(this.baseInferior); this.conteúdo.Dock = System.Windows.Forms.DockStyle.Fill; this.conteúdo.Location = new System.Drawing.Point(0, 93); this.conteúdo.Name = "conteúdo"; this.conteúdo.Size = new System.Drawing.Size(1200, 490); this.conteúdo.TabIndex = 3; // // baseInferior // this.baseInferior.BackColor = System.Drawing.Color.White; this.baseInferior.Dock = System.Windows.Forms.DockStyle.Fill; this.baseInferior.Location = new System.Drawing.Point(0, 0); this.baseInferior.Name = "baseInferior"; this.baseInferior.Size = new System.Drawing.Size(1200, 490); this.baseInferior.TabIndex = 4; // // BaseFormulário // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; this.ClientSize = new System.Drawing.Size(1200, 583); this.Controls.Add(this.conteúdo); this.Controls.Add(this.topo); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MinimumSize = new System.Drawing.Size(640, 480); this.Name = "BaseFormulário"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Indústria Mineira de Joias"; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; this.topo.ResumeLayout(false); this.conteúdo.ResumeLayout(false); this.ResumeLayout(false); }
/// <summary> /// Prepara base para ser utilizada /// </summary> /// <param name="b">Base inferior a ser utilizada.</param> protected internal void NovaBase(BaseInferior b) { b.BackColor = baseInferior.BackColor; b.Dock = DockStyle.Fill; b.Name = "baseInferior"; b.Location = new System.Drawing.Point(0, 93); b.Size = new System.Drawing.Size(792, 413); b.TabIndex = 2; }
/// <summary> /// Insere base inferior. /// </summary> /// <param name="baseInferior">Base inferior a ser exibida.</param> public void InserirBaseInferior(BaseInferior baseInferior) { if (PermissãoFuncionário.ValidarPermissão(baseInferior.Privilégio)) { components.Add(baseInferior); basesInferiores.Add(baseInferior); baseInferior.DefinirControlador(this); Formulário.NovaBase(baseInferior); AoInserirBaseInferior(baseInferior); } }
/// <summary> /// Remove base inferior. /// </summary> /// <param name="baseInferior"></param> public void RemoverBaseInferior(BaseInferior baseInferior) { components.Remove(baseInferior); basesInferiores.Remove(baseInferior); }
/// <summary> /// Ocorre ao ser substituído por nova base. /// </summary> /// <param name="novaBase">Base que o substituiu.</param> protected virtual void AoSerSubstituído(BaseInferior novaBase) { }
/// <summary> /// Método utilizado pelo formulário base. /// </summary> internal void DispararAoSerSubstituido(BaseInferior novaBase) { AoSerSubstituído(novaBase); }
/// <summary> /// Substitui base inferior atual por uma temporária. /// Assim que for novamente substituída, a base será desalocada. /// </summary> /// <param name="novaBase">Nova base inferior a ser exibida pelo formulário</param> public void SubstituirBase(BaseInferior novaBase) { controlador.SubstituirBase(novaBase, this); }
public void AoExibir(BaseInferior baseInferior) { Recarregar(acerto); }
/// <summary> /// Adiciona base inferior a ser exibida. /// </summary> /// <param name="baseInferior">Base inferior a ser exibida.</param> public void AdicionarBaseInferior(BaseInferior baseInferior) { Controlador.InserirBaseInferior(baseInferior); }
/// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); if (basesInferiores != null) foreach (BaseInferior baseInferior in basesInferiores) baseInferior.Dispose(); if (basesPosteriores != null) foreach (BaseInferior baseInferior in basesPosteriores) baseInferior.Dispose(); baseAtual = null; baseFormulário = null; basesInferiores = null; basesPosteriores = null; }
/// <summary> /// Substitui base inferior atual por outra. /// </summary> /// <param name="novaBase">Nova base inferior a ser exibida pelo formulário.</param> /// <param name="origem">Quem mandou substituir.</param> /// <remarks>Chamada pela base inferior.</remarks> internal void SubstituirBase(BaseInferior novaBase, BaseInferior origem) { if (origem != baseAtual) throw new Exception("Base de origem não pode substituir base, pois não é a base atual!"); if (!basesInferiores.Contains(novaBase)) { PermissãoFuncionário.AssegurarPermissão(novaBase.Privilégio); if (novaBase.DefinirControlador(this)) { Formulário.NovaBase(novaBase); novaBase.AoCarregarCompletamente(null); } } SubstituirBaseAtual(novaBase); MostrarBaseFormulário(novaBase); }
/// <summary> /// Ao ser substituído, atualiza o banco de dados. Caso a entidade /// não esteja cadastrada, remove do acerto. /// </summary> protected override void AoSerSubstituído(BaseInferior novaBase) { base.AoSerSubstituído(novaBase); RelacionamentoAcerto relacionamentoAcerto = Relacionamento as RelacionamentoAcerto; if (Relacionamento.Cadastrado) Relacionamento.Atualizar(); else if (relacionamentoAcerto != null && relacionamentoAcerto.AcertoConsignado != null && relacionamentoAcerto.AcertoConsignado.Contém(Relacionamento)) relacionamentoAcerto.AcertoConsignado.Remover(Relacionamento); }
/// <summary> /// Ocorre ao exibir da primeira vez. /// </summary> public void AoExibirDaPrimeiraVez(BaseInferior baseInferior) { }
/// <summary> /// Substitui base inferior por outra. /// </summary> protected internal void SubstituirBase(BaseInferior b, object sender) { UseWaitCursor = true; try { if (b == null) b = baseInferior; // Dispara evento de substituição. if (AoSubstituirBaseInferior != null) { bool cancelar; AoSubstituirBaseInferior(sender, this, baseAtual, b, out cancelar); if (cancelar) { Cursor.Current = Cursors.Default; return; } } // Verifica se controladora é a mesma if (b.Controlador != baseAtual.Controlador && baseAtual.Controlador != null) baseAtual.Controlador.AoEsconder(); this.SuspendLayout(); conteúdo.SuspendLayout(); // Preparar nova base inferior. b.SuspendLayout(); b.Dock = DockStyle.None; b.Size = conteúdo.Size; b.Location = new System.Drawing.Point(0, 0); b.ResumeLayout(); conteúdo.Controls.Clear(); conteúdo.Controls.Add(b); conteúdo.ResumeLayout(); this.ResumeLayout(); b.Dock = DockStyle.Fill; baseAtual.DispararAoSerSubstituido(b); // Verifica se controladora é a mesma if (b.Controlador != baseAtual.Controlador && b.Controlador != null) b.Controlador.AoExibir(); baseAtual = b; b.DispararAoExibir(); } finally { UseWaitCursor = false; } }
protected override void MostrarBaseFormulário(BaseInferior novaBase) { }
/// <summary> /// Auto-exibição de uma base inferior. /// </summary> /// <param name="novaBase">Base inferior que está se exibindo.</param> internal void AutoExibição(BaseInferior novaBase) { if (!permitirAutoExibição) throw new ApplicationException("Auto-exibição não é permitida para este controle."); if (!basesInferiores.Contains(novaBase)) throw new ApplicationException("Auto-exibição de uma base que não está inserida no controlador."); SubstituirBaseAtual(novaBase); MostrarBaseFormulário(novaBase); if (!Exibindo) Exibir(); }
/// <summary> /// Ocorre ao exibir pela primeira vez a base inferior /// em que este controle está inserido. /// </summary> public void AoExibirDaPrimeiraVez(BaseInferior baseInferior) { // Nada aqui. }
/// <summary> /// Substitui base inferior atual por outra, mesmo que esta /// não tenha nenhum vínculo com a base em exibição. O usuário /// é questionado se ele deseja que a base seja substituída. /// </summary> /// <param name="novaBase">Base inferior a ser exibida.</param> /// <param name="título">Título da base inferior.</param> /// <param name="descrição">Descrição da base inferior.</param> public void SubstituirBaseArbitrariamente(BaseInferior novaBase, string título, string descrição) { if (novaBase == baseAtual) return; using (QuestionarSubstituiçãoBI dlg = new QuestionarSubstituiçãoBI(título, descrição)) { if (dlg.ShowDialog(baseFormulário) == System.Windows.Forms.DialogResult.OK) { if (!basesInferiores.Contains(novaBase)) { PermissãoFuncionário.AssegurarPermissão(novaBase.Privilégio); novaBase.DefinirControlador(this); Formulário.NovaBase(novaBase); novaBase.AoCarregarCompletamente(null); } SubstituirBaseAtual(novaBase); MostrarBaseFormulário(novaBase); } } }
protected override void AoInserirBaseInferior(BaseInferior baseInferior) { }