/*
* 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
}