package app.navigps.gui.svgComponents;
import app.navigps.gui.svgComponents.DisplayObjects.ObjectService;
import java.awt.Component;
import java.awt.geom.AffineTransform;
/**
*
* @author wara
*/
public class ServicesContainer extends SynchronizedSVGLayer{
public ServicesContainer(Canvas can){
super(can);
}
@Override
public void updateComponent() {
AffineTransform at = getTransform();
if( !(at.equals(new AffineTransform())) ){
Component [] comps = getComponents();
for (Component c : comps) {
((ObjectService)c).transformCoordinate(at);
}
}
needUpdate = false;
}
@Override
protected void addImpl(Component comp, Object constraints, int index) {
if(comp instanceof ObjectService){
if(checkDuplcateComponet((ObjectService)comp)){
return;
}
}
super.addImpl(comp, constraints, index);
}
@Override
public void remove(Component comp) {
if(comp instanceof ObjectService){
((ObjectService)comp).dispose();
}
super.remove(comp);
}
public ObjectService getObject(long oid){
Component [] comps = getComponents();
for (Component childs : comps) {
ObjectService childObjectServ = (ObjectService)childs;
if(childObjectServ.getOID().getObjectId() == oid){
return childObjectServ;
}
}
return null;
}
@Override
public void removeAll() {
Component [] comps = getComponents();
for (Component c : comps) {
((ObjectService)c).dispose();
}
super.removeAll();
}
private boolean checkDuplcateComponet(ObjectService os){
boolean isDuplcate = false;
Component [] comps = getComponents();
for (Component childs : comps) {
ObjectService childObjectServ = (ObjectService)childs;
if(os.getOID().equals(childObjectServ.getOID())){
isDuplcate = true;
break;
}
}
return isDuplcate;
}
}