// GraphTea Project: http://github.com/graphtheorysoftware/GraphTea // Copyright (C) 2012 Graph Theory Software Foundation: http://GraphTheorySoftware.com // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/ package graphtea.graph.ui; import graphtea.platform.core.BlackBoard; import graphtea.platform.core.exception.ExceptionHandler; import javax.swing.*; import java.net.MalformedURLException; import java.net.URL; /** * @author Azin Azadi */ class DialogLinkHandler implements HyperlinkHandler { public void handle(String url, BlackBoard b, URL currentURL) { String path = currentURL.getProtocol() + "://" + currentURL.getPath(); String title = url.substring(url.indexOf(',') + 1); if (!url.toLowerCase().startsWith("http:")) url = url.substring(0, url.indexOf(',')); url = path.substring(0, path.lastIndexOf("/")) + "/" + url; try { showPageInDialog(title, b, new URL(url)); } catch (MalformedURLException e) { ExceptionHandler.catchException(e); } } /** * shows the givve page in a new dialog, * Note that the used html viewer is GHTMLPageComponent, which is internally * uses a JEditorPane, */ private static void showPageInDialog(String title, BlackBoard blackboard, URL page) { JFrame f = new JFrame(title); GHTMLPageComponent browserPane = new GHTMLPageComponent(blackboard); browserPane.setPage(page); f.add(browserPane); f.setVisible(true); f.setSize(700, 500); f.validate(); f.setResizable(false); } }