package org.eclipse.osbp.ecview.core.extension.editpart.emf;

import org.eclipse.osbp.ecview.core.common.editpart.emf.visibility.VisibilityProcessorEditpart;
import org.eclipse.osbp.ecview.core.common.visibility.IVisibilityProcessor;
import org.eclipse.osbp.ecview.core.extension.model.extension.YKanbanVisibilityProcessor;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IKanbanVisibilityProcessor;

public class KanbanVisibilityProcessorEditpart extends VisibilityProcessorEditpart<YKanbanVisibilityProcessor>
		implements IKanbanVisibilityProcessor {

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.osbp.ecview.core.common.editpart.emf.visibility.
	 * VisibilityProcessorEditpart#loadProcessor()
	 */
	protected IVisibilityProcessor loadProcessor() {
		if (processor != null) {
			return processor;
		}

		KanbanVisibilityProcessor temp = new KanbanVisibilityProcessor();
		temp.setup(getViewContext(getModel()), getModel());

		processor = temp;

		return processor;
	}

}
