https://hal.archives-ouvertes.fr/hal-02404862
Tip revision: 759bd8995e51c4e40aa72fd5657d5e6e04c6da89 authored by Software Heritage on 04 February 2020, 13:44:27 UTC
hal: Deposit 405 in collection hal
hal: Deposit 405 in collection hal
Tip revision: 759bd89
DialogPanelExportToCsv.java
package vue.dialog;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.ResourceBundle;
import java.util.Set;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.DefaultListModel;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import extra.ListTransferHandler;
import modeles.LocuteurModel;
public class DialogPanelExportToCsv extends JPanel {
private static final long serialVersionUID = 1L;
private JTextArea txtALocuteursSelectionnes;
private JTextField txtFDate1, txtFDate2, txtFNbreLocuteurs1, txtFNbreLocuteurs2, txtFNbreMessages1, txtFNbreMessages2, txtFNumerosMessages, txtFMotsSujet, txtFMotsCorps;
private JCheckBox chkEtOuMotsSujet, chkEtOuMotsCorps, chkNonIntegrationMessageOriginal;
private Set<LocuteurModel> setLocuteurs;
private ResourceBundle bundleOperationsListe;
private JRadioButton bExporterTout;
public DialogPanelExportToCsv(Set<LocuteurModel> setLocuteurs, ResourceBundle bundleOperationsListe) {
this.setLocuteurs = setLocuteurs;
this.bundleOperationsListe = bundleOperationsListe;
createGui();
}
public void createGui() {
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
setOpaque(true);
setAlignmentX(Component.LEFT_ALIGNMENT);
setPreferredSize(new Dimension(700, 630));
// EXPORTER TOUT
JPanel panelExporterTout = new JPanel();
panelExporterTout.setLayout(new FlowLayout(FlowLayout.LEFT));
panelExporterTout.setOpaque(true);
panelExporterTout.setMinimumSize(new Dimension(700, 30));
bExporterTout = new JRadioButton(" Exporter tout ");
panelExporterTout.add(bExporterTout);
// SELON MESSAGES
GridBagLayout lM = new GridBagLayout();
JPanel panelMessages = new JPanel();
panelMessages.setLayout(lM);
panelMessages.setBorder(BorderFactory.createTitledBorder(bundleOperationsListe.getString("txt_SelectionSelonMessages")));
panelMessages.setPreferredSize(new Dimension(700, 550));
GridBagConstraints cM = new GridBagConstraints();
// // Locuteurs
GridBagLayout layout1 = new GridBagLayout();
JPanel panelLocuteurs = new JPanel();
panelLocuteurs.setLayout(layout1);
panelLocuteurs.setBorder(BorderFactory.createTitledBorder(bundleOperationsListe.getString("txt_LocuteursSeparesPar")));
panelLocuteurs.setPreferredSize(new Dimension(680, 200));
panelLocuteurs.setMinimumSize(new Dimension(680, 200));
panelLocuteurs.setMaximumSize(new Dimension(680, 200));
GridBagConstraints c1 = new GridBagConstraints();
// // // Locuteurs sélectionnés
txtALocuteursSelectionnes = new JTextArea();
txtALocuteursSelectionnes.setDragEnabled(true);
JScrollPane scrollLocuteursSelectionnes = new JScrollPane(txtALocuteursSelectionnes);
scrollLocuteursSelectionnes.setPreferredSize(new Dimension(310, 150));
c1.gridx = 0;
c1.gridy = 0;
panelLocuteurs.add(scrollLocuteursSelectionnes, c1);
// // // Flèche
JLabel labelFleche = new JLabel("<=");
labelFleche.setPreferredSize(new Dimension(20, 150));
c1.gridx = 1;
c1.gridy = 0;
panelLocuteurs.add(labelFleche, c1);
// // // Liste des locuteurs
List<String> listNomL = new ArrayList<String>();
for (LocuteurModel locuteur : setLocuteurs)
listNomL.add(locuteur.getNom());
Collections.sort(listNomL);
DefaultListModel<String> listModel = new DefaultListModel<String>();
for (String nomL : listNomL)
listModel.addElement(nomL);
JList<String> jListLocuteurs = new JList<String>(listModel);
jListLocuteurs.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
jListLocuteurs.setDragEnabled(true);
jListLocuteurs.setTransferHandler(new ListTransferHandler());
final JScrollPane scrollListeLocuteurs = new JScrollPane(jListLocuteurs);
scrollListeLocuteurs.setPreferredSize(new Dimension(310, 150));
c1.gridx = 2;
c1.gridy = 0;
panelLocuteurs.add(scrollListeLocuteurs, c1);
cM.gridx = 0;
cM.gridy = 0;
panelMessages.add(panelLocuteurs, cM);
// // Date
GridBagLayout layout2 = new GridBagLayout();
JPanel panelDate = new JPanel();
panelDate.setBorder(BorderFactory.createTitledBorder("Date (JJ/MM/AAAA)"));
panelDate.setAlignmentY(Component.LEFT_ALIGNMENT);
panelDate.setPreferredSize(new Dimension(680, 60));
panelDate.setMinimumSize(new Dimension(680, 60));
panelDate.setMaximumSize(new Dimension(680, 60));
panelDate.setLayout(layout2);
GridBagConstraints c2 = new GridBagConstraints();
JLabel labelDate1 = new JLabel(bundleOperationsListe.getString("txt_Du") + " : ");
c2.gridx = 0;
c2.gridy = 0;
panelDate.add(labelDate1, c2);
txtFDate1 = new JTextField();
txtFDate1.setPreferredSize(new Dimension(120, 27));
txtFDate1.setMinimumSize(new Dimension(120, 27));
txtFDate1.setMaximumSize(new Dimension(120, 27));
c2.gridx = 1;
c2.gridy = 0;
panelDate.add(txtFDate1, c2);
JLabel labelDate2 = new JLabel(" " + bundleOperationsListe.getString("txt_InclusAu") + " : ");
c2.gridx = 2;
c2.gridy = 0;
panelDate.add(labelDate2, c2);
txtFDate2 = new JTextField();
txtFDate2.setPreferredSize(new Dimension(120, 27));
txtFDate2.setMinimumSize(new Dimension(120, 27));
txtFDate2.setMaximumSize(new Dimension(120, 27));
c2.gridx = 3;
c2.gridy = 0;
panelDate.add(txtFDate2, c2);
JLabel labelDate3 = new JLabel(" " + bundleOperationsListe.getString("txt_Inclus"));
labelDate3.setPreferredSize(new Dimension(300, 27));
labelDate3.setMinimumSize(new Dimension(300, 27));
labelDate3.setMaximumSize(new Dimension(300, 27));
c2.gridx = 4;
c2.gridy = 0;
panelDate.add(labelDate3, c2);
cM.gridx = 0;
cM.gridy = 1;
panelMessages.add(panelDate, cM);
// // Numeros de messages
GridBagLayout layout7 = new GridBagLayout();
JPanel panelNumeroMessages = new JPanel();
panelNumeroMessages.setAlignmentY(Component.LEFT_ALIGNMENT);
panelNumeroMessages.setBorder(BorderFactory.createTitledBorder(bundleOperationsListe.getString("txt_NumerosMessagesSepares")));
panelNumeroMessages.setPreferredSize(new Dimension(680, 60));
panelNumeroMessages.setMinimumSize(new Dimension(680, 60));
panelNumeroMessages.setMaximumSize(new Dimension(680, 60));
panelNumeroMessages.setLayout(layout7);
GridBagConstraints c7 = new GridBagConstraints();
JLabel labelNumeroMessages = new JLabel(bundleOperationsListe.getString("txt_Numeros") + " : ");
c7.gridx = 0;
c7.gridy = 1;
panelNumeroMessages.add(labelNumeroMessages, c7);
txtFNumerosMessages = new JTextField();
txtFNumerosMessages.setPreferredSize(new Dimension(560, 27));
txtFNumerosMessages.setMinimumSize(new Dimension(560, 27));
txtFNumerosMessages.setMaximumSize(new Dimension(560, 27));
c7.gridx = 1;
c7.gridy = 1;
panelNumeroMessages.add(txtFNumerosMessages, c7);
cM.gridx = 0;
cM.gridy = 2;
panelMessages.add(panelNumeroMessages, cM);
// // Mots dans le sujet
GridBagLayout layout5 = new GridBagLayout();
JPanel panelMotsSujet = new JPanel();
panelMotsSujet.setAlignmentY(Component.LEFT_ALIGNMENT);
panelMotsSujet.setBorder(BorderFactory.createTitledBorder(bundleOperationsListe.getString("txt_MotsSujetSepares")));
panelMotsSujet.setPreferredSize(new Dimension(680, 60));
panelMotsSujet.setMinimumSize(new Dimension(680, 60));
panelMotsSujet.setMaximumSize(new Dimension(680, 60));
panelMotsSujet.setLayout(layout5);
GridBagConstraints c5 = new GridBagConstraints();
JLabel labelMotsSujet = new JLabel(bundleOperationsListe.getString("txt_Mots") + " : ");
c5.gridx = 0;
c5.gridy = 0;
panelMotsSujet.add(labelMotsSujet, c5);
txtFMotsSujet = new JTextField();
txtFMotsSujet.setPreferredSize(new Dimension(532, 27));
txtFMotsSujet.setMinimumSize(new Dimension(532, 27));
txtFMotsSujet.setMaximumSize(new Dimension(532, 27));
c5.gridx = 1;
c5.gridy = 0;
panelMotsSujet.add(txtFMotsSujet, c5);
chkEtOuMotsSujet = new JCheckBox(";=" + bundleOperationsListe.getString("txt_Et"), false);
c5.gridx = 2;
c5.gridy = 0;
panelMotsSujet.add(chkEtOuMotsSujet, c5);
cM.gridx = 0;
cM.gridy = 3;
panelMessages.add(panelMotsSujet, cM);
// // Corps de messages
GridBagLayout layout6 = new GridBagLayout();
JPanel panelMotsCorps = new JPanel();
panelMotsCorps.setAlignmentY(Component.LEFT_ALIGNMENT);
panelMotsCorps.setPreferredSize(new Dimension(680, 80));
panelMotsCorps.setMinimumSize(new Dimension(680, 80));
panelMotsCorps.setMaximumSize(new Dimension(680, 80));
panelMotsCorps.setBorder(BorderFactory.createTitledBorder(bundleOperationsListe.getString("txt_MotsCorpsSepares")));
panelMotsCorps.setLayout(layout6);
GridBagConstraints c6 = new GridBagConstraints();
// // // Mots dans corps de messages
JLabel labelMotsCorps = new JLabel(bundleOperationsListe.getString("txt_Mots") + " : ");
c6.gridx = 0;
c6.gridy = 0;
panelMotsCorps.add(labelMotsCorps, c6);
txtFMotsCorps = new JTextField();
txtFMotsCorps.setPreferredSize(new Dimension(532, 27));
txtFMotsCorps.setMinimumSize(new Dimension(532, 27));
txtFMotsCorps.setMaximumSize(new Dimension(532, 27));
c6.gridx = 1;
c6.gridy = 0;
panelMotsCorps.add(txtFMotsCorps, c6);
chkEtOuMotsCorps = new JCheckBox(";=" + bundleOperationsListe.getString("txt_Et"), false);
c6.gridx = 2;
c6.gridy = 0;
panelMotsCorps.add(chkEtOuMotsCorps, c6);
chkNonIntegrationMessageOriginal = new JCheckBox(bundleOperationsListe.getString("txt_MessageOriginal"), true);
c6.gridx = 1;
c6.gridy = 1;
panelMotsCorps.add(chkNonIntegrationMessageOriginal, c6);
cM.gridx = 0;
cM.gridy = 4;
panelMessages.add(panelMotsCorps, cM);
// CONVERSATIONS
GridBagLayout lC = new GridBagLayout();
JPanel panelConversations = new JPanel();
panelConversations.setLayout(lC);
panelConversations.setBorder(BorderFactory.createTitledBorder(bundleOperationsListe.getString("txt_SelectConv")));
panelConversations.setPreferredSize(new Dimension(700, 100));
panelConversations.setMinimumSize(new Dimension(700, 100));
panelConversations.setMaximumSize(new Dimension(700, 100));
GridBagConstraints cC = new GridBagConstraints();
// // Nombre de locuteurs dans conversations
GridBagLayout lC1 = new GridBagLayout();
JPanel panelC1 = new JPanel();
panelC1.setLayout(lC1);
panelC1.setPreferredSize(new Dimension(680, 30));
panelC1.setMinimumSize(new Dimension(680, 30));
panelC1.setMaximumSize(new Dimension(680, 30));
GridBagConstraints cC1 = new GridBagConstraints();
JLabel labelNbreLocuteurs = new JLabel(bundleOperationsListe.getString("txt_NbreLocuteursSupEgal") + " : ");
cC1.gridx = 0;
cC1.gridy = 0;
panelC1.add(labelNbreLocuteurs, cC1);
txtFNbreLocuteurs1 = new JTextField();
txtFNbreLocuteurs1.setPreferredSize(new Dimension(130, 27));
cC1.gridx = 1;
cC1.gridy = 0;
panelC1.add(txtFNbreLocuteurs1, cC1);
JLabel labelNbreLocuteurs2 = new JLabel(" " + bundleOperationsListe.getString("txt_InferieurEgal") + " : ");
cC1.gridx = 2;
cC1.gridy = 0;
panelC1.add(labelNbreLocuteurs2, cC1);
txtFNbreLocuteurs2 = new JTextField();
txtFNbreLocuteurs2.setPreferredSize(new Dimension(130, 27));
cC1.gridx = 3;
cC1.gridy = 0;
panelC1.add(txtFNbreLocuteurs2, cC1);
cC.gridx = 0;
cC.gridy = 0;
panelConversations.add(panelC1, cC);
// // Nombre de messages dans conversations
GridBagLayout lC2 = new GridBagLayout();
JPanel panelC2 = new JPanel();
panelC2.setLayout(lC2);
panelC2.setPreferredSize(new Dimension(680, 30));
panelC2.setMinimumSize(new Dimension(680, 30));
panelC2.setMaximumSize(new Dimension(680, 30));
GridBagConstraints cC2 = new GridBagConstraints();
JLabel labelNbreMessages = new JLabel(bundleOperationsListe.getString("txt_NbreMessagesSupEgal") + " : ");
cC2.gridx = 0;
cC2.gridy = 0;
panelC2.add(labelNbreMessages, cC2);
txtFNbreMessages1 = new JTextField();
txtFNbreMessages1.setPreferredSize(new Dimension(127, 27));
cC2.gridx = 1;
cC2.gridy = 0;
panelC2.add(txtFNbreMessages1, cC2);
JLabel labelNbreMessages2 = new JLabel(" " + bundleOperationsListe.getString("txt_InferieurEgal") + " : ");
cC2.gridx = 2;
cC2.gridy = 0;
panelC2.add(labelNbreMessages2, cC2);
txtFNbreMessages2 = new JTextField();
txtFNbreMessages2.setPreferredSize(new Dimension(127, 27));
cC2.gridx = 3;
cC2.gridy = 0;
panelC2.add(txtFNbreMessages2, cC2);
cC.gridx = 0;
cC.gridy = 1;
panelConversations.add(panelC2, cC);
bExporterTout.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JRadioButton source = (JRadioButton) e.getSource();
if (source.isSelected()) {
txtALocuteursSelectionnes.setEnabled(false);
txtFDate1.setEnabled(false);
txtFDate2.setEnabled(false);
txtFNbreLocuteurs1.setEnabled(false);
txtFNbreLocuteurs2.setEnabled(false);
txtFNbreMessages1.setEnabled(false);
txtFNbreMessages2.setEnabled(false);
txtFNumerosMessages.setEnabled(false);
txtFMotsSujet.setEnabled(false);
txtFMotsCorps.setEnabled(false);
chkEtOuMotsSujet.setEnabled(false);
chkEtOuMotsCorps.setEnabled(false);
chkNonIntegrationMessageOriginal.setEnabled(false);
} else {
txtALocuteursSelectionnes.setEnabled(true);
txtFDate1.setEnabled(true);
txtFDate2.setEnabled(true);
txtFNbreLocuteurs1.setEnabled(true);
txtFNbreLocuteurs2.setEnabled(true);
txtFNbreMessages1.setEnabled(true);
txtFNbreMessages2.setEnabled(true);
txtFNumerosMessages.setEnabled(true);
txtFMotsSujet.setEnabled(true);
txtFMotsCorps.setEnabled(true);
chkEtOuMotsSujet.setEnabled(true);
chkEtOuMotsCorps.setEnabled(true);
chkNonIntegrationMessageOriginal.setEnabled(true);
}
}
});
bExporterTout.setSelected(true);
txtALocuteursSelectionnes.setEnabled(false);
txtFDate1.setEnabled(false);
txtFDate2.setEnabled(false);
txtFNbreLocuteurs1.setEnabled(false);
txtFNbreLocuteurs2.setEnabled(false);
txtFNbreMessages1.setEnabled(false);
txtFNbreMessages2.setEnabled(false);
txtFNumerosMessages.setEnabled(false);
txtFMotsSujet.setEnabled(false);
txtFMotsCorps.setEnabled(false);
chkEtOuMotsSujet.setEnabled(false);
chkEtOuMotsCorps.setEnabled(false);
chkNonIntegrationMessageOriginal.setEnabled(false);
add(panelExporterTout);
add(panelMessages);
add(panelConversations);
}
public boolean getExporterToutIsSelected() {
return bExporterTout.isSelected();
}
public JTextArea getTxtALocuteursSelectionnes() {
return txtALocuteursSelectionnes;
}
public void setTxtALocuteursSelectionnes(JTextArea txtALocuteursSelectionnes) {
this.txtALocuteursSelectionnes = txtALocuteursSelectionnes;
}
public JTextField getTxtFDate1() {
return txtFDate1;
}
public void setTxtFDate1(JTextField txtFDate1) {
this.txtFDate1 = txtFDate1;
}
public JTextField getTxtFDate2() {
return txtFDate2;
}
public void setTxtFDate2(JTextField txtFDate2) {
this.txtFDate2 = txtFDate2;
}
public JTextField getTxtFNbreLocuteurs1() {
return txtFNbreLocuteurs1;
}
public void setTxtFNbreLocuteurs1(JTextField txtFNbreLocuteurs1) {
this.txtFNbreLocuteurs1 = txtFNbreLocuteurs1;
}
public JTextField getTxtFNbreLocuteurs2() {
return txtFNbreLocuteurs2;
}
public void setTxtFNbreLocuteurs2(JTextField txtFNbreLocuteurs2) {
this.txtFNbreLocuteurs2 = txtFNbreLocuteurs2;
}
public JTextField getTxtFNbreMessages1() {
return txtFNbreMessages1;
}
public void setTxtFNbreMessages1(JTextField txtFNbreMessages1) {
this.txtFNbreMessages1 = txtFNbreMessages1;
}
public JTextField getTxtFNbreMessages2() {
return txtFNbreMessages2;
}
public void setTxtFNbreMessages2(JTextField txtFNbreMessages2) {
this.txtFNbreMessages2 = txtFNbreMessages2;
}
public JTextField getTxtFNumerosMessages() {
return txtFNumerosMessages;
}
public void setTxtFNumerosMessages(JTextField txtFNumerosMessages) {
this.txtFNumerosMessages = txtFNumerosMessages;
}
public JTextField getTxtFMotsSujet() {
return txtFMotsSujet;
}
public void setTxtFMotsSujet(JTextField txtFMotsSujet) {
this.txtFMotsSujet = txtFMotsSujet;
}
public JTextField getTxtFMotsCorps() {
return txtFMotsCorps;
}
public void setTxtFMotsCorps(JTextField txtFMotsCorps) {
this.txtFMotsCorps = txtFMotsCorps;
}
public JCheckBox getChkEtOuMotsSujet() {
return chkEtOuMotsSujet;
}
public void setChkEtOuMotsSujet(JCheckBox chkEtOuMotsSujet) {
this.chkEtOuMotsSujet = chkEtOuMotsSujet;
}
public JCheckBox getChkEtOuMotsCorps() {
return chkEtOuMotsCorps;
}
public void setChkEtOuMotsCorps(JCheckBox chkEtOuMotsCorps) {
this.chkEtOuMotsCorps = chkEtOuMotsCorps;
}
public JCheckBox getChkNonIntegrationMessageOriginal() {
return chkNonIntegrationMessageOriginal;
}
public void setChkNonIntegrationMessageOriginal(JCheckBox chkNonIntegrationMessageOriginal) {
this.chkNonIntegrationMessageOriginal = chkNonIntegrationMessageOriginal;
}
}