-
-
Notifications
You must be signed in to change notification settings - Fork 395
/
ogsubitemobjeto.h
91 lines (77 loc) · 3.47 KB
/
ogsubitemobjeto.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/*
# PostgreSQL Database Modeler (pgModeler)
# Sub-project: Biblioteca libobjrenderer
# Classe: OGSubItemObjeto
# Description:Esta classe deriva a classe ObjetoGrafico e implementa a representação gráfica
# de itens (colunas) de tabela/visão.
#
# Copyright 2006-2012 - Raphael Araújo e Silva <rkhaotix@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# The complete text of GPLv3 is at LICENSE file on source code root directory.
# Also, you can get the complete GNU General Public License at <http://www.gnu.org/licenses/>
*/
#ifndef OG_SUBITEM_OBJETO_H
#define OG_SUBITEM_OBJETO_H
#include "visao.h"
#include "tabela.h"
#include "objetografico.h"
class OGSubItemObjeto: public ObjetoGrafico
{
private:
Q_OBJECT
//Objeto descritor do subitem
QGraphicsItem *descritor;
//Rótulos do subitem (nome, tipo e restrições/alias)
QGraphicsSimpleTextItem *rotulos[3];
/* Contanstes usadas para a montagem dos rótulos
das colunas das tabelas quando desenhadas no viewport */
//String que finaliza um bloco de constraints da coluna
static const QString DELIMITADOR_REST_FIM,
//String que inicia um bloco de constraints da coluna
DELIMITADOR_REST_INI,
SEPARADOR_TIPO,
//String que separa os tipos de constraints que se aplicam a coluna
SEPARADOR_REST,
//String que indica a constraint FOREIGN KEY
TEXTO_FOREIGN_KEY,
//String que indica a constraint NOT NULL
TEXTO_NOT_NULL,
//String que indica a constraint PRIMARY KEY
TEXTO_PRIMARY_KEY,
//String que indica a constraint UNIQUE
TEXTO_UNIQUE;
//Configura o descritor do subitem conforme o tipo do objeto de origem
void configurarDescritor(ConstraintType tipo_rest=BaseType::null);
/* Sobrecarga do método da classe QGraphicsItemGroup::itemChange() e sua implentação
controla as alterações durante a seleção e movimentação do objeto. Esta nova implementação
simplismente ignora qualquer mudança no item pois estas são controladas na classe OGTabela/OGVisao */
QVariant itemChange(GraphicsItemChange, const QVariant &value)
{
return(value);
}
public:
OGSubItemObjeto(TableObject *objeto=NULL);
~OGSubItemObjeto(void);
//Configura o subitem como uma referência de visão
void configurarObjeto(Reference referencia);
//Configura o subitem como um objeto de tabela
void configurarObjeto(void);
//Define a posição horizontal de um objeto filho
void definirPosXObjetoFilho(unsigned idx_obj, float px);
//Obtém o objeto filho que compõem o grupo através o índice
QGraphicsItem *obterObjetoFilho(unsigned idx_obj);
/* Retorna uma string formatada para exibição, contendo as configurações de
restrições de uma coluna. Coluna alocadas porém não atribuídas a nenhuma tabela
são ignoradas pelo método */
static QString obterStringRestricoes(Column *coluna);
};
#endif