001package org.nasdanika.html.ecore; 002 003import java.util.function.BiFunction; 004import java.util.function.Predicate; 005 006import org.eclipse.emf.ecore.EClass; 007import org.eclipse.emf.ecore.EModelElement; 008import org.eclipse.emf.ecore.ENamedElement; 009import org.eclipse.emf.ecore.EPackage; 010import org.nasdanika.common.Context; 011import org.nasdanika.common.ProgressMonitor; 012import org.nasdanika.html.model.app.Action; 013 014public class ENamedElementActionSupplier<T extends ENamedElement> extends EModelElementActionSupplier<T> { 015 016 public ENamedElementActionSupplier( 017 T value, 018 Context context, 019 java.util.function.Function<EPackage,String> ePackagePathComputer, 020 Predicate<EModelElement> elementPredicate, 021 BiFunction<ENamedElement, String, String> labelProvider) { 022 super(value, context, ePackagePathComputer, elementPredicate, labelProvider); 023 } 024 025 @Override 026 public Action execute(EClass contextEClass, ProgressMonitor progressMonitor) { 027 Action action = super.execute(contextEClass, progressMonitor); 028 action.setText(labelProvider.apply(eObject, getDefaultLabel(progressMonitor))); 029 return action; 030 } 031 032 protected String getDefaultLabel(ProgressMonitor progressMonitor) { 033 return eObject.getName(); 034 } 035 036 @Override 037 public String name() { 038 return super.name() + " " + eObject.getName(); 039 } 040 041 042}