Ejemplo n.º 1
0
//***********************************************************
ParametroWidget::ParametroWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_PARAMETRO)
{
 try
 {
  QGridLayout *parametro_grid=NULL;
  QSpacerItem *hspacer=NULL;

  Ui_ParametroWidget::setupUi(this);

  tipo_pgsql=NULL;
  tipo_pgsql=new TipoPgSQLWidget(this);
  parametro_grid=new QGridLayout(this);
  hspacer=new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
  parametro_grid->setContentsMargins(0, 0, 0, 0);

  parametro_grid->addWidget(valorpadrao_lbl, 0, 0, 1, 1);
  parametro_grid->addWidget(valorpadrao_edt, 0, 1, 1, 3);
  parametro_grid->addWidget(modo_lbl, 1, 0, 1, 1);
  parametro_grid->addWidget(param_in_chk, 1, 1, 1, 1);
  parametro_grid->addWidget(param_out_chk, 1, 2, 1, 1);
  parametro_grid->addItem(hspacer, 1, 3, 1, 1);
  parametro_grid->addWidget(tipo_pgsql,2,0,1,4);

  configurarLayouFormulario(parametro_grid, OBJETO_PARAMETRO);
  connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));

  janela_pai->setMinimumSize(500, 270);
  janela_pai->setMaximumSize(16777215, 270);
 }
 catch(Excecao &e)
 {
  //Redireciona o erro
  throw Excecao(e.obterMensagemErro(),e.obterTipoErro(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e);
 }
}
Ejemplo n.º 2
0
DominioWidget::DominioWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_DOMINIO)
{
 try
 {
  Ui_DominioWidget::setupUi(this);

  //Cria um destacador de sintaxe no campo de expressão de checagem do domínio
  destaque_expr=NULL;
  destaque_expr=new DestaqueSintaxe(expr_checagem_txt, false);
  destaque_expr->carregarConfiguracao(AtributosGlobais::DIR_CONFIGURACOES +
                                     AtributosGlobais::SEP_DIRETORIO +
                                     AtributosGlobais::CONF_DESTAQUE_SQL +
                                     AtributosGlobais::EXT_CONFIGURACAO);

  tipo_dominio=NULL;
  tipo_dominio=new TipoPgSQLWidget(this);
  dominio_grid->addWidget(tipo_dominio,4,0,1,2);

  configurarLayouFormulario(dominio_grid, OBJETO_DOMINIO);
  connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));

  janela_pai->setMinimumSize(530, 450);
  janela_pai->setMaximumHeight(450);
 }
 catch(Excecao &e)
 {
  //Redireciona o erro
  throw Excecao(e.obterMensagemErro(),e.obterTipoErro(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e);
 }
}
Ejemplo n.º 3
0
CaixaTextoWidget::CaixaTextoWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_CAIXA_TEXTO)
{
 Ui_CaixaTextoWidget::setupUi(this);
 configurarLayouFormulario(caixatexto_grid, OBJETO_CAIXA_TEXTO);
 connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));
 connect(sel_cor_tb, SIGNAL(clicked(void)), this, SLOT(selecionarCorTexto(void)));
 janela_pai->definirBotoes(CaixaMensagem::BOTAO_OK_CANCELAR);
 janela_pai->setMinimumSize(500,250);
}
Ejemplo n.º 4
0
//***********************************************************
RegraWidget::RegraWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_REGRA)
{
 try
 {
  QStringList lista;
  QFrame *frame=NULL;

  Ui_RegraWidget::setupUi(this);

  /* Alocando os destacadores de sintaxe para o campo de expressão
     condicional e de comando sql */
  dest_exp_condicional=new DestaqueSintaxe(exp_condicional_txt, false);
  dest_exp_condicional->carregarConfiguracao(AtributosGlobais::DIR_CONFIGURACOES +
                                      AtributosGlobais::SEP_DIRETORIO +
                                      AtributosGlobais::CONF_DESTAQUE_SQL +
                                      AtributosGlobais::EXT_CONFIGURACAO);

  dest_comando=new DestaqueSintaxe(comando_txt, false);
  dest_comando->carregarConfiguracao(AtributosGlobais::DIR_CONFIGURACOES +
                                     AtributosGlobais::SEP_DIRETORIO +
                                     AtributosGlobais::CONF_DESTAQUE_SQL +
                                     AtributosGlobais::EXT_CONFIGURACAO);

  //Criando a tabela que armazena os comandos SQL da regra
  tab_comandos=new TabelaObjetosWidget(TabelaObjetosWidget::TODOS_BOTOES, true, this);
  tab_comandos->definirRotuloCabecalho(trUtf8("SQL command"),0);
  tab_comandos->definirIconeCabecalho(QPixmap(":/icones/icones/codigosql.png"),0);
  dynamic_cast<QGridLayout *>(comandos_gb->layout())->addWidget(tab_comandos, 1, 0, 1, 2);

  //Gera o frame de informação
  frame=gerarFrameInformacao(trUtf8("To create a rule that does not perform any action (<strong>DO NOTHING</strong>) simply do not specify commands in the SQL commands table."));
  regra_grid->addWidget(frame, regra_grid->count()+1, 0, 1, 0);
  frame->setParent(this);

  configurarLayouFormulario(regra_grid, OBJETO_REGRA);
  janela_pai->setMinimumSize(550, 520);

  //Configurando o combo de tipo de evento com os tipos disponíveis
  TipoEvento::obterTipos(lista);
  tipo_evento_cmb->addItems(lista);

  //Configurando o combo de tipo de execução com os tipos disponíveis
  TipoExecucao::obterTipos(lista);
  tipo_execucao_cmb->addItems(lista);

  connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));
  connect(tab_comandos, SIGNAL(s_linhaAdicionada(int)), this, SLOT(manipularComando(int)));
  connect(tab_comandos, SIGNAL(s_linhaAtualizada(int)), this, SLOT(manipularComando(int)));
  connect(tab_comandos, SIGNAL(s_linhaEditada(int)), this, SLOT(editarComando(int)));
 }
 catch(Excecao &e)
 {
  //Redireciona o erro
  throw Excecao(e.obterMensagemErro(),e.obterTipoErro(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e);
 }
}
Ejemplo n.º 5
0
EspacoTabelaWidget::EspacoTabelaWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_ESPACO_TABELA)
{
 Ui_EspacoTabelaWidget::setupUi(this);
 configurarLayouFormulario(espacotabela_grid, OBJETO_ESPACO_TABELA);

 connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));

 janela_pai->setMinimumSize(480, 260);
 janela_pai->setMaximumSize(16777215, 260);
}
Ejemplo n.º 6
0
BancoDadosWidget::BancoDadosWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_BANCO_DADOS)
{
 map<QString, vector<QWidget *> > mapa_campos;
 QFrame *frame=NULL;
 QLocale loc;
 QStringList lista_loc, codificacoes;
 unsigned i,i1;

 Ui_BancoDadosWidget::setupUi(this);

 connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));
 configurarLayouFormulario(bancodados_grid, OBJETO_BANCO_DADOS);

 //Define os campos exclusivos para cada versão
 mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_83)].push_back(limconexao_lbl);
 mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_84)].push_back(lccollate_lbl);
 mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_84)].push_back(lcctype_lbl);

 //Gera o frame de alerta
 frame=gerarFrameAlertaVersao(mapa_campos);
 bancodados_grid->addWidget(frame, bancodados_grid->count()+1, 0, 1, 0);
 frame->setParent(this);

 //Define as alturas mínimas e máxima do formulário
 janela_pai->setMinimumWidth(530);
 janela_pai->setMinimumHeight(420);
 janela_pai->setMaximumHeight(420);

 //Obtém os nomes das codificações e as insere no combo de codificação
 TipoCodificacao::obterTipos(codificacoes);
 codificacao_cmb->addItems(codificacoes);

 //Obtém todas as localizações padrão e as armazena em uma lista de QString
 for(i=QLocale::C; i <= QLocale::Chewa; i++)
 {
  for(i1=QLocale::Afghanistan; i1 <= QLocale::Zimbabwe; i1++)
  {
   loc=QLocale(static_cast<QLocale::Language>(i),static_cast<QLocale::Country>(i1));
   lista_loc.append(loc.name());
  }
 }

 //Remove as localizações duplicadas
 lista_loc.removeDuplicates();
 //Ordena as localizações
 lista_loc.sort();

 //Insere as localizações nos combos
 lccollate_cmb->addItem(trUtf8("Default"));
 lcctype_cmb->addItem(trUtf8("Default"));
 lccollate_cmb->addItems(lista_loc);
 lcctype_cmb->addItems(lista_loc);
}
Ejemplo n.º 7
0
//***********************************************************
ConversaoTipoWidget::ConversaoTipoWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_CONV_TIPO)
{
 try
 {
  QFont fonte;
  QFrame *frame=NULL;

  Ui_ConversaoTipoWidget::setupUi(this);

  //Alocando os widgets de seleção de tipos envolvidos na conversão
  tipo_dado_orig=NULL;
  tipo_dado_dest=NULL;
  sel_funcao_conv=NULL;

  tipo_dado_orig=new TipoPgSQLWidget(this, tr("Tipo de Dado de Origem"));
  tipo_dado_dest=new TipoPgSQLWidget(this, tr("Tipo de Dado de Destino"));
  //Alocando o widget seletor de função de conversão
  sel_funcao_conv=new SeletorObjetoWidget(OBJETO_FUNCAO, true, this);

  //Insere os widgets alocados no layout do formulário
  convtipo_grid->addWidget(sel_funcao_conv,1,1,1,3);
  convtipo_grid->addWidget(tipo_dado_orig,2,0,1,4);
  convtipo_grid->addWidget(tipo_dado_dest,3,0,1,4);

  configurarLayouFormulario(convtipo_grid, OBJETO_CONV_TIPO);

  /* Deixa como somente-leitura o campo de nome do objeto pois,
     o nome de conversões de tipo são geradas automaticamente */
  nome_edt->setReadOnly(true);
  fonte=nome_edt->font();
  fonte.setItalic(true);
  nome_edt->setFont(fonte);

  //Gera o frame de informação
  frame=gerarFrameInformacao(trUtf8("A função a ser atribuída a uma conversão do <em><strong>tipoA</strong></em> para o <em><strong>tipoB</strong></em>\
                                     deve possuir a seguinte assinatura: <em><strong>tipoB</strong> funcao(<strong>tipoA</strong>, integer, boolean)</em>."));
  convtipo_grid->addWidget(frame, convtipo_grid->count()+1, 0, 1, 0);
  frame->setParent(this);

  connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));

  janela_pai->setMinimumSize(530, 500);
  janela_pai->setMaximumSize(16777215, 500);
 }
 catch(Excecao &e)
 {
  //Redireciona o erro
  throw Excecao(e.obterMensagemErro(),e.obterTipoErro(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e);
 }
}
Ejemplo n.º 8
0
//***********************************************************
LinguagemWidget::LinguagemWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_LINGUAGEM)
{
 try
 {
  map<QString, vector<QWidget *> > mapa_campos;
  QFrame *frame=NULL;
  QString chave_ver;

  Ui_LinguagemWidget::setupUi(this);

  sel_func_handler=NULL;
  sel_func_validator=NULL;
  sel_func_inline=NULL;

  sel_func_handler=new SeletorObjetoWidget(OBJETO_FUNCAO, true, this);
  sel_func_validator=new SeletorObjetoWidget(OBJETO_FUNCAO, true, this);
  sel_func_inline=new SeletorObjetoWidget(OBJETO_FUNCAO, true, this);

  linguagem_grid->addWidget(sel_func_handler,1,1,1,2);
  linguagem_grid->addWidget(sel_func_validator,2,1,1,2);
  linguagem_grid->addWidget(sel_func_inline,3,1,1,2);

  configurarLayouFormulario(linguagem_grid, OBJETO_LINGUAGEM);

  //Gera o frame de informação
  frame=gerarFrameInformacao(trUtf8("The functions to be assigned to the language should have, respectively, the following signatures:<br/><br/>  <strong>Handler Function:</strong> <em>language_handler function()</em><br/>  <strong>Validator Function:</strong> <em>void function(oid)</em><br/>  <strong>Inline Function:</strong> <em>void function(internal)</em>"));
  linguagem_grid->addWidget(frame, linguagem_grid->count()+1, 0, 1, 0);
  frame->setParent(this);

  //Define os campos exclusivos para cada versão
  chave_ver=gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_84);
  mapa_campos[chave_ver].push_back(func_inline_lbl);
  //Gera o frame de alerta
  frame=gerarFrameAlertaVersao(mapa_campos);
  linguagem_grid->addWidget(frame, linguagem_grid->count()+1, 0, 1, 0);
  frame->setParent(this);

  connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));

  janela_pai->setMinimumSize(550, 510);
  janela_pai->setMaximumSize(16777215, 510);
 }
 catch(Excecao &e)
 {
  //Redireciona o erro
  throw Excecao(e.obterMensagemErro(),e.obterTipoErro(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e);
 }
}
Ejemplo n.º 9
0
//***********************************************************
SequenciaWidget::SequenciaWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_SEQUENCIA)
{
 try
 {
  map<QString, vector<QWidget *> > mapa_campos;
  QFrame *frame=NULL;

  Ui_SequenciaWidget::setupUi(this);
  sel_coluna=NULL;
  sel_coluna=new SeletorObjetoWidget(OBJETO_COLUNA, true, this);

  //Adicionando os objetos recém alocados no layout do formulário
  sequencia_grid->addWidget(sel_coluna,3,1,1,3);

  //Define os campos exclusivos para cada versão
  mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_83)].push_back(possuidora_lbl);

  //Gera o frame de alerta
  frame=gerarFrameAlertaVersao(mapa_campos);
  sequencia_grid->addWidget(frame, sequencia_grid->count()+1, 0, 1, 0);
  frame->setParent(this);

  configurarLayouFormulario(sequencia_grid, OBJETO_SEQUENCIA);

  connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));

  janela_pai->resize(540, 410);
  janela_pai->setMinimumWidth(540);
  janela_pai->setMinimumHeight(430);
  janela_pai->setMaximumHeight(430);
 }
 catch(Excecao &e)
 {
  //Redireciona o erro
  throw Excecao(e.obterMensagemErro(),e.obterTipoErro(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e);
 }
}
Ejemplo n.º 10
0
//***********************************************************
GatilhoWidget::GatilhoWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_GATILHO)
{
 try
 {
  QStringList lista;
  map<QString, vector<QWidget *> > mapa_campos;
  map<QWidget *, vector<QString> > mapa_valores;
  QFrame *frame=NULL;

  Ui_GatilhoWidget::setupUi(this);

  //Cria um destacador de sintaxe no campo de expressão de checagem
  dest_exp_condicional=new DestaqueSintaxe(exp_condicional_txt, false);
  dest_exp_condicional->carregarConfiguracao(AtributosGlobais::DIR_CONFIGURACOES +
                                     AtributosGlobais::SEP_DIRETORIO +
                                     AtributosGlobais::CONF_DESTAQUE_SQL +
                                     AtributosGlobais::EXT_CONFIGURACAO);

  //Aloca as tabelas que recebem as colunas usadas na restrição
  tab_colunas=new TabelaObjetosWidget(TabelaObjetosWidget::TODOS_BOTOES ^
                                    (TabelaObjetosWidget::BTN_EDITAR_ITEM |
                                     TabelaObjetosWidget::BTN_ATUALIZAR_ITEM), true, this);

  tab_argumentos=new TabelaObjetosWidget(TabelaObjetosWidget::TODOS_BOTOES, true, this);

  //Alocando seletor de tabela referenciada
  sel_tabela_ref=new SeletorObjetoWidget(OBJETO_TABELA, true, this);
  sel_funcao=new SeletorObjetoWidget(OBJETO_FUNCAO, true, this);
  gatilho_grid->addWidget(sel_funcao, 5, 1, 1, 2);
  gatilho_grid->addWidget(sel_tabela_ref, 6, 1, 1, 2);

  //Configurando as tabelas com 2 colunas (nome da coluna e tipo)
  tab_colunas->definirNumColunas(2);
  tab_colunas->definirRotuloCabecalho(trUtf8("Coluna"), 0);
  tab_colunas->definirIconeCabecalho(QPixmap(":/icones/icones/column.png"),0);
  tab_colunas->definirRotuloCabecalho(trUtf8("Tipo"), 1);
  tab_colunas->definirIconeCabecalho(QPixmap(":/icones/icones/usertype.png"),1);

  dynamic_cast<QGridLayout *>(arg_cols_tbw->widget(0)->layout())->addWidget(tab_colunas, 1,0,1,3);
  dynamic_cast<QGridLayout *>(arg_cols_tbw->widget(1)->layout())->addWidget(tab_argumentos, 1,0,1,3);

  //Configurando o combo de tipo de postergação com os tipos disponíveis
  TipoPostergacao::obterTipos(lista);
  tipo_postergacao_cmb->addItems(lista);

  //Configurando o combo de tipo disparo  com os tipos disponíveis
  TipoDisparo::obterTipos(lista);
  tipo_disparo_cmb->addItems(lista);

  //Define os campos exclusivos para cada versão
  mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_84)].push_back(truncate_chk);
  mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_90)].push_back(exp_condicional_lbl);
  mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_90)].push_back(coluna_lbl);
  mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_91)].push_back(tipo_disparo_lbl);
  mapa_valores[tipo_disparo_lbl].push_back(tipo_disparo_cmb->itemText(tipo_disparo_cmb->count()-1));

  //Gera o frame de alerta
  frame=gerarFrameAlertaVersao(mapa_campos, &mapa_valores);
  gatilho_grid->addWidget(frame, gatilho_grid->count()+1, 0, 1, 0);
  frame->setParent(this);

  configurarLayouFormulario(gatilho_grid, OBJETO_GATILHO);
  janela_pai->setMinimumSize(600, 640);

  connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));
  connect(postergavel_chk, SIGNAL(toggled(bool)), tipo_postergacao_cmb, SLOT(setEnabled(bool)));
  connect(postergavel_chk, SIGNAL(toggled(bool)), tipo_postergacao_lbl, SLOT(setEnabled(bool)));
  connect(tab_colunas, SIGNAL(s_linhaAdicionada(int)), this, SLOT(adicionarColuna(int)));
  connect(tab_colunas, SIGNAL(s_linhaRemovida(int)), this, SLOT(atualizarComboColunas(void)));
  connect(tab_colunas, SIGNAL(s_linhasRemovidas(void)), this, SLOT(atualizarComboColunas(void)));
  connect(tab_argumentos, SIGNAL(s_linhaAdicionada(int)), this, SLOT(manipularArgumento(int)));
  connect(tab_argumentos, SIGNAL(s_linhaAtualizada(int)), this, SLOT(manipularArgumento(int)));
  connect(tab_argumentos, SIGNAL(s_linhaEditada(int)), this, SLOT(editarArgumento(int)));
  connect(gat_rest_chk, SIGNAL(toggled(bool)), this, SLOT(definirGratilhoRestricao(bool)));
 }
 catch(Excecao &e)
 {
  //Redireciona o erro
  throw Excecao(e.obterMensagemErro(),e.obterTipoErro(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e);
 }
}
Ejemplo n.º 11
0
//***********************************************************
TipoWidget::TipoWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_TIPO)
{
 try
 {
  QGridLayout *grid=NULL;
  QFrame *frame=NULL;
  QSpacerItem *spacer=NULL;
  map<QString, vector<QWidget *> > mapa_campos;
  QStringList lista;
  unsigned i;

  Ui_TipoWidget::setupUi(this);
  configurarLayouFormulario(tipo_grid, OBJETO_TIPO);

  //Aloca os widgets de configuração de tipos
  tipo_copia=NULL;
  tipo_copia=new TipoPgSQLWidget(this, trUtf8("Copy Type"));
  tipo_elemento=NULL;
  tipo_elemento=new TipoPgSQLWidget(this, trUtf8("Element Type"));

  //Cria um layout e insere os widgets de tipo
  grid=dynamic_cast<QGridLayout *>(atrib_base_twg->widget(0)->layout());
  spacer=new QSpacerItem(20, 1, QSizePolicy::Minimum, QSizePolicy::Expanding);
  grid->addWidget(tipo_copia,6,0,1,0);
  grid->addWidget(tipo_elemento,7,0,1,0);
  grid->addItem(spacer,8,0);

  //Aloca os seletores de funções e os insere do layout da aba de funções
  grid=dynamic_cast<QGridLayout *>(atrib_base_twg->widget(1)->layout());
  for(i=Tipo::FUNCAO_INPUT; i <= Tipo::FUNCAO_ANALYZE; i++)
  {
   sel_funcoes[i]=NULL;
   sel_funcoes[i]=new SeletorObjetoWidget(OBJETO_FUNCAO, true, this);
   grid->addWidget(sel_funcoes[i],i,1,1,1);
  }

  //Aloca a tabela de enumerações e a insere no layout do grupo de atributos de enumerações
  tab_enumeracoes=new TabelaObjetosWidget(TabelaObjetosWidget::TODOS_BOTOES ^
                                         TabelaObjetosWidget::BTN_EDITAR_ITEM, false, this);
  grid=dynamic_cast<QGridLayout *>(enumeracoes_gb->layout());
  grid->addWidget(tab_enumeracoes,1,0,1,2);
  enumeracoes_gb->setVisible(false);

  //Aloca a tabela de atributos e a insere no layout do grupo de atributos de tipo composto
  tab_atributos=new TabelaObjetosWidget(TabelaObjetosWidget::TODOS_BOTOES ^
                                       TabelaObjetosWidget::BTN_ATUALIZAR_ITEM, false, this);
  tab_atributos->definirNumColunas(2);
  tab_atributos->definirRotuloCabecalho(trUtf8("Name"),0);
  tab_atributos->definirIconeCabecalho(QPixmap(":/icones/icones/uid.png"),0);
  tab_atributos->definirRotuloCabecalho(trUtf8("Type"),1);
  tab_atributos->definirIconeCabecalho(QPixmap(":/icones/icones/usertype.png"),1);

  grid=new QGridLayout;
  grid->setContentsMargins(2,2,2,2);
  grid->addWidget(tab_atributos,0,0);
  atributos_gb->setLayout(grid);
  atributos_gb->setVisible(false);

  //Configura um alerta de versão com os campos específicos das versões
  mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_83)].push_back(enumeracao_rb);
  mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_84)].push_back(categoria_lbl);
  mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_84)].push_back(preferido_lbl);
  mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_84)].push_back(tipo_copia);
  frame=gerarFrameAlertaVersao(mapa_campos);
  tipo_grid->addWidget(frame, tipo_grid->count()+1, 0, 1, 0);
  frame->setParent(this);

  //Gera o frame de informação
  grid=dynamic_cast<QGridLayout *>(atrib_base_twg->widget(1)->layout());
  frame=gerarFrameInformacao(trUtf8("The functions to be assigned to a type should be written in C language and possess, respectively, the following signatures:<br/>  <table>   <tr>    <td><strong>INPUT:</strong> <em>any function(cstring, oid, integer)</em></td>    <td><strong>OUTPUT:</strong> <em>cstring function(any)</em></td>   </tr>   <tr>    <td><strong>SEND:</strong> <em>byta function(any)</em></td>    <td><strong>RECV:</strong> <em>any function(internal, oid, integer)</em></td>   </tr>   <tr>    <td><strong>TPMOD_IN:</strong> <em>integer function(cstring[])</em></td>    <td><strong>TPMOD_OUT:</strong> <em>cstring function(integer)</em></td>   </tr>   <tr>    <td><strong>ANALYZE:</strong> <em>boolean function(internal)</em></td>    <tr>  </table>"));
  grid->addWidget(frame, grid->count()+1, 0, 1, 0);
  frame->setParent(atrib_base_twg->widget(1));

  connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));
  connect(tipo_base_rb, SIGNAL(toggled(bool)), this, SLOT(selecionarConfiguracaoTipo(void)));
  connect(composto_rb, SIGNAL(toggled(bool)), this, SLOT(selecionarConfiguracaoTipo(void)));
  connect(enumeracao_rb, SIGNAL(toggled(bool)), this, SLOT(selecionarConfiguracaoTipo(void)));

  connect(tab_enumeracoes, SIGNAL(s_linhaAdicionada(int)), this, SLOT(manipularEnumeracao(int)));
  connect(tab_enumeracoes, SIGNAL(s_linhaAtualizada(int)), this, SLOT(manipularEnumeracao(int)));

  connect(tab_atributos, SIGNAL(s_linhaAdicionada(int)), this, SLOT(exibirFormAtributo(void)));
  connect(tab_atributos, SIGNAL(s_linhaEditada(int)), this, SLOT(exibirFormAtributo(void)));

  janela_pai->setMinimumSize(625, 765);

  //Preenche o combo box com os tipos de armazenamento disponíveis
  TipoArmazenamento::obterTipos(lista);
  armazenamento_cmb->addItems(lista);

  //Preenche o combo box com os tipos de categoria disponíveis
  TipoCategoria::obterTipos(lista);
  categoria_cmb->addItems(lista);
 }
 catch(Excecao &e)
 {
  //Redireciona o erro
  throw Excecao(e.obterMensagemErro(),e.obterTipoErro(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e);
 }
}
Ejemplo n.º 12
0
//***********************************************************
RelacionamentoWidget::RelacionamentoWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_RELACAO)
{
 try
 {
  QStringList lista;
  QGridLayout *grid=NULL;
  QFrame *frame=NULL;

  Ui_RelacionamentoWidget::setupUi(this);
  //Alocando e configurando os destcadores de nomes das tabelas
  dest_tab_orig=NULL;
  qtd_operacoes=0;
  dest_tab_orig=new DestaqueSintaxe(tabela_orig_txt, false);
  dest_tab_orig->carregarConfiguracao(AtributosGlobais::DIR_CONFIGURACOES +
                                     AtributosGlobais::SEP_DIRETORIO +
                                     AtributosGlobais::CONF_DESTAQUE_SQL +
                                     AtributosGlobais::EXT_CONFIGURACAO);

  dest_tab_dest=NULL;
  dest_tab_dest=new DestaqueSintaxe(tabela_dest_txt, false);
  dest_tab_dest->carregarConfiguracao(AtributosGlobais::DIR_CONFIGURACOES +
                                     AtributosGlobais::SEP_DIRETORIO +
                                     AtributosGlobais::CONF_DESTAQUE_SQL +
                                     AtributosGlobais::EXT_CONFIGURACAO);

  //Alocando as tabela de atributos e restrições do relacionamento
  tab_atributos=new TabelaObjetosWidget(TabelaObjetosWidget::TODOS_BOTOES ^
                                       (TabelaObjetosWidget::BTN_ATUALIZAR_ITEM |
                                        TabelaObjetosWidget::BTN_MOVER_ITENS), true, this);

  tab_restricoes=new TabelaObjetosWidget(TabelaObjetosWidget::TODOS_BOTOES  ^
                                        (TabelaObjetosWidget::BTN_ATUALIZAR_ITEM |
                                        TabelaObjetosWidget::BTN_MOVER_ITENS), true, this);

  //Configurando os rótulos e ícones das colunas das tabelas
  tab_atributos->definirNumColunas(2);
  tab_atributos->definirRotuloCabecalho(trUtf8("Attribute"), 0);
  tab_atributos->definirIconeCabecalho(QPixmap(":/icones/icones/column.png"),0);
  tab_atributos->definirRotuloCabecalho(trUtf8("Type"), 1);
  tab_atributos->definirIconeCabecalho(QPixmap(":/icones/icones/usertype.png"),1);

  tab_restricoes->definirNumColunas(2);
  tab_restricoes->definirRotuloCabecalho(trUtf8("Constraint"), 0);
  tab_restricoes->definirIconeCabecalho(QPixmap(":/icones/icones/constraint.png"),0);
  tab_restricoes->definirRotuloCabecalho(trUtf8("Type"), 1);
  tab_restricoes->definirIconeCabecalho(QPixmap(":/icones/icones/usertype.png"),1);

  //Adiciona as tabelas alocadas às respectivas abas
  grid=new QGridLayout;
  grid->addWidget(tab_atributos, 0,0,1,1);
  grid->setContentsMargins(2,2,2,2);
  atributosrel_tbw->widget(1)->setLayout(grid);

  grid=new QGridLayout;
  grid->addWidget(tab_restricoes, 0,0,1,1);
  grid->setContentsMargins(2,2,2,2);
  atributosrel_tbw->widget(2)->setLayout(grid);

  grid=dynamic_cast<QGridLayout *>(atributosrel_tbw->widget(0)->layout());
  //Gera um frame de alerta sobre a edição de atributos do relacionamento
  frame=gerarFrameInformacao(trUtf8("Editing attributes of an existing relationship is allowed, but must be done carefully because it may break references to columns and cause invalidation of objects such as triggers, indexes, constraints and sequences."));
  grid->addWidget(frame, grid->count()+1, 0, 1, 3);
  frame->setParent(atributosrel_tbw->widget(0));

  grid=dynamic_cast<QGridLayout *>(atributosrel_tbw->widget(3)->layout());
  //Gera um frame de informação sobre a criação de chave primária especial
  frame=gerarFrameInformacao(trUtf8("Use the special primary key if you want to include a primary key containing inherited / copied columns to the receiving table. This is a feature available only for generalization / dependency relationships."));

  grid->addWidget(frame, 1, 0, 1, 1);
  frame->setParent(atributosrel_tbw->widget(3));

  configurarLayouFormulario(relacionamento_grid, OBJETO_RELACAO);
  janela_pai->setMinimumSize(600, 520);

  //Configurando o combo de tipo de postergação com os tipos disponíveis
  TipoPostergacao::obterTipos(lista);
  tipo_postergacao_cmb->addItems(lista);

  connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));
  connect(janela_pai->cancelar_btn,SIGNAL(clicked(bool)), this, SLOT(cancelarConfiguracao(void)));
  connect(postergavel_chk, SIGNAL(toggled(bool)), tipo_postergacao_cmb, SLOT(setEnabled(bool)));
  connect(postergavel_chk, SIGNAL(toggled(bool)), tipo_postergacao_lbl, SLOT(setEnabled(bool)));

  connect(sufixo_auto_chk, SIGNAL(toggled(bool)), sufixo_orig_lbl, SLOT(setDisabled(bool)));
  connect(sufixo_auto_chk, SIGNAL(toggled(bool)), sufixo_orig_edt, SLOT(setDisabled(bool)));
  connect(sufixo_auto_chk, SIGNAL(toggled(bool)), sufixo_dest_lbl, SLOT(setDisabled(bool)));
  connect(sufixo_auto_chk, SIGNAL(toggled(bool)), sufixo_dest_edt, SLOT(setDisabled(bool)));

  connect(identificador_chk, SIGNAL(toggled(bool)), tab_orig_obrig_chk, SLOT(setDisabled(bool)));
  connect(identificador_chk, SIGNAL(toggled(bool)), tab_dest_obrig_chk, SLOT(setDisabled(bool)));

  connect(tab_atributos, SIGNAL(s_linhasRemovidas(void)), this, SLOT(removerObjetos(void)));
  connect(tab_atributos, SIGNAL(s_linhaAdicionada(int)), this, SLOT(adicionarObjeto(void)));
  connect(tab_atributos, SIGNAL(s_linhaEditada(int)), this, SLOT(editarObjeto(int)));
  connect(tab_atributos, SIGNAL(s_linhaRemovida(int)), this, SLOT(removerObjeto(int)));

  connect(tab_restricoes, SIGNAL(s_linhasRemovidas(void)), this, SLOT(removerObjetos(void)));
  connect(tab_restricoes, SIGNAL(s_linhaAdicionada(int)), this, SLOT(adicionarObjeto(void)));
  connect(tab_restricoes, SIGNAL(s_linhaEditada(int)), this, SLOT(editarObjeto(int)));
  connect(tab_restricoes, SIGNAL(s_linhaRemovida(int)), this, SLOT(removerObjeto(int)));

 }
 catch(Excecao &e)
 {
  //Redireciona o erro
  throw Excecao(e.obterMensagemErro(),e.obterTipoErro(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e);
 }
}
Ejemplo n.º 13
0
//***********************************************************
FuncaoWidget::FuncaoWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_FUNCAO)
{
 try
 {
  QStringList tipos;
  QGridLayout *grid=NULL, *grid1=NULL;
  map<QString, vector<QWidget *> > mapa_campos;
  QFrame *frame=NULL;

  Ui_FuncaoWidget::setupUi(this);
  configurarLayouFormulario(funcao_grid, OBJETO_FUNCAO);

  connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));

  //Aloca um destacador de código fonte para o campo de definição da função
  destaque_codigo=new DestaqueSintaxe(codigofonte_txt, true);

  //Aloca o widget de configuração de tipo de retorno simples
  tipo_ret=new TipoPgSQLWidget(this);

  /* Aloca a tabela que armazena as colunas da tabela de retorno.
     Esta tabela possui 2 colunas que são o Nome da coluna e o tipo de dado */
  tab_retorno=new TabelaObjetosWidget(TabelaObjetosWidget::TODOS_BOTOES ^
                                     TabelaObjetosWidget::BTN_ATUALIZAR_ITEM, true, this);
  tab_retorno->definirNumColunas(2);
  tab_retorno->definirRotuloCabecalho(trUtf8("Coluna"), 0);
  tab_retorno->definirIconeCabecalho(QPixmap(":/icones/icones/column.png"),0);
  tab_retorno->definirRotuloCabecalho(trUtf8("Tipo"), 1);
  tab_retorno->definirIconeCabecalho(QPixmap(":/icones/icones/usertype.png"),1);

   /* Aloca a tabela que armazena os parâmetros da função.
     Esta tabela possui 4 colunas que são:
     Nome do parâmetro, tipo do parâmetro, comportamento do parâmetro (IN/OUT),
     valor padrâo do parâmetro */
  tab_parametros=new TabelaObjetosWidget(TabelaObjetosWidget::TODOS_BOTOES ^
                                        TabelaObjetosWidget::BTN_ATUALIZAR_ITEM, true, this);
  tab_parametros->definirNumColunas(4);
  tab_parametros->definirRotuloCabecalho(trUtf8("Nome"),0);
  tab_parametros->definirIconeCabecalho(QPixmap(":/icones/icones/parameter.png"),0);
  tab_parametros->definirRotuloCabecalho(trUtf8("Tipo"),1);
  tab_parametros->definirIconeCabecalho(QPixmap(":/icones/icones/usertype.png"),1);
  tab_parametros->definirRotuloCabecalho(trUtf8("IN/OUT"),2);
  tab_parametros->definirRotuloCabecalho(trUtf8("Valor Padrão"),3);

  grid=new QGridLayout;
  grid->addWidget(tab_parametros,0,0,1,1);
  grid->setContentsMargins(2,2,2,2);
  funcaowidget_twg->widget(1)->setLayout(grid);

  grid=dynamic_cast<QGridLayout *>(funcaowidget_twg->widget(0)->layout());
  grid->addWidget(tipo_ret, grid->count(), 0, 1, 4);
  grid->addWidget(tabela_ret_gb, grid->count()-1, 0, 1, 4);

  grid1=new QGridLayout;
  grid1->addWidget(tab_retorno, 0, 0, 1, 1);
  grid1->setContentsMargins(2,2,2,2);
  tabela_ret_gb->setLayout(grid1);
  tabela_ret_gb->setVisible(false);

  //Define os campos exclusivos para cada versão
  mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_84)].push_back(tabela_rb);
  mapa_campos[gerarIntervaloVersoes(APOS_VERSAO, ParserEsquema::VERSAO_PGSQL_84)].push_back(func_janela_lbl);

  //Gera o frame de alerta
  frame=gerarFrameAlertaVersao(mapa_campos);
  grid->addWidget(frame, grid->count()+1, 0, 1, 0);
  frame->setParent(funcaowidget_twg->widget(0));

  janela_pai->setMinimumSize(645, 715);

  //Configura o combo de tipos de segurança da função
  TipoSeguranca::obterTipos(tipos);
  seguranca_cmb->addItems(tipos);

  //Configura o combo de tipo da função
  TipoFuncao::obterTipos(tipos);
  tipo_func_cmb->addItems(tipos);

  //Configura o combo de tipo de comportamento da função
  TipoComportamento::obterTipos(tipos);
  comportamento_cmb->addItems(tipos);

  connect(simples_rb, SIGNAL(clicked(bool)), this, SLOT(alternarTiposRetorno(void)));
  connect(conjunto_rb, SIGNAL(clicked(bool)), this, SLOT(alternarTiposRetorno(void)));
  connect(tabela_rb, SIGNAL(clicked(bool)), this, SLOT(alternarTiposRetorno(void)));
  connect(linguagem_cmb, SIGNAL(currentIndexChanged(int)), this, SLOT(selecionarLinguagem(void)));

  connect(tab_parametros, SIGNAL(s_linhaAdicionada(int)), this, SLOT(exibirFormParametro()));
  connect(tab_parametros, SIGNAL(s_linhaEditada(int)), this, SLOT(exibirFormParametro()));
  connect(tab_retorno, SIGNAL(s_linhaAdicionada(int)), this, SLOT(exibirFormParametro()));
  connect(tab_retorno, SIGNAL(s_linhaEditada(int)), this, SLOT(exibirFormParametro()));
 }
 catch(Excecao &e)
 {
  //Redireciona o erro
  throw Excecao(e.obterMensagemErro(),e.obterTipoErro(),__PRETTY_FUNCTION__,__FILE__,__LINE__, &e);
 }
}
Ejemplo n.º 14
0
//***********************************************************
TabelaWidget::TabelaWidget(QWidget *parent): ObjetoBaseWidget(parent, OBJETO_TABELA)
{
 //QStringList lista;
 QGridLayout *grid=NULL;
 TabelaObjetosWidget *tab=NULL;
 TipoObjetoBase tipos[]={ OBJETO_COLUNA, OBJETO_RESTRICAO, OBJETO_GATILHO,
                          OBJETO_REGRA, OBJETO_INDICE };

 Ui_TabelaWidget::setupUi(this);

 qtd_operacoes=0;

 //Configura as tabelas que armazenam os objetos da tabela
 for(unsigned i=0; i < 5; i++)
 {
  //Aloca a tabela do tipo atual
  tab=new TabelaObjetosWidget(TabelaObjetosWidget::TODOS_BOTOES ^
                             (TabelaObjetosWidget::BTN_ATUALIZAR_ITEM), true, this);
  /* Armazena sua referência no mapa para facilitar as operações onde
     se precisa obter a tabela de um tipo de objeto de tabela específico */
  mapa_tab_objetos[tipos[i]]=tab;

  grid=new QGridLayout;
  grid->addWidget(tab, 0,0,1,1);
  grid->setContentsMargins(2,2,2,2);
  atributos_tbw->widget(i)->setLayout(grid);

  //Conecta os sinais/slots na tabela alocada
  connect(tab, SIGNAL(s_linhasRemovidas(void)), this, SLOT(removerObjetos(void)));
  connect(tab, SIGNAL(s_linhaRemovida(int)), this, SLOT(removerObjeto(int)));
  connect(tab, SIGNAL(s_linhaAdicionada(int)), this, SLOT(manipularObjeto(void)));
  connect(tab, SIGNAL(s_linhaEditada(int)), this, SLOT(manipularObjeto(void)));
  connect(tab, SIGNAL(s_linhasMovidas(int,int)), this, SLOT(moverObjetos(int,int)));
 }

 //Configura as colunas e rótulos das tabelas de objetos
 mapa_tab_objetos[OBJETO_COLUNA]->definirNumColunas(4);
 mapa_tab_objetos[OBJETO_COLUNA]->definirRotuloCabecalho(trUtf8("Name"), 0);
 mapa_tab_objetos[OBJETO_COLUNA]->definirIconeCabecalho(QPixmap(":/icones/icones/column.png"),0);
 mapa_tab_objetos[OBJETO_COLUNA]->definirRotuloCabecalho(trUtf8("Type"), 1);
 mapa_tab_objetos[OBJETO_COLUNA]->definirIconeCabecalho(QPixmap(":/icones/icones/usertype.png"),1);
 mapa_tab_objetos[OBJETO_COLUNA]->definirRotuloCabecalho(trUtf8("Default Value"), 2);
 mapa_tab_objetos[OBJETO_COLUNA]->definirRotuloCabecalho(trUtf8("Attribute"), 3);

 mapa_tab_objetos[OBJETO_RESTRICAO]->definirNumColunas(4);
 mapa_tab_objetos[OBJETO_RESTRICAO]->definirRotuloCabecalho(trUtf8("Name"), 0);
 mapa_tab_objetos[OBJETO_RESTRICAO]->definirIconeCabecalho(QPixmap(":/icones/icones/column.png"),0);
 mapa_tab_objetos[OBJETO_RESTRICAO]->definirRotuloCabecalho(trUtf8("Type"), 1);
 mapa_tab_objetos[OBJETO_RESTRICAO]->definirIconeCabecalho(QPixmap(":/icones/icones/usertype.png"),1);
 mapa_tab_objetos[OBJETO_RESTRICAO]->definirRotuloCabecalho(trUtf8("ON DELETE"), 2);
 mapa_tab_objetos[OBJETO_RESTRICAO]->definirRotuloCabecalho(trUtf8("ON UPDATE"), 3);

 mapa_tab_objetos[OBJETO_GATILHO]->definirNumColunas(4);
 mapa_tab_objetos[OBJETO_GATILHO]->definirRotuloCabecalho(trUtf8("Name"), 0);
 mapa_tab_objetos[OBJETO_GATILHO]->definirIconeCabecalho(QPixmap(":/icones/icones/column.png"),0);
 mapa_tab_objetos[OBJETO_GATILHO]->definirRotuloCabecalho(trUtf8("Refer. Table"), 1);
 mapa_tab_objetos[OBJETO_GATILHO]->definirIconeCabecalho(QPixmap(":/icones/icones/table.png"),1);
 mapa_tab_objetos[OBJETO_GATILHO]->definirRotuloCabecalho(trUtf8("Firing"), 2);
 mapa_tab_objetos[OBJETO_GATILHO]->definirIconeCabecalho(QPixmap(":/icones/icones/trigger.png"),2);
 mapa_tab_objetos[OBJETO_GATILHO]->definirRotuloCabecalho(trUtf8("Events"), 3);

 mapa_tab_objetos[OBJETO_REGRA]->definirNumColunas(3);
 mapa_tab_objetos[OBJETO_REGRA]->definirRotuloCabecalho(trUtf8("Name"), 0);
 mapa_tab_objetos[OBJETO_REGRA]->definirIconeCabecalho(QPixmap(":/icones/icones/column.png"),0);
 mapa_tab_objetos[OBJETO_REGRA]->definirRotuloCabecalho(trUtf8("Execution"), 1);
 mapa_tab_objetos[OBJETO_REGRA]->definirRotuloCabecalho(trUtf8("Event"), 2);

 mapa_tab_objetos[OBJETO_INDICE]->definirNumColunas(2);
 mapa_tab_objetos[OBJETO_INDICE]->definirRotuloCabecalho(trUtf8("Name"), 0);
 mapa_tab_objetos[OBJETO_INDICE]->definirIconeCabecalho(QPixmap(":/icones/icones/column.png"),0);
 mapa_tab_objetos[OBJETO_INDICE]->definirRotuloCabecalho(trUtf8("Indexing"), 1);

 configurarLayouFormulario(tabela_grid, OBJETO_TABELA);
 janela_pai->setMinimumSize(550, 500);

 connect(janela_pai->aplicar_ok_btn,SIGNAL(clicked(bool)), this, SLOT(aplicarConfiguracao(void)));
 connect(janela_pai->cancelar_btn,SIGNAL(clicked(bool)), this, SLOT(cancelarConfiguracao(void)));
}