001: /*
002: * SalomeTMF is a Test Management Framework
003: * Copyright (C) 2005 France Telecom R&D
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation; either
008: * version 2 of the License, or (at your option) any later version.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: *
015: * You should have received a copy of the GNU Lesser General Public
016: * License along with this library; if not, write to the Free Software
017: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
018: *
019: * @author Aurore PENAULT
020: *
021: * Contact: mikael.marche@rd.francetelecom.com
022: */
023: package salomeTMF_plug.docXML.common;
024:
025: import java.awt.BorderLayout;
026: import java.awt.Color;
027: import java.awt.Container;
028: import java.awt.Dimension;
029: import java.awt.FlowLayout;
030: import java.awt.Font;
031: import java.awt.Rectangle;
032: import java.awt.event.ActionEvent;
033: import java.awt.event.ActionListener;
034: import java.io.File;
035: import java.io.FileInputStream;
036: import java.util.ArrayList;
037: import java.util.Vector;
038:
039: import javax.swing.BorderFactory;
040: import javax.swing.Box;
041: import javax.swing.BoxLayout;
042: import javax.swing.DefaultComboBoxModel;
043: import javax.swing.JButton;
044: import javax.swing.JCheckBox;
045: import javax.swing.JComboBox;
046: import javax.swing.JDialog;
047: import javax.swing.JFileChooser;
048: import javax.swing.JLabel;
049: import javax.swing.JOptionPane;
050: import javax.swing.JPanel;
051: import javax.swing.JScrollPane;
052: import javax.swing.JTabbedPane;
053: import javax.swing.JTextField;
054: import javax.swing.JTextPane;
055: import javax.swing.tree.DefaultMutableTreeNode;
056:
057: import org.dom4j.Document;
058: import org.dom4j.io.SAXReader;
059: import org.java.plugin.Extension;
060: import org.objectweb.salome_tmf.data.AdminVTData;
061: import org.objectweb.salome_tmf.data.Family;
062: import org.objectweb.salome_tmf.data.Project;
063: import org.objectweb.salome_tmf.data.Test;
064: import org.objectweb.salome_tmf.data.TestList;
065: import org.objectweb.salome_tmf.data.User;
066: import org.objectweb.salome_tmf.ihm.admin.Administration;
067: import org.objectweb.salome_tmf.ihm.admin.models.UserListRenderer;
068: import org.objectweb.salome_tmf.ihm.models.ScriptFileFilter;
069: import org.objectweb.salome_tmf.ihm.tools.Tools;
070: import org.objectweb.salome_tmf.plugins.IPlugObject;
071: import org.objectweb.salome_tmf.plugins.JPFManager;
072: import org.objectweb.salome_tmf.plugins.core.XMLPrinterPlugin;
073:
074: import salomeTMF_plug.docXML.DocXMLPlugin;
075: import salomeTMF_plug.docXML.importxml.ImportXML;
076: import salomeTMF_plug.docXML.importxml.ImportXML2;
077: import salomeTMF_plug.docXML.languages.Language;
078:
079: public class CreateProjectDialog extends JDialog {
080:
081: /**
082: * Champ pour récupérer le nom du projet
083: */
084: private JTextField projetNameTextField;
085:
086: /**
087: * Modèle de données pour la liste des utilisateurs pouvant être admin
088: */
089: private DefaultComboBoxModel comboModel;
090:
091: /**
092: * La description du projet
093: */
094: private JTextPane descriptionArea;
095:
096: /**
097: * La liste des utilisateurs pouvant être admin
098: */
099: JComboBox adminNameComboBox;
100:
101: JLabel newProjectNameLabel;
102:
103: JScrollPane descriptionScrollPane;
104:
105: String errorMessage = "";
106:
107: private JCheckBox importCampBox;
108: JButton testSelection;
109: JLabel tousTests;
110: boolean selectionDesTests = false;
111:
112: boolean initSelection = false;
113: ArrayList<TestList> suiteSelectionList;
114: ArrayList<Family> familySelectionList;
115: ArrayList<Test> testSelectionList;
116: DefaultMutableTreeNode chosenRoot;
117:
118: String xmlFile;
119: JLabel sauvLabel;
120: JTextField sauvTF;
121: JButton sauvButton;
122:
123: boolean recupAttachPb = false;
124: boolean majAttachPb = false;
125:
126: Project newProject;
127:
128: ImportXML traitement;
129: ImportXML2 traitement2;
130:
131: AdminVTData pAdminVTData;
132: IPlugObject pIPlugObject;
133:
134: Vector<JPanel> panelsPluginsForImport = new Vector<JPanel>();
135:
136: public CreateProjectDialog(IPlugObject iPlugObject)
137: throws Exception {
138: super (Administration.ptrFrame, true);
139: pAdminVTData = Administration.pAdminVTData;
140: this .pIPlugObject = iPlugObject;
141:
142: Vector<Extension> listExtXMLPlugin = pIPlugObject
143: .getXMLPrintersExtension();
144: for (Extension pXMLExt : listExtXMLPlugin) {
145: JPFManager pJPFManager = pIPlugObject.getPluginManager();
146: try {
147: XMLPrinterPlugin pXMLPrinterPlugin = (XMLPrinterPlugin) pJPFManager
148: .activateExtension(pXMLExt);
149: JPanel pPanel = pXMLPrinterPlugin
150: .getImportOptionPanel();
151: if (pPanel != null
152: && !panelsPluginsForImport.contains(pPanel)) {
153: panelsPluginsForImport.add(pPanel);
154: }
155: } catch (Exception e) {
156:
157: }
158: }
159:
160: suiteSelectionList = new ArrayList<TestList>();
161: familySelectionList = new ArrayList<Family>();
162: testSelectionList = new ArrayList<Test>();
163:
164: projetNameTextField = new JTextField(20);
165: comboModel = new DefaultComboBoxModel();
166: descriptionArea = new JTextPane();
167: adminNameComboBox = new JComboBox(comboModel);
168: // Partie supérieure
169: JLabel adminNameLabel = new JLabel(Language.getInstance()
170: .getText("Administrateur_du_projet"));
171:
172: adminNameComboBox.setRenderer(new UserListRenderer());
173: for (int i = 0; i < pAdminVTData.getAllUsersCountFromModel(); i++) {
174: comboModel.addElement(pAdminVTData.getAllUsersFromModel()
175: .get(i));
176: }
177:
178: JPanel adminPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
179: adminPanel.add(adminNameLabel);
180: adminPanel.add(adminNameComboBox);
181: adminPanel.setBorder(BorderFactory.createRaisedBevelBorder());
182:
183: JLabel newProjectLabel = new JLabel(Language.getInstance()
184: .getText("Nouveau_Projet"));
185: newProjectLabel.setFont(new Font(null, Font.BOLD, 18));
186: newProjectNameLabel = new JLabel(Language.getInstance()
187: .getText("Nom_du_nouveau_projet_:"));
188:
189: JPanel newProjectNamePanel = new JPanel(new FlowLayout(
190: FlowLayout.LEFT));
191: newProjectNamePanel.add(newProjectNameLabel);
192: newProjectNamePanel.add(projetNameTextField);
193:
194: descriptionArea.setPreferredSize(new Dimension(100, 150));
195: descriptionScrollPane = new JScrollPane(descriptionArea,
196: JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
197: JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
198: descriptionScrollPane.setBorder(BorderFactory
199: .createTitledBorder(BorderFactory
200: .createLineBorder(Color.BLACK), Language
201: .getInstance().getText("Description")));
202:
203: JPanel newProjectPanel = new JPanel();
204: newProjectPanel.setLayout(new BoxLayout(newProjectPanel,
205: BoxLayout.Y_AXIS));
206: newProjectPanel.add(newProjectLabel);
207: newProjectPanel.add(newProjectNamePanel);
208: newProjectPanel.add(descriptionScrollPane);
209: newProjectPanel.setBorder(BorderFactory
210: .createRaisedBevelBorder());
211:
212: importCampBox = new JCheckBox(Language.getInstance().getText(
213: "Importer_les_campagnes"));
214: importCampBox.addActionListener(new ActionListener() {
215: public void actionPerformed(ActionEvent e) {
216: try {
217: if (importCampBox.isSelected()) {
218: testSelection.setEnabled(false);
219: } else {
220: testSelection.setEnabled(true);
221: }
222: } catch (Exception ex) {
223: Tools.ihmExceptionView(ex);
224: }
225: }
226: });
227: importCampBox.setSelected(false);
228:
229: testSelection = new JButton(Language.getInstance().getText(
230: "Sélection_des_tests..."));
231: testSelection.addActionListener(new ActionListener() {
232: public void actionPerformed(ActionEvent e) {
233: if (xmlFile == null || xmlFile.equals("")) {
234: JOptionPane
235: .showMessageDialog(
236: CreateProjectDialog.this ,
237: Language
238: .getInstance()
239: .getText(
240: "Avant_de_sélectionner_les_tests_à_importer,_veuillez_indiquer_le_fichier_XML_à_utiliser"),
241: Language.getInstance().getText(
242: "Erreur_!"),
243: JOptionPane.ERROR_MESSAGE);
244: } else {
245: Document doc = null;
246: try {
247: doc = xmlParser(xmlFile);
248: } catch (Exception ex) {
249: ex.printStackTrace();
250: errorMessage += Language
251: .getInstance()
252: .getText(
253: "Problème_lors_de_l'import_des_données_du_document_XML");
254: showErrorMessage();
255: }
256: try {
257: if (initSelection) {
258: new ImportTestChooser(
259: CreateProjectDialog.this , doc, true);
260: } else {
261: new ImportTestChooser(
262: CreateProjectDialog.this , doc,
263: false);
264: }
265: } catch (Exception ex) {
266: ex.printStackTrace();
267: errorMessage += Language
268: .getInstance()
269: .getText(
270: "Probleme_lors_de_la_selection_des_tests");
271: showErrorMessage();
272: }
273: }
274: }
275: });
276: tousTests = new JLabel(Language.getInstance().getText(
277: "(Par_défaut,_tous_les_tests_sont_importés)"));
278: tousTests.setFont(new Font(null, Font.ITALIC, 12));
279:
280: JPanel importTestPanel = new JPanel();
281: importTestPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
282: importTestPanel.add(importCampBox);
283:
284: JPanel selectTestPanel = new JPanel();
285: selectTestPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
286: selectTestPanel.add(testSelection);
287: selectTestPanel.add(tousTests);
288:
289: JPanel selectPanel = new JPanel();
290: selectPanel.setLayout(new BoxLayout(selectPanel,
291: BoxLayout.Y_AXIS));
292: selectPanel.setBorder(BorderFactory.createRaisedBevelBorder());
293: selectPanel.add(importTestPanel);
294: selectPanel.add(selectTestPanel);
295:
296: sauvLabel = new JLabel(Language.getInstance().getText(
297: "Fichier_XML_:"));
298: sauvTF = new JTextField(40);
299: sauvButton = new JButton(Language.getInstance().getText(
300: "Choisir..."));
301: sauvButton.addActionListener(new ActionListener() {
302: public void actionPerformed(ActionEvent e) {
303: try {
304: JFileChooser fileChooser = new JFileChooser();
305: fileChooser
306: .addChoosableFileFilter(new ScriptFileFilter(
307: Language.getInstance().getText(
308: "Fichier_XML_[*.xml]"),
309: ".xml"));
310: int returnVal = fileChooser.showDialog(
311: CreateProjectDialog.this , Language
312: .getInstance().getText(
313: "Sélectionner"));
314: if (returnVal == JFileChooser.APPROVE_OPTION) {
315: xmlFile = fileChooser.getSelectedFile()
316: .getAbsolutePath();
317: if (xmlFile.indexOf(".") != -1) {
318: if (!xmlFile.substring(
319: xmlFile.lastIndexOf(".")).equals(
320: ".xml")) {
321: xmlFile += ".xml";
322: }
323: } else {
324: xmlFile += ".xml";
325: }
326: sauvTF.setText(xmlFile);
327: }
328: } catch (Exception ex) {
329: Tools.ihmExceptionView(ex);
330: }
331: }
332: });
333:
334: JPanel sauvLabelPanel = new JPanel(new FlowLayout(
335: FlowLayout.LEFT));
336: sauvLabelPanel.add(sauvLabel);
337: JPanel sauvTFPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
338: sauvTFPanel.add(sauvTF);
339: JPanel sauvButtonPanel = new JPanel(new FlowLayout(
340: FlowLayout.LEFT));
341: sauvButtonPanel.add(sauvButton);
342:
343: JPanel sauvPanel = new JPanel();
344: sauvPanel.setLayout(new BoxLayout(sauvPanel, BoxLayout.Y_AXIS));
345: sauvPanel.setBorder(BorderFactory.createRaisedBevelBorder());
346: sauvPanel.add(sauvLabelPanel);
347: sauvPanel.add(sauvTFPanel);
348: sauvPanel.add(sauvButtonPanel);
349:
350: JButton validation = new JButton(Language.getInstance()
351: .getText("Valider"));
352: validation.setToolTipText(Language.getInstance().getText(
353: "Valider"));
354: validation.addActionListener(new ActionListener() {
355: public void actionPerformed(ActionEvent e) {
356: try {
357: if (projetNameTextField.getText().trim() != null
358: && !projetNameTextField.getText().trim()
359: .equals("")) {
360: if (!pAdminVTData
361: .containsProjectInModel(projetNameTextField
362: .getText().trim())) {
363: if (adminNameComboBox.getSelectedItem() != null) {
364: if (!sauvTF.getText().equals("")) {
365: Document doc = null;
366: try {
367: doc = xmlParser(xmlFile);
368: } catch (Exception ex) {
369: ex.printStackTrace();
370: errorMessage += Language
371: .getInstance()
372: .getText(
373: "Problème_lors_de_l'import_des_données_du_document_XML");
374: showErrorMessage();
375: }
376: newProject = new Project(
377: projetNameTextField
378: .getText().trim(),
379: descriptionArea.getText());
380: //newProject.setName(projetNameTextField.getText().trim());
381: newProject
382: .setAdministratorInModel((User) adminNameComboBox
383: .getSelectedItem());
384: //newProject.setDescription(descriptionArea.getText());
385: if (!DocXMLPlugin.importInV2) {
386: traitement = new ImportXML(
387: CreateProjectDialog.this ,
388: doc,
389: familySelectionList,
390: suiteSelectionList,
391: testSelectionList,
392: pAdminVTData,
393: pIPlugObject);
394: traitement
395: .setDirXml(xmlFile
396: .substring(
397: 0,
398: xmlFile
399: .lastIndexOf(System
400: .getProperties()
401: .getProperty(
402: "file.separator"))));
403: traitement
404: .setSelectionDesTests(selectionDesTests);
405: traitement
406: .setImportOnlyTests(!importCampBox
407: .isSelected());
408: traitement.importInNewProject();
409: } else {
410: traitement2 = new ImportXML2(
411: CreateProjectDialog.this ,
412: doc,
413: familySelectionList,
414: suiteSelectionList,
415: testSelectionList,
416: pAdminVTData,
417: pIPlugObject);
418: traitement2
419: .setDirXml(xmlFile
420: .substring(
421: 0,
422: xmlFile
423: .lastIndexOf(System
424: .getProperties()
425: .getProperty(
426: "file.separator"))));
427: traitement2
428: .setInitSelection(isInitSelection());
429: traitement2
430: .setImportCampaign(importCampBox
431: .isSelected());
432: traitement2
433: .importInNewProject();
434: }
435: if (!DocXMLPlugin.importInV2
436: && !traitement.isAnnule()
437: || DocXMLPlugin.importInV2
438: && !traitement2.isAnnule()) {
439: if (errorMessage.equals("")) {
440: JOptionPane
441: .showMessageDialog(
442: CreateProjectDialog.this ,
443: Language
444: .getInstance()
445: .getText(
446: "L'import_s'est_terminée_avec_succès."),
447: Language
448: .getInstance()
449: .getText(
450: "Information..."),
451: JOptionPane.INFORMATION_MESSAGE);
452: CreateProjectDialog.this
453: .dispose();
454: } else {
455: JOptionPane
456: .showMessageDialog(
457: CreateProjectDialog.this ,
458: errorMessage,
459: Language
460: .getInstance()
461: .getText(
462: "Erreur..."),
463: JOptionPane.ERROR_MESSAGE);
464: CreateProjectDialog.this
465: .dispose();
466: }
467: } else if (!errorMessage.equals("")) {
468: JOptionPane
469: .showMessageDialog(
470: CreateProjectDialog.this ,
471: errorMessage,
472: Language
473: .getInstance()
474: .getText(
475: "Erreur..."),
476: JOptionPane.ERROR_MESSAGE);
477: CreateProjectDialog.this
478: .dispose();
479: }
480: } else {
481: JOptionPane
482: .showMessageDialog(
483: CreateProjectDialog.this ,
484: Language
485: .getInstance()
486: .getText(
487: "Vous_devez_entrez_un_nom_de_fichier_pour_le_document_généré"),
488: Language
489: .getInstance()
490: .getText(
491: "Erreur_!"),
492: JOptionPane.ERROR_MESSAGE);
493: }
494: } else {
495: JOptionPane
496: .showMessageDialog(
497: CreateProjectDialog.this ,
498: Language
499: .getInstance()
500: .getText(
501: "Il_faut_obligatoirement_nommer_un_administrateur_au_projet_!"),
502: Language
503: .getInstance()
504: .getText(
505: "Attention_!"),
506: JOptionPane.WARNING_MESSAGE);
507: }
508: } else {
509: JOptionPane
510: .showMessageDialog(
511: CreateProjectDialog.this ,
512: Language
513: .getInstance()
514: .getText(
515: "Ce_nom_de_projet_existe_déjà_!"),
516: Language
517: .getInstance()
518: .getText(
519: "Attention_!"),
520: JOptionPane.WARNING_MESSAGE);
521: }
522: } else {
523: JOptionPane
524: .showMessageDialog(
525: CreateProjectDialog.this ,
526: Language
527: .getInstance()
528: .getText(
529: "Il_faut_obligatoirement_donner_un_nom_au_projet_!"),
530: Language.getInstance().getText(
531: "Attention_!"),
532: JOptionPane.WARNING_MESSAGE);
533: }
534: } catch (Exception ex) {
535: Tools.ihmExceptionView(ex);
536: }
537: }
538: });
539:
540: JButton cancel = new JButton(Language.getInstance().getText(
541: "Annuler"));
542: cancel
543: .setToolTipText(Language.getInstance().getText(
544: "Annuler"));
545: cancel.addActionListener(new ActionListener() {
546: public void actionPerformed(ActionEvent e) {
547: try {
548: if (traitement != null) {
549: traitement.setAnnule(true);
550: }
551: if (traitement2 != null) {
552: traitement2.setAnnule(true);
553: }
554: CreateProjectDialog.this .dispose();
555: } catch (Exception ex) {
556: Tools.ihmExceptionView(ex);
557: }
558: }
559: });
560:
561: JPanel buttonsSet = new JPanel(new FlowLayout(FlowLayout.RIGHT));
562: buttonsSet.add(validation);
563: buttonsSet.add(cancel);
564:
565: JTabbedPane onglets = new JTabbedPane();
566: onglets.addTab(Language.getInstance().getText("Principal"),
567: selectPanel);
568: int size2 = panelsPluginsForImport.size();
569: for (int i = 0; i < size2; i++) {
570: JPanel pPanel = (JPanel) panelsPluginsForImport
571: .elementAt(i);
572: String name = pPanel.getName();
573: onglets.addTab(name, pPanel);
574: }
575:
576: JPanel page = new JPanel();
577: page.setLayout(new BoxLayout(page, BoxLayout.Y_AXIS));
578: page.add(Box.createVerticalStrut(10));
579: page.add(adminPanel);
580: page.add(Box.createVerticalStrut(10));
581: page.add(newProjectPanel);
582: page.add(Box.createVerticalStrut(10));
583: page.add(sauvPanel);
584: page.add(Box.createVerticalStrut(10));
585: page.add(onglets);
586: page.add(Box.createVerticalStrut(10));
587: page.add(buttonsSet);
588:
589: Container contentPaneFrame = this .getContentPane();
590: contentPaneFrame.add(page, BorderLayout.CENTER);
591:
592: this .setTitle(Language.getInstance().getText(
593: "Créer_un_nouveau_projet"));
594: //this.setLocation(300,100);
595: centerScreen();
596: }
597:
598: void centerScreen() {
599: Dimension dim = getToolkit().getScreenSize();
600: this .pack();
601: Rectangle abounds = getBounds();
602: setLocation((dim.width - abounds.width) / 2,
603: (dim.height - abounds.height) / 2);
604: this .setVisible(true);
605: requestFocus();
606: }
607:
608: /**
609: * Méthode qui parse le document XML dont le chemin est indiqué dans "path"
610: * @param path
611: * @return un document DOM4J
612: * @throws Exception
613: */
614: public Document xmlParser(String path) throws Exception {
615: SAXReader reader = new SAXReader(false);
616: Document doc = reader.read(new FileInputStream(new File(path)));
617: return doc;
618: }
619:
620: /**
621: * Méthode qui affiche les messages d'erreur
622: * @return
623: */
624: public void showErrorMessage() {
625: JOptionPane
626: .showMessageDialog(CreateProjectDialog.this ,
627: errorMessage, Language.getInstance().getText(
628: "Erreur_!"), JOptionPane.ERROR_MESSAGE);
629: CreateProjectDialog.this .dispose();
630: }
631:
632: /**
633: * @return Returns the chosenRoot.
634: */
635: public DefaultMutableTreeNode getChosenRoot() {
636: return chosenRoot;
637: }
638:
639: /**
640: * @param chosenRoot The chosenRoot to set.
641: */
642: public void setChosenRoot(DefaultMutableTreeNode chosenRoot) {
643: this .chosenRoot = chosenRoot;
644: }
645:
646: /**
647: * @return Returns the initSelection.
648: */
649: public boolean isInitSelection() {
650: return initSelection;
651: }
652:
653: /**
654: * @param initSelection The initSelection to set.
655: */
656: public void setInitSelection(boolean initSelection) {
657: this .initSelection = initSelection;
658: }
659:
660: /**
661: * @return Returns the familySelectionList.
662: */
663: public ArrayList<Family> getFamilySelectionList() {
664: return familySelectionList;
665: }
666:
667: /**
668: * @param familySelectionList The familySelectionList to set.
669: */
670: public void setFamilySelectionList(
671: ArrayList<Family> familySelectionList) {
672: this .familySelectionList = familySelectionList;
673: }
674:
675: /**
676: * @return Returns the suiteSelectionList.
677: */
678: public ArrayList<TestList> getSuiteSelectionList() {
679: return suiteSelectionList;
680: }
681:
682: /**
683: * @param suiteSelectionList The suiteSelectionList to set.
684: */
685: public void setSuiteSelectionList(
686: ArrayList<TestList> suiteSelectionList) {
687: this .suiteSelectionList = suiteSelectionList;
688: }
689:
690: /**
691: * @return Returns the testSelectionList.
692: */
693: public ArrayList<Test> getTestSelectionList() {
694: return testSelectionList;
695: }
696:
697: /**
698: * @param testSelectionList The testSelectionList to set.
699: */
700: public void setTestSelectionList(ArrayList<Test> testSelectionList) {
701: this .testSelectionList = testSelectionList;
702: }
703:
704: /**
705: * @return Returns the selectionDesTests.
706: */
707: public boolean isSelectionDesTests() {
708: return selectionDesTests;
709: }
710:
711: /**
712: * @param selectionDesTests The selectionDesTests to set.
713: */
714: public void setSelectionDesTests(boolean selectionDesTests) {
715: this .selectionDesTests = selectionDesTests;
716: }
717:
718: /**
719: * @return Returns the newProject.
720: */
721: public Project getNewProject() {
722: return newProject;
723: }
724:
725: /**
726: * @param newProject The newProject to set.
727: */
728: public void setNewProject(Project newProject) {
729: this .newProject = newProject;
730: }
731:
732: /**
733: * @return Returns the errorMessage.
734: */
735: public String getErrorMessage() {
736: return errorMessage;
737: }
738:
739: /**
740: * @param errorMessage The errorMessage to set.
741: */
742: public void setErrorMessage(String errorMessage) {
743: this .errorMessage = errorMessage;
744: }
745:
746: /**
747: * @return Returns the recupAttachPb.
748: */
749: public boolean isRecupAttachPb() {
750: return recupAttachPb;
751: }
752:
753: /**
754: * @param recupAttachPb The recupAttachPb to set.
755: */
756: public void setRecupAttachPb(boolean recupAttachPb) {
757: this .recupAttachPb = recupAttachPb;
758: }
759:
760: /**
761: * @return Returns the majAttachPb.
762: */
763: public boolean isMajAttachPb() {
764: return majAttachPb;
765: }
766:
767: /**
768: * @param majAttachPb The majAttachPb to set.
769: */
770: public void setMajAttachPb(boolean majAttachPb) {
771: this.majAttachPb = majAttachPb;
772: }
773: }
|