001package org.nasdanika.html.model.app.graph.emf; 002 003import org.eclipse.emf.common.util.URI; 004import org.nasdanika.common.Context; 005import org.nasdanika.common.ProgressMonitor; 006import org.nasdanika.graph.emf.EObjectNode; 007import org.nasdanika.graph.processor.NodeProcessorConfig; 008import org.nasdanika.html.model.app.Label; 009import org.nasdanika.html.model.app.graph.WidgetFactory; 010 011/** 012 * Base interface for {@link EObjectNodeProcessor} mix-ins to support multiple inheritance 013 * without duplication. 014 */ 015public interface EObjectNodeProcessorMixIn<T> { 016 017 /** 018 * Configures a label for a given source object. This method allows multiple widget factories 019 * collaborate on label/action configuration. E.g. the primary WidgetFactory may delegate to "facet" factories. 020 * @param source 021 * @param label 022 * @param progressMonitor 023 */ 024 default void configureLabel(Object source, Label label, ProgressMonitor progressMonitor) { 025 026 } 027 028 NodeProcessorConfig<WidgetFactory, WidgetFactory> getConfig(); 029 030 Context getContext(); 031 032 public EObjectNode getNode(); 033 034 public T getTarget(); 035 036 public URI getUri(); 037 038}