All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.rpgframework.jfx.rules.EditCarriedItemPane Maven / Gradle / Ivy

There is a newer version: 5.3.0
Show newest version
package de.rpgframework.jfx.rules;

import java.util.List;
import java.util.function.BiFunction;

import org.prelle.javafx.ResponsiveControl;
import org.prelle.javafx.WindowMode;

import de.rpgframework.genericrpg.chargen.ComplexDataItemController;
import de.rpgframework.genericrpg.data.Choice;
import de.rpgframework.genericrpg.data.DataItem;
import de.rpgframework.genericrpg.data.Decision;
import de.rpgframework.genericrpg.items.AItemEnhancement;
import de.rpgframework.genericrpg.items.CarriedItem;
import de.rpgframework.genericrpg.items.ItemEnhancementValue;
import de.rpgframework.genericrpg.items.PieceOfGear;
import de.rpgframework.jfx.rules.skin.EditCarriedItemPaneWideSkin;
import de.rpgframework.jfx.rules.skin.Properties;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.collections.ObservableMap;
import javafx.scene.Node;
import javafx.scene.control.Control;
import javafx.scene.control.Skin;

/**
 *
 */
public class EditCarriedItemPane, E extends AItemEnhancement> extends Control implements ResponsiveControl {

	private ObjectProperty primaryNode = new SimpleObjectProperty();
	private ObservableList> allowedCategories = FXCollections.observableArrayList();
	private ObservableMap, ObservableList> itemsInCategory = FXCollections.observableHashMap();
	private ObjectProperty, Decision[]>> optionCallbackProperty = new SimpleObjectProperty<>();

	private CarriedItem model;
	private ComplexDataItemController> enhanceCtrl;

	//-------------------------------------------------------------------
	public EditCarriedItemPane(CarriedItem model, ComplexDataItemController> enhanceCtrl) {
		this.model = model;
		this.enhanceCtrl = enhanceCtrl;
	}

	//-------------------------------------------------------------------
	/**
	 * @see javafx.scene.control.Control#createDefaultSkin()
	 */
	public Skin createDefaultSkin() {
		return new EditCarriedItemPaneWideSkin(this);
	}

	//-------------------------------------------------------------------
	public ObjectProperty primaryNodeProperty() { return primaryNode; }
	public Node getPrimaryNode() { return primaryNode.get(); }
	public EditCarriedItemPane setPrimaryNode(Node value) { primaryNode.set(value); return this; }

	//-------------------------------------------------------------------
	public void refresh() {
	    getProperties().put(Properties.RECREATE, Boolean.TRUE);
	}

	//-------------------------------------------------------------------
	/**
	 * @see org.prelle.javafx.ResponsiveControl#setResponsiveMode(org.prelle.javafx.WindowMode)
	 */
	@Override
	public void setResponsiveMode(WindowMode value) {
		// TODO Auto-generated method stub

	}

	//-------------------------------------------------------------------
	public CarriedItem getItem() { return model; }
	public ComplexDataItemController> getEnhancementController() { return enhanceCtrl; }

	//-------------------------------------------------------------------
	public ObjectProperty, Decision[]>> optionCallbackProperty() { return optionCallbackProperty; }
	public BiFunction, Decision[]> getOptionCallback() { return optionCallbackProperty.get(); }
	public EditCarriedItemPane setOptionCallback(BiFunction, Decision[]> value) { optionCallbackProperty.setValue(value); return this;}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy