package fi.otavanopisto.muikku.plugins.fish;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.ejb.Stateful;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import fi.otavanopisto.muikku.controller.WidgetController;
import fi.otavanopisto.muikku.model.widgets.DefaultWidget;
import fi.otavanopisto.muikku.model.widgets.Widget;
import fi.otavanopisto.muikku.model.widgets.WidgetSpace;
import fi.otavanopisto.muikku.model.widgets.WidgetVisibility;
import fi.otavanopisto.muikku.plugin.PluginDescriptor;
@ApplicationScoped
@Stateful
public class FishPluginDescriptor implements PluginDescriptor {
private static final String FISH_WIDGET_LOCATION = "environment.header.left";
private static final String FISH_WIDGET_NAME = "fish";
private static final int FISH_WIDGET_MINIMUM_SIZE = 8;
@Inject
private WidgetController widgetController;
@Override
public String getName() {
return "fish";
}
@Override
public void init() {
Widget widget = widgetController.findWidget(FISH_WIDGET_NAME);
if (widget == null) {
widget = widgetController.createWidget(FISH_WIDGET_NAME, FISH_WIDGET_MINIMUM_SIZE, WidgetVisibility.EVERYONE);
}
WidgetSpace widgetSpace = widgetController.findWidgetSpace(FISH_WIDGET_LOCATION);
if (widgetSpace == null) { // TODO: In a perfect world, there would be no null checks
widgetSpace = widgetController.createWidgetSpace(FISH_WIDGET_LOCATION);
}
DefaultWidget defaultWidget = widgetController.findDefaultWidget(widget, widgetSpace);
if (defaultWidget == null) {
defaultWidget = widgetController.createDefaultWidget(widget, widgetSpace);
}
}
@Override
public List<Class<?>> getBeans() {
return new ArrayList<Class<?>>(Arrays.asList(
/* Controllers */
FishWidgetController.class,
/* Backing Beans */
FishWidgetBackingBean.class));
}
}