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}