From 64fcda45126be25d13758f6243fd8a5445611f54 Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Wed, 21 Jun 2023 04:05:50 -0300 Subject: [PATCH 01/14] Replace Magic Number with Symbolic Constant - 1 --- .../com/sige/gui/candidato/DialogoCadastrarCandidato.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java index 8aadadb..57c19b2 100644 --- a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java +++ b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java @@ -62,7 +62,8 @@ public DialogoCadastrarCandidato(String numero, String nome, String partido, Str NumeroAlterar = Integer.parseInt(numero); cargoAlterar = cargo; - JPanel painelNorte = new JPanel(new GridLayout(4,0)); + private static final int NUMERO_DE_LINHAS = 4; + JPanel painelNorte = new JPanel(new GridLayout(NUMERO_DE_LINHAS,0)); JPanel painelNome = new JPanel(); fieldNome = new JTextField(25); @@ -116,7 +117,7 @@ public void actionPerformed(ActionEvent arg0) { JPanel painelNumero = new JPanel(); fieldNumero = new JTextField(13); - fieldNumero.setToolTipText("Descreva Aqui o Numero de Eleição do Candidato."); + fieldNumero.setToolTipText("Descreva Aqui o Numero de Elei��o do Candidato."); fieldNumero.setDocument(new SomenteNumeros()); botaoAbrirImagem = new JButton("FOTO", new ImageIcon(getClass().getResource("/icones/abrir.png"))); @@ -244,7 +245,7 @@ public void addFotoCandidato(String caminhoFoto) { * de dialogo. * * @return String com o nome do arquivo a ser aberto. - * Se o usuário cancelar a operacao (clicar no botao "Cancelar") sera + * Se o usu�rio cancelar a operacao (clicar no botao "Cancelar") sera * retornado null. * * @see java.awt.Component From 9d23494309f7b16b423121711d6e0bad7f64daff Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Wed, 21 Jun 2023 05:07:10 -0300 Subject: [PATCH 02/14] Replace Magic Number with Symbolic Constant - 1 --- .../src/com/sige/gui/candidato/DialogoCadastrarCandidato.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java index 57c19b2..000b745 100644 --- a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java +++ b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java @@ -65,8 +65,10 @@ public DialogoCadastrarCandidato(String numero, String nome, String partido, Str private static final int NUMERO_DE_LINHAS = 4; JPanel painelNorte = new JPanel(new GridLayout(NUMERO_DE_LINHAS,0)); + private static final int TAMANHO_MAXIMO_NOME = 25; + JPanel painelNome = new JPanel(); - fieldNome = new JTextField(25); + fieldNome = new JTextField(TAMANHO_MAXIMO_NOME); fieldNome.setToolTipText("Descreva Aqui o Nome Completo do Candidato."); fieldNome.setDocument(new TamanhoMaximo(30)); painelNome.add(new JLabel("Nome ")); From f499d6a1668361bdb6ae05ac43643f7e5affc434 Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Wed, 21 Jun 2023 05:17:28 -0300 Subject: [PATCH 03/14] Replace Magic Number with Symbolic Constant - 1 --- .../sige/gui/candidato/DialogoCadastrarCandidato.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java index 000b745..b07102d 100644 --- a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java +++ b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java @@ -61,16 +61,20 @@ public DialogoCadastrarCandidato(String numero, String nome, String partido, Str TratadorEventosCadastroCandidato tratadorEventos = new TratadorEventosCadastroCandidato(this); NumeroAlterar = Integer.parseInt(numero); cargoAlterar = cargo; - + private static final int NUMERO_DE_LINHAS = 4; + private static final int TAMANHO_MAXIMO_NOME = 25; + private static final int TAMANHO_MAXIMO_DOCUMENTO = 30; + + JPanel painelNorte = new JPanel(new GridLayout(NUMERO_DE_LINHAS,0)); - private static final int TAMANHO_MAXIMO_NOME = 25; + JPanel painelNome = new JPanel(); fieldNome = new JTextField(TAMANHO_MAXIMO_NOME); fieldNome.setToolTipText("Descreva Aqui o Nome Completo do Candidato."); - fieldNome.setDocument(new TamanhoMaximo(30)); + fieldNome.setDocument(new TamanhoMaximo(TAMANHO_MAXIMO_DOCUMENTO); painelNome.add(new JLabel("Nome ")); painelNome.add(fieldNome); From 10eeb545e68f0352fe9310f23ec388085f8df55a Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Wed, 21 Jun 2023 05:27:53 -0300 Subject: [PATCH 04/14] Replace Magic Number with Symbolic Constant - 1 --- .../src/com/sige/gui/candidato/DialogoCadastrarCandidato.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java index b07102d..3ae907c 100644 --- a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java +++ b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java @@ -65,6 +65,7 @@ public DialogoCadastrarCandidato(String numero, String nome, String partido, Str private static final int NUMERO_DE_LINHAS = 4; private static final int TAMANHO_MAXIMO_NOME = 25; private static final int TAMANHO_MAXIMO_DOCUMENTO = 30; + private static final int TAMANHO_CAMPO_CARGO = 21; JPanel painelNorte = new JPanel(new GridLayout(NUMERO_DE_LINHAS,0)); @@ -82,7 +83,7 @@ public DialogoCadastrarCandidato(String numero, String nome, String partido, Str painelNorte.add(painelNome); JPanel painelCargo = new JPanel(); - cargoField = new JTextField(21); + cargoField = new JTextField(TAMANHO_CAMPO_CARGO); cargoField.setEditable(false); botaoPesquisaCargo = new JButton(); botaoPesquisaCargo.setIcon(new ImageIcon(getClass().getResource("/icones/pesquisar.png"))); From 7174dcb8a4633bf9f76266e73b5a57a5248ff0b6 Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Wed, 21 Jun 2023 06:00:50 -0300 Subject: [PATCH 05/14] Consolidate Conditional Expression - 1 --- .../candidato/DialogoConsultarCandidato.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/source/src/com/sige/gui/candidato/DialogoConsultarCandidato.java b/source/src/com/sige/gui/candidato/DialogoConsultarCandidato.java index 29cc0fa..c347859 100644 --- a/source/src/com/sige/gui/candidato/DialogoConsultarCandidato.java +++ b/source/src/com/sige/gui/candidato/DialogoConsultarCandidato.java @@ -39,7 +39,7 @@ public class DialogoConsultarCandidato extends JDialog { /** * Este e o construtor. Ele constroi a interface grafica do dialogo consultar candidato. * - * @param janelaPrincipal um JanelaPrincipal com a referência da janela pai. + * @param janelaPrincipal um JanelaPrincipal com a refer�ncia da janela pai. */ public DialogoConsultarCandidato(JanelaPrincipal janelaPrincipal) { @@ -92,12 +92,21 @@ public DialogoConsultarCandidato(JanelaPrincipal janelaPrincipal) { tabelaCandidatos = new JTable(new DefaultTableModel(dadosTabela, colunasTabela)){ private static final long serialVersionUID = 5727320816550514929L; - public boolean isCellEditable(int rowIndex, int colIndex) { - if (colIndex == getColumn("Numero").getModelIndex() || colIndex == getColumn("Nome").getModelIndex() - || colIndex == getColumn("Partido").getModelIndex() || colIndex == getColumn("Cargo").getModelIndex()) - return false; // Evita a edicao das celulas. - else - return true; + TableColumn numeroColumn = getColumn("Numero"); + TableColumn nomeColumn = getColumn("Nome"); + TableColumn partidoColumn = getColumn("Partido"); + TableColumn cargoColumn = getColumn("Cargo"); + + boolean isColumnValid = (colIndex == numeroColumn.getModelIndex()) || + (colIndex == nomeColumn.getModelIndex()) || + (colIndex == partidoColumn.getModelIndex()) || + (colIndex == cargoColumn.getModelIndex()); + + if (isColumnValid) { + return false; + } + else{ + return true; } }; tabelaCandidatos.setPreferredScrollableViewportSize(new Dimension(420, 230)); From 566423a7f803194586d18d3a932cad520150a3db Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Wed, 21 Jun 2023 10:47:55 -0300 Subject: [PATCH 06/14] Introduce Parameter Object - 1 --- source/src/com/sige/gui/ShadowBorder.java | 46 ++++++------- .../sige/gui/ajuda/ParameterShadowBorder.java | 65 +++++++++++++++++++ 2 files changed, 88 insertions(+), 23 deletions(-) create mode 100644 source/src/com/sige/gui/ajuda/ParameterShadowBorder.java diff --git a/source/src/com/sige/gui/ShadowBorder.java b/source/src/com/sige/gui/ShadowBorder.java index 4ebdc39..601c475 100644 --- a/source/src/com/sige/gui/ShadowBorder.java +++ b/source/src/com/sige/gui/ShadowBorder.java @@ -8,30 +8,30 @@ import javax.swing.border.AbstractBorder; public class ShadowBorder extends AbstractBorder { - private static final long serialVersionUID = 1L; - private static final int RADIUS = 5; + private static final long serialVersionUID = 1L; + private static final int RADIUS = 5; - @Override - public boolean isBorderOpaque() { - return false; - } + @Override + public boolean isBorderOpaque() { + return false; + } - @Override - public Insets getBorderInsets(Component c) { - return new Insets(RADIUS, RADIUS, RADIUS, RADIUS); - } + @Override + public Insets getBorderInsets(Component c) { + return new Insets(RADIUS, RADIUS, RADIUS, RADIUS); + } - @Override - public Insets getBorderInsets(Component c, Insets insets) { - insets.top = RADIUS; - insets.left = RADIUS; - insets.bottom = RADIUS; - insets.right = RADIUS; - return insets; - } + @Override + public Insets getBorderInsets(Component c, Insets insets) { + insets.top = RADIUS; + insets.left = RADIUS; + insets.bottom = RADIUS; + insets.right = RADIUS; + return insets; + } - @Override - public void paintBorder(Component component, Graphics g, int j, int k, int l, int i1){ - g.setColor(Color.RED); - } -} + @Override + public void paintBorder(ParameterShadowBorder parameterShadowBorder){ + parameterShadowBorder.setGraphics(setColor(Color.RED)); + } +} \ No newline at end of file diff --git a/source/src/com/sige/gui/ajuda/ParameterShadowBorder.java b/source/src/com/sige/gui/ajuda/ParameterShadowBorder.java new file mode 100644 index 0000000..7feccce --- /dev/null +++ b/source/src/com/sige/gui/ajuda/ParameterShadowBorder.java @@ -0,0 +1,65 @@ +package com.sige.gui.ajuda; + +public class ParameterShadowBorder { + private Component component; + private Graphics exp; + private int j; + private int k; + private int l; + private int i1; + + public ParameterShadowBorder (Component _component, Graphics _g, int _j, int _k, int _l, int _i1){ + this.component = _component; + this.g = _g; + this.j = _j; + this.k = _k; + this.l = _l; + this.i1 = _i1; + } + public void setComponent(Component comp){ + this.component = comp; + } + + public Component getComponent(Component comp){ + return this.component; + } + public void setGraphics(Graphics g ){ + this.g = g; + } + + public Graphics getGraphics(Graphics g){ + return this.g; + } + + public void setJ(int j){ + this.j = j; + } + + public int getJ(int j){ + return this.j; + } + + public void setK(int k ){ + this.k = k; + } + + public int getK(int k){ + return this.k; + } + + public void setL(int l ){ + this.l = l; + } + + public int getL(int l){ + return this.l; + } + + public void setI(int i ){ + this.i1 = i; + } + + public int getI(int i){ + return this.i1; + } +} \ No newline at end of file From 0787c612dfe0ae98a9fcf6baffa647aeeb653cf6 Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Wed, 21 Jun 2023 11:05:43 -0300 Subject: [PATCH 07/14] Introduce Parameter Object - 1 --- source/src/com/sige/gui/ajuda/ParameterShadowBorder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/src/com/sige/gui/ajuda/ParameterShadowBorder.java b/source/src/com/sige/gui/ajuda/ParameterShadowBorder.java index 7feccce..509c3ab 100644 --- a/source/src/com/sige/gui/ajuda/ParameterShadowBorder.java +++ b/source/src/com/sige/gui/ajuda/ParameterShadowBorder.java @@ -2,7 +2,7 @@ public class ParameterShadowBorder { private Component component; - private Graphics exp; + private Graphics g; private int j; private int k; private int l; From 44827576fc0affbffbc1c75550486da5f023645a Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Tue, 27 Jun 2023 11:45:41 -0300 Subject: [PATCH 08/14] Introduce Parameter Object - 1 --- source/src/com/sige/gui/ShadowBorder.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/src/com/sige/gui/ShadowBorder.java b/source/src/com/sige/gui/ShadowBorder.java index 601c475..e208b0d 100644 --- a/source/src/com/sige/gui/ShadowBorder.java +++ b/source/src/com/sige/gui/ShadowBorder.java @@ -32,6 +32,8 @@ public Insets getBorderInsets(Component c, Insets insets) { @Override public void paintBorder(ParameterShadowBorder parameterShadowBorder){ - parameterShadowBorder.setGraphics(setColor(Color.RED)); + Graphics g = parameterShadowBorder.getGraphics(); + g.setColor(Color.RED); + parameterShadowBorder.setGraphics(g) } } \ No newline at end of file From c8369992f13bb93e93829659c65aed2b102b66bc Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Tue, 27 Jun 2023 12:08:45 -0300 Subject: [PATCH 09/14] Consolidate Conditional Expression - 1 --- .../sige/gui/partido/DialogoConsultarPartido.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/source/src/com/sige/gui/partido/DialogoConsultarPartido.java b/source/src/com/sige/gui/partido/DialogoConsultarPartido.java index 5774332..f22c557 100644 --- a/source/src/com/sige/gui/partido/DialogoConsultarPartido.java +++ b/source/src/com/sige/gui/partido/DialogoConsultarPartido.java @@ -70,10 +70,15 @@ public DialogoConsultarPartido(int opcao, String titulo) { tabelaPartidos = new JTable(new DefaultTableModel(dadosTabela, colunasTabela)){ private static final long serialVersionUID = 5727320816550514929L; public boolean isCellEditable(int rowIndex, int colIndex) { - if (colIndex == getColumn("Numero").getModelIndex() || colIndex == getColumn("Nome").getModelIndex() || colIndex == getColumn("Sigla").getModelIndex()) - return false; // Evita a edicao das celulas. - else - return true; + int numeroColumnIndex = getColumn("Numero").getModelIndex(); + int nomeColumnIndex = getColumn("Nome").getModelIndex(); + int siglaColumnIndex = getColumn("Sigla").getModelIndex(); + + boolean isEditable = (colIndex == numeroColumnIndex) || + (colIndex == nomeColumnIndex) || + (colIndex == siglaColumnIndex); + + return !isEditable; } }; tabelaPartidos.setPreferredScrollableViewportSize(new Dimension(390, 250)); From c7c2efd67f91b85c71eee6445c495e0216b0be76 Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Tue, 27 Jun 2023 14:57:30 -0300 Subject: [PATCH 10/14] Extract Method - 14 --- .../candidato/DialogoCadastrarCandidato.java | 240 ++++++++++-------- 1 file changed, 128 insertions(+), 112 deletions(-) diff --git a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java index 3ae907c..9e318cd 100644 --- a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java +++ b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java @@ -61,161 +61,177 @@ public DialogoCadastrarCandidato(String numero, String nome, String partido, Str TratadorEventosCadastroCandidato tratadorEventos = new TratadorEventosCadastroCandidato(this); NumeroAlterar = Integer.parseInt(numero); cargoAlterar = cargo; - - private static final int NUMERO_DE_LINHAS = 4; - private static final int TAMANHO_MAXIMO_NOME = 25; - private static final int TAMANHO_MAXIMO_DOCUMENTO = 30; - private static final int TAMANHO_CAMPO_CARGO = 21; + final int NUMERO_DE_LINHAS = 4; + final int TAMANHO_MAXIMO_NOME = 25; + final int TAMANHO_MAXIMO_DOCUMENTO = 30; + final int TAMANHO_CAMPO_CARGO = 21; - JPanel painelNorte = new JPanel(new GridLayout(NUMERO_DE_LINHAS,0)); + JPanel painelNorte = criarPainelNorte(numero, nome, partido, cargo, tratadorEventos, NUMERO_DE_LINHAS, TAMANHO_MAXIMO_NOME, + TAMANHO_MAXIMO_DOCUMENTO, TAMANHO_CAMPO_CARGO); - + JPanel painelCentro = criarPainelCentro(caminhoFoto); - JPanel painelNome = new JPanel(); - fieldNome = new JTextField(TAMANHO_MAXIMO_NOME); - fieldNome.setToolTipText("Descreva Aqui o Nome Completo do Candidato."); - fieldNome.setDocument(new TamanhoMaximo(TAMANHO_MAXIMO_DOCUMENTO); - painelNome.add(new JLabel("Nome ")); - painelNome.add(fieldNome); + JPanel painelBotoes = criarPainelBotoes(tratadorEventos); - // Adiciona o painelNome e todo seu conteudo ao painelNorte. + configurarDialogo(painelNorte, painelCentro, painelBotoes); + + pack(); + setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/icones/icone.png"))); + setLocationRelativeTo(null); + setModal(true); + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + setResizable(false); + setVisible(true); + } + + private JPanel criarPainelNorte(String numero, String nome, String partido, String cargo, + TratadorEventosCadastroCandidato tratadorEventos, + int numLinhas, int tamMaxNome, int tamMaxDocumento, int tamCampoCargo) { + JPanel painelNorte = new JPanel(new GridLayout(numLinhas, 0)); + + JPanel painelNome = criarPainelCampo("Nome", nome, tamMaxNome); painelNorte.add(painelNome); + JPanel painelCargo = criarPainelCampoCargo(cargo, tamCampoCargo, tratadorEventos); + painelNorte.add(painelCargo); + + JPanel painelPartido = criarPainelCampoPartido(partido, tratadorEventos); + painelNorte.add(painelPartido); + + JPanel painelNumero = criarPainelCampoNumero(numero); + painelNorte.add(painelNumero); + + return painelNorte; + } + + private JPanel criarPainelCampo(String labelCampo, String valorInicial, int tamanhoMaximo) { + JPanel painelCampo = new JPanel(); + JTextField textField = new JTextField(tamanhoMaximo); + textField.setToolTipText("Descreva aqui o " + labelCampo + " Completo do Candidato."); + textField.setDocument(new TamanhoMaximo(tamanhoMaximo)); + textField.setText(valorInicial); + painelCampo.add(new JLabel(labelCampo + " ")); + painelCampo.add(textField); + return painelCampo; + } + + private JPanel criarPainelCampoCargo(String cargo, int tamanhoCampoCargo, + TratadorEventosCadastroCandidato tratadorEventos) { JPanel painelCargo = new JPanel(); - cargoField = new JTextField(TAMANHO_CAMPO_CARGO); + cargoField = new JTextField(tamanhoCampoCargo); cargoField.setEditable(false); - botaoPesquisaCargo = new JButton(); - botaoPesquisaCargo.setIcon(new ImageIcon(getClass().getResource("/icones/pesquisar.png"))); - botaoPesquisaCargo.setPreferredSize(new Dimension(30,30)); - botaoPesquisaCargo.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); - botaoPesquisaCargo.setToolTipText("Clique aqui para selecionar um cargo."); + botaoPesquisaCargo = criarBotaoPesquisa("/icones/pesquisar.png", "Clique aqui para selecionar um cargo", tratadorEventos); painelCargo.add(new JLabel(" Cargo ")); painelCargo.add(cargoField); painelCargo.add(botaoPesquisaCargo); - botaoPesquisaCargo.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - new LookUpCargo(getThis(),getThis().getCargoField()); - } - }); - - // Adiciona o painelCargo e todo seu conteudo ao painelNorte. - painelNorte.add(painelCargo); + return painelCargo; + } + private JPanel criarPainelCampoPartido(String partido, TratadorEventosCadastroCandidato tratadorEventos) { JPanel painelPartido = new JPanel(); partidoField = new JTextField(21); partidoField.setEditable(false); - botaoPesquisaPartido = new JButton(); - botaoPesquisaPartido.setIcon(new ImageIcon(getClass().getResource("/icones/pesquisar.png"))); - botaoPesquisaPartido.setPreferredSize(new Dimension(30,30)); - botaoPesquisaPartido.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); - botaoPesquisaPartido.setToolTipText("Clique aqui para selecionar um cargo."); + botaoPesquisaPartido = criarBotaoPesquisa("/icones/pesquisar.png", "Clique aqui para selecionar um partido", tratadorEventos); painelPartido.add(new JLabel(" Partido ")); painelPartido.add(partidoField); painelPartido.add(botaoPesquisaPartido); - botaoPesquisaPartido.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - new LookUpPartido(getThis(),getThis().getPartidoField()); - } - }); - - // Adiciona o painelPartido e todo seu conteudo ao painelNorte. - painelNorte.add(painelPartido); + return painelPartido; + } + private JPanel criarPainelCampoNumero(String numero) { JPanel painelNumero = new JPanel(); fieldNumero = new JTextField(13); - fieldNumero.setToolTipText("Descreva Aqui o Numero de Elei��o do Candidato."); + fieldNumero.setToolTipText("Descreva aqui o Número de Eleição do Candidato."); fieldNumero.setDocument(new SomenteNumeros()); - - botaoAbrirImagem = new JButton("FOTO", new ImageIcon(getClass().getResource("/icones/abrir.png"))); + fieldNumero.setText(numero); + botaoAbrirImagem = criarBotaoAbrirImagem(); + painelNumero.add(new JLabel("Número")); + painelNumero.add(fieldNumero); + painelNumero.add(botaoAbrirImagem); + return painelNumero; + } + + private JButton criarBotaoPesquisa(String iconePath, String tooltip, TratadorEventosCadastroCandidato tratadorEventos) { + JButton botaoPesquisa = new JButton(); + botaoPesquisa.setIcon(new ImageIcon(getClass().getResource(iconePath))); + botaoPesquisa.setPreferredSize(new Dimension(30, 30)); + botaoPesquisa.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); + botaoPesquisa.setToolTipText(tooltip); + botaoPesquisa.addActionListener(tratadorEventos); + return botaoPesquisa; + } + + private JButton criarBotaoAbrirImagem() { + JButton botaoAbrirImagem = new JButton("FOTO", new ImageIcon(getClass().getResource("/icones/abrir.png"))); botaoAbrirImagem.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 14)); botaoAbrirImagem.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); - botaoAbrirImagem.setToolTipText("Selecione Aqui a Foto do Candidato."); + botaoAbrirImagem.setToolTipText("Selecione aqui a foto do candidato."); botaoAbrirImagem.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent arg0) { - String caminhoFoto = dialogoAbrirArquivo(getThis(),"Selecionar Foto"); + String caminhoFoto = dialogoAbrirArquivo(getThis(), "Selecionar Foto"); if (caminhoFoto != null) { addFotoCandidato(caminhoFoto); } } }); - - painelNumero.add(new JLabel("Numero")); - painelNumero.add(fieldNumero); - painelNumero.add(botaoAbrirImagem); - painelNorte.add(painelNumero); - - // Adiciona o painelNorte no centro do DialogoCadastrarCandidato. - add(painelNorte, BorderLayout.NORTH); + return botaoAbrirImagem; + } + private JPanel criarPainelCentro(String caminhoFoto) { JPanel painelCentro = new JPanel(); - - JPanel painelBotoes = new JPanel(); - botaoGravar = new JButton("GRAVAR", new ImageIcon(getClass().getResource("/icones/gravar.png"))); - botaoGravar.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 14)); - botaoGravar.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); - botaoGravar.addActionListener(tratadorEventos); - - painelBotoes.add(botaoGravar); - - // Verifica se sera um cadastro ou alteracao de candidato. - if (NumeroAlterar == -1) { - - // Caso seja um cadastro adiciona a imagem, uma imagem default de cadastro e seta o titulo para Cadastro. - caminhoImagem = "/icones/cadastro.png"; - setTitle("Cadastro de Candidato"); - - botaoCancelar = new JButton("CANCELAR", new ImageIcon(getClass().getResource("/icones/cancelar.png"))); - botaoCancelar.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 14)); - botaoCancelar.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); - botaoCancelar.addActionListener(tratadorEventos); - - painelBotoes.add(botaoCancelar); - } - else { - - // Caso seja uma alteracao, adiciona todas as informacoes do candidato aos objetos e seta o titulo para alteracao. - setTitle("Alteracao de Candidato"); - caminhoImagem = caminhoFoto; - fieldNumero.setText(numero); - fieldNome.setText(nome); - cargoField.setText(cargo); - partidoField.setText(partido); - - botaoExcluir = new JButton("EXCLUIR", new ImageIcon(getClass().getResource("/icones/excluir.png"))); - botaoExcluir.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 14)); - botaoExcluir.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); - botaoExcluir.addActionListener(tratadorEventos); - - painelBotoes.add(botaoExcluir); - } - - // Adiciona o painelBotoes ao sul do DialogoCadastrarCandidato. - add(painelBotoes, BorderLayout.SOUTH); - Image img; - if (caminhoImagem.equalsIgnoreCase("/icones/cadastro.png")) - img = Toolkit.getDefaultToolkit().getImage(getClass().getResource(caminhoImagem)); + if (caminhoFoto.equalsIgnoreCase("/icones/cadastro.png")) + img = Toolkit.getDefaultToolkit().getImage(getClass().getResource(caminhoFoto)); else - img = Toolkit.getDefaultToolkit().getImage(caminhoImagem); - Image menor = img.getScaledInstance(200, 200, Image.SCALE_DEFAULT); + img = Toolkit.getDefaultToolkit().getImage(caminhoFoto); + Image menor = img.getScaledInstance(200, 200, Image.SCALE_DEFAULT); FotoCandidato = new ImageIcon(menor); JLabel labelFoto = new JLabel(FotoCandidato); - - // Adiciona o labelFoto ao painelCentro. painelCentro.add(labelFoto); + return painelCentro; + } + + private JPanel criarPainelBotoes(TratadorEventosCadastroCandidato tratadorEventos) { + JPanel painelBotoes = new JPanel(); + botaoGravar = criarBotao("GRAVAR", "/icones/gravar.png", tratadorEventos); + painelBotoes.add(botaoGravar); + botaoCancelar = criarBotao("CANCELAR", "/icones/cancelar.png", tratadorEventos); + painelBotoes.add(botaoCancelar); + return painelBotoes; + } - // Adiciona o painelCentro no centro do DialogoCadastrarCandidato. + private JButton criarBotao(String texto, String iconePath, TratadorEventosCadastroCandidato tratadorEventos) { + JButton botao = new JButton(texto, new ImageIcon(getClass().getResource(iconePath))); + botao.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 14)); + botao.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); + botao.addActionListener(tratadorEventos); + return botao; + } + + private void configurarDialogo(JPanel painelNorte, JPanel painelCentro, JPanel painelBotoes) { + setLayout(new BorderLayout()); + add(painelNorte, BorderLayout.NORTH); add(painelCentro, BorderLayout.CENTER); + add(painelBotoes, BorderLayout.SOUTH); + } - pack(); - setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/icones/icone.png"))); - setLocationRelativeTo(null); - setModal(true); - setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); - setResizable(false); - setVisible(true); + private String dialogoAbrirArquivo(Component parent, String titulo) { + JFileChooser fileChooser = new JFileChooser(); + FileNameExtensionFilter filtro = new FileNameExtensionFilter("Imagens", "jpg", "jpeg", "png", "gif"); + fileChooser.setFileFilter(filtro); + int returnVal = fileChooser.showOpenDialog(parent); + if (returnVal == JFileChooser.APPROVE_OPTION) { + File arquivo = fileChooser.getSelectedFile(); + return arquivo.getPath(); + } + return null; } + + private DialogoCadastrarCandidato getThis() { + return this; + } + /** * Este metodo retorna a referencia da propria classe. From 0bf44eac731b702a8759db3aa8b16b2cf0ee4cc4 Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Tue, 27 Jun 2023 14:58:33 -0300 Subject: [PATCH 11/14] Extract Method - 14 --- source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java | 1 + 1 file changed, 1 insertion(+) diff --git a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java index 9e318cd..5bdb9ff 100644 --- a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java +++ b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java @@ -184,6 +184,7 @@ private JPanel criarPainelCentro(String caminhoFoto) { if (caminhoFoto.equalsIgnoreCase("/icones/cadastro.png")) img = Toolkit.getDefaultToolkit().getImage(getClass().getResource(caminhoFoto)); else + img = Toolkit.getDefaultToolkit().getImage(caminhoFoto); Image menor = img.getScaledInstance(200, 200, Image.SCALE_DEFAULT); FotoCandidato = new ImageIcon(menor); From ef99a1ea36b44a93703bf3fd98e7df5666cc2216 Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Tue, 27 Jun 2023 17:02:29 -0300 Subject: [PATCH 12/14] Replace Parameter with Method Call - 1 --- source/src/com/sige/gui/Janela.java | 45 ++++++++++++++--------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/source/src/com/sige/gui/Janela.java b/source/src/com/sige/gui/Janela.java index 91e7b14..6a03187 100644 --- a/source/src/com/sige/gui/Janela.java +++ b/source/src/com/sige/gui/Janela.java @@ -45,29 +45,28 @@ public static URL getResource(String enderecoArquivo){ * @return String com o endere�o do arquivo selecionado, caso nenhum arquivo seja selecionado, � retornado null * @see JFileChooser */ - public static String janelaAbrirArquivo(Component componentePai, String titulo, String diretorioCorrente, boolean opcaoTodosArquivos, String nomeFiltro, String... extensao){ - JFileChooser janelaAbrir = new JFileChooser(titulo); - - janelaAbrir.setAcceptAllFileFilterUsed(false); - janelaAbrir.setDialogType(JFileChooser.OPEN_DIALOG); - janelaAbrir.setFileSelectionMode(JFileChooser.FILES_ONLY); - janelaAbrir.setDialogTitle(titulo); - janelaAbrir.setFileFilter(new FileNameExtensionFilter(nomeFiltro, extensao)); - janelaAbrir.setAcceptAllFileFilterUsed(opcaoTodosArquivos); - - if(diretorioCorrente != null){ - if (diretorioCorrente.isEmpty()){ - janelaAbrir.setCurrentDirectory(new File(".")); - } - else{ - janelaAbrir.setCurrentDirectory(new File(diretorioCorrente)); - } - } - - janelaAbrir.showOpenDialog(componentePai); - - return janelaAbrir.getSelectedFile() != null ? janelaAbrir.getSelectedFile().getPath() : null; - } + public static String janelaAbrirArquivo(OpcoesSelecaoArquivo opcoes) { + JFileChooser janelaAbrir = new JFileChooser(opcoes.getTitulo()); + + janelaAbrir.setAcceptAllFileFilterUsed(false); + janelaAbrir.setDialogType(JFileChooser.OPEN_DIALOG); + janelaAbrir.setFileSelectionMode(JFileChooser.FILES_ONLY); + janelaAbrir.setDialogTitle(opcoes.getTitulo()); + janelaAbrir.setFileFilter(new FileNameExtensionFilter(opcoes.getNomeFiltro(), opcoes.getExtensao())); + janelaAbrir.setAcceptAllFileFilterUsed(opcoes.isOpcaoTodosArquivos()); + + if (opcoes.getDiretorioCorrente() != null) { + if (opcoes.getDiretorioCorrente().isEmpty()) { + janelaAbrir.setCurrentDirectory(new File(".")); + } else { + janelaAbrir.setCurrentDirectory(new File(opcoes.getDiretorioCorrente())); + } + } + + janelaAbrir.showOpenDialog(opcoes.getComponentePai()); + + return janelaAbrir.getSelectedFile() != null ? janelaAbrir.getSelectedFile().getPath() : null; +} /** * Exibe uma caixa de dialogo javax.swing.JFileChooser para From 11493bce4f7bf7edcd9137e1b21803febc608818 Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Tue, 27 Jun 2023 17:10:37 -0300 Subject: [PATCH 13/14] =?UTF-8?q?Introduce=20Parameter=20Object=20-=201,?= =?UTF-8?q?=20adi=C3=A7=C3=A3o=20do=20objeto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sige/gui/ajuda/OpcoesSelecaoArquivo.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 source/src/com/sige/gui/ajuda/OpcoesSelecaoArquivo.java diff --git a/source/src/com/sige/gui/ajuda/OpcoesSelecaoArquivo.java b/source/src/com/sige/gui/ajuda/OpcoesSelecaoArquivo.java new file mode 100644 index 0000000..3292be6 --- /dev/null +++ b/source/src/com/sige/gui/ajuda/OpcoesSelecaoArquivo.java @@ -0,0 +1,56 @@ +public class OpcoesSelecaoArquivo { + private Component componentePai; + private String titulo; + private String diretorioCorrente; + private boolean opcaoTodosArquivos; + private String nomeFiltro; + private String[] extensao; + + public Component getComponentePai() { + return componentePai; + } + + public void setComponentePai(Component componentePai) { + this.componentePai = componentePai; + } + + public String getTitulo() { + return titulo; + } + + public void setTitulo(String titulo) { + this.titulo = titulo; + } + + public String getDiretorioCorrente() { + return diretorioCorrente; + } + + public void setDiretorioCorrente(String diretorioCorrente) { + this.diretorioCorrente = diretorioCorrente; + } + + public boolean isOpcaoTodosArquivos() { + return opcaoTodosArquivos; + } + + public void setOpcaoTodosArquivos(boolean opcaoTodosArquivos) { + this.opcaoTodosArquivos = opcaoTodosArquivos; + } + + public String getNomeFiltro() { + return nomeFiltro; + } + + public void setNomeFiltro(String nomeFiltro) { + this.nomeFiltro = nomeFiltro; + } + + public String[] getExtensao() { + return extensao; + } + + public void setExtensao(String[] extensao) { + this.extensao = extensao; + } +} From f19558c8c41b167e373cda5550976613b3e48a81 Mon Sep 17 00:00:00 2001 From: Ruan-Pablo Date: Tue, 27 Jun 2023 19:25:57 -0300 Subject: [PATCH 14/14] Introduce Parameter Object - 1 --- .../gui/ajuda/PainelNorteConfiguracao.java | 97 +++++++++++++++++++ .../candidato/DialogoCadastrarCandidato.java | 17 ++-- 2 files changed, 105 insertions(+), 9 deletions(-) create mode 100644 source/src/com/sige/gui/ajuda/PainelNorteConfiguracao.java diff --git a/source/src/com/sige/gui/ajuda/PainelNorteConfiguracao.java b/source/src/com/sige/gui/ajuda/PainelNorteConfiguracao.java new file mode 100644 index 0000000..6060f9a --- /dev/null +++ b/source/src/com/sige/gui/ajuda/PainelNorteConfiguracao.java @@ -0,0 +1,97 @@ +public class PainelNorteConfiguracao { + private String numero; + private String nome; + private String partido; + private String cargo; + private TratadorEventosCadastroCandidato tratadorEventos; + private int numLinhas; + private int tamMaxNome; + private int tamMaxDocumento; + private int tamCampoCargo; + + public PainelNorteConfiguracao(String numero, String nome, String partido, String cargo, + TratadorEventosCadastroCandidato tratadorEventos, int numLinhas, + int tamMaxNome, int tamMaxDocumento, int tamCampoCargo) { + this.numero = numero; + this.nome = nome; + this.partido = partido; + this.cargo = cargo; + this.tratadorEventos = tratadorEventos; + this.numLinhas = numLinhas; + this.tamMaxNome = tamMaxNome; + this.tamMaxDocumento = tamMaxDocumento; + this.tamCampoCargo = tamCampoCargo; + } + + public String getNumero() { + return numero; + } + + public void setNumero(String numero) { + this.numero = numero; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getPartido() { + return partido; + } + + public void setPartido(String partido) { + this.partido = partido; + } + + public String getCargo() { + return cargo; + } + + public void setCargo(String cargo) { + this.cargo = cargo; + } + + public TratadorEventosCadastroCandidato getTratadorEventos() { + return tratadorEventos; + } + + public void setTratadorEventos(TratadorEventosCadastroCandidato tratadorEventos) { + this.tratadorEventos = tratadorEventos; + } + + public int getNumLinhas() { + return numLinhas; + } + + public void setNumLinhas(int numLinhas) { + this.numLinhas = numLinhas; + } + + public int getTamMaxNome() { + return tamMaxNome; + } + + public void setTamMaxNome(int tamMaxNome) { + this.tamMaxNome = tamMaxNome; + } + + public int getTamMaxDocumento() { + return tamMaxDocumento; + } + + public void setTamMaxDocumento(int tamMaxDocumento) { + this.tamMaxDocumento = tamMaxDocumento; + } + + public int getTamCampoCargo() { + return tamCampoCargo; + } + + public void setTamCampoCargo(int tamCampoCargo) { + this.tamCampoCargo = tamCampoCargo; + } +} \ No newline at end of file diff --git a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java index 5bdb9ff..902ea2a 100644 --- a/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java +++ b/source/src/com/sige/gui/candidato/DialogoCadastrarCandidato.java @@ -84,22 +84,21 @@ public DialogoCadastrarCandidato(String numero, String nome, String partido, Str setResizable(false); setVisible(true); } + + public JPanel criarPainelNorte(PainelNorteConfiguracao configuracao) { + JPanel painelNorte = new JPanel(new GridLayout(configuracao.getNumLinhas(), 0)); - private JPanel criarPainelNorte(String numero, String nome, String partido, String cargo, - TratadorEventosCadastroCandidato tratadorEventos, - int numLinhas, int tamMaxNome, int tamMaxDocumento, int tamCampoCargo) { - JPanel painelNorte = new JPanel(new GridLayout(numLinhas, 0)); - - JPanel painelNome = criarPainelCampo("Nome", nome, tamMaxNome); + JPanel painelNome = criarPainelCampo("Nome", configuracao.getNome(), configuracao.getTamMaxNome()); painelNorte.add(painelNome); - JPanel painelCargo = criarPainelCampoCargo(cargo, tamCampoCargo, tratadorEventos); + JPanel painelCargo = criarPainelCampoCargo(configuracao.getCargo(), configuracao.getTamCampoCargo(), + configuracao.getTratadorEventos()); painelNorte.add(painelCargo); - JPanel painelPartido = criarPainelCampoPartido(partido, tratadorEventos); + JPanel painelPartido = criarPainelCampoPartido(configuracao.getPartido(), configuracao.getTratadorEventos()); painelNorte.add(painelPartido); - JPanel painelNumero = criarPainelCampoNumero(numero); + JPanel painelNumero = criarPainelCampoNumero(configuracao.getNumero()); painelNorte.add(painelNumero); return painelNorte;