package com.kodcu.component;
import com.kodcu.config.DocbookConfigBean;
import com.kodcu.config.HtmlConfigBean;
import com.kodcu.config.OdfConfigBean;
import com.kodcu.config.PreviewConfigBean;
import com.kodcu.controller.ApplicationController;
import com.kodcu.engine.AsciidocWebkitConverter;
import com.kodcu.other.Current;
import com.kodcu.service.DirectoryService;
import com.kodcu.service.ThreadService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* Created by usta on 09.04.2015.
*/
@Component
public class HtmlPane extends ViewPanel {
private final PreviewConfigBean previewConfigBean;
private final OdfConfigBean odfConfigBean;
private final DocbookConfigBean docbookConfigBean;
private final HtmlConfigBean htmlConfigBean;
private final ThreadService threadService;
@Value("${application.index.url}")
private String indexUrl;
@Value("${application.preview.url}")
private String previewUrl;
private final AsciidocWebkitConverter asciidocWebkitConverter;
private final DirectoryService directoryService;
@Autowired
public HtmlPane(ThreadService threadService, ApplicationController controller, Current current, PreviewConfigBean previewConfigBean, OdfConfigBean odfConfigBean, DocbookConfigBean docbookConfigBean, HtmlConfigBean htmlConfigBean, AsciidocWebkitConverter asciidocWebkitConverter, DirectoryService directoryService) {
super(threadService, controller, current);
this.previewConfigBean = previewConfigBean;
this.odfConfigBean = odfConfigBean;
this.docbookConfigBean = docbookConfigBean;
this.htmlConfigBean = htmlConfigBean;
this.threadService = threadService;
this.asciidocWebkitConverter = asciidocWebkitConverter;
this.directoryService = directoryService;
}
@Override
public void load(String url) {
super.load(url);
}
public void refreshUI(String content) {
threadService.runActionLater(() -> {
this.setMember("lastRenderedValue", content);
webEngine().executeScript("refreshUI(lastRenderedValue)");
});
}
public void updateBase64Url(int index, String imageBase64) {
threadService.runActionLater(() -> {
getWindow().call("updateBase64Url", index, imageBase64);
});
}
@Override
public void browse() {
controller.browseInDesktop(String.format(indexUrl, controller.getPort(), directoryService.interPath()));
}
@Override
public void runScroller(String text) {
getWindow().call("runScroller", text);
}
@Override
public void scrollByPosition(String text) {
if (stopScrolling.get())
return;
runScroller(text);
}
@Override
public void scrollByLine(String text) {
if (stopJumping.get())
return;
runScroller(text);
}
}