/**
* Copyright (c) 2011 committers of YAKINDU and others.
* 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:
* committers of YAKINDU - initial API and implementation
*
*/
package org.yakindu.base.gmf.runtime.highlighting;
import java.util.Collections;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
/**
* @author Alexander Nyssen
* @author Andreas Muelder
*
*/
public interface IHighlightingSupport {
void lockEditor();
boolean isLocked();
void releaseEditor();
void highlight(List<? extends EObject> semanticElement, HighlightingParameters parameters);
void executeAsync(List<Action> actions);
public static interface Action {
public void execute(IHighlightingSupport hs);
}
public static class Highlight implements Action {
protected List<? extends EObject> semanticElements;
protected HighlightingParameters highligtingParams;
public Highlight(EObject semanticElement, HighlightingParameters parameters) {
this(Collections.singletonList(semanticElement), parameters);
}
public Highlight(List<? extends EObject> semanticElements, HighlightingParameters parameters) {
this.semanticElements = semanticElements;
this.highligtingParams = parameters;
}
public void execute(IHighlightingSupport hs) {
hs.highlight(semanticElements, highligtingParams);
}
}
public static class HighlightingSupportNullImpl implements IHighlightingSupport {
@Override
public void lockEditor() {
}
@Override
public boolean isLocked() {
return false;
}
@Override
public void releaseEditor() {
}
@Override
public void executeAsync(List<Action> actions) {
}
@Override
public void highlight(List<? extends EObject> semanticElement, HighlightingParameters parameters) {
}
}
}