import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import de.fhhof.crawler.model.ListURI;
public class EditWindow implements ActionListener {
/** */
private JFrame frame = new JFrame("Liste der URI's");
/** */
private JFrame mainFrame;
/** */
private Buttons buttons = new Buttons();
/** */
private ListURI listURI = new ListURI();
/** */
private JList<URL> list;
/**
*
*/
public EditWindow(JFrame mainFrame) {
this.mainFrame = mainFrame;
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.setLayout(new GridLayout(2, 1));
frame.setResizable(false);
frame.add(panelTop());
frame.add(panelBot());
frame.pack();
frame.setSize(new Dimension(300, 200));
frame.setAlwaysOnTop(true);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
buttons.getEditListAdd().addActionListener(this);
buttons.getEditListDel().addActionListener(this);
buttons.getEditListEdit().addActionListener(this);
buttons.getEditListReset().addActionListener(this);
buttons.getEditListOk().addActionListener(this);
}
/**
*
* @return
*/
private JPanel panelTop() {
JPanel panelTop = new JPanel();
panelTop.setLayout(new GridLayout(1, 0));
panelTop.add(new JScrollPane(initOutput()));
return panelTop;
}
/**
*
*/
private JList<URL> initOutput() {
URL[] listData = new URL[listURI.getListURI().size()];
for(int i = 0; i < listData.length; i++) {
listData[i] = listURI.getListURI().get(i);
}
list = new JList<URL>(listData);
list.setVisibleRowCount(10);
return list;
}
/**
*
* @return
*/
private JPanel panelBot() {
JPanel panelBot = new JPanel();
panelBot.setLayout(new GridLayout(1, 0));
panelBot.add(buttons.getEditListAdd());
panelBot.add(buttons.getEditListDel());
panelBot.add(buttons.getEditListOk());
return panelBot;
}
/**
*
*/
public void actionPerformed(ActionEvent e) {
if(e.getSource().equals(buttons.getEditListAdd())) {
String s = (String)JOptionPane.showInputDialog(frame, "Bitte geben Sie die URL ein:", "Hinzufügen", JOptionPane.PLAIN_MESSAGE);
if((s != null) && (s.length() > 0)) {
try {
listURI.getListURI().add(new URL(s));
listURI.writeFile();
} catch (MalformedURLException e1) {
JOptionPane.showMessageDialog(frame, "Die eingegebene URL hat das falsche Format!", "Fehler", JOptionPane.ERROR_MESSAGE);
}
}
} else if(e.getSource().equals(buttons.getEditListDel())) {
URL temp = list.getSelectedValue();
listURI.getListURI().remove(temp);
listURI.writeFile();
} else if(e.getSource().equals(buttons.getEditListOk())) {
this.mainFrame.setEnabled(true);
frame.setVisible(false);
}
}
// ************************************************************************************************************************************
/**
*
* @return
*/
public JFrame getFrame() {
return frame;
}
}