/**
*
*/
package de.hannesniederhausen.storynotes.ui.internal.services;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.action.IAction;
import de.hannesniederhausen.storynotes.model.Category;
import de.hannesniederhausen.storynotes.model.GenericCategory;
import de.hannesniederhausen.storynotes.model.GenericNote;
import de.hannesniederhausen.storynotes.model.Note;
import de.hannesniederhausen.storynotes.ui.internal.services.actions.CreateGenericCategoryAction;
import de.hannesniederhausen.storynotes.ui.internal.services.actions.CreateGenericNote;
import de.hannesniederhausen.storynotes.ui.internal.services.ui.GenericNoteInputMask;
import de.hannesniederhausen.storynotes.ui.services.ICategoryProviderService;
import de.hannesniederhausen.storynotes.ui.views.InputMask;
import de.hannesniederhausen.storynotes.ui.views.category.CategoryInputMask;
/**
* @author Hannes Niederhausen
*
*/
public class GenericCategoryProvider implements ICategoryProviderService {
@Override
public Class<? extends InputMask> getCategoryInputMaskClass() {
return CategoryInputMask.class;
}
@Override
public java.lang.Class<? extends InputMask> getNoteInputMaskClass(java.lang.Class<? extends Note> noteClass) {
if (GenericNote.class.isAssignableFrom(noteClass))
return GenericNoteInputMask.class;
return null;
}
@Override
public IAction[] getNoteActions(IEclipseContext context, EObject parent) {
if (parent instanceof GenericCategory) {
return new IAction[] {new CreateGenericNote(context, parent, ((GenericCategory)parent).getName())};
}
return new IAction[0];
}
@Override
public IAction getCategoryActions(IEclipseContext context, EObject parent) {
return new CreateGenericCategoryAction(context, parent);
}
@Override
public Class<? extends Category> getCategoryClass() {
return GenericCategory.class;
}
}