- PageToadletFactory pageToadletFactory = new PageToadletFactory(sonePlugin.pluginRespirator().getHLSimpleClient(), "/Sone/");
- pageToadlets.add(pageToadletFactory.createPageToadlet(new RedirectPage<FreenetRequest>("", "index.html")));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new IndexPage(indexTemplate, this, postVisibilityFilter), "Index"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new NewPage(newTemplate, this), "New"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new CreateSonePage(createSoneTemplate, this), "CreateSone"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new KnownSonesPage(knownSonesTemplate, this), "KnownSones"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new EditProfilePage(editProfileTemplate, this), "EditProfile"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new EditProfileFieldPage(editProfileFieldTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DeleteProfileFieldPage(deleteProfileFieldTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new CreatePostPage(createPostTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new CreateReplyPage(createReplyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new ViewSonePage(viewSoneTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new ViewPostPage(viewPostTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new LikePage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new UnlikePage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DeletePostPage(deletePostTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DeleteReplyPage(deleteReplyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new LockSonePage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new UnlockSonePage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new FollowSonePage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new UnfollowSonePage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new ImageBrowserPage(imageBrowserTemplate, this), "ImageBrowser"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new CreateAlbumPage(createAlbumTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new EditAlbumPage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DeleteAlbumPage(deleteAlbumTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new UploadImagePage(invalidTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new EditImagePage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DeleteImagePage(deleteImageTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new TrustPage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DistrustPage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new UntrustPage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new MarkAsKnownPage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new BookmarkPage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new UnbookmarkPage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new BookmarksPage(bookmarksTemplate, this), "Bookmarks"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new SearchPage(searchTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DeleteSonePage(deleteSoneTemplate, this), "DeleteSone"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new LoginPage(loginTemplate, this), "Login"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new LogoutPage(emptyTemplate, this), "Logout"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new OptionsPage(optionsTemplate, this), "Options"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new RescuePage(rescueTemplate, this), "Rescue"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new AboutPage(aboutTemplate, this, new PluginVersion(SonePlugin.getPluginVersion()), new PluginYear(SonePlugin.getYear()), new PluginHomepage(SonePlugin.getHomepage())), "About"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("noPermission.html", this, noPermissionTemplate, "Page.NoPermission.Title")));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("emptyImageTitle.html", this, emptyImageTitleTemplate, "Page.EmptyImageTitle.Title")));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("emptyAlbumTitle.html", this, emptyAlbumTitleTemplate, "Page.EmptyAlbumTitle.Title")));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DismissNotificationPage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("invalid.html", this, invalidTemplate, "Page.Invalid.Title")));
- pageToadlets.add(pageToadletFactory.createPageToadlet(loaders.<FreenetRequest>loadStaticPage("css/", "/static/css/", "text/css")));
- pageToadlets.add(pageToadletFactory.createPageToadlet(loaders.<FreenetRequest>loadStaticPage("javascript/", "/static/javascript/", "text/javascript")));
- pageToadlets.add(pageToadletFactory.createPageToadlet(loaders.<FreenetRequest>loadStaticPage("images/", "/static/images/", "image/png")));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new TemplatePage<FreenetRequest>("OpenSearch.xml", "application/opensearchdescription+xml", templateContextFactory, openSearchTemplate)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new GetImagePage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new GetTranslationAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new GetStatusAjaxPage(this, elementLoader, timeTextConverter, l10nFilter, TimeZone.getDefault())));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new GetNotificationsAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DismissNotificationAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new CreatePostAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new CreateReplyAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new GetReplyAjaxPage(this, replyTemplate)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new GetPostAjaxPage(this, postTemplate)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new GetLinkedElementAjaxPage(this, elementLoader, linkedElementRenderFilter)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new GetTimesAjaxPage(this, timeTextConverter, l10nFilter, TimeZone.getDefault())));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new MarkAsKnownAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DeletePostAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DeleteReplyAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new LockSoneAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new UnlockSoneAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new FollowSoneAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new UnfollowSoneAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new EditAlbumAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new EditImageAjaxPage(this, parserFilter, shortenFilter, renderFilter)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new TrustAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DistrustAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new UntrustAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new LikeAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new UnlikeAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new GetLikesAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new BookmarkAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new UnbookmarkAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new EditProfileFieldAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new DeleteProfileFieldAjaxPage(this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new MoveProfileFieldAjaxPage(this)));
-
- ToadletContainer toadletContainer = sonePlugin.pluginRespirator().getToadletContainer();
- toadletContainer.getPageMaker().addNavigationCategory("/Sone/index.html", "Navigation.Menu.Sone.Name", "Navigation.Menu.Sone.Tooltip", sonePlugin);
- for (PageToadlet toadlet : pageToadlets) {
- String menuName = toadlet.getMenuName();
- if (menuName != null) {
- toadletContainer.register(toadlet, "Navigation.Menu.Sone.Name", toadlet.path(), true, "Navigation.Menu.Sone.Item." + menuName + ".Name", "Navigation.Menu.Sone.Item." + menuName + ".Tooltip", false, toadlet);
- } else {
- toadletContainer.register(toadlet, null, toadlet.path(), true, false);
- }
- }
- }
-
- /**
- * Unregisters all toadlets.
- */
- private void unregisterToadlets() {
- ToadletContainer toadletContainer = sonePlugin.pluginRespirator().getToadletContainer();
- for (PageToadlet pageToadlet : pageToadlets) {
- toadletContainer.unregister(pageToadlet);
- }
- toadletContainer.getPageMaker().removeNavigationCategory("Navigation.Menu.Sone.Name");
- }
-
- /**
- * Returns all {@link Sone#isLocal() local Sone}s that are referenced by
- * {@link SonePart}s in the given text (after parsing it using
- * {@link SoneTextParser}).
- *
- * @param text
- * The text to parse
- * @return All mentioned local Sones
- */
- private Collection<Sone> getMentionedSones(String text) {
- /* we need no context to find mentioned Sones. */
- Set<Sone> mentionedSones = new HashSet<Sone>();
- for (Part part : soneTextParser.parse(text, null)) {
- if (part instanceof SonePart) {
- mentionedSones.add(((SonePart) part).getSone());
- }
- }
- return Collections2.filter(mentionedSones, Sone.LOCAL_SONE_FILTER);
- }
-
- /**
- * Returns the Sone insert notification for the given Sone. If no
- * notification for the given Sone exists, a new notification is created and
- * cached.
- *
- * @param sone
- * The Sone to get the insert notification for
- * @return The Sone insert notification
- */
- private TemplateNotification getSoneInsertNotification(Sone sone) {
- synchronized (soneInsertNotifications) {
- TemplateNotification templateNotification = soneInsertNotifications.get(sone);
- if (templateNotification == null) {
- templateNotification = new TemplateNotification(loaders.loadTemplate("/templates/notify/soneInsertNotification.html"));
- templateNotification.set("insertSone", sone);
- soneInsertNotifications.put(sone, templateNotification);
- }
- return templateNotification;
- }
- }
-
- private boolean localSoneMentionedInNewPostOrReply(Post post) {
- if (!post.getSone().isLocal()) {
- if (!getMentionedSones(post.getText()).isEmpty() && !post.isKnown()) {
- return true;
- }
- }
- for (PostReply postReply : getCore().getReplies(post.getId())) {
- if (postReply.getSone().isLocal()) {
- continue;
- }
- if (!getMentionedSones(postReply.getText()).isEmpty() && !postReply.isKnown()) {
- return true;
- }
- }
- return false;
- }
-
- //
- // EVENT HANDLERS
- //
-
- /**
- * Notifies the web interface that a new {@link Sone} was found.
- *
- * @param newSoneFoundEvent
- * The event
- */
- @Subscribe
- public void newSoneFound(NewSoneFoundEvent newSoneFoundEvent) {
- newSoneNotification.add(newSoneFoundEvent.sone());
- if (!hasFirstStartNotification()) {
- notificationManager.addNotification(newSoneNotification);
- }
- }
-
- /**
- * Notifies the web interface that a new {@link Post} was found.
- *
- * @param newPostFoundEvent
- * The event
- */
- @Subscribe
- public void newPostFound(NewPostFoundEvent newPostFoundEvent) {
- Post post = newPostFoundEvent.post();
- boolean isLocal = post.getSone().isLocal();
- if (isLocal) {
- localPostNotification.add(post);
- } else {
- newPostNotification.add(post);
- }
- if (!hasFirstStartNotification()) {
- notificationManager.addNotification(isLocal ? localPostNotification : newPostNotification);
- if (!getMentionedSones(post.getText()).isEmpty() && !isLocal) {
- mentionNotification.add(post);
- notificationManager.addNotification(mentionNotification);
- }
- } else {
- getCore().markPostKnown(post);
- }
- }
-
- /**
- * Notifies the web interface that a new {@link PostReply} was found.
- *
- * @param newPostReplyFoundEvent
- * The event
- */
- @Subscribe
- public void newReplyFound(NewPostReplyFoundEvent newPostReplyFoundEvent) {
- PostReply reply = newPostReplyFoundEvent.postReply();
- boolean isLocal = reply.getSone().isLocal();
- if (isLocal) {
- localReplyNotification.add(reply);
- } else {
- newReplyNotification.add(reply);
- }
- if (!hasFirstStartNotification()) {
- notificationManager.addNotification(isLocal ? localReplyNotification : newReplyNotification);
- if (reply.getPost().isPresent() && localSoneMentionedInNewPostOrReply(reply.getPost().get())) {
- mentionNotification.add(reply.getPost().get());
- notificationManager.addNotification(mentionNotification);
- }
- } else {
- getCore().markReplyKnown(reply);
- }
- }
-
- /**
- * Notifies the web interface that a {@link Sone} was marked as known.
- *
- * @param markSoneKnownEvent
- * The event
- */
- @Subscribe
- public void markSoneKnown(MarkSoneKnownEvent markSoneKnownEvent) {
- newSoneNotification.remove(markSoneKnownEvent.sone());
- }
-
- @Subscribe
- public void markPostKnown(MarkPostKnownEvent markPostKnownEvent) {
- removePost(markPostKnownEvent.post());
- }
-
- @Subscribe
- public void markReplyKnown(MarkPostReplyKnownEvent markPostReplyKnownEvent) {
- removeReply(markPostReplyKnownEvent.postReply());
- }
-
- @Subscribe
- public void soneRemoved(SoneRemovedEvent soneRemovedEvent) {
- newSoneNotification.remove(soneRemovedEvent.sone());
- }
-
- @Subscribe
- public void postRemoved(PostRemovedEvent postRemovedEvent) {
- removePost(postRemovedEvent.post());
- }
-
- private void removePost(Post post) {
- newPostNotification.remove(post);
- localPostNotification.remove(post);
- if (!localSoneMentionedInNewPostOrReply(post)) {
- mentionNotification.remove(post);
- }
- }
-
- @Subscribe
- public void replyRemoved(PostReplyRemovedEvent postReplyRemovedEvent) {
- removeReply(postReplyRemovedEvent.postReply());
- }
-
- private void removeReply(PostReply reply) {
- newReplyNotification.remove(reply);
- localReplyNotification.remove(reply);
- if (reply.getPost().isPresent() && !localSoneMentionedInNewPostOrReply(reply.getPost().get())) {
- mentionNotification.remove(reply.getPost().get());
- }
- }
-
- /**
- * Notifies the web interface that a Sone was locked.
- *
- * @param soneLockedEvent
- * The event
- */
- @Subscribe
- public void soneLocked(SoneLockedEvent soneLockedEvent) {
- final Sone sone = soneLockedEvent.sone();
- ScheduledFuture<?> tickerObject = ticker.schedule(new Runnable() {
-
- @Override
- @SuppressWarnings("synthetic-access")
- public void run() {
- lockedSonesNotification.add(sone);
- notificationManager.addNotification(lockedSonesNotification);
- }
- }, 5, TimeUnit.MINUTES);
- lockedSonesTickerObjects.put(sone, tickerObject);
- }
-
- /**
- * Notifies the web interface that a Sone was unlocked.
- *
- * @param soneUnlockedEvent
- * The event
- */
- @Subscribe
- public void soneUnlocked(SoneUnlockedEvent soneUnlockedEvent) {
- lockedSonesNotification.remove(soneUnlockedEvent.sone());
- lockedSonesTickerObjects.remove(soneUnlockedEvent.sone()).cancel(false);
- }
-
- /**
- * Notifies the web interface that a {@link Sone} is being inserted.
- *
- * @param soneInsertingEvent
- * The event
- */
- @Subscribe
- public void soneInserting(SoneInsertingEvent soneInsertingEvent) {
- TemplateNotification soneInsertNotification = getSoneInsertNotification(soneInsertingEvent.sone());
- soneInsertNotification.set("soneStatus", "inserting");
- if (soneInsertingEvent.sone().getOptions().isSoneInsertNotificationEnabled()) {
- notificationManager.addNotification(soneInsertNotification);
- }
- }
-
- /**
- * Notifies the web interface that a {@link Sone} was inserted.
- *
- * @param soneInsertedEvent
- * The event
- */
- @Subscribe
- public void soneInserted(SoneInsertedEvent soneInsertedEvent) {
- TemplateNotification soneInsertNotification = getSoneInsertNotification(soneInsertedEvent.sone());
- soneInsertNotification.set("soneStatus", "inserted");
- soneInsertNotification.set("insertDuration", soneInsertedEvent.insertDuration() / 1000);
- if (soneInsertedEvent.sone().getOptions().isSoneInsertNotificationEnabled()) {
- notificationManager.addNotification(soneInsertNotification);
- }
- }
-
- /**
- * Notifies the web interface that a {@link Sone} insert was aborted.
- *
- * @param soneInsertAbortedEvent
- * The event
- */
- @Subscribe
- public void soneInsertAborted(SoneInsertAbortedEvent soneInsertAbortedEvent) {
- TemplateNotification soneInsertNotification = getSoneInsertNotification(soneInsertAbortedEvent.sone());
- soneInsertNotification.set("soneStatus", "insert-aborted");
- soneInsertNotification.set("insert-error", soneInsertAbortedEvent.cause());
- if (soneInsertAbortedEvent.sone().getOptions().isSoneInsertNotificationEnabled()) {
- notificationManager.addNotification(soneInsertNotification);
- }
- }
-
- /**
- * Notifies the web interface that a new Sone version was found.
- *
- * @param updateFoundEvent
- * The event
- */
- @Subscribe
- public void updateFound(UpdateFoundEvent updateFoundEvent) {
- newVersionNotification.set("latestVersion", updateFoundEvent.version());
- newVersionNotification.set("latestEdition", updateFoundEvent.latestEdition());
- newVersionNotification.set("releaseTime", updateFoundEvent.releaseTime());
- newVersionNotification.set("disruptive", updateFoundEvent.disruptive());
- notificationManager.addNotification(newVersionNotification);
- }
-
- /**
- * Notifies the web interface that an image insert was started
- *
- * @param imageInsertStartedEvent
- * The event
- */
- @Subscribe
- public void imageInsertStarted(ImageInsertStartedEvent imageInsertStartedEvent) {
- insertingImagesNotification.add(imageInsertStartedEvent.image());
- notificationManager.addNotification(insertingImagesNotification);
- }
-
- /**
- * Notifies the web interface that an {@link Image} insert was aborted.
- *
- * @param imageInsertAbortedEvent
- * The event
- */
- @Subscribe
- public void imageInsertAborted(ImageInsertAbortedEvent imageInsertAbortedEvent) {
- insertingImagesNotification.remove(imageInsertAbortedEvent.image());
+ pageToadletRegistry.addPage(new RedirectPage<FreenetRequest>("", "index.html"));
+ pageToadletRegistry.addPage(new IndexPage(this, loaders, templateRenderer, postVisibilityFilter));
+ pageToadletRegistry.addPage(new NewPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new CreateSonePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new KnownSonesPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new EditProfilePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new EditProfileFieldPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new DeleteProfileFieldPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new CreatePostPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new CreateReplyPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new ViewSonePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new ViewPostPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new LikePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new UnlikePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new DeletePostPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new DeleteReplyPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new LockSonePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new UnlockSonePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new FollowSonePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new UnfollowSonePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new ImageBrowserPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new CreateAlbumPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new EditAlbumPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new DeleteAlbumPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new UploadImagePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new EditImagePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new DeleteImagePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new MarkAsKnownPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new BookmarkPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new UnbookmarkPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new BookmarksPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new SearchPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new DeleteSonePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new LoginPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new LogoutPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new OptionsPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new RescuePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new AboutPage(this, loaders, templateRenderer, new PluginVersion(SonePlugin.getPluginVersion()), new PluginYear(sonePlugin.getYear()), new PluginHomepage(sonePlugin.getHomepage())));
+ pageToadletRegistry.addPage(new InvalidPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new NoPermissionPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new EmptyImageTitlePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new EmptyAlbumTitlePage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new DismissNotificationPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addPage(new DebugPage(this, loaders, templateRenderer));
+ pageToadletRegistry.addDebugPage(new MetricsPage(this, loaders, templateRenderer, metricRegistry));
+ pageToadletRegistry.addPage(loaders.<FreenetRequest>loadStaticPage("css/", "/static/css/", "text/css"));
+ pageToadletRegistry.addPage(loaders.<FreenetRequest>loadStaticPage("javascript/", "/static/javascript/", "text/javascript"));
+ pageToadletRegistry.addPage(loaders.<FreenetRequest>loadStaticPage("images/", "/static/images/", "image/png"));
+ pageToadletRegistry.addPage(new TemplatePage<FreenetRequest>("OpenSearch.xml", "application/opensearchdescription+xml", templateContextFactory, openSearchTemplate));
+ pageToadletRegistry.addPage(new GetImagePage(this));
+ pageToadletRegistry.addPage(new GetTranslationAjaxPage(this));
+ pageToadletRegistry.addPage(new GetStatusAjaxPage(this, elementLoader, timeTextConverter, l10nFilter, TimeZone.getDefault()));
+ pageToadletRegistry.addPage(new GetNotificationsAjaxPage(this));
+ pageToadletRegistry.addPage(new DismissNotificationAjaxPage(this));
+ pageToadletRegistry.addPage(new CreatePostAjaxPage(this));
+ pageToadletRegistry.addPage(new CreateReplyAjaxPage(this));
+ pageToadletRegistry.addPage(new GetReplyAjaxPage(this, replyTemplate));
+ pageToadletRegistry.addPage(new GetPostAjaxPage(this, postTemplate));
+ pageToadletRegistry.addPage(new GetLinkedElementAjaxPage(this, elementLoader, linkedElementRenderFilter));
+ pageToadletRegistry.addPage(new GetTimesAjaxPage(this, timeTextConverter, l10nFilter, TimeZone.getDefault()));
+ pageToadletRegistry.addPage(new MarkAsKnownAjaxPage(this));
+ pageToadletRegistry.addPage(new DeletePostAjaxPage(this));
+ pageToadletRegistry.addPage(new DeleteReplyAjaxPage(this));
+ pageToadletRegistry.addPage(new LockSoneAjaxPage(this));
+ pageToadletRegistry.addPage(new UnlockSoneAjaxPage(this));
+ pageToadletRegistry.addPage(new FollowSoneAjaxPage(this));
+ pageToadletRegistry.addPage(new UnfollowSoneAjaxPage(this));
+ pageToadletRegistry.addPage(new EditAlbumAjaxPage(this));
+ pageToadletRegistry.addPage(new EditImageAjaxPage(this, parserFilter, shortenFilter, renderFilter));
+ pageToadletRegistry.addPage(new LikeAjaxPage(this));
+ pageToadletRegistry.addPage(new UnlikeAjaxPage(this));
+ pageToadletRegistry.addPage(new GetLikesAjaxPage(this));
+ pageToadletRegistry.addPage(new BookmarkAjaxPage(this));
+ pageToadletRegistry.addPage(new UnbookmarkAjaxPage(this));
+ pageToadletRegistry.addPage(new EditProfileFieldAjaxPage(this));
+ pageToadletRegistry.addPage(new DeleteProfileFieldAjaxPage(this));
+ pageToadletRegistry.addPage(new MoveProfileFieldAjaxPage(this));
+
+ pageToadletRegistry.registerToadlets();