using CPM; using MLL; using System; using System.Drawing; using System.Windows.Forms; namespace UI { public class PermissaoPanel : FormularioModelo { // Mapeamento absoluto de todas as propriedades do ModeloPermissao private LV_TEXTBOX1 txtId; private LV_TEXTBOX1 txtNome; private LV_TEXTBOX1 txtDescricao; public PermissaoPanel() { this.Titulo = "CADASTRO DE PERMISSÕES DO SISTEMA"; MontarInterfaceCompleta(); } private void MontarInterfaceCompleta() { // --- SEÇÃO ÚNICA: DADOS DA PERMISSÃO --- content.Controls.Add(CreateSectionHeader("Identificação da Diretiva de Segurança", 20)); // Linha 1: ID de Registro (Desabilitado por padrão) txtId = AddInput(content, "ID PERMISSÃO", 20, 55, 110, 28, true); // Linha 2: Chave Identificadora da Permissao (ex: os_deletar_registro) txtNome = AddInput(content, "CHAVE IDENTIFICADORA DA PERMISSÃO (SISTEMA_ACAO)", 20, 115, 500, 28); // Linha 3: Detalhamento amigável para o usuário administrador entender o que ela faz txtDescricao = AddInput(content, "DESCRIÇÃO DETALHADA DO RECURSO BLOQUEADO / LIBERADO", 20, 175, 650, 28); } // --- MÉTODOS OBRIGATÓRIOS DO FORMULÁRIO MODELO --- protected override void OnNovo() { // Limpa os campos editáveis txtNome.Text = string.Empty; txtDescricao.Text = string.Empty; // Define o ID padrão de inserção txtId.Text = "0"; txtNome.Focus(); } protected override void OnSalvar() { // Validação mínima de consistência de dados if (string.IsNullOrWhiteSpace(txtNome.Text)) { MessageBox.Show("A chave identificadora da permissão é obrigatória.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtNome.Focus(); return; } // Mapeamento absoluto de todas as propriedades do ModeloPermissao var permissao = new ModeloPermissao { Id = string.IsNullOrEmpty(txtId.Text) ? 0 : Convert.ToInt32(txtId.Text), Nome = txtNome.Text, Descricao = txtDescricao.Text }; // Processa o envio do objeto estruturado para as regras de persistência (BLL / DAL) MessageBox.Show("Permissão gravada no dicionário de segurança!", "LevelOS", MessageBoxButtons.OK, MessageBoxIcon.Information); } protected override void OnAlterar() { txtNome.Focus(); } protected override void OnExcluir() { if (MessageBox.Show("Aviso! Remover esta permissão pode invalidar as checagens de segurança no código-fonte do sistema. Deseja continuar?", "LevelOS", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { // Processa a rotina de exclusão física do banco de dados... OnNovo(); } } protected override void OnLocalizar() { // Aciona o seu Grid de busca para selecionar as permissões instaladas } protected override void OnCancelar() { OnNovo(); } } }