/* * Copyright (C) 2015 Shashank Tulsyan <shashaank at neembuu.com> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package neembuu.uploader.captcha; import java.awt.Toolkit; import java.awt.event.KeyEvent; import java.net.URL; import neembuu.uploader.theme.ThemeCheck; import org.apache.http.protocol.HttpContext; /** * * @author davidepastore */ public class CaptchaForm extends javax.swing.JFrame { private URL imageURL; private HttpContext httpContext; public boolean isClosing; public String captchaString; /** * Creates new form CaptchaForm */ public CaptchaForm() { initComponents(); } /** * Creates new form CaptchaForm * @param file The image file to display in the ImagePanel. */ public CaptchaForm(URL imageURL) { this(imageURL,""); } /** * Creates new form CaptchaForm. * @param file The image file to display in the ImagePanel. * @param title The title of this form. */ public CaptchaForm(URL imageURL, String title) { this(imageURL, title, null); } /** * Creates new form CaptchaForm. * @param file The image file to display in the ImagePanel. * @param title The title of this form. * @param httpContext The HttpContext for the request. */ public CaptchaForm(URL imageURL, String title, HttpContext httpContext) { this.imageURL = imageURL; this.httpContext = httpContext; initComponents(); this.setTitle(title); setAlwaysOnTop(false); } public void setImageURL(URL imageURL) { this.imageURL = imageURL; captchaImage.update(imageURL, httpContext); } public void setHttpContext(HttpContext httpContext) { this.httpContext = httpContext; captchaImage.update(imageURL, httpContext); } /** * 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. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; jPanel1 = new javax.swing.JPanel(); captchaImage = new neembuu.uploader.captcha.ImagePanel(imageURL, httpContext); okButton = new javax.swing.JButton(); cancelButton = new javax.swing.JButton(); captchaTextField = new javax.swing.JTextField(); jPanel3 = new javax.swing.JPanel(); jPanel2 = new javax.swing.JPanel(); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 100, Short.MAX_VALUE) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 100, Short.MAX_VALUE) ); setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); setAlwaysOnTop(true); setIconImage(Toolkit.getDefaultToolkit().getImage((getClass().getResource("/neembuuuploader/resources/Icon.png")))); setMinimumSize(new java.awt.Dimension(332, 178)); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { formWindowClosing(evt); } }); java.awt.GridBagLayout layout = new java.awt.GridBagLayout(); layout.columnWidths = new int[] {0, 5, 0}; layout.rowHeights = new int[] {0, 5, 0, 5, 0}; getContentPane().setLayout(layout); captchaImage.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, new java.awt.Color(255, 51, 51))); captchaImage.setPreferredSize(new java.awt.Dimension(300, 57)); javax.swing.GroupLayout captchaImageLayout = new javax.swing.GroupLayout(captchaImage); captchaImage.setLayout(captchaImageLayout); captchaImageLayout.setHorizontalGroup( captchaImageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 314, Short.MAX_VALUE) ); captchaImageLayout.setVerticalGroup( captchaImageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 107, Short.MAX_VALUE) ); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.ipadx = 2; gridBagConstraints.ipady = 50; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); getContentPane().add(captchaImage, gridBagConstraints); okButton.setText("OK"); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { okButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; getContentPane().add(okButton, gridBagConstraints); cancelButton.setText("Cancel"); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; getContentPane().add(cancelButton, gridBagConstraints); captchaTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { captchaTextFieldKeyPressed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 3; gridBagConstraints.ipady = 3; gridBagConstraints.insets = new java.awt.Insets(5, 10, 5, 10); getContentPane().add(captchaTextField, gridBagConstraints); jPanel3.setLayout(new java.awt.GridBagLayout()); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 3; jPanel3.add(jPanel2, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 3; getContentPane().add(jPanel3, gridBagConstraints); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-341)/2, (screenSize.height-234)/2, 341, 234); }// </editor-fold>//GEN-END:initComponents private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed captchaString = captchaTextField.getText(); formWindowClosing(null); }//GEN-LAST:event_okButtonActionPerformed private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed formWindowClosing(null); }//GEN-LAST:event_cancelButtonActionPerformed private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing isClosing = true; dispose(); }//GEN-LAST:event_formWindowClosing public final void destory(){ formWindowClosing(null); } private void captchaTextFieldKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_captchaTextFieldKeyPressed if(evt.getKeyCode() == KeyEvent.VK_ENTER){ okButtonActionPerformed(null); } }//GEN-LAST:event_captchaTextFieldKeyPressed @Override public void setVisible(boolean b) { ThemeCheck.apply(this); super.setVisible(b); //To change body of generated methods, choose Tools | Templates. } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(CaptchaForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(CaptchaForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(CaptchaForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(CaptchaForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { new CaptchaForm().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton cancelButton; private neembuu.uploader.captcha.ImagePanel captchaImage; private javax.swing.JTextField captchaTextField; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JButton okButton; // End of variables declaration//GEN-END:variables }