/* * To change this template, choose Tools | Templates * and open the template in the editor. */ /* * AssStylesDialog.java * * Created on 27 mars 2011, 22:07:35 */ package feuille.karaoke.dialog; import java.awt.Font; import java.awt.Frame; import java.util.ArrayList; import java.util.List; import javax.swing.DefaultComboBoxModel; import javax.swing.DefaultListModel; import javax.swing.JOptionPane; import feuille.filter.SubtitleFilter; import feuille.karaoke.lib.AssIO; import feuille.karaoke.lib.AssStyle; import feuille.karaoke.lib.AssStyleCollection; import feuille.karaoke.lib.StylesPack; import feuille.lib.Language; /** * <p>This is a dialog for the choice of styles.<br /> * C'est une boîte de dialogue pour lme choix des styles.</p> * @author The Wingate 2940 */ public class AssStylesDialog extends javax.swing.JDialog { private ButtonPressed bp; private DefaultListModel dlmScript = null; private DefaultListModel dlmStored = null; private DefaultListModel dlmEmbedded = null; private DefaultComboBoxModel dcmStored = null; private List<StylesPack> listStylesPack = null; private Frame frame; private Language localeLanguage = feuille.MainFrame.getLanguage(); private String sCopyOf = "Copy of "; private String sError = "Error"; private String sConfirm = "Confirm"; private String sAborted = "Aborted"; private String sErrorMsg = "You cannot remove the Default package."; private String sConfirmMsg = "Do you really want to delete this package ?"; private String sAbortedMsg = "A package already uses the same name."; /** <p>A choice of state.<br />Un choix d'état.</p> */ public enum ButtonPressed{ NONE, OK_BUTTON, CANCEL_BUTTON; } /** <p>Creates new form AssStylesDialog.<br /> * Crée un nouveau formulaire AssStylesDialog.</p> */ public AssStylesDialog(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); init(); frame = parent; if(localeLanguage.getValueOf("titleASD2")!=null){setTitle(localeLanguage.getValueOf("titleASD2"));} if(localeLanguage.getValueOf("buttonClose")!=null){Close_Button.setText(localeLanguage.getValueOf("buttonClose"));} if(localeLanguage.getValueOf("labelStylesPack")!=null){lblPack.setText(localeLanguage.getValueOf("labelStylesPack"));} if(localeLanguage.getValueOf("labelStylesScript")!=null){lblScript.setText(localeLanguage.getValueOf("labelStylesScript"));} if(localeLanguage.getValueOf("labelStylesXFX")!=null){lblXFX.setText(localeLanguage.getValueOf("labelStylesXFX"));} if(localeLanguage.getValueOf("toolStylesAddPack")!=null){bNewSylesPack.setToolTipText(localeLanguage.getValueOf("toolStylesAddPack"));} if(localeLanguage.getValueOf("toolStylesDelPack")!=null){bRemoveSylesPack.setToolTipText(localeLanguage.getValueOf("toolStylesDelPack"));} if(localeLanguage.getValueOf("toolStylesStoScr")!=null){bStoredToScript.setToolTipText(localeLanguage.getValueOf("toolStylesStoScr"));} if(localeLanguage.getValueOf("toolStylesScrSto")!=null){bScriptToStored.setToolTipText(localeLanguage.getValueOf("toolStylesScrSto"));} if(localeLanguage.getValueOf("toolStylesAddSto")!=null){bAddStoredStyle.setToolTipText(localeLanguage.getValueOf("toolStylesAddSto"));} if(localeLanguage.getValueOf("toolStylesAddScr")!=null){bAddScriptStyle.setToolTipText(localeLanguage.getValueOf("toolStylesAddScr"));} if(localeLanguage.getValueOf("toolStylesEditSto")!=null){bEditStoredStyle.setToolTipText(localeLanguage.getValueOf("toolStylesEditSto"));} if(localeLanguage.getValueOf("toolStylesEditScr")!=null){bEditScriptStyle.setToolTipText(localeLanguage.getValueOf("toolStylesEditScr"));} if(localeLanguage.getValueOf("toolStylesCopySto")!=null){bCopyStoredStyle.setToolTipText(localeLanguage.getValueOf("toolStylesCopySto"));} if(localeLanguage.getValueOf("toolStylesCopyScr")!=null){bCopyScriptStyle.setToolTipText(localeLanguage.getValueOf("toolStylesCopyScr"));} if(localeLanguage.getValueOf("toolStylesRemSto")!=null){bRemoveStoredStyle.setToolTipText(localeLanguage.getValueOf("toolStylesRemSto"));} if(localeLanguage.getValueOf("toolStylesRemScr")!=null){bRemoveScriptStyle.setToolTipText(localeLanguage.getValueOf("toolStylesRemScr"));} if(localeLanguage.getValueOf("toolStylesEmbSto")!=null){bEmbeddedToStored.setToolTipText(localeLanguage.getValueOf("toolStylesEmbSto"));} if(localeLanguage.getValueOf("toolStylesEmbScr")!=null){bEmbeddedToScript.setToolTipText(localeLanguage.getValueOf("toolStylesEmbScr"));} if(localeLanguage.getValueOf("optpTitle1")!=null){sError = localeLanguage.getValueOf("optpTitle1");} if(localeLanguage.getValueOf("optpTitle2")!=null){sConfirm = localeLanguage.getValueOf("optpTitle2");} if(localeLanguage.getValueOf("optpTitle3")!=null){sAborted = localeLanguage.getValueOf("optpTitle3");} if(localeLanguage.getValueOf("optpMessage3")!=null){sErrorMsg = localeLanguage.getValueOf("optpMessage3");} if(localeLanguage.getValueOf("optpMessage4")!=null){sConfirmMsg = localeLanguage.getValueOf("optpMessage4");} if(localeLanguage.getValueOf("optpMessage5")!=null){sAbortedMsg = localeLanguage.getValueOf("optpMessage5");} if(localeLanguage.getValueOf("messCopyOf")!=null){sCopyOf = localeLanguage.getValueOf("messCopyOf");} if(localeLanguage.getValueOf("popmStyImp")!=null){popmImport.setText(localeLanguage.getValueOf("popmStyImp"));} if(localeLanguage.getValueOf("popmStyExp")!=null){popmExport.setText(localeLanguage.getValueOf("popmStyExp"));} if(localeLanguage.getValueOf("popmStyExp")!=null){popmExport2.setText(localeLanguage.getValueOf("popmStyExp"));} if(localeLanguage.getValueOf("buttonImport")!=null){btnImport.setText(localeLanguage.getValueOf("buttonImport"));} // setCommonFont(assfxmaker.AssFxMaker.getDefaultFont(), getContentPane().getComponents()); } /** 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() { popStyles1 = new javax.swing.JPopupMenu(); popmImport = new javax.swing.JMenuItem(); popmExport = new javax.swing.JMenuItem(); popStyles2 = new javax.swing.JPopupMenu(); popmExport2 = new javax.swing.JMenuItem(); fcStyles = new javax.swing.JFileChooser(); jScrollPane3 = new javax.swing.JScrollPane(); listScript = new javax.swing.JList(); bScriptToStored = new javax.swing.JButton(); lblScript = new javax.swing.JLabel(); lblPack = new javax.swing.JLabel(); lblXFX = new javax.swing.JLabel(); jScrollPane2 = new javax.swing.JScrollPane(); listEmbedded = new javax.swing.JList(); bEmbeddedToScript = new javax.swing.JButton(); bEmbeddedToStored = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); listStored = new javax.swing.JList(); cbStored = new javax.swing.JComboBox(); bStoredToScript = new javax.swing.JButton(); Close_Button = new javax.swing.JButton(); bRemoveScriptStyle = new javax.swing.JButton(); bRemoveSylesPack = new javax.swing.JButton(); bAddScriptStyle = new javax.swing.JButton(); bEditStoredStyle = new javax.swing.JButton(); bEditScriptStyle = new javax.swing.JButton(); bRemoveStoredStyle = new javax.swing.JButton(); bAddStoredStyle = new javax.swing.JButton(); bNewSylesPack = new javax.swing.JButton(); bCopyStoredStyle = new javax.swing.JButton(); bCopyScriptStyle = new javax.swing.JButton(); btnImport = new javax.swing.JButton(); popmImport.setText("Import from clipboard"); popStyles1.add(popmImport); popmExport.setText("Export to clipboard"); popStyles1.add(popmExport); popmExport2.setText("Export to clipboard"); popStyles2.add(popmExport2); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); getContentPane().setLayout(null); jScrollPane3.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); listScript.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); jScrollPane3.setViewportView(listScript); getContentPane().add(jScrollPane3); jScrollPane3.setBounds(290, 50, 200, 370); bScriptToStored.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_back.png"))); // NOI18N bScriptToStored.setToolTipText("Copy the selected style to package."); bScriptToStored.setFocusable(false); bScriptToStored.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); bScriptToStored.setPreferredSize(new java.awt.Dimension(30, 30)); bScriptToStored.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); bScriptToStored.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bScriptToStoredActionPerformed(evt); } }); getContentPane().add(bScriptToStored); bScriptToStored.setBounds(250, 70, 30, 30); lblScript.setText("Script :"); getContentPane().add(lblScript); lblScript.setBounds(290, 10, 200, 29); lblPack.setText("Packages :"); getContentPane().add(lblPack); lblPack.setBounds(10, 12, 190, 26); lblXFX.setText("From XFX :"); getContentPane().add(lblXFX); lblXFX.setBounds(10, 230, 190, 26); jScrollPane2.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); listEmbedded.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); jScrollPane2.setViewportView(listEmbedded); getContentPane().add(jScrollPane2); jScrollPane2.setBounds(10, 260, 190, 160); bEmbeddedToScript.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_forward.png"))); // NOI18N bEmbeddedToScript.setToolTipText("Copy the selected style to script."); bEmbeddedToScript.setFocusable(false); bEmbeddedToScript.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); bEmbeddedToScript.setPreferredSize(new java.awt.Dimension(30, 30)); bEmbeddedToScript.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); bEmbeddedToScript.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bEmbeddedToScriptActionPerformed(evt); } }); getContentPane().add(bEmbeddedToScript); bEmbeddedToScript.setBounds(210, 290, 30, 30); bEmbeddedToStored.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_up.png"))); // NOI18N bEmbeddedToStored.setToolTipText("Copy the selected style to package."); bEmbeddedToStored.setFocusable(false); bEmbeddedToStored.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); bEmbeddedToStored.setPreferredSize(new java.awt.Dimension(30, 30)); bEmbeddedToStored.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); bEmbeddedToStored.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bEmbeddedToStoredActionPerformed(evt); } }); getContentPane().add(bEmbeddedToStored); bEmbeddedToStored.setBounds(210, 260, 30, 30); jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); listStored.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); jScrollPane1.setViewportView(listStored); getContentPane().add(jScrollPane1); jScrollPane1.setBounds(10, 72, 190, 150); cbStored.setEditable(true); cbStored.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); cbStored.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cbStoredActionPerformed(evt); } }); getContentPane().add(cbStored); cbStored.setBounds(10, 46, 190, 20); bStoredToScript.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_forward.png"))); // NOI18N bStoredToScript.setToolTipText("Copy the selected style to script."); bStoredToScript.setFocusable(false); bStoredToScript.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); bStoredToScript.setPreferredSize(new java.awt.Dimension(30, 30)); bStoredToScript.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); bStoredToScript.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bStoredToScriptActionPerformed(evt); } }); getContentPane().add(bStoredToScript); bStoredToScript.setBounds(210, 70, 30, 30); Close_Button.setText("Close"); Close_Button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Close_ButtonActionPerformed(evt); } }); getContentPane().add(Close_Button); Close_Button.setBounds(380, 430, 110, 30); bRemoveScriptStyle.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_edit_remove.png"))); // NOI18N bRemoveScriptStyle.setToolTipText("Remove all selected styles of the script."); bRemoveScriptStyle.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bRemoveScriptStyleActionPerformed(evt); } }); getContentPane().add(bRemoveScriptStyle); bRemoveScriptStyle.setBounds(250, 190, 30, 30); bRemoveSylesPack.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_edit_remove2.png"))); // NOI18N bRemoveSylesPack.setToolTipText("Delete a package."); bRemoveSylesPack.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bRemoveSylesPackActionPerformed(evt); } }); getContentPane().add(bRemoveSylesPack); bRemoveSylesPack.setBounds(250, 40, 30, 30); bAddScriptStyle.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_edit_add.png"))); // NOI18N bAddScriptStyle.setToolTipText("Add a new style to the script."); bAddScriptStyle.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bAddScriptStyleActionPerformed(evt); } }); getContentPane().add(bAddScriptStyle); bAddScriptStyle.setBounds(250, 100, 30, 30); bEditStoredStyle.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_edit.png"))); // NOI18N bEditStoredStyle.setToolTipText("Edit the selected style of the package."); bEditStoredStyle.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bEditStoredStyleActionPerformed(evt); } }); getContentPane().add(bEditStoredStyle); bEditStoredStyle.setBounds(210, 130, 30, 30); bEditScriptStyle.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_edit.png"))); // NOI18N bEditScriptStyle.setToolTipText("Edit the selected style of the script."); bEditScriptStyle.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bEditScriptStyleActionPerformed(evt); } }); getContentPane().add(bEditScriptStyle); bEditScriptStyle.setBounds(250, 130, 30, 30); bRemoveStoredStyle.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_edit_remove.png"))); // NOI18N bRemoveStoredStyle.setToolTipText("Remove all selected styles of the package."); bRemoveStoredStyle.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bRemoveStoredStyleActionPerformed(evt); } }); getContentPane().add(bRemoveStoredStyle); bRemoveStoredStyle.setBounds(210, 190, 30, 30); bAddStoredStyle.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_edit_add.png"))); // NOI18N bAddStoredStyle.setToolTipText("Add a new style to the package."); bAddStoredStyle.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bAddStoredStyleActionPerformed(evt); } }); getContentPane().add(bAddStoredStyle); bAddStoredStyle.setBounds(210, 100, 30, 30); bNewSylesPack.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_edit_add2.png"))); // NOI18N bNewSylesPack.setToolTipText("Add a new package."); bNewSylesPack.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bNewSylesPackActionPerformed(evt); } }); getContentPane().add(bNewSylesPack); bNewSylesPack.setBounds(210, 40, 30, 30); bCopyStoredStyle.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_editcopy.png"))); // NOI18N bCopyStoredStyle.setToolTipText("Copy the selected style of the package."); bCopyStoredStyle.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bCopyStoredStyleActionPerformed(evt); } }); getContentPane().add(bCopyStoredStyle); bCopyStoredStyle.setBounds(210, 160, 30, 30); bCopyScriptStyle.setIcon(new javax.swing.ImageIcon(getClass().getResource("/feuille/images/20px-Crystal_Clear_action_editcopy.png"))); // NOI18N bCopyScriptStyle.setToolTipText("Copy the selected style of the script."); bCopyScriptStyle.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bCopyScriptStyleActionPerformed(evt); } }); getContentPane().add(bCopyScriptStyle); bCopyScriptStyle.setBounds(250, 160, 30, 30); btnImport.setText("Import..."); btnImport.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnImportActionPerformed(evt); } }); getContentPane().add(btnImport); btnImport.setBounds(260, 430, 110, 30); pack(); }// </editor-fold>//GEN-END:initComponents private void cbStoredActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbStoredActionPerformed if(dcmStored.getSize()!=0){ if(dcmStored.getSelectedItem() instanceof StylesPack){ StylesPack sp = (StylesPack)dcmStored.getSelectedItem(); dlmStored.clear(); for(AssStyle as : sp.getCollection().getMembers()){ dlmStored.addElement(as); } } } }//GEN-LAST:event_cbStoredActionPerformed private void Close_ButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Close_ButtonActionPerformed bp = ButtonPressed.OK_BUTTON; dispose(); }//GEN-LAST:event_Close_ButtonActionPerformed private void bNewSylesPackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bNewSylesPackActionPerformed StylesPack sp = new StylesPack(cbStored.getSelectedItem().toString(), new AssStyleCollection()); boolean exist = false; for(int i=0; i<dcmStored.getSize();i++){ if(dcmStored.getElementAt(i) instanceof StylesPack){ StylesPack sPack = (StylesPack)dcmStored.getElementAt(i); if(sPack.getPack().equalsIgnoreCase(sp.getPack())){ exist = true; } } } if(exist==false){ dcmStored.addElement(sp); }else{ JOptionPane.showMessageDialog(this,sAbortedMsg,sAborted, JOptionPane.INFORMATION_MESSAGE); } }//GEN-LAST:event_bNewSylesPackActionPerformed private void bRemoveSylesPackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bRemoveSylesPackActionPerformed if(dcmStored.getSelectedItem() instanceof StylesPack){ StylesPack sp = (StylesPack)dcmStored.getSelectedItem(); if(sp.getPack().equalsIgnoreCase("Default")){ JOptionPane.showMessageDialog(this,sErrorMsg,sError, JOptionPane.ERROR_MESSAGE); }else{ int z = JOptionPane.showConfirmDialog(this,sConfirmMsg,sConfirm, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if(z==JOptionPane.YES_OPTION){ dcmStored.removeElement(dcmStored.getSelectedItem()); } } } }//GEN-LAST:event_bRemoveSylesPackActionPerformed private void bAddStoredStyleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bAddStoredStyleActionPerformed AssStyleDialog asd = new AssStyleDialog(frame, true); asd.setLocationRelativeTo(null); AssStyle as = asd.showDialog(new AssStyle()); if(asd.isOkPressed()){ if(dcmStored.getSelectedItem() instanceof StylesPack){ StylesPack sp = (StylesPack)dcmStored.getSelectedItem(); AssStyleCollection asc = sp.getCollection(); asc.addMember(as.getName(), as); sp.setCollection(asc); dcmStored.removeElement(dcmStored.getSelectedItem()); dcmStored.addElement(sp); dcmStored.setSelectedItem(sp); } } }//GEN-LAST:event_bAddStoredStyleActionPerformed private void bEditStoredStyleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bEditStoredStyleActionPerformed AssStyleDialog asd = new AssStyleDialog(frame, true); asd.setLocationRelativeTo(null); AssStyle as = asd.showDialog((AssStyle)listStored.getSelectedValue()); if(asd.isOkPressed()){ if(dcmStored.getSelectedItem() instanceof StylesPack){ StylesPack sp = (StylesPack)dcmStored.getSelectedItem(); AssStyleCollection asc = sp.getCollection(); asc.changeMember(as.getName(), as); sp.setCollection(asc); dcmStored.removeElement(dcmStored.getSelectedItem()); dcmStored.addElement(sp); dcmStored.setSelectedItem(sp); } } }//GEN-LAST:event_bEditStoredStyleActionPerformed private void bCopyStoredStyleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bCopyStoredStyleActionPerformed AssStyleDialog asd = new AssStyleDialog(frame, true); asd.setLocationRelativeTo(null); AssStyle asOrg = (AssStyle)listStored.getSelectedValue(); AssStyle as = AssStyle.cloneAssStyle(asOrg); as.setName(sCopyOf+as.getName()); as = asd.showDialog(as); if(asd.isOkPressed()){ if(dcmStored.getSelectedItem() instanceof StylesPack){ StylesPack sp = (StylesPack)dcmStored.getSelectedItem(); AssStyleCollection asc = sp.getCollection(); asc.addMember(as.getName(), as); sp.setCollection(asc); dcmStored.removeElement(dcmStored.getSelectedItem()); dcmStored.addElement(sp); dcmStored.setSelectedItem(sp); } } }//GEN-LAST:event_bCopyStoredStyleActionPerformed private void bRemoveStoredStyleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bRemoveStoredStyleActionPerformed for(Object o : listStored.getSelectedValues()){ AssStyle as = (AssStyle)o; if(dcmStored.getSelectedItem() instanceof StylesPack){ StylesPack sp = (StylesPack)dcmStored.getSelectedItem(); AssStyleCollection asc = sp.getCollection(); asc.deleteMember(as.getName()); sp.setCollection(asc); dcmStored.removeElement(dcmStored.getSelectedItem()); dcmStored.addElement(sp); dcmStored.setSelectedItem(sp); } } }//GEN-LAST:event_bRemoveStoredStyleActionPerformed private void bAddScriptStyleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bAddScriptStyleActionPerformed AssStyleDialog asd = new AssStyleDialog(frame, true); asd.setLocationRelativeTo(null); AssStyle as = asd.showDialog(new AssStyle()); if(asd.isOkPressed()){ boolean exist = false; for(Object o : dlmScript.toArray()){ AssStyle ase = (AssStyle)o; if(as.getName().equals(ase.getName())){ exist = true; } } if(exist==false){ dlmScript.addElement(as); } } }//GEN-LAST:event_bAddScriptStyleActionPerformed private void bEditScriptStyleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bEditScriptStyleActionPerformed AssStyleDialog asd = new AssStyleDialog(frame, true); asd.setLocationRelativeTo(null); AssStyle as = (AssStyle)listScript.getSelectedValue(); String name = as.getName(); as = asd.showDialog(as); if(asd.isOkPressed()){ //Check if the name has been changed boolean exist = false; for(Object o : dlmScript.toArray()){ AssStyle ase = (AssStyle)o; if(ase.equals(as)==false){ if(as.getName().equals(ase.getName())){ exist = true; } } } //The name has been changed and a doubloon has been detected. //Then the name must be the initial name. if(exist==true){ as.setName(name); } } }//GEN-LAST:event_bEditScriptStyleActionPerformed private void bCopyScriptStyleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bCopyScriptStyleActionPerformed AssStyleDialog asd = new AssStyleDialog(frame, true); asd.setLocationRelativeTo(null); AssStyle asOrg = (AssStyle)listScript.getSelectedValue(); AssStyle as = AssStyle.cloneAssStyle(asOrg); as.setName(sCopyOf+as.getName()); as = asd.showDialog(as); if(asd.isOkPressed()){ boolean exist = false; for(Object o : dlmScript.toArray()){ AssStyle ase = (AssStyle)o; if(as.getName().equals(ase.getName())){ exist = true; } } if(exist==false){ dlmScript.addElement(as); } } }//GEN-LAST:event_bCopyScriptStyleActionPerformed private void bRemoveScriptStyleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bRemoveScriptStyleActionPerformed for(Object o : listScript.getSelectedValues()){ dlmScript.removeElement(o); } }//GEN-LAST:event_bRemoveScriptStyleActionPerformed private void bStoredToScriptActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bStoredToScriptActionPerformed for(Object object : listStored.getSelectedValues()){ AssStyle asOrg = (AssStyle)object; AssStyle as = AssStyle.cloneAssStyle(asOrg); boolean exist = false; for(Object o : dlmScript.toArray()){ AssStyle ase = (AssStyle)o; if(as.getName().equals(ase.getName())){ exist = true; } } if(exist==false){ dlmScript.addElement(as); } } }//GEN-LAST:event_bStoredToScriptActionPerformed private void bScriptToStoredActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bScriptToStoredActionPerformed for(Object object : listScript.getSelectedValues()){ AssStyle asOrg = (AssStyle)object; AssStyle as = AssStyle.cloneAssStyle(asOrg); if(dcmStored.getSelectedItem() instanceof StylesPack){ StylesPack sp = (StylesPack)dcmStored.getSelectedItem(); AssStyleCollection asc = sp.getCollection(); asc.addMember(as.getName(), as); sp.setCollection(asc); dcmStored.removeElement(dcmStored.getSelectedItem()); dcmStored.addElement(sp); dcmStored.setSelectedItem(sp); } } }//GEN-LAST:event_bScriptToStoredActionPerformed private void bEmbeddedToStoredActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bEmbeddedToStoredActionPerformed for(Object object : listEmbedded.getSelectedValues()){ AssStyle asOrg = (AssStyle)object; AssStyle as = AssStyle.cloneAssStyle(asOrg); if(dcmStored.getSelectedItem() instanceof StylesPack){ StylesPack sp = (StylesPack)dcmStored.getSelectedItem(); AssStyleCollection asc = sp.getCollection(); asc.addMember(as.getName(), as); sp.setCollection(asc); dcmStored.removeElement(dcmStored.getSelectedItem()); dcmStored.addElement(sp); dcmStored.setSelectedItem(sp); } } }//GEN-LAST:event_bEmbeddedToStoredActionPerformed private void bEmbeddedToScriptActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bEmbeddedToScriptActionPerformed for(Object object : listEmbedded.getSelectedValues()){ AssStyle asOrg = (AssStyle)object; AssStyle as = AssStyle.cloneAssStyle(asOrg); boolean exist = false; for(Object o : dlmScript.toArray()){ AssStyle ase = (AssStyle)o; if(as.getName().equals(ase.getName())){ exist = true; } } if(exist==false){ dlmScript.addElement(as); } } }//GEN-LAST:event_bEmbeddedToScriptActionPerformed private void btnImportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnImportActionPerformed // lAssStyle : Get list of all styles from files List<AssStyle> lAssStyle = new ArrayList<AssStyle>(); // las : Get list of all styles choosen by the user List<AssStyle> las = new ArrayList<AssStyle>(); // Clear the list of file filters. for (javax.swing.filechooser.FileFilter f : fcStyles.getChoosableFileFilters()){ fcStyles.removeChoosableFileFilter(f); } // Add good file filters. fcStyles.addChoosableFileFilter(new SubtitleFilter()); fcStyles.setAccessory(null); // Action int z = this.fcStyles.showOpenDialog(this); if (z == javax.swing.JFileChooser.APPROVE_OPTION){ // Search for styles in a SSA if(fcStyles.getSelectedFile().getName().endsWith("ssa")){ AssIO aio = new AssIO(); lAssStyle = aio.ExtractSSAStyles(fcStyles.getSelectedFile().getPath()); } // Search for styles in an ASS if(fcStyles.getSelectedFile().getName().endsWith("ass")){ AssIO aio = new AssIO(); lAssStyle = aio.ExtractASSStyles(fcStyles.getSelectedFile().getPath()); } // A new dialog for the choice of styles ImportStylesDialog isd = new ImportStylesDialog(frame, true); isd.setFilename(fcStyles.getSelectedFile().getName()); isd.setLocationRelativeTo(null); las = isd.showDialog(lAssStyle); if(las!=null){ for(AssStyle as : las){ boolean exist = false; for(int i=0;i<dlmScript.getSize();i++){ AssStyle asDlm = (AssStyle)dlmScript.getElementAt(i); if(asDlm.getName().equalsIgnoreCase(as.getName())){ exist = true; } } if(exist==false){ dlmScript.addElement(as); } } } } }//GEN-LAST:event_btnImportActionPerformed /** <p>Initialize the dialog.<br /> * Initialise la boîte de dialogue.</p> */ private void init(){ setSize(520,510); setTitle("Styles"); dlmScript = new DefaultListModel(); dlmStored = new DefaultListModel(); dlmEmbedded = new DefaultListModel(); dcmStored = new DefaultComboBoxModel(); listStylesPack = new ArrayList<StylesPack>(); listScript.setModel(dlmScript); listStored.setModel(dlmStored); listEmbedded.setModel(dlmEmbedded); cbStored.setModel(dcmStored); } /** <p>Show the dialog.<br />Ouvre la boîte de dialogue.</p> */ public void showDialog(){ setVisible(true); } /** <p>Set the script list.<br />Définit la liste du script.</p> */ public void setScriptList(AssStyleCollection asc){ for(AssStyle as : asc.getMembers()){ dlmScript.addElement(as); } } /** <p>Add an embedded style.<br />Ajoute un style embarqué.</p> */ public void addEmbeddedStyle(AssStyle as){ as.setName(as.getName().trim()); dlmEmbedded.addElement(as); } /** <p>Set the stored list.<br />Définit la liste du stockage.</p> */ public void setStoredList(List<StylesPack> lsp){ this.listStylesPack = lsp; for(StylesPack sp : lsp){ dcmStored.addElement(sp); } } /** <p>Get the script list.<br />Obtient la liste du script.</p> */ public AssStyleCollection getScriptList(){ AssStyleCollection newAsc = new AssStyleCollection(); for(Object o : dlmScript.toArray()){ if(o instanceof AssStyle){ AssStyle as = (AssStyle)o; newAsc.addMember(as.getName(), as); } } return newAsc; } /** <p>Get the stored list.<br />Obtient la liste du stockage.</p> */ public List<StylesPack> getStoredList(){ for(int i=0;i<dcmStored.getSize();i++){ Object o = dcmStored.getElementAt(i); if(o instanceof StylesPack){ StylesPack sp = (StylesPack)o; if(listStylesPack.contains(sp)==false){ listStylesPack.add(sp); } } } return listStylesPack; } private void setCommonFont(Font f, java.awt.Component[] comps){ for(java.awt.Component c : comps){ if (c instanceof javax.swing.JComponent){ javax.swing.JComponent jcomp = (javax.swing.JComponent)c; Font origin = jcomp.getFont(); if(origin.isPlain()){ jcomp.setFont(f); }else{ jcomp.setFont(f.deriveFont(origin.getStyle(), origin.getSize2D())); } setCommonFont(f, jcomp.getComponents()); } } } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { AssStylesDialog dialog = new AssStylesDialog(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 Close_Button; private javax.swing.JButton bAddScriptStyle; private javax.swing.JButton bAddStoredStyle; private javax.swing.JButton bCopyScriptStyle; private javax.swing.JButton bCopyStoredStyle; private javax.swing.JButton bEditScriptStyle; private javax.swing.JButton bEditStoredStyle; private javax.swing.JButton bEmbeddedToScript; private javax.swing.JButton bEmbeddedToStored; private javax.swing.JButton bNewSylesPack; private javax.swing.JButton bRemoveScriptStyle; private javax.swing.JButton bRemoveStoredStyle; private javax.swing.JButton bRemoveSylesPack; private javax.swing.JButton bScriptToStored; private javax.swing.JButton bStoredToScript; private javax.swing.JButton btnImport; private javax.swing.JComboBox cbStored; private javax.swing.JFileChooser fcStyles; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JLabel lblPack; private javax.swing.JLabel lblScript; private javax.swing.JLabel lblXFX; private javax.swing.JList listEmbedded; private javax.swing.JList listScript; private javax.swing.JList listStored; private javax.swing.JPopupMenu popStyles1; private javax.swing.JPopupMenu popStyles2; private javax.swing.JMenuItem popmExport; private javax.swing.JMenuItem popmExport2; private javax.swing.JMenuItem popmImport; // End of variables declaration//GEN-END:variables }