Advertisement
Guest User

ABMCiudadCombinado

a guest
Apr 26th, 2011
239
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package ejemplo.jtable;
  2. import java.awt.BorderLayout;
  3.  
  4. import javax.swing.JOptionPane;
  5. import javax.swing.JPanel;
  6. import javax.swing.JFrame;
  7. import java.awt.Dimension;
  8. import javax.swing.JButton;
  9. import java.awt.Rectangle;
  10. import java.awt.Point;
  11. import java.awt.GridBagLayout;
  12. import javax.swing.JTextField;
  13. import javax.swing.JLabel;
  14.  
  15. import com.tutorialjava.bd.ControladorBD;
  16. import java.awt.Font;
  17. import javax.swing.JScrollPane;
  18. import javax.swing.JTable;
  19. import javax.swing.ListSelectionModel;
  20. import javax.swing.event.ListSelectionEvent;
  21. import javax.swing.event.ListSelectionListener;
  22. import javax.swing.table.DefaultTableModel;
  23.  
  24. public class ABMCiudadCombinado extends JFrame {
  25.  
  26.     private static final long serialVersionUID = 1L;
  27.     private JPanel jContentPane = null;
  28.     private JButton jPrimero = null;
  29.     private JButton jAnterior = null;
  30.     private JButton jSiguiente = null;
  31.     private JButton jUltimo = null;
  32.     private JPanel jPanel = null;
  33.     private JPanel jPanel1 = null;
  34.     private JTextField jCodigo = null;
  35.     private JTextField jDescripcion = null;
  36.     private JLabel jLabel = null;
  37.     private JLabel jLabel1 = null;
  38.     private JButton bNuevo = null;
  39.     private JButton bGuardar = null;
  40.     private JButton bModificar = null;
  41.     private JButton bEliminar = null;
  42.     private JButton bDeshacer = null;
  43.     private JScrollPane jScrollPane = null;
  44.     private JTable jTable = null;
  45.     private CiudadesJTableModel model = new CiudadesJTableModel();
  46.     /**
  47.      * This is the default constructor
  48.      */
  49.     public ABMCiudadCombinado() {
  50.         super();
  51.         initialize();
  52.     }
  53.  
  54.     /**
  55.      * This method initializes this
  56.      *
  57.      * @return void
  58.      */
  59.     private void initialize() {
  60.         this.setSize(650, 400);
  61.         this.setLocation(new Point(0, 0));
  62.         this.setContentPane(getJContentPane());
  63.         this.setTitle("Consulta de Ciudades");
  64.         getBDeshacer().doClick();
  65.     }
  66.  
  67.     /**
  68.      * This method initializes jContentPane
  69.      *
  70.      * @return javax.swing.JPanel
  71.      */
  72.     private JPanel getJContentPane() {
  73.         if (jContentPane == null) {
  74.             jContentPane = new JPanel();
  75.             jContentPane.setLayout(null);
  76.             jContentPane.add(getJPrimero(), null);
  77.             jContentPane.add(getJAnterior(), null);
  78.             jContentPane.add(getJSiguiente(), null);
  79.             jContentPane.add(getJUltimo(), null);
  80.             jContentPane.add(getJPanel(), null);
  81.             jContentPane.add(getJPanel1(), null);
  82.             jContentPane.add(getBNuevo(), null);
  83.             jContentPane.add(getBGuardar(), null);
  84.             jContentPane.add(getBModificar(), null);
  85.             jContentPane.add(getBEliminar(), null);
  86.             jContentPane.add(getBDeshacer(), null);
  87.             jContentPane.add(getJScrollPane(), null);
  88.         }
  89.         return jContentPane;
  90.     }
  91.  
  92.     /**
  93.      * This method initializes jPrimero
  94.      *  
  95.      * @return javax.swing.JButton 
  96.      */
  97.     private JButton getJPrimero() {
  98.         if (jPrimero == null) {
  99.             jPrimero = new JButton();
  100.             jPrimero.setText("<<");
  101.             jPrimero.setSize(new Dimension(54, 25));
  102.             jPrimero.setLocation(new Point(540, 13));
  103.             jPrimero.addActionListener(new java.awt.event.ActionListener() {
  104.                 public void actionPerformed(java.awt.event.ActionEvent e) {
  105.                     //System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
  106.                     String Sql = "SELECT * FROM Ciudades ORDER BY ciu_codigo LIMIT 0,1";
  107.                     try {
  108.                         ControladorBD.addSql(Sql);
  109.                         ControladorBD.execute();
  110.                         if(ControladorBD.finRecordSet()) {
  111.                             getJCodigo().setText(ControladorBD.getInt("ciu_codigo").toString() );
  112.                             getJDescripcion().setText(ControladorBD.getString("ciu_descripcion") );
  113.                            
  114.                         }
  115.                         actualizarJTable();
  116.                     } catch (Exception e2) {
  117.                         // TODO: handle exception
  118.                         JOptionPane.showMessageDialog(null, "Ocurrio un error en la BD" + e2.getMessage());
  119.                         e2.printStackTrace();
  120.                     }
  121.                 }
  122.             });
  123.         }
  124.         return jPrimero;
  125.     }
  126.  
  127.     /**
  128.      * This method initializes jAnterior   
  129.      *  
  130.      * @return javax.swing.JButton 
  131.      */
  132.     private JButton getJAnterior() {
  133.         if (jAnterior == null) {
  134.             jAnterior = new JButton();
  135.             jAnterior.setText("<");
  136.             jAnterior.setSize(new Dimension(54, 25));
  137.             jAnterior.setLocation(new Point(540, 58));
  138.             jAnterior.addActionListener(new java.awt.event.ActionListener() {
  139.                 public void actionPerformed(java.awt.event.ActionEvent e) {
  140.                     //System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
  141.                     Integer cdActual = Integer.parseInt(getJCodigo().getText());
  142.                     String Sql = "SELECT * FROM Ciudades WHERE ciu_codigo < " + cdActual +
  143.                         " ORDER BY ciu_codigo DESC LIMIT 0,1";
  144.                     try {
  145.                         ControladorBD.addSql(Sql);
  146.                         ControladorBD.execute();
  147.                         if(ControladorBD.finRecordSet()) {
  148.                             getJCodigo().setText(ControladorBD.getInt("ciu_codigo").toString() );
  149.                             getJDescripcion().setText(ControladorBD.getString("ciu_descripcion") );
  150.                            
  151.                         }
  152.                         actualizarJTable();
  153.                     } catch (Exception e2) {
  154.                         // TODO: handle exception
  155.                         JOptionPane.showMessageDialog(null, "Ocurrio un error en la BD" + e2.getMessage());
  156.                         e2.printStackTrace();
  157.                     }
  158.                 }
  159.             });
  160.         }
  161.         return jAnterior;
  162.     }
  163.  
  164.     /**
  165.      * This method initializes jSiguiente  
  166.      *  
  167.      * @return javax.swing.JButton 
  168.      */
  169.     private JButton getJSiguiente() {
  170.         if (jSiguiente == null) {
  171.             jSiguiente = new JButton();
  172.             jSiguiente.setText(">");
  173.             jSiguiente.setSize(new Dimension(54, 25));
  174.             jSiguiente.setLocation(new Point(542, 102));
  175.             jSiguiente.addActionListener(new java.awt.event.ActionListener() {
  176.                 public void actionPerformed(java.awt.event.ActionEvent e) {
  177.                     //System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
  178.                     Integer cdActual = Integer.parseInt(getJCodigo().getText());
  179.                     String Sql = "SELECT * FROM Ciudades WHERE ciu_codigo > " + cdActual +
  180.                         " ORDER BY ciu_codigo ASC LIMIT 0,1";
  181.                     try {
  182.                         ControladorBD.addSql(Sql);
  183.                         ControladorBD.execute();
  184.                         if(ControladorBD.finRecordSet()) {
  185.                             getJCodigo().setText(ControladorBD.getInt("ciu_codigo").toString() );
  186.                             getJDescripcion().setText(ControladorBD.getString("ciu_descripcion") );
  187.                            
  188.                         }
  189.                         actualizarJTable();
  190.                     } catch (Exception e2) {
  191.                         // TODO: handle exception
  192.                         JOptionPane.showMessageDialog(null, "Ocurrio un error en la BD" + e2.getMessage());
  193.                         e2.printStackTrace();
  194.                     }
  195.                 }
  196.             });
  197.         }
  198.         return jSiguiente;
  199.     }
  200.  
  201.     /**
  202.      * This method initializes jUltimo 
  203.      *  
  204.      * @return javax.swing.JButton 
  205.      */
  206.     private JButton getJUltimo() {
  207.         if (jUltimo == null) {
  208.             jUltimo = new JButton();
  209.             jUltimo.setText(">>");
  210.             jUltimo.setLocation(new Point(541, 148));
  211.             jUltimo.setSize(new Dimension(54, 25));
  212.             jUltimo.addActionListener(new java.awt.event.ActionListener() {
  213.                 public void actionPerformed(java.awt.event.ActionEvent e) {
  214.                     System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
  215.                     Integer cdActual = Integer.parseInt(getJCodigo().getText());
  216.                     String Sql = "SELECT * FROM Ciudades WHERE ciu_codigo > " + cdActual +
  217.                         " ORDER BY ciu_codigo DESC LIMIT 0,1";
  218.                     try {
  219.                         ControladorBD.addSql(Sql);
  220.                         ControladorBD.execute();
  221.                         if(ControladorBD.finRecordSet()) {
  222.                             getJCodigo().setText(ControladorBD.getInt("ciu_codigo").toString() );
  223.                             getJDescripcion().setText(ControladorBD.getString("ciu_descripcion") );
  224.                            
  225.                         }
  226.                         actualizarJTable();
  227.                     } catch (Exception e2) {
  228.                         // TODO: handle exception
  229.                         JOptionPane.showMessageDialog(null, "Ocurrio un error en la BD" + e2.getMessage());
  230.                         e2.printStackTrace();
  231.                     }
  232.                 }
  233.             });
  234.         }
  235.         return jUltimo;
  236.     }
  237.  
  238.     /**
  239.      * This method initializes jPanel  
  240.      *  
  241.      * @return javax.swing.JPanel  
  242.      */
  243.     private JPanel getJPanel() {
  244.         if (jPanel == null) {
  245.             jLabel = new JLabel();
  246.             jLabel.setBounds(new Rectangle(32, 17, 66, 15));
  247.             jLabel.setText("Codigo");
  248.             jPanel = new JPanel();
  249.             jPanel.setLayout(null);
  250.             jPanel.setLocation(new Point(173, 43));
  251.             jPanel.setSize(new Dimension(352, 45));
  252.             jPanel.add(getJCodigo(), null);
  253.             jPanel.add(jLabel, null);
  254.         }
  255.         return jPanel;
  256.     }
  257.  
  258.     /**
  259.      * This method initializes jPanel1 
  260.      *  
  261.      * @return javax.swing.JPanel  
  262.      */
  263.     private JPanel getJPanel1() {
  264.         if (jPanel1 == null) {
  265.             jLabel1 = new JLabel();
  266.             jLabel1.setBounds(new Rectangle(30, 13, 77, 18));
  267.             jLabel1.setText("Descripcion");
  268.             jPanel1 = new JPanel();
  269.             jPanel1.setLayout(null);
  270.             jPanel1.setLocation(new Point(173, 100));
  271.             jPanel1.setSize(new Dimension(352, 45));
  272.             jPanel1.add(getJDescripcion(), null);
  273.             jPanel1.add(jLabel1, null);
  274.         }
  275.         return jPanel1;
  276.     }
  277.  
  278.     /**
  279.      * This method initializes jCodigo 
  280.      *  
  281.      * @return javax.swing.JTextField  
  282.      */
  283.     private JTextField getJCodigo() {
  284.         if (jCodigo == null) {
  285.             jCodigo = new JTextField();
  286.             jCodigo.setLocation(new Point(121, 14));
  287.             jCodigo.setText("0");
  288.             jCodigo.setSize(new Dimension(62, 20));
  289.             jCodigo.addFocusListener(new java.awt.event.FocusAdapter() {
  290.                 public void focusLost(java.awt.event.FocusEvent e) {
  291.                     System.out.println("focusLost()"); // TODO Auto-generated Event stub focusLost()
  292.                     Integer cdActual = Integer.parseInt(getJCodigo().getText());
  293.                     String Sql = "SELECT * FROM Ciudades WHERE ciu_codigo = " + cdActual +
  294.                         " ORDER BY ciu_codigo DESC LIMIT 0,1";
  295.                     try {
  296.                         ControladorBD.addSql(Sql);
  297.                         ControladorBD.execute();
  298.                         if(ControladorBD.finRecordSet()) {
  299.                             getJCodigo().setText(ControladorBD.getInt("ciu_codigo").toString() );
  300.                             getJDescripcion().setText(ControladorBD.getString("ciu_descripcion") );
  301.                            
  302.                         }
  303.                         actualizarJTable();
  304.                     } catch (Exception e2) {
  305.                         // TODO: handle exception
  306.                         JOptionPane.showMessageDialog(null, "Ocurrio un error en la BD" + e2.getMessage());
  307.                         e2.printStackTrace();
  308.                     }
  309.                 }
  310.             });
  311.         }
  312.         return jCodigo;
  313.     }
  314.  
  315.     /**
  316.      * This method initializes jDescripcion
  317.      *  
  318.      * @return javax.swing.JTextField  
  319.      */
  320.     private JTextField getJDescripcion() {
  321.         if (jDescripcion == null) {
  322.             jDescripcion = new JTextField();
  323.             jDescripcion.setSize(new Dimension(215, 20));
  324.             jDescripcion.setEnabled(false);
  325.             jDescripcion.setLocation(new Point(121, 16));
  326.         }
  327.         return jDescripcion;
  328.     }
  329.  
  330.     /**
  331.      * This method initializes bNuevo  
  332.      *  
  333.      * @return javax.swing.JButton 
  334.      */
  335.     private JButton getBNuevo() {
  336.         if (bNuevo == null) {
  337.             bNuevo = new JButton();
  338.             bNuevo.setLocation(new Point(13, 230));
  339.             bNuevo.setText("Nuevo");
  340.             bNuevo.setFont(new Font("Dialog", Font.BOLD, 10));
  341.             bNuevo.setSize(new Dimension(97, 25));
  342.             bNuevo.addActionListener(new java.awt.event.ActionListener() {
  343.                 public void actionPerformed(java.awt.event.ActionEvent e) {
  344.                     System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
  345.                     LimpiarTabla();
  346.                     setEstadoEdicion(true);
  347.                     try {
  348.                         Integer ultimoCodigo = ControladorBD.maximoValorCampo("Ciudades", "ciu_codigo");
  349.                         getJCodigo().setText((ultimoCodigo + 1) + "");
  350.                        
  351.                     } catch (Exception e2) {
  352.                         // TODO: handle exception
  353.                     }
  354.                     getJDescripcion().setRequestFocusEnabled(true);
  355.                 }
  356.             });
  357.         }
  358.         return bNuevo;
  359.     }
  360.  
  361.     /**
  362.      * This method initializes bGuardar
  363.      *  
  364.      * @return javax.swing.JButton 
  365.      */
  366.     private JButton getBGuardar() {
  367.         if (bGuardar == null) {
  368.             bGuardar = new JButton();
  369.             bGuardar.setLocation(new Point(135, 230));
  370.             bGuardar.setText("Guardar");
  371.             bGuardar.setFont(new Font("Dialog", Font.BOLD, 10));
  372.             bGuardar.setSize(new Dimension(97, 25));
  373.             bGuardar.addActionListener(new java.awt.event.ActionListener() {
  374.                 public void actionPerformed(java.awt.event.ActionEvent e) {
  375.                     //System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
  376.                     try {
  377.                         Integer cod = Integer.parseInt(getJCodigo().getText());
  378.                         Integer codBuscado = (Integer) ControladorBD.buscarCampo("Ciudades", "ciu_codigo", cod, "ciu_codigo");
  379.                         String sql = "";
  380.                         String descripcion = getJDescripcion().getText();
  381.                         if (codBuscado == null){
  382.                             sql = "INSERT INTO Ciudades (ciu_codigo,ciu_descripcion) VALUES (" + cod +", '" +descripcion + "')";
  383.                         }else {
  384.                             sql ="UPDATE Ciudades SET ciu_descripcion= '" + descripcion +"' WHERE ciu_codigo = " + cod;
  385.                         }
  386.                         ControladorBD.addSql(sql);
  387.                         ControladorBD.execute();
  388.                         getBDeshacer().doClick();
  389.  
  390.                         }
  391.  
  392.                    
  393.                     catch (Exception e2) {
  394.                         // TODO: handle exception
  395.                         JOptionPane.showMessageDialog(null, "Ocurrio un error en la BD" + e2.getMessage());
  396.                         e2.printStackTrace();
  397.                     }
  398.  
  399.  
  400.                    
  401.                 }
  402.             });
  403.         }
  404.         return bGuardar;
  405.     }
  406.  
  407.     /**
  408.      * This method initializes bModificar  
  409.      *  
  410.      * @return javax.swing.JButton 
  411.      */
  412.     private JButton getBModificar() {
  413.         if (bModificar == null) {
  414.             bModificar = new JButton();
  415.             bModificar.setLocation(new Point(257, 230));
  416.             bModificar.setText("Editar");
  417.             bModificar.setSize(new Dimension(97, 25));
  418.             bModificar.addActionListener(new java.awt.event.ActionListener() {
  419.                 public void actionPerformed(java.awt.event.ActionEvent e) {
  420.                     //System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
  421.                     setEstadoEdicion(true);
  422.                     getJDescripcion().setRequestFocusEnabled(true);
  423.                 }
  424.             });
  425.         }
  426.         return bModificar;
  427.     }
  428.  
  429.     /**
  430.      * This method initializes bEliminar   
  431.      *  
  432.      * @return javax.swing.JButton 
  433.      */
  434.     private JButton getBEliminar() {
  435.         if (bEliminar == null) {
  436.             bEliminar = new JButton();
  437.             bEliminar.setLocation(new Point(379, 230));
  438.             bEliminar.setText("Borrar");
  439.             bEliminar.setSize(new Dimension(97, 25));
  440.             bEliminar.addActionListener(new java.awt.event.ActionListener() {
  441.                 public void actionPerformed(java.awt.event.ActionEvent e) {
  442.                     //System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
  443.                     try {
  444.                         Integer cod = Integer.parseInt(getJCodigo().getText());
  445.                         String sql = "DELETE FROM Ciudades WHERE ciu_codigo =" + cod;
  446.                         ControladorBD.addSql(sql);
  447.                         ControladorBD.execute();
  448.                     } catch (Exception e2) {
  449.                         // TODO: handle exception
  450.                         JOptionPane.showMessageDialog(null, "Ocurrio un error en la BD" + e2.getMessage());
  451.                         e2.printStackTrace();
  452.                     }
  453.                     setEstadoEdicion(false);
  454.                     getJAnterior().doClick();
  455.                 }
  456.             });
  457.         }
  458.         return bEliminar;
  459.     }
  460.  
  461.     /**
  462.      * This method initializes bDeshacer   
  463.      *  
  464.      * @return javax.swing.JButton 
  465.      */
  466.     private JButton getBDeshacer() {
  467.         if (bDeshacer == null) {
  468.             bDeshacer = new JButton();
  469.             bDeshacer.setLocation(new Point(501, 230));
  470.             bDeshacer.setText("Deshacer");
  471.             bDeshacer.setSize(new Dimension(97, 25));
  472.             bDeshacer.addActionListener(new java.awt.event.ActionListener() {
  473.                 public void actionPerformed(java.awt.event.ActionEvent e) {
  474.                     //System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
  475.                    
  476.                     setEstadoEdicion(false);
  477.                     getJAnterior().doClick();
  478.                 }
  479.             });
  480.         }
  481.         return bDeshacer;
  482.     }
  483.    
  484.     public void setEstadoEdicion(boolean isEdicion ) {
  485.         getJCodigo().setEnabled(! isEdicion);
  486.         getJDescripcion().setEnabled(isEdicion);
  487.         getJPrimero().setEnabled(! isEdicion);
  488.         getJAnterior().setEnabled(! isEdicion);
  489.         getJSiguiente().setEnabled(! isEdicion);
  490.         getJUltimo().setEnabled(! isEdicion);
  491.        
  492.         getBNuevo().setEnabled(! isEdicion);
  493.         getBGuardar().setEnabled( isEdicion);
  494.         getBModificar().setEnabled(! isEdicion);
  495.         getBEliminar().setEnabled(! isEdicion);
  496.         getBDeshacer().setEnabled(isEdicion);
  497.        
  498.     }
  499.  
  500.     /**
  501.      * This method initializes jScrollPane 
  502.      *  
  503.      * @return javax.swing.JScrollPane 
  504.      */
  505.     private JScrollPane getJScrollPane() {
  506.         if (jScrollPane == null) {
  507.             jScrollPane = new JScrollPane();
  508.             jScrollPane.setBounds(new Rectangle(8, 27, 159, 179));
  509.             jScrollPane.setViewportView(getJTable());
  510.         }
  511.         return jScrollPane;
  512.     }
  513.  
  514.     /**
  515.      * This method initializes jTable  
  516.      *  
  517.      * @return javax.swing.JTable  
  518.      */
  519.     private JTable getJTable() {
  520.         if (jTable == null) {
  521.             jTable = new JTable();
  522.             jTable.setAutoCreateColumnsFromModel(true);
  523.             jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  524.             jTable.setModel(model);
  525.  
  526.             Datos();
  527.             jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
  528.                
  529.                 @Override
  530.                 public void valueChanged(ListSelectionEvent e) {
  531.                     // TODO Auto-generated method stub
  532.                     ActualizarTextBoxes();
  533.                    
  534.                 }
  535.             });
  536.            
  537.         }
  538.  
  539.         return jTable;
  540.     }
  541.     private void Datos() {
  542.         String sql = "SELECT * FROM Ciudades";
  543.         try {
  544.             ControladorBD.addSql(sql);
  545.             ControladorBD.execute();
  546.             while(ControladorBD.finRecordSet()){
  547.                 String[] registro = {
  548.                     ControladorBD.getInt("ciu_codigo").toString(),
  549.                     ControladorBD.getString("ciu_descripcion") };
  550.                 model.ciudades.add(registro);
  551.             }
  552.            
  553.         }
  554.         catch (Exception e){
  555.            
  556.             }
  557.         }
  558.     private void actualizarJTable(){
  559.         String codigoActual = getJCodigo().getText();
  560.         Integer resultado = -1;
  561.         for (int i=0; i< model.ciudades.size(); i++) {
  562.             if(model.ciudades.get(i)[0].equals(codigoActual)){
  563.                 resultado = i;
  564.             }
  565.         }
  566.         getJTable().getSelectionModel().setSelectionInterval(resultado, resultado);
  567.     }
  568.     public void ActualizarTextBoxes(){
  569.         int indice = jTable.getSelectedRow();
  570.         System.out.println(indice);
  571.         Integer codigo = Integer.parseInt(model.ciudades.get(indice)[0]);
  572.         String sql = "SELECT * FROM Ciudades WHERE ciu_codigo =" + codigo;
  573.         try {
  574.             ControladorBD.addSql(sql);
  575.             ControladorBD.execute();
  576.             if(ControladorBD.finRecordSet()){
  577.                 getJCodigo().setText(ControladorBD.getInt("ciu_codigo").toString() );
  578.                 getJDescripcion().setText(ControladorBD.getString("ciu_descripcion") );
  579.             }
  580.         } catch (Exception e) {
  581.             // TODO: handle exception
  582.             JOptionPane.showMessageDialog(null, "Ocurrio un error en la BD" + e.getMessage());
  583.             e.printStackTrace();
  584.         }
  585.     }
  586.     public void LimpiarTabla() {
  587.         while(jTable.getRowCount()>0){
  588.             ((DefaultTableModel)jTable.getModel()).removeRow(0);
  589.         }
  590.     }
  591.  
  592.  
  593. }  //  @jve:decl-index=0:visual-constraint="10,10"
Advertisement
RAW Paste Data Copied
Advertisement