/* * To change this template, choose Tools | Templates * and open the template in the editor. */ /* * ImportStylesDialog.java * * Created on 4 avr. 2011, 23:34:31 */ package feuille.karaoke.dialog; import java.util.ArrayList; import java.util.List; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; import feuille.karaoke.lib.AssStyle; import feuille.lib.Language; /** * <p>This is a dialog for the choice of imported styles.<br /> * C'est une boîte de dialogue pour le choix de styles importés.</p> * @author The Wingate 2940 */ public class ImportStylesDialog extends javax.swing.JDialog { private ButtonPressed bp; private Language localeLanguage = feuille.MainFrame.getLanguage(); private List<AssStyle> lasImport; private List<AssStyle> lasExport; private DefaultTableModel dtm; private String filename = ""; public enum ButtonPressed{ NONE, OK_BUTTON, CANCEL_BUTTON; } /** <p>Creates new form ImportStylesDialog.<br /> * Crée un nouveau formulaire ImportStylesDialog.</p> */ public ImportStylesDialog(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); bp = ButtonPressed.NONE; lasImport = new ArrayList<AssStyle>(); lasExport = new ArrayList<AssStyle>(); String[] head = new String[]{"-", "Style"}; dtm = new DefaultTableModel(null, head){ Class[] types = new Class [] { java.lang.Boolean.class, java.lang.String.class}; boolean[] canEdit = new boolean [] { true, false}; @Override public Class getColumnClass(int columnIndex) {return types [columnIndex];} @Override public boolean isCellEditable(int rowIndex, int columnIndex) {return canEdit [columnIndex];} }; importTable.setModel(dtm); TableColumn column; for (int i = 0; i < 2; i++) { column = importTable.getColumnModel().getColumn(i); switch(i){ case 0: column.setPreferredWidth(20); break; //- case 1: column.setPreferredWidth(500); break; //Style } } //Force visibility setAlwaysOnTop(true); if(localeLanguage.getValueOf("titleASD3")!=null){setTitle(localeLanguage.getValueOf("titleASD3")+filename);} if(localeLanguage.getValueOf("buttonCancel")!=null){Cancel_Button.setText(localeLanguage.getValueOf("buttonCancel"));} if(localeLanguage.getValueOf("buttonOk")!=null){Ok_Button.setText(localeLanguage.getValueOf("buttonOk"));} if(localeLanguage.getValueOf("labelImportStyles")!=null){lblImport.setText(localeLanguage.getValueOf("labelImportStyles"));} for (int i = 0; i < 2; i++) { column = importTable.getColumnModel().getColumn(i); switch(i){ case 0: if(localeLanguage.getValueOf("tableImportStyles1")!=null){ column.setHeaderValue(localeLanguage.getValueOf("tableImportStyles1")); } break; case 1: if(localeLanguage.getValueOf("tableImportStyles2")!=null){ column.setHeaderValue(localeLanguage.getValueOf("tableImportStyles2")); } break; } } } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { lblImport = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); importTable = new javax.swing.JTable(); Cancel_Button = new javax.swing.JButton(); Ok_Button = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Styles"); lblImport.setText("Choose the styles you want to import in your script :"); jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); importTable.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { "Title 1", "Title 2", "Title 3", "Title 4" } )); jScrollPane1.setViewportView(importTable); Cancel_Button.setText("Cancel"); Cancel_Button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Cancel_ButtonActionPerformed(evt); } }); Ok_Button.setText("OK"); Ok_Button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Ok_ButtonActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup() .addComponent(Ok_Button, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Cancel_Button, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, 0, 0, Short.MAX_VALUE) .addComponent(lblImport, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 435, Short.MAX_VALUE)) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(lblImport) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 188, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(Cancel_Button) .addComponent(Ok_Button)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void Cancel_ButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Cancel_ButtonActionPerformed bp = ButtonPressed.CANCEL_BUTTON; dispose(); }//GEN-LAST:event_Cancel_ButtonActionPerformed private void Ok_ButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Ok_ButtonActionPerformed bp = ButtonPressed.OK_BUTTON; dispose(); }//GEN-LAST:event_Ok_ButtonActionPerformed /** <p>Show the dialog and wait for a list of ass style.<br /> * Montre la dialogue et attent une liste de style ass.</p> */ public List<AssStyle> showDialog(List<AssStyle> lasImport){ this.lasImport = lasImport; for(AssStyle as : lasImport){ Object[] o = {false,as}; dtm.addRow(o); } setVisible(true); if(bp==ButtonPressed.OK_BUTTON){ for(int i=0; i<importTable.getRowCount(); i++){ if((Boolean)dtm.getValueAt(i, 0)==true){ lasExport.add((AssStyle)dtm.getValueAt(i, 1)); } } return lasExport; }else{ return null; } } /** <p>Set the filename.<br />Définit le nom de fichier.</p> */ public void setFilename(String filename){ this.filename = filename; } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { ImportStylesDialog dialog = new ImportStylesDialog(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton Cancel_Button; private javax.swing.JButton Ok_Button; private javax.swing.JTable importTable; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JLabel lblImport; // End of variables declaration//GEN-END:variables }