ProjetController.java
package controleurs;
import java.awt.Toolkit;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.SortedSet;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.TreeMap;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.SwingWorker;
import controleurs.operations.liste.ModifyNomListe;
import controleurs.operations.projet.AddListe;
import controleurs.operations.projet.ExportListes;
import controleurs.operations.projet.ImportListes;
import controleurs.operations.projet.MergeListes;
import controleurs.operations.projet.OpenProjet;
import controleurs.operations.projet.RemoveListes;
import controleurs.vuesabstraites.ListeView;
import controleurs.vuesabstraites.ProjetView;
import extra.CustomJFileChooser;
import vue.Activites;
import vue.MainFrame;
import vue.MenuBar;
import vue.ToolBar;
import vue.projetPanelInf.TabConversationsPanel;
import vue.projetPanelInf.FilsListePanel;
import vue.projetPanelInf.AnalysePanel;
import vue.projetPanelInf.TabLocuteursPanel;
import vue.projetPanelInf.TabMessagesPanel;
import vue.projetPanelSup.InfosListePanel;
import vue.projetPanelSup.InfosProjetPanel;
import vue.projetPanelSup.TreeListesProjetPanel;
import modeles.ForumModel;
import modeles.ListeModel;
import modeles.MessageModel;
import modeles.ProjetModel;
public class ProjetController {
private ProjetView panelListesListeView = null;
private ListeView panelInfosListeView = null;
private ListeView panelFilsListeView = null;
private ListeView panelTabMessagesListeView = null;
private ListeView panelTabConversationsListeView = null;
private ListeView panelTabLocuteursListeView = null;
private ListeView panelAnalyseListeView = null;
private ProjetView panelInfosProjetView = null;
private ProjetView menuBarView = null;
private ListeView toolBarView = null;
private ProjetModel projet = null;
private MainFrame mainFrame;
private ListeController listeController;
private ProjetView activitesView = null;
private ResourceBundle bundleOperationsListe;
private ListeModel listeSelected = null;
protected static ResourceBundle bundleProjetController;
public ProjetController(MainFrame mainFrame, int choixLang, ProjetModel projet) {
this.mainFrame = mainFrame;
this.projet = projet;
Locale locale;
if (choixLang == 0) {
locale = new Locale("fr", "FR");
mainFrame.setTitle("L@ME | Logiciel d'Analyse de Messages Électroniques");
} else {
locale = new Locale("en", "GB");
mainFrame.setTitle("L@ME | E-Messages Analysis Software");
}
bundleProjetController = ResourceBundle.getBundle("ProjetController", locale);
bundleOperationsListe = ResourceBundle.getBundle("OperationsListe", locale);
ResourceBundle menusPanel = ResourceBundle.getBundle("MenuPanel", locale);
ResourceBundle activitesPanel = ResourceBundle.getBundle("ActivitesPanel", locale);
ResourceBundle infosListePanel = ResourceBundle.getBundle("InfosListePanel", locale);
ResourceBundle filsListePanel = ResourceBundle.getBundle("FilsListePanel", locale);
ResourceBundle tabMessagesListePanel = ResourceBundle.getBundle("TabMessagesListePanel", locale);
ResourceBundle tabConversationsListePanel = ResourceBundle.getBundle("TabConversationsListePanel", locale);
ResourceBundle analyseListePanel = ResourceBundle.getBundle("AnalyseListePanel", locale);
ResourceBundle tabLocuteursListePanel = ResourceBundle.getBundle("TabLocuteursListePanel", locale);
ResourceBundle infosProjetPanel = ResourceBundle.getBundle("InfosProjetPanel", locale);
ResourceBundle infosListeListesPanel = ResourceBundle.getBundle("InfosListeListesPanel", locale);
panelInfosListeView = new InfosListePanel(null, infosListePanel);
panelFilsListeView = new FilsListePanel(null, filsListePanel);
panelTabMessagesListeView = new TabMessagesPanel(null, tabMessagesListePanel);
panelTabConversationsListeView = new TabConversationsPanel(null, tabConversationsListePanel);
panelTabLocuteursListeView = new TabLocuteursPanel(null, tabLocuteursListePanel);
panelAnalyseListeView = new AnalysePanel(null, analyseListePanel);
panelInfosProjetView = new InfosProjetPanel(this, infosProjetPanel);
panelListesListeView = new TreeListesProjetPanel(this, infosListeListesPanel);
menuBarView = new MenuBar(this, menusPanel);
toolBarView = new ToolBar(null);
activitesView = new Activites(this, activitesPanel);
}
// // // // // // // // LISTENERS // // // // // // // // // // // // // //
private void addListenersToModel() {
projet.addProjetListener(menuBarView);
projet.addProjetListener(panelInfosProjetView);
projet.addProjetListener(panelListesListeView);
projet.addProjetListener(activitesView);
}
public void addViews() {
// VIEWS PROJET
mainFrame.setJMenuBar(menuBarView.getMenuBar());
mainFrame.getPanelToolBar().add(toolBarView.getToolBar());
mainFrame.getPanelSup().add(panelInfosProjetView.getInfosProjetPanel());
mainFrame.getPanelSup().add(panelListesListeView.getListesListePanel());
// VIEWS LISTE
mainFrame.getPanelSup().add(panelInfosListeView.getInfosListePanel());
// ONGLETS
mainFrame.getOnglet().addTab(bundleProjetController.getString("txt_StructureListe"),
new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/icones/liste.png"))),
panelFilsListeView.getFilsListePanel(), bundleProjetController.getString("txt_StructureListe"));
mainFrame.getOnglet().addTab(bundleProjetController.getString("txt_TableauBord"),
new ImageIcon(
Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/icones/analyse.png"))),
panelAnalyseListeView.getAnalysePanel(), bundleProjetController.getString("txt_Analyse"));
activitesView.showActivites();
// PANELS TABLEAUX
panelTabMessagesListeView.getTabMessagesPanel();
panelTabConversationsListeView.getTabConversationsPanel();
panelTabLocuteursListeView.getTabLocuteursPanel();
// UIDefaults dialogTheme = new UIDefaults();
// dialogTheme.put("TabbedPane:TabbedPaneTab[Enabled].backgroundPainter",
// new Painter(Painter.BACKGROUND_ENABLED));
// dialogTheme.put("TabbedPane:TabbedPaneTab[Disabled].backgroundPainter",
// new Painter(Painter.BACKGROUND_DISABLED));
// dialogTheme.put("TabbedPane:TabbedPaneTab[Enabled+MouseOver].backgroundPainter",
// new Painter(Painter.BACKGROUND_ENABLED_MOUSEOVER));
// dialogTheme.put("TabbedPane:TabbedPaneTab[Enabled+Pressed].backgroundPainter",
// new Painter(Painter.BACKGROUND_ENABLED_PRESSED));
// dialogTheme.put("TabbedPane:TabbedPaneTab[Selected].backgroundPainter",
// new Painter(Painter.BACKGROUND_SELECTED));
// dialogTheme.put("TabbedPane:TabbedPaneTab[Disabled+Selected].backgroundPainter",
// new Painter(Painter.BACKGROUND_SELECTED_DISABLED));
// dialogTheme.put("TabbedPane:TabbedPaneTab[Focused+Selected].backgroundPainter",
// new Painter(Painter.BACKGROUND_SELECTED_FOCUSED));
// dialogTheme.put("TabbedPane:TabbedPaneTab[MouseOver+Selected].backgroundPainter",
// new Painter(Painter.BACKGROUND_SELECTED_MOUSEOVER));
// dialogTheme.put("TabbedPane:TabbedPaneTab[Focused+MouseOver+Selected].backgroundPainter",
// new Painter(Painter.BACKGROUND_SELECTED_MOUSEOVER_FOCUSED));
// dialogTheme.put("TabbedPane:TabbedPaneTab[Pressed+Selected].backgroundPainter",
// new Painter(Painter.BACKGROUND_SELECTED_PRESSED));
// dialogTheme.put("TabbedPane:TabbedPaneTab[Focused+Pressed+Selected].backgroundPainter",
// new Painter(Painter.BACKGROUND_SELECTED_PRESSED_FOCUSED));
// dialogTheme.put("TabbedPane:TabbedPaneTabArea[Disabled].backgroundPainter",
// new AreaPainter(AreaPainter.BACKGROUND_DISABLED));
// dialogTheme.put("TabbedPane:TabbedPaneTabArea[Enabled+MouseOver].backgroundPainter",
// new AreaPainter(AreaPainter.BACKGROUND_ENABLED_MOUSEOVER));
// dialogTheme.put("TabbedPane:TabbedPaneTabArea[Enabled+Pressed].backgroundPainter",
// new AreaPainter(AreaPainter.BACKGROUND_ENABLED_PRESSED));
// dialogTheme.put("TabbedPane:TabbedPaneTabArea[Enabled].backgroundPainter",
// new AreaPainter(AreaPainter.BACKGROUND_ENABLED));
// dialogTheme.put("nimbusOrange", new Color(57, 105, 138));
// mainFrame.getOnglet().putClientProperty("Nimbus.Overrides.InheritDefaults",
// Boolean.TRUE);
// mainFrame.getOnglet().putClientProperty("Nimbus.Overrides",
// dialogTheme);
}
// // // // // // // // // // // // // // // // // // // // // // // // //
// // // // // // // // NOTIFY SUR LISTE // // // // // // // // // // //
public void notifyListeSelected(int numListeSelected) {
// Recherche de la liste selected
if (numListeSelected != 0) {
Set<ListeModel> setListes = projet.getSetListes();
for (ListeModel liste : setListes) {
int numListe = liste.getNumero();
if (numListe == numListeSelected) {
this.listeSelected = liste;
projet.setListeSelected(listeSelected);
break;
}
}
} else {
this.listeSelected = new ListeModel(0);
}
this.listeController = new ListeController(this, this.listeSelected, bundleOperationsListe, panelInfosListeView,
panelFilsListeView, panelAnalyseListeView, panelTabMessagesListeView, panelTabConversationsListeView,
panelTabLocuteursListeView, activitesView, toolBarView);
panelFilsListeView.setListeController(listeController);
panelAnalyseListeView.setListeController(listeController);
panelTabMessagesListeView.setListeController(listeController);
panelTabLocuteursListeView.setListeController(listeController);
panelTabConversationsListeView.setListeController(listeController);
toolBarView.setListeController(listeController);
}
public void notifyListeAddedMessages() {
// System.out.println("ProjetController - notifyListeAddedMessages :
// listeSelected = "+listeSelected.getNom());
projet.setNewCumul();
// listeController.notifyAnalyseMessages();
}
public void notifyListeAnalyzed() {
projet.save();
}
public void notifyListeCleaned() {
projet.save();
}
// public void notifyListeNameChanged(String newNom) {
// projet.save();
// }
// public void notifyListeAddedForum() {
// projet.save();
// }
// // // // // // // // // // // // // // // // // // // // // // // // //
// // // // // // // // NOTIFY SUR PROJET // // // // // // // // // // //
public void notifyCreateNewProjet(String nomFichier, String repertoire) {
projet = new ProjetModel();
addListenersToModel();
projet.createNewProjet(nomFichier, repertoire);
notifyAddListe();
}
public void notifyOpenProjet() {
new SwingWorker<Object, Object>() {
ProjetModel openedProjet = null;
OpenProjet openProjet;
@Override
public Object doInBackground() {
activitesView.setLabelProgress(bundleProjetController.getString("txt_PatientezChargementProjet"));
activitesView.getProgressBar().setIndeterminate(true);
activitesView.getProgressBar().setStringPainted(false);
activitesView.setStepProgress(1);
activitesView.updateProgress();
openProjet = new OpenProjet(bundleProjetController);
openProjet.displayDialog();
openedProjet = openProjet.getOpenedProjet();
return null;
}
@Override
public void done() {
if (openedProjet != null) {
projet = openedProjet;
// REPERTOIRE TRANSCIENT
String repertoire = openProjet.getFile().getAbsolutePath();
if (repertoire.indexOf("/") != -1)
repertoire = repertoire.substring(0, repertoire.lastIndexOf("/"));
else
repertoire = repertoire.substring(0, repertoire.lastIndexOf("\\"));
addListenersToModel();
projet.setTranscientRepertoire(repertoire);
activitesView
.appendTxtArea(bundleProjetController.getString("txt_RestaurationProjetAccomplie") + "\n");
activitesView.setLabelProgress(bundleProjetController.getString("txt_ChargementProjet"));
} else {
activitesView.setLabelProgress("");
activitesView.resetProgress();
}
activitesView.getProgressBar().setIndeterminate(false);
activitesView.getProgressBar().setStringPainted(true);
}
}.execute();
}
public void notifyAddListe() {
new SwingWorker<Object, Object>() {
String nomListe = null;
int oldNbreListe = projet.getNbreListes();
@Override
public Object doInBackground() {
activitesView.setLabelProgress(bundleProjetController.getString("txt_PatientezAjoutListe"));
activitesView.getProgressBar().setIndeterminate(true);
activitesView.getProgressBar().setStringPainted(false);
activitesView.setStepProgress(1);
activitesView.updateProgress();
AddListe addListe = new AddListe(bundleProjetController);
addListe.displayDialog();
nomListe = addListe.getNomListe();
if (nomListe != null) {
projet.addListe(nomListe);
}
return null;
}
@Override
public void done() {
int newNbreListe = projet.getNbreListes();
if (newNbreListe == oldNbreListe + 1) {
notifyListeSelected(projet.getNewListe().getNumero());
listeController.notifyAddMessages(projet.getRepertoire());
activitesView.appendTxtArea(bundleProjetController.getString("txt_Liste") + " " + nomListe + " "
+ bundleProjetController.getString("txt_AjoutListeSucces") + "\n");
activitesView.setLabelProgress(bundleProjetController.getString("txt_AjoutListe"));
} else {
activitesView.setLabelProgress("");
activitesView.resetProgress();
}
activitesView.getProgressBar().setIndeterminate(false);
activitesView.getProgressBar().setStringPainted(true);
}
}.execute();
}
public void notifyProjetQuit() {
new SwingWorker<Object, Object>() {
@Override
public Object doInBackground() {
mainFrame.dispose();
return null;
}
@Override
public void done() {
System.exit(0);
}
}.execute();
}
public void notifyMessageToShowSelected() {
// System.out
// .println("ProjetController - notifyMessageToShowSelected : identifiant = "
// + identifiant);
mainFrame.getOnglet().setSelectedIndex(0);
}
// // // // // // // // // // // // // // // // // // // // // // // // //
// // // // // // // // IMPORT - EXPORT // // // // // // // // // // // //
public void notifyExportListes() {
new SwingWorker<Object, Object>() {
ProjetModel newProjet = null;
@Override
public Object doInBackground() {
activitesView.setLabelProgress(bundleProjetController.getString("txt_PatientezExportationListes"));
activitesView.getProgressBar().setIndeterminate(true);
activitesView.getProgressBar().setStringPainted(false);
activitesView.setStepProgress(1);
activitesView.updateProgress();
ExportListes exportListes = new ExportListes(projet.getSetListes(), getBundleProjetController());
exportListes.displayDialog();
List<ListeModel> listListes = exportListes.getListListes();
if (listListes != null) {
CustomJFileChooser customChooser = new CustomJFileChooser("ExportListe", bundleOperationsListe,
getRepertoire(), true);
customChooser.show();
if (customChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
String repertoireSelected = customChooser.getSelectedFile().toString();
System.out.println(
"ProjetController - notifyExportListes : repertoireSelected = " + repertoireSelected);
DateFormat formatterDateFile = new SimpleDateFormat("dd-MM-yyyy_HH-mm-ss");
String today = formatterDateFile.format(new Date());
for (ListeModel listeToExport : listListes) {
System.out.println("ProjetController - notifyExportListes : liste à exporter = "
+ listeToExport.getNom());
String nomProjetExporte = listeToExport.getNom() + "_" + "_" + today;
newProjet = new ProjetModel();
newProjet.setNom(nomProjetExporte);
newProjet.setRepertoire(repertoireSelected);
ListeModel newListe = new ListeModel();
newListe.exportListe(listeToExport);
newProjet.addListe(newListe);
newProjet.setNewCumul();
newProjet.save();
activitesView.appendTxtArea(
bundleProjetController.getString("txt_Projet") + " " + listeToExport.getNom() + " "
+ bundleProjetController.getString("txt_ProjetExportationSucces") + " "
+ repertoireSelected + "\n");
}
activitesView.setLabelProgress(bundleProjetController.getString("txt_ExporterListes"));
}
}
return null;
}
@Override
public void done() {
if (newProjet != null) {
activitesView.getProgressBar().setIndeterminate(false);
activitesView.getProgressBar().setStringPainted(true);
JOptionPane.showMessageDialog(null, bundleProjetController.getString("txt_ExportationSucces"),
bundleProjetController.getString("txt_ExporterListes"), JOptionPane.INFORMATION_MESSAGE);
} else {
activitesView.setLabelProgress("");
activitesView.resetProgress();
}
activitesView.getProgressBar().setIndeterminate(false);
activitesView.getProgressBar().setStringPainted(true);
}
}.execute();
}
public void notifyImportListes() {
new SwingWorker<Object, Object>() {
int oldNbreListes = projet.getNbreListes();
int nbreListesImportees = 0;
@Override
public Object doInBackground() {
activitesView.setLabelProgress(bundleProjetController.getString("txt_PatientezImportationListes"));
activitesView.getProgressBar().setIndeterminate(true);
activitesView.getProgressBar().setStringPainted(false);
activitesView.setStepProgress(1);
activitesView.updateProgress();
OpenProjet openProjet = new OpenProjet(getBundleProjetController());
openProjet.displayDialog();
ProjetModel openedProjet = openProjet.getOpenedProjet();
if (openedProjet != null) {
int nbreListe = openedProjet.getNbreListes();
System.out.println("Nombre de listes du projet ouvert = " + nbreListe);
ImportListes importListes = new ImportListes(openedProjet.getSetListes(),
getBundleProjetController());
importListes.displayDialog();
List<ListeModel> listListes = importListes.getListListes();
if (listListes != null) {
nbreListesImportees = listListes.size();
for (ListeModel liste : listListes) {
System.out.println("Liste à ajouter : " + liste.getNom());
int newNumeroListe = 1;
if (projet.getSetListes().size() > 0)
newNumeroListe = ((SortedSet<ListeModel>) projet.getSetListes()).last().getNumero() + 1;
liste.setNumero(newNumeroListe);
projet.addListe(liste);
notifyListeSelected(newNumeroListe);
getListeController().notifyExtractData();
projet.setNewCumul();
activitesView.appendTxtArea(
bundleProjetController.getString("txt_Liste") + " " + liste.getNom() + " "
+ bundleProjetController.getString("txt_ListeImportationSucces") + "\n");
}
activitesView.setLabelProgress(bundleProjetController.getString("txt_ImporterListes"));
}
}
return null;
}
@Override
public void done() {
int newNbreListes = projet.getNbreListes();
if (newNbreListes == (oldNbreListes + nbreListesImportees) && newNbreListes > oldNbreListes) {
activitesView.getProgressBar().setIndeterminate(false);
activitesView.getProgressBar().setStringPainted(true);
JOptionPane.showMessageDialog(null, bundleProjetController.getString("txt_ImportationSucces"),
bundleProjetController.getString("txt_ImporterListes"), JOptionPane.INFORMATION_MESSAGE);
} else {
activitesView.setLabelProgress("");
activitesView.resetProgress();
}
activitesView.getProgressBar().setIndeterminate(false);
activitesView.getProgressBar().setStringPainted(true);
}
}.execute();
}
// // // // // // // // // // // // // // // // // // // // // // // // //
// // // // // // // // SUPPRESSION - FUSION // // // // // // // // // //
public void notifyRemoveListe() {
new SwingWorker<Object, Object>() {
int oldNbreListes = projet.getNbreListes();
int nbreListesSupprimees = 0;
@Override
public Object doInBackground() {
activitesView.setLabelProgress(bundleProjetController.getString("txt_PatientezSuppressionListes"));
activitesView.getProgressBar().setIndeterminate(true);
activitesView.getProgressBar().setStringPainted(false);
activitesView.setStepProgress(1);
activitesView.updateProgress();
RemoveListes removeListe = new RemoveListes(bundleProjetController, getSetListes());
removeListe.displayDialog();
List<Integer> listNumListes = removeListe.getListNumListes();
if (listNumListes != null) {
nbreListesSupprimees = listNumListes.size();
for (Integer i : listNumListes) {
ListeModel listeToRemove = getListeFromNum(i);
activitesView.appendTxtArea(
bundleProjetController.getString("txt_Liste") + " " + listeToRemove.getNom() + " "
+ bundleProjetController.getString("txt_ListeSupprimerSucces") + "\n");
projet.removeListe(listeToRemove);
}
activitesView.setLabelProgress(bundleProjetController.getString("txt_SupprimerListes"));
}
return null;
}
@Override
public void done() {
int newNbreListes = projet.getNbreListes();
if (newNbreListes == (oldNbreListes - nbreListesSupprimees) && newNbreListes < oldNbreListes) {
activitesView.getProgressBar().setIndeterminate(false);
activitesView.getProgressBar().setStringPainted(true);
JOptionPane.showMessageDialog(null, bundleProjetController.getString("txt_SuppressionSucces"),
bundleProjetController.getString("txt_SupprimerListes"), JOptionPane.INFORMATION_MESSAGE);
} else {
activitesView.setLabelProgress("");
activitesView.resetProgress();
}
activitesView.getProgressBar().setIndeterminate(false);
activitesView.getProgressBar().setStringPainted(true);
}
}.execute();
}
public void notifyMergeListes() {
new SwingWorker<Object, Object>() {
int oldNbreListes = projet.getNbreListes();
int nbreListesAjoutee = 0;
int nbreListeSupprimee = 0;
@Override
public Object doInBackground() {
activitesView.setLabelProgress(bundleProjetController.getString("txt_PatientezFusionListes"));
activitesView.getProgressBar().setIndeterminate(true);
activitesView.getProgressBar().setStringPainted(false);
activitesView.setStepProgress(1);
activitesView.updateProgress();
MergeListes mergeListes = new MergeListes(projet.getSetListes(), bundleProjetController);
mergeListes.displayDialog();
List<Integer> listListesSelected = mergeListes.getListListesSelected();
if (listListesSelected != null) {
AddListe addListe = new AddListe(bundleProjetController);
addListe.displayDialog();
final String nomListe = addListe.getNomListe();
if (nomListe != null) {
projet.addListe(nomListe);
nbreListesAjoutee++;
System.out.println("ProjetController - notifyMergeListes - done() : listeSelected = "
+ listeSelected.getNom());
if (listeSelected != null) {
notifyProjetFusionListes(listListesSelected);
int diag = JOptionPane.showOptionDialog(null,
bundleProjetController.getString("txt_SupprimerListesFusionnees") + " ?",
bundleProjetController.getString("txt_SupprimerListes"), JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null, null, null);
if (diag == JOptionPane.OK_OPTION) {
int diag2 = JOptionPane.showOptionDialog(null,
bundleProjetController.getString("txt_PoursuivreSuppressionListesFusionnees")
+ " ?",
bundleProjetController.getString("txt_SupprimerListes"),
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);
if (diag2 == JOptionPane.OK_OPTION) {
for (Integer i : listListesSelected) {
ListeModel listeToRemove = getListeFromNum(i);
projet.removeListe(listeToRemove);
nbreListeSupprimee++;
}
}
}
}
}
activitesView.setLabelProgress(bundleProjetController.getString("txt_FusionListes"));
}
return null;
}
@Override
public void done() {
int newNbreListes = projet.getNbreListes();
if (newNbreListes == (oldNbreListes + nbreListesAjoutee - nbreListeSupprimee)
&& newNbreListes != oldNbreListes) {
activitesView.getProgressBar().setIndeterminate(false);
activitesView.getProgressBar().setStringPainted(true);
JOptionPane.showMessageDialog(null, bundleProjetController.getString("txt_FusionSucces"),
bundleProjetController.getString("txt_FusionListes"), JOptionPane.INFORMATION_MESSAGE);
listeController.notifyExtractData();
listeController.notifyAnalyseData();
} else {
activitesView.setLabelProgress("");
activitesView.resetProgress();
}
activitesView.getProgressBar().setIndeterminate(false);
activitesView.getProgressBar().setStringPainted(true);
}
}.execute();
}
public void notifyProjetFusionListes(List<Integer> listNumListes) {
List<ListeModel> listListesToMerge = new ArrayList<ListeModel>();
for (int i = 0; i < listNumListes.size(); i++) {
ListeModel listeToMerge = projet.getListe(listNumListes.get(i));
listListesToMerge.add(listeToMerge);
}
listeController.notifyAddMapIdMessagesFromListes(listListesToMerge);
projet.setNewCumul();
}
public void notifyProjetCreateListFromSelectedMessages(final ListeModel fromListe,
final List<String> fromListSelectedIdMessages) {
new SwingWorker<Object, Object>() {
String nomListe = null;
int oldNbreListe = projet.getNbreListes();
@Override
public Object doInBackground() {
activitesView.setLabelProgress(bundleProjetController.getString("txt_PatientezAjoutListe"));
activitesView.getProgressBar().setIndeterminate(true);
activitesView.getProgressBar().setStringPainted(false);
activitesView.setStepProgress(1);
activitesView.updateProgress();
AddListe addListe = new AddListe(bundleProjetController);
addListe.displayDialog();
nomListe = addListe.getNomListe();
if (nomListe != null) {
projet.addListe(nomListe);
// ListeModel listeSelected = projet.getListeSelected();
Map<String, MessageModel> mapNew = new TreeMap<String, MessageModel>();
for (String idMessageToAdd : fromListSelectedIdMessages) {
if (fromListe.getMapIdMessage().containsKey(idMessageToAdd)) {
MessageModel messageToAdd = fromListe.getMapIdMessage().get(idMessageToAdd);
mapNew.put(messageToAdd.getIdentifiant(), messageToAdd);
}
}
if (mapNew.size() > 0) {
getListeController().notifyAddMapIdMessages(mapNew);
projet.setNewCumul();
}
}
return null;
}
@Override
public void done() {
int newNbreListe = projet.getNbreListes();
if (newNbreListe == oldNbreListe + 1) {
activitesView.appendTxtArea(bundleProjetController.getString("txt_Liste") + " " + nomListe + " "
+ bundleProjetController.getString("txt_AjoutListeSucces") + "\n");
activitesView.setLabelProgress(bundleProjetController.getString("txt_AjoutListe"));
getListeController().notifyExtractData();
getListeController().notifyAnalyseData();
} else {
activitesView.setLabelProgress("");
activitesView.resetProgress();
}
activitesView.getProgressBar().setIndeterminate(false);
activitesView.getProgressBar().setStringPainted(true);
}
}.execute();
}
public void notifyModifyNomListe(String oldName) {
ModifyNomListe modifyNomListe = new ModifyNomListe(oldName, bundleOperationsListe);
modifyNomListe.displayDialog();
String newNomListe = modifyNomListe.getNewName();
if (newNomListe != null) {
listeController.notifyListeNameChanged(newNomListe);
projet.save();
}
}
public void notifyProjetCreateListFromJsonForum(ForumModel forum, TreeMap<String, MessageModel> messagesMap) {
String nomListe = null;
int oldNbreListe = projet.getNbreListes();
activitesView.setLabelProgress(bundleProjetController.getString("txt_PatientezAjoutListe"));
activitesView.getProgressBar().setIndeterminate(true);
activitesView.getProgressBar().setStringPainted(false);
activitesView.setStepProgress(1);
activitesView.updateProgress();
nomListe = forum.getNom();
if (nomListe != null) {
projet.addListe(nomListe, messagesMap);
}
int newNbreListe = projet.getNbreListes();
if (newNbreListe == oldNbreListe + 1) {
activitesView.appendTxtArea(bundleProjetController.getString("txt_Liste") + " " + nomListe + " "
+ bundleProjetController.getString("txt_AjoutListeSucces") + "\n");
activitesView.setLabelProgress(bundleProjetController.getString("txt_AjoutListe"));
} else {
activitesView.setLabelProgress("");
activitesView.resetProgress();
}
activitesView.getProgressBar().setIndeterminate(false);
activitesView.getProgressBar().setStringPainted(true);
}
// // // // // // // // // // // // // // // // // // // // // // // // //
// // // // // // // // GET SUR MODEL PROJET // // // // // // // // // //
public ListeModel getListeFromNum(int numListeRecherche) {
ListeModel listeToFind = null;
for (ListeModel listeExistante : projet.getSetListes()) {
int numListeExistant = listeExistante.getNumero();
if (numListeExistant == numListeRecherche) {
listeToFind = listeExistante;
break;
}
}
return listeToFind;
}
public ListeModel getListeSelected() {
return listeController.getListeSelected();
}
public String getNomProjet() {
return projet.getNom();
}
public String getRepertoire() {
return projet.getRepertoire();
}
public Set<ListeModel> getSetListes() {
return projet.getSetListes();
}
public ProjetModel getProjetCharge() {
return projet;
}
public ProjetView getFrameActivites() {
return activitesView;
}
// // // // // // // // // // // // // // // // // // // // // // // // //
// // // // // // // // GETTER // // // // // // // // // // // // // // //
public ListeController getListeController() {
return listeController;
}
public ProjetController getProjetController() {
return this;
}
public ResourceBundle getBundleProjetController() {
return bundleProjetController;
}
// // // // // // // // // // // // // // // // // // // // // // // // //
// // // // // // // // SETTER // // // // // // // // // // // // // // //
}