001package com.ganteater.ae.desktop.ui; 002 003import java.awt.Window; 004 005import javax.swing.event.HyperlinkEvent; 006import javax.swing.event.HyperlinkListener; 007 008import org.apache.commons.lang.StringUtils; 009 010import com.ganteater.ae.AEManager; 011import com.ganteater.ae.desktop.util.UIUtils; 012 013public class HyperlinkAdapter implements HyperlinkListener { 014 015 public static final String TASK_PROTOCOL = "recipe:"; 016 017 private AEManager manager; 018 019 private Window window; 020 021 public HyperlinkAdapter(AEManager manager) { 022 this.manager = manager; 023 } 024 025 @Override 026 public void hyperlinkUpdate(HyperlinkEvent event) { 027 if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { 028 String eventDescription = event.getDescription(); 029 if (StringUtils.startsWith(eventDescription, TASK_PROTOCOL)) { 030 String name = StringUtils.substringAfter(eventDescription, TASK_PROTOCOL); 031 manager.runTask(name, true); 032 } else { 033 UIUtils.open(event); 034 } 035 if (window != null) { 036 window.setVisible(false); 037 } 038 } 039 } 040 041 public void setWindow(Window frame) { 042 this.window = frame; 043 } 044 045}