SendMessageApp/src/com/cubetiqs/swing/SendMessage.java

260 lines
11 KiB
Java

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.cubetiqs.swing;
import com.cubetiqs.messaging.client.telegram.TelegramProvider;
import com.cubetiqs.util.LogUtil;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
/**
*
* @author CUBETIQ
*/
public class SendMessage extends javax.swing.JFrame {
private final TelegramProvider provider;
/**
* Creates new form NewJFrame
*/
public SendMessage() {
initComponents();
this.setTitle("Telegram Send Message");
String token = "";
String chatId = "-360594386";
provider = TelegramProvider
.init(token)
.sendToChatId(chatId);
}
/**
* 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() {
btnSend = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
txtMsg = new javax.swing.JTextArea();
btnChooseFile = new javax.swing.JButton();
lbSelectedFile = new javax.swing.JLabel();
txtBotToken = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
txtChatId = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
btnSend.setText("Send");
btnSend.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSendActionPerformed(evt);
}
});
txtMsg.setColumns(20);
txtMsg.setRows(5);
jScrollPane1.setViewportView(txtMsg);
btnChooseFile.setText("Choose File");
btnChooseFile.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnChooseFileActionPerformed(evt);
}
});
lbSelectedFile.setText("No file selected!");
jLabel1.setText("Telegram Bot Token:");
jLabel2.setText("Send To (Chat ID):");
txtChatId.setText("-360594386");
txtChatId.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtChatIdActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1)
.addGroup(layout.createSequentialGroup()
.addComponent(btnChooseFile)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(lbSelectedFile, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btnSend, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addComponent(txtChatId, javax.swing.GroupLayout.PREFERRED_SIZE, 143, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(txtBotToken)))))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtBotToken, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(txtChatId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnChooseFile)
.addComponent(btnSend)
.addComponent(lbSelectedFile, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(49, 49, 49))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void btnSendActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSendActionPerformed
// TODO add your handling code here:
String token = txtBotToken.getText();
String chatId = txtChatId.getText();
if (token == null || token.isEmpty()) {
JOptionPane.showMessageDialog(this,
"Telegram bot token is required to send the message!",
"Error Token",
JOptionPane.ERROR_MESSAGE);
return;
} else {
provider.setBotToken(token);
}
if (chatId == null || chatId.isEmpty()) {
JOptionPane.showMessageDialog(this,
"Send to (Chat ID) is required to receive the message!",
"Error Chat ID",
JOptionPane.ERROR_MESSAGE);
return;
} else {
provider.sendToChatId(chatId);
}
String msg = txtMsg.getText();
try {
Object response = provider.setMessage(msg)
.setFile(selectedFile)
.send();
if (response == null) {
JOptionPane.showMessageDialog(this,
"Unable to send message and response return back is null!",
"Error Send Message",
JOptionPane.ERROR_MESSAGE);
} else {
JOptionPane.showMessageDialog(this,
"Message sent successfully!",
"Send Message",
JOptionPane.OK_OPTION);
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(this,
"Send message error with: " + ex.getMessage(),
"Error Send Message",
JOptionPane.ERROR_MESSAGE);
}
}//GEN-LAST:event_btnSendActionPerformed
private File selectedFile = null;
private void btnChooseFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnChooseFileActionPerformed
// TODO add your handling code here:
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle("Choose File to Send");
int isSelected = chooser.showOpenDialog(null);
if (isSelected == JFileChooser.APPROVE_OPTION) {
selectedFile = chooser.getSelectedFile();
lbSelectedFile.setText(selectedFile.getName());
} else {
LogUtil.error("No file select!");
selectedFile = null;
lbSelectedFile.setText("No file select!");
}
}//GEN-LAST:event_btnChooseFileActionPerformed
private void txtChatIdActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtChatIdActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_txtChatIdActionPerformed
/**
* @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(SendMessage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(SendMessage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(SendMessage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(SendMessage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new SendMessage().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnChooseFile;
private javax.swing.JButton btnSend;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel lbSelectedFile;
private javax.swing.JTextField txtBotToken;
private javax.swing.JTextField txtChatId;
private javax.swing.JTextArea txtMsg;
// End of variables declaration//GEN-END:variables
}