package com.fitbank.manual; import java.io.File; import java.io.IOException; import java.sql.SQLException; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.UIManager; import com.fitbank.util.Debug; import com.fitbank.util.SwingUtils; /** * Clase principal. * * @author FitBank CI */ public class Main extends javax.swing.JFrame { public Main() { initComponents(); SwingUtils.load(Main.class, formDirectory, resultsDirectory, dbURL, dbUser, dbPassword, dbTable, cliente, appURL, appUser, appPassword, generateHTML, takeScreenshots); update(); } // //GEN-BEGIN:initComponents private void initComponents() { javax.swing.JPanel dbPanel = new javax.swing.JPanel(); javax.swing.JLabel dbURLLabel = new javax.swing.JLabel(); dbURL = new javax.swing.JTextField(); javax.swing.JLabel dbUserLabel = new javax.swing.JLabel(); javax.swing.JLabel dbPasswordLabel = new javax.swing.JLabel(); dbPassword = new javax.swing.JPasswordField(); dbUser = new javax.swing.JTextField(); javax.swing.JLabel dbTableLabel = new javax.swing.JLabel(); dbTable = new javax.swing.JTextField(); javax.swing.JLabel clienteLabel = new javax.swing.JLabel(); cliente = new javax.swing.JTextField(); javax.swing.JPanel formsPanel = new javax.swing.JPanel(); formsLabel = new javax.swing.JLabel(); formDirectory = new javax.swing.JTextField(); formsBrowse = new javax.swing.JButton(); resultsLabel = new javax.swing.JLabel(); resultsDirectory = new javax.swing.JTextField(); resultsBrowse = new javax.swing.JButton(); javax.swing.JButton generate = new javax.swing.JButton(); appPanel = new javax.swing.JPanel(); appURLLabel = new javax.swing.JLabel(); appURL = new javax.swing.JTextField(); appUserLabel = new javax.swing.JLabel(); appUser = new javax.swing.JTextField(); appPasswordLabel = new javax.swing.JLabel(); appPassword = new javax.swing.JPasswordField(); javax.swing.JPanel jPanel1 = new javax.swing.JPanel(); generateHTML = new javax.swing.JCheckBox(); takeScreenshots = new javax.swing.JCheckBox(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { formWindowClosing(); } }); dbPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1), "Base de datos", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), UIManager.getDefaults().getColor("Label.foreground"))); // NOI18N dbURLLabel.setText("URL"); dbURL.setText("jdbc:oracle:thin:@192.168.1.7:1521:fitbank"); dbURL.setName("dbURL"); // NOI18N dbUserLabel.setText("Usuario"); dbPasswordLabel.setText("Clave"); dbPassword.setText("fitmanuales"); dbPassword.setName("dbPassword"); // NOI18N dbUser.setText("fitmanual"); dbUser.setName("dbUser"); // NOI18N dbTableLabel.setText("Tabla"); dbTable.setText("TTRANSACCIONDOCUMENTACION"); dbTable.setName("dbTable"); // NOI18N clienteLabel.setText("Cliente"); cliente.setText("BGP"); cliente.setName("cliente"); // NOI18N javax.swing.GroupLayout dbPanelLayout = new javax.swing.GroupLayout(dbPanel); dbPanel.setLayout(dbPanelLayout); dbPanelLayout.setHorizontalGroup( dbPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(dbPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(dbPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(dbURLLabel) .addComponent(dbUserLabel) .addComponent(dbPasswordLabel) .addComponent(dbTableLabel) .addComponent(clienteLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(dbPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(cliente, javax.swing.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE) .addComponent(dbPassword, javax.swing.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE) .addComponent(dbTable, javax.swing.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE) .addComponent(dbUser, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE) .addComponent(dbURL, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE))) ); dbPanelLayout.setVerticalGroup( dbPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(dbPanelLayout.createSequentialGroup() .addGroup(dbPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(dbURLLabel) .addComponent(dbURL, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(dbPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(dbUserLabel) .addComponent(dbUser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(dbPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(dbPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(dbPasswordLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(dbPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(dbTableLabel) .addComponent(dbTable, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(dbPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(clienteLabel) .addComponent(cliente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); formsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1), "Directorios", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), UIManager.getDefaults().getColor("Label.foreground"))); // NOI18N formsLabel.setText("Formularios:"); formDirectory.setName("formsDirectory"); // NOI18N formsBrowse.setText("Examinar..."); formsBrowse.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { formsBrowseActionPerformed(); } }); resultsLabel.setText("Resultado:"); resultsDirectory.setName("resultsDirectory"); // NOI18N resultsBrowse.setText("Examinar..."); resultsBrowse.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { resultsBrowseActionPerformed(); } }); javax.swing.GroupLayout formsPanelLayout = new javax.swing.GroupLayout(formsPanel); formsPanel.setLayout(formsPanelLayout); formsPanelLayout.setHorizontalGroup( formsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(formsPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(formsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(resultsLabel) .addComponent(formsLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(formsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(resultsDirectory, javax.swing.GroupLayout.DEFAULT_SIZE, 338, Short.MAX_VALUE) .addComponent(formDirectory, javax.swing.GroupLayout.DEFAULT_SIZE, 338, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(formsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(formsBrowse) .addComponent(resultsBrowse)) .addContainerGap()) ); formsPanelLayout.setVerticalGroup( formsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(formsPanelLayout.createSequentialGroup() .addGroup(formsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(formsLabel) .addComponent(formDirectory, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(formsBrowse)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(formsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(resultsLabel) .addComponent(resultsDirectory, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(resultsBrowse)) .addContainerGap()) ); generate.setText("Generar Manuales"); generate.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { generateActionPerformed(); } }); appPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1), "Aplicación", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), UIManager.getDefaults().getColor("Label.foreground"))); // NOI18N appURLLabel.setText("URL"); appURL.setText("http://127.0.0.1:8080/WEB"); appURL.setName("appURL"); // NOI18N appUserLabel.setText("Usuario"); appUser.setName("appUser"); // NOI18N appPasswordLabel.setText("Clave"); appPassword.setName("appPassword"); // NOI18N javax.swing.GroupLayout appPanelLayout = new javax.swing.GroupLayout(appPanel); appPanel.setLayout(appPanelLayout); appPanelLayout.setHorizontalGroup( appPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(appPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(appPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(appURLLabel) .addComponent(appUserLabel) .addComponent(appPasswordLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(appPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(appUser, javax.swing.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE) .addComponent(appURL, javax.swing.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE) .addComponent(appPassword, javax.swing.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE))) ); appPanelLayout.setVerticalGroup( appPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(appPanelLayout.createSequentialGroup() .addGroup(appPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(appURLLabel) .addComponent(appURL, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(appPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(appUserLabel) .addComponent(appUser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(appPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(appPasswordLabel) .addComponent(appPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1), "Opciones", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), UIManager.getDefaults().getColor("Label.foreground"))); // NOI18N generateHTML.setText("Generar manuales HTML"); generateHTML.setName("generateHTML"); // NOI18N generateHTML.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { generateHTMLActionPerformed(); } }); takeScreenshots.setText("Generar capturas de pantalla"); takeScreenshots.setName("takeScreenshots"); // NOI18N takeScreenshots.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { takeScreenshotsActionPerformed(); } }); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(generateHTML) .addComponent(takeScreenshots)) .addContainerGap(325, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(generateHTML) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(takeScreenshots)) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(formsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(dbPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(appPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(generate, javax.swing.GroupLayout.Alignment.TRAILING)) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(formsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(dbPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(appPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(generate) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pack(); }// //GEN-END:initComponents private void generateActionPerformed() {//GEN-FIRST:event_generateActionPerformed try { if (generateHTML.isSelected()) { GenerateHTMLManual.generate(new File(resultsDirectory.getText()), dbURL.getText(), dbUser.getText(), new String(dbPassword.getPassword()), dbTable.getText(), cliente.getText()); } if (takeScreenshots.isSelected()) { GenerateManual.generate(this, new File( resultsDirectory.getText()), formDirectory.getText(), appURL.getText(), appUser. getText(), new String(appPassword.getPassword())); } } catch (SQLException e) { Debug.error(e); JOptionPane.showMessageDialog(this, "Error de SQL al generar los manuales. Ver logs para más detalles."); } catch (IOException e) { Debug.error(e); JOptionPane.showMessageDialog(this, "Error de IO al generar los manuales. Ver logs para más detalles."); } }//GEN-LAST:event_generateActionPerformed private void formsBrowseActionPerformed() {//GEN-FIRST:event_formsBrowseActionPerformed JFileChooser jfc = new JFileChooser(); jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); jfc.setSelectedFile(new File(formDirectory.getText())); jfc.setDialogTitle("Directorio fuente"); if (jfc.showOpenDialog(null) != JFileChooser.APPROVE_OPTION) { return; } formDirectory.setText(jfc.getSelectedFile().getAbsolutePath()); }//GEN-LAST:event_formsBrowseActionPerformed private void formWindowClosing() {//GEN-FIRST:event_formWindowClosing SwingUtils.save(Main.class, formDirectory, resultsDirectory, dbURL, dbUser, dbPassword, dbTable, appURL, appUser, appPassword); }//GEN-LAST:event_formWindowClosing private void takeScreenshotsActionPerformed() {//GEN-FIRST:event_takeScreenshotsActionPerformed update(); }//GEN-LAST:event_takeScreenshotsActionPerformed private void generateHTMLActionPerformed() {//GEN-FIRST:event_generateHTMLActionPerformed update(); }//GEN-LAST:event_generateHTMLActionPerformed private void resultsBrowseActionPerformed() {//GEN-FIRST:event_resultsBrowseActionPerformed JFileChooser jfc = new JFileChooser(); jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); jfc.setSelectedFile(new File(resultsDirectory.getText())); jfc.setDialogTitle("Directorio destino"); if (jfc.showOpenDialog(null) != JFileChooser.APPROVE_OPTION) { return; } resultsDirectory.setText(jfc.getSelectedFile().getAbsolutePath()); }//GEN-LAST:event_resultsBrowseActionPerformed private void update() { File webapp = new File("src/main/webapp"); boolean local = webapp.exists(); boolean screenshots = takeScreenshots.isSelected(); formsLabel.setEnabled(screenshots); formDirectory.setEnabled(screenshots); formsBrowse.setEnabled(screenshots); resultsLabel.setEnabled(!local); resultsDirectory.setEnabled(!local); resultsBrowse.setEnabled(!local); if (local) { File output = new File("target/manuales"); output.mkdirs(); resultsDirectory.setText(output.getAbsolutePath()); } appURL.setEnabled(screenshots); appURLLabel.setEnabled(screenshots); appUser.setEnabled(screenshots); appUserLabel.setEnabled(screenshots); appPassword.setEnabled(screenshots); appPasswordLabel.setEnabled(screenshots); appPanel.setEnabled(screenshots); } public static void main(String args[]) throws Exception { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Main().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel appPanel; private javax.swing.JPasswordField appPassword; private javax.swing.JLabel appPasswordLabel; private javax.swing.JTextField appURL; private javax.swing.JLabel appURLLabel; private javax.swing.JTextField appUser; private javax.swing.JLabel appUserLabel; private javax.swing.JTextField cliente; private javax.swing.JPasswordField dbPassword; private javax.swing.JTextField dbTable; private javax.swing.JTextField dbURL; private javax.swing.JTextField dbUser; private javax.swing.JTextField formDirectory; private javax.swing.JButton formsBrowse; private javax.swing.JLabel formsLabel; private javax.swing.JCheckBox generateHTML; private javax.swing.JButton resultsBrowse; private javax.swing.JTextField resultsDirectory; private javax.swing.JLabel resultsLabel; private javax.swing.JCheckBox takeScreenshots; // End of variables declaration//GEN-END:variables }