/*******************************************************************************
* Copyright (c) 2010 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.cdi.text.ext.hyperlink;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.hyperlink.IHyperlink;
import org.eclipse.jface.text.hyperlink.MultipleHyperlinkPresenter;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.ui.IPartListener;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PlatformUI;
public class MultipleHyperlinkPresenterManager {
private static MultipleHyperlinkPresenter mhp = new MultipleHyperlinkPresenter(new RGB(0, 0, 255));
private static boolean installed = false;
private static MyPartListener listener = new MyPartListener();
public static void installAndShow(ITextViewer viewer, IHyperlink[] hyperlinks){
if(installed)
uninstall();
mhp.install(viewer);
mhp.showHyperlinks(hyperlinks);
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService().addPartListener(listener);
installed = true;
}
public static void uninstall(){
installed = false;
mhp.uninstall();
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService().removePartListener(listener);
}
static class MyPartListener implements IPartListener{
public MyPartListener(){
}
public void partActivated(IWorkbenchPart arg0) {
}
public void partBroughtToTop(IWorkbenchPart arg0) {
}
public void partClosed(IWorkbenchPart arg0) {
if(installed){
uninstall();
}
}
public void partDeactivated(IWorkbenchPart arg0) {
}
public void partOpened(IWorkbenchPart arg0) {
}
}
}