X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpage%2FPageToadletFactory.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpage%2FPageToadletFactory.java;h=af87470e47018db27715c46057c196508449aaba;hp=0000000000000000000000000000000000000000;hb=b2bc9337f91c303e2700f001c785e8b14a9990ec;hpb=aaba08b539df7fb8db17f16d6802e31fb5f3bfaa diff --git a/src/main/java/net/pterodactylus/sone/web/page/PageToadletFactory.java b/src/main/java/net/pterodactylus/sone/web/page/PageToadletFactory.java new file mode 100644 index 0000000..af87470 --- /dev/null +++ b/src/main/java/net/pterodactylus/sone/web/page/PageToadletFactory.java @@ -0,0 +1,75 @@ +/* + * shortener - PageToadletFactory.java - Copyright © 2010 David Roden + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package net.pterodactylus.sone.web.page; + +import freenet.client.HighLevelSimpleClient; + +/** + * Factory that creates {@link PageToadlet}s using a given + * {@link HighLevelSimpleClient}. + * + * @author David ‘Bombe’ Roden + */ +public class PageToadletFactory { + + /** The client to use when creating the toadlets. */ + private final HighLevelSimpleClient highLevelSimpleClient; + + /** The prefix for all pages’ paths. */ + private final String pathPrefix; + + /** + * Creates a new {@link PageToadlet} factory. + * + * @param highLevelSimpleClient + * The client to use when creating the toadlets + * @param pathPrefix + * The path that is prepended to all pages’ paths + */ + public PageToadletFactory(HighLevelSimpleClient highLevelSimpleClient, String pathPrefix) { + this.highLevelSimpleClient = highLevelSimpleClient; + this.pathPrefix = pathPrefix; + } + + /** + * Creates a {@link PageToadlet} that wraps the given page and does not + * appear in the node’s menu. + * + * @param page + * The page to wrap + * @return The toadlet wrapped around the page + */ + public PageToadlet createPageToadlet(Page page) { + return createPageToadlet(page, null); + } + + /** + * Creates a {@link PageToadlet} that wraps the given page and appears in + * the node’s menu under the given name. + * + * @param page + * The page to wrap + * @param menuName + * The name of the menu item + * @return The toadlet wrapped around the page + */ + public PageToadlet createPageToadlet(Page page, String menuName) { + return new PageToadlet(highLevelSimpleClient, menuName, page, pathPrefix); + } + +}