+ " "
+ " \n"
	public void launchProductApplication (Product product)	{		// on recupere le logiciel		Tool tToolProduct = product.getEditor();		if (tToolProduct == null)		{			JOptionPane.showMessageDialog(null, LanguagesManager.getInstance()					.getString("nonDefineTool"), LanguagesManager.getInstance()					.getString("nonDefineToolTitle"),					JOptionPane.WARNING_MESSAGE);		}		else		{			// recuperation du nom et du chemin			String sPath = tToolProduct.getPath();			// on test si le path existe			if (sPath == null || sPath.equals(""))			{				JOptionPane.showMessageDialog(null, LanguagesManager						.getInstance().getString("nonDefineToolPath"),						LanguagesManager.getInstance().getString(								"nonDefineToolPathTitle"),						JOptionPane.WARNING_MESSAGE);				// on ouvre le dialogue				new SetToolDialog(null, tToolProduct);			}			else			{				// execution de la commande complete				try				{					// sBody on construit sBody pour qu'il y ait la chaine					// suivante					// Le produit doit tre sauvegarder dans le dossier					// /unChemin et doit avoir pour nom nomProduit.					String sBody = LanguagesManager.getInstance().getString(							"WarningSaveProductName1")							+ " "							+ PreferencesManager.getInstance().getWorkspace()							+ File.separator							+ ApplicationManager.getInstance()									.getCurrentProject().getName()							+ File.separator							+ Project.DOCS_DIRECTORY							+ " "							+ LanguagesManager.getInstance().getString(									"WarningSaveProductName2")							+ " \""							+ product.getName() + "\".";					JOptionPane.showMessageDialog(null, sBody, LanguagesManager							.getInstance().getString(									"WarningSaveProductNameTitle"),							JOptionPane.INFORMATION_MESSAGE);					Process p = Runtime.getRuntime().exec(sPath);					if (p == null)					{						JOptionPane.showMessageDialog(null, LanguagesManager								.getInstance().getString("ErreurDeLancement"),								LanguagesManager.getInstance().getString(										"ErreurDeLancementTitle"),								JOptionPane.WARNING_MESSAGE);					}					else					{						/* debut des modifications -> baloo */						// l'application cible est bien lancee, on cree une						// reference						// au produit (que va enregistrer l'utilisateur) dans le						// fichier						// documentation.properties						Properties pProduct = new Properties();						// recupere le workspace courant						String sPathProperties = PreferencesManager								.getInstance().getWorkspace();						// recupere le chemin du .properties du projet courant						sPathProperties += "/"								+ ApplicationManager.getInstance()										.getCurrentProject().getName();						sPathProperties += "/documentation.properties";						File fileProperties = new File(sPathProperties);						// charge le fichier						pProduct.load(new FileInputStream(fileProperties));						pProduct								.setProperty(product.getId(), product.getName());						// enregistre les modifications						pProduct								.store(										new FileOutputStream(fileProperties),										LanguagesManager												.getInstance()												.getString(														"ListProductsPanelCommentsFileProperties"));					}					/* fin des modifications -> baloo */				}				catch (IOException e)				{					// TODO GERER CETTE ERREUR					// automatiquement					e.printStackTrace();					JOptionPane.showMessageDialog(null, LanguagesManager							.getInstance().getString("ErreurDeLancement"),							LanguagesManager.getInstance().getString(									"ErreurDeLancementTitle"),							JOptionPane.WARNING_MESSAGE);				}			}		}	}