blob: 5e10f674664e4a0214cd487873e623366fc22d48 [file] [log] [blame]
/**
* Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Florian Pirchner - Initial implementation
*/
package org.eclipse.osbp.ecview.extension.grid.editparts.emf.renderer;
import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.ElementEditpart;
import org.eclipse.osbp.ecview.core.common.model.core.YElement;
import org.eclipse.osbp.ecview.extension.grid.editparts.renderer.IGridRendererEditpart;
import org.eclipse.osbp.ecview.extension.grid.editparts.renderer.IGridRendererRefreshHandler;
import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridRenderer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The implementation of the IOpenDialogCommandEditpart.
*/
public abstract class GridRendererEditpart<M extends CxGridRenderer> extends
ElementEditpart<M> implements IGridRendererEditpart {
private static final Logger LOGGER = LoggerFactory
.getLogger(GridRendererEditpart.class);
@Override
public Object createDelegate() {
return internalCreateDelegate();
}
/**
* Tells its container, that the renderer needs to become refreshed.
*/
protected void notifyRefreshHandler() {
CxGridRenderer cxRenderer = getModel();
YElement container = (YElement) cxRenderer.eContainer();
IElementEditpart containerEp = getEditpart(viewContext, container);
if (containerEp instanceof IGridRendererRefreshHandler) {
((IGridRendererRefreshHandler) containerEp).refreshRenderer();
}
}
/**
* Resets the delegate and notifies the parent. So it will be instantiated
* again at next request.
*/
protected void markDirty() {
LOGGER.debug("Renderer is marked as dirty: " + getModel());
notifyRefreshHandler();
}
protected abstract Object internalCreateDelegate();
}