/**
* Created : Mar 30, 2012
*
* @author pquiring
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javaforce.*;
import jffile.*;
public class AddAppWindow extends javax.swing.JFrame {
/**
* Creates new form AddAppWindow
*/
public AddAppWindow() {
initComponents();
}
/**
* 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() {
IconMenu = new javax.swing.JPopupMenu();
openItem = new javax.swing.JMenuItem();
jSeparator1 = new javax.swing.JPopupMenu.Separator();
props = new javax.swing.JMenuItem();
DesktopMenu = new javax.swing.JPopupMenu();
search = new javax.swing.JTextField();
panel = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
openItem.setText("Open");
openItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
openItemActionPerformed(evt);
}
});
IconMenu.add(openItem);
IconMenu.add(jSeparator1);
props.setText("Properties");
props.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
propsActionPerformed(evt);
}
});
IconMenu.add(props);
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Applications");
addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentResized(java.awt.event.ComponentEvent evt) {
formComponentResized(evt);
}
});
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosed(java.awt.event.WindowEvent evt) {
formWindowClosed(evt);
}
public void windowOpened(java.awt.event.WindowEvent evt) {
formWindowOpened(evt);
}
});
search.setToolTipText("Search");
search.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
searchKeyReleased(evt);
}
});
panel.setLayout(new java.awt.GridLayout(1, 1));
jLabel2.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/search.png"))); // NOI18N
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.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(search, javax.swing.GroupLayout.DEFAULT_SIZE, 472, Short.MAX_VALUE))
.addComponent(panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(search)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(panel, javax.swing.GroupLayout.DEFAULT_SIZE, 388, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void searchKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_searchKeyReleased
if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {dispose(); return;}
doSearch();
}//GEN-LAST:event_searchKeyReleased
private void openItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_openItemActionPerformed
try {
JMenuItem mi = (JMenuItem)evt.getSource();
JPopupMenu pm = (JPopupMenu)mi.getParent();
browser.invoke((JFileIcon)pm.getInvoker());
} catch (Exception e) {
JFLog.log(e);
}
}//GEN-LAST:event_openItemActionPerformed
private void propsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_propsActionPerformed
JMenuItem mi = (JMenuItem)evt.getSource();
JPopupMenu pm = (JPopupMenu)mi.getParent();
JFileIcon button = (JFileIcon)pm.getInvoker();
FileEntry entry = button.entry;
JFileProperties dialog = new JFileProperties(entry, false);
dialog.setVisible(true);
}//GEN-LAST:event_propsActionPerformed
private void formWindowOpened(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowOpened
browser = new JFileBrowser(JFileBrowser.VIEW_ICONS, "/usr/share/applications"
, DesktopMenu, IconMenu, null, -1
, false, "jfile", "jopen", Color.white, Color.black
, true, true, false, true, Dock.jbusClient, false, Dock.dock);
panel.add(browser);
revalidate();
browser.setFilter(".*[.]desktop");
}//GEN-LAST:event_formWindowOpened
private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed
Dock.dock.addAppDialogClosed();
}//GEN-LAST:event_formWindowClosed
private void formComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentResized
if (browser != null) {
try {
browser.refresh();
} catch (Throwable t) {
JFLog.log(t);
}
}
}//GEN-LAST:event_formComponentResized
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPopupMenu DesktopMenu;
private javax.swing.JPopupMenu IconMenu;
private javax.swing.JLabel jLabel2;
private javax.swing.JPopupMenu.Separator jSeparator1;
private javax.swing.JMenuItem openItem;
private javax.swing.JPanel panel;
private javax.swing.JMenuItem props;
private javax.swing.JTextField search;
// End of variables declaration//GEN-END:variables
public JFileBrowser browser;
private String clean(String in) {
char ca[] = in.toCharArray();
String out = "";
for(int a=0;a<ca.length;a++) {
char c = ca[a];
if (c >= '0' && c <= '9') {
out += c;
continue;
}
if (c >= 'a' && c <= 'z') {
out += c;
continue;
}
if (c >= 'A' && c <= 'Z') {
out += c;
continue;
}
}
return out;
}
public void doSearch() {
browser.setFilter(".*" + clean(search.getText()) + ".*[.]desktop");
}
}