package ca.canucksoftware.themebuilder; import javax.swing.JFileChooser; import java.util.ArrayList; import net.iharder.dnd.*; import java.io.File; import java.util.List; public class BulkAdd extends javax.swing.JDialog { public File prevDir; public ArrayList<File> files; public String category; public String version; public String dest; public BulkAdd(java.awt.Frame parent, String currVersion, List<String> versions, String currCategory) { super(parent); initComponents(); files = new ArrayList<File>(); new FileDrop(jList1, new FileDrop.Listener() { public void filesDropped(File[] f ) { for(int i=0; i<f.length; i++) { files.add(f[i]); } updateList(); } // end filesDropped }); // end FileDrop.Listener for(int i=0; i<jComboBox1.getItemCount(); i++) { String cat = ((String) jComboBox1.getItemAt(i)).toLowerCase().replaceAll(" ", "_"); if(cat.equals(currCategory)) { jComboBox1.setSelectedIndex(i); break; } } version = currVersion; for(int i=0; i<versions.size(); i++) { jComboBox2.addItem("webOS " + versions.get(i)); } jComboBox2.setSelectedItem("webOS " + version); getContentPane().requestFocus(); } private String formatDest(String path) { String result = null; result = path.replace("\\", "/"); if(!result.startsWith("/")) result = "/" + result; if(!result.endsWith("/")) result = result + "/"; return result; } private void updateList(){ jList1.setListData(files.toArray()); } private File[] loadFileChooser() { JFileChooser fc = new JFileChooser(); //Create a file chooser if(prevDir!=null) fc.setCurrentDirectory(prevDir); fc.setAcceptAllFileFilterUsed(true); fc.setMultiSelectionEnabled(true); fc.setDialogTitle(""); if (fc.showDialog(null, "Select") == JFileChooser.APPROVE_OPTION) { prevDir = fc.getSelectedFile().getParentFile(); return fc.getSelectedFiles(); } else { return null; } } public void closeAddContent() { dispose(); } /** 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. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jLayeredPane1 = new javax.swing.JLayeredPane(); jLayeredPane2 = new javax.swing.JLayeredPane(); jScrollPane1 = new javax.swing.JScrollPane(); jList1 = new javax.swing.JList(); jLabel1 = new javax.swing.JLabel(); jComboBox1 = new javax.swing.JComboBox(); jComboBox2 = new javax.swing.JComboBox(); jButton3 = new javax.swing.JButton(); jLabel4 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jButton2 = new javax.swing.JButton(); jLabel3 = new javax.swing.JLabel(); jButton4 = new javax.swing.JButton(); jTextField1 = new javax.swing.JTextField(); jButton1 = new javax.swing.JButton(); jLabel5 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(ca.canucksoftware.themebuilder.WebOSThemeBuilderApp.class).getContext().getResourceMap(BulkAdd.class); setTitle(resourceMap.getString("title")); // NOI18N setBackground(resourceMap.getColor("transfer.background")); // NOI18N setForeground(resourceMap.getColor("transfer.foreground")); // NOI18N setIconImage(null); setModal(true); setName("transfer"); // NOI18N setResizable(false); addWindowListener(new java.awt.event.WindowAdapter() { public void windowActivated(java.awt.event.WindowEvent evt) { formWindowActivated(evt); } public void windowClosed(java.awt.event.WindowEvent evt) { formWindowClosed(evt); } public void windowOpened(java.awt.event.WindowEvent evt) { formWindowOpened(evt); } }); jLayeredPane1.setName("jLayeredPane1"); // NOI18N jLayeredPane2.setBorder(javax.swing.BorderFactory.createLineBorder(resourceMap.getColor("jLayeredPane2.border.lineColor"))); // NOI18N jLayeredPane2.setName("jLayeredPane2"); // NOI18N jScrollPane1.setName("jScrollPane1"); // NOI18N jList1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); jList1.setName("jList1"); // NOI18N jScrollPane1.setViewportView(jList1); jScrollPane1.setBounds(20, 160, 380, 310); jLayeredPane2.add(jScrollPane1, javax.swing.JLayeredPane.DEFAULT_LAYER); jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N jLabel1.setName("jLabel1"); // NOI18N jLabel1.setBounds(20, 0, 410, 60); jLayeredPane2.add(jLabel1, javax.swing.JLayeredPane.DEFAULT_LAYER); jComboBox1.setMaximumRowCount(12); jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "App Launcher", "Applications", "Boot Logo", "Enyo Widgets", "Exhibition", "Just Type", "Keyboard", "Lock Screen", "Quick Launcher", "Status Bar", "System Menus", "Wallpapers" })); jComboBox1.setName("jComboBox1"); // NOI18N jComboBox1.setBounds(140, 490, 180, 22); jLayeredPane2.add(jComboBox1, javax.swing.JLayeredPane.DEFAULT_LAYER); jComboBox2.setName("jComboBox2"); // NOI18N jComboBox2.setBounds(140, 520, 180, 22); jLayeredPane2.add(jComboBox2, javax.swing.JLayeredPane.DEFAULT_LAYER); jButton3.setFont(resourceMap.getFont("jButton3.font")); // NOI18N jButton3.setText(resourceMap.getString("jButton3.text")); // NOI18N jButton3.setName("jButton3"); // NOI18N jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jButton3.setBounds(260, 560, 79, 25); jLayeredPane2.add(jButton3, javax.swing.JLayeredPane.DEFAULT_LAYER); jLabel4.setFont(resourceMap.getFont("jLabel4.font")); // NOI18N jLabel4.setText(resourceMap.getString("jLabel4.text")); // NOI18N jLabel4.setName("jLabel4"); // NOI18N jLabel4.setBounds(30, 490, 110, 20); jLayeredPane2.add(jLabel4, javax.swing.JLayeredPane.DEFAULT_LAYER); jLabel2.setFont(resourceMap.getFont("jLabel2.font")); // NOI18N jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N jLabel2.setName("jLabel2"); // NOI18N jLabel2.setBounds(20, 60, 180, 20); jLayeredPane2.add(jLabel2, javax.swing.JLayeredPane.DEFAULT_LAYER); jButton2.setFont(resourceMap.getFont("jButton2.font")); // NOI18N jButton2.setText(resourceMap.getString("jButton2.text")); // NOI18N jButton2.setName("jButton2"); // NOI18N jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jButton2.setBounds(100, 560, 140, 25); jLayeredPane2.add(jButton2, javax.swing.JLayeredPane.DEFAULT_LAYER); jLabel3.setFont(resourceMap.getFont("jLabel3.font")); // NOI18N jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N jLabel3.setName("jLabel3"); // NOI18N jLabel3.setBounds(20, 130, 70, 20); jLayeredPane2.add(jLabel3, javax.swing.JLayeredPane.DEFAULT_LAYER); jButton4.setIcon(resourceMap.getIcon("jButton4.icon")); // NOI18N jButton4.setText(resourceMap.getString("jButton4.text")); // NOI18N jButton4.setName("jButton4"); // NOI18N jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); jButton4.setBounds(410, 220, 30, 30); jLayeredPane2.add(jButton4, javax.swing.JLayeredPane.DEFAULT_LAYER); jTextField1.setText(resourceMap.getString("jTextField1.text")); // NOI18N jTextField1.setName("jTextField1"); // NOI18N jTextField1.setBounds(20, 90, 410, 22); jLayeredPane2.add(jTextField1, javax.swing.JLayeredPane.DEFAULT_LAYER); jButton1.setIcon(resourceMap.getIcon("jButton1.icon")); // NOI18N jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N jButton1.setName("jButton1"); // NOI18N jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton1.setBounds(410, 170, 30, 30); jLayeredPane2.add(jButton1, javax.swing.JLayeredPane.DEFAULT_LAYER); jLabel5.setFont(resourceMap.getFont("jLabel5.font")); // NOI18N jLabel5.setText(resourceMap.getString("jLabel5.text")); // NOI18N jLabel5.setName("jLabel5"); // NOI18N jLabel5.setBounds(30, 520, 110, 20); jLayeredPane2.add(jLabel5, javax.swing.JLayeredPane.DEFAULT_LAYER); jLayeredPane2.setBounds(10, 10, 450, 600); jLayeredPane1.add(jLayeredPane2, javax.swing.JLayeredPane.DEFAULT_LAYER); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 468, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 619, javax.swing.GroupLayout.PREFERRED_SIZE) ); pack(); }// </editor-fold>//GEN-END:initComponents private void formWindowOpened(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowOpened }//GEN-LAST:event_formWindowOpened private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated }//GEN-LAST:event_formWindowActivated private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed }//GEN-LAST:event_formWindowClosed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed dest = formatDest(jTextField1.getText().trim()); if(dest.length()>1 && files.size()>0) { category = ((String) jComboBox1.getSelectedItem()).toLowerCase().replaceAll(" ", "_"); version = ((String) jComboBox2.getSelectedItem()).replace("webOS ", ""); closeAddContent(); } }//GEN-LAST:event_jButton2ActionPerformed private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed files = null; closeAddContent(); }//GEN-LAST:event_jButton3ActionPerformed private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed File[] tmp = loadFileChooser(); if(tmp!=null) { for(int i=0; i<tmp.length; i++) { files.add(tmp[i]); } updateList(); } getContentPane().requestFocus(); }//GEN-LAST:event_jButton1ActionPerformed private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed if(jList1.getSelectedIndex()!=-1) { files.remove(jList1.getSelectedIndex()); updateList(); } }//GEN-LAST:event_jButton4ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JComboBox jComboBox1; private javax.swing.JComboBox jComboBox2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLayeredPane jLayeredPane1; private javax.swing.JLayeredPane jLayeredPane2; private javax.swing.JList jList1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField jTextField1; // End of variables declaration//GEN-END:variables }