/// <summary> /// Ocorre ao carregar o programa completamente. /// </summary> protected internal override void AoCarregarCompletamente(Splash splash) { base.AoCarregarCompletamente(splash); //if (splash != null) // splash.Mensagem = "Carregando controlador de usuário..."; RecuperarUsuário(); //if (this.funcionário.Setor.Atendimento) // InserirBaseInferior(new Apresentação.Usuário.InterForm.BaseUsuário..Atendimento.BaseClientes(funcionário)); //else //InserirBaseInferior(new Apresentação.Atendimento.Clientes.BaseSeleçãoCliente()); InserirBaseInferior(new Apresentação.Usuário.InterForm.BaseUsuário(funcionário)); if (Acesso.Comum.Usuários.UsuárioAtual.GerenciadorConexões.SenhaRuim) { using (Funcionários.GuiaNovato dlg = new Apresentação.Usuário.Funcionários.GuiaNovato()) { dlg.ShowDialog(); } } controleAgendamento = new ControleAgendamento(this); if (funcionário.Setor.Atendimento) controleVisitantes = new ControleVisitantes(); Exibir(); }
public void AoCarregarCompletamente(Splash splash) { foreach (KeyValuePair<Control, Permissão> pares in hashVisualização) pares.Key.Visible = PermissãoFuncionário.ValidarPermissão(pares.Value); foreach (KeyValuePair<Control, Permissão> pares in hashEdição) pares.Key.Enabled = PermissãoFuncionário.ValidarPermissão(pares.Value); }
/// <summary> /// Ocorre ao carregar o controlador. /// </summary> protected internal override void AoCarregarCompletamente(Splash splash) { InserirBaseInferior(baseSeleçãoClienteSetor); InserirBaseInferior(baseAtendimento); /* A inserção de base inferior deve ocorrer antes de chamar * o AoCarregarCompletamente da base. */ base.AoCarregarCompletamente(splash); }
public override void AoCarregarCompletamente(Splash splash) { base.AoCarregarCompletamente(splash); bool técnico = PermissãoFuncionário.ValidarPermissão(Permissão.Técnico); quadroFiscalExportaçãoAtacadoBR500.Visible = técnico; quadroFiscalExportacaoEconnectVarejo.Visible = técnico; quadroFiscal.Visible = técnico; quadroFiscal.Visible = técnico; quadroExportaVenda.Visible = técnico; quadroOpçãoImportação.Visible = técnico; quadroOpçãoBalanço.Visible = PermissãoFuncionário.ValidarPermissão(Permissão.Balanço); quadroControleEstoque.Visible = PermissãoFuncionário.ValidarPermissão(Permissão.Estoque); quadroComissão.Visible = PermissãoFuncionário.ValidarPermissão(Permissão.ManipularComissão); }
/// <summary> /// Ocorre ao carregar completamente o sistema. /// </summary> protected internal override void AoCarregarCompletamente(Splash splash) { // Obter funcionário atual. funcionário = Entidades.Pessoa.Funcionário.FuncionárioAtual; if (funcionário == null || funcionário.Setor == null) throw new ExceçãoBotãoNãoSuportado("É necessário um funcionário atribuído a um setor."); if (funcionário.Setor.Atendimento) { baseListaAtendimentos = new BaseListaAtendimentos(); baseListaAtendimentos.Escolhida += new Apresentação.Atendimento.Clientes.BaseSeleçãoCliente.EscolhaPessoa(IniciarAtendimento); InserirBaseInferior(baseListaAtendimentos); } Botão.Imagem = Resource.ApertoMão; base.AoCarregarCompletamente(splash); }
public override void AoCarregarCompletamente(Splash splash) { base.AoCarregarCompletamente(splash); comboboxFuncionário.Carregar(comissão); }
/// <summary> /// Ocorre ao carregar completamente. /// </summary> public void AoCarregarCompletamente(Splash splash) { if (splash != null) splash.Mensagem = "Carregando cotações"; CarregarCotações(); }
private void ImportarBotões(Splash splash) { try { string caminho = AppDomain.CurrentDomain.BaseDirectory; if (splash != null) splash.Mensagem = "Carregando controles gráficos ..."; string arquivo = Path.Combine(caminho, "Apresentação.dll"); Assembly assembly = Assembly.LoadFile(arquivo); foreach (ExporBotãoAttribute exportação in assembly.GetCustomAttributes(typeof(ExporBotãoAttribute), true)) ExportarBotão(assembly, exportação); AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(CurrentDomain_AssemblyLoad); } catch (Exception e) { MessageBox.Show(e.ToString()); Application.Exit(); } }
/// <summary> /// É chamada assim que a todo o programa já está carregado. /// </summary> protected virtual void AoCarregarCompletamente(Splash splash) { bool falha = false; string problema = ""; List<Botão> remoção = new List<Botão>(); foreach (Botão botão in barraBotões.Botões) { botão.Controlador.AoCarregarCompletamente(splash); } foreach (Botão botão in remoção) { barraBotões.RemoverBotão(botão); botão.Dispose(); } baseInferior.AoCarregarCompletamente(splash); baseInferior.DispararAoExibir(); if (falha) throw new ExceçãoPósCarga(problema); }
/// <summary> /// Ocorre ao carregar completamente o sistema. /// </summary> public void AoCarregarCompletamente(Splash splash) { // Executar pós-carga nos controles existentes. foreach (Control controle in Controls) if (controle is IPósCargaSistema) ((IPósCargaSistema) controle).AoCarregarCompletamente(splash); Carregar(); }
/// <summary> /// Executa uma aplicação. /// </summary> /// <param name="tipoFormulário">Formulário principal que herda de Apresentação.Formulários.BaseFormulário</param> /// <param name="fachada">Nome da faixada</param> /// <param name="efetuarLogin">Pedir que usuário efetua login no banco de dados</param> public static void Executar(Type tipoFormulário, Usuários usuários, bool efetuarLogin, bool mostrarSplash) { #if DEBUG Console.WriteLine("========================================================"); Console.WriteLine("Executando aplicação..."); #endif try { Application.SetCompatibleTextRenderingDefault(false); Application.EnableVisualStyles(); Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException, true); Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(ThreadException); } catch { } #if !DEBUG try #endif { Splash splash; // Mostra splash screen if (mostrarSplash) { splash = new Splash(); splash.Show(); splash.Update(); #if DEBUG Console.WriteLine("Splash exibido!"); #endif } else splash = null; try { aplicação = new Aplicação(tipoFormulário, usuários, efetuarLogin, splash); } catch (LoginNãoAssociadoAFuncionário) { MessageBox.Show("O login não está associado a um funcionário", "Login não pode ser feito", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); return; } catch (LoginOuSenhaIncorretos) { MessageBox.Show("Login e/ou senha incorretos. ", "Login não pode ser feito", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); return; } #if DEBUG Console.WriteLine("Disparando ao carregar!"); #endif aplicação.DispararAoCarregar(); splash = null; #if DEBUG Console.WriteLine("Aplicação pronta!"); Console.WriteLine("========================================================"); #endif Application.Run(aplicação); GC.Collect(); } #if !DEBUG catch (LoginNãoEfetuado) { // Nada aqui } catch (Exception e) { try { Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e); MessageBox.Show("Ocorreu um erro e o programa será finalizado. Um relatório de erros foi gerado e enviado ao servidor.\n\nMensagem de erro: " + e.Message, "Falha no sistema", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception e2) { MessageBox.Show("Ocorreu o seguinte erro no sistema e o programa será finalizado: " + e.ToString(), "Falha no sistema", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show("Não foi possível enviar relatório para os programadores devido ao seguinte problema: " + e2.ToString(), "Falha no sistema", MessageBoxButtons.OK, MessageBoxIcon.Error); } } #endif }
/// <summary> /// Executa pós-carga nos controles que implementam a /// interface "IPósCargaSistema". /// </summary> /// <param name="controles">Conjunto de controles que /// podem ou não implementar IPósCargaSistema.</param> private void DispararPósCarga(ControlCollection controles, Splash splash) { bool falha = false; string problema = ""; foreach (Control controle in controles) { IPósCargaSistema controlePósCarga = controle as IPósCargaSistema; //try //{ if (controlePósCarga != null) controlePósCarga.AoCarregarCompletamente(splash); DispararPósCarga(controle.Controls, splash); //} //catch (Exception e) //{ // Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e); // falha = true; // problema += "\n" + controle.GetType().ToString(); //} } if (falha) throw new ExceçãoPósCarga(problema); }
/// <summary> /// Ocorre ao carregar completamente o programa. /// </summary> /// <remarks>Neste ponto já existe um usuário identificado.</remarks> public virtual void AoCarregarCompletamente(Splash splash) { foreach (Control controle in esquerda.Controls) { IRequerPrivilégio controlePrivilégio = controle as IRequerPrivilégio; if (controlePrivilégio != null) if (!PermissãoFuncionário.ValidarPermissão(controlePrivilégio.Privilégio)) esquerda.Controls.Remove(controle); } DispararPósCarga(Controls, splash); }
public override void AoCarregarCompletamente(Splash splash) { if (this.DesignMode) return; base.AoCarregarCompletamente(splash); RegistraEventos(); }
/// <summary> /// Ocorre ao carregar pela primeira vez. /// </summary> public override void AoCarregarCompletamente(Splash splash) { base.AoCarregarCompletamente(splash); //if (splash != null) // splash.Mensagem = "Criado ambiente de impressão"; printDoc.PrintController = new System.Drawing.Printing.StandardPrintController(); txtReferência.Tabela = Tabela.TabelaPadrão; bandeja.Tabela = Tabela.TabelaPadrão; }
/// <summary> /// </summary> /// <returns>Falso se usuário cancelou</returns> public static bool EfetuarLogin(Usuários usuários, Splash splash) { #pragma warning disable 0162 #if DEBUG Usuários.UsuárioAtual = usuários.EfetuarLogin("andrep", "andrep"); return true; #endif bool conectado = false; // Constrói janela de login using (Login loginDlg = new Login()) { do { DialogResult resultado; if (splash != null) splash.Hide(); resultado = loginDlg.ShowDialog(); if (splash != null) splash.Show(); switch (resultado) { case DialogResult.OK: if (splash != null) splash.Mensagem = "Autenticando usuário"; try { Usuários.UsuárioAtual = usuários.EfetuarLogin(loginDlg.txtUsuário.Text, loginDlg.txtSenha.Text); if (Usuários.UsuárioAtual == null) MessageBox.Show("Senha ou usuário incorreto!", "Indústria Mineira de Joias", MessageBoxButtons.OK, MessageBoxIcon.Stop); else { conectado = true; } } catch (Exception e) { if (splash != null) splash.Mensagem = "Não foi possível autenticar usuário"; MessageBox.Show("Não foi possível autenticar usuário.\r\n\r\nOcorreu o seguinte erro: " + e.Message, "Indústria Mineira de Joias", MessageBoxButtons.OK, MessageBoxIcon.Error); } // Conectado! break; case DialogResult.Cancel: return false; default: break; } } while (!conectado); #if DEBUG Usuários.UsuárioAtual.GerenciadorConexões.ConexãoPresa += new GerenciadorConexões.ConexãoPresaCallback(GerenciadorConexões_ConexãoPresa); #endif return true; } #pragma warning restore 0162 }
/// <summary> /// Dispara o método ao carregar do formulário. /// </summary> private void DispararAoCarregar() { if (splash != null) { splash.Show(); splash.Update(); } Formulário.DispararAoCarregar(splash); if (splash != null) { splash.Close(); splash.Dispose(); splash = null; } }
/// <summary> /// Ocorre quando o programa é carregado completamente. /// </summary> protected internal virtual void AoCarregarCompletamente(Splash splash) { bool falha = false; string problema = ""; foreach (BaseInferior baseInferior in basesInferiores) { baseInferior.AoCarregarCompletamente(splash); } if (falha) throw new ExceçãoPósCarga(problema); }
public static void Executar(Usuários usuários, bool efetuarLogin, Splash splash) { aplicação = new Aplicação(null, usuários, efetuarLogin, splash); }
public void AoCarregarCompletamente(Splash splash) { //if (splash != null) // splash.Mensagem = "Carregando bandeja..."; timerStatus.Enabled = true; }
/// <param name="tipoFormulário">Formulário base, que herda de Apresentação.Formulários.BaseFormulário</param> public Aplicação(Type tipoFormulário, Usuários usuários, bool efetuarLogin, Splash splash) { #if !DEBUG try #endif { this.splash = splash; // Validar formulário if (typeof(BaseFormulário).IsInstanceOfType(tipoFormulário)) throw new Exception("A aplicação requer um formulário do tipo Apresentação.Formulários.BaseFormulário"); try { Application.EnableVisualStyles(); } catch (Exception erro) { if (splash != null) { splash.Mensagem = "Erro ao ligar efeitos visuais!"; System.Threading.Thread.Sleep(2000); splash.Mensagem = erro.Message; System.Threading.Thread.Sleep(2000); } else MessageBox.Show("Erro ao ligar efeitos visuais!"); } this.usuários = usuários; cultura = System.Globalization.CultureInfo.CreateSpecificCulture("pt-BR"); if (splash != null) splash.Mensagem = "Conectando ao banco de dados ... "; Usuários.AoRegistrarErro += new Usuários.ErroUsuárioHandler(AoRegistrarErro); #if DEBUG Console.WriteLine("Efetuando conexão!"); Usuários.AoCriarConexão += new Usuários.UsuárioHandler(AoCriarConexão); #endif Application.DoEvents(); if (efetuarLogin) { bool cancelouLogin = !Login.EfetuarLogin(usuários, splash); if (cancelouLogin) throw new LoginNãoEfetuado(); if (Usuários.UsuárioAtual == null) throw new LoginOuSenhaIncorretos(); if (Entidades.Pessoa.Funcionário.FuncionárioAtual == null) throw new LoginNãoAssociadoAFuncionário(); } else Usuários.UsuárioAtual = usuários.EfetuarLogin("imjoias", "b9r8hukl3"); } #if !DEBUG catch (LoginNãoEfetuado e) { /* Este erro só ocorre quando a versão é DEBUG. * Em versão RELEASE, este erro implica em * finalização do programa sem mostrar * qualquer mensagem. */ throw e; } catch (Exception e) { MessageBox.Show(e.Message, "Indústria Mineira de Joias", MessageBoxButtons.OK, MessageBoxIcon.Error); throw new Exception("Não foi possível carregar o sistema.", e); } #endif if (splash != null) splash.Mensagem = "Carregando controles gráficos ..."; #if DEBUG Console.WriteLine("Construindo janela principal!"); #endif try { formulário = (BaseFormulário) tipoFormulário.Assembly.CreateInstance(tipoFormulário.FullName); this.MainForm = formulário; } catch (Exception e) { #if DEBUG MessageBox.Show("Ocorreu uma exceção não tratada e não depurável durante a criação do formulário:\n\n" + e.ToString()); #else throw new Exception("Não foi possível construir janela principal!", e); #endif } }
/// <summary> /// Ocorre ao carregar completamente o sistema. /// </summary> public void AoCarregarCompletamente(Splash splash) { if (splash != null) splash.Mensagem = "Carregando lista de álbuns."; Carregar(); }
public override void AoCarregarCompletamente(Splash splash) { CacheMiniaturas cache = Entidades.Álbum.CacheMiniaturas.Instância; CacheÍcones cacheÍcones = Entidades.Álbum.CacheÍcones.Instância; base.AoCarregarCompletamente(splash); }
public void AoCarregarCompletamente(Splash splash) { CarregarFaixas(); }
/// <summary> /// Deve ser chamado pelo programa de apresentação depois /// que os botões são configurados. /// </summary> /// public void DispararAoCarregar(Splash splash) { Cursor cursorAnterior = Cursor.Current; Cursor.Current = Cursors.WaitCursor; if (splash != null) splash.Mensagem = "Carregando mercadorias ..."; Entidades.Mercadoria.Mercadoria.IniciarCarga(); ImportarBotões(splash); // Dispara o evento AoCarregarCompletamente(splash); this.Text = Versão.NomeVersãoAplicação; #if DEBUG this.Text += " @ " + Acesso.MySQL.MySQLUsuários.Host; #endif new Entidades.Configuração.ConfiguraçãoUsuário<string>("VersãoTítular", Versão.VersãoNumérica).Valor = Versão.VersãoNumérica; this.Refresh(); Cursor.Current = cursorAnterior; }
protected internal override void AoCarregarCompletamente(Splash splash) { base.AoCarregarCompletamente(splash); Botão.Imagem = Resource.ConsultarMercadoria; }
protected internal override void AoCarregarCompletamente(Splash splash) { }
public override void AoCarregarCompletamente(Splash splash) { base.AoCarregarCompletamente(splash); HandleCreated += new EventHandler(BaseSeleçãoCliente_HandleCreated); }