Package org.groovymud.object.views

Source Code of org.groovymud.object.views.ViewImpl

/**
*
*/
package org.groovymud.object.views;

import static net.wimpi.telnetd.io.terminal.ColorHelper.BOLD;
import static net.wimpi.telnetd.io.terminal.ColorHelper.colorizeText;
import static org.groovymud.utils.WordUtils.affixIndefiniteArticle;
import groovy.text.Template;
import groovy.text.TemplateEngine;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.apache.log4j.Logger;
import org.codehaus.groovy.control.CompilationFailedException;
import org.groovymud.object.MudObject;
import org.groovymud.object.alive.Alive;
import org.groovymud.shell.telnetd.ExtendedTerminalIO;
import org.groovymud.utils.text.IncludeTemplateEngine;

/**
* @author matt
*
*/
public class ViewImpl implements View {

  private transient final static Logger logger = Logger.getLogger(ViewImpl.class);

  public void writeLookHeader(Alive looker, MudObject object) {
    try {
      looker.getTerminalOutput().writeln("You see " + affixIndefiniteArticle(object.getName().toString()) + ":");
    } catch (IOException e) {
      logger.error(e, e);
    }
  }

  public void writeLookBody(Alive looker, MudObject object) {
    if (object.getDescription() != null) {
      writeDynamicText(looker, object, object.getDescription());
    }
  }

  public void writeLookFooter(Alive looker, MudObject object) {
  }

  public void writeDynamicText(Alive looker, MudObject target, String text) {

    ExtendedTerminalIO stream = looker.getTerminalOutput();
    Map binding = new HashMap();
    binding.put("it", target);
    binding.put("looker", looker);
    TemplateEngine engine = new IncludeTemplateEngine();
    try {
      //auto import some utils
      String header = "<%import static org.groovymud.utils.WordUtils.*;\nimport static org.groovymud.utils.NumberToWordConverter.*%>";
      Template template = engine.createTemplate(header + text);

      stream.writeln(colorizeText(template.make(binding).toString(), BOLD));
    } catch (CompilationFailedException e) {
      logger.error(e, e);
    } catch (ClassNotFoundException e) {
      logger.error(e, e);
    } catch (IOException e) {
      logger.error(e, e);
    }
  }
}
TOP

Related Classes of org.groovymud.object.views.ViewImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.