/*
* TeleStax, Open Source Cloud Communications Copyright 2012.
* and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.mobicents.protocols.ss7.tools.simulatorgui.tests.ussd;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.management.Notification;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.mobicents.protocols.ss7.tools.simulator.tests.ussd.TestUssdClientManMBean;
import org.mobicents.protocols.ss7.tools.simulator.tests.ussd.UssdClientAction;
import org.mobicents.protocols.ss7.tools.simulatorgui.TestingForm;
/**
*
* @author sergey vetyutnev
*
*/
public class TestUssdClientForm extends TestingForm {
private static final long serialVersionUID = 5761747864020450945L;
private JTextField tbMessage;
private JLabel lbResult;
private JLabel lbMessage;
private JLabel lbState;
private JButton btSendProcessunstructuredrequest;
private JButton btSendUnstructuredresponse;
private JButton btCloseCurrentDialog;
private TestUssdClientManMBean ussdClient;
private JButton btSendUssdBusyError;
public TestUssdClientForm(JFrame owner) {
super(owner);
JPanel panel = new JPanel();
panel_c.add(panel);
GridBagLayout gbl_panel = new GridBagLayout();
gbl_panel.columnWidths = new int[] { 0, 0, 0 };
gbl_panel.rowHeights = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
gbl_panel.columnWeights = new double[] { 0.0, 1.0, Double.MIN_VALUE };
gbl_panel.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE };
panel.setLayout(gbl_panel);
JLabel lblNewLabel = new JLabel("Message text");
GridBagConstraints gbc_lblNewLabel = new GridBagConstraints();
gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5);
gbc_lblNewLabel.anchor = GridBagConstraints.EAST;
gbc_lblNewLabel.gridx = 0;
gbc_lblNewLabel.gridy = 0;
panel.add(lblNewLabel, gbc_lblNewLabel);
tbMessage = new JTextField();
GridBagConstraints gbc_tbMessage = new GridBagConstraints();
gbc_tbMessage.insets = new Insets(0, 0, 5, 0);
gbc_tbMessage.fill = GridBagConstraints.HORIZONTAL;
gbc_tbMessage.gridx = 1;
gbc_tbMessage.gridy = 0;
panel.add(tbMessage, gbc_tbMessage);
tbMessage.setColumns(10);
btSendProcessunstructuredrequest = new JButton("Send ProcessUnstructuredRequest");
btSendProcessunstructuredrequest.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
sendProcessUnstructuredRequest();
}
});
GridBagConstraints gbc_btSendProcessunstructuredrequest = new GridBagConstraints();
gbc_btSendProcessunstructuredrequest.insets = new Insets(0, 0, 5, 0);
gbc_btSendProcessunstructuredrequest.gridx = 1;
gbc_btSendProcessunstructuredrequest.gridy = 1;
panel.add(btSendProcessunstructuredrequest, gbc_btSendProcessunstructuredrequest);
btSendUnstructuredresponse = new JButton("Send UnstructuredResponse");
btSendUnstructuredresponse.addActionListener(new ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
sendUnstructuredResponse();
}
});
GridBagConstraints gbc_btSendUnstructuredresponse = new GridBagConstraints();
gbc_btSendUnstructuredresponse.insets = new Insets(0, 0, 5, 0);
gbc_btSendUnstructuredresponse.gridx = 1;
gbc_btSendUnstructuredresponse.gridy = 2;
panel.add(btSendUnstructuredresponse, gbc_btSendUnstructuredresponse);
btCloseCurrentDialog = new JButton("Close current Dialog");
btCloseCurrentDialog.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
closeCurrentDialog();
}
});
GridBagConstraints gbc_btCloseCurrentDialog = new GridBagConstraints();
gbc_btCloseCurrentDialog.insets = new Insets(0, 0, 5, 0);
gbc_btCloseCurrentDialog.gridx = 1;
gbc_btCloseCurrentDialog.gridy = 3;
panel.add(btCloseCurrentDialog, gbc_btCloseCurrentDialog);
JLabel lblOperationResult = new JLabel("Operation result");
GridBagConstraints gbc_lblOperationResult = new GridBagConstraints();
gbc_lblOperationResult.insets = new Insets(0, 0, 5, 5);
gbc_lblOperationResult.gridx = 0;
gbc_lblOperationResult.gridy = 5;
panel.add(lblOperationResult, gbc_lblOperationResult);
btSendUssdBusyError = new JButton("Send UssdBusy error");
btSendUssdBusyError.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
sendUssdBusyError();
}
});
GridBagConstraints gbc_btSendUssdBusyError = new GridBagConstraints();
gbc_btSendUssdBusyError.insets = new Insets(0, 0, 5, 0);
gbc_btSendUssdBusyError.gridx = 1;
gbc_btSendUssdBusyError.gridy = 4;
panel.add(btSendUssdBusyError, gbc_btSendUssdBusyError);
lbResult = new JLabel("-");
GridBagConstraints gbc_lbResult = new GridBagConstraints();
gbc_lbResult.insets = new Insets(0, 0, 5, 0);
gbc_lbResult.gridx = 1;
gbc_lbResult.gridy = 5;
panel.add(lbResult, gbc_lbResult);
JLabel lblMessageReceived = new JLabel("Message received");
GridBagConstraints gbc_lblMessageReceived = new GridBagConstraints();
gbc_lblMessageReceived.insets = new Insets(0, 0, 5, 5);
gbc_lblMessageReceived.gridx = 0;
gbc_lblMessageReceived.gridy = 6;
panel.add(lblMessageReceived, gbc_lblMessageReceived);
lbMessage = new JLabel("-");
GridBagConstraints gbc_lbMessage = new GridBagConstraints();
gbc_lbMessage.insets = new Insets(0, 0, 5, 0);
gbc_lbMessage.gridx = 1;
gbc_lbMessage.gridy = 6;
panel.add(lbMessage, gbc_lbMessage);
lbState = new JLabel("-");
GridBagConstraints gbc_lbState = new GridBagConstraints();
gbc_lbState.gridx = 1;
gbc_lbState.gridy = 7;
panel.add(lbState, gbc_lbState);
}
public void setData(TestUssdClientManMBean ussdClient) {
this.ussdClient = ussdClient;
if (ussdClient.getUssdClientAction().intValue() != UssdClientAction.VAL_MANUAL_OPERATION) {
tbMessage.setEnabled(false);
btSendProcessunstructuredrequest.setEnabled(false);
btSendUnstructuredresponse.setEnabled(false);
btCloseCurrentDialog.setEnabled(false);
}
}
private void sendProcessUnstructuredRequest() {
this.lbMessage.setText("");
String msg = this.tbMessage.getText();
String res = this.ussdClient.performProcessUnstructuredRequest(msg);
this.lbResult.setText(res);
}
private void sendUnstructuredResponse() {
this.lbMessage.setText("");
String msg = this.tbMessage.getText();
String res = this.ussdClient.performUnstructuredResponse(msg);
this.lbResult.setText(res);
}
private void closeCurrentDialog() {
this.lbMessage.setText("");
String res = this.ussdClient.closeCurrentDialog();
this.lbResult.setText(res);
}
private void sendUssdBusyError() {
this.lbMessage.setText("");
String res = this.ussdClient.sendUssdBusyResponse();
this.lbResult.setText(res);
}
@Override
public void sendNotif(Notification notif) {
super.sendNotif(notif);
if (notif.getMessage().startsWith("Rcvd: procUnstrSsResp: ")) {
String s1 = notif.getMessage().substring(6);
this.lbMessage.setText(s1);
}
if (notif.getMessage().startsWith("Rcvd: unstrSsReq: ")) {
String s1 = notif.getMessage().substring(6);
this.lbMessage.setText(s1);
}
if (notif.getMessage().startsWith("Rcvd: unstrSsNotify: ")) {
String s1 = notif.getMessage().substring(6);
this.lbMessage.setText(s1);
}
}
@Override
public void refreshState() {
super.refreshState();
String s1 = this.ussdClient.getCurrentRequestDef();
this.lbState.setText(s1);
}
}