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
}