This should help ....
class FileChangeEventManager extends Thread
{
List<FileChangeEventListener> lst = new ArrayList<FileChangeEventListener>();
List<String> lstFiles = new ArrayList<String>();
public void fileToMonitor(String file)
{
lstFiles.add(file);
}
public void addListener()
{
// add to list
}
public void removeListener()
{
// add to list
}
public void run()
{
while(true)
{
try
{
Thread.sleep(2000);
}
catch(InterruptedException e)
{
}
// if filechanged
{
/*
* 1. create file change event object
* 2. set filename
* 3. loop through all the listener
* 4. inovke filechanged(filechangeevent obj) on all listeners
*/
}
}
}
}
class FileChangeEvent
{
String fileName;
public FileChangeEvent()
{
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
}
class FileChangeEventListener
{
public void fileChanged(FileChangeEvent e)
{
}
}
you event listeners should extends FileChangeEventListener to handle events..
enjoy !
How can i write a interface instead of a class to handle the event listener?
The interface looks like:
public interface FileChangeEventListener{
public void fileChanged(FileChangeEvent e);
}
In my class:
public class MyClass implements FileChangeEventListener{
public void fileChanged(FileChangeEvent e);
}