diff src/nabble/view/web/template/MessageNamespace.java @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/nabble/view/web/template/MessageNamespace.java	Thu Mar 21 19:15:52 2019 -0600
@@ -0,0 +1,114 @@
+package nabble.view.web.template;
+
+import fschmidt.html.Html;
+import nabble.model.FileUpload;
+import nabble.model.MailMessageFormat;
+import nabble.model.Message;
+import nabble.model.Node;
+import nabble.naml.compiler.Command;
+import nabble.naml.compiler.CommandSpec;
+import nabble.naml.compiler.IPrintWriter;
+import nabble.naml.compiler.Interpreter;
+import nabble.naml.compiler.Namespace;
+import nabble.naml.compiler.ScopedInterpreter;
+
+
+@Namespace (
+	name = "message",
+	global = false
+)
+public final class MessageNamespace {
+	private final Message message;
+
+	public MessageNamespace(Message message) {
+		this.message = message;
+	}
+
+	@Command public void as_text(IPrintWriter out,Interpreter interp) {
+		out.print( interp.encode(message.getText()) );
+	}
+
+	@Command public void as_quoted_text(IPrintWriter out,Interpreter interp) {
+		boolean isMail = message.getFormat() instanceof MailMessageFormat;
+		if( isMail ) {
+			Html html = new Html(message.getText());
+			MailMessageFormat.tagEmails(html,(Node)message.getSource());
+			out.print(html);
+		} else {
+			Html html = new Html(message.getRaw());
+			FileUpload.processFileTags(html,message.getSource());
+			out.print(html);
+		}
+	}
+
+	@Command public void as_text_without_quotes(IPrintWriter out,Interpreter interp) {
+		out.print( interp.encode(message.getTextWithoutQuotes()) );
+	}
+
+	@Command public void as_raw(IPrintWriter out,Interpreter interp) {
+		out.print( message.getRaw() );
+	}
+
+	@Command public void as_editable(IPrintWriter out,Interpreter interp) {
+		boolean isMail = message.getFormat() instanceof MailMessageFormat;
+		out.print( isMail ? message.getText() : message.getRaw() );
+	}
+
+	@Command public void is_imported_mail(IPrintWriter out,Interpreter interp) {
+		out.print( message.getFormat().isMail() );
+	}
+
+	@Command public void is_html_format(IPrintWriter out,Interpreter interp) {
+		out.print( message.getFormat() == Message.Format.HTML );
+	}
+
+	@Command public void is_text_format(IPrintWriter out,Interpreter interp) {
+		out.print( message.getFormat() == Message.Format.TEXT );
+	}
+
+	@Command public void is_deleted(IPrintWriter out,Interpreter interp) {
+		out.print( message.isDeleted() );
+	}
+
+	@Command public void is_deactivated(IPrintWriter out,Interpreter interp) {
+		out.print( message.isDeactivated() );
+	}
+
+	@Command public void format(IPrintWriter out,Interpreter interp) {
+		String s = message.getFormat().getName();
+		if( s.equals("subscription") )
+			s = "mail";  // hack for now
+		out.print(s);
+	}
+
+
+	public static final CommandSpec as_html_list = CommandSpec.DO;
+
+	@Command public void as_html_list(IPrintWriter out,ScopedInterpreter<HtmlListNamespace> interp) {
+		HtmlListNamespace html = new HtmlListNamespace( message.parse(), message.getSource(), message.getFormat());
+		interp.getArgString(html,"do");
+		out.print(html);
+	}
+
+	public static final CommandSpec as_raw_html_list = CommandSpec.DO;
+
+	@Command public void as_raw_html_list(IPrintWriter out,ScopedInterpreter<HtmlListNamespace> interp) {
+		HtmlListNamespace html = new HtmlListNamespace( new Html(message.getRaw()), message.getSource(), message.getFormat());
+		interp.getArgString(html,"do");
+		out.print(html);
+	}
+
+	public static final CommandSpec as_text_list = CommandSpec.DO;
+
+	@Command public void as_text_list(IPrintWriter out,ScopedInterpreter<HtmlListNamespace> interp) {
+		boolean isMail = message.getFormat() instanceof MailMessageFormat;
+		if( isMail ) {
+			out.print( message.getText() );
+		} else {
+			HtmlListNamespace html = new HtmlListNamespace( message.parseForMailText(), message.getSource(), message.getFormat());
+			interp.getArgString(html,"do");
+			out.print( html.toMailText() );
+		}
+	}
+
+}