| /** |
| * 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(); |
| |
| } |