260 lines
11 KiB
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.INFORMATION_MESSAGE);
|
|
}
|
|
} 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
|
|
}
|