package net.sourceforge.pain.tools.guitool.action; import net.sourceforge.pain.tools.guitool.*; import net.sourceforge.pain.tools.guitool.dialog.*; import javax.swing.*; import javax.swing.event.*; import java.awt.*; public class WorldExplorerAction implements GTAction { private static JEditorPane instance; public void executeAction() { try { GuiTool.appFrame.workspacePanel.setActiveComponent(getComponent()); } catch (Exception e) { e.printStackTrace(); } } public Component getComponent() throws Exception { if (instance == null) { instance = HtmlComponentRegistry.get(getClass()); instance.addHyperlinkListener(new MyHyperlinkListenerImpl()); } return instance; } private static class MyHyperlinkListenerImpl extends DefaultHyperlinkListenerImpl { public void hyperlinkUpdate(HyperlinkEvent ev) { if (ev.getEventType() != HyperlinkEvent.EventType.ACTIVATED) { return; } if (ev.getURL().toString().endsWith("/exit")) { GlobalPerformer.exit(); } else { super.hyperlinkUpdate(ev); } } } }