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
Activites.java
package vue;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.ResourceBundle;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.TitledBorder;
import modeles.evenements.ProjetChangedEvent;
import modeles.evenements.ProjetListeAddedEvent;
import controleurs.ProjetController;
import controleurs.vuesabstraites.ProjetView;
public class Activites extends ProjetView {
private double progressStart = 0;
private double progressEnd = 100;
private double step;
private JLabel labelAction;
private JTextArea txtArea;
private JProgressBar pb;
private JFrame frame;
private JPanel panel;
private File logFile;
private FileWriter sortie;
private DateFormat format = new SimpleDateFormat("dd/MM/yyyy H:mm");
private ResourceBundle activites;
public Activites(ProjetController controller, ResourceBundle activites) {
super(controller);
this.activites = activites;
create();
}
public JTextArea getTxtArea() {
return txtArea;
}
public JPanel getPanel() {
return panel;
}
@Override
public JProgressBar getProgressBar() {
return pb;
}
public void create() {
frame = new JFrame();
frame.setTitle(activites.getString("txt_Activites"));
JPanel panel = new JPanel(new FlowLayout());
panel.setOpaque(true);
panel.setAlignmentY(Component.LEFT_ALIGNMENT);
GridBagLayout layout = new GridBagLayout();
JPanel panelAction = new JPanel();
panelAction.setPreferredSize(new Dimension(440, 20));
panelAction.setLayout(layout);
panelAction.setAlignmentY(Component.LEFT_ALIGNMENT);
GridBagConstraints c = new GridBagConstraints();
labelAction = new JLabel(" ");
labelAction.setPreferredSize(new Dimension(438, 20));
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 0;
panelAction.add(labelAction, c);
GridBagLayout layout1 = new GridBagLayout();
JPanel panelProgress = new JPanel();
panelProgress.setLayout(layout1);
GridBagConstraints c1 = new GridBagConstraints();
JLabel labelAvancement = new JLabel(activites.getString("txt_Etat")
+ " : ");
c1.fill = GridBagConstraints.HORIZONTAL;
c1.gridx = 0;
c1.gridy = 1;
panelProgress.add(labelAvancement, c1);
pb = new JProgressBar(0, 100);
pb.setPreferredSize(new Dimension(395, 25));
pb.setStringPainted(true);
pb.setForeground(Color.WHITE);
pb.setValue(0);
c1.fill = GridBagConstraints.HORIZONTAL;
c1.gridx = 1;
c1.gridy = 1;
panelProgress.add(pb, c1);
txtArea = new JTextArea();
txtArea.setEditable(false);
txtArea.setLineWrap(true);
txtArea.setWrapStyleWord(true);
txtArea.setForeground(Color.LIGHT_GRAY);
// txtAppend.setPreferredSize(new Dimension(440, 210));
JScrollPane scrollTxtAppend = new JScrollPane(txtArea);
scrollTxtAppend.setAutoscrolls(true);
scrollTxtAppend.setBorder(new TitledBorder(activites
.getString("txt_Details")));
scrollTxtAppend.setPreferredSize(new Dimension(440, 210));
GridBagLayout layout2 = new GridBagLayout();
JPanel panelDetails = new JPanel();
panelDetails.setPreferredSize(new Dimension(440, 210));
panelDetails.setLayout(layout2);
GridBagConstraints c2 = new GridBagConstraints();
c2.fill = GridBagConstraints.HORIZONTAL;
c2.gridx = 0;
c2.gridy = 0;
panelDetails.add(scrollTxtAppend, c);
// BOUTONS
int largeurBouton = 100;
int hauteurBouton = 25;
GridBagLayout l8 = new GridBagLayout();
JPanel panel8 = new JPanel();
panel8.setLayout(l8);
GridBagConstraints c8 = new GridBagConstraints();
JButton bOk = new JButton(activites.getString("txt_Fermer"));
bOk.setVisible(true);
bOk.setPreferredSize(new Dimension(largeurBouton, hauteurBouton));
bOk.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
close();
}
});
JButton bEffacer = new JButton(activites.getString("txt_Effacer"));
bEffacer.setVisible(true);
bEffacer.setPreferredSize(new Dimension(largeurBouton, hauteurBouton));
bEffacer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
getTxtArea().setText("");
}
});
c8.gridx = 0;
c8.gridy = 0;
panel8.add(bEffacer, c8);
c8.gridx = 1;
c8.gridy = 0;
panel8.add(bOk, c8);
panel.add(panelAction);
panel.add(panelProgress);
panel.add(panelDetails);
panel.add(panel8);
frame.setContentPane(panel);
frame.pack();
frame.setSize(450, 330);
frame.setResizable(false);
frame.setLocation(0, 0);
frame.setIconImage(Toolkit.getDefaultToolkit().getImage(
"./images/csi.jpg"));
// frame.setVisible(true);
}
@Override
public void appendTxtArea(String txt) {
txtArea.append(txt);
txtArea.scrollRectToVisible(new Rectangle(0, txtArea.getHeight() - 2,
1, 1));
}
@Override
public void updateProgress() {
progressStart += step;
pb.setValue((int) progressStart);
// pb.setValue(i);
}
public void changeActionTitle(String newActionTitle) {
// frame.setTitle(newActionTitle);
}
@Override
public void resetProgress() {
pb.setValue(0);
}
@Override
public void setLabelProgress(String txtLabelAction) {
labelAction.setText(txtLabelAction);
}
@Override
public void setStepProgress(int valueDepart) {
progressStart = 0;
step = (progressEnd - progressStart) / valueDepart;
}
@Override
public void close() {
frame.setVisible(false);
}
@Override
public JPanel getInfosProjetPanel() {
// TODO Auto-generated method stub
return null;
}
@Override
public JPanel getListesListePanel() {
// TODO Auto-generated method stub
return null;
}
@Override
public JMenuBar getMenuBar() {
// TODO Auto-generated method stub
return null;
}
@Override
public void showActivites() {
frame.setVisible(true);
}
public void logAppendText(String text) {
try {
sortie = new FileWriter(logFile, true);
sortie.append(format.format(new Date()) + " : " + text + " \n");
sortie.close();
} catch (IOException e) {
System.out.println("Log/appendText : erreur d'I/O " + e);
}
}
public File getLogFile() {
return logFile;
}
public void setLogFile(File logFile) {
this.logFile = logFile;
}
public void createLog(ProjetChangedEvent event) {
logFile = new File(event.getNewRepertoire() + "/" + event.getNewNom()
+ ".log");
if (logFile.exists())
logAppendText(activites.getString("txt_Projet") + " \""
+ event.getNewNom() + "\" : "
+ activites.getString("txt_NbreListes") + " = "
+ event.getNewNbreListes() + " | "
+ activites.getString("txt_CumulMessages") + " = "
+ event.getNewCumulMessages() + "\n");
}
@Override
public void projetChanged(ProjetChangedEvent event) {
resetProgress();
setLabelProgress(activites.getString("txt_InformationProjet"));
setStepProgress(1);
createLog(event);
appendTxtArea(activites.getString("txt_Projet") + " \""
+ event.getNewNom() + "\" : "
+ activites.getString("txt_NbreListes") + " = "
+ event.getNewNbreListes() + " | "
+ activites.getString("txt_CumulMessages") + " = "
+ event.getNewCumulMessages() + "\n");
updateProgress();
}
@Override
public void projetListeAdded(ProjetListeAddedEvent event) {
// TODO Auto-generated method stub
}
}