import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.function.Consumer;
import net.haspamelodica.swt.helper.gcs.GCConfig;
import net.haspamelodica.swt.helper.gcs.GeneralGC;
this.submodelInterface = new SubmodelInterface(submodelModifiable, SUBMODEL_INTERFACE_NAME);
this.submodelScale = 1;
- this.maxVisibleRegionFillRatioForAlpha0 = 0.4;
- this.minVisibleRegionFillRatioForAlpha1 = 0.8;
+ this.maxVisibleRegionFillRatioForAlpha0 = 0.0;
+ this.minVisibleRegionFillRatioForAlpha1 = 0.0;
this.renderer = new LogicUIRenderer(submodelModifiable);
- submodelModifiable.addRedrawListener(this::requestRedraw);
+ Consumer<Runnable> redrawHandlerChangedListener = submodelModifiable::setRedrawHandler;
+ model.addRedrawHandlerChangedListener(redrawHandlerChangedListener);
+ model.addComponentRemovedListener(c ->
+ {
+ if (c == this)
+ model.removeRedrawHandlerChangedListener(redrawHandlerChangedListener);
+ });
+ submodelModifiable.setRedrawHandler(model.getRedrawHandler());
}
// pins
for (Entry<String, MovablePin> e : supermodelPins.entrySet())
getSubmodelMovablePin(e.getKey()).setRelPos(e.getValue().getRelX() * submodelScale, e.getValue().getRelY() * submodelScale);
- requestRedraw();// needed if there is no submodel interface pin
+ model.requestRedraw();// needed if there is no submodel interface pin
}
/**
protected void setSymbolRenderer(Renderer symbolRenderer)
{
this.symbolRenderer = symbolRenderer;
- requestRedraw();
+ model.requestRedraw();
}
/**
protected void setOutlineRenderer(Renderer outlineRenderer)
{
this.outlineRenderer = outlineRenderer;
- requestRedraw();
+ model.requestRedraw();
}
/**