package app.navigps.gui.svgComponents;
import app.navigps.gui.StatusChangedListener;
import java.io.File;
import java.util.LinkedList;
/**
*
* @author Grzegorz (vara) Warywoda
*/
public class SVGBridgeComponents implements StatusChangedListener,
UpdateComponentsWhenChangedDoc{
private boolean rederingStatus = true;
private LinkedList<UpdateComponentsWhenChangedDoc> updateComponets =
new LinkedList<UpdateComponentsWhenChangedDoc>();
private LinkedList<StatusChangedListener> statusChanged =
new LinkedList<StatusChangedListener>();
private File svgFile= null;
/**
*
*/
public SVGBridgeComponents(){
System.out.println("Create "+getClass().getCanonicalName());
}
/**
*
* @return
*/
public boolean isRendering() {
return rederingStatus;
}
/**
*
* @param rederingStatus
*/
protected void setRederingStatus(boolean rederingStatus) {
this.rederingStatus = rederingStatus;
}
/**
*
* @param path
*/
public void setSvgFileObject(File path){
svgFile = path;
}
/**
*
* @return
*/
public final String getAbsoluteFilePath(){
if(svgFile != null)
return svgFile.getName();
return "";
}
/**
*
* @param l
*/
public void addUpdateComponentslisteners(UpdateComponentsWhenChangedDoc l){
if(l!=null)
updateComponets.add(l);
}
/**
*
* @param l
*/
public void addStatusChangedlistener(StatusChangedListener l){
if(l!=null)
statusChanged.add(l);
}
/**
*
* @param str
*/
@Override
synchronized public void currentStatusChanged(String str) {
for (StatusChangedListener ucomp : statusChanged) {
ucomp.currentStatusChanged(str);
}
//System.out.println(str);
}
/**
*
*/
@Override
public void documentPrepareToModification() {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
for (UpdateComponentsWhenChangedDoc ucomp : updateComponets)
ucomp.documentPrepareToModification();
}
});
t.start();
}
/**
*
*/
@Override
public void documentClosed() {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
for (UpdateComponentsWhenChangedDoc ucomp : updateComponets)
ucomp.documentClosed();
}
});
t.start();
}
@Override
public void documentLoadingCompleted() {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
for (UpdateComponentsWhenChangedDoc ucomp : updateComponets)
ucomp.documentLoadingCompleted();
}
});
t.start();
}
}