package org.mindswap.swoop.utils.ui;
/**
* @author from PhotoStuff
*
*/
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.mindswap.swoop.SwoopFrame;
public class LaunchBar extends JFrame implements ActionListener, WindowListener
{
private static final Integer GOOGLE_IMAGE_SEARCH = new Integer(1);
private static final Integer SWOOGLE_DOC_SEARCH = new Integer(2);
private static final Integer SWOOGLE_TERMS_SEARCH = new Integer(3);
private static final Integer SWOOGLE_CLASS_SEARCH = new Integer(4);
private static final Integer SWOOGLE_PROPERTY_SEARCH = new Integer(5);
private SwoopFrame swoopHandler;
private JTextField mSearchText;
private JComboBox mServiceComboBox;
private JEditorPane resultPane;
private Font tahoma = new Font("Tahoma", Font.PLAIN, 11);
public LaunchBar(SwoopFrame handler)
{
swoopHandler = handler;
initGUI();
this.addWindowListener(this);
}
public void actionPerformed(ActionEvent ev)
{
Pair selected = (Pair)mServiceComboBox.getSelectedItem();
String searchString = mSearchText.getText();
Integer id = (Integer)selected.mSecond;
String url = null;
if (id.equals(GOOGLE_IMAGE_SEARCH))
{
searchString = searchString.replace(' ','+');
url = "http://images.google.com/images?q="+searchString+"&hl=en";
}
else if (id.equals(SWOOGLE_CLASS_SEARCH))
{
url = "http://pear.cs.umbc.edu/swoogle/modules.php?name=Swoogle_Search&file=termSearch&searchString="+searchString+"&start=1&searchClass=1";
}
else if (id.equals(SWOOGLE_PROPERTY_SEARCH))
{
url = "http://pear.cs.umbc.edu/swoogle/modules.php?name=Swoogle_Search&file=termSearch&searchString="+searchString+"&start=1&searchProperty=1";
}
else if (id.equals(SWOOGLE_DOC_SEARCH))
{
url = "http://pear.cs.umbc.edu/swoogle/modules.php?searchString="+searchString+"&start=1&total=-1&searchParam=&name=Swoogle_Search&file=searchDB";
}
else if (id.equals(SWOOGLE_TERMS_SEARCH))
{
url = "http://pear.cs.umbc.edu/swoogle/modules.php?name=Swoogle_Search&file=termSearch&searchString="+searchString+"&start=1&searchClass=1&searchProperty=1";
}
try {
url = new java.net.URL(url).toString();
BrowserControl.displayURL(url);
// resultPane.setPage(url);
// System.out.println(resultPane.getText());
} // try
catch (Exception ex) {
ex.printStackTrace();
}
}
private void initGUI()
{
Container content = this.getContentPane();
content.setLayout(new BorderLayout());
// create query panel
final JButton search = new JButton("Go");
search.setFont(tahoma);
search.addActionListener(this);
mSearchText = new JTextField();
KeyAdapter keyAdapter = new KeyAdapter() {
public void keyReleased(KeyEvent ev) {
if (ev.getKeyCode() == KeyEvent.VK_ENTER)
search.doClick();
}
};
addFocusListener(new FocusAdapter() {
public void focusGained(FocusEvent ev) {
mSearchText.requestFocus();
}
});
mSearchText.addKeyListener(keyAdapter);
search.addKeyListener(keyAdapter);
makeServiceComboBox();
JPanel queryPanel = new JPanel();
queryPanel.setLayout(new BorderLayout());
queryPanel.add(mServiceComboBox, "West");
queryPanel.add(mSearchText, "Center");
queryPanel.add(search, "East");
resultPane = new JEditorPane();
resultPane.setContentType("text/html");
resultPane.setEditable(false);
content.add(queryPanel, "Center");
// content.add(new JScrollPane(resultPane), "Center");
setTitle("Launch Bar");
setSize(400, 52);
setLocation(50,50);
setResizable(false);
}
private void makeServiceComboBox()
{
Vector list = new Vector();
list.addElement(new Pair("Swoogle Terms Search",SWOOGLE_TERMS_SEARCH));
list.addElement(new Pair("Swoogle Document Search",SWOOGLE_DOC_SEARCH));
list.addElement(new Pair("Swoogle Class Search",SWOOGLE_CLASS_SEARCH));
list.addElement(new Pair("Swoogle Property Search",SWOOGLE_PROPERTY_SEARCH));
list.addElement(new Pair("Google Image Search",GOOGLE_IMAGE_SEARCH));
mServiceComboBox = new JComboBox(list);
mServiceComboBox.setFont(tahoma);
}
public class Pair {
public Object mFirst;
public Object mSecond;
public Pair(Object f, Object s)
{
mFirst = f;
mSecond = s;
} // cons
public String toString() { return mFirst.toString(); }
}
public void windowOpened(WindowEvent arg0) {
}
public void windowClosing(WindowEvent arg0) {
swoopHandler.launchBarMenu.setSelected(false);
}
public void windowClosed(WindowEvent arg0) {
}
/* (non-Javadoc)
* @see java.awt.event.WindowListener#windowIconified(java.awt.event.WindowEvent)
*/
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see java.awt.event.WindowListener#windowDeiconified(java.awt.event.WindowEvent)
*/
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see java.awt.event.WindowListener#windowActivated(java.awt.event.WindowEvent)
*/
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see java.awt.event.WindowListener#windowDeactivated(java.awt.event.WindowEvent)
*/
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
}