Author: dandre
Date: Tue Oct 1 23:42:51 2013
New Revision: 4588
Log:
* more dialog box refactoring
Modified:
trunk/AncestrisCore/core.report/src/genj/report/Report.java
trunk/AncestrisCore/core/src/ancestris/core/beans/ConfirmChangeWidget.java
trunk/AncestrisCore/core/src/ancestris/gedcom/GedcomDirectory.java
trunk/AncestrisCore/core/src/ancestris/util/swing/DialogManager.java
trunk/AncestrisCore/core/src/genj/renderer/ChooseBlueprintAction.java
trunk/AncestrisCore/document.view/src/ancestris/modules/document/view/HyperLinkTextDocumentView.java
trunk/AncestrisCore/modules.beans/src/genj/edit/beans/ChoiceBean.java
trunk/AncestrisCore/modules.beans/src/genj/edit/beans/FullNameBean.java
trunk/AncestrisCore/modules.beans/src/genj/edit/beans/NameBean.java
trunk/AncestrisCore/modules.beans/src/genj/edit/beans/PlaceBean.java
trunk/AncestrisCore/modules.beans/src/genj/edit/beans/ShortNameBean.java
trunk/AncestrisCore/modules.editors.gedcom/src/genj/edit/actions/TogglePrivate.java
trunk/AncestrisExtensions/CommonAncestor/src/ancestris/modules/commonAncestor/SamePanel.java
trunk/AncestrisExtensions/gedcom.mergefile/src/ancestris/modules/gedcom/mergefile/GedcomMergeVisualPanel4.java
trunk/AncestrisExtensions/releve/src/ancestris/modules/releve/ReleveTopComponent.java
trunk/AncestrisExtensions/report.rdf/src/genjreports/rdf/ReportRdf.java
Modified: trunk/AncestrisCore/core.report/src/genj/report/Report.java
==============================================================================
--- trunk/AncestrisCore/core.report/src/genj/report/Report.java (original)
+++ trunk/AncestrisCore/core.report/src/genj/report/Report.java Tue Oct 1
23:42:51 2013
@@ -351,8 +351,9 @@
// choose an existing file?
if (result.exists()&&askForOverwrite) {
- rc = DialogHelper.openDialog(title, DialogHelper.WARNING_MESSAGE,
ReportView.RESOURCES.getString("report.file.overwrite"),
AbstractAncestrisAction.yesNo(), owner);
- if (rc!=0)
+ if (DialogManager.YES_OPTION != DialogManager.createYesNo(title,
ReportView.RESOURCES.getString("report.file.overwrite"))
+ .setMessageType(DialogManager.WARNING_MESSAGE)
+ .show())
return null;
}
Modified:
trunk/AncestrisCore/core/src/ancestris/core/beans/ConfirmChangeWidget.java
==============================================================================
--- trunk/AncestrisCore/core/src/ancestris/core/beans/ConfirmChangeWidget.java
(original)
+++ trunk/AncestrisCore/core/src/ancestris/core/beans/ConfirmChangeWidget.java
Tue Oct 1 23:42:51 2013
@@ -79,7 +79,8 @@
JCheckBox auto = new JCheckBox(BUNDLE.getString("confirm.autocomit"));
auto.setFocusable(false);
- int rc =
DialogHelper.openDialog(BUNDLE.getString("confirm.keep.changes"),
+ int rc = DialogHelper.openDialog(
+ BUNDLE.getString("confirm.keep.changes"),
DialogHelper.QUESTION_MESSAGE, new JComponent[]{
new JLabel(BUNDLE.getString("confirm.keep.changes")),
auto
Modified: trunk/AncestrisCore/core/src/ancestris/gedcom/GedcomDirectory.java
==============================================================================
--- trunk/AncestrisCore/core/src/ancestris/gedcom/GedcomDirectory.java
(original)
+++ trunk/AncestrisCore/core/src/ancestris/gedcom/GedcomDirectory.java Tue Oct
1 23:42:51 2013
@@ -29,6 +29,7 @@
import genj.io.*;
import genj.util.*;
import ancestris.core.actions.AbstractAncestrisAction;
+import ancestris.util.swing.DialogManager;
import ancestris.view.SelectionDispatcher;
import genj.util.swing.DialogHelper;
import genj.util.swing.FileChooser;
@@ -129,8 +130,10 @@
file = new File(file.getAbsolutePath() + ".ged");
}
if (file.exists()) {
- int rc = DialogHelper.openDialog(create_title(),
DialogHelper.WARNING_MESSAGE, file_exists(file.getName()),
AbstractAncestrisAction.yesNo(), null);
- if (rc != 0) {
+ if (DialogManager.YES_OPTION !=
+ DialogManager.createYesNo(create_title(),
file_exists(file.getName()))
+ .setMessageType(DialogManager.WARNING_MESSAGE)
+ .show()) {
return null;
}
}
@@ -327,8 +330,10 @@
// Need confirmation if File exists?
if (file.exists()) {
- int rc = DialogHelper.openDialog(RES.getString("cc.save.title",
context.getGedcom().toString()), DialogHelper.WARNING_MESSAGE,
RES.getString("cc.open.file_exists", file.getName()),
AbstractAncestrisAction.yesNo(), null);
- if (rc != 0) {
+ if (DialogManager.YES_OPTION !=
+ DialogManager.createYesNo(RES.getString("cc.save.title",
context.getGedcom().toString()),RES.getString("cc.open.file_exists"))
+ .setMessageType(DialogManager.WARNING_MESSAGE)
+ .show()){
return false;
}
} else {
Modified: trunk/AncestrisCore/core/src/ancestris/util/swing/DialogManager.java
==============================================================================
--- trunk/AncestrisCore/core/src/ancestris/util/swing/DialogManager.java
(original)
+++ trunk/AncestrisCore/core/src/ancestris/util/swing/DialogManager.java
Tue Oct 1 23:42:51 2013
@@ -55,19 +55,29 @@
}
/**
- * Cretes an error dialog message with only an ok button.
- *
+ * Creates a simple error dialog message with only an ok button.
* @param title
- * @param text
+ * @param text
*
* @return
*/
+ //XXX: rename to createOk, default type is ERROR
public static DialogManager createError(String title, String text) {
return new Message(title, text).setMessageType(ERROR_MESSAGE);
}
- public static DialogManager create(String title, String text) {
- return new Message(title,
text).setOptionType(NotifyDescriptor.OK_CANCEL_OPTION);
+ /**
+ * Creates a simple question dialog message with only a yes and no button.
+ * Message type defaults to QUESTION_MESSAGE
+ * @param title
+ * @param text
+ *
+ * @return
+ */
+ public static DialogManager createYesNo(String title, String text) {
+ return new Message(title, text)
+ .setOptionType(NotifyDescriptor.YES_NO_OPTION)
+ .setMessageType(QUESTION_MESSAGE);
}
// see http://wiki.netbeans.org/DevFaqDialogControlOKButton
Modified: trunk/AncestrisCore/core/src/genj/renderer/ChooseBlueprintAction.java
==============================================================================
--- trunk/AncestrisCore/core/src/genj/renderer/ChooseBlueprintAction.java
(original)
+++ trunk/AncestrisCore/core/src/genj/renderer/ChooseBlueprintAction.java
Tue Oct 1 23:42:51 2013
@@ -81,9 +81,8 @@
public void valueChanged(ListSelectionEvent e) {
if (editor.isChanged() &&
//XXX: Put in bundle
- DialogManager.YES_OPTION == DialogManager.create("BluePrint
Editor", "Do you want to save changes.")
- .setMessageType(DialogManager.WARNING_MESSAGE)
- .setOptionType(DialogManager.YES_NO_OPTION).show()){
+ DialogManager.YES_OPTION ==
DialogManager.createYesNo("BluePrint Editor", "Do you want to save changes.")
+ .setMessageType(DialogManager.WARNING_MESSAGE).show()){
editor.commit();
}
Modified:
trunk/AncestrisCore/document.view/src/ancestris/modules/document/view/HyperLinkTextDocumentView.java
==============================================================================
---
trunk/AncestrisCore/document.view/src/ancestris/modules/document/view/HyperLinkTextDocumentView.java
(original)
+++
trunk/AncestrisCore/document.view/src/ancestris/modules/document/view/HyperLinkTextDocumentView.java
Tue Oct 1 23:42:51 2013
@@ -137,8 +137,10 @@
// .. exits ?
if (file.exists()) {
- int rc = DialogHelper.openDialog(textOutput.getName(),
DialogHelper.WARNING_MESSAGE, "File exists. Overwrite?",
AbstractAncestrisAction.yesNo(), HyperLinkTextDocumentView.this);
- if (rc != 0) {
+ if (DialogManager.YES_OPTION !=
+ DialogManager.createYesNo(textOutput.getName(), "File
exists. Overwrite?")
+ .setMessageType(DialogManager.WARNING_MESSAGE)
+ .show()) {
return;
}
}
Modified: trunk/AncestrisCore/modules.beans/src/genj/edit/beans/ChoiceBean.java
==============================================================================
--- trunk/AncestrisCore/modules.beans/src/genj/edit/beans/ChoiceBean.java
(original)
+++ trunk/AncestrisCore/modules.beans/src/genj/edit/beans/ChoiceBean.java
Tue Oct 1 23:42:51 2013
@@ -23,6 +23,7 @@
import genj.gedcom.PropertyChoiceValue;
import genj.util.GridBagHelper;
import ancestris.core.actions.AbstractAncestrisAction;
+import ancestris.util.swing.DialogManager;
import genj.util.swing.ChoiceWidget;
import genj.util.swing.DialogHelper;
@@ -87,8 +88,10 @@
public void actionPerformed(ActionEvent e) {
String msg = getGlobalReplaceMsg();
if (msg!=null&&global.isSelected()) {
- int rc =
DialogHelper.openDialog(RESOURCES.getString("choice.global.enable"),
DialogHelper.QUESTION_MESSAGE, msg, AbstractAncestrisAction.yesNo(),
ChoiceBean.this);
- global.setSelected(rc==0);
+ boolean yes = (DialogManager.YES_OPTION ==
+
DialogManager.createYesNo(RESOURCES.getString("choice.global.enable"), msg)
+ .show());
+ global.setSelected(yes);
}
}
});
Modified:
trunk/AncestrisCore/modules.beans/src/genj/edit/beans/FullNameBean.java
==============================================================================
--- trunk/AncestrisCore/modules.beans/src/genj/edit/beans/FullNameBean.java
(original)
+++ trunk/AncestrisCore/modules.beans/src/genj/edit/beans/FullNameBean.java
Tue Oct 1 23:42:51 2013
@@ -13,6 +13,7 @@
import ancestris.core.actions.AbstractAncestrisAction;
import ancestris.core.CoreOptions;
+import ancestris.util.swing.DialogManager;
import genj.gedcom.Gedcom;
import genj.gedcom.Property;
import genj.gedcom.PropertyName;
@@ -122,8 +123,10 @@
public void actionPerformed(ActionEvent e) {
String msg = getReplaceAllMsg();
if (msg != null && cAll.isSelected()) {
- int rc =
DialogHelper.openDialog(RESOURCES.getString("choice.global.enable"),
DialogHelper.QUESTION_MESSAGE, msg, AbstractAncestrisAction.yesNo(),
FullNameBean.this);
- cAll.setSelected(rc == 0);
+ boolean yes = (DialogManager.YES_OPTION ==
+
DialogManager.createYesNo(RESOURCES.getString("choice.global.enable"), msg)
+ .show());
+ cAll.setSelected(yes);
}
}
});
Modified: trunk/AncestrisCore/modules.beans/src/genj/edit/beans/NameBean.java
==============================================================================
--- trunk/AncestrisCore/modules.beans/src/genj/edit/beans/NameBean.java
(original)
+++ trunk/AncestrisCore/modules.beans/src/genj/edit/beans/NameBean.java Tue Oct
1 23:42:51 2013
@@ -21,6 +21,7 @@
import ancestris.core.actions.AbstractAncestrisAction;
import ancestris.core.CoreOptions;
+import ancestris.util.swing.DialogManager;
import genj.gedcom.Gedcom;
import genj.gedcom.Property;
import genj.gedcom.PropertyName;
@@ -125,8 +126,10 @@
public void actionPerformed(ActionEvent e) {
String msg = getReplaceAllMsg();
if (msg!=null&&cAll.isSelected()) {
- int rc =
DialogHelper.openDialog(RESOURCES.getString("choice.global.enable"),
DialogHelper.QUESTION_MESSAGE, msg, AbstractAncestrisAction.yesNo(),
NameBean.this);
- cAll.setSelected(rc==0);
+ boolean yes = (DialogManager.YES_OPTION ==
+
DialogManager.createYesNo(RESOURCES.getString("choice.global.enable"), msg)
+ .show());
+ cAll.setSelected(yes);
}
}
});
Modified: trunk/AncestrisCore/modules.beans/src/genj/edit/beans/PlaceBean.java
==============================================================================
--- trunk/AncestrisCore/modules.beans/src/genj/edit/beans/PlaceBean.java
(original)
+++ trunk/AncestrisCore/modules.beans/src/genj/edit/beans/PlaceBean.java
Tue Oct 1 23:42:51 2013
@@ -25,6 +25,7 @@
import genj.gedcom.PropertyPlace;
import genj.util.GridBagHelper;
import ancestris.core.actions.AbstractAncestrisAction;
+import ancestris.util.swing.DialogManager;
import genj.util.swing.ChoiceWidget;
import genj.util.swing.DialogHelper;
import genj.util.swing.Updateable;
@@ -64,8 +65,10 @@
public void actionPerformed(ActionEvent e) {
if (global.isSelected()) {
- int rc =
DialogHelper.openDialog(RESOURCES.getString("choice.global.enable"),
DialogHelper.QUESTION_MESSAGE, getGlobalConfirmMessage(),
AbstractAncestrisAction.yesNo(), PlaceBean.this);
- global.setSelected(rc == 0);
+ boolean yes = (DialogManager.YES_OPTION ==
+
DialogManager.createYesNo(RESOURCES.getString("choice.global.enable"),
getGlobalConfirmMessage())
+ .show());
+ global.setSelected(yes);
}
}
});
Modified:
trunk/AncestrisCore/modules.beans/src/genj/edit/beans/ShortNameBean.java
==============================================================================
--- trunk/AncestrisCore/modules.beans/src/genj/edit/beans/ShortNameBean.java
(original)
+++ trunk/AncestrisCore/modules.beans/src/genj/edit/beans/ShortNameBean.java
Tue Oct 1 23:42:51 2013
@@ -24,6 +24,7 @@
import genj.gedcom.Property;
import genj.gedcom.PropertyName;
import ancestris.core.actions.AbstractAncestrisAction;
+import ancestris.util.swing.DialogManager;
import genj.util.swing.ChoiceWidget;
import genj.util.swing.DialogHelper;
import genj.util.swing.NestedBlockLayout;
@@ -108,8 +109,10 @@
public void actionPerformed(ActionEvent e) {
String msg = getReplaceAllMsg();
if (msg!=null&&cAll.isSelected()) {
- int rc =
DialogHelper.openDialog(RESOURCES.getString("choice.global.enable"),
DialogHelper.QUESTION_MESSAGE, msg, AbstractAncestrisAction.yesNo(),
ShortNameBean.this);
- cAll.setSelected(rc==0);
+ boolean yes = (DialogManager.YES_OPTION ==
+
DialogManager.createYesNo(RESOURCES.getString("choice.global.enable"), msg)
+ .show());
+ cAll.setSelected(yes);
}
}
});
Modified:
trunk/AncestrisCore/modules.editors.gedcom/src/genj/edit/actions/TogglePrivate.java
==============================================================================
---
trunk/AncestrisCore/modules.editors.gedcom/src/genj/edit/actions/TogglePrivate.java
(original)
+++
trunk/AncestrisCore/modules.editors.gedcom/src/genj/edit/actions/TogglePrivate.java
Tue Oct 1 23:42:51 2013
@@ -100,7 +100,7 @@
// check if that's something we can do
String pwd = gedcom.getPassword();
if (Gedcom.PASSWORD_UNKNOWN.equals(pwd)) {
- DialogManager.create(getText(), "This Gedcom file contains
encrypted information that has to be decrypted before changing private/public
status of other information")
+ DialogManager.createError(getText(), "This Gedcom file contains
encrypted information that has to be decrypted before changing private/public
status of other information")
.setMessageType(DialogManager.WARNING_MESSAGE).show();
return null;
}
@@ -120,18 +120,16 @@
}
// check if the user wants to do it recursively
- int recursive = DialogHelper.openDialog(
+ boolean recursive = (DialogManager.YES_OPTION ==
DialogManager.createYesNo(
getText(),
- DialogHelper.QUESTION_MESSAGE,
- AbstractChange.resources.getString("recursive"),
- AbstractAncestrisAction.yesNo(),
- event);
+ AbstractChange.resources.getString("recursive")
+ ));
// change it
gedcom.setPassword(pwd);
for (Property p : properties) {
- p.setPrivate(makePrivate, recursive == 0);
+ p.setPrivate(makePrivate, recursive);
}
// done
Modified:
trunk/AncestrisExtensions/CommonAncestor/src/ancestris/modules/commonAncestor/SamePanel.java
==============================================================================
---
trunk/AncestrisExtensions/CommonAncestor/src/ancestris/modules/commonAncestor/SamePanel.java
(original)
+++
trunk/AncestrisExtensions/CommonAncestor/src/ancestris/modules/commonAncestor/SamePanel.java
Tue Oct 1 23:42:51 2013
@@ -16,6 +16,7 @@
import
ancestris.modules.commonAncestor.quicksearch.module.AbstractQuickSearchComboBar;
import ancestris.modules.commonAncestor.quicksearch.module.QuickSearchComboBar;
import ancestris.modules.commonAncestor.quicksearch.module.QuickSearchPopup;
+import ancestris.util.swing.DialogManager;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
@@ -381,8 +382,10 @@
// choose an existing file?
if (result.exists() && askForOverwrite) {
- rc = DialogHelper.openDialog(title, DialogHelper.WARNING_MESSAGE,
NbBundle.getMessage(SamePanel.class, "SamePanel.message.fileExits"),
AbstractAncestrisAction.yesNo(), this);
- if (rc != 0) {
+ if (DialogManager.YES_OPTION !=
+ DialogManager.createYesNo(title,
NbBundle.getMessage(SamePanel.class, "SamePanel.message.fileExits"))
+ .setMessageType(DialogManager.WARNING_MESSAGE)
+ .show()){
return null;
}
}
Modified:
trunk/AncestrisExtensions/gedcom.mergefile/src/ancestris/modules/gedcom/mergefile/GedcomMergeVisualPanel4.java
==============================================================================
---
trunk/AncestrisExtensions/gedcom.mergefile/src/ancestris/modules/gedcom/mergefile/GedcomMergeVisualPanel4.java
(original)
+++
trunk/AncestrisExtensions/gedcom.mergefile/src/ancestris/modules/gedcom/mergefile/GedcomMergeVisualPanel4.java
Tue Oct 1 23:42:51 2013
@@ -3,6 +3,7 @@
import ancestris.core.actions.AbstractAncestrisAction;
import ancestris.gedcom.GedcomDirectory;
import static ancestris.modules.gedcom.mergefile.Bundle.*;
+import ancestris.util.swing.DialogManager;
import genj.util.swing.DialogHelper;
import java.io.File;
import javax.swing.JPanel;
@@ -99,8 +100,10 @@
gedcomMergeFile = new File(gedcomMergeFile.getAbsolutePath() +
".ged");
}
if (gedcomMergeFile.exists()) {
- int rc = DialogHelper.openDialog(create_title(),
DialogHelper.WARNING_MESSAGE, file_exists(gedcomMergeFile.getName()),
AbstractAncestrisAction.yesNo(), null);
- if (rc == 0) {
+ if (DialogManager.YES_OPTION ==
+ DialogManager.createYesNo(create_title(),
file_exists(gedcomMergeFile.getName()))
+ .setMessageType(DialogManager.WARNING_MESSAGE)
+ .show()) {
jTextField1.setText(gedcomMergeFile.toString());
firePropertyChange(PROP_MERGED_GEDCOM_NAME, 0, 1);
}
Modified:
trunk/AncestrisExtensions/releve/src/ancestris/modules/releve/ReleveTopComponent.java
==============================================================================
---
trunk/AncestrisExtensions/releve/src/ancestris/modules/releve/ReleveTopComponent.java
(original)
+++
trunk/AncestrisExtensions/releve/src/ancestris/modules/releve/ReleveTopComponent.java
Tue Oct 1 23:42:51 2013
@@ -21,6 +21,7 @@
import ancestris.modules.releve.model.RecordDeath;
import ancestris.modules.releve.model.RecordMarriage;
import ancestris.modules.releve.model.RecordMisc;
+import ancestris.util.swing.DialogManager;
import genj.gedcom.Context;
import genj.tree.TreeView;
import genj.util.EnvironmentChecker;
@@ -916,8 +917,9 @@
// choose an existing file?
if (resultFile.exists() && askForOverwrite) {
Toolkit.getDefaultToolkit().beep();
- rc = DialogHelper.openDialog(title, DialogHelper.WARNING_MESSAGE,
NbBundle.getMessage(ReleveTopComponent.class, "message.fileExits"),
AbstractAncestrisAction.yesNo(), component);
- if (rc != 0) {
+ if (DialogManager.YES_OPTION !=
+ DialogManager.createYesNo(title,
NbBundle.getMessage(ReleveTopComponent.class, "message.fileExits"))
+ .setMessageType(DialogManager.WARNING_MESSAGE).show()){
return;
}
}
@@ -1196,9 +1198,10 @@
// choose an existing file?
if (resultFile.exists() && askForOverwrite) {
Toolkit.getDefaultToolkit().beep();
- rc = DialogHelper.openDialog(title, DialogHelper.WARNING_MESSAGE,
NbBundle.getMessage(ReleveTopComponent.class, "message.fileExits"),
AbstractAncestrisAction.yesNo(), component);
- if (rc != 0) {
- return;
+ if (DialogManager.YES_OPTION !=
+ DialogManager.createYesNo(title,
NbBundle.getMessage(ReleveTopComponent.class, "message.fileExits"))
+ .setMessageType(DialogManager.WARNING_MESSAGE).show()){
+ return;
}
}
Modified:
trunk/AncestrisExtensions/report.rdf/src/genjreports/rdf/ReportRdf.java
==============================================================================
--- trunk/AncestrisExtensions/report.rdf/src/genjreports/rdf/ReportRdf.java
(original)
+++ trunk/AncestrisExtensions/report.rdf/src/genjreports/rdf/ReportRdf.java
Tue Oct 1 23:42:51 2013
@@ -3,12 +3,10 @@
import genj.gedcom.Entity;
import genj.gedcom.Gedcom;
import genj.report.Report;
-import ancestris.core.actions.AbstractAncestrisAction;
import genj.util.swing.DialogHelper;
import genjreports.rdf.gedsem.SemanticGedcomUtil;
import genjreports.rdf.gedsem.UriFormats;
import genjreports.rdf.semweb.Extension;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -23,20 +21,6 @@
import java.util.Date;
import java.util.Map;
-import org.openide.util.lookup.ServiceProvider;
-
-import com.hp.hpl.jena.query.QueryExecution;
-import com.hp.hpl.jena.query.QueryExecutionFactory;
-import com.hp.hpl.jena.query.QueryParseException;
-import com.hp.hpl.jena.query.QuerySolutionMap;
-import com.hp.hpl.jena.query.ResultSet;
-import com.hp.hpl.jena.query.ResultSetFormatter;
-import com.hp.hpl.jena.query.Syntax;
-import com.hp.hpl.jena.rdf.model.InfModel;
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.ModelFactory;
-
-@ServiceProvider(service = Report.class)
public class ReportRdf extends Report /* implements BatchCompatible */
{
@@ -236,8 +220,9 @@
{
final String format =
getResources().getString("overwrite.question");
final String prompt = MessageFormat.format(format,
file.getAbsoluteFile());
- final int rc = DialogHelper.openDialog(getName(),
DialogHelper.WARNING_MESSAGE, prompt, AbstractAncestrisAction.yesNo(), null);
- return (rc != 0);
+ return (DialogManager.YES_OPTION !=
DialogManager.createYesNo(getName(), prompt)
+ .setMessageType(DialogManager.WARNING_MESSAGE)
+ .show());
}
return false;
}
---------------------------------------------------------------------
Site Web Ancestris : http://www.ancestris.org
<*> Pour vous desinscrire de cette liste, envoyez un mail a :
[email protected]
<*> Pour obtenir de l'aide sur les commandes de la liste :
[email protected]
Pour obtenir tous les messages lies a ce fil de discussion, cliquez sur le
lien ci-dessous, cela ouvrira votre logiciel de messagerie. Il vous suffira
d'envoyer le message :
[email protected]