public void actionPerformed(ActionEvent ae) {
					try {
						String [] outcomes = m_BayesNet.getValues(m_nCurrentNode);
						int iValue = 0;
						while (iValue < outcomes.length && !outcomes[iValue].equals(ae.getActionCommand())) {
							iValue++;
						}

						if (iValue == outcomes.length) {
							iValue = -1;
						}
						if (iValue < outcomes.length) {
						    m_jStatusBar.setText("Set evidence for " + m_BayesNet.getNodeName(m_nCurrentNode));
								if (m_BayesNet.getEvidence(m_nCurrentNode) < 0 && iValue >= 0) {
									m_BayesNet.setEvidence(m_nCurrentNode, iValue);
									m_marginCalculatorWithEvidence.setEvidence(m_nCurrentNode, iValue);
								} else {
									m_BayesNet.setEvidence(m_nCurrentNode, iValue);
									SerializedObject so = new SerializedObject(m_marginCalculator);
									m_marginCalculatorWithEvidence = (MarginCalculator) so.getObject();
									for (int iNode = 0; iNode < m_BayesNet.getNrOfNodes(); iNode++) {
										if (m_BayesNet.getEvidence(iNode) >= 0) {
											m_marginCalculatorWithEvidence.setEvidence(iNode, m_BayesNet.getEvidence(iNode));
										}
									}
								}
							for (int iNode = 0; iNode < m_BayesNet.getNrOfNodes(); iNode++) {
								m_BayesNet.setMargin(iNode, m_marginCalculatorWithEvidence.getMargin(iNode));
							}
						}
						} catch (Exception e) {
							e.printStackTrace();
						}
						repaint();
				}