X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FSoneAccessor.java;h=f6d3d2d15bc7c398b66d57d9a8bd714ef1ff1ea3;hp=c4eac6c73cae5d43062ecf10ae0651381111ee5e;hb=c9e306ac8e3ada846e87a0cc256a20fc148f381c;hpb=a211a3bd360593efc9e7fba33d607a3b14d0a965 diff --git a/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java b/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java index c4eac6c..f6d3d2d 100644 --- a/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java +++ b/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java @@ -17,13 +17,20 @@ package net.pterodactylus.sone.template; +import java.util.logging.Level; +import java.util.logging.Logger; + import net.pterodactylus.sone.core.Core; -import net.pterodactylus.sone.core.Core.SoneStatus; import net.pterodactylus.sone.data.Profile; import net.pterodactylus.sone.data.Sone; +import net.pterodactylus.sone.data.Sone.SoneStatus; +import net.pterodactylus.sone.freenet.wot.Trust; +import net.pterodactylus.sone.web.WebInterface; +import net.pterodactylus.sone.web.ajax.GetTimesAjaxPage; +import net.pterodactylus.util.logging.Logging; import net.pterodactylus.util.template.Accessor; -import net.pterodactylus.util.template.DataProvider; import net.pterodactylus.util.template.ReflectionAccessor; +import net.pterodactylus.util.template.TemplateContext; /** * {@link Accessor} for {@link Sone}s that adds a couple of properties to Sones. @@ -34,7 +41,7 @@ import net.pterodactylus.util.template.ReflectionAccessor; *
friend
*
Will return {@code true} if the sone in question is a friend of the * currently logged in Sone (as determined by accessing the “currentSone” - * variable of the given {@link DataProvider}).
+ * variable of the given {@link TemplateContext}). *
current
*
Will return {@code true} if the sone in question is the currently logged * in Sone.
@@ -44,6 +51,9 @@ import net.pterodactylus.util.template.ReflectionAccessor; */ public class SoneAccessor extends ReflectionAccessor { + /** The logger. */ + private static final Logger logger = Logging.getLogger(SoneAccessor.class); + /** The core. */ private final Core core; @@ -61,39 +71,49 @@ public class SoneAccessor extends ReflectionAccessor { * {@inheritDoc} */ @Override - public Object get(DataProvider dataProvider, Object object, String member) { + public Object get(TemplateContext templateContext, Object object, String member) { Sone sone = (Sone) object; if (member.equals("niceName")) { return getNiceName(sone); } else if (member.equals("local")) { - return sone.getInsertUri() != null; + return core.isLocalSone(sone); } else if (member.equals("friend")) { - Sone currentSone = (Sone) dataProvider.getData("currentSone"); + Sone currentSone = (Sone) templateContext.get("currentSone"); return (currentSone != null) && currentSone.hasFriend(sone.getId()); } else if (member.equals("current")) { - Sone currentSone = (Sone) dataProvider.getData("currentSone"); + Sone currentSone = (Sone) templateContext.get("currentSone"); return (currentSone != null) && currentSone.equals(sone); } else if (member.equals("modified")) { return core.isModifiedSone(sone); } else if (member.equals("status")) { - return core.getSoneStatus(sone); + return sone.getStatus(); } else if (member.equals("unknown")) { - return core.getSoneStatus(sone) == SoneStatus.unknown; + return sone.getStatus() == SoneStatus.unknown; } else if (member.equals("idle")) { - return core.getSoneStatus(sone) == SoneStatus.idle; + return sone.getStatus() == SoneStatus.idle; } else if (member.equals("inserting")) { - return core.getSoneStatus(sone) == SoneStatus.inserting; + return sone.getStatus() == SoneStatus.inserting; } else if (member.equals("downloading")) { - return core.getSoneStatus(sone) == SoneStatus.downloading; + return sone.getStatus() == SoneStatus.downloading; } else if (member.equals("new")) { - return core.isNewSone(sone); + return !sone.isKnown(); } else if (member.equals("locked")) { return core.isLocked(sone); + } else if (member.equals("lastUpdatedText")) { + return GetTimesAjaxPage.getTime((WebInterface) templateContext.get("webInterface"), sone.getTime()); } else if (member.equals("trust")) { - Sone currentSone = (Sone) dataProvider.getData("currentSone"); - return core.getTrust(currentSone, sone); + Sone currentSone = (Sone) templateContext.get("currentSone"); + if (currentSone == null) { + return null; + } + Trust trust = core.getTrust(currentSone, sone); + logger.log(Level.FINEST, String.format("Trust for %s by %s: %s", sone, currentSone, trust)); + if (trust == null) { + return new Trust(null, null, null); + } + return trust; } - return super.get(dataProvider, object, member); + return super.get(templateContext, object, member); } //