Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Supplier;

import javax.swing.JComponent;

import amidst.AmidstSettings;
import amidst.documentation.AmidstThread;
import amidst.documentation.CalledOnlyBy;
Expand Down Expand Up @@ -50,10 +52,11 @@ private static List<Widget> createWidgets(
FragmentManager fragmentManager,
Graphics2DAccelerationCounter accelerationCounter,
AmidstSettings settings,
Supplier<Entry<ProgressEntryType, Integer>> progressEntrySupplier) {
Supplier<Entry<ProgressEntryType, Integer>> progressEntrySupplier,
Supplier<JComponent> parentComponentSupplier) {
// @formatter:off
DebugWidget debugWidget = new DebugWidget(CornerAnchorPoint.BOTTOM_RIGHT, graph, fragmentManager, settings.showDebug, accelerationCounter, zoom);
BiomeWidget biomeWidget = new BiomeWidget(CornerAnchorPoint.NONE, biomeSelection, layerReloader, settings.biomeProfileSelection, world.getBiomeList());
BiomeWidget biomeWidget = new BiomeWidget(CornerAnchorPoint.NONE, biomeSelection, layerReloader, settings.biomeProfileSelection, world.getBiomeList(), parentComponentSupplier);
BiomeToggleWidget biomeToggleWidget = new BiomeToggleWidget(CornerAnchorPoint.BOTTOM_RIGHT, biomeWidget, biomeSelection);
WorldOptions worldOptions = world.getWorldOptions();
return Arrays.asList(
Expand Down Expand Up @@ -107,6 +110,7 @@ public PerViewerFacadeInjector(
this.fragmentQueueProcessor = fragmentManager.createQueueProcessor(layerManager, settings.dimension);
this.layerReloader = layerManager.createLayerReloader(world);
this.progressEntryHolder = new AtomicReference<Entry<ProgressEntryType, Integer>>();
AtomicReference<JComponent> parentComponentReference = new AtomicReference<>();
this.widgets = createWidgets(
world,
graph,
Expand All @@ -118,7 +122,8 @@ public PerViewerFacadeInjector(
fragmentManager,
accelerationCounter,
settings,
progressEntryHolder::get);
progressEntryHolder::get,
parentComponentReference::get);
this.drawer = new Drawer(
graph,
translator,
Expand All @@ -131,6 +136,7 @@ public PerViewerFacadeInjector(
this.widgetManager = new WidgetManager(widgets);
this.viewerMouseListener = new ViewerMouseListener(widgetManager, graph, translator, zoom, movement, actions);
this.viewer = new Viewer(viewerMouseListener, drawer);
parentComponentReference.set((JComponent) viewer.getComponent());
this.viewerFacade = new ViewerFacade(
world,
fragmentManager,
Expand Down
Loading