package org.jrebirth.af.showcase.fxml.ui.main;
import org.jrebirth.af.api.key.UniqueKey;
import org.jrebirth.af.api.ui.Model;
import org.jrebirth.af.component.ui.stack.PageEnum;
import org.jrebirth.af.core.key.Key;
import org.jrebirth.af.core.ui.fxml.AbstractFXMLObjectModel;
import org.jrebirth.af.showcase.fxml.beans.LoremIpsum;
import org.jrebirth.af.showcase.fxml.ui.embedded.EmbeddedModel;
import org.jrebirth.af.showcase.fxml.ui.hybrid.HybridModel;
import org.jrebirth.af.showcase.fxml.ui.included.IncludedModel;
import org.jrebirth.af.showcase.fxml.ui.standalone.StandaloneModel;
/**
* The class <strong>FXMLPage</strong>.
*
* @author Sébastien Bordes
*/
public enum FXMLPage implements PageEnum {
/** . */
StandaloneFxml,
/** . */
IncludedFxml,
/** . */
ViewEmbeddedFxml,
/** . */
HybridFxml
;
/**
* {@inheritDoc}
*/
@Override
public UniqueKey<? extends Model> getModelKey() {
UniqueKey<? extends Model> modelKey;
switch (this) {
default:
case ViewEmbeddedFxml:
modelKey = Key.create(EmbeddedModel.class);
break;
case StandaloneFxml:
modelKey = Key.create(StandaloneModel.class);
break;
case HybridFxml:
modelKey = Key.create(HybridModel.class, AbstractFXMLObjectModel.KEYPART_FXML_PREFIX + "org.jrebirth.af.showcase.fxml.ui.hybrid.Hybrid");
break;
case IncludedFxml:
modelKey = Key.create(IncludedModel.class, new LoremIpsum());
break;
}
return modelKey;
}
}