import java.net.URI;
import java.util.Map.Entry;
+import net.pterodactylus.sone.web.page.Page.Request.Method;
import freenet.client.HighLevelSimpleClient;
import freenet.clients.http.LinkEnabledCallback;
import freenet.clients.http.Toadlet;
/**
* {@link Toadlet} implementation that is wrapped around a {@link Page}.
- *
+ *
* @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
*/
public class PageToadlet extends Toadlet implements LinkEnabledCallback {
/**
* Creates a new toadlet that hands off processing to a {@link Page}.
- *
+ *
* @param highLevelSimpleClient
+ * The high-level simple client
* @param menuName
* The name of the menu item
* @param page
/**
* Returns the name to display in the menu.
- *
+ *
* @return The name in the menu
*/
public String getMenuName() {
/**
* Handles a HTTP GET request.
- *
+ *
* @param uri
* The URI of the request
* @param httpRequest
* if the toadlet context is closed
*/
public void handleMethodGET(URI uri, HTTPRequest httpRequest, ToadletContext toadletContext) throws IOException, ToadletContextClosedException {
- handleRequest(new Page.Request(uri, "GET", httpRequest, toadletContext));
+ handleRequest(new Page.Request(uri, Method.GET, httpRequest, toadletContext));
}
/**
* Handles a HTTP POST request.
- *
+ *
* @param uri
* The URI of the request
* @param httpRequest
* if the toadlet context is closed
*/
public void handleMethodPOST(URI uri, HTTPRequest httpRequest, ToadletContext toadletContext) throws IOException, ToadletContextClosedException {
- handleRequest(new Page.Request(uri, "POST", httpRequest, toadletContext));
+ handleRequest(new Page.Request(uri, Method.POST, httpRequest, toadletContext));
}
/**
/**
* Handles a HTTP request.
- *
+ *
* @param pageRequest
* The request to handle
* @throws IOException
*/
@Override
public boolean isEnabled(ToadletContext toadletContext) {
+ if (page instanceof LinkEnabledCallback) {
+ return ((LinkEnabledCallback) page).isEnabled(toadletContext);
+ }
return true;
}