├── .classpath ├── .fatjar ├── .project ├── .settings └── org.eclipse.jdt.core.prefs ├── META-INF ├── INDEX.LIST ├── MANIFEST.MF └── services │ └── java.sql.Driver ├── ProgramAR_-_Linux32.jar ├── ProgramAR_-_Linux64.jar ├── ProgramAR_-_Windows32.jar ├── ProgramAR_-_Windows64.jar ├── README.md ├── _config.yml ├── fonte └── Algebra.ttf ├── lib ├── mm.mysql-2.0.14-you-must-unjar-me.jar ├── mysql-connector-java-5.1.16-bin.jar ├── org.eclipse.swt.win32.win32.x86_3.7.1.v3738a.jar ├── org.eclipse.swt.win64._3.7.1.v3738.jar └── org.eclipse.swt_3.7.1.v3738a.jar ├── programAR-db.sql └── src └── Algebra └── Cliente ├── AccessExcel.java ├── Algebra.ttf ├── AlgebraRelacional.java ├── CriaConexao.java ├── ExecutaAlgebra.java ├── FormataAlgebraTexto.java ├── ParametroAlgebraTexto.java ├── RegistroArquivo.java ├── Tela_Principal.java └── ui └── LocalPath.java /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.fatjar: -------------------------------------------------------------------------------- 1 | #Fat Jar Configuration File 2 | #Mon Sep 19 22:49:15 BRT 2011 3 | onejar.license.required=true 4 | manifest.classpath= 5 | manifest.removesigners=true 6 | onejar.checkbox=false 7 | jarname=ProgramAR - Linux.jar 8 | manifest.mergeall=true 9 | manifest.mainclass=Algebra.Cliente.ui.LocalPath 10 | manifest.file= 11 | jarname.isextern=false 12 | onejar.expand= 13 | excludes= 14 | includes= 15 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ProgramAR 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | #Fri May 06 12:39:48 GMT-03:00 2011 2 | eclipse.preferences.version=1 3 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 4 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 5 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 6 | org.eclipse.jdt.core.compiler.compliance=1.6 7 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 8 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 9 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 10 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 11 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 12 | org.eclipse.jdt.core.compiler.source=1.6 13 | -------------------------------------------------------------------------------- /META-INF/INDEX.LIST: -------------------------------------------------------------------------------- 1 | JarIndex-Version: 1.0 2 | 3 | mysql-connector-java-5.1.9-bin.jar 4 | com 5 | com/mysql 6 | com/mysql/jdbc 7 | com/mysql/jdbc/configs 8 | com/mysql/jdbc/exceptions 9 | com/mysql/jdbc/exceptions/jdbc4 10 | com/mysql/jdbc/integration 11 | com/mysql/jdbc/integration/c3p0 12 | com/mysql/jdbc/integration/jboss 13 | com/mysql/jdbc/interceptors 14 | com/mysql/jdbc/jdbc2 15 | com/mysql/jdbc/jdbc2/optional 16 | com/mysql/jdbc/log 17 | com/mysql/jdbc/profiler 18 | com/mysql/jdbc/util 19 | org 20 | org/gjt 21 | org/gjt/mm 22 | org/gjt/mm/mysql 23 | 24 | -------------------------------------------------------------------------------- /META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: . 3 | Main-Class: Algebra.Cliente.ui.LocalPath 4 | 5 | Name: common 6 | Implementation-Vendor: Sun Microsystems Inc. 7 | Implementation-Title: MySQL Connector/J 8 | Implementation-Version: 5.1.9 9 | Implementation-Vendor-Id: com.mysql 10 | Specification-Vendor: Sun Microsystems Inc. 11 | Specification-Title: JDBC 12 | Specification-Version: 4.0 13 | 14 | -------------------------------------------------------------------------------- /META-INF/services/java.sql.Driver: -------------------------------------------------------------------------------- 1 | com.mysql.jdbc.Driver -------------------------------------------------------------------------------- /ProgramAR_-_Linux32.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FORMAS/programar/94de866303d5baae4ab3de9384f20c9d5000482e/ProgramAR_-_Linux32.jar -------------------------------------------------------------------------------- /ProgramAR_-_Linux64.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FORMAS/programar/94de866303d5baae4ab3de9384f20c9d5000482e/ProgramAR_-_Linux64.jar -------------------------------------------------------------------------------- /ProgramAR_-_Windows32.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FORMAS/programar/94de866303d5baae4ab3de9384f20c9d5000482e/ProgramAR_-_Windows32.jar -------------------------------------------------------------------------------- /ProgramAR_-_Windows64.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FORMAS/programar/94de866303d5baae4ab3de9384f20c9d5000482e/ProgramAR_-_Windows64.jar -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Uma ferramenta para o ensino da Álgebra Relacional 2 | 3 | O armazenamento dos dados é um componente essencial da vida na sociedade moderna. Diariamente, diversas atividades que envolvem alguma interação com um banco de dados ocorrem, tais como um depósito ou saque em uma agencia bancaria, uma reserva em um hotel ou compra de um bilhete de voo, acesso ao catálogo de uma biblioteca virtual ou ainda uma compra online. Essas interações são exemplos do que se pode chamar de aplicações de banco de dados [ELMASRI, NAVATHE, 2010]. 4 | 5 | O desenvolvimento de um Banco de Dados requer estudos aprofundados na modelagem deste banco, mapeamento, consulta aos dados de um SGBD, a linguagem SQL (Structured Query Language) e o desenvolvimento de aplicações que fazem uso destes dados. [ELMASRI, 2011]. 6 | 7 | 8 | A modelagem dos dados permite que o Banco seja projetado através da definição entidades, relacionamentos e dos atributos. Esta etapa de modelagem é independente do SGBD utilizado, ou seja, pode-se utilizar posteriormente tanto o MySQL, PostgreSQL, Oracle, DB2, SQL Server, Sybase. Diante da modelagem, pode-se mapear este projeto conceitual para um SGBD especifico, criando as tabelas, os atributos, as chaves primárias e estrangeiras, etc. Após a criação física do banco de dados, os dados podem ser inseridos e consultados. 9 | 10 | Atualmente, a principal linguagem de consulta é a SQL [SILBERSCHATZ, 2006]. Através da SQL é possível fazer consultas aos dados armazenados nos SGBD (Sistema Gerenciador de Banco de Dados) e interagir com as aplicações desenvolvidas em diversas linguagens de programação, tanto para Web quanto para Desktop. Porém, o entendimento da linguagem SQL não é trivial, visto se tratar de uma linguagem declarativa. Diversos autores propõem o estudo da Álgebra Relacional e do Cálculo Relacional de Domínio e de Tupla [ELMASRI, 2011] como uma etapa para o entendimento da SQL. 11 | 12 | A professora e pesquisadora [Daniela Barreiro Claro](http://formas.ufba.br/dclaro/), da [Universidade Federal da Bahia](https://ufba.br), tem ministrado a disciplina de Banco de Dados desde 2007 para os alunos dos cursos de [Sistemas de Informação](http://wiki.dcc.ufba.br/BSI) e [Ciência da Computação](http://wiki.dcc.ufba.br/CCC) do [Departamento de Ciência da Computação](http://wiki.dcc.ufba.br/DCC) (DCC). No entanto, tendo observado a dificuldade dos alunos de graduação na abstração dos conceitos de Álgebra Relacional e Cálculo Relacional, ela propôs o desenvolvimento de uma ferramenta a fim de que os alunos pudessem escrever em Álgebra Relacional e a ferramenta traduzisse a consulta para SQL e retornasse os dados da consulta. 13 | 14 | Assim, a primeira versão do PROGRAMAR foi desenvolvida pelo aluno de graduação Eric Simão. A ferramenta PROGRAMAR como principal objetivo auxiliar no ensino da Álgebra Relacional e do Cálculo Relacional, facilitando o aprendizado do aluno na manipulação das consultas relacionais. Através da ProgramAR, o aluno pode escrever suas expressões em Álgebra Relacional e verificar o resultado das consultas diretamente no banco de dados modelado. 15 | 16 | Atualmente, a ferramenta ProgramAR utiliza os operadores da Álgebra Relacional descritos em Elsmasri e Navathe, 2003, com o intuito de atrelar a teoria à prática do ensino visto que este livro é adotado na disciplina Banco de Dados do DCC. 17 | 18 | A ferramenta ProgramAR efetua os seguintes passos para a execução de uma consulta com uma expressão em Álgebra Relacional escrita pelo Recebe a expressão em Álgebra Relacional escrita pelo aluno; 19 | 20 | Realiza uma análise sintática na expressão, para identificar possíveis erros. Caso algum erro seja identificado, é informado ao aluno o tipo de erro e a posição do erro na expressão; 21 | 22 | Caso não tenha sido encontrados erros na análise sintática, a ferramenta faz a conversão da expressão em Álgebra Relacional para SQL; O SQL, gerado na etapa anterior, é executado no banco de dados e o resultado da consulta é enviado ao ProgramAR. 23 | 24 | No ano de 2013, foi realizado pelo estudante [Arley Prates](https://github.com/arleyprates) a publicação de um artigo sobre a ferramenta PogramAR no Simpósio Brasileiro de Sistemas de Informação. Para acesso ao artigo [clique aqui](https://www.researchgate.net/profile/Renato_Cerceau/publication/255682815_Conferencia_Eletronica_de_Dados_Cadastrais_Governamentais_por_Criterios_Qualitativos/links/00463520268a21f6a4000000.pdf). 25 | 26 | ## Tutoriais 27 | 28 | #### Instalção do MySQL e Configuração do Banco de Dados 29 | 30 | 1. Fazer o download do MySQL Server 5.1 no endereço: http://dev.mysql.com/downloads/mysql/5.1.html 31 | 2. Fazer o download das ferramentas de trabalho do MySQL no endereço: http://dev.mysql.com/downloads/gui-tools/5.0.html 32 | 3. Instalar e Configurar o MySQL Server 5.1 33 | 4. Instalar e Configurar o MySQL Tools 5.0 34 | 35 | #### Configurando o Banco de Dados 36 | 1. Executar a ferramenta MySQL Query Browser 37 | 2. Será solicitado as informações de conexão com o servidor MySQL. Preencha os parâmetros e clique em "Ok". Caso o MySQL Server tenha sido instalado na própria máquina, o usuário do banco seja o root e não tenha sido cadastrado senha para este usuário a sua tela de conexão deverá estar preenchida assim: Caso tenha sido cadastrado senha, em "Password" digite a senha cadastrada. Independente da senha, não é necessário colocar um Default Schema. 38 | 3. Após a conexão, a tela do MySQL Query Browser será aberta. No lado direito da tela aparecerá uma janela de schemas cadastrados 39 | 4. Clique com o botão direito na Janela de Schemas e aparecerá a opção "Create New Schema". Clique nesta opção e informe o nome do Schema desejado. Para este documento foi escolhido o nome COMPANY. 40 | 5. Dê um duplo-clique sobre o Schema criado para que o script, a seguir, seja executado sobre este Schema. 41 | 6. Após a seleção do Schema deverá ser executado o script de criação do banco de dados e a inserção dos registros. Para isso, deverá ser feito a importação do script ProgramAR-DB.sql, que está em anexo aos procedimentos de instalação da ferramenta. Clique em "Arquivo", depois em "Open Script". Aparecerá uma tela para a seleção do arquivo ProgramAR-DB.sql. Selecione o arquivo e clique em "Abrir". O script deverá aparecer na tela. Clique em "Execute" para que o script seja executado. 42 | 7. Após a execução do script, as tabelas deverão estar criadas e os registros devidamente inseridos. 43 | 44 | #### Execução da Ferramenta e Criação de Conexão com o Banco 45 | 46 | 1. Realize um duplo-clique sobre o arquivo.jar da ferramenta para a execução da mesma. Será solicitado um local para salvar a base de dados. Caso esteja utilizando Windows Vista ou superior, o local escolhido não deverá ser o diretório "C:\". 47 | 2. Após escolher o local, clique em "Ok" para abrir a ferramenta. 48 | 3. Dentro da ferramenta, clique em "Opções" e depois em "Criar Conexão com o Banco de Dados". 49 | 4. A tela de criação de conexão abrirá. Preencha os parâmetros de conexão, informados anteriormente para a criação da conexão. Caso tenha sido informada uma senha anteriormente, a mesma deve ser informada novamente aqui. 50 | 5. Clique em OK. Caso os parâmetros tenham sido preenchidos corretamente, será visualizada uma mensagem de "Conexão criada com sucesso!". 51 | 6. A nova conexão criada aparecerá na tela de Consulta ao Banco de Dados. 52 | 53 | Obs.: Outras conexões podem ser criadas da mesma forma e ficarão disponíveis para serem utilizadas. 54 | Após a execução de todos os passos, a ferramenta ProgramAR está pronta para ser utilizada. 55 | 56 | #### Exemplos de consultas 57 | 58 | Abaixo seguem 5 roteiros para serem seguidos e realizados utilizando a ferramenta ProgramAR - Programa de Álgebra Relacional. 59 | 60 | Execute o script ProgramAR-db.sql, um script com a configuração de um esquema para consulta de dados. 61 | 62 | 1. Recuperar os nomes de todos os empregados do departamento 5 que trabalhem mais de dez horas por semana no projeto 'Produto X'. 63 | 2. Liste os nomes de todos os empregados que tenham um dependente com o mesmo primeiro nome que o deles. 64 | 3. Encontre os nomes de todos os empregados que são diretamente supervisionados por 'Franklin Wong'. 65 | 4. Para cada projeto, liste o nome do projeto e o total de horas por semana (de todos os empregados) gastas no projeto. 66 | 5. Recupere o nome do Projeto e os nomes de todos os empregados que trabalhem em pelo menos um projeto. 67 | 68 | ## Download stable release 69 | 70 | * [ProgramAR-Linux32.jar](ProgramAR_-_Linux32.jar) 71 | * [ProgramAR-Windows32.jar](ProgramAR_-_Windows32.jar) 72 | * [ProgramAR-Linux64.jar (Versão lab. UFBA 154)](ProgramAR_-_Linux64.jar) 73 | * [ProgramAR-Windows64.jar](ProgramAR_-_Windows64.jar) 74 | 75 | #### Dump do Banco de Dados 76 | 77 | * [ProgramAR-db.sql](programAR-db.sql) 78 | 79 | ## Avaliação 80 | 81 | Pensando em melhorar a utilização da ferramenta elaboramos uma ficha de avaliação. Após a utilização nos envie seu feedback. [Clique aqui](https://forms.gle/AeZkvRKLRMwpHTf86) para realizar sua avaliação! 82 | 83 | ## Quero contribuir 84 | 85 | Faça um Pull request ou Clone do repositório no [GitHub](https://github.com/FORMAS/programar). 86 | 87 | ## Dúvidas 88 | [Por favor, use o Issue tracker do GitHub](https://github.com/FORMAS/programar/issues) 89 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate -------------------------------------------------------------------------------- /fonte/Algebra.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FORMAS/programar/94de866303d5baae4ab3de9384f20c9d5000482e/fonte/Algebra.ttf -------------------------------------------------------------------------------- /lib/mm.mysql-2.0.14-you-must-unjar-me.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FORMAS/programar/94de866303d5baae4ab3de9384f20c9d5000482e/lib/mm.mysql-2.0.14-you-must-unjar-me.jar -------------------------------------------------------------------------------- /lib/mysql-connector-java-5.1.16-bin.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FORMAS/programar/94de866303d5baae4ab3de9384f20c9d5000482e/lib/mysql-connector-java-5.1.16-bin.jar -------------------------------------------------------------------------------- /lib/org.eclipse.swt.win32.win32.x86_3.7.1.v3738a.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FORMAS/programar/94de866303d5baae4ab3de9384f20c9d5000482e/lib/org.eclipse.swt.win32.win32.x86_3.7.1.v3738a.jar -------------------------------------------------------------------------------- /lib/org.eclipse.swt.win64._3.7.1.v3738.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FORMAS/programar/94de866303d5baae4ab3de9384f20c9d5000482e/lib/org.eclipse.swt.win64._3.7.1.v3738.jar -------------------------------------------------------------------------------- /lib/org.eclipse.swt_3.7.1.v3738a.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FORMAS/programar/94de866303d5baae4ab3de9384f20c9d5000482e/lib/org.eclipse.swt_3.7.1.v3738a.jar -------------------------------------------------------------------------------- /programAR-db.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS EMPLOYEE; 2 | DROP TABLE IF EXISTS DEPARTMENT; 3 | DROP TABLE IF EXISTS DEPT_LOCATIONS; 4 | DROP TABLE IF EXISTS PROJECT; 5 | DROP TABLE IF EXISTS WORKS_ON; 6 | DROP TABLE IF EXISTS DEPENDENT; 7 | 8 | 9 | CREATE TABLE EMPLOYEE( 10 | FNAME VARCHAR(10) NOT NULL, 11 | MINIT VARCHAR(1), 12 | LNAME VARCHAR(10) NOT NULL, 13 | SSN INTEGER(9) PRIMARY KEY, 14 | BDATE DATE, 15 | ADDRESS VARCHAR(30), 16 | SEX ENUM('M','F'), 17 | SALARY REAL(7,2) UNSIGNED, 18 | SUPERSSN INTEGER(9), 19 | DNO INTEGER(1)); 20 | 21 | CREATE TABLE DEPARTMENT( 22 | DNAME VARCHAR(20) NOT NULL, 23 | DNUMBER INTEGER(1) PRIMARY KEY, 24 | MGRSSN INTEGER(9), 25 | MGRSTARTDATE DATE); 26 | 27 | CREATE TABLE DEPT_LOCATIONS( 28 | DNUMBER INTEGER(1) NOT NULL, 29 | DLOCATION VARCHAR(20) NOT NULL, 30 | PRIMARY KEY (DNUMBER, DLOCATION)); 31 | 32 | CREATE TABLE PROJECT( 33 | PNAME VARCHAR(20), 34 | PNUMBER INTEGER PRIMARY KEY, 35 | PLOCATION VARCHAR(20), 36 | DNUM INTEGER(1)); 37 | 38 | CREATE TABLE WORKS_ON( 39 | ESSN INTEGER(9) NOT NULL, 40 | PNO INTEGER NOT NULL, 41 | HOURS REAL(3,1), 42 | PRIMARY KEY(ESSN, PNO)); 43 | 44 | CREATE TABLE DEPENDENT( 45 | ESSN INTEGER(9) NOT NULL, 46 | DEPENDENT_NAME VARCHAR(15), 47 | SEX ENUM('M','F'), 48 | BDATE DATE, 49 | RELATIONSHIP ENUM('DAUGHTER', 'SON', 'SPOUSE')); 50 | 51 | 52 | INSERT INTO EMPLOYEE VALUES('John', 'B', 'Smith', 123456789, '1965-01-09', '731 Fondren, Houston, TX', 'M', 30000, 333445555, 5); 53 | INSERT INTO EMPLOYEE VALUES('Franklin', 'T', 'Wong', 333445555, '1955-12-08', '638 Voss, Houston, TX', 'M', 40000, 888665555, 5); 54 | INSERT INTO EMPLOYEE VALUES('Alicia', 'J', 'Zelaya', 999887777, '1968-07-19', '3321 Castle, Spring, TX', 'F', 25000, 987654321, 4); 55 | INSERT INTO EMPLOYEE VALUES('Jennifer', 'S', 'Wallace', 987654321, '1941-06-20', '291 Berry, Bellaire, TX', 'F', 43000, 888665555, 4); 56 | INSERT INTO EMPLOYEE VALUES('Ramesh', 'K', 'Narayan', 666884444, '1962-09-15', '975 Fire Oak, Humble, TX', 'M', 38000, 333445555, 5); 57 | INSERT INTO EMPLOYEE VALUES('Joyce', 'A', 'English', 453453453, '1972-07-31', '5631 Rice, Houston, TX', 'F', 25000, 333445555, 5); 58 | INSERT INTO EMPLOYEE VALUES('Ahmad', 'V', 'Jabbar', 987987987, '1969-03-29', '980 Dallas, Houston, TX', 'M', 25000, 987654321, 4); 59 | INSERT INTO EMPLOYEE VALUES('James', 'E', 'Borg', 888665555, '1937-11-10', '450 Stone, Houston, TX', 'M', 55000, null, 1); 60 | 61 | INSERT INTO DEPT_LOCATIONS VALUES(1, 'Houston'); 62 | INSERT INTO DEPT_LOCATIONS VALUES(4, 'Stafford'); 63 | INSERT INTO DEPT_LOCATIONS VALUES(5, 'Bellaire'); 64 | INSERT INTO DEPT_LOCATIONS VALUES(5, 'Sugarland'); 65 | INSERT INTO DEPT_LOCATIONS VALUES(5, 'Houston'); 66 | 67 | INSERT INTO DEPARTMENT VALUES('Research', 5, 333445555, '1988-05-22'); 68 | INSERT INTO DEPARTMENT VALUES('Administration', 4, 987654321, '1995-01-01'); 69 | INSERT INTO DEPARTMENT VALUES('Headquarters', 1, 888665555, '1981-06-19'); 70 | 71 | INSERT INTO WORKS_ON VALUES(123456789, 1, 32.5); 72 | INSERT INTO WORKS_ON VALUES(123456789, 2, 7.5); 73 | INSERT INTO WORKS_ON VALUES(666884444, 3, 40.0); 74 | INSERT INTO WORKS_ON VALUES(453453453, 1, 20.0); 75 | INSERT INTO WORKS_ON VALUES(453453453, 2, 20.0); 76 | INSERT INTO WORKS_ON VALUES(333445555, 2, 10.0); 77 | INSERT INTO WORKS_ON VALUES(333445555, 3, 10.0); 78 | INSERT INTO WORKS_ON VALUES(333445555, 10, 10.0); 79 | INSERT INTO WORKS_ON VALUES(333445555, 20, 10.0); 80 | INSERT INTO WORKS_ON VALUES(999887777, 30, 30.0); 81 | INSERT INTO WORKS_ON VALUES(999887777, 10, 10.0); 82 | INSERT INTO WORKS_ON VALUES(987987987, 10, 35.0); 83 | INSERT INTO WORKS_ON VALUES(987987987, 30, 5.0); 84 | INSERT INTO WORKS_ON VALUES(987654321, 30, 20.0); 85 | INSERT INTO WORKS_ON VALUES(987654321, 20, 15.0); 86 | INSERT INTO WORKS_ON VALUES(888665555, 20, null); 87 | 88 | INSERT INTO PROJECT VALUES('ProductX', 1, 'Bellaire', 5); 89 | INSERT INTO PROJECT VALUES('ProductY', 2, 'Sugarland', 5); 90 | INSERT INTO PROJECT VALUES('ProductZ', 3, 'Houston', 5); 91 | INSERT INTO PROJECT VALUES('Computerization', 10, 'Stafford', 4); 92 | INSERT INTO PROJECT VALUES('Reorganization', 20, 'Houston', 1); 93 | INSERT INTO PROJECT VALUES('Newbenefits', 30, 'Stafford', 4); 94 | 95 | INSERT INTO DEPENDENT VALUES(333445555, 'Alice', 'F', '1986-04-05', 'DAUGHTER'); 96 | INSERT INTO DEPENDENT VALUES(333445555, 'Theodore', 'M', '1983-10-25', 'SON'); 97 | INSERT INTO DEPENDENT VALUES(333445555, 'Joy', 'F', '1958-05-03', 'SPOUSE'); 98 | INSERT INTO DEPENDENT VALUES(987654321, 'Abner', 'M', '1942-02-28', 'SPOUSE'); 99 | INSERT INTO DEPENDENT VALUES(123456789, 'Michael', 'M', '1988-01-04', 'SON'); 100 | INSERT INTO DEPENDENT VALUES(123456789, 'Alice', 'F', '1988-12-30', 'DAUGHTER'); 101 | INSERT INTO DEPENDENT VALUES(123456789, 'Elizabeth', 'F', '1967-05-05', 'SPOUSE'); 102 | 103 | ALTER TABLE EMPLOYEE ADD INDEX DNO_IDX (DNO); 104 | ALTER TABLE EMPLOYEE ADD CONSTRAINT DNO_FK FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNUMBER); 105 | ALTER TABLE EMPLOYEE ADD INDEX SUPERSSN_IDX (SUPERSSN); 106 | ALTER TABLE EMPLOYEE ADD CONSTRAINT SUPERSSN_FK FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE(SSN); 107 | 108 | ALTER TABLE DEPARTMENT ADD INDEX MGRSSN_IDX (MGRSSN); 109 | ALTER TABLE DEPARTMENT ADD CONSTRAINT MGRSSN_FK FOREIGN KEY (MGRSSN) REFERENCES EMPLOYEE(SSN); 110 | 111 | ALTER TABLE DEPT_LOCATIONS ADD INDEX DNUMBER_IDX (DNUMBER); 112 | ALTER TABLE DEPT_LOCATIONS ADD CONSTRAINT DNUMBER_FK FOREIGN KEY (DNUMBER) REFERENCES DEPARTMENT(DNUMBER); 113 | 114 | ALTER TABLE PROJECT ADD INDEX DNUM_IDX (DNUM); 115 | ALTER TABLE PROJECT ADD CONSTRAINT DNUM_FK FOREIGN KEY (DNUM) REFERENCES DEPARTMENT(DNUMBER); 116 | 117 | ALTER TABLE WORKS_ON ADD INDEX PNO_IDX (PNO); 118 | ALTER TABLE WORKS_ON ADD CONSTRAINT PNO_FK FOREIGN KEY (PNO) REFERENCES PROJECT(PNUMBER); 119 | ALTER TABLE WORKS_ON ADD INDEX ESSN_IDX1 (ESSN); 120 | ALTER TABLE WORKS_ON ADD CONSTRAINT ESSN_FK1 FOREIGN KEY (ESSN) REFERENCES EMPLOYEE(SSN); 121 | 122 | ALTER TABLE DEPENDENT ADD INDEX ESSN_IDX2 (ESSN); 123 | ALTER TABLE DEPENDENT ADD CONSTRAINT ESSN_FK2 FOREIGN KEY(ESSN) REFERENCES EMPLOYEE(SSN); -------------------------------------------------------------------------------- /src/Algebra/Cliente/AccessExcel.java: -------------------------------------------------------------------------------- 1 | package Algebra.Cliente; 2 | 3 | import java.sql.Connection; 4 | import java.sql.DriverManager; 5 | 6 | public class AccessExcel{ 7 | 8 | public AccessExcel(){ 9 | } 10 | 11 | public Connection getConnection() throws Exception { 12 | Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 13 | return DriverManager.getConnection("jdbc:mysql://localhost/JAVADB"); 14 | } 15 | } 16 | 17 | -------------------------------------------------------------------------------- /src/Algebra/Cliente/Algebra.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FORMAS/programar/94de866303d5baae4ab3de9384f20c9d5000482e/src/Algebra/Cliente/Algebra.ttf -------------------------------------------------------------------------------- /src/Algebra/Cliente/AlgebraRelacional.java: -------------------------------------------------------------------------------- 1 | package Algebra.Cliente; 2 | 3 | public class AlgebraRelacional 4 | { 5 | 6 | public AlgebraRelacional() 7 | { 8 | nome = null; 9 | predicado = new String[100]; 10 | atributo = new String[100][100]; 11 | renomear_atributo = new String[100][100]; 12 | renomear_relacao = new String[100]; 13 | relacao = new String[100]; 14 | condicoes_de_join = new String[100]; 15 | group_by = new String[100]; 16 | operadorbinario = new int[100]; 17 | SQL = new String(); 18 | cont_atributo = 0; 19 | cont_renomear_atributo = 0; 20 | cont_renomear_relacao = 0; 21 | cont_relacao = 0; 22 | cont_operador_binario = 0; 23 | resultado = false; 24 | } 25 | 26 | public void setnome(String nome_aux) 27 | { 28 | nome = nome_aux.trim(); 29 | if(nome.trim().equals("resultado") | nome.trim().equals("RESULTADO")) 30 | resultado = true; 31 | } 32 | 33 | public int setpredicado(int valchar, int contador) 34 | { 35 | if(contador == 0) 36 | { 37 | if(predicado[getcont_relacao()] == null) 38 | predicado[getcont_relacao()] = (new Character((char)valchar)).toString(); 39 | else 40 | predicado[getcont_relacao()] = predicado[getcont_relacao()] + " AND " + (new Character((char)valchar)).toString(); 41 | } else 42 | { 43 | predicado[getcont_relacao()] = predicado[getcont_relacao()] + (new Character((char)valchar)).toString(); 44 | } 45 | return ++contador; 46 | } 47 | 48 | public void setatributo(int valchar) 49 | { 50 | if(valchar == 44) 51 | { 52 | setcont_atributo(); 53 | } else 54 | { 55 | if(atributo[getcont_relacao()][getcont_atributo()] == null) 56 | atributo[getcont_relacao()][getcont_atributo()] = ""; 57 | atributo[cont_relacao][cont_atributo] = atributo[cont_relacao][cont_atributo] + (new Character((char)valchar)).toString(); 58 | } 59 | } 60 | 61 | public void setgroupby(String groupby_aux) 62 | { 63 | if(group_by[getcont_relacao()] != null) 64 | group_by[getcont_relacao()] = group_by[getcont_relacao()] + ", " + groupby_aux; 65 | else 66 | group_by[getcont_relacao()] = groupby_aux; 67 | } 68 | 69 | public void setatributoSQL(String atributo_aux) 70 | { 71 | setcont_atributo(); 72 | atributo[getcont_relacao()][getcont_atributo()] = atributo_aux; 73 | } 74 | 75 | public void setrenomearatributo(int valchar) 76 | { 77 | if(valchar == 44) 78 | { 79 | setcont_renomear_atributo(); 80 | } else 81 | { 82 | if(renomear_atributo[getcont_relacao()][getcont_renomear_atributo()] == null) 83 | renomear_atributo[getcont_relacao()][getcont_renomear_atributo()] = ""; 84 | renomear_atributo[getcont_relacao()][getcont_renomear_atributo()] = renomear_atributo[getcont_relacao()][getcont_renomear_atributo()] + (new Character((char)valchar)).toString(); 85 | } 86 | } 87 | 88 | public void setrenomearrelacao(String relacao_aux) 89 | { 90 | renomear_relacao[getcont_relacao()] = relacao_aux; 91 | } 92 | 93 | public void setrelacao(String relacao_aux) 94 | { 95 | relacao[getcont_relacao()] = relacao_aux; 96 | setcont_relacao(); 97 | } 98 | 99 | public void setcondicoesdejoin(int valchar, boolean colocaand) 100 | { 101 | if(!colocaand) 102 | { 103 | if(condicoes_de_join[getcont_operador_binario()] == null) 104 | condicoes_de_join[getcont_operador_binario()] = ""; 105 | condicoes_de_join[getcont_operador_binario()] = condicoes_de_join[getcont_operador_binario()] + (new Character((char)valchar)).toString(); 106 | } else 107 | { 108 | condicoes_de_join[getcont_operador_binario()] = condicoes_de_join[getcont_operador_binario()] + "AND "; 109 | } 110 | } 111 | 112 | public void setoperaodorbinario(int valchar) 113 | { 114 | setcont_operador_binario(); 115 | operadorbinario[getcont_operador_binario()] = valchar; 116 | } 117 | 118 | public boolean isresultado() 119 | { 120 | return resultado; 121 | } 122 | 123 | public void setisresultado() 124 | { 125 | resultado = true; 126 | } 127 | 128 | public void setcont_atributo() 129 | { 130 | cont_atributo++; 131 | } 132 | 133 | public void setcont_renomear_atributo() 134 | { 135 | cont_renomear_atributo++; 136 | } 137 | 138 | public void setcont_renomear_relacao() 139 | { 140 | cont_renomear_relacao++; 141 | } 142 | 143 | public void setcont_relacao() 144 | { 145 | cont_relacao++; 146 | } 147 | 148 | public void setcont_operador_binario() 149 | { 150 | cont_operador_binario++; 151 | } 152 | 153 | public int getcont_atributo() 154 | { 155 | return cont_atributo; 156 | } 157 | 158 | public int getcont_renomear_atributo() 159 | { 160 | return cont_renomear_atributo; 161 | } 162 | 163 | public int getcont_renomear_relacao() 164 | { 165 | return cont_renomear_relacao; 166 | } 167 | 168 | public int getcont_relacao() 169 | { 170 | return cont_relacao; 171 | } 172 | 173 | public int getcont_operador_binario() 174 | { 175 | return cont_operador_binario; 176 | } 177 | 178 | public void inicio_renomear_atributo() 179 | { 180 | cont_renomear_atributo = cont_atributo; 181 | } 182 | 183 | public void setcontadores() 184 | { 185 | cont_relacao = 0; 186 | cont_atributo = 0; 187 | cont_renomear_atributo = 0; 188 | cont_operador_binario = -1; 189 | } 190 | 191 | public String getsql() 192 | { 193 | if(SQL.length() == 0) 194 | SQL = gerasql(); 195 | return SQL; 196 | } 197 | 198 | public String gerasql() 199 | { 200 | String resultado = ""; 201 | String atributo_aux = ""; 202 | String predicado_aux = ""; 203 | String groupby_aux = ""; 204 | String relacao_aux = ""; 205 | String condicoes_de_join_aux = ""; 206 | for(int cont_rel = 0; cont_rel < tamanhorelacao(); cont_rel++) 207 | { 208 | atributo_aux = getatributos(cont_rel, atributo_aux); 209 | predicado_aux = getpredicado(cont_rel, predicado_aux); 210 | groupby_aux = getgroupby(cont_rel, groupby_aux); 211 | relacao_aux = getrelacao(cont_rel, relacao_aux); 212 | if(condicoes_de_join_aux.length() != 0) 213 | { 214 | relacao_aux = relacao_aux + condicoes_de_join_aux; 215 | condicoes_de_join_aux = ""; 216 | } 217 | if(operadorbinario[cont_rel] != 0) 218 | if((operadorbinario[cont_rel] == 912) | (operadorbinario[cont_rel] == 913) | (operadorbinario[cont_rel] == 914)) 219 | { 220 | resultado = resultado + montasql(atributo_aux, predicado_aux, groupby_aux, relacao_aux) + " "; 221 | resultado = resultado + operadorbinarioSQL(operadorbinario[cont_rel]) + " "; 222 | atributo_aux = ""; 223 | predicado_aux = ""; 224 | groupby_aux = ""; 225 | relacao_aux = ""; 226 | } else 227 | { 228 | condicoes_de_join_aux = getcondicoes_de_join(cont_rel); 229 | relacao_aux = relacao_aux + operadorbinarioSQL(operadorbinario[cont_rel]) + " "; 230 | } 231 | } 232 | 233 | resultado = resultado + montasql(atributo_aux, predicado_aux, groupby_aux, relacao_aux); 234 | return resultado; 235 | } 236 | 237 | public int tamanhorelacao() 238 | { 239 | int i; 240 | for(i = 0; i < relacao.length; i++) 241 | if(relacao[i] == null) 242 | return i; 243 | 244 | return ++i; 245 | } 246 | 247 | public String montasql(String atributo_aux, String predicado_aux, String groupby_aux, String relacao_aux) 248 | { 249 | String resultado = "SELECT "; 250 | if(atributo_aux.length() != 0) 251 | resultado = resultado + atributo_aux.trim() + " "; 252 | else 253 | resultado = resultado + "* "; 254 | resultado = resultado + "FROM " + relacao_aux.trim() + " "; 255 | if(predicado_aux.length() != 0) 256 | resultado = resultado + "WHERE " + predicado_aux.trim() + " "; 257 | if(groupby_aux.length() != 0) 258 | resultado = resultado + "GROUP BY " + groupby_aux.trim() + " "; 259 | return resultado.trim(); 260 | } 261 | 262 | public String getcondicoes_de_join(int cont_rel) 263 | { 264 | String condicoes_de_join_aux = ""; 265 | if(condicoes_de_join[cont_rel] != null) 266 | condicoes_de_join_aux = "ON (" + condicoes_de_join[cont_rel].toUpperCase() + ") "; 267 | return condicoes_de_join_aux; 268 | } 269 | 270 | public String getrelacao(int cont_rel, String relacao_aux) 271 | { 272 | relacao_aux = relacao_aux + "#" + relacao[cont_rel] + "#" + " "; 273 | if(renomear_relacao[cont_rel] != null) 274 | relacao_aux = relacao_aux + "AS " + renomear_relacao[cont_rel].toUpperCase() + " "; 275 | return relacao_aux; 276 | } 277 | 278 | public String getatributos(int cont_rel, String atributo_aux) 279 | { 280 | int contador_aux = 0; 281 | String atributo_relacao = ""; 282 | for(int j = 0; j < atributo[cont_rel].length; j++) 283 | if(atributo[cont_rel][j] != null) 284 | { 285 | if(contador_aux == 0) 286 | atributo_relacao = atributo_relacao + atributo[cont_rel][j].trim().toUpperCase() + " "; 287 | else 288 | atributo_relacao = atributo_relacao + ", " + atributo[cont_rel][j].trim().toUpperCase() + " "; 289 | if(renomear_atributo[cont_rel][j] != null) 290 | atributo_relacao = atributo_relacao + "AS " + renomear_atributo[cont_rel][j].trim().toUpperCase() + " "; 291 | contador_aux++; 292 | } 293 | 294 | if(atributo_relacao.length() != 0) 295 | if(atributo_aux.length() != 0) 296 | atributo_aux = atributo_aux + ", " + atributo_relacao; 297 | else 298 | atributo_aux = atributo_relacao; 299 | return atributo_aux; 300 | } 301 | 302 | public String getpredicado(int cont_rel, String predicado_aux) 303 | { 304 | if(predicado[cont_rel] != null) 305 | if(predicado_aux.length() != 0) 306 | predicado_aux = predicado_aux + "AND " + predicado[cont_rel].trim().toUpperCase(); 307 | else 308 | predicado_aux = predicado[cont_rel].toUpperCase(); 309 | return predicado_aux; 310 | } 311 | 312 | public String getgroupby(int cont_rel, String groupby_aux) 313 | { 314 | if(group_by[cont_rel] != null) 315 | if(groupby_aux.length() != 0) 316 | groupby_aux = groupby_aux + ", " + group_by[cont_rel].trim().toUpperCase(); 317 | else 318 | groupby_aux = group_by[cont_rel].trim().toUpperCase(); 319 | return groupby_aux; 320 | } 321 | 322 | public String operadorbinarioSQL(int valchar) 323 | { 324 | String retorno = ""; 325 | switch(valchar) 326 | { 327 | case 912: 328 | retorno = "UNION"; 329 | break; 330 | 331 | case 915: 332 | retorno = "JOIN"; 333 | break; 334 | 335 | case 916: 336 | retorno = "JOIN"; 337 | break; 338 | 339 | case 917: 340 | retorno = "LEFT OUTER JOIN"; 341 | break; 342 | 343 | case 918: 344 | retorno = "LEFT OUTER JOIN"; 345 | break; 346 | 347 | case 919: 348 | retorno = "RIGHT OUTER JOIN"; 349 | break; 350 | 351 | case 923: 352 | retorno = "NATURAL JOIN"; 353 | break; 354 | } 355 | return retorno; 356 | } 357 | 358 | public String getnome() 359 | { 360 | if(nome == null) 361 | nome = ""; 362 | return nome; 363 | } 364 | 365 | public void impressao() 366 | { 367 | System.out.print("Nome: "); 368 | System.out.print(nome); 369 | System.out.print(" | "); 370 | System.out.print("Atributo: "); 371 | for(int j = 0; j < atributo.length; j++) 372 | { 373 | for(int j2 = 0; j2 < atributo[j].length; j2++) 374 | if(atributo[j][j2] != null) 375 | System.out.print(j + "." + j2 + "=" + atributo[j][j2] + " "); 376 | 377 | } 378 | 379 | System.out.print(" | "); 380 | System.out.print("Renomear Atributo: "); 381 | for(int j = 0; j < renomear_atributo.length; j++) 382 | { 383 | for(int j2 = 0; j2 < renomear_atributo[j].length; j2++) 384 | if(renomear_atributo[j][j2] != null) 385 | System.out.print(j + "." + j2 + "=" + renomear_atributo[j][j2] + " "); 386 | 387 | } 388 | 389 | System.out.print(" | "); 390 | System.out.print("Predicado: "); 391 | for(int j = 0; j < predicado.length; j++) 392 | if(predicado[j] != null) 393 | System.out.print(j + "=" + predicado[j] + " "); 394 | 395 | System.out.print(" | "); 396 | System.out.print("Rela\347\343o: "); 397 | for(int j = 0; j < relacao.length; j++) 398 | if(relacao[j] != null) 399 | System.out.print(j + "=" + relacao[j] + " "); 400 | 401 | System.out.print(" | "); 402 | System.out.print("Renomear rela\347\343o: "); 403 | for(int j = 0; j < renomear_relacao.length; j++) 404 | if(renomear_relacao[j] != null) 405 | System.out.print(j + "=" + renomear_relacao[j] + " "); 406 | 407 | System.out.print(" | "); 408 | System.out.print("Condi\347\365es de join: "); 409 | for(int j = 0; j < condicoes_de_join.length; j++) 410 | if(condicoes_de_join[j] != null) 411 | System.out.print(j + "=" + condicoes_de_join[j] + " "); 412 | 413 | System.out.print(" | "); 414 | System.out.print("Operador binario: "); 415 | for(int j = 0; j < operadorbinario.length; j++) 416 | if(operadorbinario[j] != 0) 417 | System.out.print(j + "=" + operadorbinario[j] + " "); 418 | 419 | System.out.print(" | "); 420 | System.out.print("GroupBy: "); 421 | for(int j = 0; j < group_by.length; j++) 422 | if(group_by[j] != null) 423 | System.out.print(j + "=" + group_by[j] + " "); 424 | 425 | } 426 | 427 | String nome; 428 | String predicado[]; 429 | String atributo[][]; 430 | String renomear_atributo[][]; 431 | String renomear_relacao[]; 432 | String relacao[]; 433 | String condicoes_de_join[]; 434 | String group_by[]; 435 | int operadorbinario[]; 436 | String SQL; 437 | int cont_atributo; 438 | int cont_renomear_atributo; 439 | int cont_renomear_relacao; 440 | int cont_relacao; 441 | int cont_operador_binario; 442 | boolean resultado; 443 | } 444 | -------------------------------------------------------------------------------- /src/Algebra/Cliente/CriaConexao.java: -------------------------------------------------------------------------------- 1 | package Algebra.Cliente; 2 | 3 | import java.io.*; 4 | import java.sql.Connection; 5 | import java.sql.DriverManager; 6 | import javax.swing.JOptionPane; 7 | 8 | // Referenced classes of package Algebra.Cliente: 9 | // RegistroArquivo 10 | 11 | public class CriaConexao 12 | { 13 | 14 | public CriaConexao() 15 | { 16 | filename = Tela_Principal.local+"/databases.txt"; 17 | output = null; 18 | input = null; 19 | try 20 | { 21 | Criaarquivo(); 22 | } 23 | catch(Exception e) 24 | { 25 | JOptionPane.showMessageDialog(null, "Erro na cria\347\343o do arquivo.", "Erro", 0); 26 | } 27 | } 28 | 29 | public void Criaarquivo() 30 | throws IOException 31 | { 32 | File file = new File(filename); 33 | if(!file.exists()) 34 | file.createNewFile(); 35 | } 36 | 37 | public Connection getConnection(String sch) 38 | throws Exception 39 | { 40 | boolean sair = false; 41 | RegistroArquivo registro = new RegistroArquivo("", "", "", ""); 42 | String url = new String(); 43 | while(!sair) 44 | try 45 | { 46 | registro.read(getinput()); 47 | if(sch.equals(registro.getschema().trim())) 48 | { 49 | sair = true; 50 | closeinput(); 51 | } 52 | } 53 | catch(EOFException endofException) 54 | { 55 | sair = true; 56 | closeinput(); 57 | } 58 | catch(IOException ioException) 59 | { 60 | JOptionPane.showMessageDialog(null, "Erro na leitura do arquivo.", "Erro", 0); 61 | closeinput(); 62 | sair = true; 63 | } 64 | url = "jdbc:mysql://" + registro.getservidor().trim() + "/" + registro.getschema().trim(); 65 | Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 66 | return DriverManager.getConnection(url, registro.getusuario().trim(), registro.getsenha().trim()); 67 | } 68 | 69 | public boolean testConnection(String servidor_aux, String usuario_aux, char[] senha_aux, String schema_aux) 70 | { 71 | String url = "jdbc:mysql://" + servidor_aux + ":3306/" + schema_aux; 72 | String username = usuario_aux; 73 | String password = ""; 74 | 75 | for(char c : senha_aux){ 76 | password += c; 77 | } 78 | if(password.length() == 0) 79 | password = null; 80 | 81 | try 82 | { 83 | Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 84 | System.out.println(url+"\n"+password+"\n"+username); 85 | DriverManager.getConnection(url, username, password); 86 | } 87 | catch(Exception e) 88 | { 89 | e.printStackTrace(); 90 | return false; 91 | } 92 | return true; 93 | } 94 | 95 | public void gravarConnection(String servidor_aux, String usuario_aux, String senha_aux, String schema_aux) 96 | { 97 | RegistroArquivo registro = new RegistroArquivo(servidor_aux, usuario_aux, senha_aux, schema_aux); 98 | try 99 | { 100 | int i = buscaindice(schema_aux); 101 | getoutput().seek(i * RegistroArquivo.size()); 102 | registro.write(getoutput()); 103 | closeoutput(); 104 | } 105 | catch(Exception e) 106 | { 107 | JOptionPane.showMessageDialog(null, "Erro na grava\347\343o do arquivo.", "Erro", 0); 108 | return; 109 | } 110 | } 111 | 112 | public String[] getschemas() 113 | { 114 | String schemas[] = new String[100]; 115 | boolean sair = false; 116 | RegistroArquivo registro = new RegistroArquivo("", "", "", ""); 117 | int i = 0; 118 | while(!sair) 119 | try 120 | { 121 | registro.read(getinput()); 122 | schemas[i] = registro.getschema(); 123 | i++; 124 | } 125 | catch(EOFException endofException) 126 | { 127 | sair = true; 128 | closeinput(); 129 | } 130 | catch(IOException ioException) 131 | { 132 | JOptionPane.showMessageDialog(null, "Erro na leitura do arquivo.", "Erro", 0); 133 | closeinput(); 134 | sair = true; 135 | } 136 | return schemas; 137 | } 138 | 139 | public int buscaindice(String sch) 140 | { 141 | boolean sair = false; 142 | RegistroArquivo registro = new RegistroArquivo("", "", "", ""); 143 | int i = -1; 144 | while(!sair) 145 | try 146 | { 147 | i++; 148 | registro.read(getinput()); 149 | if(sch.equals(registro.getschema().trim())) 150 | { 151 | sair = true; 152 | closeinput(); 153 | } 154 | } 155 | catch(EOFException endofException) 156 | { 157 | sair = true; 158 | closeinput(); 159 | } 160 | catch(IOException ioException) 161 | { 162 | JOptionPane.showMessageDialog(null, "Erro na leitura do arquivo.", "Erro", 0); 163 | closeinput(); 164 | sair = true; 165 | } 166 | return i; 167 | } 168 | 169 | public RandomAccessFile getoutput() 170 | { 171 | if(output == null) 172 | try 173 | { 174 | output = new RandomAccessFile(filename, "rw"); 175 | } 176 | catch(Exception e) 177 | { 178 | JOptionPane.showMessageDialog(null, "Erro na cria\347\343o do arquivo de output.", "Erro", 0); 179 | } 180 | return output; 181 | } 182 | 183 | public RandomAccessFile getinput() 184 | { 185 | if(input == null) 186 | try 187 | { 188 | input = new RandomAccessFile(filename, "r"); 189 | } 190 | catch(Exception e) 191 | { 192 | JOptionPane.showMessageDialog(null, "Erro na cria\347\343o do arquivo de input.", "Erro", 0); 193 | } 194 | return input; 195 | } 196 | 197 | private void closeoutput() 198 | { 199 | if(output != null) 200 | try 201 | { 202 | output.seek(0L); 203 | output.close(); 204 | output = null; 205 | } 206 | catch(Exception e) 207 | { 208 | JOptionPane.showMessageDialog(null, "Erro ao fechar do arquivo de output.", "Erro", 0); 209 | } 210 | } 211 | 212 | private void closeinput() 213 | { 214 | if(input != null) 215 | try 216 | { 217 | input.seek(0L); 218 | input.close(); 219 | input = null; 220 | } 221 | catch(Exception e) 222 | { 223 | JOptionPane.showMessageDialog(null, "Erro ao fechar do arquivo de input.", "Erro", 0); 224 | } 225 | } 226 | 227 | private String filename; 228 | private RandomAccessFile output; 229 | private RandomAccessFile input; 230 | } 231 | 232 | -------------------------------------------------------------------------------- /src/Algebra/Cliente/FormataAlgebraTexto.java: -------------------------------------------------------------------------------- 1 | package Algebra.Cliente; 2 | 3 | //Referenced classes of package Algebra.Cliente: 4 | //ParametroAlgebraTexto 5 | 6 | public class FormataAlgebraTexto 7 | { 8 | 9 | public FormataAlgebraTexto(String parametro) 10 | { 11 | espaco = 32; 12 | parentese_abre = 40; 13 | parentese_fecha = 41; 14 | identificador = -1; 15 | quebralinha = 13; 16 | fimexpressao = false; 17 | fimtodasexpressoes = false; 18 | fimresultado = false; 19 | expressao = new String(); 20 | schema = new String(); 21 | resultado = new String(); 22 | counter = -1; 23 | parenteses_counter = 0; 24 | msgerro = new String(""); 25 | predicado = new String[100]; 26 | atributo = new String[100][100][100]; 27 | renomear_atributo = new String[100][100][100]; 28 | renomear_relacao = new String[100][100]; 29 | relacao = new String[100][100]; 30 | condicoes_de_join = new String[100][100]; 31 | group_by = new String[100]; 32 | operadorbinario = new int[100][100]; 33 | cont_atributo = 0; 34 | cont_renomear_atributo = 0; 35 | cont_renomear_relacao = 0; 36 | cont_relacao = 0; 37 | cont_operador_binario = 0; 38 | pode_ter_recursao = true; 39 | parametroalgebratexto = new ParametroAlgebraTexto[100]; 40 | expressao = parametro; 41 | if(expressao.length() == 0) 42 | return; 43 | while(!fimtodasexpressoes) 44 | { 45 | fimexpressao = false; 46 | verifica_expressao(); 47 | if(!fimtodasexpressoes) 48 | setparametroalgebratexto("\n", "normal"); 49 | } 50 | } 51 | 52 | public void verifica_expressao() 53 | { 54 | int valchar = 0; 55 | for(pode_ter_recursao = true; !fimexpressao; pode_ter_recursao = false) 56 | { 57 | valchar = getchar(); 58 | if(fimexpressao) 59 | return; 60 | if(verificaoperadoresunarios(valchar)) 61 | operadorunario(valchar); 62 | else 63 | if(verificaletra(valchar) | verificanumeros(valchar)) 64 | relacao(valchar); 65 | else 66 | if(verificaparenteseabre(valchar)) 67 | { 68 | setparametroalgebratexto("(", "normal"); 69 | parenteses_counter++; 70 | } else 71 | if(valchar == 922) 72 | agregacao("", valchar); 73 | else 74 | if(verificaespaco(valchar)) 75 | { 76 | setparametroalgebratexto(" ", "normal"); 77 | } else 78 | { 79 | parametroerro(valchar); 80 | return; 81 | } 82 | } 83 | 84 | } 85 | 86 | public void setparametroalgebratexto(String texto, String tipo) 87 | { 88 | setidentificador(); 89 | parametroalgebratexto[getidentificador()] = new ParametroAlgebraTexto(); 90 | parametroalgebratexto[getidentificador()].settexto(texto); 91 | parametroalgebratexto[getidentificador()].settipo(tipo); 92 | } 93 | 94 | public ParametroAlgebraTexto getparametro(int i) 95 | { 96 | return parametroalgebratexto[i]; 97 | } 98 | 99 | public int gettamanhoparametro() 100 | { 101 | int i; 102 | for(i = 0; i < parametroalgebratexto.length; i++) 103 | if(parametroalgebratexto[i] == null) 104 | return i; 105 | 106 | return i; 107 | } 108 | 109 | public void parametroerro(int valchar) 110 | { 111 | String parametroerro = new String(); 112 | while(!fimexpressao) 113 | { 114 | parametroerro = parametroerro + (new Character((char)valchar)).toString(); 115 | valchar = getchar(); 116 | } 117 | setparametroalgebratexto(parametroerro, "erro"); 118 | } 119 | 120 | public void operadorunario(int valchar) 121 | { 122 | switch(valchar) 123 | { 124 | case 910: 125 | setparametroalgebratexto((new Character('\u038E')).toString(), "operador"); 126 | selecao(); 127 | break; 128 | 129 | case 911: 130 | setparametroalgebratexto((new Character('\u038F')).toString(), "operador"); 131 | projecao(); 132 | break; 133 | 134 | case 920: 135 | setparametroalgebratexto((new Character('\u0398')).toString(), "operador"); 136 | renomear(); 137 | break; 138 | } 139 | } 140 | 141 | public void operadorbinario(int valchar) 142 | { 143 | cont_relacao++; 144 | switch(valchar) 145 | { 146 | case 912: 147 | setparametroalgebratexto((new Character('\u0390')).toString(), "operador"); 148 | break; 149 | 150 | case 913: 151 | setparametroalgebratexto((new Character('\u0391')).toString(), "operador"); 152 | break; 153 | 154 | case 914: 155 | setparametroalgebratexto((new Character('\u0392')).toString(), "operador"); 156 | break; 157 | 158 | case 915: 159 | setparametroalgebratexto((new Character('\u0393')).toString(), "operador"); 160 | break; 161 | 162 | case 916: 163 | setparametroalgebratexto((new Character('\u0394')).toString(), "operador"); 164 | join(); 165 | break; 166 | 167 | case 917: 168 | setparametroalgebratexto((new Character('\u0395')).toString(), "operador"); 169 | outerjointotal(); 170 | break; 171 | 172 | case 918: 173 | setparametroalgebratexto((new Character('\u0396')).toString(), "operador"); 174 | outerjoinesquerda(); 175 | break; 176 | 177 | case 919: 178 | setparametroalgebratexto((new Character('\u0397')).toString(), "operador"); 179 | outerjoindireita(); 180 | break; 181 | 182 | case 921: 183 | setparametroalgebratexto((new Character('\u0399')).toString(), "operador"); 184 | break; 185 | 186 | case 923: 187 | setparametroalgebratexto((new Character('\u039B')).toString(), "operador"); 188 | break; 189 | } 190 | } 191 | 192 | public void join() 193 | { 194 | verificacondicoes("Join"); 195 | } 196 | 197 | public void outerjointotal() 198 | { 199 | verificacondicoes("Outer Join Total"); 200 | } 201 | 202 | public void outerjoinesquerda() 203 | { 204 | verificacondicoes("Outer Join Esquerda"); 205 | } 206 | 207 | public void outerjoindireita() 208 | { 209 | verificacondicoes("Outer Join Direita"); 210 | } 211 | 212 | public void verificacondicoes(String origem) 213 | { 214 | int valchar = 0; 215 | int parenteses = 0; 216 | int local_parenteses_abre = 0; 217 | int posicao = 0; 218 | boolean sair = false; 219 | String verifica_condicoes_aux = new String(); 220 | while(!sair) 221 | { 222 | valchar = getchar(); 223 | if(fimexpressao) 224 | { 225 | if(verifica_condicoes_aux.length() != 0) 226 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 227 | return; 228 | } 229 | if(verificaespaco(valchar)) 230 | while(verificaespaco(valchar)) 231 | { 232 | verifica_condicoes_aux = verifica_condicoes_aux + expressao.charAt(counter); 233 | valchar = getchar(); 234 | if(fimexpressao) 235 | { 236 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 237 | return; 238 | } 239 | } 240 | if(verificaparenteseabre(valchar) | verificaespaco(valchar) | verificaletra(valchar) | verificanumeros(valchar)) 241 | { 242 | while(verificaparenteseabre(valchar) | verificaespaco(valchar)) 243 | { 244 | if(verificaparenteseabre(valchar)) 245 | parenteses++; 246 | verifica_condicoes_aux = verifica_condicoes_aux + expressao.charAt(counter); 247 | valchar = getchar(); 248 | if(fimexpressao) 249 | { 250 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 251 | return; 252 | } 253 | } 254 | if(verificaletra(valchar) | verificanumeros(valchar)) 255 | { 256 | while(verificaletra(valchar) | verificanumeros(valchar)) 257 | { 258 | verifica_condicoes_aux = verifica_condicoes_aux + expressao.charAt(counter); 259 | valchar = getchar(); 260 | if(fimexpressao) 261 | { 262 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 263 | return; 264 | } 265 | } 266 | } else 267 | { 268 | if(verifica_condicoes_aux.length() != 0) 269 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 270 | parametroerro(valchar); 271 | return; 272 | } 273 | } else 274 | { 275 | if(verifica_condicoes_aux.length() != 0) 276 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 277 | parametroerro(valchar); 278 | return; 279 | } 280 | while(verificaespaco(valchar)) 281 | { 282 | verifica_condicoes_aux = verifica_condicoes_aux + expressao.charAt(counter); 283 | valchar = getchar(); 284 | if(fimexpressao) 285 | { 286 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 287 | return; 288 | } 289 | } 290 | if(verificacomparacao(valchar)) 291 | { 292 | verifica_condicoes_aux = verifica_condicoes_aux + expressao.charAt(counter); 293 | switch(valchar) 294 | { 295 | case 60: // '<' 296 | valchar = getchar(); 297 | if(fimexpressao) 298 | { 299 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 300 | return; 301 | } 302 | if((valchar == 61) | (valchar == 62)) 303 | verifica_condicoes_aux = verifica_condicoes_aux + expressao.charAt(counter); 304 | else 305 | if(verificaespaco(valchar) | verificaletra(valchar) | verificanumeros(valchar)) 306 | { 307 | counter--; 308 | } else 309 | { 310 | if(verifica_condicoes_aux.length() != 0) 311 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 312 | parametroerro(valchar); 313 | return; 314 | } 315 | break; 316 | 317 | case 62: // '>' 318 | valchar = getchar(); 319 | if(fimexpressao) 320 | { 321 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 322 | return; 323 | } 324 | if(valchar == 61) 325 | verifica_condicoes_aux = verifica_condicoes_aux + expressao.charAt(counter); 326 | else 327 | if(verificaespaco(valchar) | verificaletra(valchar) | verificanumeros(valchar)) 328 | { 329 | counter--; 330 | } else 331 | { 332 | if(verifica_condicoes_aux.length() != 0) 333 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 334 | parametroerro(valchar); 335 | return; 336 | } 337 | break; 338 | } 339 | } else 340 | { 341 | if(verifica_condicoes_aux.length() != 0) 342 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 343 | parametroerro(valchar); 344 | return; 345 | } 346 | valchar = getchar(); 347 | if(fimexpressao) 348 | { 349 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 350 | return; 351 | } 352 | while(verificaespaco(valchar)) 353 | { 354 | verifica_condicoes_aux = verifica_condicoes_aux + expressao.charAt(counter); 355 | valchar = getchar(); 356 | if(fimexpressao) 357 | { 358 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 359 | return; 360 | } 361 | } 362 | if(verificaletra(valchar) | verificanumeros(valchar)) 363 | { 364 | while(verificaletra(valchar) | verificanumeros(valchar)) 365 | { 366 | verifica_condicoes_aux = verifica_condicoes_aux + expressao.charAt(counter); 367 | valchar = getchar(); 368 | if(fimexpressao) 369 | { 370 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 371 | return; 372 | } 373 | } 374 | counter--; 375 | } else 376 | { 377 | if(verifica_condicoes_aux.length() != 0) 378 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 379 | parametroerro(valchar); 380 | return; 381 | } 382 | valchar = getchar(); 383 | if(fimexpressao) 384 | { 385 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 386 | return; 387 | } 388 | while(verificaparentesefecha(valchar) | verificaespaco(valchar)) 389 | { 390 | verifica_condicoes_aux = verifica_condicoes_aux + expressao.charAt(counter); 391 | if(verificaparentesefecha(valchar)) 392 | parenteses--; 393 | valchar = getchar(); 394 | if(fimexpressao) 395 | { 396 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 397 | return; 398 | } 399 | } 400 | posicao = counter - 1; 401 | if((valchar == 65) | (valchar == 97)) 402 | { 403 | valchar = getchar(); 404 | if(fimexpressao) 405 | { 406 | verifica_condicoes_aux = verifica_condicoes_aux + "A"; 407 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 408 | return; 409 | } 410 | if((valchar == 110) | (valchar == 78)) 411 | { 412 | valchar = getchar(); 413 | if(fimexpressao) 414 | { 415 | verifica_condicoes_aux = verifica_condicoes_aux + "AN"; 416 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 417 | return; 418 | } 419 | if((valchar == 100) | (valchar == 68)) 420 | { 421 | valchar = getchar(); 422 | if(fimexpressao) 423 | { 424 | verifica_condicoes_aux = verifica_condicoes_aux + "AND"; 425 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 426 | return; 427 | } 428 | if(verificaespaco(valchar)) 429 | { 430 | verifica_condicoes_aux = verifica_condicoes_aux + "AND "; 431 | } else 432 | { 433 | if(verificaletra(valchar) | verificanumeros(valchar)) 434 | { 435 | counter -= 4; 436 | return; 437 | } 438 | if(verifica_condicoes_aux.length() != 0) 439 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 440 | parametroerro(valchar); 441 | return; 442 | } 443 | } else 444 | { 445 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 446 | counter -= 3; 447 | return; 448 | } 449 | } else 450 | { 451 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 452 | counter -= 2; 453 | return; 454 | } 455 | } else 456 | { 457 | setparametroalgebratexto(verifica_condicoes_aux, "sobrescrito"); 458 | counter--; 459 | sair = true; 460 | } 461 | } 462 | } 463 | 464 | public void renomear() 465 | { 466 | int valchar = 0; 467 | int local_parenteses_abre = 0; 468 | boolean sair = false; 469 | String relacao_aux = ""; 470 | String renomear_aux = ""; 471 | boolean renomear_relacao = false; 472 | valchar = getchar(); 473 | if(fimexpressao) 474 | return; 475 | while(verificaespaco(valchar)) 476 | { 477 | renomear_aux = renomear_aux + expressao.charAt(counter); 478 | valchar = getchar(); 479 | if(fimexpressao) 480 | { 481 | setparametroalgebratexto(renomear_aux, "normal"); 482 | return; 483 | } 484 | } 485 | if(renomear_aux.length() != 0) 486 | setparametroalgebratexto(renomear_aux, "normal"); 487 | if((!verificaletra(valchar)) & (!verificanumeros(valchar)) & (!verificaparenteseabre(valchar))) 488 | { 489 | parametroerro(valchar); 490 | return; 491 | } 492 | if(verificaletra(valchar) | verificanumeros(valchar)) 493 | { 494 | while(verificaletra(valchar) | verificanumeros(valchar)) 495 | { 496 | relacao_aux = relacao_aux + expressao.charAt(counter); 497 | renomear_relacao = true; 498 | valchar = getchar(); 499 | if(fimexpressao) 500 | { 501 | setparametroalgebratexto(relacao_aux, "renomear_relacao"); 502 | return; 503 | } 504 | } 505 | setparametroalgebratexto(relacao_aux, "renomear_relacao"); 506 | } 507 | renomear_aux = ""; 508 | while(verificaespaco(valchar)) 509 | { 510 | renomear_aux = renomear_aux + expressao.charAt(counter); 511 | valchar = getchar(); 512 | if(fimexpressao) 513 | { 514 | setparametroalgebratexto(renomear_aux, "normal"); 515 | return; 516 | } 517 | } 518 | if(renomear_aux.length() != 0) 519 | setparametroalgebratexto(renomear_aux, "normal"); 520 | renomear_aux = ""; 521 | if(verificaparenteseabre(valchar)) 522 | { 523 | local_parenteses_abre = counter; 524 | while(!sair) 525 | { 526 | valchar = getchar(); 527 | if(fimexpressao) 528 | { 529 | counter = local_parenteses_abre - 1; 530 | fimexpressao = false; 531 | return; 532 | } 533 | if(verificaoperadoresbinarios(valchar) | verificaoperadoresunarios(valchar)) 534 | { 535 | counter = local_parenteses_abre - 1; 536 | fimexpressao = false; 537 | return; 538 | } 539 | if(verificaparentesefecha(valchar)) 540 | { 541 | valchar = getchar(); 542 | if(fimexpressao) 543 | { 544 | counter = local_parenteses_abre - 1; 545 | fimexpressao = false; 546 | return; 547 | } 548 | while(verificaespaco(valchar)) 549 | { 550 | valchar = getchar(); 551 | if(fimexpressao) 552 | { 553 | counter = local_parenteses_abre - 1; 554 | fimexpressao = false; 555 | return; 556 | } 557 | } 558 | if(verificaparenteseabre(valchar)) 559 | { 560 | counter = local_parenteses_abre; 561 | sair = true; 562 | } else 563 | { 564 | counter = local_parenteses_abre - 1; 565 | fimexpressao = false; 566 | return; 567 | } 568 | } else 569 | if(valchar == 44) 570 | { 571 | counter = local_parenteses_abre; 572 | sair = true; 573 | } else 574 | if(!(verificaletra(valchar) | verificanumeros(valchar))) 575 | { 576 | counter = local_parenteses_abre - 1; 577 | fimexpressao = false; 578 | return; 579 | } 580 | } 581 | } else 582 | { 583 | parametroerro(valchar); 584 | return; 585 | } 586 | renomear_aux = renomear_aux + "("; 587 | for(sair = false; !sair;) 588 | { 589 | valchar = getchar(); 590 | if(fimexpressao) 591 | { 592 | setparametroalgebratexto(renomear_aux, "sobrescrito"); 593 | return; 594 | } 595 | while(verificaespaco(valchar)) 596 | { 597 | renomear_aux = renomear_aux + expressao.charAt(counter); 598 | valchar = getchar(); 599 | if(fimexpressao) 600 | { 601 | setparametroalgebratexto(renomear_aux, "sobrescrito"); 602 | return; 603 | } 604 | } 605 | if(verificaletra(valchar) | verificanumeros(valchar)) 606 | { 607 | while(verificaletra(valchar) | verificanumeros(valchar)) 608 | { 609 | renomear_aux = renomear_aux + expressao.charAt(counter); 610 | valchar = getchar(); 611 | if(fimexpressao) 612 | { 613 | setparametroalgebratexto(renomear_aux, "sobrescrito"); 614 | return; 615 | } 616 | } 617 | while(verificaespaco(valchar)) 618 | { 619 | renomear_aux = renomear_aux + expressao.charAt(counter); 620 | valchar = getchar(); 621 | if(fimexpressao) 622 | { 623 | setparametroalgebratexto(renomear_aux, "sobrescrito"); 624 | return; 625 | } 626 | } 627 | if(valchar == 44) 628 | renomear_aux = renomear_aux + expressao.charAt(counter); 629 | else 630 | if(verificaparentesefecha(valchar)) 631 | { 632 | renomear_aux = renomear_aux + expressao.charAt(counter); 633 | setparametroalgebratexto(renomear_aux, "sobrescrito"); 634 | sair = true; 635 | } else 636 | { 637 | setparametroalgebratexto(renomear_aux, "sobrescrito"); 638 | parametroerro(valchar); 639 | return; 640 | } 641 | } else 642 | { 643 | setparametroalgebratexto(renomear_aux, "sobrescrito"); 644 | parametroerro(valchar); 645 | return; 646 | } 647 | } 648 | 649 | } 650 | 651 | public void projecao() 652 | { 653 | int valchar = 0; 654 | boolean sair = false; 655 | String projecao_aux = ""; 656 | valchar = getchar(); 657 | if(fimexpressao) 658 | return; 659 | while(verificaespaco(valchar)) 660 | { 661 | projecao_aux = projecao_aux + expressao.charAt(counter); 662 | valchar = getchar(); 663 | if(fimexpressao) 664 | { 665 | setparametroalgebratexto(projecao_aux, "sobrescrito"); 666 | return; 667 | } 668 | } 669 | while(!sair) 670 | if(verificanumeros(valchar) | verificaletra(valchar)) 671 | { 672 | while(verificanumeros(valchar) | verificaletra(valchar)) 673 | { 674 | projecao_aux = projecao_aux + expressao.charAt(counter); 675 | valchar = getchar(); 676 | if(fimexpressao) 677 | { 678 | setparametroalgebratexto(projecao_aux, "sobrescrito"); 679 | return; 680 | } 681 | } 682 | while(verificaespaco(valchar)) 683 | { 684 | projecao_aux = projecao_aux + expressao.charAt(counter); 685 | valchar = getchar(); 686 | if(fimexpressao) 687 | { 688 | setparametroalgebratexto(projecao_aux, "sobrescrito"); 689 | return; 690 | } 691 | } 692 | if(verificaparenteseabre(valchar)) 693 | { 694 | counter--; 695 | setparametroalgebratexto(projecao_aux, "sobrescrito"); 696 | return; 697 | } 698 | if(valchar == 44) 699 | { 700 | projecao_aux = projecao_aux + expressao.charAt(counter); 701 | sair = false; 702 | } else 703 | { 704 | setparametroalgebratexto(projecao_aux, "sobrescrito"); 705 | parametroerro(valchar); 706 | return; 707 | } 708 | valchar = getchar(); 709 | if(fimexpressao) 710 | { 711 | setparametroalgebratexto(projecao_aux, "sobrescrito"); 712 | return; 713 | } 714 | while(verificaespaco(valchar)) 715 | { 716 | projecao_aux = projecao_aux + expressao.charAt(counter); 717 | valchar = getchar(); 718 | if(fimexpressao) 719 | { 720 | setparametroalgebratexto(projecao_aux, "sobrescrito"); 721 | return; 722 | } 723 | } 724 | } else 725 | { 726 | setparametroalgebratexto(projecao_aux, "sobrescrito"); 727 | parametroerro(valchar); 728 | return; 729 | } 730 | } 731 | 732 | public void selecao() 733 | { 734 | int valchar = 0; 735 | int parenteses = 0; 736 | int local_parenteses_abre = 0; 737 | int posicao = 0; 738 | int qtd_char = 0; 739 | boolean sair = false; 740 | String selecao_aux = new String(); 741 | while(!sair) 742 | { 743 | valchar = getchar(); 744 | if(fimexpressao) 745 | { 746 | if(selecao_aux.length() != 0) 747 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 748 | return; 749 | } 750 | if(verificaespaco(valchar)) 751 | while(verificaespaco(valchar)) 752 | { 753 | selecao_aux = selecao_aux + expressao.charAt(counter); 754 | valchar = getchar(); 755 | if(fimexpressao) 756 | { 757 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 758 | return; 759 | } 760 | } 761 | if(verificaparenteseabre(valchar)) 762 | { 763 | local_parenteses_abre = counter; 764 | while(!sair) 765 | { 766 | valchar = getchar(); 767 | if(fimexpressao) 768 | { 769 | counter = local_parenteses_abre - 1; 770 | fimexpressao = false; 771 | if(selecao_aux.length() != 0) 772 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 773 | return; 774 | } 775 | if(verificaoperadoresbinarios(valchar) | verificaoperadoresunarios(valchar)) 776 | { 777 | counter = local_parenteses_abre - 1; 778 | if(selecao_aux.length() != 0) 779 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 780 | return; 781 | } 782 | if(verificaparentesefecha(valchar)) 783 | { 784 | valchar = getchar(); 785 | if(fimexpressao) 786 | { 787 | counter = local_parenteses_abre - 1; 788 | fimexpressao = false; 789 | if(selecao_aux.length() != 0) 790 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 791 | return; 792 | } 793 | while(verificaespaco(valchar)) 794 | { 795 | valchar = getchar(); 796 | if(fimexpressao) 797 | { 798 | counter = local_parenteses_abre - 1; 799 | fimexpressao = false; 800 | if(selecao_aux.length() != 0) 801 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 802 | return; 803 | } 804 | } 805 | if(verificaparenteseabre(valchar)) 806 | { 807 | counter = local_parenteses_abre - 1; 808 | sair = true; 809 | } else 810 | { 811 | counter = local_parenteses_abre - 1; 812 | if(selecao_aux.length() != 0) 813 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 814 | return; 815 | } 816 | } 817 | if(verificacomparacao(valchar)) 818 | { 819 | counter = local_parenteses_abre - 1; 820 | sair = true; 821 | } 822 | } 823 | } else 824 | { 825 | counter--; 826 | } 827 | sair = false; 828 | valchar = getchar(); 829 | if(fimexpressao) 830 | { 831 | if(selecao_aux.length() != 0) 832 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 833 | return; 834 | } 835 | if(verificaparenteseabre(valchar) | verificaespaco(valchar) | verificaletra(valchar) | verificanumeros(valchar)) 836 | { 837 | while(verificaparenteseabre(valchar) | verificaespaco(valchar)) 838 | { 839 | if(verificaparenteseabre(valchar)) 840 | parenteses++; 841 | selecao_aux = selecao_aux + expressao.charAt(counter); 842 | valchar = getchar(); 843 | if(fimexpressao) 844 | { 845 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 846 | return; 847 | } 848 | } 849 | if(verificaletra(valchar) | verificanumeros(valchar)) 850 | { 851 | while(verificaletra(valchar) | verificanumeros(valchar)) 852 | { 853 | selecao_aux = selecao_aux + expressao.charAt(counter); 854 | valchar = getchar(); 855 | if(fimexpressao) 856 | { 857 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 858 | return; 859 | } 860 | } 861 | } else 862 | { 863 | if(selecao_aux.length() != 0) 864 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 865 | parametroerro(valchar); 866 | return; 867 | } 868 | } else 869 | { 870 | if(selecao_aux.length() != 0) 871 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 872 | parametroerro(valchar); 873 | return; 874 | } 875 | while(verificaespaco(valchar)) 876 | { 877 | selecao_aux = selecao_aux + expressao.charAt(counter); 878 | valchar = getchar(); 879 | if(fimexpressao) 880 | { 881 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 882 | return; 883 | } 884 | } 885 | if(verificacomparacao(valchar)) 886 | { 887 | selecao_aux = selecao_aux + expressao.charAt(counter); 888 | switch(valchar) 889 | { 890 | case 60: // '<' 891 | valchar = getchar(); 892 | if(fimexpressao) 893 | { 894 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 895 | return; 896 | } 897 | if((valchar == 61) | (valchar == 62)) 898 | selecao_aux = selecao_aux + expressao.charAt(counter); 899 | else 900 | if(verificaespaco(valchar) | verificaletra(valchar) | verificanumeros(valchar)) 901 | { 902 | counter--; 903 | } else 904 | { 905 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 906 | parametroerro(valchar); 907 | return; 908 | } 909 | break; 910 | 911 | case 62: // '>' 912 | valchar = getchar(); 913 | if(fimexpressao) 914 | { 915 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 916 | return; 917 | } 918 | if(valchar == 61) 919 | selecao_aux = selecao_aux + expressao.charAt(counter); 920 | else 921 | if(verificaespaco(valchar) | verificaletra(valchar) | verificanumeros(valchar)) 922 | { 923 | counter--; 924 | } else 925 | { 926 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 927 | parametroerro(valchar); 928 | return; 929 | } 930 | break; 931 | } 932 | } else 933 | { 934 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 935 | parametroerro(valchar); 936 | return; 937 | } 938 | valchar = getchar(); 939 | if(fimexpressao) 940 | { 941 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 942 | return; 943 | } 944 | while(verificaespaco(valchar)) 945 | { 946 | selecao_aux = selecao_aux + expressao.charAt(counter); 947 | valchar = getchar(); 948 | if(fimexpressao) 949 | { 950 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 951 | return; 952 | } 953 | } 954 | if(valchar == 34) 955 | { 956 | selecao_aux = selecao_aux + expressao.charAt(counter); 957 | for(sair = false; !sair;) 958 | { 959 | valchar = getchar(); 960 | if(fimexpressao) 961 | { 962 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 963 | return; 964 | } 965 | if(verificaletra(valchar) | verificanumeros(valchar) | verificaespaco(valchar)) 966 | selecao_aux = selecao_aux + expressao.charAt(counter); 967 | else 968 | if(valchar == 34) 969 | { 970 | selecao_aux = selecao_aux + expressao.charAt(counter); 971 | sair = true; 972 | } else 973 | { 974 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 975 | parametroerro(valchar); 976 | return; 977 | } 978 | } 979 | 980 | sair = false; 981 | } else 982 | if(verificaletra(valchar) | verificanumeros(valchar)) 983 | { 984 | while(verificaletra(valchar) | verificanumeros(valchar)) 985 | { 986 | selecao_aux = selecao_aux + expressao.charAt(counter); 987 | valchar = getchar(); 988 | if(fimexpressao) 989 | { 990 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 991 | return; 992 | } 993 | } 994 | counter--; 995 | } else 996 | { 997 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 998 | parametroerro(valchar); 999 | return; 1000 | } 1001 | valchar = getchar(); 1002 | if(fimexpressao) 1003 | { 1004 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1005 | return; 1006 | } 1007 | while(verificaparentesefecha(valchar) | verificaespaco(valchar)) 1008 | { 1009 | if(verificaparentesefecha(valchar)) 1010 | parenteses--; 1011 | selecao_aux = selecao_aux + expressao.charAt(counter); 1012 | valchar = getchar(); 1013 | if(fimexpressao) 1014 | { 1015 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1016 | return; 1017 | } 1018 | } 1019 | posicao = counter - 1; 1020 | if((valchar == 65) | (valchar == 97)) 1021 | { 1022 | valchar = getchar(); 1023 | if(fimexpressao) 1024 | { 1025 | selecao_aux = selecao_aux + "A"; 1026 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1027 | return; 1028 | } 1029 | if((valchar == 110) | (valchar == 78)) 1030 | { 1031 | valchar = getchar(); 1032 | if(fimexpressao) 1033 | { 1034 | selecao_aux = selecao_aux + "AN"; 1035 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1036 | return; 1037 | } 1038 | if((valchar == 100) | (valchar == 68)) 1039 | { 1040 | valchar = getchar(); 1041 | if(fimexpressao) 1042 | { 1043 | selecao_aux = selecao_aux + "AND"; 1044 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1045 | return; 1046 | } 1047 | if(verificaespaco(valchar)) 1048 | { 1049 | selecao_aux = selecao_aux + "AND "; 1050 | } else 1051 | { 1052 | selecao_aux = selecao_aux + "AND"; 1053 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1054 | parametroerro(valchar); 1055 | return; 1056 | } 1057 | } else 1058 | { 1059 | selecao_aux = selecao_aux + "AN"; 1060 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1061 | parametroerro(valchar); 1062 | return; 1063 | } 1064 | } else 1065 | { 1066 | selecao_aux = selecao_aux + "A"; 1067 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1068 | parametroerro(valchar); 1069 | return; 1070 | } 1071 | } else 1072 | if((valchar == 111) | (valchar == 79)) 1073 | { 1074 | valchar = getchar(); 1075 | if(fimexpressao) 1076 | { 1077 | selecao_aux = selecao_aux + "O"; 1078 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1079 | return; 1080 | } 1081 | if((valchar == 114) | (valchar == 82)) 1082 | { 1083 | valchar = getchar(); 1084 | if(fimexpressao) 1085 | { 1086 | selecao_aux = selecao_aux + "OR"; 1087 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1088 | return; 1089 | } 1090 | if(verificaespaco(valchar)) 1091 | { 1092 | selecao_aux = selecao_aux + "OR "; 1093 | } else 1094 | { 1095 | selecao_aux = selecao_aux + "OR"; 1096 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1097 | parametroerro(valchar); 1098 | return; 1099 | } 1100 | } else 1101 | { 1102 | selecao_aux = selecao_aux + "O"; 1103 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1104 | parametroerro(valchar); 1105 | return; 1106 | } 1107 | } else 1108 | if(verificaparenteseabre(valchar)) 1109 | { 1110 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1111 | counter--; 1112 | return; 1113 | } else 1114 | { 1115 | setparametroalgebratexto(selecao_aux, "sobrescrito"); 1116 | parametroerro(valchar); 1117 | return; 1118 | } 1119 | } 1120 | } 1121 | 1122 | public void relacao(int valchar) 1123 | { 1124 | String relacao_aux = ""; 1125 | while(verificaletra(valchar) | verificanumeros(valchar)) 1126 | { 1127 | relacao_aux = relacao_aux + expressao.charAt(counter); 1128 | valchar = getchar(); 1129 | if(fimexpressao) 1130 | { 1131 | setparametroalgebratexto(relacao_aux, "normal"); 1132 | return; 1133 | } 1134 | } 1135 | if(verificaespaco(valchar)) 1136 | while(verificaespaco(valchar)) 1137 | { 1138 | relacao_aux = relacao_aux + expressao.charAt(counter); 1139 | valchar = getchar(); 1140 | if(fimexpressao) 1141 | { 1142 | setparametroalgebratexto(relacao_aux, "normal"); 1143 | return; 1144 | } 1145 | } 1146 | if((valchar == 922) | (valchar == 44)) 1147 | { 1148 | agregacao(relacao_aux, valchar); 1149 | return; 1150 | } 1151 | if(verificaparenteseabre(valchar) | (valchar == 945) && pode_ter_recursao) 1152 | { 1153 | recursao(relacao_aux, valchar); 1154 | return; 1155 | } 1156 | if(verificaparentesefecha(valchar) | verificaespaco(valchar)) 1157 | while(verificaparentesefecha(valchar) | verificaespaco(valchar)) 1158 | { 1159 | relacao_aux = relacao_aux + expressao.charAt(counter); 1160 | if(verificaparentesefecha(valchar)) 1161 | parenteses_counter--; 1162 | valchar = getchar(); 1163 | if(fimexpressao) 1164 | { 1165 | setparametroalgebratexto(relacao_aux, "normal"); 1166 | return; 1167 | } 1168 | } 1169 | setparametroalgebratexto(relacao_aux, "normal"); 1170 | if(verificaoperadoresbinarios(valchar)) 1171 | { 1172 | operadorbinario(valchar); 1173 | } else 1174 | { 1175 | parametroerro(valchar); 1176 | return; 1177 | } 1178 | } 1179 | 1180 | public void recursao(String recursao_aux, int valchar) 1181 | { 1182 | boolean sair = false; 1183 | if(recursao_aux.trim().equals("resultado") | recursao_aux.trim().equals("RESULTADO")) 1184 | setparametroalgebratexto(recursao_aux, "operador"); 1185 | else 1186 | setparametroalgebratexto(recursao_aux, "normal"); 1187 | recursao_aux = ""; 1188 | if(verificaparenteseabre(valchar)) 1189 | { 1190 | recursao_aux = recursao_aux + expressao.charAt(counter); 1191 | valchar = getchar(); 1192 | if(fimexpressao) 1193 | { 1194 | setparametroalgebratexto(recursao_aux, "normal"); 1195 | return; 1196 | } 1197 | while(!sair) 1198 | { 1199 | while(verificaespaco(valchar)) 1200 | { 1201 | recursao_aux = recursao_aux + expressao.charAt(counter); 1202 | valchar = getchar(); 1203 | if(fimexpressao) 1204 | { 1205 | setparametroalgebratexto(recursao_aux, "normal"); 1206 | return; 1207 | } 1208 | } 1209 | if(verificaletra(valchar) | verificanumeros(valchar)) 1210 | { 1211 | while(verificaletra(valchar) | verificanumeros(valchar)) 1212 | { 1213 | recursao_aux = recursao_aux + expressao.charAt(counter); 1214 | valchar = getchar(); 1215 | if(fimexpressao) 1216 | { 1217 | setparametroalgebratexto(recursao_aux, "normal"); 1218 | return; 1219 | } 1220 | } 1221 | } else 1222 | { 1223 | setparametroalgebratexto(recursao_aux, "normal"); 1224 | parametroerro(valchar); 1225 | return; 1226 | } 1227 | if(valchar == 44) 1228 | { 1229 | recursao_aux = recursao_aux + expressao.charAt(counter); 1230 | sair = false; 1231 | valchar = getchar(); 1232 | if(fimexpressao) 1233 | { 1234 | setparametroalgebratexto(recursao_aux, "normal"); 1235 | return; 1236 | } 1237 | } else 1238 | if(verificaparentesefecha(valchar)) 1239 | { 1240 | recursao_aux = recursao_aux + expressao.charAt(counter); 1241 | sair = true; 1242 | } else 1243 | { 1244 | setparametroalgebratexto(recursao_aux, "normal"); 1245 | parametroerro(valchar); 1246 | return; 1247 | } 1248 | } 1249 | valchar = getchar(); 1250 | if(fimexpressao) 1251 | { 1252 | setparametroalgebratexto(recursao_aux, "normal"); 1253 | return; 1254 | } 1255 | while(verificaespaco(valchar)) 1256 | { 1257 | recursao_aux = recursao_aux + expressao.charAt(counter); 1258 | valchar = getchar(); 1259 | if(fimexpressao) 1260 | { 1261 | setparametroalgebratexto(recursao_aux, "normal"); 1262 | return; 1263 | } 1264 | } 1265 | if(valchar == 945) 1266 | { 1267 | setparametroalgebratexto(recursao_aux, "normal"); 1268 | setparametroalgebratexto((new Character('\u03B1')).toString(), "operador"); 1269 | return; 1270 | } else 1271 | { 1272 | setparametroalgebratexto(recursao_aux, "normal"); 1273 | parametroerro(valchar); 1274 | return; 1275 | } 1276 | } 1277 | if(valchar == 945) 1278 | { 1279 | setparametroalgebratexto(recursao_aux, "normal"); 1280 | setparametroalgebratexto((new Character('\u03B1')).toString(), "operador"); 1281 | return; 1282 | } else 1283 | { 1284 | setparametroalgebratexto(recursao_aux, "normal"); 1285 | parametroerro(valchar); 1286 | return; 1287 | } 1288 | } 1289 | 1290 | public void agregacao(String groupby_aux, int valchar) 1291 | { 1292 | boolean sair = false; 1293 | int val_aux = 0; 1294 | String campo_aux = ""; 1295 | String agregacao_aux = ""; 1296 | while(valchar == 44) 1297 | { 1298 | groupby_aux = groupby_aux + expressao.charAt(counter); 1299 | valchar = getchar(); 1300 | if(fimexpressao) 1301 | { 1302 | setparametroalgebratexto(groupby_aux, "normal"); 1303 | return; 1304 | } 1305 | while(verificaespaco(valchar)) 1306 | { 1307 | groupby_aux = groupby_aux + expressao.charAt(counter); 1308 | valchar = getchar(); 1309 | if(fimexpressao) 1310 | { 1311 | setparametroalgebratexto(groupby_aux, "normal"); 1312 | return; 1313 | } 1314 | } 1315 | while(verificaletra(valchar) | verificanumeros(valchar)) 1316 | { 1317 | groupby_aux = groupby_aux + expressao.charAt(counter); 1318 | valchar = getchar(); 1319 | if(fimexpressao) 1320 | { 1321 | setparametroalgebratexto(groupby_aux, "normal"); 1322 | return; 1323 | } 1324 | } 1325 | while(verificaespaco(valchar)) 1326 | { 1327 | groupby_aux = groupby_aux + expressao.charAt(counter); 1328 | valchar = getchar(); 1329 | if(fimexpressao) 1330 | { 1331 | setparametroalgebratexto(groupby_aux, "normal"); 1332 | return; 1333 | } 1334 | } 1335 | } 1336 | if(groupby_aux.length() != 0) 1337 | setparametroalgebratexto(groupby_aux, "normal"); 1338 | if(valchar == 922) 1339 | { 1340 | setparametroalgebratexto((new Character('\u039A')).toString(), "operador"); 1341 | while(!sair) 1342 | { 1343 | valchar = getchar(); 1344 | if(fimexpressao) 1345 | { 1346 | if(agregacao_aux.length() != 0) 1347 | setparametroalgebratexto(agregacao_aux, "normal"); 1348 | return; 1349 | } 1350 | while(verificaespaco(valchar)) 1351 | { 1352 | agregacao_aux = agregacao_aux + expressao.charAt(counter); 1353 | valchar = getchar(); 1354 | if(fimexpressao) 1355 | { 1356 | setparametroalgebratexto(agregacao_aux, "normal"); 1357 | return; 1358 | } 1359 | } 1360 | if(verificaletra(valchar)) 1361 | { 1362 | val_aux = verificaSUM(valchar, agregacao_aux); 1363 | if(val_aux == -1) 1364 | return; 1365 | if(val_aux == 0) 1366 | { 1367 | val_aux = verificaAVERAGE(valchar, agregacao_aux); 1368 | if(val_aux == -1) 1369 | return; 1370 | if(val_aux == 0) 1371 | { 1372 | val_aux = verificaMAXIMUM(valchar, agregacao_aux); 1373 | if(val_aux == -1) 1374 | return; 1375 | if(val_aux == 0) 1376 | { 1377 | val_aux = verificaMINIMUM(valchar, agregacao_aux); 1378 | if(val_aux == -1) 1379 | return; 1380 | if(val_aux == 0) 1381 | { 1382 | val_aux = verificaCOUNT(valchar, agregacao_aux); 1383 | if(val_aux == -1) 1384 | return; 1385 | if(val_aux == 0) 1386 | { 1387 | if(agregacao_aux.length() != 0) 1388 | setparametroalgebratexto(agregacao_aux, "normal"); 1389 | parametroerro(valchar); 1390 | return; 1391 | } 1392 | agregacao_aux = agregacao_aux + "COUNT "; 1393 | } else 1394 | { 1395 | agregacao_aux = agregacao_aux + "MINIMUM "; 1396 | } 1397 | } else 1398 | { 1399 | agregacao_aux = agregacao_aux + "MAXIMUM "; 1400 | } 1401 | } else 1402 | { 1403 | agregacao_aux = agregacao_aux + "AVERAGE "; 1404 | } 1405 | } else 1406 | { 1407 | agregacao_aux = agregacao_aux + "SUM "; 1408 | } 1409 | } else 1410 | { 1411 | if(agregacao_aux.length() != 0) 1412 | setparametroalgebratexto(agregacao_aux, "normal"); 1413 | parametroerro(valchar); 1414 | return; 1415 | } 1416 | valchar = getchar(); 1417 | if(fimexpressao) 1418 | { 1419 | setparametroalgebratexto(agregacao_aux, "normal"); 1420 | return; 1421 | } 1422 | while(verificaespaco(valchar)) 1423 | { 1424 | agregacao_aux = agregacao_aux + expressao.charAt(counter); 1425 | valchar = getchar(); 1426 | if(fimexpressao) 1427 | { 1428 | setparametroalgebratexto(agregacao_aux, "normal"); 1429 | return; 1430 | } 1431 | } 1432 | if(verificaletra(valchar) | verificanumeros(valchar)) 1433 | { 1434 | while(verificaletra(valchar) | verificanumeros(valchar)) 1435 | { 1436 | campo_aux = campo_aux + expressao.charAt(counter); 1437 | valchar = getchar(); 1438 | if(fimexpressao) 1439 | { 1440 | setparametroalgebratexto(agregacao_aux, "normal"); 1441 | setparametroalgebratexto(campo_aux, "sobrescrito"); 1442 | return; 1443 | } 1444 | } 1445 | setparametroalgebratexto(agregacao_aux, "normal"); 1446 | setparametroalgebratexto(campo_aux, "sobrescrito"); 1447 | agregacao_aux = ""; 1448 | campo_aux = ""; 1449 | } else 1450 | { 1451 | setparametroalgebratexto(agregacao_aux, "normal"); 1452 | parametroerro(valchar); 1453 | return; 1454 | } 1455 | while(verificaespaco(valchar)) 1456 | { 1457 | agregacao_aux = agregacao_aux + expressao.charAt(counter); 1458 | valchar = getchar(); 1459 | if(fimexpressao) 1460 | { 1461 | setparametroalgebratexto(agregacao_aux, "normal"); 1462 | return; 1463 | } 1464 | } 1465 | if(verificaparenteseabre(valchar)) 1466 | { 1467 | counter--; 1468 | sair = true; 1469 | if(agregacao_aux.length() != 0) 1470 | setparametroalgebratexto(agregacao_aux, "normal"); 1471 | } else 1472 | if(valchar == 44) 1473 | { 1474 | agregacao_aux = agregacao_aux + expressao.charAt(counter); 1475 | sair = false; 1476 | } else 1477 | { 1478 | setparametroalgebratexto(agregacao_aux, "normal"); 1479 | parametroerro(valchar); 1480 | return; 1481 | } 1482 | } 1483 | } else 1484 | { 1485 | parametroerro(valchar); 1486 | return; 1487 | } 1488 | } 1489 | 1490 | public int verificaSUM(int valchar, String agregacao_aux) 1491 | { 1492 | if((valchar == 83) | (valchar == 115)) 1493 | { 1494 | valchar = getchar(); 1495 | if(fimexpressao) 1496 | { 1497 | agregacao_aux = agregacao_aux + "S"; 1498 | setparametroalgebratexto(agregacao_aux, "normal"); 1499 | return -1; 1500 | } 1501 | if((valchar == 85) | (valchar == 117)) 1502 | { 1503 | valchar = getchar(); 1504 | if(fimexpressao) 1505 | { 1506 | agregacao_aux = agregacao_aux + "SU"; 1507 | setparametroalgebratexto(agregacao_aux, "normal"); 1508 | return -1; 1509 | } 1510 | if((valchar == 77) | (valchar == 109)) 1511 | { 1512 | valchar = getchar(); 1513 | if(fimexpressao) 1514 | { 1515 | agregacao_aux = agregacao_aux + "SUM"; 1516 | setparametroalgebratexto(agregacao_aux, "normal"); 1517 | return -1; 1518 | } 1519 | if(verificaespaco(valchar)) 1520 | { 1521 | return 1; 1522 | } else 1523 | { 1524 | counter -= 3; 1525 | return 0; 1526 | } 1527 | } else 1528 | { 1529 | counter -= 2; 1530 | return 0; 1531 | } 1532 | } else 1533 | { 1534 | counter--; 1535 | return 0; 1536 | } 1537 | } else 1538 | { 1539 | return 0; 1540 | } 1541 | } 1542 | 1543 | public int verificaAVERAGE(int valchar, String agregacao_aux) 1544 | { 1545 | if((valchar == 65) | (valchar == 97)) 1546 | { 1547 | valchar = getchar(); 1548 | if(fimexpressao) 1549 | { 1550 | agregacao_aux = agregacao_aux + "A"; 1551 | setparametroalgebratexto(agregacao_aux, "normal"); 1552 | return -1; 1553 | } 1554 | if((valchar == 86) | (valchar == 118)) 1555 | { 1556 | valchar = getchar(); 1557 | if(fimexpressao) 1558 | { 1559 | agregacao_aux = agregacao_aux + "AV"; 1560 | setparametroalgebratexto(agregacao_aux, "normal"); 1561 | return -1; 1562 | } 1563 | if((valchar == 69) | (valchar == 101)) 1564 | { 1565 | valchar = getchar(); 1566 | if(fimexpressao) 1567 | { 1568 | agregacao_aux = agregacao_aux + "AVE"; 1569 | setparametroalgebratexto(agregacao_aux, "normal"); 1570 | return -1; 1571 | } 1572 | if((valchar == 82) | (valchar == 114)) 1573 | { 1574 | valchar = getchar(); 1575 | if(fimexpressao) 1576 | { 1577 | agregacao_aux = agregacao_aux + "AVER"; 1578 | setparametroalgebratexto(agregacao_aux, "normal"); 1579 | return -1; 1580 | } 1581 | if((valchar == 65) | (valchar == 97)) 1582 | { 1583 | valchar = getchar(); 1584 | if(fimexpressao) 1585 | { 1586 | agregacao_aux = agregacao_aux + "AVERA"; 1587 | setparametroalgebratexto(agregacao_aux, "normal"); 1588 | return -1; 1589 | } 1590 | if((valchar == 71) | (valchar == 103)) 1591 | { 1592 | valchar = getchar(); 1593 | if(fimexpressao) 1594 | { 1595 | agregacao_aux = agregacao_aux + "AVERAG"; 1596 | setparametroalgebratexto(agregacao_aux, "normal"); 1597 | return -1; 1598 | } 1599 | if((valchar == 69) | (valchar == 101)) 1600 | { 1601 | valchar = getchar(); 1602 | if(fimexpressao) 1603 | { 1604 | agregacao_aux = agregacao_aux + "AVERAGE"; 1605 | setparametroalgebratexto(agregacao_aux, "normal"); 1606 | return -1; 1607 | } 1608 | if(verificaespaco(valchar)) 1609 | { 1610 | return 1; 1611 | } else 1612 | { 1613 | counter -= 7; 1614 | return 0; 1615 | } 1616 | } else 1617 | { 1618 | counter -= 6; 1619 | return 0; 1620 | } 1621 | } else 1622 | { 1623 | counter -= 5; 1624 | return 0; 1625 | } 1626 | } else 1627 | { 1628 | counter -= 4; 1629 | return 0; 1630 | } 1631 | } else 1632 | { 1633 | counter -= 3; 1634 | return 0; 1635 | } 1636 | } else 1637 | { 1638 | counter -= 2; 1639 | return 0; 1640 | } 1641 | } else 1642 | { 1643 | counter--; 1644 | return 0; 1645 | } 1646 | } else 1647 | { 1648 | return 0; 1649 | } 1650 | } 1651 | 1652 | public int verificaMAXIMUM(int valchar, String agregacao_aux) 1653 | { 1654 | if((valchar == 77) | (valchar == 109)) 1655 | { 1656 | valchar = getchar(); 1657 | if(fimexpressao) 1658 | { 1659 | agregacao_aux = agregacao_aux + "M"; 1660 | setparametroalgebratexto(agregacao_aux, "normal"); 1661 | return -1; 1662 | } 1663 | if((valchar == 65) | (valchar == 97)) 1664 | { 1665 | valchar = getchar(); 1666 | if(fimexpressao) 1667 | { 1668 | agregacao_aux = agregacao_aux + "MA"; 1669 | setparametroalgebratexto(agregacao_aux, "normal"); 1670 | return -1; 1671 | } 1672 | if((valchar == 88) | (valchar == 120)) 1673 | { 1674 | valchar = getchar(); 1675 | if(fimexpressao) 1676 | { 1677 | agregacao_aux = agregacao_aux + "MAX"; 1678 | setparametroalgebratexto(agregacao_aux, "normal"); 1679 | return -1; 1680 | } 1681 | if((valchar == 73) | (valchar == 105)) 1682 | { 1683 | valchar = getchar(); 1684 | if(fimexpressao) 1685 | { 1686 | agregacao_aux = agregacao_aux + "MAXI"; 1687 | setparametroalgebratexto(agregacao_aux, "normal"); 1688 | return -1; 1689 | } 1690 | if((valchar == 77) | (valchar == 109)) 1691 | { 1692 | valchar = getchar(); 1693 | if(fimexpressao) 1694 | { 1695 | agregacao_aux = agregacao_aux + "MAXIM"; 1696 | setparametroalgebratexto(agregacao_aux, "normal"); 1697 | return -1; 1698 | } 1699 | if((valchar == 85) | (valchar == 117)) 1700 | { 1701 | valchar = getchar(); 1702 | if(fimexpressao) 1703 | { 1704 | agregacao_aux = agregacao_aux + "MAXIMU"; 1705 | setparametroalgebratexto(agregacao_aux, "normal"); 1706 | return -1; 1707 | } 1708 | if((valchar == 77) | (valchar == 109)) 1709 | { 1710 | valchar = getchar(); 1711 | if(fimexpressao) 1712 | { 1713 | agregacao_aux = agregacao_aux + "MAXIMUM"; 1714 | setparametroalgebratexto(agregacao_aux, "normal"); 1715 | return -1; 1716 | } 1717 | if(verificaespaco(valchar)) 1718 | { 1719 | return 1; 1720 | } else 1721 | { 1722 | counter -= 7; 1723 | return 0; 1724 | } 1725 | } else 1726 | { 1727 | counter -= 6; 1728 | return 0; 1729 | } 1730 | } else 1731 | { 1732 | counter -= 5; 1733 | return 0; 1734 | } 1735 | } else 1736 | { 1737 | counter -= 4; 1738 | return 0; 1739 | } 1740 | } else 1741 | { 1742 | counter -= 3; 1743 | return 0; 1744 | } 1745 | } else 1746 | { 1747 | counter -= 2; 1748 | return 0; 1749 | } 1750 | } else 1751 | { 1752 | counter--; 1753 | return 0; 1754 | } 1755 | } else 1756 | { 1757 | return 0; 1758 | } 1759 | } 1760 | 1761 | public int verificaMINIMUM(int valchar, String agregacao_aux) 1762 | { 1763 | if((valchar == 77) | (valchar == 109)) 1764 | { 1765 | valchar = getchar(); 1766 | if(fimexpressao) 1767 | { 1768 | agregacao_aux = agregacao_aux + "M"; 1769 | setparametroalgebratexto(agregacao_aux, "normal"); 1770 | return -1; 1771 | } 1772 | if((valchar == 73) | (valchar == 105)) 1773 | { 1774 | valchar = getchar(); 1775 | if(fimexpressao) 1776 | { 1777 | agregacao_aux = agregacao_aux + "MI"; 1778 | setparametroalgebratexto(agregacao_aux, "normal"); 1779 | return -1; 1780 | } 1781 | if((valchar == 78) | (valchar == 110)) 1782 | { 1783 | valchar = getchar(); 1784 | if(fimexpressao) 1785 | { 1786 | agregacao_aux = agregacao_aux + "MIN"; 1787 | setparametroalgebratexto(agregacao_aux, "normal"); 1788 | return -1; 1789 | } 1790 | if((valchar == 73) | (valchar == 105)) 1791 | { 1792 | valchar = getchar(); 1793 | if(fimexpressao) 1794 | { 1795 | agregacao_aux = agregacao_aux + "MINI"; 1796 | setparametroalgebratexto(agregacao_aux, "normal"); 1797 | return -1; 1798 | } 1799 | if((valchar == 77) | (valchar == 109)) 1800 | { 1801 | valchar = getchar(); 1802 | if(fimexpressao) 1803 | { 1804 | agregacao_aux = agregacao_aux + "MINIM"; 1805 | setparametroalgebratexto(agregacao_aux, "normal"); 1806 | return -1; 1807 | } 1808 | if((valchar == 85) | (valchar == 117)) 1809 | { 1810 | valchar = getchar(); 1811 | if(fimexpressao) 1812 | { 1813 | agregacao_aux = agregacao_aux + "MINIMU"; 1814 | setparametroalgebratexto(agregacao_aux, "normal"); 1815 | return -1; 1816 | } 1817 | if((valchar == 77) | (valchar == 109)) 1818 | { 1819 | valchar = getchar(); 1820 | if(fimexpressao) 1821 | { 1822 | agregacao_aux = agregacao_aux + "MINIMUM"; 1823 | setparametroalgebratexto(agregacao_aux, "normal"); 1824 | return -1; 1825 | } 1826 | if(verificaespaco(valchar)) 1827 | { 1828 | return 1; 1829 | } else 1830 | { 1831 | counter -= 7; 1832 | return 0; 1833 | } 1834 | } else 1835 | { 1836 | counter -= 6; 1837 | return 0; 1838 | } 1839 | } else 1840 | { 1841 | counter -= 5; 1842 | return 0; 1843 | } 1844 | } else 1845 | { 1846 | counter -= 4; 1847 | return 0; 1848 | } 1849 | } else 1850 | { 1851 | counter -= 3; 1852 | return 0; 1853 | } 1854 | } else 1855 | { 1856 | counter -= 2; 1857 | return 0; 1858 | } 1859 | } else 1860 | { 1861 | counter--; 1862 | return 0; 1863 | } 1864 | } else 1865 | { 1866 | return 0; 1867 | } 1868 | } 1869 | 1870 | public int verificaCOUNT(int valchar, String agregacao_aux) 1871 | { 1872 | if((valchar == 67) | (valchar == 99)) 1873 | { 1874 | valchar = getchar(); 1875 | if(fimexpressao) 1876 | { 1877 | agregacao_aux = agregacao_aux + "C"; 1878 | setparametroalgebratexto(agregacao_aux, "normal"); 1879 | return -1; 1880 | } 1881 | if((valchar == 79) | (valchar == 111)) 1882 | { 1883 | valchar = getchar(); 1884 | if(fimexpressao) 1885 | { 1886 | agregacao_aux = agregacao_aux + "CO"; 1887 | setparametroalgebratexto(agregacao_aux, "normal"); 1888 | return -1; 1889 | } 1890 | if((valchar == 85) | (valchar == 117)) 1891 | { 1892 | valchar = getchar(); 1893 | if(fimexpressao) 1894 | { 1895 | agregacao_aux = agregacao_aux + "COU"; 1896 | setparametroalgebratexto(agregacao_aux, "normal"); 1897 | return -1; 1898 | } 1899 | if((valchar == 78) | (valchar == 110)) 1900 | { 1901 | valchar = getchar(); 1902 | if(fimexpressao) 1903 | { 1904 | agregacao_aux = agregacao_aux + "COUN"; 1905 | setparametroalgebratexto(agregacao_aux, "normal"); 1906 | return -1; 1907 | } 1908 | if((valchar == 84) | (valchar == 116)) 1909 | { 1910 | valchar = getchar(); 1911 | if(fimexpressao) 1912 | { 1913 | agregacao_aux = agregacao_aux + "COUNT"; 1914 | setparametroalgebratexto(agregacao_aux, "normal"); 1915 | return -1; 1916 | } 1917 | if(verificaespaco(valchar)) 1918 | { 1919 | return 1; 1920 | } else 1921 | { 1922 | counter -= 5; 1923 | return 0; 1924 | } 1925 | } else 1926 | { 1927 | counter -= 4; 1928 | return 0; 1929 | } 1930 | } else 1931 | { 1932 | counter -= 3; 1933 | return 0; 1934 | } 1935 | } else 1936 | { 1937 | counter -= 2; 1938 | return 0; 1939 | } 1940 | } else 1941 | { 1942 | counter--; 1943 | return 0; 1944 | } 1945 | } else 1946 | { 1947 | return 0; 1948 | } 1949 | } 1950 | 1951 | public int getchar() 1952 | { 1953 | int valchar = 0; 1954 | counter++; 1955 | if(counter == expressao.length()) 1956 | { 1957 | fimexpressao = true; 1958 | fimtodasexpressoes = true; 1959 | return 0; 1960 | } 1961 | valchar = expressao.charAt(counter); 1962 | if(valchar == quebralinha) 1963 | { 1964 | counter++; 1965 | fimexpressao = true; 1966 | fimtodasexpressoes = false; 1967 | return 0; 1968 | } else 1969 | { 1970 | fimexpressao = false; 1971 | fimtodasexpressoes = false; 1972 | return valchar; 1973 | } 1974 | } 1975 | 1976 | public boolean verificaletra(int valletra) 1977 | { 1978 | for(int counter = 0; counter < letra_maiuscula.length; counter++) 1979 | if(valletra == letra_maiuscula[counter]) 1980 | return true; 1981 | 1982 | for(int counter = 0; counter < letra_minuscula.length; counter++) 1983 | if(valletra == letra_minuscula[counter]) 1984 | return true; 1985 | 1986 | return valletra == 95; 1987 | } 1988 | 1989 | public boolean verificanumeros(int valletra) 1990 | { 1991 | for(int counter = 0; counter < numeros.length; counter++) 1992 | if(valletra == numeros[counter]) 1993 | return true; 1994 | 1995 | return false; 1996 | } 1997 | 1998 | public boolean verificasinais(int valletra) 1999 | { 2000 | for(int counter = 0; counter < sinais.length; counter++) 2001 | if(valletra == sinais[counter]) 2002 | return true; 2003 | 2004 | return false; 2005 | } 2006 | 2007 | public boolean verificacomparacao(int valletra) 2008 | { 2009 | for(int counter = 0; counter < comparacao.length; counter++) 2010 | if(valletra == comparacao[counter]) 2011 | return true; 2012 | 2013 | return false; 2014 | } 2015 | 2016 | public boolean verificaoperadoresbinarios(int valletra) 2017 | { 2018 | for(int counter = 0; counter < operadores_binarios.length; counter++) 2019 | if(valletra == operadores_binarios[counter]) 2020 | return true; 2021 | 2022 | return false; 2023 | } 2024 | 2025 | public boolean verificaoperadoresunarios(int valletra) 2026 | { 2027 | for(int counter = 0; counter < operadores_unarios.length; counter++) 2028 | if(valletra == operadores_unarios[counter]) 2029 | return true; 2030 | 2031 | return false; 2032 | } 2033 | 2034 | public boolean verificapontuacao(int valletra) 2035 | { 2036 | for(int counter = 0; counter < pontuacao.length; counter++) 2037 | if(valletra == pontuacao[counter]) 2038 | return true; 2039 | 2040 | return false; 2041 | } 2042 | 2043 | public boolean verificaespaco(int valletra) 2044 | { 2045 | return valletra == espaco; 2046 | } 2047 | 2048 | public boolean verificaparenteseabre(int valletra) 2049 | { 2050 | return valletra == parentese_abre; 2051 | } 2052 | 2053 | public boolean verificaparentesefecha(int valletra) 2054 | { 2055 | return valletra == parentese_fecha; 2056 | } 2057 | 2058 | public int getidentificador() 2059 | { 2060 | return identificador; 2061 | } 2062 | 2063 | public void setidentificador() 2064 | { 2065 | identificador++; 2066 | } 2067 | 2068 | public int setpredicado(int valchar, int contador) 2069 | { 2070 | if(contador == 0) 2071 | { 2072 | if(predicado[getidentificador()] == null) 2073 | predicado[getidentificador()] = (new Character((char)valchar)).toString(); 2074 | else 2075 | predicado[getidentificador()] = predicado[getidentificador()] + " AND " + (new Character((char)valchar)).toString(); 2076 | } else 2077 | { 2078 | predicado[getidentificador()] = predicado[getidentificador()] + (new Character((char)valchar)).toString(); 2079 | } 2080 | return ++contador; 2081 | } 2082 | 2083 | public void setatributo(int valchar) 2084 | { 2085 | if(valchar == 44) 2086 | { 2087 | cont_atributo++; 2088 | } else 2089 | { 2090 | if(atributo[getidentificador()][cont_relacao][cont_atributo] == null) 2091 | atributo[getidentificador()][cont_relacao][cont_atributo] = ""; 2092 | atributo[getidentificador()][cont_relacao][cont_atributo] = atributo[getidentificador()][cont_relacao][cont_atributo] + (new Character((char)valchar)).toString(); 2093 | } 2094 | } 2095 | 2096 | public void setgroupby(String groupby_aux) 2097 | { 2098 | if(group_by[getidentificador()] != null) 2099 | group_by[getidentificador()] = group_by[getidentificador()] + ", " + groupby_aux; 2100 | else 2101 | group_by[getidentificador()] = groupby_aux; 2102 | } 2103 | 2104 | public void setatributoSQL(String atributo_aux) 2105 | { 2106 | cont_atributo++; 2107 | atributo[getidentificador()][cont_relacao][cont_atributo] = atributo_aux; 2108 | } 2109 | 2110 | public void setrenomearatributo(int valchar) 2111 | { 2112 | if(valchar == 44) 2113 | { 2114 | cont_renomear_atributo++; 2115 | } else 2116 | { 2117 | if(renomear_atributo[getidentificador()][cont_relacao][cont_renomear_atributo] == null) 2118 | renomear_atributo[getidentificador()][cont_relacao][cont_renomear_atributo] = ""; 2119 | renomear_atributo[getidentificador()][cont_relacao][cont_renomear_atributo] = renomear_atributo[getidentificador()][cont_relacao][cont_renomear_atributo] + (new Character((char)valchar)).toString(); 2120 | } 2121 | } 2122 | 2123 | int letra_minuscula[] = { 2124 | 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 2125 | 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 2126 | 117, 118, 119, 120, 121, 122 2127 | }; 2128 | int letra_maiuscula[] = { 2129 | 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 2130 | 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 2131 | 85, 86, 87, 88, 89, 90 2132 | }; 2133 | int numeros[] = { 2134 | 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 2135 | }; 2136 | int sinais[] = { 2137 | 37, 43, 45, 62, 60, 61 2138 | }; 2139 | int comparacao[] = { 2140 | 62, 60, 61 2141 | }; 2142 | int operadores_binarios[] = { 2143 | 912, 913, 914, 915, 916, 917, 918, 919, 921, 923 2144 | }; 2145 | int operadores_unarios[] = { 2146 | 910, 911, 920 2147 | }; 2148 | int pontuacao[] = { 2149 | 34, 39, 44, 46 2150 | }; 2151 | int espaco; 2152 | int parentese_abre; 2153 | int parentese_fecha; 2154 | int identificador; 2155 | int quebralinha; 2156 | boolean fimexpressao; 2157 | boolean fimtodasexpressoes; 2158 | boolean fimresultado; 2159 | String expressao; 2160 | String schema; 2161 | String resultado; 2162 | int counter; 2163 | int parenteses_counter; 2164 | String msgerro; 2165 | String predicado[]; 2166 | String atributo[][][]; 2167 | String renomear_atributo[][][]; 2168 | String renomear_relacao[][]; 2169 | String relacao[][]; 2170 | String condicoes_de_join[][]; 2171 | String group_by[]; 2172 | int operadorbinario[][]; 2173 | int cont_atributo; 2174 | int cont_renomear_atributo; 2175 | int cont_renomear_relacao; 2176 | int cont_relacao; 2177 | int cont_operador_binario; 2178 | boolean pode_ter_recursao; 2179 | ParametroAlgebraTexto parametroalgebratexto[]; 2180 | } 2181 | -------------------------------------------------------------------------------- /src/Algebra/Cliente/ParametroAlgebraTexto.java: -------------------------------------------------------------------------------- 1 | package Algebra.Cliente; 2 | 3 | import java.awt.Color; 4 | import javax.swing.text.SimpleAttributeSet; 5 | import javax.swing.text.StyleConstants; 6 | 7 | public class ParametroAlgebraTexto 8 | { 9 | String operador; 10 | String normal; 11 | String sobrescrito; 12 | String erro; 13 | String renomear_relacao; 14 | String texto; 15 | SimpleAttributeSet set; 16 | 17 | public ParametroAlgebraTexto() 18 | { 19 | operador = new String("operador"); 20 | normal = new String("normal"); 21 | sobrescrito = new String("sobrescrito"); 22 | erro = new String("erro"); 23 | renomear_relacao = new String("renomear_relacao"); 24 | texto = null; 25 | set = null; 26 | } 27 | 28 | public void settexto(String tx) 29 | { 30 | if(texto == null) 31 | texto = new String(); 32 | texto = tx; 33 | } 34 | 35 | public void settipo(String id) 36 | { 37 | if(set == null) 38 | set = new SimpleAttributeSet(); 39 | 40 | if(id.equals(operador)) 41 | { 42 | StyleConstants.setFontFamily(set, "Algebra"); 43 | StyleConstants.setFontSize(set, 15); 44 | StyleConstants.setForeground(set, Color.BLUE); 45 | } else 46 | if(id.equals(normal)) 47 | { 48 | StyleConstants.setFontFamily(set, "Algebra"); 49 | StyleConstants.setFontSize(set, 15); 50 | StyleConstants.setForeground(set, Color.BLACK); 51 | } else 52 | if(id.equals(sobrescrito)) 53 | { 54 | StyleConstants.setFontFamily(set, "Algebra"); 55 | StyleConstants.setFontSize(set, 10); 56 | StyleConstants.setForeground(set, Color.BLACK); 57 | } else 58 | if(id.equals(erro)) 59 | { 60 | StyleConstants.setFontFamily(set, "Algebra"); 61 | StyleConstants.setFontSize(set, 15); 62 | StyleConstants.setForeground(set, Color.RED); 63 | } else 64 | if(id.equals(renomear_relacao)) 65 | { 66 | StyleConstants.setFontFamily(set, "Algebra"); 67 | StyleConstants.setFontSize(set, 15); 68 | StyleConstants.setItalic(set, true); 69 | StyleConstants.setForeground(set, Color.BLACK); 70 | } else 71 | { 72 | System.out.println("n\343o achou id"); 73 | } 74 | } 75 | 76 | 77 | public String gettexto() 78 | { 79 | return texto; 80 | } 81 | 82 | public SimpleAttributeSet getset() 83 | { 84 | return set; 85 | } 86 | 87 | } 88 | 89 | -------------------------------------------------------------------------------- /src/Algebra/Cliente/RegistroArquivo.java: -------------------------------------------------------------------------------- 1 | package Algebra.Cliente; 2 | 3 | import java.io.*; 4 | 5 | public class RegistroArquivo implements Serializable { 6 | 7 | private static final long serialVersionUID = 1L; 8 | private String servidor; 9 | private String usuario; 10 | private String senha; 11 | private String schema; 12 | 13 | public RegistroArquivo(String ser, String usu, String sen, String sch){ 14 | setservidor(ser); 15 | setusuario(usu); 16 | setsenha(sen); 17 | setschema(sch); 18 | } 19 | 20 | public void setservidor(String ser){ 21 | servidor = ser; 22 | } 23 | 24 | public void setusuario(String usu){ 25 | usuario = usu; 26 | } 27 | 28 | public void setsenha(String sen){ 29 | senha = sen; 30 | } 31 | 32 | public void setschema(String sch){ 33 | schema = sch; 34 | } 35 | 36 | public String getservidor(){ 37 | return servidor; 38 | } 39 | 40 | public String getusuario(){ 41 | return usuario; 42 | } 43 | 44 | public String getsenha(){ 45 | return senha; 46 | } 47 | 48 | public String getschema(){ 49 | return schema; 50 | } 51 | 52 | public void read(RandomAccessFile file) throws IOException{ 53 | setservidor(padname(file)); 54 | setusuario(padname(file)); 55 | setsenha(padname(file)); 56 | setschema(padname(file)); 57 | } 58 | 59 | private String padname(RandomAccessFile file) throws IOException { 60 | char name[] = new char[50]; 61 | for(int i = 0; i < name.length; i++){ 62 | char temp = file.readChar(); 63 | name[i] = temp; 64 | } 65 | 66 | return (new String(name)).replace('\0', ' ').trim(); 67 | } 68 | 69 | public void write(RandomAccessFile file) throws IOException{ 70 | writename(file, getservidor()); 71 | writename(file, getusuario()); 72 | writename(file, getsenha()); 73 | writename(file, getschema()); 74 | } 75 | 76 | private void writename(RandomAccessFile file, String name) throws IOException { 77 | StringBuffer buffer = null; 78 | if(name != null) 79 | buffer = new StringBuffer(name); 80 | else 81 | buffer = new StringBuffer(50); 82 | buffer.setLength(50); 83 | file.writeChars(buffer.toString()); 84 | } 85 | 86 | public static int size(){ 87 | return 400; 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /src/Algebra/Cliente/Tela_Principal.java: -------------------------------------------------------------------------------- 1 | package Algebra.Cliente; 2 | 3 | import java.awt.*; 4 | import java.awt.event.*; 5 | import java.io.BufferedInputStream; 6 | import java.io.DataInputStream; 7 | import java.sql.*; 8 | import java.util.Vector; 9 | import javax.swing.*; 10 | import javax.swing.table.DefaultTableModel; 11 | import javax.swing.text.*; 12 | 13 | // Referenced classes of package Algebra.Cliente: 14 | // CriaConexao, ExecutaAlgebra, FormataAlgebraTexto, ParametroAlgebraTexto 15 | 16 | public class Tela_Principal extends JFrame{ 17 | 18 | private static final long serialVersionUID = 1L; 19 | public static String local; 20 | private String ListaBancos[] = { 21 | "Padr\343o" 22 | }; 23 | 24 | private JPanel jContentPaneConsulta; 25 | private JPanel jContentPaneConexao; 26 | private JMenuBar jJMenuBarPrincipal; 27 | private JMenu jMenuOpcao; 28 | private JMenuItem jMenuItemConexaoBanco; 29 | private JMenuItem jMenuItemConsultaBanco; 30 | private JPanel jPanelBancodeDados; 31 | private JPanel jPanelConexao; 32 | private JPanel jPanelConexaoFields; 33 | private JLabel jLabelEscolhaBanco; 34 | private JLabel jLabelServidor; 35 | private JLabel jLabelUsuario; 36 | private JLabel jLabelSenha; 37 | private JLabel jLabelSchema; 38 | private JTextField JTextFieldServidor; 39 | private JTextField JTextFieldUsuario; 40 | private JPasswordField JTextFieldSenha; 41 | private JTextField JTextFieldSchema; 42 | private JButton jButtonConexaoOK; 43 | private JButton jButtonConexaoCancel; 44 | private JComboBox jComboBoxBanco; 45 | private JPanel jPanelAlgebraRelacional; 46 | private JRadioButton jRadioButtonAlgebraRelacional; 47 | private JScrollPane jScrollPaneAlgebraRelacional; 48 | private JTabbedPane jtabbedpaneAlgerbaRelacional; 49 | private JTextPane jTextPaneAlgebraRelacional; 50 | private JPanel jPanelbotoesOperacoes; 51 | private JButton jButtonSelecao; 52 | private JButton jButtonProjecao; 53 | private JButton jButtonRenomear; 54 | private JButton jButtonUniao; 55 | private JButton jButtonIntersecao; 56 | private JButton jButtonDiferenca; 57 | private JButton jButtonProdutoCartesiano; 58 | private JButton jButtonJoinNatural; 59 | private JButton jButtonRecursao; 60 | private JButton jButtonJoin; 61 | private JButton jButtonAgregacao; 62 | private JButton jButtonOuterJoinTotal; 63 | private JButton jButtonOuterJoinEsquerda; 64 | private JButton jButtonOuterJoinDireita; 65 | private JButton jButtonDivisao; 66 | private JPanel jPanel; 67 | private JPanel jPanelAlgebraAcoes; 68 | private JButton jButtonAlgebraLimpar; 69 | private JButton jButtonAlgebraExecutar; 70 | private JPanel jPanelCalculoRelacional; 71 | private JRadioButton jRadioButtonCalculoRelacional; 72 | private JScrollPane jScrollPaneCalculoRelacional; 73 | private JTextArea jTextAreaCalculoRelacional; 74 | private JPanel jPanelCalculoAcoes; 75 | private JButton jButtonCalculoLimpar; 76 | private JButton jButtonCalculoExecutar; 77 | private JPanel jPanelSQL; 78 | private JRadioButton jRadioButtonSQL; 79 | private JScrollPane jScrollPaneSQL; 80 | private JTextArea jTextAreaSQL; 81 | private JPanel jPanelSQLAcoes; 82 | private JPanel jPanelConexaoAcoes; 83 | private JButton jButtonSQLLimpar; 84 | private JButton jButtonSQLExecutar; 85 | private ButtonGroup radioGroup; 86 | private JScrollPane jScrollPaneResultado; 87 | private JTable jTableResultado; 88 | private JPanel jPanelResultado; 89 | private DefaultTableModel model; 90 | private JPanel jPanelAlgebraExpressao; 91 | private boolean tela_consulta; 92 | private CriaConexao criaconexao; 93 | int vetor_caracteres[] = { 94 | 10, 32, 34, 39, 40, 41, 44, 46, 48, 49, 95 | 50, 51, 52, 53, 54, 55, 56, 57, 60, 61, 96 | 62, 65, 66, 67, 68, 69, 70, 71, 72, 73, 97 | 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 98 | 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 99 | 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 100 | 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 101 | 120, 121, 122 102 | }; 103 | 104 | 105 | public Tela_Principal(){ 106 | 107 | jContentPaneConsulta = null; 108 | jContentPaneConexao = null; 109 | jJMenuBarPrincipal = null; 110 | jMenuOpcao = null; 111 | jMenuItemConexaoBanco = null; 112 | jMenuItemConsultaBanco = null; 113 | jPanelBancodeDados = null; 114 | jPanelConexao = null; 115 | jPanelConexaoFields = null; 116 | jLabelEscolhaBanco = null; 117 | jLabelServidor = null; 118 | jLabelUsuario = null; 119 | jLabelSenha = null; 120 | jLabelSchema = null; 121 | JTextFieldServidor = null; 122 | JTextFieldUsuario = null; 123 | JTextFieldSenha = null; 124 | JTextFieldSchema = null; 125 | jButtonConexaoOK = null; 126 | jButtonConexaoCancel = null; 127 | jComboBoxBanco = null; 128 | jPanelAlgebraRelacional = null; 129 | jRadioButtonAlgebraRelacional = null; 130 | jScrollPaneAlgebraRelacional = null; 131 | jtabbedpaneAlgerbaRelacional = null; 132 | jTextPaneAlgebraRelacional = null; 133 | jPanelbotoesOperacoes = null; 134 | jButtonSelecao = null; 135 | jButtonProjecao = null; 136 | jButtonRenomear = null; 137 | jButtonUniao = null; 138 | jButtonIntersecao = null; 139 | jButtonDiferenca = null; 140 | jButtonProdutoCartesiano = null; 141 | jButtonJoinNatural = null; 142 | jButtonRecursao = null; 143 | jButtonJoin = null; 144 | jButtonAgregacao = null; 145 | jButtonOuterJoinTotal = null; 146 | jButtonOuterJoinEsquerda = null; 147 | jButtonOuterJoinDireita = null; 148 | jButtonDivisao = null; 149 | jPanel = null; 150 | jPanelAlgebraAcoes = null; 151 | jButtonAlgebraLimpar = null; 152 | jButtonAlgebraExecutar = null; 153 | jPanelCalculoRelacional = null; 154 | jRadioButtonCalculoRelacional = null; 155 | jScrollPaneCalculoRelacional = null; 156 | jTextAreaCalculoRelacional = null; 157 | jPanelCalculoAcoes = null; 158 | jButtonCalculoLimpar = null; 159 | jButtonCalculoExecutar = null; 160 | jPanelSQL = null; 161 | jRadioButtonSQL = null; 162 | jScrollPaneSQL = null; 163 | jTextAreaSQL = null; 164 | jPanelSQLAcoes = null; 165 | jPanelConexaoAcoes = null; 166 | jButtonSQLLimpar = null; 167 | jButtonSQLExecutar = null; 168 | jScrollPaneResultado = null; 169 | jTableResultado = null; 170 | jPanelResultado = null; 171 | model = null; 172 | jPanelAlgebraExpressao = null; 173 | tela_consulta = true; 174 | criaconexao = null; 175 | criaconexao = new CriaConexao(); 176 | initialize(); 177 | } 178 | 179 | private void initialize(){ 180 | setResizable(false); 181 | setJMenuBar(getJJMenuBarPrincipal()); 182 | setContentPane(getJContentPaneConsulta()); 183 | setTitle("ProgramAR - Programa de ensino da Algera Relacional"); 184 | setVisible(true); 185 | 186 | if(tela_consulta){ 187 | jContentPaneConexao = null; 188 | setSize(810, 800); 189 | setPreferredSize(new Dimension(3429, 700)); 190 | EnableAlgebra(false); 191 | EnableCalculo(false); 192 | EnableSQL(false); 193 | } else{ 194 | jContentPaneConsulta = null; 195 | setSize(810, 720); 196 | setPreferredSize(new Dimension(3700, 700)); 197 | setContentPane(getJContentPaneConexao()); 198 | setVisible(true); 199 | } 200 | } 201 | 202 | 203 | 204 | public class Botao_Handler implements ActionListener{ 205 | 206 | public void actionPerformed(ActionEvent event){ 207 | SimpleAttributeSet set = new SimpleAttributeSet(); 208 | StyledDocument doc = getJTextPaneAlgebraRelacional().getStyledDocument(); 209 | 210 | StyleConstants.setFontFamily(set, "Algebra"); 211 | 212 | StyleConstants.setFontSize(set, 15); 213 | StyleConstants.setForeground(set, Color.BLUE); 214 | 215 | if(event.getSource() == getJButtonSelecao()) 216 | try 217 | { 218 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u038E')).toString(), set); 219 | getJTextPaneAlgebraRelacional().requestFocus(); 220 | return; 221 | } 222 | catch(Exception e) 223 | { 224 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 225 | } 226 | 227 | if(event.getSource() == getJButtonProjecao()) 228 | try 229 | { 230 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u038F')).toString(), set); 231 | getJTextPaneAlgebraRelacional().requestFocus(); 232 | return; 233 | } 234 | catch(Exception e) 235 | { 236 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 237 | } 238 | 239 | if(event.getSource() == getJButtonUniao()) 240 | try 241 | { 242 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u0390')).toString(), set); 243 | getJTextPaneAlgebraRelacional().requestFocus(); 244 | return; 245 | } 246 | catch(Exception e) 247 | { 248 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 249 | } 250 | 251 | if(event.getSource() == getJButtonIntersecao()) 252 | try 253 | { 254 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u0391')).toString(), set); 255 | getJTextPaneAlgebraRelacional().requestFocus(); 256 | return; 257 | } 258 | catch(Exception e) 259 | { 260 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 261 | } 262 | 263 | if(event.getSource() == getJButtonDiferenca()) 264 | try 265 | { 266 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u0392')).toString(), set); 267 | getJTextPaneAlgebraRelacional().requestFocus(); 268 | return; 269 | } 270 | catch(Exception e) 271 | { 272 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 273 | } 274 | 275 | if(event.getSource() == getJButtonProdutoCartesiano()) 276 | try 277 | { 278 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u0393')).toString(), set); 279 | getJTextPaneAlgebraRelacional().requestFocus(); 280 | return; 281 | } 282 | catch(Exception e) 283 | { 284 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 285 | } 286 | 287 | if(event.getSource() == getJButtonJoinNatural()) 288 | try 289 | { 290 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u039B')).toString(), set); 291 | getJTextPaneAlgebraRelacional().requestFocus(); 292 | return; 293 | } 294 | catch(Exception e) 295 | { 296 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 297 | } 298 | 299 | if(event.getSource() == getJButtonRecursao()) 300 | try 301 | { 302 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u03B1')).toString(), set); 303 | getJTextPaneAlgebraRelacional().requestFocus(); 304 | return; 305 | } 306 | catch(Exception e) 307 | { 308 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 309 | } 310 | 311 | if(event.getSource() == getJButtonOuterJoinTotal()) 312 | try 313 | { 314 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u0395')).toString(), set); 315 | getJTextPaneAlgebraRelacional().requestFocus(); 316 | return; 317 | } 318 | catch(Exception e) 319 | { 320 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 321 | } 322 | 323 | if(event.getSource() == getJButtonOuterJoinEsquerda()) 324 | try 325 | { 326 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u0396')).toString(), set); 327 | getJTextPaneAlgebraRelacional().requestFocus(); 328 | return; 329 | } 330 | catch(Exception e) 331 | { 332 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 333 | } 334 | 335 | if(event.getSource() == getJButtonOuterJoinDireita()) 336 | try 337 | { 338 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u0397')).toString(), set); 339 | getJTextPaneAlgebraRelacional().requestFocus(); 340 | return; 341 | } 342 | catch(Exception e) 343 | { 344 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 345 | } 346 | 347 | if(event.getSource() == getJButtonRenomear()) 348 | try 349 | { 350 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u0398')).toString(), set); 351 | getJTextPaneAlgebraRelacional().requestFocus(); 352 | return; 353 | } 354 | catch(Exception e) 355 | { 356 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 357 | } 358 | 359 | if(event.getSource() == getJButtonDivisao()) 360 | try 361 | { 362 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u0399')).toString(), set); 363 | getJTextPaneAlgebraRelacional().requestFocus(); 364 | return; 365 | } 366 | catch(Exception e) 367 | { 368 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 369 | } 370 | 371 | if(event.getSource() == getJButtonJoin()) 372 | try 373 | { 374 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u0394')).toString(), set); 375 | getJTextPaneAlgebraRelacional().requestFocus(); 376 | return; 377 | } 378 | catch(Exception e) 379 | { 380 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 381 | } 382 | 383 | if(event.getSource() == getJButtonAgregacao()) 384 | try 385 | { 386 | doc.insertString(getJTextPaneAlgebraRelacional().getCaretPosition(), (new Character('\u039A')).toString(), set); 387 | getJTextPaneAlgebraRelacional().requestFocus(); 388 | return; 389 | } 390 | catch(Exception e) 391 | { 392 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do operador.", "Erro", 0); 393 | } 394 | 395 | if(event.getSource() == getJButtonAlgebraLimpar()) 396 | { 397 | getJTextPaneAlgebraRelacional().setText(""); 398 | getJTextPaneAlgebraRelacional().requestFocus(); 399 | } 400 | 401 | if(event.getSource() == getJButtonAlgebraExecutar()) 402 | if(jComboBoxBanco.getSelectedIndex() != -1) 403 | { 404 | String sch = jComboBoxBanco.getSelectedItem().toString(); 405 | ExecutaAlgebra executaalgebra = new ExecutaAlgebra(getJTextPaneAlgebraRelacional().getText().trim(), sch.trim()); 406 | if(executaalgebra.msgerro.length() != 0) 407 | { 408 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), executaalgebra.msgerro, "Erro", 0); 409 | } else 410 | { 411 | getJTextAreaSQL().setText(executaalgebra.resultado); 412 | executaSQL(); 413 | } 414 | } else 415 | { 416 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Schema n\343o selecionado.", "Erro", 0); 417 | return; 418 | } 419 | 420 | if(event.getSource() == getJButtonCalculoLimpar()) 421 | { 422 | getJTextAreaCalculoRelacional().setText(""); 423 | getJTextAreaCalculoRelacional().requestFocus(); 424 | } 425 | 426 | if(event.getSource() != getJButtonCalculoExecutar()); 427 | 428 | if(event.getSource() == getJButtonSQLLimpar()) 429 | { 430 | limpaResultado(); 431 | getJTextAreaSQL().setText(""); 432 | getJTextAreaSQL().requestFocus(); 433 | } 434 | 435 | if(event.getSource() == getJButtonSQLExecutar()) 436 | executaSQL(); 437 | 438 | if(event.getSource() == getJMenuItemConexaoBanco()) 439 | { 440 | tela_consulta = false; 441 | initialize(); 442 | } 443 | 444 | if(event.getSource() == getJMenuItemConsultaBanco()) 445 | { 446 | tela_consulta = true; 447 | initialize(); 448 | } 449 | 450 | if(event.getSource() == getJButtonConexaoOK()) 451 | verificaconexao(); 452 | 453 | if(event.getSource() == getJButtonConexaoCancel()) 454 | { 455 | tela_consulta = true; 456 | initialize(); 457 | } 458 | } 459 | 460 | public Botao_Handler() 461 | { 462 | } 463 | } 464 | 465 | public class Radio_Handler 466 | implements ItemListener 467 | { 468 | 469 | public void itemStateChanged(ItemEvent event) 470 | { 471 | if(event.getSource() == getJRadioButtonAlgebraRelacional()) 472 | { 473 | EnableAlgebra(true); 474 | EnableCalculo(false); 475 | EnableSQL(false); 476 | getJTextPaneAlgebraRelacional().requestFocus(); 477 | } 478 | 479 | event.getSource(); 480 | getJRadioButtonCalculoRelacional(); 481 | 482 | if(event.getSource() == getJRadioButtonSQL()) 483 | { 484 | EnableAlgebra(false); 485 | EnableCalculo(false); 486 | EnableSQL(true); 487 | getJTextAreaSQL().requestFocus(); 488 | } 489 | } 490 | 491 | public Radio_Handler() 492 | { 493 | } 494 | } 495 | 496 | 497 | private JMenuBar getJJMenuBarPrincipal() 498 | { 499 | if(jJMenuBarPrincipal == null) 500 | { 501 | jJMenuBarPrincipal = new JMenuBar(); 502 | jJMenuBarPrincipal.add(getJMenuOpcao()); 503 | } 504 | return jJMenuBarPrincipal; 505 | } 506 | 507 | private JMenu getJMenuOpcao() 508 | { 509 | if(jMenuOpcao == null) 510 | { 511 | jMenuOpcao = new JMenu("Op\347\365es"); 512 | jMenuOpcao.add(getJMenuItemConexaoBanco()); 513 | jMenuOpcao.add(getJMenuItemConsultaBanco()); 514 | Botao_Handler BotaoHandler = new Botao_Handler(); 515 | getJMenuItemConexaoBanco().addActionListener(BotaoHandler); 516 | getJMenuItemConsultaBanco().addActionListener(BotaoHandler); 517 | } 518 | return jMenuOpcao; 519 | } 520 | 521 | private JMenuItem getJMenuItemConexaoBanco() 522 | { 523 | if(jMenuItemConexaoBanco == null) 524 | jMenuItemConexaoBanco = new JMenuItem("Criar Conex\343o com Banco de Dados"); 525 | return jMenuItemConexaoBanco; 526 | } 527 | 528 | private JMenuItem getJMenuItemConsultaBanco() 529 | { 530 | if(jMenuItemConsultaBanco == null) 531 | jMenuItemConsultaBanco = new JMenuItem("Consulta ao Banco de Dados"); 532 | return jMenuItemConsultaBanco; 533 | } 534 | 535 | private JPanel getJPanelBancodeDados() 536 | { 537 | if(jPanelBancodeDados == null) 538 | { 539 | FlowLayout flowLayout = new FlowLayout(); 540 | flowLayout.setAlignment(0); 541 | jLabelEscolhaBanco = new JLabel(); 542 | jLabelEscolhaBanco.setText("Escolha o Schema: "); 543 | jLabelEscolhaBanco.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 544 | jLabelEscolhaBanco.setHorizontalAlignment(2); 545 | jPanelBancodeDados = new JPanel(); 546 | jPanelBancodeDados.setLayout(flowLayout); 547 | jPanelBancodeDados.setBorder(BorderFactory.createTitledBorder(null, "Banco de Dados", 0, 0, new Font("Dialog", 1, 12), new Color(51, 51, 51))); 548 | jPanelBancodeDados.setPreferredSize(new Dimension(790, 63)); 549 | jPanelBancodeDados.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 550 | jPanelBancodeDados.add(jLabelEscolhaBanco, null); 551 | jPanelBancodeDados.add(getJComboBoxBanco(), null); 552 | } 553 | return jPanelBancodeDados; 554 | } 555 | 556 | private JPanel getJPanelConexao() 557 | { 558 | if(jPanelConexao == null) 559 | { 560 | FlowLayout flowLayout = new FlowLayout(); 561 | flowLayout.setAlignment(0); 562 | jLabelServidor = new JLabel(); 563 | jLabelServidor.setText("Servidor: "); 564 | jLabelServidor.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 565 | jLabelServidor.setHorizontalAlignment(2); 566 | jLabelUsuario = new JLabel(); 567 | jLabelUsuario.setText("Usuario: "); 568 | jLabelUsuario.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 569 | jLabelUsuario.setHorizontalAlignment(2); 570 | jLabelSenha = new JLabel(); 571 | jLabelSenha.setText("Senha: "); 572 | jLabelSenha.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 573 | jLabelSenha.setHorizontalAlignment(2); 574 | jLabelSchema = new JLabel(); 575 | jLabelSchema.setText("Schema: "); 576 | jLabelSchema.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 577 | jLabelSchema.setHorizontalAlignment(2); 578 | JTextFieldServidor = new JTextField(); 579 | JTextFieldServidor.setText("localhost"); 580 | JTextFieldServidor.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 581 | JTextFieldServidor.setHorizontalAlignment(2); 582 | JTextFieldUsuario = new JTextField(); 583 | JTextFieldUsuario.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 584 | JTextFieldUsuario.setHorizontalAlignment(2); 585 | JTextFieldSenha = new JPasswordField(); 586 | JTextFieldSenha.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 587 | JTextFieldSenha.setHorizontalAlignment(2); 588 | JTextFieldSchema = new JTextField(); 589 | JTextFieldSchema.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 590 | JTextFieldSchema.setHorizontalAlignment(2); 591 | jPanelConexao = new JPanel(); 592 | jPanelConexao.setLayout(flowLayout); 593 | jPanelConexao.setBorder(BorderFactory.createTitledBorder(null, "Conectar ao Banco de Dados", 0, 0, new Font("Dialog", 1, 12), new Color(51, 51, 51))); 594 | jPanelConexao.setPreferredSize(new Dimension(790, 150)); 595 | jPanelConexao.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 596 | jPanelConexao.add(getJPanelConexaoFields(), null); 597 | jPanelConexao.add(getJPanelConexaoAcoes(), null); 598 | } 599 | return jPanelConexao; 600 | } 601 | 602 | private JPanel getJPanelConexaoFields() 603 | { 604 | if(jPanelConexaoFields == null) 605 | { 606 | GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); 607 | gridBagConstraints1.gridy = 0; 608 | gridBagConstraints1.gridx = 0; 609 | GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); 610 | gridBagConstraints2.gridy = 1; 611 | gridBagConstraints2.gridx = 0; 612 | GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); 613 | gridBagConstraints3.gridy = 2; 614 | gridBagConstraints3.gridx = 0; 615 | GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); 616 | gridBagConstraints4.gridy = 3; 617 | gridBagConstraints4.gridx = 0; 618 | GridBagConstraints gridBagConstraints5 = new GridBagConstraints(); 619 | gridBagConstraints5.gridy = 0; 620 | gridBagConstraints5.gridx = 1; 621 | GridBagConstraints gridBagConstraints6 = new GridBagConstraints(); 622 | gridBagConstraints6.gridy = 1; 623 | gridBagConstraints6.gridx = 1; 624 | GridBagConstraints gridBagConstraints7 = new GridBagConstraints(); 625 | gridBagConstraints7.gridy = 2; 626 | gridBagConstraints7.gridx = 1; 627 | GridBagConstraints gridBagConstraints8 = new GridBagConstraints(); 628 | gridBagConstraints8.gridy = 3; 629 | gridBagConstraints8.gridx = 1; 630 | jLabelServidor = new JLabel(); 631 | jLabelServidor.setText("Servidor: "); 632 | jLabelServidor.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 633 | jLabelServidor.setHorizontalAlignment(2); 634 | jLabelUsuario = new JLabel(); 635 | jLabelUsuario.setText("Usuario: "); 636 | jLabelUsuario.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 637 | jLabelUsuario.setHorizontalAlignment(2); 638 | jLabelSenha = new JLabel(); 639 | jLabelSenha.setText("Senha: "); 640 | jLabelSenha.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 641 | jLabelSenha.setHorizontalAlignment(2); 642 | jLabelSchema = new JLabel(); 643 | jLabelSchema.setText("Schema: "); 644 | jLabelSchema.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 645 | jLabelSchema.setHorizontalAlignment(2); 646 | JTextFieldServidor = new JTextField(20); 647 | JTextFieldServidor.setText("localhost"); 648 | JTextFieldServidor.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 649 | JTextFieldServidor.setHorizontalAlignment(2); 650 | JTextFieldUsuario = new JTextField(20); 651 | JTextFieldUsuario.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 652 | JTextFieldUsuario.setHorizontalAlignment(2); 653 | JTextFieldSenha = new JPasswordField(20); 654 | JTextFieldSenha.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 655 | JTextFieldSenha.setHorizontalAlignment(2); 656 | JTextFieldSchema = new JTextField(20); 657 | JTextFieldSchema.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 658 | JTextFieldSchema.setHorizontalAlignment(2); 659 | jPanelConexaoFields = new JPanel(); 660 | jPanelConexaoFields.setLayout(new GridBagLayout()); 661 | jPanelConexaoFields.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); 662 | jPanelConexaoFields.setPreferredSize(new Dimension(700, 80)); 663 | jPanelConexaoFields.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 664 | jPanelConexaoFields.add(jLabelServidor, gridBagConstraints1); 665 | jPanelConexaoFields.add(jLabelUsuario, gridBagConstraints2); 666 | jPanelConexaoFields.add(jLabelSenha, gridBagConstraints3); 667 | jPanelConexaoFields.add(jLabelSchema, gridBagConstraints4); 668 | jPanelConexaoFields.add(JTextFieldServidor, gridBagConstraints5); 669 | jPanelConexaoFields.add(JTextFieldUsuario, gridBagConstraints6); 670 | jPanelConexaoFields.add(JTextFieldSenha, gridBagConstraints7); 671 | jPanelConexaoFields.add(JTextFieldSchema, gridBagConstraints8); 672 | } 673 | return jPanelConexaoFields; 674 | } 675 | 676 | private JComboBox getJComboBoxBanco() 677 | { 678 | if(jComboBoxBanco == null) 679 | jComboBoxBanco = new JComboBox(); 680 | ListaBancos = criaconexao.getschemas(); 681 | for(int i = 0; i < ListaBancos.length; i++) 682 | if(ListaBancos[i] != null) 683 | jComboBoxBanco.addItem(ListaBancos[i]); 684 | 685 | return jComboBoxBanco; 686 | } 687 | 688 | private JPanel getJPanelAlgebraRelacional() 689 | { 690 | if(jPanelAlgebraRelacional == null) 691 | { 692 | jPanelAlgebraRelacional = new JPanel(); 693 | jPanelAlgebraRelacional.setLayout(new FlowLayout(0)); 694 | jPanelAlgebraRelacional.setBorder(BorderFactory.createTitledBorder(null, "Algebra Relacional", 0, 0, new Font("Dialog", 1, 12), new Color(51, 51, 51))); 695 | jPanelAlgebraRelacional.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 696 | //jPanelAlgebraRelacional.setPreferredSize(new Dimension(790, 200)); 697 | jPanelAlgebraRelacional.setPreferredSize(new Dimension(790, 200)); 698 | jPanelAlgebraRelacional.add(getJPanelAlgebraExpressao(), null); 699 | jPanelAlgebraRelacional.add(getJPanelbotoesOperacoes(), null); 700 | jPanelAlgebraRelacional.add(getJPanel(), null); 701 | } 702 | return jPanelAlgebraRelacional; 703 | } 704 | 705 | private JRadioButton getJRadioButtonAlgebraRelacional() 706 | { 707 | if(jRadioButtonAlgebraRelacional == null) 708 | { 709 | jRadioButtonAlgebraRelacional = new JRadioButton(); 710 | jRadioButtonAlgebraRelacional.setVerticalAlignment(0); 711 | jRadioButtonAlgebraRelacional.setToolTipText("Clique para habilitar Algebra Relacional"); 712 | jRadioButtonAlgebraRelacional.setText(" Express\343o: "); 713 | jRadioButtonAlgebraRelacional.setVerticalTextPosition(3); 714 | Radio_Handler RadioHandler = new Radio_Handler(); 715 | jRadioButtonAlgebraRelacional.addItemListener(RadioHandler); 716 | } 717 | return jRadioButtonAlgebraRelacional; 718 | } 719 | 720 | private JScrollPane getJScrollPaneAlgebraRelacional() 721 | { 722 | if(jScrollPaneAlgebraRelacional == null) 723 | { 724 | jScrollPaneAlgebraRelacional = new JScrollPane(getJTabbedPane()); 725 | jScrollPaneAlgebraRelacional.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 726 | //jScrollPaneAlgebraRelacional.setPreferredSize(new Dimension(445, 115)); 727 | jScrollPaneAlgebraRelacional.setPreferredSize(new Dimension(530, 80)); 728 | jScrollPaneAlgebraRelacional.setFont(new Font("Dialog", 0, 21)); 729 | } 730 | return jScrollPaneAlgebraRelacional; 731 | } 732 | 733 | private JTabbedPane getJTabbedPane() 734 | { 735 | if(jtabbedpaneAlgerbaRelacional == null) 736 | { 737 | jtabbedpaneAlgerbaRelacional = new JTabbedPane(); 738 | jtabbedpaneAlgerbaRelacional.addTab("Algebra Relacional", getJTextPaneAlgebraRelacional()); 739 | } 740 | return jtabbedpaneAlgerbaRelacional; 741 | } 742 | 743 | private JTextPane getJTextPaneAlgebraRelacional() 744 | { 745 | if(jTextPaneAlgebraRelacional == null) 746 | { 747 | jTextPaneAlgebraRelacional = new JTextPane(); 748 | jTextPaneAlgebraRelacional.setFont(getFont(15)); 749 | jTextPaneAlgebraRelacional.addKeyListener(new KeyAdapter() { 750 | 751 | public void keyPressed(KeyEvent e) 752 | { 753 | if(verifica_caracter(e.getKeyChar()) & (jTextPaneAlgebraRelacional.getText().length() != 0)) 754 | { 755 | int posicao_carret = jTextPaneAlgebraRelacional.getCaretPosition(); 756 | String texto_aux = new String(); 757 | texto_aux = jTextPaneAlgebraRelacional.getText(); 758 | jTextPaneAlgebraRelacional.setText(""); 759 | ParametroAlgebraTexto parametroalgebra = null; 760 | FormataAlgebraTexto formataalgebratexto = new FormataAlgebraTexto(texto_aux); 761 | StyledDocument doc = jTextPaneAlgebraRelacional.getStyledDocument(); 762 | int posicao = 0; 763 | for(int i = 0; i < formataalgebratexto.gettamanhoparametro(); i++) 764 | { 765 | parametroalgebra = formataalgebratexto.getparametro(i); 766 | try 767 | { 768 | doc.insertString(posicao, parametroalgebra.gettexto(), parametroalgebra.getset()); 769 | posicao += parametroalgebra.gettexto().length(); 770 | } 771 | catch(Exception e2) 772 | { 773 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Erro na inser\347\343o do caracter.", "Erro", 0); 774 | } 775 | } 776 | 777 | jTextPaneAlgebraRelacional.setCaretPosition(posicao_carret); 778 | } 779 | } 780 | 781 | } 782 | ); 783 | } 784 | return jTextPaneAlgebraRelacional; 785 | } 786 | 787 | public boolean verifica_caracter(int val) 788 | { 789 | for(int i = 0; i < vetor_caracteres.length; i++) 790 | { 791 | if(vetor_caracteres[i] == val) 792 | return true; 793 | if(val < vetor_caracteres[i]) 794 | return false; 795 | } 796 | 797 | return false; 798 | } 799 | 800 | private JPanel getJPanelbotoesOperacoes() 801 | { 802 | if(jPanelbotoesOperacoes == null) 803 | { 804 | GridBagConstraints gridBagConstraints11 = new GridBagConstraints(); 805 | gridBagConstraints11.gridy = 4; 806 | gridBagConstraints11.gridx = 2; 807 | GridBagConstraints gridBagConstraints10 = new GridBagConstraints(); 808 | gridBagConstraints10.gridy = 4; 809 | gridBagConstraints10.gridx = 1; 810 | GridBagConstraints gridBagConstraints9 = new GridBagConstraints(); 811 | gridBagConstraints9.gridy = 4; 812 | gridBagConstraints9.gridx = 0; 813 | GridBagConstraints gridBagConstraints8 = new GridBagConstraints(); 814 | gridBagConstraints8.gridy = 2; 815 | gridBagConstraints8.gridx = 3; 816 | GridBagConstraints gridBagConstraints7 = new GridBagConstraints(); 817 | gridBagConstraints7.gridy = 2; 818 | gridBagConstraints7.gridx = 1; 819 | GridBagConstraints gridBagConstraints6 = new GridBagConstraints(); 820 | gridBagConstraints6.gridy = 2; 821 | gridBagConstraints6.gridx = 0; 822 | GridBagConstraints gridBagConstraints5 = new GridBagConstraints(); 823 | gridBagConstraints5.gridy = 1; 824 | gridBagConstraints5.gridx = 3; 825 | GridBagConstraints gridBagConstraints41 = new GridBagConstraints(); 826 | gridBagConstraints41.gridy = 1; 827 | gridBagConstraints41.gridx = 2; 828 | GridBagConstraints gridBagConstraints31 = new GridBagConstraints(); 829 | gridBagConstraints31.gridy = 1; 830 | gridBagConstraints31.gridx = 1; 831 | GridBagConstraints gridBagConstraints21 = new GridBagConstraints(); 832 | gridBagConstraints21.gridy = 1; 833 | gridBagConstraints21.gridx = 0; 834 | GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); 835 | gridBagConstraints4.gridy = 0; 836 | gridBagConstraints4.gridx = 3; 837 | GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); 838 | gridBagConstraints3.gridy = 0; 839 | gridBagConstraints3.gridx = 2; 840 | GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); 841 | gridBagConstraints2.gridy = 2; 842 | gridBagConstraints2.gridx = 2; 843 | GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); 844 | gridBagConstraints1.gridy = 0; 845 | gridBagConstraints1.gridwidth = 1; 846 | gridBagConstraints1.gridx = 1; 847 | GridBagConstraints gridBagConstraints = new GridBagConstraints(); 848 | gridBagConstraints.gridy = 0; 849 | gridBagConstraints.gridx = 0; 850 | jPanelbotoesOperacoes = new JPanel(); 851 | jPanelbotoesOperacoes.setBorder(BorderFactory.createTitledBorder(null, "Opera\347\365es", 0, 0, new Font("Dialog", 1, 12), new Color(51, 51, 51))); 852 | jPanelbotoesOperacoes.setPreferredSize(new Dimension(210, 165)); 853 | jPanelbotoesOperacoes.setLayout(new GridBagLayout()); 854 | jPanelbotoesOperacoes.add(getJButtonSelecao(), gridBagConstraints); 855 | jPanelbotoesOperacoes.add(getJButtonProjecao(), gridBagConstraints1); 856 | jPanelbotoesOperacoes.add(getJButtonRenomear(), gridBagConstraints2); 857 | jPanelbotoesOperacoes.add(getJButtonUniao(), gridBagConstraints3); 858 | jPanelbotoesOperacoes.add(getJButtonIntersecao(), gridBagConstraints4); 859 | jPanelbotoesOperacoes.add(getJButtonDiferenca(), gridBagConstraints21); 860 | jPanelbotoesOperacoes.add(getJButtonProdutoCartesiano(), gridBagConstraints31); 861 | jPanelbotoesOperacoes.add(getJButtonJoin(), gridBagConstraints41); 862 | jPanelbotoesOperacoes.add(getJButtonOuterJoinTotal(), gridBagConstraints5); 863 | jPanelbotoesOperacoes.add(getJButtonOuterJoinEsquerda(), gridBagConstraints6); 864 | jPanelbotoesOperacoes.add(getJButtonOuterJoinDireita(), gridBagConstraints7); 865 | jPanelbotoesOperacoes.add(getJButtonDivisao(), gridBagConstraints8); 866 | jPanelbotoesOperacoes.add(getJButtonJoinNatural(), gridBagConstraints9); 867 | jPanelbotoesOperacoes.add(getJButtonAgregacao(), gridBagConstraints10); 868 | jPanelbotoesOperacoes.add(getJButtonRecursao(), gridBagConstraints11); 869 | Botao_Handler BotaoHandler = new Botao_Handler(); 870 | getJButtonSelecao().addActionListener(BotaoHandler); 871 | getJButtonProjecao().addActionListener(BotaoHandler); 872 | getJButtonRenomear().addActionListener(BotaoHandler); 873 | getJButtonUniao().addActionListener(BotaoHandler); 874 | getJButtonIntersecao().addActionListener(BotaoHandler); 875 | getJButtonDiferenca().addActionListener(BotaoHandler); 876 | getJButtonProdutoCartesiano().addActionListener(BotaoHandler); 877 | getJButtonJoin().addActionListener(BotaoHandler); 878 | getJButtonOuterJoinTotal().addActionListener(BotaoHandler); 879 | getJButtonOuterJoinEsquerda().addActionListener(BotaoHandler); 880 | getJButtonOuterJoinDireita().addActionListener(BotaoHandler); 881 | getJButtonDivisao().addActionListener(BotaoHandler); 882 | getJButtonJoinNatural().addActionListener(BotaoHandler); 883 | getJButtonAgregacao().addActionListener(BotaoHandler); 884 | getJButtonRecursao().addActionListener(BotaoHandler); 885 | } 886 | return jPanelbotoesOperacoes; 887 | } 888 | 889 | private JButton getJButtonSelecao() 890 | { 891 | if(jButtonSelecao == null) 892 | { 893 | jButtonSelecao = new JButton(); 894 | jButtonSelecao.setPreferredSize(new Dimension(50, 30)); 895 | jButtonSelecao.setFont(getFont(19)); 896 | jButtonSelecao.setToolTipText("Sele\347\343o"); 897 | jButtonSelecao.setText((new Character('\u038E')).toString()); 898 | } 899 | return jButtonSelecao; 900 | } 901 | 902 | private JButton getJButtonProjecao() 903 | { 904 | if(jButtonProjecao == null) 905 | { 906 | jButtonProjecao = new JButton(); 907 | jButtonProjecao.setPreferredSize(new Dimension(50, 30)); 908 | jButtonProjecao.setFont(getFont(13)); 909 | jButtonProjecao.setToolTipText("Proje\347\343o"); 910 | jButtonProjecao.setText((new Character('\u038F')).toString()); 911 | } 912 | return jButtonProjecao; 913 | } 914 | 915 | private JButton getJButtonRenomear() 916 | { 917 | if(jButtonRenomear == null) 918 | { 919 | jButtonRenomear = new JButton(); 920 | jButtonRenomear.setPreferredSize(new Dimension(50, 30)); 921 | jButtonRenomear.setToolTipText("Renomear"); 922 | jButtonRenomear.setFont(getFont(17)); 923 | jButtonRenomear.setText((new Character('\u0398')).toString()); 924 | } 925 | return jButtonRenomear; 926 | } 927 | 928 | private JButton getJButtonUniao() 929 | { 930 | if(jButtonUniao == null) 931 | { 932 | jButtonUniao = new JButton(); 933 | jButtonUniao.setPreferredSize(new Dimension(50, 30)); 934 | jButtonUniao.setFont(getFont(13)); 935 | jButtonUniao.setToolTipText("Uni\343o"); 936 | jButtonUniao.setText((new Character('\u0390')).toString()); 937 | } 938 | return jButtonUniao; 939 | } 940 | 941 | private JButton getJButtonIntersecao() 942 | { 943 | if(jButtonIntersecao == null) 944 | { 945 | jButtonIntersecao = new JButton(); 946 | jButtonIntersecao.setPreferredSize(new Dimension(50, 30)); 947 | jButtonIntersecao.setFont(getFont(14)); 948 | jButtonIntersecao.setToolTipText("Interse\347\343o"); 949 | jButtonIntersecao.setText((new Character('\u0391')).toString()); 950 | jButtonIntersecao.setEnabled(false); 951 | } 952 | return jButtonIntersecao; 953 | } 954 | 955 | private JButton getJButtonDiferenca() 956 | { 957 | if(jButtonDiferenca == null) 958 | { 959 | jButtonDiferenca = new JButton(); 960 | jButtonDiferenca.setFont(getFont(15)); 961 | jButtonDiferenca.setToolTipText("Diferen\347a"); 962 | jButtonDiferenca.setPreferredSize(new Dimension(50, 30)); 963 | jButtonDiferenca.setText((new Character('\u0392')).toString()); 964 | jButtonDiferenca.setEnabled(false); 965 | } 966 | return jButtonDiferenca; 967 | } 968 | 969 | private JButton getJButtonProdutoCartesiano() 970 | { 971 | if(jButtonProdutoCartesiano == null) 972 | { 973 | jButtonProdutoCartesiano = new JButton(); 974 | jButtonProdutoCartesiano.setPreferredSize(new Dimension(50, 30)); 975 | jButtonProdutoCartesiano.setFont(getFont(13)); 976 | jButtonProdutoCartesiano.setToolTipText("Produto Cartesiano"); 977 | jButtonProdutoCartesiano.setText((new Character('\u0393')).toString()); 978 | } 979 | return jButtonProdutoCartesiano; 980 | } 981 | 982 | private JButton getJButtonJoinNatural() 983 | { 984 | if(jButtonJoinNatural == null) 985 | { 986 | jButtonJoinNatural = new JButton(); 987 | jButtonJoinNatural.setPreferredSize(new Dimension(50, 30)); 988 | jButtonJoinNatural.setToolTipText("Join Natural"); 989 | jButtonJoinNatural.setFont(getFont(15)); 990 | jButtonJoinNatural.setText((new Character('\u039B')).toString()); 991 | } 992 | return jButtonJoinNatural; 993 | } 994 | 995 | private JButton getJButtonJoin() 996 | { 997 | if(jButtonJoin == null) 998 | { 999 | jButtonJoin = new JButton(); 1000 | jButtonJoin.setPreferredSize(new Dimension(50, 30)); 1001 | jButtonJoin.setToolTipText("Join"); 1002 | jButtonJoin.setFont(getFont(15)); 1003 | jButtonJoin.setText((new Character('\u0394')).toString()); 1004 | } 1005 | return jButtonJoin; 1006 | } 1007 | 1008 | private JButton getJButtonAgregacao() 1009 | { 1010 | if(jButtonAgregacao == null) 1011 | { 1012 | jButtonAgregacao = new JButton(); 1013 | jButtonAgregacao.setPreferredSize(new Dimension(50, 30)); 1014 | jButtonAgregacao.setToolTipText("Agrega\347\343o"); 1015 | jButtonAgregacao.setFont(getFont(15)); 1016 | jButtonAgregacao.setText((new Character('\u039A')).toString()); 1017 | } 1018 | return jButtonAgregacao; 1019 | } 1020 | 1021 | private JButton getJButtonRecursao() 1022 | { 1023 | if(jButtonRecursao == null) 1024 | { 1025 | jButtonRecursao = new JButton(); 1026 | jButtonRecursao.setPreferredSize(new Dimension(50, 30)); 1027 | jButtonRecursao.setToolTipText("Recurs\343o"); 1028 | jButtonRecursao.setFont(getFont(15)); 1029 | jButtonRecursao.setText((new Character('\u03B1')).toString()); 1030 | } 1031 | return jButtonRecursao; 1032 | } 1033 | 1034 | private JButton getJButtonOuterJoinTotal() 1035 | { 1036 | if(jButtonOuterJoinTotal == null) 1037 | { 1038 | jButtonOuterJoinTotal = new JButton(); 1039 | jButtonOuterJoinTotal.setPreferredSize(new Dimension(50, 30)); 1040 | jButtonOuterJoinTotal.setToolTipText("Outer Join Total"); 1041 | jButtonOuterJoinTotal.setFont(getFont(11)); 1042 | jButtonOuterJoinTotal.setText((new Character('\u0395')).toString()); 1043 | } 1044 | return jButtonOuterJoinTotal; 1045 | } 1046 | 1047 | private JButton getJButtonOuterJoinEsquerda() 1048 | { 1049 | if(jButtonOuterJoinEsquerda == null) 1050 | { 1051 | jButtonOuterJoinEsquerda = new JButton(); 1052 | jButtonOuterJoinEsquerda.setPreferredSize(new Dimension(50, 30)); 1053 | jButtonOuterJoinEsquerda.setToolTipText("Outer Join a Esquerda"); 1054 | jButtonOuterJoinEsquerda.setFont(getFont(11)); 1055 | jButtonOuterJoinEsquerda.setText((new Character('\u0396')).toString()); 1056 | } 1057 | return jButtonOuterJoinEsquerda; 1058 | } 1059 | 1060 | private JButton getJButtonOuterJoinDireita() 1061 | { 1062 | if(jButtonOuterJoinDireita == null) 1063 | { 1064 | jButtonOuterJoinDireita = new JButton(); 1065 | jButtonOuterJoinDireita.setPreferredSize(new Dimension(50, 30)); 1066 | jButtonOuterJoinDireita.setFont(getFont(11)); 1067 | jButtonOuterJoinDireita.setToolTipText("Outer Join a Direita"); 1068 | jButtonOuterJoinDireita.setText((new Character('\u0397')).toString()); 1069 | } 1070 | return jButtonOuterJoinDireita; 1071 | } 1072 | 1073 | private JButton getJButtonDivisao() 1074 | { 1075 | if(jButtonDivisao == null) 1076 | { 1077 | jButtonDivisao = new JButton(); 1078 | jButtonDivisao.setToolTipText("Divis\343o"); 1079 | jButtonDivisao.setFont(getFont(19)); 1080 | jButtonDivisao.setPreferredSize(new Dimension(50, 30)); 1081 | jButtonDivisao.setText((new Character('\u0399')).toString()); 1082 | jButtonDivisao.setEnabled(false); 1083 | } 1084 | return jButtonDivisao; 1085 | } 1086 | 1087 | public Font getFont(int tamanho){ 1088 | Font font = null; 1089 | try{ 1090 | DataInputStream din = new DataInputStream(new BufferedInputStream(getClass().getResourceAsStream("Algebra.ttf"))); 1091 | font = Font.createFont( Font.TRUETYPE_FONT , din ); 1092 | }catch( Exception e ){ 1093 | System.out.println( e.getMessage() ); 1094 | } 1095 | font = font.deriveFont( Font.PLAIN , tamanho ); 1096 | return font; 1097 | } 1098 | 1099 | private JPanel getJPanel() 1100 | { 1101 | if(jPanel == null) 1102 | { 1103 | jPanel = new JPanel(); 1104 | jPanel.setLayout(new GridBagLayout()); 1105 | } 1106 | return jPanel; 1107 | } 1108 | 1109 | private JPanel getJPanelAlgebraAcoes() 1110 | { 1111 | if(jPanelAlgebraAcoes == null) 1112 | { 1113 | GridBagConstraints gridBagConstraints10 = new GridBagConstraints(); 1114 | gridBagConstraints10.gridy = 0; 1115 | gridBagConstraints10.gridx = 3; 1116 | GridBagConstraints gridBagConstraints9 = new GridBagConstraints(); 1117 | gridBagConstraints9.gridy = 0; 1118 | gridBagConstraints9.gridx = 1; 1119 | jPanelAlgebraAcoes = new JPanel(); 1120 | jPanelAlgebraAcoes.setLayout(new GridBagLayout()); 1121 | jPanelAlgebraAcoes.setPreferredSize(new Dimension(550, 35)); 1122 | jPanelAlgebraAcoes.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); 1123 | jPanelAlgebraAcoes.add(getJButtonAlgebraLimpar(), gridBagConstraints9); 1124 | jPanelAlgebraAcoes.add(getJButtonAlgebraExecutar(), gridBagConstraints10); 1125 | Botao_Handler BotaoHandler = new Botao_Handler(); 1126 | getJButtonAlgebraLimpar().addActionListener(BotaoHandler); 1127 | getJButtonAlgebraExecutar().addActionListener(BotaoHandler); 1128 | } 1129 | return jPanelAlgebraAcoes; 1130 | } 1131 | 1132 | private JButton getJButtonAlgebraLimpar() 1133 | { 1134 | if(jButtonAlgebraLimpar == null) 1135 | { 1136 | jButtonAlgebraLimpar = new JButton(); 1137 | //jButtonAlgebraLimpar.setPreferredSize(new Dimension(90, 25)); 1138 | jButtonAlgebraLimpar.setPreferredSize(new Dimension(90, 40)); 1139 | jButtonAlgebraLimpar.setText("Limpar"); 1140 | } 1141 | return jButtonAlgebraLimpar; 1142 | } 1143 | 1144 | private JButton getJButtonAlgebraExecutar() 1145 | { 1146 | if(jButtonAlgebraExecutar == null) 1147 | { 1148 | jButtonAlgebraExecutar = new JButton(); 1149 | //jButtonAlgebraExecutar.setPreferredSize(new Dimension(90, 25)); 1150 | jButtonAlgebraExecutar.setPreferredSize(new Dimension(90, 40)); 1151 | jButtonAlgebraExecutar.setText("Executar"); 1152 | } 1153 | return jButtonAlgebraExecutar; 1154 | } 1155 | 1156 | private JPanel getJPanelCalculoRelacional() 1157 | { 1158 | if(jPanelCalculoRelacional == null) 1159 | { 1160 | jPanelCalculoRelacional = new JPanel(); 1161 | jPanelCalculoRelacional.setLayout(new FlowLayout(0)); 1162 | //jPanelCalculoRelacional.setPreferredSize(new Dimension(790, 100)); 1163 | jPanelCalculoRelacional.setPreferredSize(new Dimension(790, 130)); 1164 | jPanelCalculoRelacional.setBorder(BorderFactory.createTitledBorder(null, "Calculo Relacional", 0, 0, new Font("Dialog", 1, 12), new Color(51, 51, 51))); 1165 | jPanelCalculoRelacional.add(getJRadioButtonCalculoRelacional(), null); 1166 | jPanelCalculoRelacional.add(getJScrollPaneCalculoRelacional(), null); 1167 | jPanelCalculoRelacional.add(getJPanelCalculoAcoes(), null); 1168 | } 1169 | return jPanelCalculoRelacional; 1170 | } 1171 | 1172 | private JRadioButton getJRadioButtonCalculoRelacional() 1173 | { 1174 | if(jRadioButtonCalculoRelacional == null) 1175 | { 1176 | jRadioButtonCalculoRelacional = new JRadioButton(); 1177 | jRadioButtonCalculoRelacional.setVerticalAlignment(0); 1178 | jRadioButtonCalculoRelacional.setToolTipText("Clique para habilitar Calculo Relacional"); 1179 | jRadioButtonCalculoRelacional.setText(" Express\343o: "); 1180 | jRadioButtonCalculoRelacional.setVerticalTextPosition(3); 1181 | jRadioButtonCalculoRelacional.setEnabled(false); 1182 | Radio_Handler RadioHandler = new Radio_Handler(); 1183 | jRadioButtonCalculoRelacional.addItemListener(RadioHandler); 1184 | } 1185 | return jRadioButtonCalculoRelacional; 1186 | } 1187 | 1188 | private JScrollPane getJScrollPaneCalculoRelacional() 1189 | { 1190 | if(jScrollPaneCalculoRelacional == null) 1191 | { 1192 | jScrollPaneCalculoRelacional = new JScrollPane(); 1193 | jScrollPaneCalculoRelacional.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 1194 | //jScrollPaneCalculoRelacional.setPreferredSize(new Dimension(660, 30)); 1195 | jScrollPaneCalculoRelacional.setPreferredSize(new Dimension(770, 30)); 1196 | jScrollPaneCalculoRelacional.setViewportView(getJTextAreaCalculoRelacional()); 1197 | jScrollPaneCalculoRelacional.setFont(new Font("Dialog", 0, 12)); 1198 | } 1199 | return jScrollPaneCalculoRelacional; 1200 | } 1201 | 1202 | private JTextArea getJTextAreaCalculoRelacional() 1203 | { 1204 | if(jTextAreaCalculoRelacional == null) 1205 | { 1206 | jTextAreaCalculoRelacional = new JTextArea(); 1207 | jTextAreaCalculoRelacional.setFont(new Font("Dialog", 0, 12)); 1208 | } 1209 | return jTextAreaCalculoRelacional; 1210 | } 1211 | 1212 | private JPanel getJPanelCalculoAcoes() 1213 | { 1214 | if(jPanelCalculoAcoes == null) 1215 | { 1216 | GridBagConstraints gridBagConstraints101 = new GridBagConstraints(); 1217 | gridBagConstraints101.gridy = 0; 1218 | gridBagConstraints101.gridx = 3; 1219 | GridBagConstraints gridBagConstraints91 = new GridBagConstraints(); 1220 | gridBagConstraints91.gridy = 0; 1221 | gridBagConstraints91.gridx = 1; 1222 | jPanelCalculoAcoes = new JPanel(); 1223 | jPanelCalculoAcoes.setLayout(new GridBagLayout()); 1224 | jPanelCalculoAcoes.setPreferredSize(new Dimension(557, 35)); 1225 | //jPanelCalculoAcoes.setPreferredSize(new Dimension(557, 100)); 1226 | jPanelCalculoAcoes.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); 1227 | jPanelCalculoAcoes.add(getJButtonCalculoLimpar(), gridBagConstraints91); 1228 | jPanelCalculoAcoes.add(getJButtonCalculoExecutar(), gridBagConstraints101); 1229 | Botao_Handler BotaoHandler = new Botao_Handler(); 1230 | getJButtonCalculoLimpar().addActionListener(BotaoHandler); 1231 | getJButtonCalculoExecutar().addActionListener(BotaoHandler); 1232 | } 1233 | return jPanelCalculoAcoes; 1234 | } 1235 | 1236 | private JButton getJButtonCalculoLimpar() 1237 | { 1238 | if(jButtonCalculoLimpar == null) 1239 | { 1240 | jButtonCalculoLimpar = new JButton(); 1241 | //jButtonCalculoLimpar.setPreferredSize(new Dimension(90, 25)); 1242 | jButtonCalculoLimpar.setPreferredSize(new Dimension(90, 40)); 1243 | jButtonCalculoLimpar.setText("Limpar"); 1244 | } 1245 | return jButtonCalculoLimpar; 1246 | } 1247 | 1248 | private JButton getJButtonCalculoExecutar() 1249 | { 1250 | if(jButtonCalculoExecutar == null) 1251 | { 1252 | jButtonCalculoExecutar = new JButton(); 1253 | //jButtonCalculoExecutar.setPreferredSize(new Dimension(90, 25)); 1254 | jButtonCalculoExecutar.setPreferredSize(new Dimension(90, 40)); 1255 | jButtonCalculoExecutar.setText("Executar"); 1256 | } 1257 | return jButtonCalculoExecutar; 1258 | } 1259 | 1260 | private JPanel getJPanelSQL() 1261 | { 1262 | if(jPanelSQL == null) 1263 | { 1264 | jPanelSQL = new JPanel(); 1265 | jPanelSQL.setLayout(new FlowLayout(0)); 1266 | //jPanelSQL.setPreferredSize(new Dimension(790, 130)); 1267 | jPanelSQL.setPreferredSize(new Dimension(790, 150)); 1268 | jPanelSQL.setBorder(BorderFactory.createTitledBorder(null, "SQL", 0, 0, new Font("Dialog", 1, 12), new Color(51, 51, 51))); 1269 | jPanelSQL.add(getJRadioButtonSQL(), null); 1270 | jPanelSQL.add(getJScrollPaneSQL(), null); 1271 | jPanelSQL.add(getJPanelSQLAcoes(), null); 1272 | } 1273 | return jPanelSQL; 1274 | } 1275 | 1276 | private JRadioButton getJRadioButtonSQL() 1277 | { 1278 | if(jRadioButtonSQL == null) 1279 | { 1280 | jRadioButtonSQL = new JRadioButton(); 1281 | jRadioButtonSQL.setVerticalAlignment(0); 1282 | jRadioButtonSQL.setToolTipText("Clique para habilitar SQL"); 1283 | jRadioButtonSQL.setText(" Express\343o: "); 1284 | jRadioButtonSQL.setVerticalTextPosition(3); 1285 | Radio_Handler RadioHandler = new Radio_Handler(); 1286 | jRadioButtonSQL.addItemListener(RadioHandler); 1287 | } 1288 | return jRadioButtonSQL; 1289 | } 1290 | 1291 | private JScrollPane getJScrollPaneSQL() 1292 | { 1293 | if(jScrollPaneSQL == null) 1294 | { 1295 | jScrollPaneSQL = new JScrollPane(); 1296 | jScrollPaneSQL.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 1297 | //jScrollPaneSQL.setPreferredSize(new Dimension(660, 55)); 1298 | jScrollPaneSQL.setPreferredSize(new Dimension(770, 45)); 1299 | jScrollPaneSQL.setViewportView(getJTextAreaSQL()); 1300 | jScrollPaneSQL.setFont(new Font("Dialog", 0, 12)); 1301 | } 1302 | return jScrollPaneSQL; 1303 | } 1304 | 1305 | private JTextArea getJTextAreaSQL() 1306 | { 1307 | if(jTextAreaSQL == null) 1308 | { 1309 | jTextAreaSQL = new JTextArea(); 1310 | jTextAreaSQL.setFont(new Font("Dialog", 0, 12)); 1311 | } 1312 | return jTextAreaSQL; 1313 | } 1314 | 1315 | private JPanel getJPanelSQLAcoes() 1316 | { 1317 | if(jPanelSQLAcoes == null) 1318 | { 1319 | GridBagConstraints gridBagConstraints1011 = new GridBagConstraints(); 1320 | gridBagConstraints1011.gridy = 0; 1321 | gridBagConstraints1011.gridx = 3; 1322 | GridBagConstraints gridBagConstraints911 = new GridBagConstraints(); 1323 | gridBagConstraints911.gridy = 0; 1324 | gridBagConstraints911.gridx = 1; 1325 | jPanelSQLAcoes = new JPanel(); 1326 | jPanelSQLAcoes.setLayout(new GridBagLayout()); 1327 | jPanelSQLAcoes.setPreferredSize(new Dimension(557, 35)); 1328 | jPanelSQLAcoes.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); 1329 | jPanelSQLAcoes.add(getJButtonSQLLimpar(), gridBagConstraints911); 1330 | jPanelSQLAcoes.add(getJButtonSQLExecutar(), gridBagConstraints1011); 1331 | Botao_Handler BotaoHandler = new Botao_Handler(); 1332 | getJButtonSQLLimpar().addActionListener(BotaoHandler); 1333 | getJButtonSQLExecutar().addActionListener(BotaoHandler); 1334 | } 1335 | return jPanelSQLAcoes; 1336 | } 1337 | 1338 | private JPanel getJPanelConexaoAcoes() 1339 | { 1340 | if(jPanelConexaoAcoes == null) 1341 | { 1342 | GridBagConstraints gridBagConstraints1012 = new GridBagConstraints(); 1343 | gridBagConstraints1012.gridy = 0; 1344 | gridBagConstraints1012.gridx = 3; 1345 | GridBagConstraints gridBagConstraints912 = new GridBagConstraints(); 1346 | gridBagConstraints912.gridy = 0; 1347 | gridBagConstraints912.gridx = 1; 1348 | jPanelConexaoAcoes = new JPanel(); 1349 | jPanelConexaoAcoes.setLayout(new GridBagLayout()); 1350 | jPanelConexaoAcoes.setPreferredSize(new Dimension(700, 35)); 1351 | jPanelConexaoAcoes.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); 1352 | jPanelConexaoAcoes.add(getJButtonConexaoOK(), gridBagConstraints912); 1353 | jPanelConexaoAcoes.add(getJButtonConexaoCancel(), gridBagConstraints1012); 1354 | Botao_Handler BotaoHandler = new Botao_Handler(); 1355 | getJButtonConexaoOK().addActionListener(BotaoHandler); 1356 | getJButtonConexaoCancel().addActionListener(BotaoHandler); 1357 | } 1358 | return jPanelConexaoAcoes; 1359 | } 1360 | 1361 | private JButton getJButtonSQLLimpar() 1362 | { 1363 | if(jButtonSQLLimpar == null) 1364 | { 1365 | jButtonSQLLimpar = new JButton(); 1366 | //jButtonSQLLimpar.setPreferredSize(new Dimension(90, 25)); 1367 | jButtonSQLLimpar.setPreferredSize(new Dimension(90, 40)); 1368 | jButtonSQLLimpar.setText("Limpar"); 1369 | } 1370 | return jButtonSQLLimpar; 1371 | } 1372 | 1373 | private JButton getJButtonConexaoOK() 1374 | { 1375 | if(jButtonConexaoOK == null) 1376 | { 1377 | jButtonConexaoOK = new JButton(); 1378 | //jButtonConexaoOK.setPreferredSize(new Dimension(90, 25)); 1379 | jButtonConexaoOK.setPreferredSize(new Dimension(90, 40)); 1380 | jButtonConexaoOK.setText("OK"); 1381 | } 1382 | return jButtonConexaoOK; 1383 | } 1384 | 1385 | private JButton getJButtonConexaoCancel() 1386 | { 1387 | if(jButtonConexaoCancel == null) 1388 | { 1389 | jButtonConexaoCancel = new JButton(); 1390 | //jButtonConexaoCancel.setPreferredSize(new Dimension(90, 25)); 1391 | jButtonConexaoCancel.setPreferredSize(new Dimension(90, 40)); 1392 | jButtonConexaoCancel.setText("Cancelar"); 1393 | } 1394 | return jButtonConexaoCancel; 1395 | } 1396 | 1397 | private JButton getJButtonSQLExecutar() 1398 | { 1399 | if(jButtonSQLExecutar == null) 1400 | { 1401 | jButtonSQLExecutar = new JButton(); 1402 | //jButtonSQLExecutar.setPreferredSize(new Dimension(90, 25)); 1403 | jButtonSQLExecutar.setPreferredSize(new Dimension(90, 40)); 1404 | jButtonSQLExecutar.setText("Executar"); 1405 | } 1406 | return jButtonSQLExecutar; 1407 | } 1408 | 1409 | private JScrollPane getJScrollPaneResultado() 1410 | { 1411 | if(jScrollPaneResultado == null) 1412 | { 1413 | jScrollPaneResultado = new JScrollPane(); 1414 | jScrollPaneResultado.setPreferredSize(new Dimension(770, 110)); 1415 | jScrollPaneResultado.setViewportView(getJTableResultado()); 1416 | jScrollPaneResultado.setVisible(true); 1417 | } 1418 | return jScrollPaneResultado; 1419 | } 1420 | 1421 | private JTable getJTableResultado() 1422 | { 1423 | if(jTableResultado == null) 1424 | { 1425 | model = new DefaultTableModel(); 1426 | jTableResultado = new JTable(model); 1427 | } 1428 | return jTableResultado; 1429 | } 1430 | 1431 | private JPanel getJPanelResultado() 1432 | { 1433 | if(jPanelResultado == null) 1434 | { 1435 | jPanelResultado = new JPanel(); 1436 | jPanelResultado.setLayout(new FlowLayout(0)); 1437 | jPanelResultado.setPreferredSize(new Dimension(790, 150)); 1438 | jPanelResultado.setBorder(BorderFactory.createTitledBorder(null, "Resultado", 0, 0, new Font("Dialog", 1, 12), new Color(51, 51, 51))); 1439 | jPanelResultado.add(getJScrollPaneResultado(), null); 1440 | } 1441 | return jPanelResultado; 1442 | } 1443 | 1444 | private JPanel getJPanelAlgebraExpressao() 1445 | { 1446 | if(jPanelAlgebraExpressao == null) 1447 | { 1448 | jPanelAlgebraExpressao = new JPanel(); 1449 | jPanelAlgebraExpressao.setLayout(new FlowLayout(0)); 1450 | jPanelAlgebraExpressao.setPreferredSize(new Dimension(560, 155)); 1451 | jPanelAlgebraExpressao.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); 1452 | jPanelAlgebraExpressao.add(getJRadioButtonAlgebraRelacional()); 1453 | jPanelAlgebraExpressao.add(getJScrollPaneAlgebraRelacional()); 1454 | jPanelAlgebraExpressao.add(getJPanelAlgebraAcoes()); 1455 | } 1456 | return jPanelAlgebraExpressao; 1457 | } 1458 | 1459 | public static void main() 1460 | { 1461 | 1462 | SwingUtilities.invokeLater(new Runnable() { 1463 | 1464 | public void run() 1465 | { 1466 | Tela_Principal thisClass = new Tela_Principal(); 1467 | thisClass.setDefaultCloseOperation(3); 1468 | thisClass.setVisible(true); 1469 | } 1470 | 1471 | } 1472 | ); 1473 | } 1474 | 1475 | private JPanel getJContentPaneConsulta() 1476 | { 1477 | if(jContentPaneConsulta == null) 1478 | { 1479 | jContentPaneConsulta = new JPanel(); 1480 | jContentPaneConsulta.setLayout(new FlowLayout(0)); 1481 | jContentPaneConsulta.add(getJPanelBancodeDados(), null); 1482 | jContentPaneConsulta.add(getJPanelAlgebraRelacional(), null); 1483 | jContentPaneConsulta.add(getJPanelCalculoRelacional(), null); 1484 | jContentPaneConsulta.add(getJPanelSQL(), null); 1485 | jContentPaneConsulta.add(getJPanelResultado(), null); 1486 | radioGroup = new ButtonGroup(); 1487 | radioGroup.add(getJRadioButtonAlgebraRelacional()); 1488 | radioGroup.add(getJRadioButtonCalculoRelacional()); 1489 | radioGroup.add(getJRadioButtonSQL()); 1490 | } 1491 | return jContentPaneConsulta; 1492 | } 1493 | 1494 | private JPanel getJContentPaneConexao() 1495 | { 1496 | if(jContentPaneConexao == null) 1497 | { 1498 | jContentPaneConexao = new JPanel(); 1499 | jContentPaneConexao.setLayout(new FlowLayout(0)); 1500 | jContentPaneConexao.add(getJPanelConexao(), null); 1501 | } 1502 | return jContentPaneConexao; 1503 | } 1504 | 1505 | private void EnableAlgebra(boolean habilita) 1506 | { 1507 | getJScrollPaneAlgebraRelacional().setEnabled(habilita); 1508 | getJTextPaneAlgebraRelacional().setEnabled(habilita); 1509 | getJTabbedPane().setEnabled(habilita); 1510 | getJButtonSelecao().setEnabled(habilita); 1511 | getJButtonProjecao().setEnabled(habilita); 1512 | getJButtonUniao().setEnabled(habilita); 1513 | getJButtonProdutoCartesiano().setEnabled(habilita); 1514 | getJButtonJoinNatural().setEnabled(habilita); 1515 | getJButtonRecursao().setEnabled(habilita); 1516 | getJButtonOuterJoinTotal().setEnabled(habilita); 1517 | getJButtonOuterJoinEsquerda().setEnabled(habilita); 1518 | getJButtonOuterJoinDireita().setEnabled(habilita); 1519 | getJButtonRenomear().setEnabled(habilita); 1520 | getJButtonJoin().setEnabled(habilita); 1521 | getJButtonAgregacao().setEnabled(habilita); 1522 | getJButtonAlgebraLimpar().setEnabled(habilita); 1523 | getJButtonAlgebraExecutar().setEnabled(habilita); 1524 | } 1525 | 1526 | private void EnableCalculo(boolean habilita) 1527 | { 1528 | getJScrollPaneCalculoRelacional().setEnabled(habilita); 1529 | getJTextAreaCalculoRelacional().setEnabled(habilita); 1530 | getJButtonCalculoLimpar().setEnabled(habilita); 1531 | getJButtonCalculoExecutar().setEnabled(habilita); 1532 | } 1533 | 1534 | private void EnableSQL(boolean habilita) 1535 | { 1536 | getJScrollPaneSQL().setEnabled(habilita); 1537 | getJTextAreaSQL().setEnabled(habilita); 1538 | getJButtonSQLLimpar().setEnabled(habilita); 1539 | getJButtonSQLExecutar().setEnabled(habilita); 1540 | } 1541 | 1542 | private void verificaconexao() 1543 | { 1544 | if(JTextFieldServidor.getText().length() == 0) 1545 | { 1546 | JOptionPane.showMessageDialog(getJContentPaneConexao(), "O campo Servidor \351 de preenchimento obrigat\363rio.", "Info", 1); 1547 | return; 1548 | } 1549 | if(JTextFieldUsuario.getText().length() == 0) 1550 | { 1551 | JOptionPane.showMessageDialog(getJContentPaneConexao(), "O campo Usu\341rio \351 de preenchimento obrigat\363rio.", "Info", 1); 1552 | return; 1553 | } 1554 | if(JTextFieldSchema.getText().length() == 0) 1555 | { 1556 | JOptionPane.showMessageDialog(getJContentPaneConexao(), "O campo Schema \351 de preenchimento obrigat\363rio.", "Info", 1); 1557 | return; 1558 | } 1559 | if(!criaconexao.testConnection(JTextFieldServidor.getText(), JTextFieldUsuario.getText(), JTextFieldSenha.getPassword(), JTextFieldSchema.getText())) 1560 | { 1561 | JOptionPane.showMessageDialog(getJContentPaneConexao(), "Erro na conex\343o.", "Erro", 0); 1562 | return; 1563 | } 1564 | criaconexao.gravarConnection(JTextFieldServidor.getText(), JTextFieldUsuario.getText(), JTextFieldSenha.getText(), JTextFieldSchema.getText()); 1565 | jComboBoxBanco.removeAllItems(); 1566 | ListaBancos = criaconexao.getschemas(); 1567 | for(int i = 0; i < ListaBancos.length; i++) 1568 | if(ListaBancos[i] != null) 1569 | jComboBoxBanco.insertItemAt(ListaBancos[i], i); 1570 | 1571 | JOptionPane.showMessageDialog(getJContentPaneConexao(), "Conex\343o criada com sucesso!", "Info", 1); 1572 | } 1573 | 1574 | private void limpaResultado() 1575 | { 1576 | Vector columnHeads = new Vector(); 1577 | Vector> rows = new Vector>(); 1578 | model.setDataVector(rows, columnHeads); 1579 | model.fireTableDataChanged(); 1580 | getJScrollPaneResultado().setVisible(false); 1581 | } 1582 | 1583 | private void displayResultSet(ResultSet rs) 1584 | throws SQLException 1585 | { 1586 | boolean moreRecords = rs.next(); 1587 | if(!moreRecords) 1588 | { 1589 | JOptionPane.showMessageDialog(this, "Consulta n\343o retornou nenhuma tupla"); 1590 | return; 1591 | } 1592 | Vector columnHeads = new Vector(); 1593 | Vector> rows = new Vector>(); 1594 | try 1595 | { 1596 | ResultSetMetaData rsmd = rs.getMetaData(); 1597 | for(int i = 1; i <= rsmd.getColumnCount(); i++) 1598 | columnHeads.addElement(rsmd.getColumnLabel(i)); 1599 | 1600 | do 1601 | { 1602 | rs.wasNull(); 1603 | rows.addElement(getNextRow(rs, rsmd)); 1604 | } while(rs.next()); 1605 | model.setDataVector(rows, columnHeads); 1606 | model.fireTableDataChanged(); 1607 | getJScrollPaneResultado().setVisible(true); 1608 | } 1609 | catch(SQLException sqlex) 1610 | { 1611 | sqlex.printStackTrace(); 1612 | } 1613 | } 1614 | 1615 | private Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd) 1616 | throws SQLException 1617 | { 1618 | Vector currentRow = new Vector(); 1619 | for(int i = 1; i <= rsmd.getColumnCount(); i++) 1620 | { 1621 | String st = rs.getString(i); 1622 | if(st != null) 1623 | currentRow.addElement(st); 1624 | else 1625 | currentRow.addElement("NULL"); 1626 | } 1627 | 1628 | return currentRow; 1629 | } 1630 | 1631 | private void executaSQL() 1632 | { 1633 | Connection conn = null; 1634 | Statement stmt = null; 1635 | ResultSet rs = null; 1636 | try 1637 | { 1638 | if(jComboBoxBanco.getSelectedIndex() != -1) 1639 | { 1640 | String sch = jComboBoxBanco.getSelectedItem().toString(); 1641 | conn = criaconexao.getConnection(sch); 1642 | stmt = conn.createStatement(); 1643 | String Query = getJTextAreaSQL().getText(); 1644 | rs = stmt.executeQuery(Query); 1645 | displayResultSet(rs); 1646 | } else 1647 | { 1648 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), "Schema n\343o selecionado.", "Erro", 0); 1649 | return; 1650 | } 1651 | } 1652 | catch(Exception e) 1653 | { 1654 | JOptionPane.showMessageDialog(getJContentPaneConsulta(), e.getMessage()); 1655 | } 1656 | } 1657 | } 1658 | -------------------------------------------------------------------------------- /src/Algebra/Cliente/ui/LocalPath.java: -------------------------------------------------------------------------------- 1 | package Algebra.Cliente.ui; 2 | 3 | import org.eclipse.swt.SWT; 4 | import org.eclipse.swt.events.SelectionAdapter; 5 | import org.eclipse.swt.events.SelectionEvent; 6 | import org.eclipse.swt.graphics.Color; 7 | import org.eclipse.swt.widgets.Button; 8 | import org.eclipse.swt.widgets.DirectoryDialog; 9 | import org.eclipse.swt.widgets.Display; 10 | import org.eclipse.swt.widgets.Shell; 11 | import org.eclipse.swt.widgets.Text; 12 | 13 | import Algebra.Cliente.Tela_Principal; 14 | 15 | public class LocalPath { 16 | 17 | public static void main(String[] args) { 18 | final Display display = new Display(); 19 | final Shell shell = new Shell(display, SWT.CLOSE | SWT.TITLE | SWT.MIN | SWT.ICON_QUESTION); 20 | //shell.setBounds(display.getBounds().width/2-145, display.getBounds().height/2 - 50, 290, 100); 21 | shell.setBounds(display.getBounds().width/2-145, display.getBounds().height/2 - 50, 340, 100); 22 | shell.setText("Escolha um local"); 23 | final Text localText = new Text(shell, SWT.BORDER); 24 | int height = 25, width = 220; 25 | int y = shell.getSize().y/2 - 3*height/2; 26 | localText.setBounds(5, y, width, height); 27 | localText.setText("local..."); 28 | localText.setForeground(new Color(display, 110, 110, 110)); 29 | localText.setSize(width, height); 30 | 31 | Button button = new Button(shell, SWT.PUSH); 32 | button.setText("Procurar"); 33 | //button.setBounds(width + 10, y, 50, height); 34 | button.setBounds(width + 10, y, 100, height); 35 | 36 | final Button exit = new Button(shell, SWT.PUSH); 37 | exit.setText("OK"); 38 | //exit.setBounds(width + 10, y + height + 10, 50, height); 39 | exit.setBounds(width + 10, y + height + 10, 100, height); 40 | exit.setEnabled(false); 41 | exit.addSelectionListener(new SelectionAdapter() { 42 | @Override 43 | public void widgetSelected(SelectionEvent event) { 44 | Tela_Principal.main(); 45 | shell.close(); 46 | display.dispose(); 47 | } 48 | }); 49 | 50 | button.addSelectionListener(new SelectionAdapter() { 51 | @Override 52 | public void widgetSelected(SelectionEvent event) { 53 | DirectoryDialog dialog = new DirectoryDialog (shell); 54 | dialog.setMessage("Escolha um local para salvar a base de dados"); 55 | String platform = SWT.getPlatform(); 56 | dialog.setFilterPath (platform.equals("win32") || platform.equals("wpf") ? "C:\\" : "/"); 57 | String local = dialog.open (); 58 | Tela_Principal.local = local != null? local : ""; 59 | localText.setText(Tela_Principal.local); 60 | if(localText != null) 61 | if (!(localText.equals("local...")) || !(localText.equals(""))) 62 | exit.setEnabled(true); 63 | } 64 | }); 65 | 66 | shell.open(); 67 | 68 | while (!shell.isDisposed()) { 69 | if (!display.readAndDispatch()) { 70 | display.sleep(); 71 | } 72 | } 73 | display.dispose(); 74 | 75 | } 76 | } 77 | --------------------------------------------------------------------------------