Java tutorial
/* * Copyright 2015 (C) Manuel Domnguez Dorado - ingeniero@ManoloDominguez.com. * * 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 simMPLS.ui.simulator; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; import javax.swing.*; import javax.swing.border.*; import org.jfree.chart.*; import org.jfree.chart.plot.*; import org.jfree.data.*; import simMPLS.hardware.timer.EProgressEventGeneratorOnlyAllowASingleListener; import simMPLS.hardware.timer.TTimestamp; import simMPLS.io.osm.TOSMSaver; import simMPLS.scenario.TExternalLink; import simMPLS.scenario.TInternalLink; import simMPLS.scenario.TActiveLERNode; import simMPLS.scenario.TLERNode; import simMPLS.scenario.TActiveLSRNode; import simMPLS.scenario.TLSRNode; import simMPLS.scenario.TLinkConfig; import simMPLS.scenario.TReceiverNode; import simMPLS.scenario.TScenario; import simMPLS.scenario.TSenderNode; import simMPLS.scenario.TStats; import simMPLS.scenario.TTopology; import simMPLS.scenario.TTopologyElement; import simMPLS.scenario.TLink; import simMPLS.scenario.TNode; import simMPLS.ui.dialogs.JVentanaAdvertencia; import simMPLS.ui.dialogs.JVentanaBooleana; import simMPLS.ui.dialogs.JVentanaEmisor; import simMPLS.ui.dialogs.JVentanaEnlace; import simMPLS.ui.dialogs.JVentanaError; import simMPLS.ui.dialogs.JVentanaLER; import simMPLS.ui.dialogs.JVentanaLERA; import simMPLS.ui.dialogs.JVentanaLSR; import simMPLS.ui.dialogs.JVentanaLSRA; import simMPLS.ui.dialogs.JVentanaReceptor; import simMPLS.ui.dialogs.JWindowLinkDump; import simMPLS.ui.utils.TImagesBroker; import simMPLS.utils.JOSMFilter; import simMPLS.utils.TProgressEventListener; /** * Esta clase implementa una ventana que save un escenario completo y dar soporte a la simulacin, anlisis y diseo de la topology. * @author <B>Manuel Domnguez Dorado</B><br><A * href="mailto:ingeniero@ManoloDominguez.com">ingeniero@ManoloDominguez.com</A><br><A href="http://www.ManoloDominguez.com" target="_blank">http://www.ManoloDominguez.com</A> * @version 1.0 */ public class JVentanaHija extends javax.swing.JInternalFrame { /** Este mtodo es el constructor de la clase. Crea una nueva instancia de * JVentanaHija. * @since 1.0 * @param padre Ventana padre dentro de la cual se va a ubicar este ventana hija. * @param di Dispensador de imgenes de donde se obtendrn todas las imgenes que se * necesiten. */ public JVentanaHija(JSimulador padre, TImagesBroker di) { dispensadorDeImagenes = di; VentanaPadre = padre; initComponents(); initComponents2(); } /** * Este mtodo es el constructor de la clase. Crea una nueva instancia de * JVentanaHija. * @since 1.0 * @param titulo Ttulo que deseamos que tenga la ventana hija. Se usar tambin para save el escenario en disco. * @param padre Ventana padre dentro de la cual se va a ubicar este ventana hija. * @param di Dispensador de imgenes de donde se obtendrn todas las imgenes que se * necesiten. */ public JVentanaHija(JSimulador padre, TImagesBroker di, java.lang.String titulo) { dispensadorDeImagenes = di; VentanaPadre = padre; initComponents(); initComponents2(); this.setTitle(titulo); } /** * Este mtodo es el constructor de la clase. Crea una nueva instancia de * JVentanaHija y la inicializa con los valores de un nodo existente. * @param padre Ventana padre dentro de la cual se va a ubicar este ventana hija. * @param di Dispensador de imgenes de donde se obtendrn todas las imgenes que se * necesiten. * @param esc Escenario ya creado al que se va a asociar esta ventana hija y que contendr un * escenario y todos sus datos. * @since 1.0 */ public JVentanaHija(JSimulador padre, TImagesBroker di, TScenario esc) { dispensadorDeImagenes = di; VentanaPadre = padre; initComponents(); initComponents2(); escenario = esc; } /** This method ensures start of the class attributes that have not yet been initiated by NetBeans. * @since 1.0 */ public void initComponents2() { panelDisenio.ponerDispensadorDeImagenes(dispensadorDeImagenes); panelSimulacion.ponerDispensadorDeImagenes(dispensadorDeImagenes); Dimension tamPantalla = VentanaPadre.getSize(); this.setSize((tamPantalla.width / 2), (tamPantalla.height / 2)); Dimension tamFrame = this.getSize(); this.setLocation((tamPantalla.width - tamFrame.width) / 2, (tamPantalla.height - tamFrame.height) / 2); escenario = new TScenario(); panelDisenio.ponerTopologia(escenario.getTopology()); panelSimulacion.ponerTopologia(escenario.getTopology()); nodoSeleccionado = null; elementoDisenioClicDerecho = null; aProgresoGeneracion = new TProgressEventListener(barraDeProgreso); try { escenario.getTopology().obtenerReloj().addProgressEventListener(aProgresoGeneracion); } catch (EProgressEventGeneratorOnlyAllowASingleListener e) { e.printStackTrace(); } this.mlsPorTic.setValue(1); this.pasoNs.setMaximum(duracionMs.getValue() * 1000000 + this.duracionNs.getValue()); this.etiquetaMlsPorTic.setText(this.mlsPorTic.getValue() + java.util.ResourceBundle .getBundle("simMPLS/lenguajes/lenguajes").getString("VentanaHija.Simulacion.EtiquetaMsTic")); this.etiquetaDuracionMs.setText(this.duracionMs.getValue() + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes").getString("VentanaHija._ms.")); this.etiquetaDuracionNs.setText(this.duracionNs.getValue() + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes").getString("VentanaHija._ns.")); this.etiquetaPasoNs.setText(this.pasoNs.getValue() + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes").getString("VentanaHija_ns.")); controlTemporizacionDesactivado = false; escenario.ponerPanelSimulacion(this.panelSimulacion); panelGrafico1 = null; panelGrafico2 = null; panelGrafico3 = null; panelGrafico4 = null; panelGrafico5 = null; panelGrafico6 = null; grafico1 = null; grafico2 = null; grafico3 = null; grafico4 = null; grafico5 = null; grafico6 = null; this.iconoLERA.setEnabled(false); this.iconoLSRA.setEnabled(false); } /** Este mtodo es llamado desde el constructor para actualizar la mayor parte de * los atributos de la clase que tienen que ver con la interfaz de usuario. Es un * mtodo creado por NetBeans automaticamente. * @since 1.0 */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; diseElementoPopUp = new javax.swing.JPopupMenu(); dEliminarMenuItem = new javax.swing.JMenuItem(); dVerNombreMenuItem = new javax.swing.JCheckBoxMenuItem(); jSeparator1 = new javax.swing.JSeparator(); dPropiedadesMenuItem = new javax.swing.JMenuItem(); diseFondoPopUp = new javax.swing.JPopupMenu(); dVerNombresNodosMenuItem = new javax.swing.JMenuItem(); dOcultarNombresNodosMenuItem = new javax.swing.JMenuItem(); dVerNombresEnlacesMenuItem = new javax.swing.JMenuItem(); dOcultarNombresEnlacesMenuItem = new javax.swing.JMenuItem(); jSeparator2 = new javax.swing.JSeparator(); dEliminarTodoMenuItem = new javax.swing.JMenuItem(); jTabbedPane1 = new javax.swing.JTabbedPane(); panelDisenioSuperior = new javax.swing.JPanel(); panelBotonesDisenio = new javax.swing.JPanel(); iconoEmisor = new javax.swing.JLabel(); iconoReceptor = new javax.swing.JLabel(); iconoLER = new javax.swing.JLabel(); iconoLERA = new javax.swing.JLabel(); iconoLSR = new javax.swing.JLabel(); iconoLSRA = new javax.swing.JLabel(); iconoEnlace = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); panelDisenio = new simMPLS.ui.simulator.JPanelDisenio(); panelSimulacionSuperior = new javax.swing.JPanel(); panelBotonesSimulacion = new javax.swing.JPanel(); iconoComenzar = new javax.swing.JLabel(); iconoFinalizar = new javax.swing.JLabel(); iconoReanudar = new javax.swing.JLabel(); iconoPausar = new javax.swing.JLabel(); barraDeProgreso = new javax.swing.JProgressBar(); mlsPorTic = new javax.swing.JSlider(); etiquetaMlsPorTic = new javax.swing.JLabel(); crearTraza = new javax.swing.JCheckBox(); jScrollPane2 = new javax.swing.JScrollPane(); panelSimulacion = new simMPLS.ui.simulator.JSimulationPanel(); panelAnalisisSuperior = new javax.swing.JPanel(); panelSeleccionElemento = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); selectorElementoEstadisticas = new javax.swing.JComboBox(); jScrollPane4 = new javax.swing.JScrollPane(); panelAnalisis = new javax.swing.JPanel(); panelFijo = new javax.swing.JPanel(); etiquetaEstadisticasTituloEscenario = new javax.swing.JLabel(); etiquetaEstadisticasNombreAutor = new javax.swing.JLabel(); areaEstadisticasDescripcion = new javax.swing.JTextArea(); etiquetaNombreElementoEstadistica = new javax.swing.JLabel(); panelOpcionesSuperior = new javax.swing.JPanel(); jScrollPane3 = new javax.swing.JScrollPane(); panelOpciones = new javax.swing.JPanel(); jPanel3 = new javax.swing.JPanel(); jLabel5 = new javax.swing.JLabel(); nombreEscenario = new javax.swing.JTextField(); jLabel6 = new javax.swing.JLabel(); nombreAutor = new javax.swing.JTextField(); jLabel7 = new javax.swing.JLabel(); descripcionEscenario = new javax.swing.JTextField(); jPanel2 = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel(); duracionMs = new javax.swing.JSlider(); etiquetaDuracionMs = new javax.swing.JLabel(); duracionNs = new javax.swing.JSlider(); etiquetaDuracionNs = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); pasoNs = new javax.swing.JSlider(); etiquetaPasoNs = new javax.swing.JLabel(); diseElementoPopUp.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N dEliminarMenuItem.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N dEliminarMenuItem.setMnemonic(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("VentanaHija.PopUpDisenio.mne.Delete").charAt(0)); java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes"); // NOI18N dEliminarMenuItem.setText(bundle.getString("VentanaHija.PopUpDisenio.Delete")); // NOI18N dEliminarMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clicEnPopUpDisenioEliminar(evt); } }); diseElementoPopUp.add(dEliminarMenuItem); dVerNombreMenuItem.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N dVerNombreMenuItem.setMnemonic(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("VentanaHija.PopUpDisenio.mne.verNombre").charAt(0)); dVerNombreMenuItem.setText(bundle.getString("VentanaHija.PopUpDisenio.verNombre")); // NOI18N dVerNombreMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clicEnPopUpDisenioVerNombre(evt); } }); diseElementoPopUp.add(dVerNombreMenuItem); diseElementoPopUp.add(jSeparator1); dPropiedadesMenuItem.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N dPropiedadesMenuItem.setMnemonic(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("VentanaHija.PopUpDisenio.mne.Propiedades").charAt(0)); dPropiedadesMenuItem.setText(bundle.getString("VentanaHija.PopUpDisenio.Propiedades")); // NOI18N dPropiedadesMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clicEnPropiedadesPopUpDisenioElemento(evt); } }); diseElementoPopUp.add(dPropiedadesMenuItem); diseFondoPopUp.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N dVerNombresNodosMenuItem.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N dVerNombresNodosMenuItem.setMnemonic(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("popUpDisenioFondo.mne.verTodosNodos").charAt(0)); dVerNombresNodosMenuItem.setText(bundle.getString("popUpDisenioFondo.verTodosNodos")); // NOI18N dVerNombresNodosMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clicEnPopUpDisenioFondoVerNombreNodos(evt); } }); diseFondoPopUp.add(dVerNombresNodosMenuItem); dOcultarNombresNodosMenuItem.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N dOcultarNombresNodosMenuItem.setMnemonic(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("popUpDisenioFondo.mne.ocultarTodosNodos").charAt(0)); dOcultarNombresNodosMenuItem.setText(bundle.getString("popUpDisenioFondo.ocultarTodosNodos")); // NOI18N dOcultarNombresNodosMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clicEnPopUpDisenioFondoOcultarNombreNodos(evt); } }); diseFondoPopUp.add(dOcultarNombresNodosMenuItem); dVerNombresEnlacesMenuItem.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N dVerNombresEnlacesMenuItem.setMnemonic(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("popUpDisenioFondo.mne.verTodosEnlaces").charAt(0)); dVerNombresEnlacesMenuItem.setText(bundle.getString("popUpDisenioFondo.verTodosEnlaces")); // NOI18N dVerNombresEnlacesMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clicEnPopUpDisenioFondoVerNombreEnlaces(evt); } }); diseFondoPopUp.add(dVerNombresEnlacesMenuItem); dOcultarNombresEnlacesMenuItem.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N dOcultarNombresEnlacesMenuItem.setMnemonic(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("popUpDisenioFondo.mne.ocultarTodosEnlaces").charAt(0)); dOcultarNombresEnlacesMenuItem.setText(bundle.getString("popUpDisenioFondo.ocultarTodosEnlaces")); // NOI18N dOcultarNombresEnlacesMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clicEnPopUpDisenioFondoOcultarNombreEnlaces(evt); } }); diseFondoPopUp.add(dOcultarNombresEnlacesMenuItem); diseFondoPopUp.add(jSeparator2); dEliminarTodoMenuItem.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N dEliminarTodoMenuItem.setMnemonic(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("popUpDisenioFondo.mne.eliminarTodo").charAt(0)); dEliminarTodoMenuItem.setText(bundle.getString("popUpDisenioFondo.borrarTodo")); // NOI18N dEliminarTodoMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clicEnPopUpDisenioFondoEliminar(evt); } }); diseFondoPopUp.add(dEliminarTodoMenuItem); setIconifiable(true); setMaximizable(true); setResizable(true); setTitle(bundle.getString("VentanaHija.Titulo")); // NOI18N setAutoscrolls(true); setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N setFrameIcon(dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.ICONO_VENTANA_INTERNA_MENU)); setNormalBounds(new java.awt.Rectangle(10, 10, 100, 100)); setPreferredSize(new java.awt.Dimension(100, 100)); setVisible(true); jTabbedPane1.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT); jTabbedPane1.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N panelDisenioSuperior.setLayout(new java.awt.BorderLayout()); panelBotonesDisenio.setBorder(javax.swing.BorderFactory.createEtchedBorder()); panelBotonesDisenio.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); iconoEmisor.setIcon(dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.EMISOR_MENU)); iconoEmisor.setToolTipText(bundle.getString("VentanaHija.Topic.Emisor")); // NOI18N iconoEmisor.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseEntered(java.awt.event.MouseEvent evt) { ratonEntraEnIconoEmisor(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { ratonSaleDeIconoEmisor(evt); } public void mousePressed(java.awt.event.MouseEvent evt) { clicEnAniadirEmisorDeTrafico(evt); } }); panelBotonesDisenio.add(iconoEmisor); iconoReceptor.setIcon(dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.RECEPTOR_MENU)); iconoReceptor.setToolTipText(bundle.getString("VentanaHija.Topic.Receptor")); // NOI18N iconoReceptor.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseEntered(java.awt.event.MouseEvent evt) { ratonEntraEnIconoReceptor(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { ratonSaleDeIconoReceptor(evt); } public void mousePressed(java.awt.event.MouseEvent evt) { clicEnAniadirReceptor(evt); } }); panelBotonesDisenio.add(iconoReceptor); iconoLER.setIcon(dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.LER_MENU)); iconoLER.setToolTipText(bundle.getString("VentanaHija.Topic.LER")); // NOI18N iconoLER.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseEntered(java.awt.event.MouseEvent evt) { ratonEntraEnIconoLER(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { ratonSaleDeIconoLER(evt); } public void mousePressed(java.awt.event.MouseEvent evt) { clicEnAniadirLER(evt); } }); panelBotonesDisenio.add(iconoLER); iconoLERA.setIcon(dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.LERA_MENU)); iconoLERA.setToolTipText(bundle.getString("VentanaHija.Topic.LERActivo")); // NOI18N iconoLERA.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseEntered(java.awt.event.MouseEvent evt) { ratonEntraEnIconoLERA(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { ratonSaleDeIconoLERA(evt); } public void mousePressed(java.awt.event.MouseEvent evt) { clicEnAniadirLERA(evt); } }); panelBotonesDisenio.add(iconoLERA); iconoLSR.setIcon(dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.LSR_MENU)); iconoLSR.setToolTipText(bundle.getString("VentanaHija.Topic.LSR")); // NOI18N iconoLSR.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseEntered(java.awt.event.MouseEvent evt) { ratonEntraEnIconoLSR(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { ratonSaleDeIconoLSR(evt); } public void mousePressed(java.awt.event.MouseEvent evt) { clicEnAniadirLSR(evt); } }); panelBotonesDisenio.add(iconoLSR); iconoLSRA.setIcon(dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.LSRA_MENU)); iconoLSRA.setToolTipText(bundle.getString("VentanaHija.Topic.LSRActivo")); // NOI18N iconoLSRA.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseEntered(java.awt.event.MouseEvent evt) { ratonEntraEnIconoLSRA(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { ratonSaleDeIconoLSRA(evt); } public void mousePressed(java.awt.event.MouseEvent evt) { clicEnAniadirLSRA(evt); } }); panelBotonesDisenio.add(iconoLSRA); iconoEnlace.setIcon(dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.ENLACE_MENU)); iconoEnlace.setToolTipText(bundle.getString("VentanaHija.Topic.Enlace")); // NOI18N iconoEnlace.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { clicEnAniadirEnlace(evt); } public void mouseEntered(java.awt.event.MouseEvent evt) { ratonEntraEnIconoEnlace(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { ratonSaleDeIconoEnlace(evt); } }); panelBotonesDisenio.add(iconoEnlace); panelDisenioSuperior.add(panelBotonesDisenio, java.awt.BorderLayout.NORTH); jScrollPane1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED)); panelDisenio.setBackground(java.awt.Color.white); panelDisenio.setBorder(javax.swing.BorderFactory.createEtchedBorder()); panelDisenio.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { clicDerechoEnPanelDisenio(evt); } public void mousePressed(java.awt.event.MouseEvent evt) { clicEnPanelDisenio(evt); } public void mouseReleased(java.awt.event.MouseEvent evt) { clicSoltadoEnPanelDisenio(evt); } }); panelDisenio.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { arrastrandoEnPanelDisenio(evt); } public void mouseMoved(java.awt.event.MouseEvent evt) { ratonSobrePanelDisenio(evt); } }); panelDisenio.setLayout(null); jScrollPane1.setViewportView(panelDisenio); panelDisenioSuperior.add(jScrollPane1, java.awt.BorderLayout.CENTER); jTabbedPane1.addTab(bundle.getString("VentanaHija.Tab.Disenio"), dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.DISENIO), panelDisenioSuperior, bundle.getString("VentanaHija.A_panel_to_design_network_topology")); // NOI18N panelSimulacionSuperior.setLayout(new java.awt.BorderLayout()); panelBotonesSimulacion.setBorder(javax.swing.BorderFactory.createEtchedBorder()); panelBotonesSimulacion.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); iconoComenzar.setIcon(dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.BOTON_GENERAR)); iconoComenzar.setToolTipText(bundle.getString("VentanaHija.Topic.Generar")); // NOI18N iconoComenzar.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseEntered(java.awt.event.MouseEvent evt) { ratonEntraEnIconoComenzar(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { ratonSaleDelIconoComenzar(evt); } public void mousePressed(java.awt.event.MouseEvent evt) { clicEnComenzar(evt); } }); panelBotonesSimulacion.add(iconoComenzar); iconoFinalizar.setIcon(dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.BOTON_PARAR)); iconoFinalizar.setToolTipText(bundle.getString("VentanaHija.Topic.Finalizar")); // NOI18N iconoFinalizar.setEnabled(false); iconoFinalizar.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseEntered(java.awt.event.MouseEvent evt) { ratonEntraEnIconoFinalizar(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { ratonSaleDelIconoFinalizar(evt); } public void mousePressed(java.awt.event.MouseEvent evt) { clicEnFinalizar(evt); } }); panelBotonesSimulacion.add(iconoFinalizar); iconoReanudar.setIcon(dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.BOTON_COMENZAR)); iconoReanudar.setToolTipText(bundle.getString("VentanaHija.Topic.Simulacion")); // NOI18N iconoReanudar.setEnabled(false); iconoReanudar.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseEntered(java.awt.event.MouseEvent evt) { ratonEntraEnIconoReanudar(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { ratonSaleDelIconoReanudar(evt); } public void mousePressed(java.awt.event.MouseEvent evt) { clicEnReanudar(evt); } }); panelBotonesSimulacion.add(iconoReanudar); iconoPausar.setIcon(dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.BOTON_PAUSA)); iconoPausar.setToolTipText(bundle.getString("VentanaHija.Topic.Detener")); // NOI18N iconoPausar.setEnabled(false); iconoPausar.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseEntered(java.awt.event.MouseEvent evt) { ratonEntraEnIconoPausar(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { ratonSaleDelIconoPausar(evt); } public void mousePressed(java.awt.event.MouseEvent evt) { clicAlPausar(evt); } }); panelBotonesSimulacion.add(iconoPausar); barraDeProgreso.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N barraDeProgreso.setToolTipText(bundle.getString("VentanaHija.BarraProgreso.tooltip")); // NOI18N barraDeProgreso.setStringPainted(true); panelBotonesSimulacion.add(barraDeProgreso); mlsPorTic.setMajorTickSpacing(10); mlsPorTic.setMaximum(500); mlsPorTic.setMinimum(1); mlsPorTic.setMinorTickSpacing(1); mlsPorTic.setSnapToTicks(true); mlsPorTic.setToolTipText(bundle.getString("VentanaHija.Simulacion.SelectorDeVelocidad.tooltip")); // NOI18N mlsPorTic.setPreferredSize(new java.awt.Dimension(100, 20)); mlsPorTic.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { mlsPorTicCambiado(evt); } }); panelBotonesSimulacion.add(mlsPorTic); etiquetaMlsPorTic.setFont(new java.awt.Font("Dialog", 0, 10)); // NOI18N etiquetaMlsPorTic.setForeground(new java.awt.Color(102, 102, 102)); panelBotonesSimulacion.add(etiquetaMlsPorTic); crearTraza.setText(bundle.getString("JVentanaHija.Create_trace_file")); // NOI18N panelBotonesSimulacion.add(crearTraza); panelSimulacionSuperior.add(panelBotonesSimulacion, java.awt.BorderLayout.NORTH); jScrollPane2.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED)); panelSimulacion.setBorder(javax.swing.BorderFactory.createEtchedBorder()); panelSimulacion.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { ratonPulsadoYSoltadoEnPanelSimulacion(evt); } public void mousePressed(java.awt.event.MouseEvent evt) { clicEnPanelSimulacion(evt); } public void mouseReleased(java.awt.event.MouseEvent evt) { ratonSoltadoEnPanelSimulacion(evt); } }); panelSimulacion.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { ratonArrastradoEnPanelSimulacion(evt); } public void mouseMoved(java.awt.event.MouseEvent evt) { ratonSobrePanelSimulacion(evt); } }); jScrollPane2.setViewportView(panelSimulacion); panelSimulacionSuperior.add(jScrollPane2, java.awt.BorderLayout.CENTER); jTabbedPane1.addTab(bundle.getString("VentanaHija.Tab.Simulacion"), dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.SIMULACION), panelSimulacionSuperior, bundle.getString("VentanaHija.A_panel_to_generate_and_play_simulation.")); // NOI18N panelAnalisisSuperior.setLayout(new java.awt.BorderLayout()); panelSeleccionElemento.setBorder(javax.swing.BorderFactory.createEtchedBorder()); panelSeleccionElemento.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); jLabel1.setText(bundle.getString("JVentanaHija.SelcUnElemParaVerDatos")); // NOI18N panelSeleccionElemento.add(jLabel1); selectorElementoEstadisticas.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "" })); selectorElementoEstadisticas.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clicEnSeleccionalElementoEstadistica(evt); } }); panelSeleccionElemento.add(selectorElementoEstadisticas); panelAnalisisSuperior.add(panelSeleccionElemento, java.awt.BorderLayout.NORTH); jScrollPane4.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED)); panelAnalisis.setBackground(new java.awt.Color(252, 246, 226)); panelAnalisis.setLayout(new java.awt.GridBagLayout()); panelFijo.setBackground(new java.awt.Color(252, 246, 226)); panelFijo.setLayout(new java.awt.GridBagLayout()); etiquetaEstadisticasTituloEscenario.setBackground(new java.awt.Color(252, 246, 226)); etiquetaEstadisticasTituloEscenario.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N etiquetaEstadisticasTituloEscenario.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); etiquetaEstadisticasTituloEscenario.setText(bundle.getString("JVentanaHija.TituloDelEscenario")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; panelFijo.add(etiquetaEstadisticasTituloEscenario, gridBagConstraints); etiquetaEstadisticasNombreAutor.setBackground(new java.awt.Color(252, 246, 226)); etiquetaEstadisticasNombreAutor.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N etiquetaEstadisticasNombreAutor.setForeground(new java.awt.Color(102, 0, 51)); etiquetaEstadisticasNombreAutor.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); etiquetaEstadisticasNombreAutor.setText(bundle.getString("JVentanaHija.AutorDelEscenario")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; panelFijo.add(etiquetaEstadisticasNombreAutor, gridBagConstraints); areaEstadisticasDescripcion.setBackground(new java.awt.Color(252, 246, 226)); areaEstadisticasDescripcion.setEditable(false); areaEstadisticasDescripcion.setFont(new java.awt.Font("MonoSpaced", 0, 11)); // NOI18N areaEstadisticasDescripcion.setLineWrap(true); areaEstadisticasDescripcion.setRows(3); areaEstadisticasDescripcion.setText(bundle.getString("JVentanaHija.DescripcionDelEscenario")); // NOI18N areaEstadisticasDescripcion.setWrapStyleWord(true); areaEstadisticasDescripcion.setMinimumSize(new java.awt.Dimension(500, 16)); areaEstadisticasDescripcion.setPreferredSize(new java.awt.Dimension(500, 48)); areaEstadisticasDescripcion.setAutoscrolls(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; panelFijo.add(areaEstadisticasDescripcion, gridBagConstraints); etiquetaNombreElementoEstadistica.setBackground(new java.awt.Color(252, 246, 226)); etiquetaNombreElementoEstadistica.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N etiquetaNombreElementoEstadistica.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); etiquetaNombreElementoEstadistica.setText(bundle.getString("JVentanaHija.SeleccioneNodoAInspeccionar")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; panelFijo.add(etiquetaNombreElementoEstadistica, gridBagConstraints); panelAnalisis.add(panelFijo, new java.awt.GridBagConstraints()); jScrollPane4.setViewportView(panelAnalisis); panelAnalisisSuperior.add(jScrollPane4, java.awt.BorderLayout.CENTER); jTabbedPane1.addTab(bundle.getString("JVentanaHija.Analisis"), dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.ANALISIS), panelAnalisisSuperior, bundle.getString("JVentanaHija.Analisis.Tooltip")); // NOI18N panelOpcionesSuperior.setLayout(new java.awt.BorderLayout()); jScrollPane3.setBorder(null); panelOpciones.setPreferredSize(new java.awt.Dimension(380, 230)); panelOpciones.setLayout(new java.awt.GridBagLayout()); jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null, bundle.getString("VentanaHija.GParameters"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 0, 12))); // NOI18N jPanel3.setLayout(new java.awt.GridBagLayout()); jLabel5.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel5.setText(bundle.getString("VentanaHija.Scene_title")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel3.add(jLabel5, gridBagConstraints); nombreEscenario.setToolTipText(bundle.getString("VentanaHija.Type_a__title_of_the_scene")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 200.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel3.add(nombreEscenario, gridBagConstraints); jLabel6.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel6.setText(bundle.getString("VentanaHija.Scene_author")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel3.add(jLabel6, gridBagConstraints); nombreAutor.setToolTipText(bundle.getString("VentanaHija.Type_de_name_of_the_author")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 200.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel3.add(nombreAutor, gridBagConstraints); jLabel7.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel7.setText(bundle.getString("VentanaHija.Description")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel3.add(jLabel7, gridBagConstraints); descripcionEscenario.setToolTipText(bundle.getString("VentanaHija.Enter_a_short_description.")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 200.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel3.add(descripcionEscenario, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 350.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); panelOpciones.add(jPanel3, gridBagConstraints); jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, bundle.getString("VentanaHija.TParameters"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 0, 12))); // NOI18N jPanel2.setLayout(new java.awt.GridBagLayout()); jLabel3.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel3.setText(bundle.getString("VentanaHija.Duration")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 100.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel2.add(jLabel3, gridBagConstraints); duracionMs.setMajorTickSpacing(10); duracionMs.setMaximum(10); duracionMs.setMinorTickSpacing(1); duracionMs.setToolTipText( bundle.getString("VentanaHija.Slide_it_to_change_the_ms._component_of_simulation_duration.")); // NOI18N duracionMs.setValue(0); duracionMs.setMaximumSize(new java.awt.Dimension(30, 20)); duracionMs.setMinimumSize(new java.awt.Dimension(30, 24)); duracionMs.setPreferredSize(new java.awt.Dimension(30, 20)); duracionMs.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { clicEnDuracionMs(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 150.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel2.add(duracionMs, gridBagConstraints); etiquetaDuracionMs.setFont(new java.awt.Font("Dialog", 0, 10)); // NOI18N etiquetaDuracionMs.setForeground(new java.awt.Color(102, 102, 102)); etiquetaDuracionMs.setText(bundle.getString("VentanaHija.ms.")); // NOI18N etiquetaDuracionMs.setMaximumSize(new java.awt.Dimension(30, 14)); etiquetaDuracionMs.setMinimumSize(new java.awt.Dimension(30, 14)); etiquetaDuracionMs.setPreferredSize(new java.awt.Dimension(30, 14)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 40.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel2.add(etiquetaDuracionMs, gridBagConstraints); duracionNs.setMajorTickSpacing(1000); duracionNs.setMaximum(999999); duracionNs.setMinorTickSpacing(100); duracionNs.setToolTipText( bundle.getString("VentanaHija.Slide_it_to_change_the_ns._component_of_simulation_duration.")); // NOI18N duracionNs.setValue(100000); duracionNs.setMaximumSize(new java.awt.Dimension(32767, 20)); duracionNs.setMinimumSize(new java.awt.Dimension(36, 20)); duracionNs.setPreferredSize(new java.awt.Dimension(200, 20)); duracionNs.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { clicEnDuracionNs(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 150.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel2.add(duracionNs, gridBagConstraints); etiquetaDuracionNs.setFont(new java.awt.Font("Dialog", 0, 10)); // NOI18N etiquetaDuracionNs.setForeground(new java.awt.Color(102, 102, 102)); etiquetaDuracionNs.setText(bundle.getString("VentanaHija.ns.")); // NOI18N etiquetaDuracionNs.setMaximumSize(new java.awt.Dimension(40, 14)); etiquetaDuracionNs.setMinimumSize(new java.awt.Dimension(40, 14)); etiquetaDuracionNs.setPreferredSize(new java.awt.Dimension(40, 14)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 100.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel2.add(etiquetaDuracionNs, gridBagConstraints); jLabel4.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel4.setText(bundle.getString("VentanaHija.Step")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 100.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel2.add(jLabel4, gridBagConstraints); pasoNs.setMajorTickSpacing(1000); pasoNs.setMaximum(999999); pasoNs.setMinimum(1); pasoNs.setMinorTickSpacing(100); pasoNs.setToolTipText(bundle.getString("VentanaHija.Slide_it_to_change_the_step_duration_(ns)..")); // NOI18N pasoNs.setValue(10000); pasoNs.setMaximumSize(new java.awt.Dimension(32767, 20)); pasoNs.setPreferredSize(new java.awt.Dimension(100, 20)); pasoNs.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { clicEnPasoNs(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel2.add(pasoNs, gridBagConstraints); etiquetaPasoNs.setFont(new java.awt.Font("Dialog", 0, 10)); // NOI18N etiquetaPasoNs.setForeground(new java.awt.Color(102, 102, 102)); etiquetaPasoNs.setText(bundle.getString("VentanaHija.ns.")); // NOI18N etiquetaPasoNs.setMaximumSize(new java.awt.Dimension(40, 14)); etiquetaPasoNs.setMinimumSize(new java.awt.Dimension(40, 14)); etiquetaPasoNs.setPreferredSize(new java.awt.Dimension(40, 14)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 100.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel2.add(etiquetaPasoNs, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 350.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); panelOpciones.add(jPanel2, gridBagConstraints); jScrollPane3.setViewportView(panelOpciones); panelOpcionesSuperior.add(jScrollPane3, java.awt.BorderLayout.NORTH); jTabbedPane1.addTab(bundle.getString("VentanaHija.Options"), dispensadorDeImagenes.obtenerIcono(simMPLS.ui.utils.TImagesBroker.OPCIONES), panelOpcionesSuperior, bundle.getString("VentanaHija.Options_about_the_scene")); // NOI18N getContentPane().add(jTabbedPane1, java.awt.BorderLayout.CENTER); pack(); }// </editor-fold>//GEN-END:initComponents /** Action when the mouse button is pressed and released * @since 1.0 */ private void ratonPulsadoYSoltadoEnPanelSimulacion(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonPulsadoYSoltadoEnPanelSimulacion if (evt.getButton() == MouseEvent.BUTTON1) { TTopologyElement et = escenario.getTopology().obtenerElementoEnPosicion(evt.getPoint()); if (et != null) { if (et.getElementType() == TTopologyElement.NODO) { TNode nt = (TNode) et; nt.toCongest(); } else if (et.getElementType() == TTopologyElement.LINK) { // TLink ent = (TLink) et; // if (ent.isBroken()) { // ent.ponerEnlaceCaido(false); // } else { // ent.ponerEnlaceCaido(true); // } } } else { if (this.panelSimulacion.obtenerMostrarLeyenda()) { this.panelSimulacion.ponerMostrarLeyenda(false); } else { this.panelSimulacion.ponerMostrarLeyenda(true); } } } else if (evt.getButton() == MouseEvent.BUTTON3) { TTopologyElement et = escenario.getTopology().obtenerElementoEnPosicion(evt.getPoint()); if (et != null) { if (et.getElementType() == TTopologyElement.LINK) { TLink ent = (TLink) et; if (!ent.isBroken()) { JWindowLinkDump linkWindow = new JWindowLinkDump(VentanaPadre, true, ent); linkWindow.setVisible(true); } } } } else { elementoDisenioClicDerecho = null; panelDisenio.repaint(); } }//GEN-LAST:event_ratonPulsadoYSoltadoEnPanelSimulacion /** Action when selecting static element. * @since 1.0 */ private void clicEnSeleccionalElementoEstadistica(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clicEnSeleccionalElementoEstadistica GridBagConstraints gbc = null; if (this.selectorElementoEstadisticas.getSelectedIndex() == 0) { this.panelAnalisis.removeAll(); grafico1 = null; grafico2 = null; grafico3 = null; grafico4 = null; grafico5 = null; grafico6 = null; panelGrafico1 = null; panelGrafico2 = null; panelGrafico3 = null; panelGrafico4 = null; panelGrafico5 = null; panelGrafico6 = null; this.etiquetaEstadisticasTituloEscenario.setText(this.nombreEscenario.getText()); this.etiquetaEstadisticasNombreAutor.setText(this.nombreAutor.getText()); this.areaEstadisticasDescripcion.setText(this.descripcionEscenario.getText()); this.etiquetaNombreElementoEstadistica.setIcon(null); this.etiquetaNombreElementoEstadistica .setText(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.SeleccioneElNodoAInspeccionar")); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.insets = new Insets(10, 10, 10, 5); gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; gbc.anchor = java.awt.GridBagConstraints.NORTH; this.panelFijo.add(this.etiquetaEstadisticasTituloEscenario, gbc); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 1; gbc.insets = new Insets(10, 5, 10, 5); gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; gbc.anchor = java.awt.GridBagConstraints.NORTH; this.panelFijo.add(this.etiquetaEstadisticasNombreAutor, gbc); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 2; gbc.insets = new Insets(10, 5, 10, 5); gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; gbc.anchor = java.awt.GridBagConstraints.NORTH; this.panelFijo.add(this.areaEstadisticasDescripcion, gbc); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 3; gbc.insets = new Insets(10, 5, 10, 10); gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; gbc.anchor = java.awt.GridBagConstraints.NORTH; this.panelFijo.add(this.etiquetaNombreElementoEstadistica, gbc); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.insets = new Insets(10, 10, 10, 5); gbc.anchor = java.awt.GridBagConstraints.NORTH; gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; this.panelAnalisis.add(this.panelFijo, gbc); this.panelAnalisis.repaint(); } else { String nombreEltoSeleccionado = (String) this.selectorElementoEstadisticas.getSelectedItem(); this.crearEInsertarGraficas(nombreEltoSeleccionado); } }//GEN-LAST:event_clicEnSeleccionalElementoEstadistica /** * Este mtodo se llama cuando se arrastra el ratn sobre el panel de diseo. Si se * hace sobre un elemento que estaba seleccionado, el resultado es que ese elemento * se mueve donde vaya el cursor del ratn. * Move an object of the simulation * @param evt El evento que provoca la llamada. * @since 1.0 */ private void ratonArrastradoEnPanelSimulacion(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonArrastradoEnPanelSimulacion if (evt.getModifiersEx() == java.awt.event.InputEvent.BUTTON1_DOWN_MASK) { if (nodoSeleccionado != null) { TTopology topo = escenario.getTopology(); Point p2 = evt.getPoint(); if (p2.x < 0) p2.x = 0; if (p2.x > panelDisenio.getSize().width) p2.x = panelDisenio.getSize().width; if (p2.y < 0) p2.y = 0; if (p2.y > panelDisenio.getSize().height) p2.y = panelDisenio.getSize().height; nodoSeleccionado.setPosition(new Point(p2.x, p2.y)); panelSimulacion.repaint(); this.escenario.setModified(true); } } }//GEN-LAST:event_ratonArrastradoEnPanelSimulacion /** * Este mtodo se llama cuando se libera un botn del ratn estando en el panel de * simulacin. Si se hace sobre un elemento que estaba seleccionado, deja de * estarlo. * When the mouse button is released on a node * @param evt El evento que genera la llamada. * @since 1.0 */ private void ratonSoltadoEnPanelSimulacion(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSoltadoEnPanelSimulacion if (evt.getButton() == MouseEvent.BUTTON1) { if (nodoSeleccionado != null) { nodoSeleccionado.setStatus(TNode.DESELECCIONADO); nodoSeleccionado = null; this.escenario.setModified(true); } panelSimulacion.repaint(); } }//GEN-LAST:event_ratonSoltadoEnPanelSimulacion /** * Este mtodo se llama cuando se presiona un botn del ratn en el panel de * simulacin. Si se hace sobre un elemento de la topologa, lo marca como * seleccionado. * When the mouse button is pressed on a node * @since 1.0 * @param evt El evento que provoca la llamada. */ private void clicEnPanelSimulacion(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicEnPanelSimulacion if (evt.getButton() == MouseEvent.BUTTON1) { TTopology topo = escenario.getTopology(); TTopologyElement et = topo.obtenerElementoEnPosicion(evt.getPoint()); if (et != null) { this.setCursor(new Cursor(Cursor.HAND_CURSOR)); if (et.getElementType() == TTopologyElement.NODO) { TNode nt = (TNode) et; nodoSeleccionado = nt; if (nodoSeleccionado != null) { nodoSeleccionado.setStatus(TNode.SELECCIONADO); this.escenario.setModified(true); } } } else { this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); this.setToolTipText(null); } panelSimulacion.repaint(); } }//GEN-LAST:event_clicEnPanelSimulacion /** * Este mtodo se llama cuando se hace clic derecho sobre un elemento en la ventana * de diseo y se selecciona la opcin "Propiedades" del men emergente. Se encarga * de mostrar en pantalla la ventana de configuracin del elemento en cuestin. * Right clic on a node + properties menu * @since 1.0 * @param evt El evento que provoca la llamada. */ private void clicEnPropiedadesPopUpDisenioElemento(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clicEnPropiedadesPopUpDisenioElemento if (elementoDisenioClicDerecho != null) { if (elementoDisenioClicDerecho.getElementType() == TTopologyElement.NODO) { TNode nt = (TNode) elementoDisenioClicDerecho; if (nt.getNodeType() == TNode.SENDER) { JVentanaEmisor ve = new JVentanaEmisor(escenario.getTopology(), panelDisenio, dispensadorDeImagenes, VentanaPadre, true); ve.ponerConfiguracion((TSenderNode) nt, true); ve.show(); } else if (nt.getNodeType() == TNode.LER) { JVentanaLER vler = new JVentanaLER(escenario.getTopology(), panelDisenio, dispensadorDeImagenes, VentanaPadre, true); vler.ponerConfiguracion((TLERNode) nt, true); vler.show(); } else if (nt.getNodeType() == TNode.LERA) { JVentanaLERA vlera = new JVentanaLERA(escenario.getTopology(), panelDisenio, dispensadorDeImagenes, VentanaPadre, true); vlera.ponerConfiguracion((TActiveLERNode) nt, true); vlera.show(); } else if (nt.getNodeType() == TNode.LSR) { JVentanaLSR vlsr = new JVentanaLSR(escenario.getTopology(), panelDisenio, dispensadorDeImagenes, VentanaPadre, true); vlsr.ponerConfiguracion((TLSRNode) nt, true); vlsr.show(); } else if (nt.getNodeType() == TNode.LSRA) { JVentanaLSRA vlsra = new JVentanaLSRA(escenario.getTopology(), panelDisenio, dispensadorDeImagenes, VentanaPadre, true); vlsra.ponerConfiguracion((TActiveLSRNode) nt, true); vlsra.show(); } else if (nt.getNodeType() == TNode.RECEIVER) { JVentanaReceptor vr = new JVentanaReceptor(escenario.getTopology(), panelDisenio, dispensadorDeImagenes, VentanaPadre, true); vr.ponerConfiguracion((TReceiverNode) nt, true); vr.show(); } elementoDisenioClicDerecho = null; panelDisenio.repaint(); } else { TLink ent = (TLink) elementoDisenioClicDerecho; TLinkConfig tceAux = ent.obtenerConfiguracion(); JVentanaEnlace ve = new JVentanaEnlace(escenario.getTopology(), dispensadorDeImagenes, VentanaPadre, true); ve.ponerConfiguracion(tceAux, true); ve.show(); if (ent.getLinkType() == TLink.EXTERNAL) { TExternalLink ext = (TExternalLink) ent; ext.configurar(tceAux, this.escenario.getTopology(), true); } else if (ent.getLinkType() == TLink.INTERNAL) { TInternalLink inte = (TInternalLink) ent; inte.configurar(tceAux, this.escenario.getTopology(), true); } elementoDisenioClicDerecho = null; panelDisenio.repaint(); int minimoDelay = this.escenario.getTopology().obtenerMinimoDelay(); int pasoActual = this.pasoNs.getValue(); if (pasoActual > minimoDelay) { this.pasoNs.setValue(minimoDelay); } } this.escenario.setModified(true); } }//GEN-LAST:event_clicEnPropiedadesPopUpDisenioElemento /** Este mtodo se encarga de controlar que la duracin de la simulacion y del paso * de la misma sea acorde con los delays de los enlaces. Adems se encarga de la * actualizacin de la interfaz en esos lugares. * Timing controls * @since 1.0 */ public void controlarParametrosTemporales() { if (!controlTemporizacionDesactivado) { if (duracionMs.getValue() == 0) { duracionNs.setMinimum(1); } else { duracionNs.setMinimum(0); } int duracionTotal = duracionMs.getValue() * 1000000 + this.duracionNs.getValue(); int minDelay = escenario.getTopology().obtenerMinimoDelay(); if (minDelay < duracionTotal) { pasoNs.setMaximum(minDelay); } else { pasoNs.setMaximum(duracionTotal); } this.etiquetaDuracionMs.setText(this.duracionMs.getValue() + java.util.ResourceBundle .getBundle("simMPLS/lenguajes/lenguajes").getString("VentanaHija._ms.")); this.etiquetaDuracionNs.setText(this.duracionNs.getValue() + java.util.ResourceBundle .getBundle("simMPLS/lenguajes/lenguajes").getString("VentanaHija._ns.")); this.etiquetaPasoNs.setText(this.pasoNs.getValue() + java.util.ResourceBundle .getBundle("simMPLS/lenguajes/lenguajes").getString("VentanaHija._ns.")); escenario.getSimulation().setDuration( new TTimestamp(duracionMs.getValue(), duracionNs.getValue()).getTotalAsNanoseconds()); escenario.getSimulation().setStep(pasoNs.getValue()); } } /** Este mtodo se llama automticamente cuando se cambia la duracin en * nanosegundos del paso de simulacin. * Changing the timing of the simulation * @since 1.0 * @param evt Evento que hace que el mtodo salte. */ private void clicEnPasoNs(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_clicEnPasoNs controlarParametrosTemporales(); this.escenario.setModified(true); }//GEN-LAST:event_clicEnPasoNs /** Este mtodo se llama automticamente cuando se cambia la duracin de la * simulacin en nanosegundos. * @since 1.0 * @param evt Evento que hace que se ejecute este mtodo. */ private void clicEnDuracionNs(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_clicEnDuracionNs controlarParametrosTemporales(); this.escenario.setModified(true); }//GEN-LAST:event_clicEnDuracionNs /** Este mtodo se llama automticamente cuando se cambia la duracin de la * simulacin en milisegundos. * @since 1.0 * @param evt Evento que produce que se ejecute este mtodo. */ private void clicEnDuracionMs(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_clicEnDuracionMs controlarParametrosTemporales(); this.escenario.setModified(true); }//GEN-LAST:event_clicEnDuracionMs /** Este mtodo se llama automticamente cuando se cambia el tiempo que se detendr * la simulacin entre un paso de simulacin y otro. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void mlsPorTicCambiado(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_mlsPorTicCambiado this.etiquetaMlsPorTic.setText(this.mlsPorTic.getValue() + java.util.ResourceBundle .getBundle("simMPLS/lenguajes/lenguajes").getString("VentanaHija.Simulacion.etiquetaMsTic")); panelSimulacion.ponerMlsPorTic(this.mlsPorTic.getValue()); }//GEN-LAST:event_mlsPorTicCambiado /** Este mtodo se ejecuta cuando se hace clic en la opcin de ocultar el nombre de * todos los enlaces, en el men emergente de la pantalla de Disenio. * Display node names button * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void clicEnPopUpDisenioFondoOcultarNombreEnlaces(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clicEnPopUpDisenioFondoOcultarNombreEnlaces Iterator it = escenario.getTopology().getLinksIterator(); TLink enlaceAux; while (it.hasNext()) { enlaceAux = (TLink) it.next(); enlaceAux.ponerMostrarNombre(false); } panelDisenio.repaint(); this.escenario.setModified(true); }//GEN-LAST:event_clicEnPopUpDisenioFondoOcultarNombreEnlaces /** Este mtodo se ejecuta cuando se hace clic en la opcin de ver el nombre de * todos los enlaces, en el men emergente de la pantalla de Disenio. * Display node names button * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void clicEnPopUpDisenioFondoVerNombreEnlaces(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clicEnPopUpDisenioFondoVerNombreEnlaces Iterator it = escenario.getTopology().getLinksIterator(); TLink enlaceAux; while (it.hasNext()) { enlaceAux = (TLink) it.next(); enlaceAux.ponerMostrarNombre(true); } panelDisenio.repaint(); this.escenario.setModified(true); }//GEN-LAST:event_clicEnPopUpDisenioFondoVerNombreEnlaces /** Este mtodo se ejecuta cuando se hace clic en la opcin de ocultar el nombre de * todos los nodos, en el men emergente de la pantalla de Disenio. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void clicEnPopUpDisenioFondoOcultarNombreNodos(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clicEnPopUpDisenioFondoOcultarNombreNodos Iterator it = escenario.getTopology().getNodesIterator(); TNode nodoAux; while (it.hasNext()) { nodoAux = (TNode) it.next(); nodoAux.setShowName(false); } panelDisenio.repaint(); this.escenario.setModified(true); }//GEN-LAST:event_clicEnPopUpDisenioFondoOcultarNombreNodos /** Este mtodo se ejecuta cuando se hace clic en la opcin de ver el nombre de * todos los nodos, en el men emergente de la pantalla de Disenio. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void clicEnPopUpDisenioFondoVerNombreNodos(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clicEnPopUpDisenioFondoVerNombreNodos Iterator it = escenario.getTopology().getNodesIterator(); TNode nodoAux; while (it.hasNext()) { nodoAux = (TNode) it.next(); nodoAux.setShowName(true); } panelDisenio.repaint(); this.escenario.setModified(true); }//GEN-LAST:event_clicEnPopUpDisenioFondoVerNombreNodos /** Este mtodo se ejecuta cuando se hace clic en la opcin de eliminar todo el * escenario completo, en el men emergente de la pantalla de Disenio. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void clicEnPopUpDisenioFondoEliminar(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clicEnPopUpDisenioFondoEliminar JVentanaBooleana vb = new JVentanaBooleana(this.VentanaPadre, true, this.dispensadorDeImagenes); vb.mostrarPregunta(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.PreguntaBorrarTodo")); vb.show(); boolean respuesta = vb.obtenerRespuesta(); if (respuesta) { escenario.getTopology().eliminarTodo(); panelDisenio.repaint(); } this.escenario.setModified(true); }//GEN-LAST:event_clicEnPopUpDisenioFondoEliminar /** * Este mtodo asigna un escenario ya creado a la ventana hija. A partir de ese * momento todo lo que se haga en la ventana tendr su repercusin en el escenario. * @param esc Escenario ya creado al que se va a asociar esta ventana hija y que contendr un * escenario y todos sus datos. * @since 1.0 */ public void ponerEscenario(TScenario esc) { this.controlTemporizacionDesactivado = true; long durac = esc.getSimulation().obtenerDuracion(); long pas = esc.getSimulation().obtenerPaso(); escenario = esc; panelDisenio.ponerTopologia(esc.getTopology()); panelSimulacion.ponerTopologia(esc.getTopology()); nodoSeleccionado = null; elementoDisenioClicDerecho = null; aProgresoGeneracion = new TProgressEventListener(barraDeProgreso); try { esc.getTopology().obtenerReloj().addProgressEventListener(aProgresoGeneracion); } catch (EProgressEventGeneratorOnlyAllowASingleListener e) { e.printStackTrace(); } this.duracionMs.setValue((int) (durac / 1000000)); this.duracionNs.setValue((int) (durac - (this.duracionMs.getValue() * 1000000))); this.pasoNs.setMaximum((int) esc.getSimulation().obtenerDuracion()); this.pasoNs.setValue((int) pas); esc.getSimulation().setDuration(durac); esc.getSimulation().setStep(pas); this.etiquetaMlsPorTic.setText(this.mlsPorTic.getValue() + java.util.ResourceBundle .getBundle("simMPLS/lenguajes/lenguajes").getString("VentanaHija.Simulacion.EtiquetaMsTic")); this.etiquetaDuracionMs.setText(this.duracionMs.getValue() + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes").getString("VentanaHija._ms.")); this.etiquetaDuracionNs.setText(this.duracionNs.getValue() + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes").getString("VentanaHija._ns.")); this.etiquetaPasoNs.setText(this.pasoNs.getValue() + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes").getString("VentanaHija_ns.")); this.nombreAutor.setText(esc.obtenerAutor()); this.nombreAutor.setCaretPosition(1); this.nombreEscenario.setText(esc.obtenerTitulo()); this.nombreEscenario.setCaretPosition(1); this.descripcionEscenario.setText(esc.obtenerDescripcion()); this.descripcionEscenario.setCaretPosition(1); this.controlTemporizacionDesactivado = false; escenario.ponerPanelSimulacion(this.panelSimulacion); this.controlarParametrosTemporales(); } /** * This method is executed when you click on the option to add a new link in the toolbar of the screen design. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void clicEnAniadirEnlace(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicEnAniadirEnlace if (escenario.getTopology().obtenerNumeroDeNodos() < 2) { JVentanaAdvertencia va = new JVentanaAdvertencia(VentanaPadre, true, dispensadorDeImagenes); va.mostrarMensaje(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("VentanaHija.ErrorAlMenosDosNodos")); va.show(); } else { TLinkConfig config = new TLinkConfig(); JVentanaEnlace venlace = new JVentanaEnlace(escenario.getTopology(), dispensadorDeImagenes, VentanaPadre, true); venlace.ponerConfiguracion(config, false); venlace.cargarNodosPorDefecto(); venlace.show(); if (config.obtenerValida()) { try { if (config.obtenerTipo() == TLink.INTERNAL) { TInternalLink enlaceInterno = new TInternalLink( escenario.getTopology().getItemIdentifierGenerator().getNew(), escenario.getTopology().getEventIDGenerator(), escenario.getTopology()); enlaceInterno.configurar(config, escenario.getTopology(), false); escenario.getTopology().addLink(enlaceInterno); } else { TExternalLink enlaceExterno = new TExternalLink( escenario.getTopology().getItemIdentifierGenerator().getNew(), escenario.getTopology().getEventIDGenerator(), escenario.getTopology()); enlaceExterno.configurar(config, escenario.getTopology(), false); escenario.getTopology().addLink(enlaceExterno); } panelDisenio.repaint(); } catch (Exception e) { JVentanaError err; err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); err.mostrarMensaje(e.toString()); err.show(); } ; this.escenario.setModified(true); } else { config = null; } } }//GEN-LAST:event_clicEnAniadirEnlace /** Este mtodo se ejecuta cuando se hace clic en la opcin eliminar que aparece en * el men emergente al pulsar con el botn derecho sobre un elemento de la * topologa. En la pantalla de diseo. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void clicEnPopUpDisenioEliminar(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clicEnPopUpDisenioEliminar JVentanaBooleana vb = new JVentanaBooleana(this.VentanaPadre, true, this.dispensadorDeImagenes); vb.mostrarPregunta(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.preguntaAlEliminar")); vb.show(); boolean respuesta = vb.obtenerRespuesta(); if (respuesta) { if (elementoDisenioClicDerecho != null) { if (elementoDisenioClicDerecho.getElementType() == TTopologyElement.NODO) { TNode nt = (TNode) elementoDisenioClicDerecho; if (nt.getNodeType() == TNode.RECEIVER) { if (this.escenario.getTopology().hayTraficoDirigidoAMi((TReceiverNode) nt)) { JVentanaAdvertencia va; va = new JVentanaAdvertencia(VentanaPadre, true, dispensadorDeImagenes); va.mostrarMensaje(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.NoPuedoBorrarReceptor")); va.show(); elementoDisenioClicDerecho = null; } else { escenario.getTopology().eliminarNodo(nt); elementoDisenioClicDerecho = null; panelDisenio.repaint(); } } else { escenario.getTopology().eliminarNodo(nt); elementoDisenioClicDerecho = null; panelDisenio.repaint(); } } else { TLink ent = (TLink) elementoDisenioClicDerecho; escenario.getTopology().eliminarEnlace(ent); elementoDisenioClicDerecho = null; panelDisenio.repaint(); } this.escenario.setModified(true); } } }//GEN-LAST:event_clicEnPopUpDisenioEliminar /** Este mtodo se ejecuta cuando se hace clic en la opcin de ver/ocultar nombre * que aparece en el men emergente al pulsar con el botn derecho sobre un elemento * de la topologa. En la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void clicEnPopUpDisenioVerNombre(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clicEnPopUpDisenioVerNombre if (elementoDisenioClicDerecho != null) { if (elementoDisenioClicDerecho.getElementType() == TTopologyElement.NODO) { TNode nt = (TNode) elementoDisenioClicDerecho; nt.setShowName(dVerNombreMenuItem.isSelected()); elementoDisenioClicDerecho = null; panelDisenio.repaint(); } else { TLink ent = (TLink) elementoDisenioClicDerecho; ent.ponerMostrarNombre(dVerNombreMenuItem.isSelected()); elementoDisenioClicDerecho = null; panelDisenio.repaint(); } this.escenario.setModified(true); } }//GEN-LAST:event_clicEnPopUpDisenioVerNombre /** Este mtodo se ejecuta cuando se hace clic con el botn derecho en la pantalla * de diseo. * @since 1.0 * @param evt Evento que hace que este mtodo se dispare. */ private void clicDerechoEnPanelDisenio(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicDerechoEnPanelDisenio if (evt.getButton() == MouseEvent.BUTTON3) { TTopologyElement et = escenario.getTopology().obtenerElementoEnPosicion(evt.getPoint()); if (et == null) { diseFondoPopUp.show(this, evt.getX() + 7, evt.getY() - 27); } else { if (et.getElementType() == TTopologyElement.NODO) { TNode nt = (TNode) et; dVerNombreMenuItem.setSelected(nt.getShowName()); elementoDisenioClicDerecho = et; diseElementoPopUp.show(this, evt.getX() + 7, evt.getY() + 15); } else if (et.getElementType() == TTopologyElement.LINK) { TLink ent = (TLink) et; dVerNombreMenuItem.setSelected(ent.obtenerMostrarNombre()); elementoDisenioClicDerecho = et; diseElementoPopUp.show(this, evt.getX() + 7, evt.getY() + 15); } } } else { elementoDisenioClicDerecho = null; panelDisenio.repaint(); } }//GEN-LAST:event_clicDerechoEnPanelDisenio /** Este mtodo se ejecuta cuando se hace clic en la opcin de aadir un LSRA * nuevo en la barra de herramientas de la pantalla de diseo. * This method is executed when you click on the option to add one LSRA new toolbar on the screen design. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void clicEnAniadirLSRA(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicEnAniadirLSRA // TActiveLSRNode lsra = null; // try { // lsra = new TActiveLSRNode(escenario.getTopology().getItemIdentifierGenerator().getNew(), escenario.getTopology().getIPAddressGenerator().obtenerIP(), escenario.getTopology().getEventIDGenerator(), escenario.getTopology()); // } catch (Exception e) { // JVentanaError err; // err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); // err.mostrarMensaje(e.toString()); // err.show(); // } // JVentanaLSRA vlsra = new JVentanaLSRA(escenario.getTopology(), panelDisenio, dispensadorDeImagenes, VentanaPadre, true); // vlsra.ponerConfiguracion(lsra, false); // vlsra.show(); // if (lsra.isWellConfigured()) { // try { // escenario.getTopology().addNode(lsra); // panelDisenio.repaint(); // } catch (Exception e) { // JVentanaError err; // err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); // err.mostrarMensaje(e.toString()); // err.show(); // }; // this.escenario.setModified(true); // } else { // lsra = null; // } }//GEN-LAST:event_clicEnAniadirLSRA /** Este mtodo se ejecuta cuando se hace clic en la opcin de aadir un LSR * nuevo en la barra de herramientas de la pantalla de diseo. * @since 1.0 * @param evt Evento que hace que este mtodo se dispare. */ private void clicEnAniadirLSR(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicEnAniadirLSR TLSRNode lsr = null; try { lsr = new TLSRNode(escenario.getTopology().getItemIdentifierGenerator().getNew(), escenario.getTopology().getIPAddressGenerator().obtenerIP(), escenario.getTopology().getEventIDGenerator(), escenario.getTopology()); } catch (Exception e) { JVentanaError err; err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); err.mostrarMensaje(e.toString()); err.show(); } JVentanaLSR vlsr = new JVentanaLSR(escenario.getTopology(), panelDisenio, dispensadorDeImagenes, VentanaPadre, true); vlsr.ponerConfiguracion(lsr, false); vlsr.show(); if (lsr.isWellConfigured()) { try { escenario.getTopology().addNode(lsr); panelDisenio.repaint(); } catch (Exception e) { JVentanaError err; err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); err.mostrarMensaje(e.toString()); err.show(); } ; this.escenario.setModified(true); } else { lsr = null; } }//GEN-LAST:event_clicEnAniadirLSR /** Este mtodo se ejecuta cuando se hace clic en la opcin de aadir un LSRA * nuevo en la barra de herramientas de la pantalla de diseo. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void clicEnAniadirLERA(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicEnAniadirLERA // TActiveLERNode lera = null; // try { // lera = new TActiveLERNode(escenario.getTopology().getItemIdentifierGenerator().getNew(), escenario.getTopology().getIPAddressGenerator().obtenerIP(), escenario.getTopology().getEventIDGenerator(), escenario.getTopology()); // } catch (Exception e) { // JVentanaError err; // err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); // err.mostrarMensaje(e.toString()); // err.show(); // } // JVentanaLERA vlera = new JVentanaLERA(escenario.getTopology(), panelDisenio, dispensadorDeImagenes, VentanaPadre, true); // vlera.ponerConfiguracion(lera, false); // vlera.show(); // if (lera.isWellConfigured()) { // try { // escenario.getTopology().addNode(lera); // panelDisenio.repaint(); // } catch (Exception e) { // JVentanaError err; // err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); // err.mostrarMensaje(e.toString()); // err.show(); // }; // this.escenario.setModified(true); // } else { // lera = null; // } }//GEN-LAST:event_clicEnAniadirLERA /** Este mtodo se ejecuta cuando se mueve el ratn dentro del rea de simulacin , * en la pantalla de simulacin. Entre otras cosas, cambia el cursor del ratn al pasar * sobre un elemento, permite mostrar mens emergentes coherentes con el contexto * de donde se encuentra el ratn, etctera. * This method is executed when the rapn moves into the area of simulation, on screen * simulation. Among other things, changes the mouse cursor to pass * on an item, can display pop mens consistent with the context * of where the mouse, etcetera is. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonSobrePanelSimulacion(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSobrePanelSimulacion TTopology topo = escenario.getTopology(); TTopologyElement et = topo.obtenerElementoEnPosicion(evt.getPoint()); if (et != null) { this.setCursor(new Cursor(Cursor.HAND_CURSOR)); if (et.getElementType() == TTopologyElement.NODO) { TNode nt = (TNode) et; if (nt.getPorts().isArtificiallyCongested()) { panelSimulacion.setToolTipText(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.Congestion") + nt.getPorts().getCongestionLevel() + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.POrcentaje") + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("VentanaHija.paraDejarDeCongestionar")); } else { panelSimulacion.setToolTipText(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.Congestion") + nt.getPorts().getCongestionLevel() + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.POrcentaje") + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("VentanaHija.paraCongestionar")); } } else if (et.getElementType() == TTopologyElement.LINK) { TLink ent = (TLink) et; if (ent.isBroken()) { panelSimulacion.setToolTipText(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.EnlaceRoto")); } else { panelSimulacion.setToolTipText(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.EnlaceFuncionando")); } } } else { this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); this.panelSimulacion.setToolTipText(null); if (!this.panelSimulacion.obtenerMostrarLeyenda()) { this.panelSimulacion.setToolTipText(java.util.ResourceBundle .getBundle("simMPLS/lenguajes/lenguajes").getString("JVentanaHija.VerLeyenda")); } else { this.panelSimulacion.setToolTipText(java.util.ResourceBundle .getBundle("simMPLS/lenguajes/lenguajes").getString("JVentanaHija.OcultarLeyenda")); } } }//GEN-LAST:event_ratonSobrePanelSimulacion /** Este mtodo se ejecuta cuando se mueve el ratn dentro del rea de diseo, * en la pantalla de Diseo. Entre otras cosas, cambia el cursor del ratn al pasar * sobre un elemento, permite mostrar mens emergentes coherentes con el contexto * de donde se encuentra el ratn, etctera. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void ratonSobrePanelDisenio(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSobrePanelDisenio TTopology topo = escenario.getTopology(); TTopologyElement et = topo.obtenerElementoEnPosicion(evt.getPoint()); if (et != null) { this.setCursor(new Cursor(Cursor.HAND_CURSOR)); if (et.getElementType() == TTopologyElement.NODO) { TNode nt = (TNode) et; panelDisenio.setToolTipText(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.PanelDisenio.IP") + nt.getIPAddress()); } else if (et.getElementType() == TTopologyElement.LINK) { TLink ent = (TLink) et; panelDisenio.setToolTipText(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.panelDisenio.Retardo") + ent.obtenerDelay() + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.panelDisenio.ns")); } } else { this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); panelDisenio.setToolTipText(null); } }//GEN-LAST:event_ratonSobrePanelDisenio /** Este mtodo se llama automticamente cuando se est arrastrando el ratn en la * pantalla de diseo. Se encarga de mover los elementos de un lugar a otro para * disear la topologa. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void arrastrandoEnPanelDisenio(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_arrastrandoEnPanelDisenio if (evt.getModifiersEx() == java.awt.event.InputEvent.BUTTON1_DOWN_MASK) { if (nodoSeleccionado != null) { TTopology topo = escenario.getTopology(); Point p2 = evt.getPoint(); if (p2.x < 0) p2.x = 0; if (p2.x > panelDisenio.getSize().width) p2.x = panelDisenio.getSize().width; if (p2.y < 0) p2.y = 0; if (p2.y > panelDisenio.getSize().height) p2.y = panelDisenio.getSize().height; nodoSeleccionado.setPosition(new Point(p2.x, p2.y)); panelDisenio.repaint(); this.escenario.setModified(true); } } }//GEN-LAST:event_arrastrandoEnPanelDisenio /** Este mtodo se llama automticamente cuando soltamos el botn del raton a la * rrastrar o al hacer clic. Si el ratn estaba sobre un elemento de la topology, se marca ste como no seleccionado. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void clicSoltadoEnPanelDisenio(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicSoltadoEnPanelDisenio if (evt.getButton() == MouseEvent.BUTTON1) { if (nodoSeleccionado != null) { nodoSeleccionado.setStatus(TNode.DESELECCIONADO); nodoSeleccionado = null; this.escenario.setModified(true); } panelDisenio.repaint(); } }//GEN-LAST:event_clicSoltadoEnPanelDisenio /** Este mtodo se llama automticamente cuando se hace un clic con el botn * izquierdo sobre la pantalla de diseo. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void clicEnPanelDisenio(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicEnPanelDisenio if (evt.getButton() == MouseEvent.BUTTON1) { TTopology topo = escenario.getTopology(); nodoSeleccionado = topo.obtenerNodoEnPosicion(evt.getPoint()); if (nodoSeleccionado != null) { nodoSeleccionado.setStatus(TNode.SELECCIONADO); this.escenario.setModified(true); } panelDisenio.repaint(); } }//GEN-LAST:event_clicEnPanelDisenio /** Este mtodo se llama automticamente cuando el ratn sale del icono de * detener en la pantalla de simulacin. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonSaleDelIconoPausar(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSaleDelIconoPausar iconoPausar.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.BOTON_PAUSA)); this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }//GEN-LAST:event_ratonSaleDelIconoPausar /** Este mtodo se llama automticamente cuando el ratn pasa por el icono de * detener en la pantalla de simulacin. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void ratonEntraEnIconoPausar(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonEntraEnIconoPausar iconoPausar.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.BOTON_PAUSA_BRILLO)); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); }//GEN-LAST:event_ratonEntraEnIconoPausar /** Este mtodo se llama automticamente cuando el ratn sale del icono de finalizar * en la pantalla de simulacin. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void ratonSaleDelIconoFinalizar(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSaleDelIconoFinalizar iconoFinalizar.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.BOTON_PARAR)); this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }//GEN-LAST:event_ratonSaleDelIconoFinalizar /** Este mtodo se llama automticamente cuando el ratn pasa por el icono de finalizar * en la pantalla de simulacin. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void ratonEntraEnIconoFinalizar(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonEntraEnIconoFinalizar iconoFinalizar.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.BOTON_PARAR_BRILLO)); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); }//GEN-LAST:event_ratonEntraEnIconoFinalizar /** Este mtodo se llama automticamente cuando el ratn sale del icono de comenzar * en la pantalla de simulacin. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void ratonSaleDelIconoReanudar(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSaleDelIconoReanudar iconoReanudar.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.BOTON_COMENZAR)); this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }//GEN-LAST:event_ratonSaleDelIconoReanudar /** Este mtodo se llama automticamente cuando el ratn pasa por el icono de * comenzar en la pantalla de simulacin. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void ratonEntraEnIconoReanudar(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonEntraEnIconoReanudar iconoReanudar.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.BOTON_COMENZAR_BRILLO)); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); }//GEN-LAST:event_ratonEntraEnIconoReanudar /** Este mtodo se llama automticamente cuando el ratn sale del icono generar en la * pantalla de simulacin. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void ratonSaleDelIconoComenzar(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSaleDelIconoComenzar iconoComenzar.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.BOTON_GENERAR)); this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }//GEN-LAST:event_ratonSaleDelIconoComenzar /** Este mtodo se llama automticamente cuando el ratn pasa por el icono generar en * la pantalla de simulacin. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void ratonEntraEnIconoComenzar(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonEntraEnIconoComenzar iconoComenzar.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.BOTON_GENERAR_BRILLO)); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); }//GEN-LAST:event_ratonEntraEnIconoComenzar /** Este mtodo se ejecuta cuando se hace clic en la opcin de aadir un LER * nuevo en la barra de herramientas de la pantalla de diseo. * @since 1.0 * @param evt Evento que hace que se dispare este mtodo. */ private void clicEnAniadirLER(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicEnAniadirLER TLERNode ler = null; try { ler = new TLERNode(escenario.getTopology().getItemIdentifierGenerator().getNew(), escenario.getTopology().getIPAddressGenerator().obtenerIP(), escenario.getTopology().getEventIDGenerator(), escenario.getTopology()); } catch (Exception e) { JVentanaError err; err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); err.mostrarMensaje(e.toString()); err.show(); } JVentanaLER vler = new JVentanaLER(escenario.getTopology(), panelDisenio, dispensadorDeImagenes, VentanaPadre, true); vler.ponerConfiguracion(ler, false); vler.show(); if (ler.isWellConfigured()) { try { escenario.getTopology().addNode(ler); panelDisenio.repaint(); } catch (Exception e) { JVentanaError err; err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); err.mostrarMensaje(e.toString()); err.show(); } ; this.escenario.setModified(true); } else { ler = null; } }//GEN-LAST:event_clicEnAniadirLER /** Este mtodo se llama automticamente cuando el ratn sale del icono enlace en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo */ private void ratonSaleDeIconoEnlace(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSaleDeIconoEnlace iconoEnlace.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.ENLACE_MENU)); this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }//GEN-LAST:event_ratonSaleDeIconoEnlace /** Este mtodo se llama automticamente cuando el ratn pasa por el icono enlace en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonEntraEnIconoEnlace(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonEntraEnIconoEnlace iconoEnlace.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.ENLACE_MENU_BRILLO)); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); }//GEN-LAST:event_ratonEntraEnIconoEnlace /** Este mtodo se llama automticamente cuando el ratn sale del icono LSRA en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonSaleDeIconoLSRA(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSaleDeIconoLSRA iconoLSRA.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.LSRA_MENU)); this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }//GEN-LAST:event_ratonSaleDeIconoLSRA /** Este mtodo se llama automticamente cuando el ratn pasa por el icono LSRA en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonEntraEnIconoLSRA(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonEntraEnIconoLSRA iconoLSRA.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.LSRA_MENU_BRILLO)); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); }//GEN-LAST:event_ratonEntraEnIconoLSRA /** Este mtodo se llama automticamente cuando el ratn sale del icono LSR en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonSaleDeIconoLSR(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSaleDeIconoLSR iconoLSR.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.LSR_MENU)); this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }//GEN-LAST:event_ratonSaleDeIconoLSR /** Este mtodo se llama automticamente cuando el ratn pasa por el icono LSR en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonEntraEnIconoLSR(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonEntraEnIconoLSR iconoLSR.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.LSR_MENU_BRILLO)); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); }//GEN-LAST:event_ratonEntraEnIconoLSR /** Este mtodo se llama automticamente cuando el ratn sale del icono LERA en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonSaleDeIconoLERA(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSaleDeIconoLERA iconoLERA.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.LERA_MENU)); this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }//GEN-LAST:event_ratonSaleDeIconoLERA /** Este mtodo se llama automticamente cuando el ratn pasa por el icono LERA en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonEntraEnIconoLERA(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonEntraEnIconoLERA iconoLERA.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.LERA_MENU_BRILLO)); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); }//GEN-LAST:event_ratonEntraEnIconoLERA /** Este mtodo se llama automticamente cuando el ratn sale del icono LER en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonSaleDeIconoLER(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSaleDeIconoLER iconoLER.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.LER_MENU)); this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }//GEN-LAST:event_ratonSaleDeIconoLER /** Este mtodo se llama automticamente cuando el ratn pasa por el icono LER en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonEntraEnIconoLER(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonEntraEnIconoLER iconoLER.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.LER_MENU_BRILLO)); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); }//GEN-LAST:event_ratonEntraEnIconoLER /** Este mtodo se llama automticamente cuando el ratn sale del icono receptor en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonSaleDeIconoReceptor(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSaleDeIconoReceptor iconoReceptor.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.RECEPTOR_MENU)); this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }//GEN-LAST:event_ratonSaleDeIconoReceptor /** Este mtodo se llama automticamente cuando el ratn pasa por el icono receptor * en la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonEntraEnIconoReceptor(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonEntraEnIconoReceptor iconoReceptor.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.RECEPTOR_MENU_BRILLO)); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); }//GEN-LAST:event_ratonEntraEnIconoReceptor /** Este mtodo se llama automticamente cuando el ratn sale del icono emisor en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonSaleDeIconoEmisor(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonSaleDeIconoEmisor iconoEmisor.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.EMISOR_MENU)); this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }//GEN-LAST:event_ratonSaleDeIconoEmisor /** Este mtodo se llama automticamente cuando el ratn pasa por el icono emisor en * la pantalla de diseo. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void ratonEntraEnIconoEmisor(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ratonEntraEnIconoEmisor iconoEmisor.setIcon(dispensadorDeImagenes.obtenerIcono(TImagesBroker.EMISOR_MENU_BRILLO)); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); }//GEN-LAST:event_ratonEntraEnIconoEmisor /** Este mtodo se llama automticamente cuando se hace clic sobre el icono receptor * en la ventana de diseo. Aade un receptor nuevo en la topology. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void clicEnAniadirReceptor(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicEnAniadirReceptor TReceiverNode receptor = null; try { receptor = new TReceiverNode(escenario.getTopology().getItemIdentifierGenerator().getNew(), escenario.getTopology().getIPAddressGenerator().obtenerIP(), escenario.getTopology().getEventIDGenerator(), escenario.getTopology()); } catch (Exception e) { JVentanaError err; err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); err.mostrarMensaje(e.toString()); err.show(); } JVentanaReceptor vr = new JVentanaReceptor(escenario.getTopology(), panelDisenio, dispensadorDeImagenes, VentanaPadre, true); vr.ponerConfiguracion(receptor, false); vr.show(); if (receptor.isWellConfigured()) { try { escenario.getTopology().addNode(receptor); panelDisenio.repaint(); } catch (Exception e) { JVentanaError err; err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); err.mostrarMensaje(e.toString()); err.show(); } ; this.escenario.setModified(true); } else { receptor = null; } }//GEN-LAST:event_clicEnAniadirReceptor /** Este mtodo se llama automticamente cuando se hace clic sobre el icono emisor * en la ventana de diseo. Aade un emisor nuevo en la topology. * This method is called automatically when you click on the transmitter icon * in the design window. Adds a new issuer in the topology. * @since 1.0 * @param evt El evento que hace que se dispare este mtodo. */ private void clicEnAniadirEmisorDeTrafico(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicEnAniadirEmisorDeTrafico TTopology t = escenario.getTopology(); Iterator it = t.getNodesIterator(); TNode nt; boolean hayDestino = false; while (it.hasNext()) { nt = (TNode) it.next(); if (nt.getNodeType() == TNode.RECEIVER) hayDestino = true; } if (!hayDestino) { JVentanaAdvertencia va = new JVentanaAdvertencia(VentanaPadre, true, dispensadorDeImagenes); va.mostrarMensaje(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.NecesitaHaberUnReceptor")); va.show(); } else { TSenderNode emisor = null; try { emisor = new TSenderNode(escenario.getTopology().getItemIdentifierGenerator().getNew(), escenario.getTopology().getIPAddressGenerator().obtenerIP(), escenario.getTopology().getEventIDGenerator(), escenario.getTopology()); } catch (Exception e) { JVentanaError err; err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); err.mostrarMensaje(e.toString()); err.show(); } JVentanaEmisor ve = new JVentanaEmisor(escenario.getTopology(), panelDisenio, dispensadorDeImagenes, VentanaPadre, true); ve.ponerConfiguracion(emisor, false); ve.show(); if (emisor.isWellConfigured()) { try { escenario.getTopology().addNode(emisor); panelDisenio.repaint(); } catch (Exception e) { JVentanaError err; err = new JVentanaError(VentanaPadre, true, dispensadorDeImagenes); err.mostrarMensaje(e.toString()); err.show(); } ; this.escenario.setModified(true); } else { emisor = null; } } }//GEN-LAST:event_clicEnAniadirEmisorDeTrafico /** Este mtodo se llama automticamente cuando se hace clic sobre el icono detener * en la ventana de simulacin. Detiene la simulacin o su generacin. * @since 1.0 * @param evt Evento que hace que este mtodo se dispare. */ private void clicAlPausar(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicAlPausar if (iconoPausar.isEnabled()) { this.escenario.getTopology().obtenerReloj().setPaused(true); activarOpcionesAlDetener(); } }//GEN-LAST:event_clicAlPausar /** Este mtodo se llama automticamente cuando se hace clic sobre el icono * finalizar en la ventana de simulacin. Detiene la simulacin por completo. * @since 1.0 * @param evt El evento que hace que este mtodo se dispare. */ private void clicEnFinalizar(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicEnFinalizar if (iconoFinalizar.isEnabled()) { this.escenario.getTopology().obtenerReloj().reset(); this.crearTraza.setEnabled(true); this.panelSimulacion.ponerFicheroTraza(null); activarOpcionesAlFinalizar(); } }//GEN-LAST:event_clicEnFinalizar /** Este mtodo se llama automticamente cuando se hace clic sobre el icono comenzar * en la ventana de simulacin. Inicia la simulacin. * @since 1.0 * @param evt El evento que hace que este mtodo se dispare. */ private void clicEnReanudar(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicEnReanudar if (iconoReanudar.isEnabled()) { activarOpcionesAlComenzar(); this.escenario.getTopology().obtenerReloj().setPaused(false); this.escenario.getTopology().obtenerReloj().restart(); } }//GEN-LAST:event_clicEnReanudar /** Este mtodo se llama automticamente cuando se hace clic sobre el icono generar * en la ventana de simulacin. Crea la simulacin. * @since 1.0 * @param evt El evento que hace que este mtodo se dispare. */ private void clicEnComenzar(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clicEnComenzar if (iconoComenzar.isEnabled()) { escenario.reset(); escenario.ponerDuracionSimulacion(new TTimestamp(duracionMs.getValue(), duracionNs.getValue())); escenario.ponerPasoSimulacion(pasoNs.getValue()); crearListaElementosEstadistica(); this.escenario.setModified(true); this.escenario.getTopology().obtenerReloj().reset(); panelSimulacion.reset(); panelSimulacion.repaint(); escenario.generarSimulacion(); int minimoDelay = this.escenario.getTopology().obtenerMinimoDelay(); int pasoActual = this.pasoNs.getValue(); if (pasoActual > minimoDelay) { this.pasoNs.setValue(minimoDelay); } this.crearTraza.setEnabled(false); this.panelSimulacion.ponerFicheroTraza(null); if (this.crearTraza.isSelected()) { if (this.escenario.obtenerFichero() != null) { File fAux = new File(this.escenario.obtenerFichero().getPath() + ".txt"); this.panelSimulacion.ponerFicheroTraza(fAux); } else { this.panelSimulacion.ponerFicheroTraza(new File(this.getTitle() + ".txt")); } } else { this.panelSimulacion.ponerFicheroTraza(null); } activarOpcionesTrasGenerar(); } }//GEN-LAST:event_clicEnComenzar /** * Este mtodo se llama cuando comienza la simulacin del escenario. Crea una lista * de todos los nodos que tienen activa la generacin de estadsticas para * posteriormente poder elegir uno de ellos y ver sus grficas. * @since 1.0 */ public void crearListaElementosEstadistica() { Iterator it = null; TNode nt = null; TLink et = null; this.selectorElementoEstadisticas.removeAllItems(); this.selectorElementoEstadisticas.addItem(""); it = this.escenario.getTopology().getNodesIterator(); while (it.hasNext()) { nt = (TNode) it.next(); if (nt.isGeneratingStats()) { this.selectorElementoEstadisticas.addItem(nt.getName()); } } this.selectorElementoEstadisticas.setSelectedIndex(0); } /** Este mtodo modifica la interfaz para que las opciones que se muestran sean * acordes al momento en que la simulacin est detenida. * @since 1.0 */ private void activarOpcionesAlDetener() { iconoComenzar.setEnabled(false); iconoReanudar.setEnabled(true); iconoFinalizar.setEnabled(true); iconoPausar.setEnabled(false); } /** Este mtodo modifica la interfaz para que las opciones que se muestran sean * acordes al momento en que la simulacin ha finalizado. * @since 1.0 */ private void activarOpcionesAlFinalizar() { iconoComenzar.setEnabled(true); iconoReanudar.setEnabled(false); iconoFinalizar.setEnabled(false); iconoPausar.setEnabled(false); } /** Este mtodo modifica la interfaz para que las opciones que se muestran sean * acordes al momento en que la simulacin se acaba de generar. * @since 1.0 */ private void activarOpcionesTrasGenerar() { iconoComenzar.setEnabled(false); iconoReanudar.setEnabled(false); iconoFinalizar.setEnabled(true); iconoPausar.setEnabled(true); } /** Este mtodo modifica la interfaz para que las opciones que se muestran sean * acordes al momento en que la simulacin comienza. * @since 1.0 */ private void activarOpcionesAlComenzar() { iconoComenzar.setEnabled(false); iconoReanudar.setEnabled(false); iconoFinalizar.setEnabled(true); iconoPausar.setEnabled(true); } /** Cierra la ventana hija y pierde o almacena su contenido en funcin de la * eleccin del usuario. * @since 1.0 */ public void cerrar() { this.setVisible(false); this.dispose(); } /** * Este mtodo se encarga de controlar que todo ocurre como debe con respecto al * escenario, cuando se pulsa en el men principal la opcin de "Guardar como..." * @since 1.0 */ public void gestionarGuardarComo() { anotarDatosDeEscenario(); JFileChooser dialogoGuardar = new JFileChooser(); dialogoGuardar.setFileFilter(new JOSMFilter()); dialogoGuardar.setDialogType(JFileChooser.CUSTOM_DIALOG); dialogoGuardar.setApproveButtonMnemonic('A'); dialogoGuardar.setApproveButtonText(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.DialogoGuardar.OK")); dialogoGuardar.setDialogTitle(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.DialogoGuardar.Almacenar") + this.getTitle() + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes").getString("-")); dialogoGuardar.setAcceptAllFileFilterUsed(false); dialogoGuardar.setSelectedFile(new File(this.getTitle())); dialogoGuardar.setFileSelectionMode(JFileChooser.FILES_ONLY); int resultado = dialogoGuardar.showSaveDialog(VentanaPadre); if (resultado == JFileChooser.APPROVE_OPTION) { String ext = null; String nombreFich = dialogoGuardar.getSelectedFile().getPath(); int i = nombreFich.lastIndexOf('.'); if (i > 0 && i < nombreFich.length() - 1) { ext = nombreFich.substring(i + 1).toLowerCase(); } if (ext == null) { nombreFich += java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes").getString(".osm"); } else { if (!ext.equals( java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes").getString("osm"))) { nombreFich += java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString(".osm"); } } dialogoGuardar.setSelectedFile(new File(nombreFich)); escenario.setFile(dialogoGuardar.getSelectedFile()); this.escenario.setSaved(true); this.setTitle(this.escenario.obtenerFichero().getName()); TOSMSaver almacenador = new TOSMSaver(escenario); // JVentanaBooleana vb = new JVentanaBooleana(this.VentanaPadre, true, this.dispensadorDeImagenes); // vb.mostrarPregunta(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes").getString("JVentanaHija.PreguntaEmpotrarCRC")); // vb.show(); // boolean conCRC = vb.obtenerRespuesta(); // boolean correcto = almacenador.save(escenario.obtenerFichero(), conCRC); JVentanaBooleana vb = new JVentanaBooleana(this.VentanaPadre, true, this.dispensadorDeImagenes); vb.mostrarPregunta("Do you want to save the routing tables ?"); vb.show(); boolean saveTables = vb.obtenerRespuesta(); boolean correcto = almacenador.save(escenario.obtenerFichero(), false, saveTables); if (correcto) { this.escenario.setModified(false); this.escenario.setSaved(true); } } } /** * Este mtodo se encarga de controlar que todo ocurre como debe con respecto al * escenario, cuando se pulsa en el men principal la opcin de "Cerrar" o "Salir" * y el escenario actual no est an guardado o est modificado. * @since 1.0 */ public void gestionarGuardarParaCerrar() { boolean guardado = this.escenario.obtenerGuardado(); boolean modificado = this.escenario.obtenerModificado(); anotarDatosDeEscenario(); // Detengo la simulacin antes de cerrar, si es necesario. if (this.escenario.getTopology().obtenerReloj().isRunning()) { panelSimulacion.reset(); panelSimulacion.repaint(); escenario.reset(); escenario.ponerDuracionSimulacion(new TTimestamp(duracionMs.getValue(), duracionNs.getValue())); escenario.ponerPasoSimulacion(pasoNs.getValue()); this.escenario.getTopology().obtenerReloj().setPaused(false); activarOpcionesAlFinalizar(); } if (!guardado) { JVentanaBooleana vb = new JVentanaBooleana(VentanaPadre, true, dispensadorDeImagenes); vb.mostrarPregunta(this.getTitle() + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.DialogoGuardar.GuardarPrimeraVez")); vb.show(); boolean respuesta = vb.obtenerRespuesta(); vb.dispose(); if (respuesta) { this.gestionarGuardarComo(); } } else if ((guardado) && (!modificado)) { // No se hace nada, ya est todo guardado correctamente. } else if ((guardado) && (modificado)) { JVentanaBooleana vb = new JVentanaBooleana(VentanaPadre, true, dispensadorDeImagenes); vb.mostrarPregunta(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.DialogoGuardar.CambiosSinguardar1") + " " + this.getTitle() + " " + java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes") .getString("JVentanaHija.DialogoGuardar.CambiosSinguardar2")); vb.show(); boolean respuesta = vb.obtenerRespuesta(); vb.dispose(); if (respuesta) { TOSMSaver almacenador = new TOSMSaver(escenario); JVentanaBooleana vb2 = new JVentanaBooleana(this.VentanaPadre, true, this.dispensadorDeImagenes); // vb2.mostrarPregunta(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes").getString("JVentanaHija.PreguntaEmpotrarCRC")); // vb2.show(); // boolean conCRC = vb2.obtenerRespuesta(); // boolean correcto = almacenador.save(escenario.obtenerFichero(), conCRC); vb.mostrarPregunta("Do you want to save the routing tables ?"); vb.show(); boolean saveTables = vb.obtenerRespuesta(); boolean correcto = almacenador.save(escenario.obtenerFichero(), false, saveTables); if (correcto) { this.escenario.setModified(false); this.escenario.setSaved(true); } } } } /** * Este mtodo se encarga de controlar que todo ocurre como debe con respecto al * escenario, cuando se pulsa en el men principal la opcin de "Guardar". * @since 1.0 */ public void gestionarGuardar() { boolean guardado = this.escenario.obtenerGuardado(); boolean modificado = this.escenario.obtenerModificado(); anotarDatosDeEscenario(); if (!guardado) { this.gestionarGuardarComo(); } else { TOSMSaver almacenador = new TOSMSaver(escenario); JVentanaBooleana vb = new JVentanaBooleana(this.VentanaPadre, true, this.dispensadorDeImagenes); // vb.mostrarPregunta(java.util.ResourceBundle.getBundle("simMPLS/lenguajes/lenguajes").getString("JVentanaHija.PreguntaEmpotrarCRC")); // vb.show(); // boolean conCRC = vb.obtenerRespuesta(); // boolean correcto = almacenador.save(escenario.obtenerFichero(), conCRC); vb.mostrarPregunta("Do you want to save the routing tables ?"); vb.show(); boolean saveTables = vb.obtenerRespuesta(); boolean correcto = almacenador.save(escenario.obtenerFichero(), false, saveTables); if (correcto) { this.escenario.setModified(false); this.escenario.setSaved(true); } this.escenario.setModified(false); this.escenario.setSaved(true); } } private void crearEInsertarGraficas(String nombre) { GridBagConstraints gbc = null; this.panelAnalisis.removeAll(); this.etiquetaEstadisticasTituloEscenario.setText(this.nombreEscenario.getText()); this.etiquetaEstadisticasNombreAutor.setText(this.nombreAutor.getText()); this.areaEstadisticasDescripcion.setText(this.descripcionEscenario.getText()); this.etiquetaNombreElementoEstadistica.setText(nombre); TNode nt = this.escenario.getTopology().setFirstNodeNamed(nombre); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.insets = new Insets(10, 10, 10, 5); gbc.anchor = java.awt.GridBagConstraints.NORTH; gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; this.panelFijo.add(this.etiquetaEstadisticasTituloEscenario, gbc); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 1; gbc.insets = new Insets(10, 5, 10, 5); gbc.anchor = java.awt.GridBagConstraints.NORTH; gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; this.panelFijo.add(this.etiquetaEstadisticasNombreAutor, gbc); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 2; gbc.insets = new Insets(10, 5, 10, 5); gbc.anchor = java.awt.GridBagConstraints.NORTH; gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; this.panelFijo.add(this.areaEstadisticasDescripcion, gbc); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 3; gbc.insets = new Insets(10, 5, 10, 5); gbc.anchor = java.awt.GridBagConstraints.NORTH; gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; this.panelFijo.add(this.etiquetaNombreElementoEstadistica, gbc); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.insets = new Insets(10, 10, 10, 5); gbc.anchor = java.awt.GridBagConstraints.NORTH; gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; this.panelAnalisis.add(this.panelFijo, gbc); if (nt != null) { if (nt.getNodeType() == TNode.SENDER) { this.etiquetaNombreElementoEstadistica .setIcon(this.dispensadorDeImagenes.obtenerIcono(TImagesBroker.EMISOR)); } else if (nt.getNodeType() == TNode.RECEIVER) { this.etiquetaNombreElementoEstadistica .setIcon(this.dispensadorDeImagenes.obtenerIcono(TImagesBroker.RECEPTOR)); } else if (nt.getNodeType() == TNode.LER) { this.etiquetaNombreElementoEstadistica .setIcon(this.dispensadorDeImagenes.obtenerIcono(TImagesBroker.LER)); } else if (nt.getNodeType() == TNode.LERA) { this.etiquetaNombreElementoEstadistica .setIcon(this.dispensadorDeImagenes.obtenerIcono(TImagesBroker.LERA)); } else if (nt.getNodeType() == TNode.LSR) { this.etiquetaNombreElementoEstadistica .setIcon(this.dispensadorDeImagenes.obtenerIcono(TImagesBroker.LSR)); } else if (nt.getNodeType() == TNode.LSRA) { this.etiquetaNombreElementoEstadistica .setIcon(this.dispensadorDeImagenes.obtenerIcono(TImagesBroker.LSRA)); } int numeroGraficos = nt.getStats().obtenerNumeroGraficas(); if (numeroGraficos > 0) { grafico1 = ChartFactory.createXYLineChart(nt.getStats().obtenerTitulo1(), TStats.TIEMPO, TStats.NUMERO_DE_PAQUETES, (XYSeriesCollection) nt.getStats().obtenerDatosGrafica1(), PlotOrientation.VERTICAL, true, true, true); grafico1.getPlot().setBackgroundPaint(Color.WHITE); grafico1.getPlot().setForegroundAlpha((float) 0.5); grafico1.getPlot().setOutlinePaint(new Color(14, 69, 125)); grafico1.getXYPlot().setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5, 5, 5, 5)); grafico1.setBackgroundPaint(new Color(210, 226, 242)); grafico1.setBorderPaint(Color.BLACK); grafico1.getTitle().setPaint(new Color(79, 138, 198)); this.panelGrafico1 = new ChartPanel(grafico1); panelGrafico1.setBorder(new LineBorder(Color.BLACK)); panelGrafico1.setPreferredSize(new Dimension(600, 300)); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 1; gbc.insets = new Insets(10, 5, 10, 5); gbc.anchor = java.awt.GridBagConstraints.NORTH; gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; this.panelAnalisis.add(panelGrafico1, gbc); } if (numeroGraficos > 1) { grafico2 = ChartFactory.createXYLineChart(nt.getStats().obtenerTitulo2(), TStats.TIEMPO, TStats.NUMERO_DE_PAQUETES, (XYSeriesCollection) nt.getStats().obtenerDatosGrafica2(), PlotOrientation.VERTICAL, true, true, true); grafico2.getPlot().setBackgroundPaint(Color.WHITE); grafico2.getPlot().setForegroundAlpha((float) 0.5); grafico2.getPlot().setOutlinePaint(new Color(14, 69, 125)); grafico2.getXYPlot().setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5, 5, 5, 5)); grafico2.setBackgroundPaint(new Color(210, 226, 242)); grafico2.setBorderPaint(Color.BLACK); grafico2.getTitle().setPaint(new Color(79, 138, 198)); this.panelGrafico2 = new ChartPanel(grafico2); panelGrafico2.setPreferredSize(new Dimension(600, 300)); panelGrafico2.setBorder(new LineBorder(Color.BLACK)); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 2; gbc.insets = new Insets(10, 5, 10, 5); gbc.anchor = java.awt.GridBagConstraints.NORTH; gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; this.panelAnalisis.add(panelGrafico2, gbc); } if (numeroGraficos > 2) { grafico3 = ChartFactory.createXYLineChart(nt.getStats().obtenerTitulo3(), TStats.TIEMPO, TStats.NUMERO_DE_PAQUETES, (XYSeriesCollection) nt.getStats().obtenerDatosGrafica3(), PlotOrientation.VERTICAL, true, true, true); grafico3.getPlot().setBackgroundPaint(Color.WHITE); grafico3.getPlot().setForegroundAlpha((float) 0.5); grafico3.getPlot().setOutlinePaint(new Color(14, 69, 125)); grafico3.getXYPlot().setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5, 5, 5, 5)); grafico3.setBackgroundPaint(new Color(210, 226, 242)); grafico3.setBorderPaint(Color.BLACK); grafico3.getTitle().setPaint(new Color(79, 138, 198)); this.panelGrafico3 = new ChartPanel(grafico3); panelGrafico3.setBorder(new LineBorder(Color.BLACK)); panelGrafico3.setPreferredSize(new Dimension(600, 300)); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 3; gbc.insets = new Insets(10, 5, 10, 5); gbc.anchor = java.awt.GridBagConstraints.NORTH; gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; this.panelAnalisis.add(panelGrafico3, gbc); } if (numeroGraficos > 3) { grafico4 = ChartFactory.createBarChart(nt.getStats().obtenerTitulo4(), TStats.DESCRIPCION, TStats.NUMERO, (DefaultCategoryDataset) nt.getStats().obtenerDatosGrafica4(), PlotOrientation.VERTICAL, true, true, true); grafico4.getPlot().setBackgroundPaint(Color.WHITE); grafico4.getPlot().setForegroundAlpha((float) 0.5); grafico4.getPlot().setOutlinePaint(new Color(14, 69, 125)); grafico4.setBackgroundPaint(new Color(210, 226, 242)); grafico4.setBorderPaint(Color.BLACK); grafico4.getTitle().setPaint(new Color(79, 138, 198)); this.panelGrafico4 = new ChartPanel(grafico4); panelGrafico4.setBorder(new LineBorder(Color.BLACK)); panelGrafico4.setPreferredSize(new Dimension(600, 300)); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 4; gbc.insets = new Insets(10, 5, 10, 5); gbc.anchor = java.awt.GridBagConstraints.NORTH; gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; this.panelAnalisis.add(panelGrafico4, gbc); } if (numeroGraficos > 4) { grafico5 = ChartFactory.createBarChart(nt.getStats().obtenerTitulo5(), TStats.DESCRIPCION, TStats.NUMERO, (DefaultCategoryDataset) nt.getStats().obtenerDatosGrafica5(), PlotOrientation.VERTICAL, true, true, true); grafico5.getPlot().setBackgroundPaint(Color.WHITE); grafico5.getPlot().setForegroundAlpha((float) 0.5); grafico5.getPlot().setOutlinePaint(new Color(14, 69, 125)); grafico5.setBackgroundPaint(new Color(210, 226, 242)); grafico5.setBorderPaint(Color.BLACK); grafico5.getTitle().setPaint(new Color(79, 138, 198)); this.panelGrafico5 = new ChartPanel(grafico5); panelGrafico5.setBorder(new LineBorder(Color.BLACK)); panelGrafico5.setPreferredSize(new Dimension(600, 300)); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 5; gbc.insets = new Insets(10, 5, 10, 5); gbc.anchor = java.awt.GridBagConstraints.NORTH; gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; this.panelAnalisis.add(panelGrafico5, gbc); } if (numeroGraficos > 5) { grafico6 = ChartFactory.createXYLineChart(nt.getStats().obtenerTitulo6(), TStats.TIEMPO, TStats.NUMERO_DE_PAQUETES, (XYSeriesCollection) nt.getStats().obtenerDatosGrafica6(), PlotOrientation.VERTICAL, true, true, true); grafico6.getPlot().setBackgroundPaint(Color.WHITE); grafico6.getPlot().setForegroundAlpha((float) 0.5); grafico6.getPlot().setOutlinePaint(new Color(14, 69, 125)); grafico6.getXYPlot().setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5, 5, 5, 5)); grafico6.setBackgroundPaint(new Color(210, 226, 242)); grafico6.setBorderPaint(Color.BLACK); grafico6.getTitle().setPaint(new Color(79, 138, 198)); this.panelGrafico6 = new ChartPanel(grafico6); panelGrafico6.setBorder(new LineBorder(Color.BLACK)); panelGrafico6.setPreferredSize(new Dimension(600, 300)); gbc = new java.awt.GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 6; gbc.insets = new Insets(10, 5, 10, 10); gbc.anchor = java.awt.GridBagConstraints.NORTH; gbc.fill = java.awt.GridBagConstraints.HORIZONTAL; this.panelAnalisis.add(panelGrafico6, gbc); } } this.panelAnalisis.repaint(); } /** * Este mtodo se encarga de anotar los datos del escenario desde la interfaz de * usuario hasta los correspondientes atributos del objeto que almacena el * escenario. * @since 1.0 */ private void anotarDatosDeEscenario() { this.escenario.setTitle(this.nombreEscenario.getText()); this.escenario.setAuthor(this.nombreAutor.getText()); this.escenario.setDescription(this.descripcionEscenario.getText()); } /** Este atributo es el objeto encargado de actualizar la barra de progreso del * escenario que se usa a la hora de generar la simulacin y a la hora de * ejecutarla. * @since 1.0 */ private TProgressEventListener aProgresoGeneracion; /** Este atributo contendr todo el escenario completo de la simulacin: topology, anlisis y simulacin. * @since 1.0 */ private TScenario escenario; /** Este atributo contendr en todo momento una referencia al nodo del escenario que * se est arrastrando. * @since 1.0 */ private TNode nodoSeleccionado; /** Este atributo contendr todas las imgenes de Open SimMPLS para poder acceder a * ellas de forma ms rpida y para no tener que cargar la misma imagen en * distintas instancias. * @since 1.0 */ private TImagesBroker dispensadorDeImagenes; /** Este atributo es una referencia a la ventana padre que recoge dentro de si a * esta ventana hija. * @since 1.0 */ private JSimulador VentanaPadre; /** Este atributo contiene en todo momento un referencia al elemento de la topologa * (nodo o enlace) sobre el que se est intentando abrir un men contextual (clic * con el botn derecho). * @since 1.0 */ private TTopologyElement elementoDisenioClicDerecho; private boolean controlTemporizacionDesactivado; private ChartPanel panelGrafico1; private ChartPanel panelGrafico2; private ChartPanel panelGrafico3; private ChartPanel panelGrafico4; private ChartPanel panelGrafico5; private ChartPanel panelGrafico6; private JFreeChart grafico1; private JFreeChart grafico2; private JFreeChart grafico3; private JFreeChart grafico4; private JFreeChart grafico5; private JFreeChart grafico6; // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JTextArea areaEstadisticasDescripcion; private javax.swing.JProgressBar barraDeProgreso; private javax.swing.JCheckBox crearTraza; private javax.swing.JMenuItem dEliminarMenuItem; private javax.swing.JMenuItem dEliminarTodoMenuItem; private javax.swing.JMenuItem dOcultarNombresEnlacesMenuItem; private javax.swing.JMenuItem dOcultarNombresNodosMenuItem; private javax.swing.JMenuItem dPropiedadesMenuItem; private javax.swing.JCheckBoxMenuItem dVerNombreMenuItem; private javax.swing.JMenuItem dVerNombresEnlacesMenuItem; private javax.swing.JMenuItem dVerNombresNodosMenuItem; private javax.swing.JTextField descripcionEscenario; private javax.swing.JPopupMenu diseElementoPopUp; private javax.swing.JPopupMenu diseFondoPopUp; private javax.swing.JSlider duracionMs; private javax.swing.JSlider duracionNs; private javax.swing.JLabel etiquetaDuracionMs; private javax.swing.JLabel etiquetaDuracionNs; private javax.swing.JLabel etiquetaEstadisticasNombreAutor; private javax.swing.JLabel etiquetaEstadisticasTituloEscenario; private javax.swing.JLabel etiquetaMlsPorTic; private javax.swing.JLabel etiquetaNombreElementoEstadistica; private javax.swing.JLabel etiquetaPasoNs; private javax.swing.JLabel iconoComenzar; private javax.swing.JLabel iconoEmisor; private javax.swing.JLabel iconoEnlace; private javax.swing.JLabel iconoFinalizar; private javax.swing.JLabel iconoLER; private javax.swing.JLabel iconoLERA; private javax.swing.JLabel iconoLSR; private javax.swing.JLabel iconoLSRA; private javax.swing.JLabel iconoPausar; private javax.swing.JLabel iconoReanudar; private javax.swing.JLabel iconoReceptor; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JScrollPane jScrollPane4; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JSlider mlsPorTic; private javax.swing.JTextField nombreAutor; private javax.swing.JTextField nombreEscenario; private javax.swing.JPanel panelAnalisis; private javax.swing.JPanel panelAnalisisSuperior; private javax.swing.JPanel panelBotonesDisenio; private javax.swing.JPanel panelBotonesSimulacion; private simMPLS.ui.simulator.JPanelDisenio panelDisenio; private javax.swing.JPanel panelDisenioSuperior; private javax.swing.JPanel panelFijo; private javax.swing.JPanel panelOpciones; private javax.swing.JPanel panelOpcionesSuperior; private javax.swing.JPanel panelSeleccionElemento; private simMPLS.ui.simulator.JSimulationPanel panelSimulacion; private javax.swing.JPanel panelSimulacionSuperior; private javax.swing.JSlider pasoNs; private javax.swing.JComboBox selectorElementoEstadisticas; // End of variables declaration//GEN-END:variables }