/*******************************************************************************
* This file is part of the Symfony eclipse plugin.
*
* (c) Robert Gruendler <r.gruendler@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
******************************************************************************/
package com.dubture.symfony.ui.editor.hyperlink;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.hyperlink.IHyperlink;
import org.eclipse.ui.IEditorDescriptor;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.FileEditorInput;
import com.dubture.symfony.core.log.Logger;
/**
*
* Hyperlink for css and js files.
*
*
* @author Robert Gruendler <r.gruendler@gmail.com>
*
*/
public class AssetHyperlink implements IHyperlink {
private IRegion region ;
private IFile file;
public AssetHyperlink(IRegion wordRegion, IFile file) {
region = wordRegion;
this.file = file;
}
@Override
public IRegion getHyperlinkRegion() {
return region;
}
@Override
public String getTypeLabel() {
return "Symfony asset";
}
@Override
public String getHyperlinkText() {
return file.getName();
}
@Override
public void open() {
try {
if (!file.exists())
return;
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IEditorDescriptor desc = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(file.getName());
page.openEditor(new FileEditorInput(file), desc.getId());
} catch (CoreException e) {
Logger.logException(e);
}
}
}