package org.expeditee.items.widgets;

import org.expeditee.core.Image;
import org.expeditee.core.Point;
import org.expeditee.core.bounds.AxisAlignedBoxBounds;
import org.expeditee.gio.EcosystemManager;
import org.expeditee.gio.EcosystemManager.Ecosystem;
import org.expeditee.gio.javafx.JavaFXMiscManager;
import org.expeditee.items.ItemParentStateChangedEvent;
import org.expeditee.items.Text;
import org.expeditee.items.UserAppliedPermission;

import javafx.geometry.Bounds;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.SnapshotParameters;
import javafx.scene.image.WritableImage;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;

public abstract class JavaFXPaneWidget extends JavaFXWidget 
{
	protected JavaFXPaneWidget(Text source, Pane jfxPane, int minWidth, int maxWidth, int minHeight, int maxHeight) {
		super(source, jfxPane, minWidth, maxWidth, minHeight, maxHeight);
		
		jfxPane.setMinWidth(minWidth);
		jfxPane.setMaxWidth(maxWidth);
		jfxPane.setPrefWidth(minWidth);
		
		jfxPane.setMinHeight(minHeight);
		jfxPane.setMaxHeight(maxHeight);
		jfxPane.setPrefHeight(minHeight);
        
		onSizeChanged();
	}
	
	public Pane getPane()
	{
		return (Pane)_node;
	}
	
	@Override
	protected void layout() {
		System.out.println("*** JFXPaneWidget::layout()");
		
		Pane pane = (Pane)_node;
		
		AxisAlignedBoxBounds aa_bounds = getContentBounds();
		pane.setPrefWidth(aa_bounds.getWidth());
		pane.setPrefHeight(aa_bounds.getHeight());
		
		super.layout();

		pane.layout();   // forces Pane to lay out its children now
	}
}
