/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package GUI;
import CSP_ANALYSE.AnalyseFDR;
import CSP_ANALYSE.CSPVerificationInstance;
import LOGIC.Channel;
import LOGIC.EventChannel;
import CSP_ANALYSE.FDRResult;
import LOGIC.Instance;
import LOGIC.Internacional;
import LOGIC.ObjectList;
import LOGIC.Protocols;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Dalay
*/
public class RenameGUI extends javax.swing.JFrame {
public RenameGUI(Internacional inter, ObjectList listas, boolean edicao, int local, int b) {
this.local = local;
this.inter = inter;
this.edicao = edicao;
this.listas = listas;
increment = listas.getDefaultrenameNumber();
this.b = b;
this.antigo = listas.getContractList().get(b).getChannel();
initComponents();
//System.out.println("rename");
/*for (int i = 0; i < listas.getContractList().get(b).getChannel().size(); i++) {
// System.out.println("aqui o/" + listas.getContractList().get(b).getChannel().get(i).getName());
}*/
//System.out.println(listas.getContractList().get(b).getChannel().size());
//instance = rename();
rename();
nome1.setText(listas.getContractList().get(b).getName());
nome2.setText(instance.getName());
showCChannels();
showIChannels();
nome1.setEditable(false);
/*for (int i = 0; i < listas.getContractList().get(listas.getContractList().size() - 1).getChannel().size(); i++) {
System.out.println("aqui o/" + listas.getContractList().get(listas.getContractList().size() - 1).getChannel().get(i).getName());
}*/
verificaEdicao();
}
boolean edicao;
int local;
private Instance instance = new Instance();
private int increment;
DefaultTableModel channelCTipo = new DefaultTableModel(null, new String[]{"Name"}) {
public boolean isCellEditable(int rowIndex, int mColIndex) {
return false;
}
};
DefaultTableModel channelITipo = new DefaultTableModel(null, new String[]{"Name"});
ObjectList listas = new ObjectList();
int b;
List<Channel> antigo = new LinkedList<Channel>();
List<Channel> novo = new LinkedList<Channel>();
Internacional inter;
boolean resultado = false;
/**
* ;
* 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() {
contractPanel = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
CChannels = new javax.swing.JTable();
nome1 = new javax.swing.JTextField();
instancePanel = new javax.swing.JPanel();
jScrollPane2 = new javax.swing.JScrollPane();
IChannels = new javax.swing.JTable();
nome2 = new javax.swing.JTextField();
create = new javax.swing.JButton();
ticFDR = new javax.swing.JLabel();
verification = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(490, 465));
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosed(java.awt.event.WindowEvent evt) {
formWindowClosed(evt);
}
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});
contractPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED, new java.awt.Color(153, 153, 255), null), "Contrato", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N
CChannels.setModel(channelCTipo);
jScrollPane1.setViewportView(CChannels);
nome1.setText("jTextField1");
nome1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
javax.swing.GroupLayout contractPanelLayout = new javax.swing.GroupLayout(contractPanel);
contractPanel.setLayout(contractPanelLayout);
contractPanelLayout.setHorizontalGroup(
contractPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(contractPanelLayout.createSequentialGroup()
.addGroup(contractPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(contractPanelLayout.createSequentialGroup()
.addGap(55, 55, 55)
.addComponent(nome1, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(contractPanelLayout.createSequentialGroup()
.addGap(21, 21, 21)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(27, Short.MAX_VALUE))
);
contractPanelLayout.setVerticalGroup(
contractPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, contractPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(nome1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 297, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(23, Short.MAX_VALUE))
);
instancePanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED, new java.awt.Color(153, 153, 255), null), "Instancia", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N
IChannels.setModel(channelITipo);
IChannels.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
jScrollPane2.setViewportView(IChannels);
nome2.setText("jTextField1");
javax.swing.GroupLayout instancePanelLayout = new javax.swing.GroupLayout(instancePanel);
instancePanel.setLayout(instancePanelLayout);
instancePanelLayout.setHorizontalGroup(
instancePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(instancePanelLayout.createSequentialGroup()
.addContainerGap(27, Short.MAX_VALUE)
.addGroup(instancePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, instancePanelLayout.createSequentialGroup()
.addComponent(nome2, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(52, 52, 52))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, instancePanelLayout.createSequentialGroup()
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(21, 21, 21))))
);
instancePanelLayout.setVerticalGroup(
instancePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, instancePanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(nome2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 297, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
create.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
create.setText("Create");
create.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
createActionPerformed(evt);
}
});
verification.setText("verificação I/O Process");
verification.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
verificationActionPerformed(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()
.addComponent(contractPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(24, 24, 24)
.addComponent(instancePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(verification)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(ticFDR, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(create)
.addGap(21, 21, 21))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(contractPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(instancePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(create)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(ticFDR, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(verification)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void createActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_createActionPerformed
instance.setName(nome2.getText());
if (verifica()) {
if (nomeRep()) {
for (int i = 0; i < antigo.size(); i++) {
novo.add(new Channel());
novo.get(i).setName((String) IChannels.getValueAt(i, 0));
novo.get(i).setFlag(antigo.get(i).getFlag());
novo.get(i).setType(antigo.get(i).getType());
//antigo.get(i)
//novo.get(i).setName((String) IChannels.getValueAt(i, 0));
}
listas.getInstanceList().add(instance);
local = listas.getInstanceList().size() - 1;
//System.out.println(listas.getInstanceList().get(listas.getInstanceList().size() - 1).getName());
instance.setBehavior(listas.getContractList().get(b).getBehavior());
listas.getInstanceList().get(local).setName(nome2.getText());
listas.getInstanceList().get(local).setBehavior(listas.getContractList().get(b).getBehavior());
listas.getInstanceList().get(local).setChannel(getChannels());
listas.getInstanceList().get(local).setContrato(listas.getContractList().get(b));
listas.getInstanceList().get(local).setEvents(getEvents());
/*for(int i = 0; i<listas.getContractList().get(b).getIn().size(); i++){
listas.getInstanceList().get(local).getIn().get(i).criaEvento(null, null);
}*/
listas.getInstanceList().get(local).setIn(listarEventos(listas.getContractList().get(b).getIn()));
listas.getInstanceList().get(local).setOut(listarEventos(listas.getContractList().get(b).getOut()));
listas.getInstanceList().get(local).setType(listas.getContractList().get(b).getType());
//listas.getInstanceList().get(local).setProtocolos(listas.getContractList().get(b).getProtocolos());
listas.getInstanceList().get(local).setFlag(resultado);
//listas.getInstanceList().get(local)
//antigo
//protocolos
// mais uma tentativa de renomear protocolos... T.T
LinkedList<Protocols> p = new LinkedList<Protocols>();
for(int i = 0; i<listas.getContractList().get(b).getProtocolos().size(); i++){
for(int j = 0; j<antigo.size();j++){
if (listas.getContractList().get(b).getProtocolos().get(i).getCanal().equals(antigo.get(j))){
Protocols aux = new Protocols();
aux.setCanal(listas.getInstanceList().get(local).getChannel().get(j));
aux.setDualProtocol(listas.getContractList().get(b).getProtocolos().get(i).getDualProtocol().replace(antigo.get(j).getName(), listas.getInstanceList().get(local).getChannel().get(j).getName()));
aux.setProtocol(listas.getContractList().get(b).getProtocolos().get(i).getProtocol().replace(antigo.get(j).getName(), listas.getInstanceList().get(local).getChannel().get(j).getName()));
aux.setCc(listas.getContractList().get(b).getProtocolos().get(i).getCc().replace(antigo.get(j).getName(), listas.getInstanceList().get(local).getChannel().get(j).getName()));
p.add(aux);
}
}
}
listas.getInstanceList().get(local).setProtocolos(p);
//conserte esse for urgentemene!!!!
/*for (int i = 0; i < listas.getContractList().get(b).getChannel().size(); i++) {
int lugar = takeLugar(listas.getContractList().get(b).getChannel().get(i), listas.getContractList().get(b).getProtocolos() );
if(lugar !=-1){
listas.getInstanceList().get(local).getProtocolos().add(new Protocols());
Channel auxiliar = new Channel();
auxiliar.setName((String) IChannels.getValueAt(i, 0));
auxiliar.setType(listas.getContractList().get(b).getChannel().get(i).getType());
listas.getInstanceList().get(local).getProtocolos().get(listas.getInstanceList().get(b).getProtocolos().size()-1).setCanal(auxiliar);
listas.getInstanceList().get(local).getProtocolos().get(listas.getInstanceList().get(b).getProtocolos().size()-1).setProtocol(listas.getContractList().get(b).getProtocolos().get(lugar).getProtocol());
listas.getInstanceList().get(local).getProtocolos().get(listas.getInstanceList().get(b).getProtocolos().size()-1).setDualProtocol(listas.getContractList().get(b).getProtocolos().get(lugar).getDualProtocol());
}
//antigo.get(i)
//novo.get(i).setName((String) IChannels.getValueAt(i, 0));
}*/
//renameProt();
InstanceGUI.aberto = false;
increment = increment + 1;
listas.setDefaultrenameNumber(increment);
this.dispose();
} else {
JOptionPane.showMessageDialog(null, "Nome já existe...");
}
} else {
JOptionPane.showMessageDialog(null, "Nenhum campo pode estar vazio...");
}
}//GEN-LAST:event_createActionPerformed
private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed
InstanceGUI.aberto = false; // TODO add your handling code here:
}//GEN-LAST:event_formWindowClosed
private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated
showCChannels(); // TODO add your handling code here:
}//GEN-LAST:event_formWindowActivated
private void verificationActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_verificationActionPerformed
ArrayList<FDRResult> r = FDRResult();
new ShowResultIOProcessGUI(inter, r, "FDR").setVisible(true);
// TODO add your handling code here:
}//GEN-LAST:event_verificationActionPerformed
public List<EventChannel> listarEventos(List<EventChannel> entrada) {
List<EventChannel> retorno = new LinkedList<EventChannel>();
for (int i = 0; i < entrada.size(); i++) {
for (int j = 0; j < antigo.size(); j++) {
if (entrada.get(i).getChannel() == antigo.get(j)) {
//entrada.get(i).setChannel(novo.get(j));
retorno.add(new EventChannel());
retorno.get(retorno.size() - 1).criaEvento(novo.get(j), entrada.get(i).getSufixo());
}
}
}
return retorno;
}
public ArrayList<FDRResult> FDRResult() {
for (int i = 0; i < antigo.size(); i++) {
novo.add(new Channel());
novo.get(i).setName((String) IChannels.getValueAt(i, 0));
novo.get(i).setFlag(antigo.get(i).getFlag());
novo.get(i).setType(antigo.get(i).getType());
//novo.add(antigo.get(i));
//novo.get(i).setName((String) IChannels.getValueAt(i, 0));
}
instance.setName(nome2.getText());
instance.setBehavior(listas.getContractList().get(b).getBehavior());
instance.setChannel(getChannels());
instance.setContrato(listas.getContractList().get(b));
instance.setEvents(getEvents());
instance.setIn(listarEventos(listas.getContractList().get(b).getIn()));
instance.setOut(listarEventos(listas.getContractList().get(b).getOut()));
instance.setType(listas.getContractList().get(b).getType());
CSPVerificationInstance v = new CSPVerificationInstance(instance, listas);
//AnalyseFDR v = new AnalyseFDR(instance, listas);
ArrayList<FDRResult> r = new ArrayList<FDRResult>();
r = v.verificaInstanceIsIOprocess();
if (isResultTrue(r)) {
// System.out.println("entrou aqui...");
ticFDR.setIcon(ContractGUI.iconv);
resultado = true;
//ticFDR.setText("tic");
} else {
ticFDR.setIcon(ContractGUI.iconx);
//ticFDR.setText("x");
resultado = false;
}
return r;
}
public boolean isResultTrue(ArrayList<FDRResult> r) {
for (int i = 0; i < r.size(); i++) {
if ((!r.get(i).getResultado())) {
return false;
}
}
return true;
}
public List<EventChannel> getEvents() {
List<EventChannel> lista = new LinkedList<EventChannel>();
return lista;
}
public List<Channel> getChannels() {
List<Channel> lista = new LinkedList<Channel>();
for (int i = 0; i < IChannels.getRowCount(); i++) {
lista.add(new Channel());
lista.get(lista.size() - 1).setName((String) IChannels.getValueAt(i, 0));
lista.get(lista.size() - 1).setType(listas.getContractList().get(b).getChannel().get(i).getType());
//System.out.println((String) IChannels.getValueAt(i, 0));
}
return lista;
}
public boolean verifica() {
if (nome2.getText() == "") {
return false;
}
for (int i = 0; i < instance.getChannel().size(); i++) {
if (instance.getChannel().get(i).getName() == "") {
return false;
}
}
return true;
}
public boolean nomeRep() {
for (int j = 0; j < listas.getInstanceList().size(); j++) {
if (nome2.getText().equals(listas.getInstanceList().get(j).getName())) {
return false;
}
}
return true;
}
public void showCChannels() {
while (channelCTipo.getRowCount() > 0) {
channelCTipo.removeRow(0);
}
if (listas.getContractList().get(b).getChannel().isEmpty()) {
System.out.println("emptyCC");
} else {
String[] linha = new String[]{null, null};
for (int j = 0; j < listas.getContractList().get(b).getChannel().size(); j++) {
channelCTipo.addRow(linha);
channelCTipo.setValueAt(listas.getContractList().get(b).getChannel().get(j).getName(), j, 0);
//System.out.println(Instances.b);
}
}
}
public void showIChannels() {
while (IChannels.getRowCount() > 0) {
channelITipo.removeRow(0);
}
if (instance.getChannel().isEmpty()) {
System.out.println("emptyCI");
} else {
String[] linha = new String[]{null, null};
for (int j = 0; j < instance.getChannel().size(); j++) {
channelITipo.addRow(linha);
channelITipo.setValueAt(instance.getChannel().get(j).getName(), j, 0);
}
}
}
public void rename() { //cuidado com o nullpointexception
instance.setName(listas.getContractList().get(b).getName() + increment);
//System.out.println(listas.getContractList().get(b).getChannel().size());
for (int i = 0; i < listas.getContractList().get(b).getChannel().size(); i++) {
instance.getChannel().add(new Channel());
instance.getChannel().get(i).setName(listas.getContractList().get(b).getChannel().get(i).getName() + increment);
}
}
private void renameProt() {
for (int i = 0; i < listas.getInstanceList().get(b).getProtocolos().size(); i++) {
listas.getInstanceList().get(b).getProtocolos().get(i).getCanal().setName(listas.getInstanceList().get(b).getProtocolos().get(i).getCanal().getName()+increment);
}
}
private void verificaEdicao() {
if (edicao) {
}
}
public void bundleButtons() {
verification.setText(inter.retornarMensagem("COD0041"));
create.setText(inter.retornarMensagem("COD0035"));
contractPanel.setBorder(BorderFactory.createTitledBorder(inter.retornarMensagem("COD0007")));
instancePanel.setBorder(BorderFactory.createTitledBorder(inter.retornarMensagem("COD0008")));
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JTable CChannels;
private javax.swing.JTable IChannels;
private javax.swing.JPanel contractPanel;
private javax.swing.JButton create;
private javax.swing.JPanel instancePanel;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextField nome1;
private javax.swing.JTextField nome2;
private javax.swing.JLabel ticFDR;
private javax.swing.JButton verification;
// End of variables declaration//GEN-END:variables
}