Package xapc.gui

Source Code of xapc.gui.FeedbackPanel

package xapc.gui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import xapc.core.LibGui;
import net.miginfocom.swing.MigLayout;

public class FeedbackPanel extends JDialog
{
  private static final long serialVersionUID = 442580013916858376L;
  private JTextArea label = new JTextArea("M�chtest du etwas kritisieren, " +
    "verbessern, abschaffen oder einfach nur deine Meinung �u�ern,\n" +
    "so schreibe all dies in das untere Textfeld und schicke mir dein Feedback.\n\n" +
    "Bitte f�lle deine Email und Anmeldeinformationen ein, da die Email " +
    "�ber den SMTP Host deines Email\n Providers verschickt wird!");
  private JLabel labelEmailFrom = new JLabel("Deine Email");
  private JLabel labelHost = new JLabel("(SMTP) Host deines Email Providers");
  private JLabel labelName = new JLabel("Name zum Anmelden");
  private JLabel labelPassword = new JLabel("Passwort zum Anmelden");
  private JTextField jTextFieldEmailFrom = new JTextField(20);
  private JTextField jTextFieldHost = new JTextField(20);
  private JTextField jTextFieldName = new JTextField(20);
  private JPasswordField jTextFieldPassword = new JPasswordField(20);

  public FeedbackPanel()
  {
    super(XRGui.getInstance());
    setTitle("Feedback...");
    setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    getRootPane().registerKeyboardAction(new ActionListener() {@Override
      public void actionPerformed(ActionEvent arg0) {
        dispose(); }
    }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false),
      JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
   
    label.setEditable(false);
    label.setOpaque(false);
    label.setFont(new JLabel().getFont());
    JPanel contentPanel = new JPanel(new MigLayout(
      "",
      "",
      ""));
    final JTextArea ta = new JTextArea(10, 60);
    JScrollPane sp = new JScrollPane(ta);
    JButton send = new JButton("Abschicken");
    send.addActionListener(new ActionListener()
    { 
      @Override
      public void actionPerformed(ActionEvent e)
      {
        boolean failure = false;
        Properties props = new Properties();
        Session session = Session.getDefaultInstance(props);
        session.setDebug(true);
        File sErrFile = new File("feedback_error.txt");
        PrintStream ps = null;
        try
        {
          ps = new PrintStream(sErrFile);
          session.setDebugOut(ps);
        }
        catch (FileNotFoundException e2)
        {
          e2.printStackTrace();
        }
        Message message = new MimeMessage(session);
        Address addressFrom = null;
        Address addressTo = null;
       
        try
        {
          addressFrom = new InternetAddress(jTextFieldEmailFrom.getText());
          addressTo = new InternetAddress("r.Heffler@web.de");
          message.setText(ta.getText());
          message.setSubject("XhodonRechner Feedback");
          message.setFrom(addressFrom);
          message.addRecipient(Message.RecipientType.TO, addressTo);
          message.saveChanges();
          Transport transport = session.getTransport("smtp");
          transport.connect(jTextFieldHost.getText(), jTextFieldName.getText(), new String(jTextFieldPassword.getPassword()));
          transport.sendMessage(message, message.getAllRecipients());
          transport.close();
        }
        catch (Exception e1)
        {
          failure = true;
          if(ps != null) e1.printStackTrace(ps);
//          e1.printStackTrace();
          LibGui.showErrorDialog("Beim Versenden der Email ist ein Fehler aufgetreten.");
        }
       
        if(!failure)
        {
          JOptionPane.showMessageDialog(XRGui.getInstance(), "Email erfolgreich verschickt...",
            "Erfolgreich...", JOptionPane.INFORMATION_MESSAGE);
          if(sErrFile.exists()) sErrFile.delete();
        }
      }
    });
    JButton cancel = new JButton("Beenden");
    cancel.addActionListener(new ActionListener()
    { 
      @Override
      public void actionPerformed(ActionEvent e)
      {
        dispose();
      }
    });
   
    contentPanel.add(label, "cell 0 0 2");
    contentPanel.add(labelEmailFrom, "cell 0 1 2");
    contentPanel.add(jTextFieldEmailFrom, "cell 1 1 2");
    contentPanel.add(labelHost, "cell 0 2");
    contentPanel.add(jTextFieldHost, "cell 1 2");
    contentPanel.add(labelName, "cell 0 3");
    contentPanel.add(jTextFieldName, "cell 1 3");
    contentPanel.add(labelPassword, "cell 0 4");
    contentPanel.add(jTextFieldPassword, "cell 1 4");
    contentPanel.add(sp, "cell 0 5 2");
    contentPanel.add(send, "cell 0 6 2");
    contentPanel.add(cancel, "cell 0 6 2");
    setContentPane(contentPanel);
    pack();
  }
}
TOP

Related Classes of xapc.gui.FeedbackPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.