/*******************************************************************************
* Copyright (c) 2010 Martin Schnabel <mb0@mb0.org>.
* 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
******************************************************************************/
package org.axdt.asdoc.ui.hyperlink;
import org.axdt.asdoc.model.AsdocElement;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.text.Region;
import org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkAcceptor;
import com.google.inject.Inject;
import com.google.inject.Provider;
public class AsdocHyperlinkFactory {
@Inject
private Provider<AsdocHyperlink> asdocHyperlinkProvider;
public boolean canHandle(EObject to) {
return to instanceof AsdocElement;
}
public void createHyperlink(Region region, EObject to, IHyperlinkAcceptor acceptor) {
AsdocElement element = (AsdocElement) to;
AsdocHyperlink result = asdocHyperlinkProvider.get();
result.setHyperlinkRegion(region);
result.setHyperlinkText(element.getName());
result.setElement(element);
acceptor.accept(result);
}
public Provider<AsdocHyperlink> getAsdocHyperlinkProvider() {
return asdocHyperlinkProvider;
}
public void setAsdocHyperlinkProvider(Provider<AsdocHyperlink> asdocHyperlinkProvider) {
this.asdocHyperlinkProvider = asdocHyperlinkProvider;
}
}