com.izforge.izpack.util.HyperlinkHandler Maven / Gradle / Ivy
The newest version!
/*
* IzPack - Copyright 2001-2009 Julien Ponge, All Rights Reserved.
*
* http://izpack.org/
* http://izpack.codehaus.org/
*
* Copyright 2002 Elmar Grom
* Copyright 2009 Dennis Reil
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package com.izforge.izpack.util;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
/**
* This class can be used to listen at hyperlinks click
* and open open the link in a browser
*
* @author Mathieu ANCELIN
*/
public class HyperlinkHandler implements HyperlinkListener
{
/**
* Handle an event on the link
*
* @param HyperlinkEvent the event on the link
*/
public void hyperlinkUpdate(HyperlinkEvent e)
{
try
{
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
{
String urls = e.getURL().toExternalForm();
if (com.izforge.izpack.util.OsVersion.IS_OSX)
{
Runtime.getRuntime().exec("open " + urls);
}
else if (com.izforge.izpack.util.OsVersion.IS_UNIX)
{
String[] launchers = {"htmlview QqzURL", "xdg-open QqzURL",
"gnome-open QqzURL", "kfmclient openURL QqzURL", "call-browser QqzURL",
"firefox QqzURL", "opera QqzURL", "konqueror QqzURL",
"epiphany QqzURL", "mozilla QqzURL", "netscape QqzURL"};
for (String launcher : launchers)
{
try
{
Runtime.getRuntime().exec(launcher.replaceAll("QqzURL", urls));
System.out.println("OK");
break;
}
catch (Exception ignore)
{
System.out.println(launcher + " NOT OK");
}
}
}
else
// windows
{
Runtime.getRuntime().exec("cmd /C start " + urls);
}
}
}
catch (Exception err)
{
err.printStackTrace();
}
}
}