|
From: Pelle B. <pe...@us...> - 2004-04-15 23:59:04
|
Update of /cvsroot/neuclear/neuclear-signer/src/java/org/neuclear/signers/standalone In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22741/src/java/org/neuclear/signers/standalone Modified Files: StandaloneSigner.java Log Message: Added help menu with links to web site. Added About menu item. Now uses JTidy to tidy up html before signing it. Index: StandaloneSigner.java =================================================================== RCS file: /cvsroot/neuclear/neuclear-signer/src/java/org/neuclear/signers/standalone/StandaloneSigner.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** StandaloneSigner.java 15 Apr 2004 20:03:26 -0000 1.7 --- StandaloneSigner.java 15 Apr 2004 23:58:54 -0000 1.8 *************** *** 3,6 **** --- 3,7 ---- import com.jgoodies.plaf.Options; import org.dom4j.Document; + import org.dom4j.io.DOMReader; import org.mortbay.http.HttpContext; import org.mortbay.jetty.Server; *************** *** 10,22 **** import org.neuclear.commons.crypto.CryptoTools; import org.neuclear.commons.crypto.passphraseagents.PassPhraseAgent; - import org.neuclear.commons.crypto.passphraseagents.UserCancellationException; import org.neuclear.commons.crypto.passphraseagents.swing.MessageLabel; import org.neuclear.commons.crypto.signers.BrowsableSigner; import org.neuclear.commons.crypto.signers.DefaultSigner; - import org.neuclear.xml.XMLException; import org.neuclear.xml.XMLTools; import org.neuclear.xml.xmlsec.EnvelopedSignature; import org.neuclear.xml.xmlsec.XMLSignature; import javax.swing.*; import javax.swing.filechooser.FileFilter; --- 11,24 ---- import org.neuclear.commons.crypto.CryptoTools; import org.neuclear.commons.crypto.passphraseagents.PassPhraseAgent; import org.neuclear.commons.crypto.passphraseagents.swing.MessageLabel; import org.neuclear.commons.crypto.signers.BrowsableSigner; import org.neuclear.commons.crypto.signers.DefaultSigner; import org.neuclear.xml.XMLTools; import org.neuclear.xml.xmlsec.EnvelopedSignature; import org.neuclear.xml.xmlsec.XMLSignature; + import org.w3c.tidy.Tidy; + import javax.jnlp.BasicService; + import javax.jnlp.ServiceManager; import javax.swing.*; import javax.swing.filechooser.FileFilter; *************** *** 25,29 **** --- 27,34 ---- import java.awt.event.ActionListener; import java.awt.event.KeyEvent; + import java.io.BufferedInputStream; import java.io.File; + import java.io.FileInputStream; + import java.io.InputStream; import java.net.URL; *************** *** 146,149 **** --- 151,177 ---- }); + + JMenu help = new JMenu("Help"); + help.setMnemonic(KeyEvent.VK_H); + menubar.add(help); + + help.add(createWebMenuItem("NeuClear Site", "http://neuclear.org", message)); + help.add(createWebMenuItem("The Two-Minute NeuClear Tour", "http://neuclear.org/display/neu/The+Two-Minute+NeuClear+Tour", message)); + help.addSeparator(); + help.add(createWebMenuItem("Road Map", "http://jira.neuclear.org/secure/BrowseProject.jspa?id=10030&report=roadmap", message)); + help.add(createWebMenuItem("Report Bug or Suggest Feature", "http://jira.neuclear.org/secure/CreateIssue!default.jspa", message)); + help.addSeparator(); + JMenuItem about = new JMenuItem("About"); + about.setMnemonic(KeyEvent.VK_A); + help.add(about); + about.addActionListener(new ActionListener() { + /** + * Invoked when an action occurs. + */ + public void actionPerformed(ActionEvent e) { + new SplashWindow(frame, Toolkit.getDefaultToolkit().createImage(QuickStart.class.getClassLoader().getResource("neuclearsplash.png"))).show(); + } + + }); frame.pack(); frame.show(); *************** *** 153,156 **** --- 181,204 ---- } + private static JMenuItem createWebMenuItem(final String title, final String url, final MessageLabel message) { + final JMenuItem item = new JMenuItem(title); + item.addActionListener(new ActionListener() { + /** + * Invoked when an action occurs. + */ + public void actionPerformed(ActionEvent e) { + try { + BasicService bs = (BasicService) ServiceManager.lookup("javax.jnlp.BasicService"); + // Invoke the showDocument method + bs.showDocument(new URL(url)); + } catch (Exception e1) { + message.error(e1); + } + } + + }); + return item; + } + public static class SignDocument implements Runnable { public SignDocument(BrowsableSigner signer, JFileChooser chooser, JFrame frame, MessageLabel message) { *************** *** 172,176 **** try { message.info("Parsing " + chooser.getSelectedFile().getName()); ! Document doc = XMLTools.loadDocument(chooser.getSelectedFile()); message.info("Signing " + chooser.getSelectedFile().getName()); XMLSignature sig = new EnvelopedSignature(signer, doc.getRootElement()); --- 220,234 ---- try { message.info("Parsing " + chooser.getSelectedFile().getName()); ! final File file = chooser.getSelectedFile(); ! Document doc; ! if (file.getName().endsWith(".html") || file.getName().endsWith(".html")) { ! Tidy tidy = new Tidy(); ! tidy.setXmlOut(true); ! InputStream is = new BufferedInputStream(new FileInputStream(file)); ! org.w3c.dom.Document dom = tidy.parseDOM(is, null); ! DOMReader reader = new DOMReader(); ! doc = reader.read(dom); ! } else ! doc = XMLTools.loadDocument(file); message.info("Signing " + chooser.getSelectedFile().getName()); XMLSignature sig = new EnvelopedSignature(signer, doc.getRootElement()); *************** *** 187,194 **** frame.setEnabled(true); ! } catch (XMLException e) { ! frame.setEnabled(true); ! message.error(e); ! } catch (UserCancellationException e) { frame.setEnabled(true); message.error(e); --- 245,249 ---- frame.setEnabled(true); ! } catch (Exception e) { frame.setEnabled(true); message.error(e); *************** *** 201,204 **** --- 256,260 ---- private final JFrame frame; private final MessageLabel message; + private final static String CVSID = "$Id$"; } |