analyseWriter/src/fenetres/chargeBaseAuDemarrage.java

196 lines
6.2 KiB
Java

package fenetres;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import MEPTL.commandes;
import action.actOpenBaseEvaluation;
import baseEvaluations.chargeEvaluationSelected;
import baseEvaluations.myTableBaseEvaluation;
import net.miginfocom.swing.MigLayout;
public class chargeBaseAuDemarrage extends JFrame {
private static final long serialVersionUID = 1L;
private myTableBaseEvaluation model = new myTableBaseEvaluation();
private JTable table= new JTable();
private JPanel panelHaut = new JPanel();
private JPanel panelBas = new JPanel();
JLabel lblInformationBaseEvluation = new JLabel("");
int indexSelect=0;
ListSelectionModel lsm = null;
JScrollPane scrollPane = new JScrollPane();
private final JButton btnCheminVersBaseDonnees = new JButton("<html>Travailler avec une autre base<br>d'évaluation</html>");
private final JPanel panelGauche = new JPanel();
private final JPanel panelDroite = new JPanel();
private final JLabel label = new JLabel(commandes.PathBaseEvaluations);
public chargeBaseAuDemarrage() {
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 1200, 600);
int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth();
int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight();
setLocation(( (screenWidth) - getWidth()) / 2, (screenHeight - getHeight()) / 2);
ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") );
setIconImage(img.getImage());
setTitle(commandes.Titre + " - La base de données des évaluations");
getContentPane().setLayout(new BorderLayout(2, 2));
model.addOrUpdate();
table = new JTable(model);
scrollPane = new JScrollPane(table);
//Add the scroll pane to this panel.
getContentPane().add(scrollPane,BorderLayout.CENTER);
panelBas.setLayout(new MigLayout("", "[394px][394px][]", "[53px]"));
panelBas.add(label, "flowy,cell 0 0,grow");
getContentPane().add(panelBas, BorderLayout.SOUTH);
btnCheminVersBaseDonnees.setForeground(new Color(0, 128, 192));
btnCheminVersBaseDonnees.setFont(new Font("Tahoma", Font.BOLD, 16));
btnCheminVersBaseDonnees.setIcon(new ImageIcon(chargeBaseAuDemarrage.class.getResource("/resources/sauvegardehistoriqueevaluation.png")));
btnCheminVersBaseDonnees.setSelectedIcon(new ImageIcon(chargeBaseAuDemarrage.class.getResource("/resources/sauvegardehistoriqueevaluation.png")));
panelBas.add(btnCheminVersBaseDonnees, "cell 2 0,alignx right,growy");
lblInformationBaseEvluation.setIcon(new ImageIcon(chargeBaseAuDemarrage.class.getResource("/resources/accueilChargeEvaluation.png")));
//*Le haut
lblInformationBaseEvluation.setHorizontalAlignment(SwingConstants.CENTER);
getContentPane().add(panelHaut, BorderLayout.NORTH);
lblInformationBaseEvluation.setFont(new Font("Tahoma", Font.BOLD, 16));
panelHaut.add(lblInformationBaseEvluation);
//*Détection de la ligne sélectionnée
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
FlowLayout flowLayout_1 = (FlowLayout) panelGauche.getLayout();
flowLayout_1.setHgap(10);
getContentPane().add(panelGauche, BorderLayout.WEST);
FlowLayout flowLayout = (FlowLayout) panelDroite.getLayout();
flowLayout.setHgap(10);
getContentPane().add(panelDroite, BorderLayout.EAST);
ListSelectionModel rowSM = table.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
//Ignore extra messages.
if (e.getValueIsAdjusting()) return;
lsm = (ListSelectionModel)e.getSource();
if (lsm.isSelectionEmpty()) {
System.out.println("No rows are selected.");
} else {
indexSelect = lsm.getMinSelectionIndex();
System.out.println("Row " + indexSelect + " is now selected.");
}
}
});
ListenerAction();
setVisible(true);
}
private void ListenerAction() {
/**
* Quitter le fenêtre.</br>
*/
addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent windowEvent) {
dispose();
}
});
/**
* Chargement d'une évaluation par double click.
*/
table.addMouseListener( new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1) {
System.out.println("double clicked");
if(lsm!=null) {
if (!lsm.isSelectionEmpty()) {
indexSelect = lsm.getMinSelectionIndex();
new chargeEvaluationSelected(indexSelect);
commandes.IndexEvaluationCharger = indexSelect;
evaluate.getInstance();
dispose();
}
}
}
}
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});
/**
* Bouton chargement depuis un autre emplacement de la base de données.
*/
btnCheminVersBaseDonnees.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new ChargePathBaseEvaluation();
new actOpenBaseEvaluation();
label.setText(commandes.PathBaseEvaluations);
model.addOrUpdate();
table = new JTable(model);
revalidate();
}
});
}
}