/* * Main.java * * Created on 21. September 2006, 09:13 * This File is part of PortableSigner (http://portablesigner.sf.net/) * and is under the European Public License V1.1 (http://www.osor.eu/eupl) * (c) Peter Pfl?ging <peter@pflaeging.net> */ package net.pflaeging.PortableSigner; import java.awt.Color; import java.awt.Cursor; import java.awt.Desktop; import java.io.IOException; import java.security.NoSuchAlgorithmException; import java.util.ResourceBundle; import java.util.Vector; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.DefaultComboBoxModel; import javax.swing.SwingWorker; import javax.swing.UIManager; /* * @author peter@pflaeging.net */ public class Main extends javax.swing.JFrame { private static SignCommandLine mycommand; public String copyright = "Peter Pfl\u00e4ging <peter@pflaeging.net>"; public String url = "http://portablesigner.sf.net/"; public String contributors = "Contributors:\n" + "Bogdan Drozdowski, " + "Alessio Caiazza, " + "Dominik Joe Pant\u016f\u010dek" + "\n\nTranslations:\n" + "PL: Bogdan Drozdowski\n" + "IT: Alessio Caiazza\n" + "CZ: Tom\u00e1\u0161 Hal\u00e1sz\n" + "DE: Peter Pfl\u00e4ging\n" + "ES: Roberto Espinosa\n"; private Preferences prefs; public String pagePlacement; private static java.awt.Color resultcolor; private static String result, exceptionstring; public static String platform; String inputPDFFile = "", outputPDFFile = "", signatureP12File = ""; String password = ""; private Vector<String> signatureBlockLanguages = new Vector<String>(); private Vector<String> signatureBlockPage = new Vector<String>(); private static final Color colorok = new Color(0, 240, 0); private static final Color colorerror = new Color(240, 0, 0); private static final Color gotitcolor = new Color(0, 0, 240); private static boolean workingJCE = true, finalize = true; Cursor questionCursor = new Cursor(Cursor.HAND_CURSOR); Cursor defaultCursor = new Cursor(Cursor.DEFAULT_CURSOR); Version version = new Version(); private static final ResourceBundle rbi18n = ResourceBundle.getBundle("net/pflaeging/PortableSigner/i18n"); private static final ResourceBundle rbSigBlock = ResourceBundle.getBundle("net/pflaeging/PortableSigner/SignatureblockLanguages"); /** Creates new form Main */ public Main() { java.util.Enumeration<String> langNumbers = rbSigBlock.getKeys(); while ( langNumbers.hasMoreElements() ) { String languageCode = langNumbers.nextElement(); String language = rbSigBlock.getString(languageCode); // System.out.println("Sprache: " + language + " (" + languageCode + ")"); signatureBlockLanguages.add(language + " (" + languageCode + ")"); } signatureBlockPage.add(rbi18n .getString("SignatureBlockpositionFirst")); signatureBlockPage.add(rbi18n .getString("SignatureBlockpositionLast")); prefs = new Preferences(); prefs.get(); if (prefs.signLastPage) { pagePlacement = rbi18n .getString("SignatureBlockpositionLast"); } else { pagePlacement = rbi18n .getString("SignatureBlockpositionFirst"); } if (prefs.signLanguage.length() != 2) { // we have old prefs! prefs.set("SignLanguage", "de"); prefs.get(); } // System.out.println(prefs.lastInputFile + prefs.lastOutputFile + prefs.lastP12File); String operatingSystem = System.getProperty("os.name"); if (operatingSystem.contains("Mac OS X")) { platform = "mac"; System.setProperty( "Quaqua.design","Lion" ); System.setProperty( "Quaqua.tabLayoutPolicy","wrap" ); // set the Quaqua Look and Feel in the UIManager try { UIManager.setLookAndFeel( "ch.randelshofer.quaqua.QuaquaLookAndFeel" ); // set UI manager properties here that affect Quaqua } catch (Exception e) { // take an appropriate action here System.err.println("Unable to load Aqua UI"); } } else if (operatingSystem.contains("Windows")) { platform = "windows"; try { UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel" ); } catch (Exception e) { // take an appropriate action here System.err.println("Unable to load Windows UI"); } } else { platform = "other"; } MultiLineToolTipUI.setMaximumWidth(250); MultiLineToolTipUI.initialize(); javax.swing.ToolTipManager.sharedInstance().setDismissDelay(20000); initComponents(); if (mycommand.signature == null || mycommand.signature.equals("")) { jTextFieldSignaturefile.setText(prefs.lastP12File); } else { jTextFieldSignaturefile.setText(mycommand.signature); } if (mycommand.input == null || mycommand.input.equals("")) { jTextFieldInputfile.setText(prefs.lastInputFile); } else { jTextFieldInputfile.setText(mycommand.input); } if (mycommand.output == null || mycommand.output.equals("")) { jTextFieldOutputfile.setText(generateOutputFile(jTextFieldInputfile.getText())); } else { jTextFieldOutputfile.setText(mycommand.output); } if (mycommand.password != null && ! "".equals(mycommand.password)) { jPasswordFieldPassword.setText(mycommand.password); } if (mycommand.sigimage.equals("")) { jTextFieldOptionLogo.setText(prefs.sigLogo); } else { jTextFieldOptionLogo.setText(mycommand.sigimage); } if (mycommand.location == null || mycommand.location.equals("")) { jTextFieldLocation.setText(prefs.signLocation); } else { jTextFieldLocation.setText(mycommand.location); } if (mycommand.reason == null || mycommand.reason.equals("")) { jTextFieldReason.setText(prefs.signReason); } else { jTextFieldReason.setText(mycommand.reason); } if (mycommand.comment == null || mycommand.comment.equals("")) { jTextPaneCommentField.setText(prefs.signComment); } else { jTextPaneCommentField.setText(mycommand.comment); prefs.set("useComment", true); jCheckBoxComment.setSelected(true); } if (mycommand.finalize == false) { finalize = false; } if (!mycommand.sigblock.equals("")) { // backward compatibility, !!!! if (mycommand.sigblock.equals("german")) { prefs.set("SignLanguage", "2"); } if (mycommand.sigblock.equals("english")) { prefs.set("SignLanguage", "1"); } prefs.set("SignText", true); } if (!workingJCE) { jDialogJCEAlert.setSize(650, 170); jDialogJCEAlert.setVisible(true); System.err.println(rbi18n .getString("JCEMissing")); System.exit(254); } if (prefs.toolTip) { jCheckBoxTooltip.setSelected(true); setTooltips(true); } else { jCheckBoxTooltip.setSelected(false); setTooltips(false); } } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jDialogCancel = new javax.swing.JDialog(); jPanelCancel = new javax.swing.JPanel(); jButtonCancelYes = new javax.swing.JButton(); jButtonCancelNo = new javax.swing.JButton(); jLabelCancelQuestion = new javax.swing.JLabel(); jDialogAbout = new javax.swing.JDialog(); jLabelAboutText = new javax.swing.JLabel(); jButtonAboutOk = new javax.swing.JButton(); jScrollPaneAboutVersion = new javax.swing.JScrollPane(); jTextAreaAboutVersion = new javax.swing.JTextArea(); jLabelAboutCopyright = new javax.swing.JLabel(); jButtonLicense = new javax.swing.JButton(); jDialogLicense = new javax.swing.JDialog(); jButtonLicenseOK = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); jTextAreaLicenseText = new javax.swing.JTextArea(); jFrameOption = new javax.swing.JFrame(); jButtonOptionSearchLogo = new javax.swing.JButton(); jLabelOptionLanguage = new javax.swing.JLabel(); jTextFieldOptionLogo = new javax.swing.JTextField(); jLabelOptionLogo = new javax.swing.JLabel(); jButtonOptionOK = new javax.swing.JButton(); jButtonResetLogo = new javax.swing.JButton(); jScrollPane3 = new javax.swing.JScrollPane(); jTextPaneCommentField = new javax.swing.JTextPane(); jButtonResetCommentField = new javax.swing.JButton(); jCheckBoxComment = new javax.swing.JCheckBox(); jLabelReason = new javax.swing.JLabel(); jTextFieldReason = new javax.swing.JTextField(); jLabelLocation = new javax.swing.JLabel(); jTextFieldLocation = new javax.swing.JTextField(); jComboBoxSignatureLanguage = new javax.swing.JComboBox(); jCheckBoxSeparatepage = new javax.swing.JCheckBox(); jLabel9 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); jLabel12 = new javax.swing.JLabel(); jTextFieldVPosition = new javax.swing.JTextField(); jTextFieldLMargin = new javax.swing.JTextField(); jTextFieldRMargin = new javax.swing.JTextField(); jLabel13 = new javax.swing.JLabel(); jComboBoxSignatureblockPage = new javax.swing.JComboBox(); jSeparator2 = new javax.swing.JSeparator(); jSeparator3 = new javax.swing.JSeparator(); jSeparator4 = new javax.swing.JSeparator(); jSeparator5 = new javax.swing.JSeparator(); buttonGroup1 = new javax.swing.ButtonGroup(); jFrameSelectKeystore = new javax.swing.JFrame(); jButtonSelectKeystoreFile = new javax.swing.JButton(); jButtonSelectKeystoreKeystore = new javax.swing.JButton(); jButtonSelectKeystoreCancel = new javax.swing.JButton(); jFrameChooseCert = new javax.swing.JFrame(); jScrollPaneCerts = new javax.swing.JScrollPane(); jListCerts = new javax.swing.JList(); jButtonCertOK = new javax.swing.JButton(); jButtonCertCancel = new javax.swing.JButton(); jButtonCertInfo = new javax.swing.JButton(); jFrameHelp = new javax.swing.JFrame(); jScrollPane2 = new javax.swing.JScrollPane(); jEditorPaneHelp = new javax.swing.JEditorPane(); jDialogJCEAlert = new javax.swing.JDialog(); jButtonJCEAlertOK = new javax.swing.JButton(); jLabelJCEAlert = new javax.swing.JLabel(); jDialogErrorReport = new javax.swing.JDialog(); jLabelErrorReportHeading = new javax.swing.JLabel(); jTextFieldErrorReport = new javax.swing.JTextField(); jButtonErrorReportOK = new javax.swing.JButton(); buttonGroup2 = new javax.swing.ButtonGroup(); buttonGroup3 = new javax.swing.ButtonGroup(); buttonGroup4 = new javax.swing.ButtonGroup(); buttonGroup5 = new javax.swing.ButtonGroup(); jLabelInput = new javax.swing.JLabel(); jLabelOutput = new javax.swing.JLabel(); jLabelSignature = new javax.swing.JLabel(); jTextFieldInputfile = new javax.swing.JTextField(); jButtonInputfile = new javax.swing.JButton(); jTextFieldOutputfile = new javax.swing.JTextField(); jButtonOutputfile = new javax.swing.JButton(); jTextFieldSignaturefile = new javax.swing.JTextField(); jButtonSignaturefile = new javax.swing.JButton(); jButtonCancelMain = new javax.swing.JButton(); jButtonAbout = new javax.swing.JButton(); jLabelTitle = new javax.swing.JLabel(); jSeparator1 = new javax.swing.JSeparator(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabelPassword = new javax.swing.JLabel(); jPasswordFieldPassword = new javax.swing.JPasswordField(); jButtonPasswordOK = new javax.swing.JButton(); jLabel5 = new javax.swing.JLabel(); jLabelSign = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabelWorking = new javax.swing.JLabel(); jProgressBar1 = new javax.swing.JProgressBar(); jLabel7 = new javax.swing.JLabel(); jLabelResult = new javax.swing.JLabel(); jLabelFinished = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jLabelRestart = new javax.swing.JLabel(); jLabelFinishNext = new javax.swing.JLabel(); jCheckBoxSignatureBlock = new javax.swing.JCheckBox(); jButtonOption = new javax.swing.JButton(); jLabel10 = new javax.swing.JLabel(); jCheckBoxFinalize = new javax.swing.JCheckBox(); jButtonErrorReport = new javax.swing.JButton(); jButtonViewOutput = new javax.swing.JButton(); jButtonViewSource = new javax.swing.JButton(); jMenuBarMain = new javax.swing.JMenuBar(); jMenuFile = new javax.swing.JMenu(); jMenuItemInputfile = new javax.swing.JMenuItem(); jMenuItemOutputfile = new javax.swing.JMenuItem(); jMenuItemSignaturefile = new javax.swing.JMenuItem(); jMenuItemSign = new javax.swing.JMenuItem(); jMenuItemQuit = new javax.swing.JMenuItem(); jMenuEdit = new javax.swing.JMenu(); jMenuItemOptions = new javax.swing.JMenuItem(); jMenuHelp = new javax.swing.JMenu(); jCheckBoxTooltip = new javax.swing.JCheckBoxMenuItem(); jMenuItemHelp = new javax.swing.JMenuItem(); jMenuItemAbout = new javax.swing.JMenuItem(); jDialogCancel.setAlwaysOnTop(true); jDialogCancel.setLocationByPlatform(true); jDialogCancel.setModal(true); jDialogCancel.getContentPane().setLayout(new java.awt.GridLayout(1, 0)); java.util.ResourceBundle bundle = rbi18n; // NOI18N jButtonCancelYes.setText(bundle.getString("Yes")); // NOI18N jButtonCancelYes.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonCancelYesActionPerformed(evt); } }); jButtonCancelNo.setText(bundle.getString("No")); // NOI18N jButtonCancelNo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonCancelNoActionPerformed(evt); } }); jLabelCancelQuestion.setText(bundle.getString("ReallyCancel")); // NOI18N org.jdesktop.layout.GroupLayout jPanelCancelLayout = new org.jdesktop.layout.GroupLayout(jPanelCancel); jPanelCancel.setLayout(jPanelCancelLayout); jPanelCancelLayout.setHorizontalGroup( jPanelCancelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jPanelCancelLayout.createSequentialGroup() .add(jPanelCancelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jPanelCancelLayout.createSequentialGroup() .addContainerGap() .add(jButtonCancelYes) .add(5, 5, 5) .add(jButtonCancelNo)) .add(jPanelCancelLayout.createSequentialGroup() .add(32, 32, 32) .add(jLabelCancelQuestion))) .addContainerGap(20, Short.MAX_VALUE)) ); jPanelCancelLayout.setVerticalGroup( jPanelCancelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jPanelCancelLayout.createSequentialGroup() .add(8, 8, 8) .add(jLabelCancelQuestion) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanelCancelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jButtonCancelNo) .add(jButtonCancelYes))) ); jDialogCancel.getContentPane().add(jPanelCancel); jDialogAbout.setLocationByPlatform(true); jDialogAbout.setResizable(false); jLabelAboutText.setFont(new java.awt.Font("Lucida Grande", 1, 18)); // NOI18N jLabelAboutText.setText("PortableSigner " + Version.release); jButtonAboutOk.setText(bundle.getString("OK")); // NOI18N jButtonAboutOk.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonAboutOkActionPerformed(evt); } }); jTextAreaAboutVersion.setColumns(20); jTextAreaAboutVersion.setRows(5); jScrollPaneAboutVersion.setViewportView(jTextAreaAboutVersion); jLabelAboutCopyright.setText("\u00a9 Peter Pfl\u00e4ging"); jButtonLicense.setText(bundle.getString("LicenseButton")); // NOI18N jButtonLicense.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonLicenseActionPerformed(evt); } }); org.jdesktop.layout.GroupLayout jDialogAboutLayout = new org.jdesktop.layout.GroupLayout(jDialogAbout.getContentPane()); jDialogAbout.getContentPane().setLayout(jDialogAboutLayout); jDialogAboutLayout.setHorizontalGroup( jDialogAboutLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jDialogAboutLayout.createSequentialGroup() .addContainerGap() .add(jDialogAboutLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jScrollPaneAboutVersion, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 417, Short.MAX_VALUE) .add(jDialogAboutLayout.createSequentialGroup() .add(jLabelAboutCopyright) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 145, Short.MAX_VALUE) .add(jButtonLicense) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jButtonAboutOk)) .add(jLabelAboutText)) .addContainerGap()) ); jDialogAboutLayout.setVerticalGroup( jDialogAboutLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, jDialogAboutLayout.createSequentialGroup() .addContainerGap() .add(jLabelAboutText) .add(14, 14, 14) .add(jScrollPaneAboutVersion, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 208, Short.MAX_VALUE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jDialogAboutLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jButtonAboutOk) .add(jLabelAboutCopyright) .add(jButtonLicense)) .addContainerGap()) ); jButtonLicenseOK.setText("OK"); jButtonLicenseOK.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonLicenseOKActionPerformed(evt); } }); jTextAreaLicenseText.setColumns(20); jTextAreaLicenseText.setRows(5); jTextAreaLicenseText.setText(bundle.getString("LicenseText")); // NOI18N jScrollPane1.setViewportView(jTextAreaLicenseText); org.jdesktop.layout.GroupLayout jDialogLicenseLayout = new org.jdesktop.layout.GroupLayout(jDialogLicense.getContentPane()); jDialogLicense.getContentPane().setLayout(jDialogLicenseLayout); jDialogLicenseLayout.setHorizontalGroup( jDialogLicenseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jDialogLicenseLayout.createSequentialGroup() .addContainerGap() .add(jDialogLicenseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, jButtonLicenseOK) .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 437, Short.MAX_VALUE)) .addContainerGap()) ); jDialogLicenseLayout.setVerticalGroup( jDialogLicenseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, jDialogLicenseLayout.createSequentialGroup() .addContainerGap() .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jButtonLicenseOK) .addContainerGap()) ); jFrameOption.setTitle("PortableSigner: Options"); jFrameOption.setAlwaysOnTop(true); jButtonOptionSearchLogo.setText(bundle.getString("SearchButton")); // NOI18N jButtonOptionSearchLogo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonOptionSearchLogoActionPerformed(evt); } }); jLabelOptionLanguage.setText(bundle.getString("LanguageOfSignatureBlock")); // NOI18N jLabelOptionLogo.setText(bundle.getString("SignatureLogo")); // NOI18N jButtonOptionOK.setText(bundle.getString("OK")); // NOI18N jButtonOptionOK.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonOptionOKActionPerformed(evt); } }); jButtonResetLogo.setText(bundle.getString("ResetLogo")); // NOI18N jButtonResetLogo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonResetLogoActionPerformed(evt); } }); jScrollPane3.setViewportView(jTextPaneCommentField); jButtonResetCommentField.setText(bundle.getString("ResetCommentField")); // NOI18N jButtonResetCommentField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonResetCommentFieldActionPerformed(evt); } }); jCheckBoxComment.setSelected(prefs.useComment); jCheckBoxComment.setText(bundle.getString("UseCommentField")); // NOI18N jCheckBoxComment.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jCheckBoxCommentActionPerformed(evt); } }); jLabelReason.setText(bundle.getString("ReasonForSignature")); // NOI18N jTextFieldReason.setText(prefs.signReason); jTextFieldReason.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextFieldReasonActionPerformed(evt); } }); jLabelLocation.setText(bundle.getString("Location")); // NOI18N jTextFieldLocation.setText(prefs.signLocation); jTextFieldLocation.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextFieldLocationActionPerformed(evt); } }); jComboBoxSignatureLanguage.setModel(new DefaultComboBoxModel(signatureBlockLanguages)); jComboBoxSignatureLanguage.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jComboBoxSignatureLanguageActionPerformed(evt); } }); jCheckBoxSeparatepage.setSelected(prefs.noExtraPage); jCheckBoxSeparatepage.setText(bundle.getString("NoPageSigBlock")); // NOI18N jCheckBoxSeparatepage.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jCheckBoxSeparatepageActionPerformed(evt); } }); jLabel9.setText(bundle.getString("VerticalPosition")); // NOI18N jLabel11.setText(bundle.getString("LeftMargin")); // NOI18N jLabel12.setText(bundle.getString("RightMargin")); // NOI18N jTextFieldVPosition.setText(String.valueOf(prefs.verticalPos)); jTextFieldLMargin.setText(String.valueOf(prefs.leftMargin)); jTextFieldRMargin.setText(String.valueOf(prefs.rightMargin)); jLabel13.setText(bundle.getString("SignatureBlockPage")); // NOI18N jComboBoxSignatureblockPage.setModel(new DefaultComboBoxModel(signatureBlockPage)); jComboBoxSignatureblockPage.setSelectedItem(pagePlacement); jComboBoxSignatureblockPage.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jComboBoxSignatureblockPageActionPerformed(evt); } }); org.jdesktop.layout.GroupLayout jFrameOptionLayout = new org.jdesktop.layout.GroupLayout(jFrameOption.getContentPane()); jFrameOption.getContentPane().setLayout(jFrameOptionLayout); jFrameOptionLayout.setHorizontalGroup( jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jFrameOptionLayout.createSequentialGroup() .addContainerGap() .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jSeparator4) .add(jSeparator3) .add(jFrameOptionLayout.createSequentialGroup() .add(jLabelOptionLogo) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jFrameOptionLayout.createSequentialGroup() .add(jTextFieldOptionLogo) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jButtonOptionSearchLogo)) .add(jFrameOptionLayout.createSequentialGroup() .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jButtonResetLogo) .add(jButtonResetCommentField) .add(jScrollPane3)) .add(8, 8, 8)))) .add(org.jdesktop.layout.GroupLayout.TRAILING, jFrameOptionLayout.createSequentialGroup() .add(99, 99, 99) .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) .add(jLabel9, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(jLabel11) .add(jLabel12) .add(jLabel13, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jFrameOptionLayout.createSequentialGroup() .add(jComboBoxSignatureblockPage, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 134, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 266, Short.MAX_VALUE)) .add(jFrameOptionLayout.createSequentialGroup() .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jTextFieldLMargin, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 45, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jTextFieldVPosition, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 45, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jTextFieldRMargin, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 45, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(jButtonOptionOK)))) .add(org.jdesktop.layout.GroupLayout.TRAILING, jFrameOptionLayout.createSequentialGroup() .add(101, 101, 101) .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jTextFieldReason) .add(jTextFieldLocation))) .add(jSeparator2) .add(jSeparator5) .add(jFrameOptionLayout.createSequentialGroup() .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jCheckBoxComment) .add(jLabelReason) .add(jLabelLocation) .add(jCheckBoxSeparatepage) .add(jFrameOptionLayout.createSequentialGroup() .add(jLabelOptionLanguage) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jComboBoxSignatureLanguage, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 182, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) .add(0, 0, Short.MAX_VALUE))) .add(0, 0, 0)) ); jFrameOptionLayout.setVerticalGroup( jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jFrameOptionLayout.createSequentialGroup() .addContainerGap() .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabelOptionLanguage) .add(jComboBoxSignatureLanguage, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jSeparator5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabelOptionLogo) .add(jTextFieldOptionLogo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jButtonOptionSearchLogo)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jButtonResetLogo) .add(2, 2, 2) .add(jSeparator2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jCheckBoxComment) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jScrollPane3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 134, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jButtonResetCommentField) .add(1, 1, 1) .add(jSeparator3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabelReason) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jTextFieldReason, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabelLocation) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jTextFieldLocation, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(12, 12, 12) .add(jSeparator4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jFrameOptionLayout.createSequentialGroup() .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jCheckBoxSeparatepage) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel13) .add(jComboBoxSignatureblockPage, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel9) .add(jTextFieldVPosition, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 26, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jTextFieldLMargin, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jFrameOptionLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jTextFieldRMargin, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabel12)) .add(27, 27, 27)) .add(org.jdesktop.layout.GroupLayout.TRAILING, jFrameOptionLayout.createSequentialGroup() .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(jButtonOptionOK) .addContainerGap()))) ); jFrameSelectKeystore.setTitle("Select Keystore Type"); jFrameSelectKeystore.setAlwaysOnTop(true); jButtonSelectKeystoreFile.setText("Select PKCS#12 File ..."); jButtonSelectKeystoreFile.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonSelectKeystoreFileActionPerformed(evt); } }); jButtonSelectKeystoreKeystore.setText("Select from Windows Keystore ..."); jButtonSelectKeystoreKeystore.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonSelectKeystoreKeystoreActionPerformed(evt); } }); jButtonSelectKeystoreCancel.setText("Cancel"); jButtonSelectKeystoreCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonSelectKeystoreCancelActionPerformed(evt); } }); org.jdesktop.layout.GroupLayout jFrameSelectKeystoreLayout = new org.jdesktop.layout.GroupLayout(jFrameSelectKeystore.getContentPane()); jFrameSelectKeystore.getContentPane().setLayout(jFrameSelectKeystoreLayout); jFrameSelectKeystoreLayout.setHorizontalGroup( jFrameSelectKeystoreLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jFrameSelectKeystoreLayout.createSequentialGroup() .addContainerGap() .add(jFrameSelectKeystoreLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jButtonSelectKeystoreFile) .add(jButtonSelectKeystoreKeystore)) .addContainerGap(132, Short.MAX_VALUE)) .add(org.jdesktop.layout.GroupLayout.TRAILING, jFrameSelectKeystoreLayout.createSequentialGroup() .addContainerGap(295, Short.MAX_VALUE) .add(jButtonSelectKeystoreCancel) .addContainerGap()) ); jFrameSelectKeystoreLayout.setVerticalGroup( jFrameSelectKeystoreLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jFrameSelectKeystoreLayout.createSequentialGroup() .addContainerGap() .add(jButtonSelectKeystoreFile) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jButtonSelectKeystoreKeystore) .addContainerGap(48, Short.MAX_VALUE)) .add(org.jdesktop.layout.GroupLayout.TRAILING, jFrameSelectKeystoreLayout.createSequentialGroup() .addContainerGap(81, Short.MAX_VALUE) .add(jButtonSelectKeystoreCancel) .addContainerGap()) ); jFrameChooseCert.setTitle("Choose Certificate"); jFrameChooseCert.setAlwaysOnTop(true); jListCerts.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); jListCerts.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); jScrollPaneCerts.setViewportView(jListCerts); jButtonCertOK.setText("Use"); jButtonCertCancel.setText("Cancel"); jButtonCertCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonCertCancelActionPerformed(evt); } }); jButtonCertInfo.setText("Info"); jButtonCertInfo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonCertInfoActionPerformed(evt); } }); org.jdesktop.layout.GroupLayout jFrameChooseCertLayout = new org.jdesktop.layout.GroupLayout(jFrameChooseCert.getContentPane()); jFrameChooseCert.getContentPane().setLayout(jFrameChooseCertLayout); jFrameChooseCertLayout.setHorizontalGroup( jFrameChooseCertLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, jFrameChooseCertLayout.createSequentialGroup() .addContainerGap() .add(jFrameChooseCertLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(jScrollPaneCerts, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 629, Short.MAX_VALUE) .add(jFrameChooseCertLayout.createSequentialGroup() .add(jButtonCertInfo) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 391, Short.MAX_VALUE) .add(jButtonCertCancel) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jButtonCertOK))) .addContainerGap()) ); jFrameChooseCertLayout.setVerticalGroup( jFrameChooseCertLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, jFrameChooseCertLayout.createSequentialGroup() .add(26, 26, 26) .add(jScrollPaneCerts, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 227, Short.MAX_VALUE) .add(24, 24, 24) .add(jFrameChooseCertLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jButtonCertOK) .add(jButtonCertCancel) .add(jButtonCertInfo)) .addContainerGap()) ); jFrameHelp.setTitle(bundle.getString("PortableSigner_Help")); // NOI18N jEditorPaneHelp.setContentType("text/html"); // NOI18N jEditorPaneHelp.setEditable(false); jScrollPane2.setViewportView(jEditorPaneHelp); org.jdesktop.layout.GroupLayout jFrameHelpLayout = new org.jdesktop.layout.GroupLayout(jFrameHelp.getContentPane()); jFrameHelp.getContentPane().setLayout(jFrameHelpLayout); jFrameHelpLayout.setHorizontalGroup( jFrameHelpLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jFrameHelpLayout.createSequentialGroup() .addContainerGap() .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 569, Short.MAX_VALUE) .addContainerGap()) ); jFrameHelpLayout.setVerticalGroup( jFrameHelpLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jFrameHelpLayout.createSequentialGroup() .addContainerGap() .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 457, Short.MAX_VALUE) .addContainerGap()) ); jDialogJCEAlert.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); jDialogJCEAlert.setTitle("JCE!"); jDialogJCEAlert.setAlwaysOnTop(true); jDialogJCEAlert.setModal(true); jDialogJCEAlert.setName("JCE Policy not installed"); // NOI18N jButtonJCEAlertOK.setText("OK"); jButtonJCEAlertOK.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonJCEAlertOKActionPerformed(evt); } }); jLabelJCEAlert.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); jLabelJCEAlert.setText(bundle.getString("JCEmissing")); // NOI18N jLabelJCEAlert.setVerticalAlignment(javax.swing.SwingConstants.TOP); org.jdesktop.layout.GroupLayout jDialogJCEAlertLayout = new org.jdesktop.layout.GroupLayout(jDialogJCEAlert.getContentPane()); jDialogJCEAlert.getContentPane().setLayout(jDialogJCEAlertLayout); jDialogJCEAlertLayout.setHorizontalGroup( jDialogJCEAlertLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, jDialogJCEAlertLayout.createSequentialGroup() .addContainerGap() .add(jDialogJCEAlertLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(jLabelJCEAlert, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(jButtonJCEAlertOK)) .addContainerGap()) ); jDialogJCEAlertLayout.setVerticalGroup( jDialogJCEAlertLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, jDialogJCEAlertLayout.createSequentialGroup() .addContainerGap(20, Short.MAX_VALUE) .add(jLabelJCEAlert, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 41, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jButtonJCEAlertOK) .addContainerGap()) ); jDialogErrorReport.setTitle(bundle.getString("ErrorReportTitle")); // NOI18N jDialogErrorReport.setAlwaysOnTop(true); jLabelErrorReportHeading.setText(bundle.getString("ErrorReportLabel")); // NOI18N jTextFieldErrorReport.setEditable(false); jTextFieldErrorReport.setHorizontalAlignment(javax.swing.JTextField.LEFT); jTextFieldErrorReport.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextFieldErrorReportActionPerformed(evt); } }); jButtonErrorReportOK.setText(bundle.getString("OK")); // NOI18N jButtonErrorReportOK.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonErrorReportOKActionPerformed(evt); } }); org.jdesktop.layout.GroupLayout jDialogErrorReportLayout = new org.jdesktop.layout.GroupLayout(jDialogErrorReport.getContentPane()); jDialogErrorReport.getContentPane().setLayout(jDialogErrorReportLayout); jDialogErrorReportLayout.setHorizontalGroup( jDialogErrorReportLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jDialogErrorReportLayout.createSequentialGroup() .addContainerGap() .add(jDialogErrorReportLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jTextFieldErrorReport, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 518, Short.MAX_VALUE) .add(jLabelErrorReportHeading) .add(org.jdesktop.layout.GroupLayout.TRAILING, jButtonErrorReportOK)) .addContainerGap()) ); jDialogErrorReportLayout.setVerticalGroup( jDialogErrorReportLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jDialogErrorReportLayout.createSequentialGroup() .addContainerGap() .add(jLabelErrorReportHeading) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(jTextFieldErrorReport, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jButtonErrorReportOK) .addContainerGap()) ); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("PortableSigner"); setLocationByPlatform(true); jLabelInput.setText(bundle.getString("InputLabel")); // NOI18N jLabelOutput.setText(bundle.getString("OutputLabel")); // NOI18N jLabelSignature.setText(bundle.getString("SignatureLabel")); // NOI18N jButtonInputfile.setText(bundle.getString("SearchButton")); // NOI18N jButtonInputfile.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonInputfileActionPerformed(evt); } }); jButtonOutputfile.setText(bundle.getString("SearchButton")); // NOI18N jButtonOutputfile.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonOutputfileActionPerformed(evt); } }); jButtonSignaturefile.setText(bundle.getString("SearchButton")); // NOI18N jButtonSignaturefile.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonSignaturefileActionPerformed(evt); } }); jButtonCancelMain.setText(bundle.getString("CancelButton")); // NOI18N jButtonCancelMain.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonCancelMainActionPerformed(evt); } }); jButtonAbout.setIcon(new javax.swing.ImageIcon(getClass().getResource("/net/pflaeging/PortableSigner/PortableSignerLogo-small.png"))); // NOI18N jButtonAbout.setText(bundle.getString("AboutButton")); // NOI18N jButtonAbout.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonAboutActionPerformed(evt); } }); jLabelTitle.setFont(new java.awt.Font("Lucida Grande", 3, 14)); // NOI18N jLabelTitle.setText(bundle.getString("SignPDF")); // NOI18N jLabel1.setFont(new java.awt.Font("Lucida Grande", 3, 13)); // NOI18N jLabel1.setText("1."); jLabel2.setFont(new java.awt.Font("Lucida Grande", 3, 13)); // NOI18N jLabel2.setText("2."); jLabel3.setFont(new java.awt.Font("Lucida Grande", 3, 13)); // NOI18N jLabel3.setText("3."); jLabel4.setFont(new java.awt.Font("Lucida Grande", 3, 13)); // NOI18N jLabel4.setText("4."); jLabelPassword.setText(bundle.getString("PasswordLabel")); // NOI18N jPasswordFieldPassword.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jPasswordFieldPasswordActionPerformed(evt); } }); jButtonPasswordOK.setText(bundle.getString("OK")); // NOI18N jButtonPasswordOK.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonPasswordOKActionPerformed(evt); } }); jLabel5.setFont(new java.awt.Font("Lucida Grande", 3, 13)); // NOI18N jLabel5.setText("5."); jLabelSign.setText(bundle.getString("Sign")); // NOI18N jLabel6.setFont(new java.awt.Font("Lucida Grande", 3, 13)); // NOI18N jLabel6.setText("6."); jLabelWorking.setText(bundle.getString("Working")); // NOI18N jLabel7.setFont(new java.awt.Font("Lucida Grande", 3, 13)); // NOI18N jLabel7.setText("7."); jLabelResult.setText(bundle.getString("Result")); // NOI18N jLabelFinished.setFont(new java.awt.Font("Lucida Grande", 3, 14)); // NOI18N jLabelFinished.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); jLabelFinished.setVerticalAlignment(javax.swing.SwingConstants.TOP); jLabelFinished.setVerticalTextPosition(javax.swing.SwingConstants.TOP); jLabel8.setFont(new java.awt.Font("Lucida Grande", 3, 13)); // NOI18N jLabel8.setText("8."); jLabelRestart.setText(bundle.getString("Restart")); // NOI18N jLabelFinishNext.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N jLabelFinishNext.setText(bundle.getString("Goto_1")); // NOI18N jCheckBoxSignatureBlock.setSelected(prefs.signText); jCheckBoxSignatureBlock.setText(bundle.getString("SignatureBlockLabel")); // NOI18N jCheckBoxSignatureBlock.setMargin(new java.awt.Insets(0, 0, 0, 0)); jCheckBoxSignatureBlock.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jCheckBoxSignatureBlockActionPerformed(evt); } }); jButtonOption.setText(bundle.getString("OptionsButton")); // NOI18N jButtonOption.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonOptionActionPerformed(evt); } }); jLabel10.setFont(new java.awt.Font("Lucida Grande", 3, 13)); // NOI18N jLabel10.setText("9."); jCheckBoxFinalize.setSelected(true); jCheckBoxFinalize.setText(bundle.getString("FinalizeDocument")); // NOI18N jCheckBoxFinalize.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jCheckBoxFinalizeActionPerformed(evt); } }); jButtonErrorReport.setText(bundle.getString("ErrorReportButton")); // NOI18N jButtonErrorReport.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonErrorReportActionPerformed(evt); } }); jButtonViewOutput.setText(bundle.getString("ViewButton")); // NOI18N jButtonViewOutput.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonViewOutputActionPerformed(evt); } }); jButtonViewSource.setText(bundle.getString("ViewButton")); // NOI18N jButtonViewSource.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonViewSourceActionPerformed(evt); } }); jMenuFile.setText(bundle.getString("MenuFile")); // NOI18N jMenuFile.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuFileActionPerformed(evt); } }); jMenuItemInputfile.setText(bundle.getString("MenuInputfile")); // NOI18N jMenuItemInputfile.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemInputfileActionPerformed(evt); } }); jMenuFile.add(jMenuItemInputfile); jMenuItemOutputfile.setText(bundle.getString("MenuOutputfile")); // NOI18N jMenuItemOutputfile.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemOutputfileActionPerformed(evt); } }); jMenuFile.add(jMenuItemOutputfile); jMenuItemSignaturefile.setText(bundle.getString("MenuSignaturfile")); // NOI18N jMenuItemSignaturefile.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemSignaturefileActionPerformed(evt); } }); jMenuFile.add(jMenuItemSignaturefile); jMenuItemSign.setText(bundle.getString("MenuSign")); // NOI18N jMenuItemSign.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemSignActionPerformed(evt); } }); jMenuFile.add(jMenuItemSign); jMenuItemQuit.setText(bundle.getString("MenuQuit")); // NOI18N jMenuItemQuit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemQuitActionPerformed(evt); } }); jMenuFile.add(jMenuItemQuit); jMenuBarMain.add(jMenuFile); jMenuEdit.setText(bundle.getString("MenuEdit")); // NOI18N jMenuItemOptions.setText(bundle.getString("MenuOptions")); // NOI18N jMenuItemOptions.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemOptionsActionPerformed(evt); } }); jMenuEdit.add(jMenuItemOptions); jMenuBarMain.add(jMenuEdit); jMenuHelp.setText(bundle.getString("MenuHelp")); // NOI18N jCheckBoxTooltip.setText(bundle.getString("ToolTips")); // NOI18N jCheckBoxTooltip.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jCheckBoxTooltipActionPerformed(evt); } }); jMenuHelp.add(jCheckBoxTooltip); jMenuItemHelp.setText(bundle.getString("MenuHelpHelp")); // NOI18N jMenuItemHelp.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemHelpActionPerformed(evt); } }); jMenuHelp.add(jMenuItemHelp); jMenuItemAbout.setText(bundle.getString("MenuAbout")); // NOI18N jMenuItemAbout.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemAboutActionPerformed(evt); } }); jMenuHelp.add(jMenuItemAbout); jMenuBarMain.add(jMenuHelp); setJMenuBar(jMenuBarMain); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jSeparator1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 646, Short.MAX_VALUE) .add(layout.createSequentialGroup() .add(jLabelTitle) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 368, Short.MAX_VALUE) .add(jButtonAbout)) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(jLabel1) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabelInput)) .add(layout.createSequentialGroup() .add(jLabel2) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabelOutput)) .add(layout.createSequentialGroup() .add(jLabel3) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabelSignature)) .add(jLabel4) .add(layout.createSequentialGroup() .add(jLabel5) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabelPassword)) .add(layout.createSequentialGroup() .add(jLabel6) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabelSign)) .add(layout.createSequentialGroup() .add(jLabel7) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabelWorking)) .add(layout.createSequentialGroup() .add(jLabel10) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabelRestart)) .add(layout.createSequentialGroup() .add(jLabel8) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabelResult))) .add(10, 10, 10) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .add(jLabelFinishNext) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 355, Short.MAX_VALUE) .add(jButtonCancelMain)) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jPasswordFieldPassword, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 333, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.TRAILING, jTextFieldSignaturefile, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 333, Short.MAX_VALUE) .add(jProgressBar1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 333, Short.MAX_VALUE) .add(jLabelFinished, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 333, Short.MAX_VALUE) .add(jTextFieldInputfile, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 333, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.TRAILING, jTextFieldOutputfile, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 333, Short.MAX_VALUE) .add(jCheckBoxSignatureBlock) .add(jCheckBoxFinalize)) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(9, 9, 9) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) .add(org.jdesktop.layout.GroupLayout.TRAILING, jButtonInputfile, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.TRAILING, jButtonOutputfile, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.TRAILING, jButtonSignaturefile, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.TRAILING, jButtonOption, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(jButtonViewOutput) .add(jButtonViewSource))) .add(jButtonPasswordOK, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 191, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) .add(layout.createSequentialGroup() .add(18, 18, 18) .add(jButtonErrorReport))))))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabelTitle) .add(jButtonAbout)) .add(18, 18, 18) .add(jSeparator1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabelInput) .add(jLabel1) .add(jButtonInputfile) .add(jTextFieldInputfile, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jButtonViewSource)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabelOutput) .add(jTextFieldOutputfile, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabel2) .add(jButtonOutputfile) .add(jButtonViewOutput)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabelSignature) .add(jTextFieldSignaturefile, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabel3) .add(jButtonSignaturefile)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel4) .add(jCheckBoxSignatureBlock) .add(jButtonOption)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jPasswordFieldPassword, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabelPassword) .add(jLabel5)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabelSign) .add(jLabel6) .add(jCheckBoxFinalize) .add(jButtonPasswordOK)) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jLabel7) .add(jLabelWorking) .add(jProgressBar1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabelResult) .add(jLabelFinished, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 47, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabel8))) .add(layout.createSequentialGroup() .add(28, 28, 28) .add(jButtonErrorReport))) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jButtonCancelMain) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabelFinishNext) .add(jLabel10) .add(jLabelRestart))) .addContainerGap(24, Short.MAX_VALUE)) ); jButtonErrorReport.setVisible(false); pack(); }// </editor-fold>//GEN-END:initComponents private void jMenuItemHelpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemHelpActionPerformed // try { // com.itextpdf.tools.Executable.launchBrowser(rbi18n // .getString("HomepageURL")); // } catch (IOException ex) { // System.err.println("Unable to launch Browser for helppage"); try { String HomeUrl = rbi18n.getString("HomepageURL"); java.awt.Desktop.getDesktop().browse(java.net.URI.create(HomeUrl)); } catch (java.io.IOException e) { System.err.println("Unable to launch Browser for helppage"); } }//GEN-LAST:event_jMenuItemHelpActionPerformed private void jMenuItemAboutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemAboutActionPerformed jButtonAboutActionPerformed(evt); }//GEN-LAST:event_jMenuItemAboutActionPerformed private void jMenuItemOptionsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemOptionsActionPerformed jButtonOptionActionPerformed(evt); }//GEN-LAST:event_jMenuItemOptionsActionPerformed private void jMenuItemQuitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemQuitActionPerformed jButtonCancelYesActionPerformed(evt); }//GEN-LAST:event_jMenuItemQuitActionPerformed private void jMenuItemSignActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemSignActionPerformed jButtonPasswordOKActionPerformed(evt); }//GEN-LAST:event_jMenuItemSignActionPerformed private void jMenuItemSignaturefileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemSignaturefileActionPerformed jButtonSignaturefileActionPerformed(evt); }//GEN-LAST:event_jMenuItemSignaturefileActionPerformed private void jMenuItemOutputfileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemOutputfileActionPerformed jButtonOutputfileActionPerformed(evt); }//GEN-LAST:event_jMenuItemOutputfileActionPerformed private void jMenuItemInputfileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemInputfileActionPerformed jButtonInputfileActionPerformed(evt); }//GEN-LAST:event_jMenuItemInputfileActionPerformed private void jMenuFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuFileActionPerformed }//GEN-LAST:event_jMenuFileActionPerformed private void jButtonCertInfoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCertInfoActionPerformed if (jListCerts.getSelectedIndex() != -1) { System.out.println("Index: " + jListCerts.getSelectedIndex()); } }//GEN-LAST:event_jButtonCertInfoActionPerformed private void jButtonCertCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCertCancelActionPerformed jFrameChooseCert.setVisible(false); }//GEN-LAST:event_jButtonCertCancelActionPerformed private void jButtonSelectKeystoreKeystoreActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSelectKeystoreKeystoreActionPerformed jFrameChooseCert.setSize(500, 300); jFrameChooseCert.setVisible(true); }//GEN-LAST:event_jButtonSelectKeystoreKeystoreActionPerformed private void jButtonSelectKeystoreCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSelectKeystoreCancelActionPerformed jFrameSelectKeystore.setVisible(false); }//GEN-LAST:event_jButtonSelectKeystoreCancelActionPerformed private void jButtonSelectKeystoreFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSelectKeystoreFileActionPerformed jFrameSelectKeystore.setVisible(false); String file = chooseP12File(); // do nothing if open dialog was cancelled if (file == null) { return; } jTextFieldSignaturefile.setText(file); // System.out.println(file); }//GEN-LAST:event_jButtonSelectKeystoreFileActionPerformed private void jButtonResetLogoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonResetLogoActionPerformed jTextFieldOptionLogo.setText(""); }//GEN-LAST:event_jButtonResetLogoActionPerformed private void jButtonOptionSearchLogoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOptionSearchLogoActionPerformed jFrameOption.setAlwaysOnTop(false); String file = chooseImageFile(); // do nothing if open dialog was cancelled if (file == null) { jFrameOption.setAlwaysOnTop(true); return; } jTextFieldOptionLogo.setText(file); // System.out.println(file); jFrameOption.setAlwaysOnTop(true); }//GEN-LAST:event_jButtonOptionSearchLogoActionPerformed private void jButtonOptionOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOptionOKActionPerformed prefs.set("SignatureLogo",jTextFieldOptionLogo.getText()); prefs.set("SignComment", jTextPaneCommentField.getText()); prefs.set("SignReason", jTextFieldReason.getText()); prefs.set("SignLocation", jTextFieldLocation.getText()); Float vPos, lMargin, rMargin; try { vPos = new Float(jTextFieldVPosition.getText()); } catch (NumberFormatException nfe) { vPos = new Float(0f); } try { lMargin = new Float(jTextFieldLMargin.getText()); } catch (NumberFormatException nfe) { lMargin = new Float(0f); } try { rMargin = new Float(jTextFieldRMargin.getText()); } catch (NumberFormatException nfe) { rMargin = new Float(0f); } prefs.set("VerticalPosition", vPos.floatValue()); prefs.set("LeftMargin", lMargin.floatValue()); prefs.set("RightMargin", rMargin.floatValue()); // System.out.println("SigLogo: " + prefs.sigLogo ); jFrameOption.setVisible(false); }//GEN-LAST:event_jButtonOptionOKActionPerformed private void jButtonOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOptionActionPerformed jFrameOption.setSize(660,700); String lang = prefs.signLanguage; java.util.ResourceBundle block = java.util.ResourceBundle.getBundle( "net/pflaeging/PortableSigner/Signatureblock_" + lang); jComboBoxSignatureLanguage.setSelectedItem( rbSigBlock.getString(lang) + " (" + lang + ")"); jTextPaneCommentField.setEditable(prefs.useComment); if (prefs.signComment.equals("")) { jTextPaneCommentField.setText(block.getString("comment")); } jFrameOption.setVisible(true); }//GEN-LAST:event_jButtonOptionActionPerformed private void jCheckBoxSignatureBlockActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxSignatureBlockActionPerformed prefs.set("SignText", !prefs.signText); // System.out.println(prefs.signText); }//GEN-LAST:event_jCheckBoxSignatureBlockActionPerformed private void jPasswordFieldPasswordActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jPasswordFieldPasswordActionPerformed jButtonPasswordOKActionPerformed(evt); }//GEN-LAST:event_jPasswordFieldPasswordActionPerformed private void jButtonLicenseOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonLicenseOKActionPerformed jDialogLicense.setVisible(false); }//GEN-LAST:event_jButtonLicenseOKActionPerformed private void jButtonLicenseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonLicenseActionPerformed jDialogLicense.setVisible(true); jDialogLicense.setSize(450,450); }//GEN-LAST:event_jButtonLicenseActionPerformed private void jButtonPasswordOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonPasswordOKActionPerformed // DoSign Sign; jButtonErrorReport.setVisible(false); jProgressBar1.setIndeterminate(true); jLabelFinished.setText(""); jLabelFinished.setForeground(new java.awt.Color(0,0,0)); //String inputPDFFile = "", outputPDFFile = "", signatureP12File = ""; //String password = ""; password = String.valueOf(jPasswordFieldPassword.getPassword()); // Clear password after using it (from bogdandr@op.pl) jPasswordFieldPassword.setText ("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); jPasswordFieldPassword.setText ("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"); jPasswordFieldPassword.setText ("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"); jPasswordFieldPassword.setText ("DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"); jPasswordFieldPassword.setText ("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"); jPasswordFieldPassword.setText ("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); jPasswordFieldPassword.setText ("GGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"); jPasswordFieldPassword.setText ("HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH"); jPasswordFieldPassword.setText ("IIIIIIIIIIIIIIIIIIIIIIIIIIIIII"); jPasswordFieldPassword.setText ("JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ"); jPasswordFieldPassword.setText ("KKKKKKKKKKKKKKKKKKKKKKKKKKKKKK"); jPasswordFieldPassword.setText ("LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL"); jPasswordFieldPassword.setText ("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM"); jPasswordFieldPassword.setText ("NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"); jPasswordFieldPassword.setText ("OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"); jPasswordFieldPassword.setText (""); inputPDFFile = jTextFieldInputfile.getText(); outputPDFFile = jTextFieldOutputfile.getText(); signatureP12File = jTextFieldSignaturefile.getText(); if (inputPDFFile == null || outputPDFFile == null || signatureP12File == null) { return; } final String sigComment; if (prefs.useComment) { sigComment = prefs.signComment; } else { sigComment = ""; } // System.err.println("Comment:" + prefs.useComment + ">" + sigComment + "<"); prefs.set("LastInputFile", inputPDFFile); // prefs.set("LastOutputFile", outputPDFFile); prefs.set("LastP12File", signatureP12File); result = null; exceptionstring = null; // create Thread for signing /* Runnable runnable = new Runnable() { public void run() { new DoSignPDF(inputPDFFile, outputPDFFile, signatureP12File, password, prefs.signText, prefs.signLanguage, prefs.sigLogo, finalize, sigComment, prefs.signReason, prefs.signLocation, prefs.noExtraPage, prefs.verticalPos, prefs.leftMargin, prefs.rightMargin, prefs.signLastPage, null); // password cleanup (from bogdandr@op.pl) password = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; System.gc (); jProgressBar1.setIndeterminate(false); jProgressBar1.setValue(100); //getParent().setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR)); jLabelFinished.setForeground(resultcolor); jLabelFinished.setToolTipText(exceptionstring); jLabelFinished.setText(result); jDialogErrorReport.setSize(500, 200); if (resultcolor.equals(colorerror)) { jButtonErrorReport.setText(rbi18n .getString("ErrorReportButton")); } else { jButtonErrorReport.setText(rbi18n .getString("ViewButton")); jButtonErrorReport.setForeground(gotitcolor); } jButtonErrorReport.setVisible(true); jTextFieldErrorReport.setText(exceptionstring); } }; Thread thread = new Thread(runnable); thread.start();*/ new SwingWorker<Void, Void> () { @Override protected Void doInBackground() { new DoSignPDF(inputPDFFile, outputPDFFile, signatureP12File, password, prefs.signText, prefs.signLanguage, prefs.sigLogo, finalize, sigComment, prefs.signReason, prefs.signLocation, prefs.noExtraPage, prefs.verticalPos, prefs.leftMargin, prefs.rightMargin, prefs.signLastPage, null); // password cleanup (from bogdandr@op.pl) password = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; System.gc (); return null; } @Override protected void done() { jProgressBar1.setIndeterminate(false); jProgressBar1.setValue(100); //getParent().setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR)); jLabelFinished.setForeground(resultcolor); jLabelFinished.setToolTipText(exceptionstring); jLabelFinished.setText(result); jDialogErrorReport.setSize(500, 200); if (resultcolor.equals(colorerror)) { jButtonErrorReport.setText( rbi18n .getString("ErrorReportButton")); } else { jButtonErrorReport.setText( rbi18n .getString("ViewButton")); jButtonErrorReport.setForeground(gotitcolor); } jButtonErrorReport.setVisible(true); jTextFieldErrorReport.setText(exceptionstring); } }.execute (); }//GEN-LAST:event_jButtonPasswordOKActionPerformed private void jButtonAboutOkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAboutOkActionPerformed jDialogAbout.setVisible(false); }//GEN-LAST:event_jButtonAboutOkActionPerformed private void jButtonAboutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAboutActionPerformed jTextAreaAboutVersion.setText( copyright + "\n" + url + "\n\n" + Version.print + "\n\n" + contributors); jTextAreaAboutVersion.setCaretPosition(0); jDialogAbout.setSize(500,300); jDialogAbout.setVisible(true); }//GEN-LAST:event_jButtonAboutActionPerformed private void jButtonCancelNoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelNoActionPerformed jDialogCancel.setVisible(false); }//GEN-LAST:event_jButtonCancelNoActionPerformed private void jButtonCancelYesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelYesActionPerformed dispose(); System.exit(0); }//GEN-LAST:event_jButtonCancelYesActionPerformed private void jButtonCancelMainActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelMainActionPerformed jDialogCancel.setSize(200, 100); jDialogCancel.setVisible(true); }//GEN-LAST:event_jButtonCancelMainActionPerformed private void jButtonSignaturefileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSignaturefileActionPerformed // At the moment the action for selecting the keystore is disabled. Keystores are not working! // jFrameSelectKeystore.setSize(380, 130); // jFrameSelectKeystore.setVisible(true); String file = chooseP12File(); // do nothing if open dialog was cancelled if (file == null) { return; } jTextFieldSignaturefile.setText(file); }//GEN-LAST:event_jButtonSignaturefileActionPerformed private void jButtonOutputfileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOutputfileActionPerformed String file = choosePDFFileSave(); // do nothing if open dialog was cancelled if (file == null) { return; } jTextFieldOutputfile.setText(file); // System.out.println(file); }//GEN-LAST:event_jButtonOutputfileActionPerformed private void jButtonInputfileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonInputfileActionPerformed String file = choosePDFFile(); // do nothing if open dialog was cancelled if (file == null) { return; } // System.out.println("output: " + generateOutputFile(file)); jTextFieldOutputfile.setText(generateOutputFile(file)); jTextFieldInputfile.setText(file); }//GEN-LAST:event_jButtonInputfileActionPerformed private void jButtonJCEAlertOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonJCEAlertOKActionPerformed System.exit(254); }//GEN-LAST:event_jButtonJCEAlertOKActionPerformed private void jCheckBoxCommentActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxCommentActionPerformed prefs.set("useComment", !prefs.useComment); jTextPaneCommentField.setEditable(prefs.useComment); jTextPaneCommentField.setEnabled(prefs.useComment); // System.err.println("Comment = " + prefs.useComment); }//GEN-LAST:event_jCheckBoxCommentActionPerformed private void jCheckBoxFinalizeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxFinalizeActionPerformed finalize = !finalize; // System.err.println("Finalize: " + finalize); }//GEN-LAST:event_jCheckBoxFinalizeActionPerformed private void jButtonResetCommentFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonResetCommentFieldActionPerformed String originalComment = java.util.ResourceBundle.getBundle("net/pflaeging/PortableSigner/Signatureblock_" + prefs.signLanguage) .getString("comment"); prefs.set("SignComment", originalComment); jTextPaneCommentField.setText(originalComment); }//GEN-LAST:event_jButtonResetCommentFieldActionPerformed private void jTextFieldErrorReportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldErrorReportActionPerformed }//GEN-LAST:event_jTextFieldErrorReportActionPerformed private void jButtonErrorReportOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonErrorReportOKActionPerformed jDialogErrorReport.setVisible(false); }//GEN-LAST:event_jButtonErrorReportOKActionPerformed private void jButtonErrorReportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonErrorReportActionPerformed if (resultcolor.equals(colorerror)) { jDialogErrorReport.setVisible(true); } else { try { Desktop desktop = null; if (Desktop.isDesktopSupported()) { desktop = Desktop.getDesktop(); java.io.File file = new java.io.File(jTextFieldOutputfile.getText()); desktop.open(file); } } catch (IOException e) { System.err.println("Unable to start PDF reader"); } } }//GEN-LAST:event_jButtonErrorReportActionPerformed private void jCheckBoxTooltipActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxTooltipActionPerformed prefs.set("ToolTip", !prefs.toolTip); prefs.get(); setTooltips(prefs.toolTip); }//GEN-LAST:event_jCheckBoxTooltipActionPerformed private void jTextFieldReasonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldReasonActionPerformed prefs.set("SignReason", jTextFieldReason.getText()); prefs.get(); // System.err.println("Reason: " + prefs.signReason); }//GEN-LAST:event_jTextFieldReasonActionPerformed private void jTextFieldLocationActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldLocationActionPerformed prefs.set("SignLocation", jTextFieldLocation.getText()); prefs.get(); // System.err.println("Location: " + prefs.signLocation); }//GEN-LAST:event_jTextFieldLocationActionPerformed private void jButtonViewSourceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonViewSourceActionPerformed try { Desktop desktop = null; if (Desktop.isDesktopSupported()) { desktop = Desktop.getDesktop(); java.io.File file = new java.io.File(jTextFieldInputfile.getText()); desktop.open(file); } } catch (IOException e) { System.err.println("Unable to start PDF reader"); } }//GEN-LAST:event_jButtonViewSourceActionPerformed private void jComboBoxSignatureLanguageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBoxSignatureLanguageActionPerformed String tempS = jComboBoxSignatureLanguage.getSelectedItem().toString(); String tempLang = tempS.substring(tempS.indexOf("(") + 1,tempS.indexOf(")")); // System.out.println("Selected Languagecode: " + tempLang); prefs.set("SignLanguage", tempLang); }//GEN-LAST:event_jComboBoxSignatureLanguageActionPerformed private void jCheckBoxSeparatepageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxSeparatepageActionPerformed prefs.set("NoExtraPage", !prefs.noExtraPage); jComboBoxSignatureblockPage.setEnabled(prefs.noExtraPage); jTextFieldVPosition.setEnabled(prefs.noExtraPage); jTextFieldLMargin.setEnabled(prefs.noExtraPage); jTextFieldRMargin.setEnabled(prefs.noExtraPage); }//GEN-LAST:event_jCheckBoxSeparatepageActionPerformed private void jComboBoxSignatureblockPageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBoxSignatureblockPageActionPerformed // TODO add your handling code here: String tempPage = jComboBoxSignatureblockPage.getSelectedItem().toString(); if (rbi18n .getString("SignatureBlockpositionFirst").equals(tempPage)) { prefs.set("SignatureOnLastPage", false); System.err.println("Selected Page: First"); } else { prefs.set("SignatureOnLastPage", true); System.err.println("Selected Page: Last"); } prefs.get(); }//GEN-LAST:event_jComboBoxSignatureblockPageActionPerformed private void jButtonViewOutputActionPerformed(java.awt.event.ActionEvent evt) { try { Desktop desktop = null; if (Desktop.isDesktopSupported()) { desktop = Desktop.getDesktop(); java.io.File file = new java.io.File(jTextFieldOutputfile.getText()); desktop.open(file); } } catch (IOException e) { System.err.println("Unable to start PDF reader"); } } /** * @param args the command line arguments */ public static void main(String args[]) { try { // check for Java JCE unrestricted!!! if (javax.crypto.Cipher.getMaxAllowedKeyLength("RC5") < Integer.MAX_VALUE) { workingJCE = false; } mycommand = new SignCommandLine(args); // System.out.println("Main: Password:" + mycommand.ownerPwd.toString()); if (mycommand.nogui) { if (!workingJCE) { rbi18n.getString("JCEmissing"); System.exit(254); } // TODO: Implement commandline new DoSignPDF(mycommand.input, mycommand.output, mycommand.signature, mycommand.password, !mycommand.sigblock.equals(""), mycommand.sigblock, mycommand.sigimage, mycommand.finalize, mycommand.comment, mycommand.reason, mycommand.location, mycommand.noSigPage, mycommand.vPos, mycommand.lMargin, mycommand.rMargin, mycommand.lastPage, mycommand.ownerPwd); System.exit(0); } else { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Main().setVisible(true); } }); } } catch (NoSuchAlgorithmException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.ButtonGroup buttonGroup1; private javax.swing.ButtonGroup buttonGroup2; private javax.swing.ButtonGroup buttonGroup3; private javax.swing.ButtonGroup buttonGroup4; private javax.swing.ButtonGroup buttonGroup5; private javax.swing.JButton jButtonAbout; private javax.swing.JButton jButtonAboutOk; private javax.swing.JButton jButtonCancelMain; private javax.swing.JButton jButtonCancelNo; private javax.swing.JButton jButtonCancelYes; private javax.swing.JButton jButtonCertCancel; private javax.swing.JButton jButtonCertInfo; private javax.swing.JButton jButtonCertOK; private javax.swing.JButton jButtonErrorReport; private javax.swing.JButton jButtonErrorReportOK; private javax.swing.JButton jButtonInputfile; private javax.swing.JButton jButtonJCEAlertOK; private javax.swing.JButton jButtonLicense; private javax.swing.JButton jButtonLicenseOK; private javax.swing.JButton jButtonOption; private javax.swing.JButton jButtonOptionOK; private javax.swing.JButton jButtonOptionSearchLogo; private javax.swing.JButton jButtonOutputfile; private javax.swing.JButton jButtonPasswordOK; private javax.swing.JButton jButtonResetCommentField; private javax.swing.JButton jButtonResetLogo; private javax.swing.JButton jButtonSelectKeystoreCancel; private javax.swing.JButton jButtonSelectKeystoreFile; private javax.swing.JButton jButtonSelectKeystoreKeystore; private javax.swing.JButton jButtonSignaturefile; private javax.swing.JButton jButtonViewOutput; private javax.swing.JButton jButtonViewSource; private javax.swing.JCheckBox jCheckBoxComment; private javax.swing.JCheckBox jCheckBoxFinalize; private javax.swing.JCheckBox jCheckBoxSeparatepage; private javax.swing.JCheckBox jCheckBoxSignatureBlock; private javax.swing.JCheckBoxMenuItem jCheckBoxTooltip; private javax.swing.JComboBox jComboBoxSignatureLanguage; private javax.swing.JComboBox jComboBoxSignatureblockPage; private javax.swing.JDialog jDialogAbout; private javax.swing.JDialog jDialogCancel; private javax.swing.JDialog jDialogErrorReport; private javax.swing.JDialog jDialogJCEAlert; private javax.swing.JDialog jDialogLicense; private javax.swing.JEditorPane jEditorPaneHelp; private javax.swing.JFrame jFrameChooseCert; private javax.swing.JFrame jFrameHelp; private javax.swing.JFrame jFrameOption; private javax.swing.JFrame jFrameSelectKeystore; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JLabel jLabelAboutCopyright; private javax.swing.JLabel jLabelAboutText; private javax.swing.JLabel jLabelCancelQuestion; private javax.swing.JLabel jLabelErrorReportHeading; private javax.swing.JLabel jLabelFinishNext; private javax.swing.JLabel jLabelFinished; private javax.swing.JLabel jLabelInput; private javax.swing.JLabel jLabelJCEAlert; private javax.swing.JLabel jLabelLocation; private javax.swing.JLabel jLabelOptionLanguage; private javax.swing.JLabel jLabelOptionLogo; private javax.swing.JLabel jLabelOutput; private javax.swing.JLabel jLabelPassword; private javax.swing.JLabel jLabelReason; private javax.swing.JLabel jLabelRestart; private javax.swing.JLabel jLabelResult; private javax.swing.JLabel jLabelSign; private javax.swing.JLabel jLabelSignature; private javax.swing.JLabel jLabelTitle; private javax.swing.JLabel jLabelWorking; private javax.swing.JList jListCerts; private javax.swing.JMenuBar jMenuBarMain; private javax.swing.JMenu jMenuEdit; private javax.swing.JMenu jMenuFile; private javax.swing.JMenu jMenuHelp; private javax.swing.JMenuItem jMenuItemAbout; private javax.swing.JMenuItem jMenuItemHelp; private javax.swing.JMenuItem jMenuItemInputfile; private javax.swing.JMenuItem jMenuItemOptions; private javax.swing.JMenuItem jMenuItemOutputfile; private javax.swing.JMenuItem jMenuItemQuit; private javax.swing.JMenuItem jMenuItemSign; private javax.swing.JMenuItem jMenuItemSignaturefile; private javax.swing.JPanel jPanelCancel; private javax.swing.JPasswordField jPasswordFieldPassword; private javax.swing.JProgressBar jProgressBar1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JScrollPane jScrollPaneAboutVersion; private javax.swing.JScrollPane jScrollPaneCerts; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; private javax.swing.JSeparator jSeparator4; private javax.swing.JSeparator jSeparator5; private javax.swing.JTextArea jTextAreaAboutVersion; private javax.swing.JTextArea jTextAreaLicenseText; private javax.swing.JTextField jTextFieldErrorReport; private javax.swing.JTextField jTextFieldInputfile; private javax.swing.JTextField jTextFieldLMargin; private javax.swing.JTextField jTextFieldLocation; private javax.swing.JTextField jTextFieldOptionLogo; private javax.swing.JTextField jTextFieldOutputfile; private javax.swing.JTextField jTextFieldRMargin; private javax.swing.JTextField jTextFieldReason; private javax.swing.JTextField jTextFieldSignaturefile; private javax.swing.JTextField jTextFieldVPosition; private javax.swing.JTextPane jTextPaneCommentField; // End of variables declaration//GEN-END:variables private String generateOutputFile(String inputFile) { // generating filename by appending -sig to filename: // /i/am/here.pdf becomes /i/am/here-sig.pdf if (inputFile.equals("")) { return ""; } return inputFile.substring(0,inputFile.lastIndexOf(".pdf")) + "-sig.pdf"; } private String getDir (String absFile) { // get Dir component from file as string if (absFile.equals("")) { return ""; } java.io.File myfile = new java.io.File(absFile); return myfile.getParent(); } /** Opens dialog for user to choose an PDF file to open and read. * * @return PDF file or null if user cancelled the dialog */ private String choosePDFFile() { javax.swing.JFileChooser chooser = new javax.swing.JFileChooser(getDir(prefs.lastInputFile)); chooser.setFileFilter(new PDFFilter()); int returnVal = chooser.showOpenDialog(this); if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) { return chooser.getSelectedFile().getAbsolutePath(); } // cancel was clicked return null; } /** Save dialog for user to choose an PDF file to save. * * @return PDF file or null if user cancelled the dialog */ private String choosePDFFileSave() { javax.swing.JFileChooser chooser = new javax.swing.JFileChooser(getDir(jTextFieldOutputfile.getText())); chooser.setFileFilter(new PDFFilter()); int returnVal = chooser.showSaveDialog(this); if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) { return chooser.getSelectedFile().getAbsolutePath(); } // cancel was clicked return null; } /** Opens dialog for user to choose an P12 file to open and read. * * @return P12 file or null if user cancelled the dialog */ private String chooseP12File() { javax.swing.JFileChooser chooser = new javax.swing.JFileChooser(getDir(prefs.lastP12File)); chooser.setFileFilter(new P12Filter()); int returnVal = chooser.showOpenDialog(this); if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) { return chooser.getSelectedFile().getAbsolutePath(); } // cancel was clicked return null; } /** Opens dialog for user to choose an image file to open and read. * * @return image file or null if user cancelled the dialog */ private String chooseImageFile() { String imagefile; if (jTextFieldOptionLogo.getText().equals("")) { imagefile = prefs.sigLogo; } else { imagefile = jTextFieldOptionLogo.getText(); } javax.swing.JFileChooser chooser = new javax.swing.JFileChooser(getDir(imagefile)); chooser.setFileFilter(new ImageFilter()); int returnVal = chooser.showOpenDialog(this); if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) { return chooser.getSelectedFile().getAbsolutePath(); } // cancel was clicked return null; } /** Filter which accepts only PDF files */ private static class PDFFilter extends javax.swing.filechooser.FileFilter { public boolean accept(java.io.File f) { return f.isDirectory() || f.getName().endsWith(".pdf"); } public String getDescription() { return rbi18n.getString("PDFDescription"); } } /** Filter which accepts only P12 files */ private static class P12Filter extends javax.swing.filechooser.FileFilter { public boolean accept(java.io.File f) { return f.isDirectory() || f.getName().endsWith(".p12") || f.getName().endsWith(".pfx"); } public String getDescription() { return rbi18n.getString("PKCS12Description"); } } private static class ImageFilter extends javax.swing.filechooser.FileFilter { public boolean accept(java.io.File f) { return f.isDirectory() || f.getName().endsWith(".gif") || f.getName().endsWith(".png") || f.getName().endsWith(".jpg"); } public String getDescription() { return rbi18n.getString("ImageDescription"); } } private static String getTooltip(String value) { return java.util.ResourceBundle.getBundle("net/pflaeging/PortableSigner/ToolTips").getString(value); } private void setTooltips(boolean visible) { if (visible) { jLabelInput.setToolTipText(getTooltip("Inputfile")); jLabelInput.setCursor(questionCursor); jLabelOutput.setToolTipText(getTooltip("Outputfile")); jLabelOutput.setCursor(questionCursor); jLabelSignature.setToolTipText(getTooltip("Signaturefile")); jLabelSignature.setCursor(questionCursor); jCheckBoxSignatureBlock.setToolTipText(getTooltip("Signatureblock")); jCheckBoxSignatureBlock.setCursor(questionCursor); jLabelPassword.setToolTipText(getTooltip("Password")); jLabelPassword.setCursor(questionCursor); jLabelResult.setToolTipText(getTooltip("Result")); jLabelResult.setCursor(questionCursor); jLabelRestart.setToolTipText(getTooltip("Again")); jLabelRestart.setCursor(questionCursor); jCheckBoxFinalize.setToolTipText(getTooltip("Finalize")); jCheckBoxFinalize.setCursor(questionCursor); jLabelOptionLanguage.setToolTipText(getTooltip("SignatureLanguage")); jLabelOptionLanguage.setCursor(questionCursor); jLabelOptionLogo.setToolTipText(getTooltip("SignatureLogo")); jLabelOptionLogo.setCursor(questionCursor); jCheckBoxComment.setToolTipText(getTooltip("CommentField")); jCheckBoxComment.setCursor(questionCursor); jLabelReason.setToolTipText(getTooltip("SignatureReason")); jLabelReason.setCursor(questionCursor); jLabelLocation.setToolTipText(getTooltip("SignatureLocation")); jLabelLocation.setCursor(questionCursor); } else { jLabelInput.setToolTipText(null); jLabelInput.setCursor(defaultCursor); jLabelOutput.setToolTipText(null); jLabelOutput.setCursor(defaultCursor); jLabelSignature.setToolTipText(null); jLabelSignature.setCursor(defaultCursor); jCheckBoxSignatureBlock.setToolTipText(null); jCheckBoxSignatureBlock.setCursor(defaultCursor); jLabelPassword.setToolTipText(null); jLabelPassword.setCursor(defaultCursor); jLabelResult.setToolTipText(null); jLabelResult.setCursor(defaultCursor); jLabelRestart.setToolTipText(null); jLabelRestart.setCursor(defaultCursor); jCheckBoxFinalize.setToolTipText(null); jCheckBoxFinalize.setCursor(defaultCursor); jLabelOptionLanguage.setToolTipText(null); jLabelOptionLanguage.setCursor(defaultCursor); jLabelOptionLogo.setToolTipText(null); jLabelOptionLogo.setCursor(defaultCursor); jCheckBoxComment.setToolTipText(null); jCheckBoxComment.setCursor(defaultCursor); jLabelReason.setToolTipText(null); jLabelReason.setCursor(defaultCursor); jLabelLocation.setToolTipText(null); jLabelLocation.setCursor(defaultCursor); } } public static void setResult(String resultText, Boolean errorState, String errorString) { if (errorState) { resultcolor = colorerror; if (exceptionstring == null) { exceptionstring = errorString; } System.err.println(resultText + "\n\t" + exceptionstring); } else { resultcolor = colorok; exceptionstring = null; } if (result == null) { result = resultText; } } }