package com.limegroup.gnutella.gui.actions;
import java.awt.event.ActionEvent;
import java.io.IOException;
import java.text.MessageFormat;
import javax.swing.AbstractAction;
import javax.swing.Action;
import com.limegroup.gnutella.FileDetails;
import com.limegroup.gnutella.URN;
import com.limegroup.gnutella.gui.FileDetailsProvider;
import com.limegroup.gnutella.gui.GUIMediator;
import com.limegroup.gnutella.util.Launcher;
/**
* Launches a browser for a bitzi lookup for the first item of the array of the
* selected {@link FileDetails}.
*/
public class BitziLookupAction extends AbstractAction {
/**
* Setting for the bitzi lookup string, has to be processed through
* {@link MessageFormat#format(java.lang.String, java.lang.Object[])} for
* adding the urn.
*/
private static final String BITZI_LOOKUP_URL =
"http://bitzi.com/lookup/{0}?ref=limewire";
FileDetailsProvider provider;
public BitziLookupAction(FileDetailsProvider provider) {
putValue(Action.NAME, GUIMediator.getStringResource
("SEARCH_PUBLIC_BITZI_LOOKUP_STRING"));
this.provider = provider;
}
public void actionPerformed(ActionEvent e) {
FileDetails[] files = provider.getFileDetails();
if (files.length == 0) {
return ;
}
URN urn = files[0].getSHA1Urn();
if (urn != null) {
String urnStr = urn.toString();
int hashstart = 1+urnStr.indexOf(":",4);
String lookupUrl = MessageFormat.format
(BITZI_LOOKUP_URL, new Object[] { urnStr.substring(hashstart) });
try {
Launcher.openURL(lookupUrl);
} catch (IOException ioe) {
// do nothing
}
}
}
}