/*
* 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.cap;
import java.awt.BorderLayout;
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.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import org.mobicents.protocols.ss7.tools.simulator.tests.cap.TestCapSsfManMBean;
import org.mobicents.protocols.ss7.tools.simulatorgui.TestingForm;
/**
*
* @author sergey vetyutnev
*
*/
public class TestCapSsfForm extends TestingForm {
private static final long serialVersionUID = 841129095300363570L;
private TestCapSsfManMBean capSsf;
private JButton btCloseDialog;
private JButton btInitialDp;
private JButton btAssistRequestInstructions;
private JLabel lbState;
private JButton btApplyChargingReport;
private JButton btEventReportBCSM;
private JPanel panel_1;
private JLabel lbResult;
public TestCapSsfForm(JFrame owner) {
super(owner);
JPanel panel = new JPanel();
panel_c.add(panel, BorderLayout.NORTH);
GridBagLayout gbl_panel = new GridBagLayout();
gbl_panel.columnWidths = new int[] { 0, 0, 0, 0, 0 };
gbl_panel.rowHeights = new int[] { 0, 0, 0, 0, 0, 0, 0, 0 };
gbl_panel.columnWeights = new double[] { 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE };
gbl_panel.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE };
panel.setLayout(gbl_panel);
btCloseDialog = new JButton("Close Dialog");
btCloseDialog.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
closeDialog();
}
});
GridBagConstraints gbc_btCloseDialog = new GridBagConstraints();
gbc_btCloseDialog.insets = new Insets(0, 0, 5, 5);
gbc_btCloseDialog.gridx = 1;
gbc_btCloseDialog.gridy = 0;
panel.add(btCloseDialog, gbc_btCloseDialog);
btInitialDp = new JButton("InitialDp");
btInitialDp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
sendInitialDP();
}
});
GridBagConstraints gbc_btInitialDp = new GridBagConstraints();
gbc_btInitialDp.insets = new Insets(0, 0, 5, 5);
gbc_btInitialDp.gridx = 2;
gbc_btInitialDp.gridy = 0;
panel.add(btInitialDp, gbc_btInitialDp);
btAssistRequestInstructions = new JButton("AssistRequestInstructions");
btAssistRequestInstructions.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
sendAssistRequestInstructions();
}
});
GridBagConstraints gbc_btAssistRequestInstructions = new GridBagConstraints();
gbc_btAssistRequestInstructions.insets = new Insets(0, 0, 5, 0);
gbc_btAssistRequestInstructions.gridx = 3;
gbc_btAssistRequestInstructions.gridy = 0;
panel.add(btAssistRequestInstructions, gbc_btAssistRequestInstructions);
btApplyChargingReport = new JButton("ApplyChargingReport");
btApplyChargingReport.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
sendApplyChargingReport();
}
});
GridBagConstraints gbc_btApplyChargingReport = new GridBagConstraints();
gbc_btApplyChargingReport.insets = new Insets(0, 0, 5, 5);
gbc_btApplyChargingReport.gridx = 1;
gbc_btApplyChargingReport.gridy = 1;
panel.add(btApplyChargingReport, gbc_btApplyChargingReport);
btEventReportBCSM = new JButton("EventReportBCSM");
btEventReportBCSM.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
sendEventReportBCSM();
}
});
GridBagConstraints gbc_btEventReportBCSM = new GridBagConstraints();
gbc_btEventReportBCSM.insets = new Insets(0, 0, 5, 5);
gbc_btEventReportBCSM.gridx = 2;
gbc_btEventReportBCSM.gridy = 1;
panel.add(btEventReportBCSM, gbc_btEventReportBCSM);
panel_1 = new JPanel();
panel_c.add(panel_1, BorderLayout.SOUTH);
panel_1.setLayout(new BoxLayout(panel_1, BoxLayout.Y_AXIS));
lbResult = new JLabel("-");
lbResult.setHorizontalAlignment(SwingConstants.LEFT);
panel_1.add(lbResult);
lbState = new JLabel("-");
panel_1.add(lbState);
this.setDialogClosed();
}
public void setData(TestCapSsfManMBean capSsf) {
this.capSsf = capSsf;
}
private void closeDialog() {
String res = this.capSsf.closeCurrentDialog();
this.lbResult.setText(res);
setDialogClosed();
}
private void sendInitialDP() {
String msg = "";
String res = this.capSsf.performInitialDp(msg);
this.lbResult.setText(res);
}
private void sendAssistRequestInstructions() {
String msg = "";
String res = this.capSsf.performAssistRequestInstructions(msg);
this.lbResult.setText(res);
}
private void sendApplyChargingReport() {
String msg = "";
String res = this.capSsf.performApplyChargingReport(msg);
this.lbResult.setText(res);
}
private void sendEventReportBCSM() {
String msg = "";
String res = this.capSsf.performEventReportBCSM(msg);
this.lbResult.setText(res);
}
private void setDialogOpenedClosed(boolean opened) {
this.btInitialDp.setEnabled(!opened);
this.btAssistRequestInstructions.setEnabled(!opened);
this.btApplyChargingReport.setEnabled(opened);
this.btEventReportBCSM.setEnabled(opened);
}
private void setDialogOpened() {
setDialogOpenedClosed(true);
}
private void setDialogClosed() {
setDialogOpenedClosed(false);
}
@Override
public void sendNotif(Notification notif) {
super.sendNotif(notif);
if (notif.getMessage().startsWith("DlgClosed:")) {
this.setDialogClosed();
}
if (notif.getMessage().startsWith("DlgStarted:") || notif.getMessage().startsWith("DlgAccepted:")) {
this.setDialogOpened();
}
}
@Override
public void refreshState() {
super.refreshState();
String s1 = this.capSsf.getCurrentRequestDef();
this.lbState.setText(s1);
}
}