UPNPUtils.SOAPTest();
String xml = UPNPUtils.getSOAPData(); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setValidating(false); SAXParser parser; try { parser = factory.newSAXParser(); XMLReader reader = parser.getXMLReader(); reader.setContentHandler(new AddonInfosXMLHandler()); reader.parse(new InputSource(new StringReader(xml)));  } catch (ParserConfigurationException e1) { System.err.println(e1); } catch (SAXException e1) { System.err.println(e1); } catch (IOException e1) { System.err.println(e1); }
	public void actionPerformed(ActionEvent e) {		Debug.msg("Action " + e.getActionCommand());		if (e.getActionCommand() == "exit") {			showExitDialog();		} else if (e.getActionCommand() == "about") {			showAboutDialog();		} else if (e.getActionCommand() == "help") {			Debug.err("No help available yet");		} else if (e.getActionCommand() == "website") {			final String url = "http://jfritz.sourceforge.net/";			try {				Runtime.getRuntime().exec(						"rundll32 url.dll,FileProtocolHandler " + url);			} catch (IOException e1) {				Debug.err("Website opening works only on win32 platforms.");			}		} else if (e.getActionCommand() == "export_csv") {			JFileChooser fc = new JFileChooser();			fc.setDialogTitle(jfritz.getMessages().getString("export_csv"));			fc.setDialogType(JFileChooser.SAVE_DIALOG);			fc.setSelectedFile(new File(JFritz.CALLS_CSV_FILE));			fc.setFileFilter(new FileFilter() {				public boolean accept(File f) {					return f.isDirectory()							|| f.getName().toLowerCase().endsWith(".csv");				}				public String getDescription() {					return "CSV-Dateien";				}			});			if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {				File file = fc.getSelectedFile();				jfritz.getCallerlist().saveToCSVFile(file.getAbsolutePath());			}		} else if (e.getActionCommand() == "export_vcard") {			if (callertable.getSelectedRow() >= 0					&& !((String) callertable.getModel().getValueAt(							callertable.getSelectedRow(), 3)).startsWith("?")					&& !((String) callertable.getModel().getValueAt(							callertable.getSelectedRow(), 3)).equals("")) {				String name = (String) callertable.getModel().getValueAt(						callertable.getSelectedRow(), 3);				String number = (String) callertable.getModel().getValueAt(						callertable.getSelectedRow(), 2);				JFileChooser fc = new JFileChooser();				fc.setDialogTitle(jfritz.getMessages()						.getString("export_vcard"));				fc.setDialogType(JFileChooser.SAVE_DIALOG);				fc.setSelectedFile(new File(number + ".vcf"));				fc.setFileFilter(new FileFilter() {					public boolean accept(File f) {						return f.isDirectory()								|| f.getName().toLowerCase().endsWith(".vcf");					}					public String getDescription() {						return "VCard (.vcf)";					}				});				if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {					File file = fc.getSelectedFile();					VCard vcard = new VCard(name, number);					vcard.saveToFile(file);				}			} else {				Debug.err("No valid row selected");			}		} else if (e.getActionCommand() == "config") {			showConfigDialog();		} else if (e.getActionCommand() == "phonebook") {			showPhoneBook();		} else if (e.getActionCommand() == "quickdial") {			showQuickDialDialog();		} else if (e.getActionCommand() == "stats") {			UPNPUtils.SOAPTest();		} else if (e.getActionCommand() == "fetchList") {			fetchList();		} else if (e.getActionCommand() == "fetchTask") {			fetchTask(((JToggleButton) e.getSource()).isSelected());		} else if (e.getActionCommand() == "reverselookup") {			reverseLookup();		} else if (e.getActionCommand() == "filter_callin") {			properties.setProperty("filter.callin", Boolean					.toString(!((JToggleButton) e.getSource()).isSelected()));			jfritz.getCallerlist().updateFilter();			jfritz.getCallerlist().fireTableStructureChanged();		} else if (e.getActionCommand() == "filter_callinfailed") {			properties.setProperty("filter.callinfailed", Boolean					.toString(!((JToggleButton) e.getSource()).isSelected()));			jfritz.getCallerlist().updateFilter();			jfritz.getCallerlist().fireTableStructureChanged();		} else if (e.getActionCommand() == "filter_callout") {			properties.setProperty("filter.callout", Boolean					.toString(!((JToggleButton) e.getSource()).isSelected()));			jfritz.getCallerlist().updateFilter();			jfritz.getCallerlist().fireTableStructureChanged();		} else if (e.getActionCommand() == "filter_number") {			properties.setProperty("filter.number", Boolean					.toString(!((JToggleButton) e.getSource()).isSelected()));			jfritz.getCallerlist().updateFilter();			jfritz.getCallerlist().fireTableStructureChanged();		} else if (e.getActionCommand() == "clearSearchFilter") {			searchFilter.setText("");			properties.setProperty("filter.search", "");			jfritz.getCallerlist().updateFilter();			jfritz.getCallerlist().fireTableStructureChanged();		} else {			Debug.err("Unimplemented action: " + e.getActionCommand());		}	}