/*
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
*
* Copyright @ 2015 Atlassian Pty Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.java.sip.communicator.impl.gui.main.chat;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import net.java.sip.communicator.impl.gui.*;
import net.java.sip.communicator.impl.gui.utils.*;
import net.java.sip.communicator.plugin.desktoputil.*;
import net.java.sip.communicator.util.*;
/**
* The dialog, shown when user click on the chat "Send" button, while the
* "Send as SMS" option is selected. This dialog allow the user to choose or
* enter its new own phone number to which the SMS would be sent.
*
* @author Yana Stamcheva
*/
public class SendSmsDialog
extends SIPCommDialog
{
private Logger logger = Logger.getLogger(SendSmsDialog.class);
private String title
= GuiActivator.getResources().getI18NString("service.gui.SEND_SMS");
private JLabel phoneNumberLabel = new JLabel(
GuiActivator.getResources().getI18NString("service.gui.ENTER_PHONE_NUMBER"));
private JTextField phoneNumberBox
= new JTextField();
private JTextArea detailsArea = new JTextArea(
GuiActivator.getResources().getI18NString("service.gui.SEND_SMS_DETAILS"));
private JPanel mainPanel = new JPanel(new BorderLayout(10, 10));
private JButton sendButton = new JButton(
GuiActivator.getResources().getI18NString("service.gui.SEND"));
private JPanel buttonPanel = new JPanel(
new FlowLayout(FlowLayout.RIGHT));
private ChatPanel chatPanel;
private String smsMessage;
private ChatTransport chatTransport;
/**
* Creates and constructs the SendSmsDialog, by specifying its parent chat,
* the message that will be send at the end and the
* <tt>OperationSetSmsMessaging</tt> to be used for sending the message.
*
* @param chatPanel the chat sending the message
* @param chatTransport the <tt>ChatTransport> that will be used to
* send the message
* @param message the SMS message
*/
public SendSmsDialog( ChatPanel chatPanel,
ChatTransport chatTransport,
String message)
{
super(chatPanel.getChatContainer().getFrame());
this.chatPanel = chatPanel;
this.chatTransport = chatTransport;
this.smsMessage = message;
this.setTitle(title);
this.getContentPane().add(mainPanel, BorderLayout.CENTER);
this.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
this.mainPanel.setBorder(
BorderFactory.createEmptyBorder(20, 20, 20, 20));
this.mainPanel.add(phoneNumberLabel, BorderLayout.WEST);
this.mainPanel.add(phoneNumberBox, BorderLayout.CENTER);
this.mainPanel.add(detailsArea, BorderLayout.SOUTH);
String defaultSmsNumber
= chatTransport.getParentChatSession().getDefaultSmsNumber();
phoneNumberBox.setText(defaultSmsNumber);
this.detailsArea.setOpaque(false);
this.detailsArea.setLineWrap(true);
this.detailsArea.setWrapStyleWord(true);
this.detailsArea.setEditable(false);
this.buttonPanel.add(sendButton);
this.sendButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
sendSmsMessage( phoneNumberBox.getText(),
smsMessage);
}
});
}
/**
* Sends the given message to the given phoneNumber, using the current
* SMS operation set.
*
* @param phoneNumber the phone number to which the message should be sent,
* if is null, will leave transport to choose
* @param message the message to send.
*/
public void sendSmsMessage(String phoneNumber, String message)
{
if(phoneNumber != null)
chatTransport.getParentChatSession()
.setDefaultSmsNumber(phoneNumber);
SMSManager.sendSMS(phoneNumber, message, chatTransport, chatPanel);
this.dispose();
}
@Override
protected void close(boolean isEscaped)
{
this.dispose();
}
}