LevelOS-Core/UI/Dashboards/Cadastros/PermissaoPanel.cs

97 lines
3.3 KiB
C#

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();
}
}
}