package GUI; import LOGIC.BoolType; import LOGIC.Datatype; import LOGIC.DatatypeElement; import LOGIC.IntType; import LOGIC.Internacional; import LOGIC.IntervalType; import LOGIC.ObjectList; import java.util.LinkedList; import javax.swing.JOptionPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.table.DefaultTableModel; public class TypeGUI extends javax.swing.JFrame { public TypeGUI(Internacional inter, ObjectList listas, boolean edicao, int local) { this.listas = listas; this.edicao = edicao; this.local = local; this.inter = inter; this.setTitle("Types"); TelaInicial.aberto = true; nome = inter.retornarMensagem("COD0012"); tipo = inter.retornarMensagem("COD0015"); tmTipo = new DefaultTableModel(null, new String[] {nome, tipo}){ public boolean isCellEditable(int rowIndex, int mColIndex){ return false; } }; initComponents(); min.setEnabled(false); max.setEnabled(false); name.setEnabled(false); type.setEnabled(false); constructor.setEnabled(false); insere.setEnabled(false); retira.setEnabled(false); valor.setEnabled(false); verificaEdicao(); bundleButtons(); } Internacional inter; ObjectList listas = new ObjectList(); private String nome; private String tipo; DefaultTableModel tmTipo; ListSelectionModel listS; private LOGIC.Type Tipo = new LOGIC.Type(); String string; DatatypeElement data = new DatatypeElement(); LinkedList lista = new LinkedList(); //TelaInicial i = new TelaInicial(); boolean edicao; int local; @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup(); nomeType = new javax.swing.JLabel(); nameType = new javax.swing.JTextField(); intervalo = new javax.swing.JRadioButton(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); min = new javax.swing.JTextField(); max = new javax.swing.JTextField(); Datatype = new javax.swing.JRadioButton(); nomeData = new javax.swing.JLabel(); name = new javax.swing.JTextField(); tipoData = new javax.swing.JLabel(); constructor = new javax.swing.JCheckBox(); insere = new javax.swing.JButton(); concluir = new javax.swing.JButton(); retira = new javax.swing.JButton(); bool = new javax.swing.JRadioButton(); jScrollPane2 = new javax.swing.JScrollPane(); datas = new javax.swing.JTable(); cancelar = new javax.swing.JButton(); type = new javax.swing.JTextField(); inteiro = new javax.swing.JRadioButton(); jLabel1 = new javax.swing.JLabel(); valor = new javax.swing.JTextField(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setMinimumSize(new java.awt.Dimension(314, 488)); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosed(java.awt.event.WindowEvent evt) { formWindowClosed(evt); } }); nomeType.setText("Nome:"); nameType.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { nameTypeActionPerformed(evt); } }); buttonGroup1.add(intervalo); intervalo.setText("Intervalo"); intervalo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { intervaloActionPerformed(evt); } }); jLabel2.setText("min:"); jLabel3.setText("max:"); max.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { maxActionPerformed(evt); } }); buttonGroup1.add(Datatype); Datatype.setText("Datatype"); Datatype.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { DatatypeActionPerformed(evt); } }); nomeData.setText("Nome:"); tipoData.setText("Tipo:"); constructor.setText("Constructor"); insere.setText("Inserir na lista"); insere.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { insereActionPerformed(evt); } }); concluir.setText("Concluir"); concluir.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { concluirActionPerformed(evt); } }); retira.setText("Retirar item"); retira.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { retiraActionPerformed(evt); } }); buttonGroup1.add(bool); bool.setSelected(true); bool.setText("Boolean"); bool.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { boolActionPerformed(evt); } }); datas.setModel(tmTipo); datas.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); jScrollPane2.setViewportView(datas); cancelar.setText("Cancelar"); cancelar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelarActionPerformed(evt); } }); buttonGroup1.add(inteiro); inteiro.setText("Inteiro"); inteiro.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { inteiroActionPerformed(evt); } }); jLabel1.setText("Valor:"); valor.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { valorActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addComponent(cancelar) .addGap(18, 18, 18) .addComponent(concluir)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(59, 59, 59) .addComponent(type, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(constructor)) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 274, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(nomeData) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(name, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(Datatype) .addComponent(inteiro) .addComponent(bool) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup() .addComponent(nomeType) .addGap(18, 18, 18) .addComponent(nameType, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(intervalo) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel3) .addComponent(jLabel2)) .addGap(4, 4, 4)) .addComponent(jLabel1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(min, javax.swing.GroupLayout.DEFAULT_SIZE, 87, Short.MAX_VALUE) .addComponent(max) .addComponent(valor)))))) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(tipoData) .addGap(94, 94, 94)) .addGroup(layout.createSequentialGroup() .addComponent(insere) .addGap(18, 18, 18))) .addComponent(retira, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(0, 16, Short.MAX_VALUE))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(nomeType) .addComponent(nameType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(bool) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(inteiro) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(valor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(intervalo) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(min, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(max, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel3)) .addGap(18, 18, 18) .addComponent(Datatype) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(nomeData) .addComponent(name, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(tipoData) .addComponent(type, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(constructor)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(insere) .addComponent(retira)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(concluir) .addComponent(cancelar)) .addContainerGap()) ); pack(); }// //GEN-END:initComponents private void intervaloActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_intervaloActionPerformed selecao(); }//GEN-LAST:event_intervaloActionPerformed private void concluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_concluirActionPerformed if (verifica()&& verificaNome()){ this.concluir(); TelaInicial.aberto = false; this.dispose(); } else{ JOptionPane.showMessageDialog(null, "informações faltando, complete os espaços"); } }//GEN-LAST:event_concluirActionPerformed private void maxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_maxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_maxActionPerformed private void boolActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_boolActionPerformed Tipo = new BoolType(); selecao(); }//GEN-LAST:event_boolActionPerformed private void nameTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nameTypeActionPerformed }//GEN-LAST:event_nameTypeActionPerformed private void DatatypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_DatatypeActionPerformed selecao(); }//GEN-LAST:event_DatatypeActionPerformed private void insereActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_insereActionPerformed if (verificaNomeD()){ if(constructor.isSelected()&&!type.getText().equals("")){ if(verificaDatatype()){ String nom = this.name.getText(); lista.add(new DatatypeElement()); lista.get(lista.size()-1).setName(nom); String tip = this.type.getText(); lista.get(lista.size()-1).setType(tip); } else{ JOptionPane.showMessageDialog(null, "O construtor não é um tipo existente..."); } } else{ String nom = this.name.getText(); lista.add(new DatatypeElement()); lista.get(lista.size()-1).setName(nom); String tip = ""; lista.get(lista.size()-1).setType(tip); } } mostrar(); }//GEN-LAST:event_insereActionPerformed private void retiraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_retiraActionPerformed excLinha(datas); }//GEN-LAST:event_retiraActionPerformed private void cancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelarActionPerformed TelaInicial.aberto = false; this.dispose(); }//GEN-LAST:event_cancelarActionPerformed private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed TelaInicial.aberto = false; }//GEN-LAST:event_formWindowClosed private void inteiroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_inteiroActionPerformed selecao(); // TODO add your handling code here: }//GEN-LAST:event_inteiroActionPerformed private void valorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_valorActionPerformed // TODO add your handling code here: }//GEN-LAST:event_valorActionPerformed public boolean verifica(){ if (nameType.getText().equals("") ){ return false; } if (intervalo.isSelected()&& (min.getText().equals("") || max.getText().equals(""))){ return false; } if (Datatype.isSelected()&& lista.isEmpty()){ return false; } return true; } public void excLinha(JTable table){ lista.remove(datas.getSelectedRow()); mostrar(); table.repaint(); } public boolean verificaDatatype (){ for(int i = 0; i < listas.getTypeList().size(); i++){ System.out.println(listas.getTypeList().get(i).getNome()); if (type.getText().equals(listas.getTypeList().get(i).getNome())){ return true; } } if (type.getText().equals("int")){ return true; } return false; } public void concluir(){ if (edicao == false){ string = this.nameType.getText(); int lugar; if (bool.isSelected()){ listas.getTypeList().add(new LOGIC.BoolType()); lugar = listas.getTypeList().size()-1; listas.getTypeList().get(lugar).setNome(string); listas.getTypeList().get(lugar).setTipo("boolean"); } if (inteiro.isSelected()){ listas.getTypeList().add(new IntType(Integer.parseInt(valor.getText()))); lugar = listas.getTypeList().size()-1; listas.getTypeList().get(lugar).setNome((string)); listas.getTypeList().get(lugar).setTipo("inteiro"); } if (intervalo.isSelected()){ String menor = this.min.getText(); String maior =this.max.getText(); listas.getTypeList().add(new IntervalType(Integer.parseInt(menor), Integer.parseInt(maior))); lugar = listas.getTypeList().size()-1; listas.getTypeList().get(lugar).setTipo("intervalo"); listas.getTypeList().get(lugar).setNome(string); } if(Datatype.isSelected()){ listas.getTypeList().add(new Datatype(lista)); lugar = listas.getTypeList().size()-1; listas.getTypeList().get(lugar).setTipo("datatype"); listas.getTypeList().get(lugar).setNome(string); } } else{ string = this.nameType.getText(); int lugar = local; if (bool.isSelected()){ System.out.println("bool selected"); listas.getTypeList().set(lugar, new BoolType()); listas.getTypeList().get(lugar).setNome(string); listas.getTypeList().get(lugar).setTipo("boolean"); } if(inteiro.isSelected()){ listas.getTypeList().set(lugar, new IntType(Integer.parseInt(valor.getText()))); listas.getTypeList().get(lugar).setNome(string); listas.getTypeList().get(lugar).setTipo("intervalo"); } if (intervalo.isSelected()){ System.out.println("interval selected"); String menor = this.min.getText(); String maior =this.max.getText(); listas.getTypeList().set(lugar, new IntervalType(Integer.parseInt(menor), Integer.parseInt(maior))); listas.getTypeList().get(lugar).setTipo("intervalo"); listas.getTypeList().get(lugar).setNome(string); } if(Datatype.isSelected()){ System.out.println("datatype selected"); listas.getTypeList().set(lugar, new Datatype(lista)); listas.getTypeList().get(lugar).setTipo("datatype"); listas.getTypeList().get(lugar).setNome(string); } } } public boolean verificaNome(){ for(int j = 0; j0){ tmTipo.removeRow(0); } if (lista.isEmpty()){ //JOptionPane.showMessageDialog(null, TelaInicial.inter.retornarMensagem("COD0032")); } else{ String[] linha = new String[] {null, null}; for(int j = 0; j < lista.size(); j++){ tmTipo.addRow(linha); tmTipo.setValueAt(lista.get(j).getName(), j, 0); tmTipo.setValueAt(lista.get(j).getType(), j, 1); } } } private void verificaEdicao() { if (edicao == true && local > -1){ if (listas.getTypeList().get(local).getClass().isAssignableFrom(Datatype.class)){ Datatype data = null; data = (Datatype) listas.getTypeList().get(local); Datatype.setSelected(true); String[] linha = new String[] {null, null}; for (int i = 0; i< data.getDatatype().size(); i++){ tmTipo.addRow(linha); tmTipo.setValueAt(data.getDatatype().get(i).getName(), i, 0); tmTipo.setValueAt(data.getDatatype().get(i).getType(), i, 1); } } if (listas.getTypeList().get(local).getClass().isAssignableFrom(IntType.class)){ IntType Inteiro = null; Inteiro = (IntType) listas.getTypeList().get(local); inteiro.setSelected(true); valor.setText(Integer.toString(Inteiro.getValor())); } if (listas.getTypeList().get(local) instanceof IntervalType){ IntervalType inter = null; inter = (IntervalType) listas.getTypeList().get(local); intervalo.setSelected(true); min.setText(Integer.toString(inter.getMim())); max.setText(Integer.toString(inter.getMax())); } if (listas.getTypeList().get(local).getClass().isAssignableFrom(BoolType.class)){ bool.setSelected(true); } nameType.setText(listas.getTypeList().get(local).getNome()); selecao(); } } public void selecao(){ if(bool.isSelected()){ min.setEnabled(false); max.setEnabled(false); name.setEnabled(false); type.setEnabled(false); constructor.setEnabled(false); insere.setEnabled(false); retira.setEnabled(false); valor.setEnabled(false); } if(intervalo.isSelected()){ min.setEnabled(true); max.setEnabled(true); name.setEnabled(false); type.setEnabled(false); constructor.setEnabled(false); insere.setEnabled(false); retira.setEnabled(false); valor.setEnabled(false); } if(Datatype.isSelected()){ min.setEnabled(false); max.setEnabled(false); name.setEnabled(true); type.setEnabled(true); constructor.setEnabled(true); insere.setEnabled(true); retira.setEnabled(true); valor.setEnabled(false); } if (inteiro.isSelected()){ min.setEnabled(false); max.setEnabled(false); name.setEnabled(false); type.setEnabled(false); constructor.setEnabled(false); insere.setEnabled(false); retira.setEnabled(false); valor.setEnabled(true); } } public void bundleButtons(){ nomeType.setText(inter.retornarMensagem("COD0032")); bool.setText(inter.retornarMensagem("COD0016")); intervalo.setText(inter.retornarMensagem("COD0017")); nomeData.setText(inter.retornarMensagem("COD0032")); tipoData.setText(inter.retornarMensagem("COD0001")); constructor.setText(inter.retornarMensagem("COD0015")); insere.setText(inter.retornarMensagem("COD0031")); retira.setText(inter.retornarMensagem("COD0021")); cancelar.setText(inter.retornarMensagem("COD0026")); concluir.setText(inter.retornarMensagem("COD0025")); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JRadioButton Datatype; private javax.swing.JRadioButton bool; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JButton cancelar; private javax.swing.JButton concluir; private javax.swing.JCheckBox constructor; private javax.swing.JTable datas; private javax.swing.JButton insere; private javax.swing.JRadioButton inteiro; private javax.swing.JRadioButton intervalo; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTextField max; private javax.swing.JTextField min; private javax.swing.JTextField name; private javax.swing.JTextField nameType; private javax.swing.JLabel nomeData; private javax.swing.JLabel nomeType; private javax.swing.JButton retira; private javax.swing.JLabel tipoData; private javax.swing.JTextField type; private javax.swing.JTextField valor; // End of variables declaration//GEN-END:variables }