TexControllerImpl.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * Copyright (c) 2025. Andrew Grant Carrick Software. All rights reserved
  3. *
  4. */
  5. package scot.carricksoftware.grantswriter.controllers;
  6. import org.apache.logging.log4j.LogManager;
  7. import org.apache.logging.log4j.Logger;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.ui.Model;
  10. import org.springframework.web.bind.annotation.GetMapping;
  11. import org.springframework.web.bind.annotation.PostMapping;
  12. import scot.carricksoftware.grantswriter.constants.AttributeConstants;
  13. import scot.carricksoftware.grantswriter.constants.MappingConstants;
  14. import scot.carricksoftware.grantswriter.constants.ViewConstants;
  15. import scot.carricksoftware.grantswriter.files.WriterFiles;
  16. import scot.carricksoftware.grantswriter.writer.TexWriter;
  17. import java.io.IOException;
  18. import static java.util.Objects.isNull;
  19. @Controller
  20. public class TexControllerImpl implements TexController {
  21. private static final Logger logger = LogManager.getLogger(TexControllerImpl.class);
  22. private final WriterFiles writerFiles;
  23. private final TexWriter texWriter;
  24. public TexControllerImpl(WriterFiles writerFiles, TexWriter texWriter) {
  25. this.writerFiles = writerFiles;
  26. this.texWriter = texWriter;
  27. }
  28. @GetMapping(MappingConstants.TEX)
  29. @Override
  30. public String screen(Model model) {
  31. logger.debug("FilesControllerImpl::screen");
  32. if (isNull(writerFiles.getLatexFileName())) {
  33. writerFiles.init();
  34. }
  35. model.addAttribute(AttributeConstants.WRITER_FILES, writerFiles);
  36. writerFiles.setStatus("Running");
  37. return ViewConstants.TEX;
  38. }
  39. @PostMapping(MappingConstants.TEX)
  40. @Override
  41. public String start(Model model) throws IOException {
  42. logger.debug("FilesControllerImpl::start");
  43. texWriter.write(writerFiles.getLatexFileName());
  44. return ViewConstants.HOME;
  45. }
  46. }