package flow.netbeans.markdown; import flow.netbeans.markdown.csl.MarkdownLanguageConfig; import flow.netbeans.markdown.options.MarkdownGlobalOptions; import javax.swing.text.Document; import org.netbeans.api.editor.mimelookup.MimeRegistration; import org.netbeans.modules.editor.NbEditorUtilities; import org.netbeans.spi.editor.document.OnSaveTask; /** * * @author junichi11 */ public final class MarkdownOnSaveTask implements OnSaveTask{ private MarkdownDataObject dataObject; private MarkdownOnSaveTask(Context context) { Document document = context.getDocument(); if (document != null) { dataObject = (MarkdownDataObject) NbEditorUtilities.getDataObject(document); } } @Override public void performTask() { if (dataObject == null) { return; } // view html if (MarkdownGlobalOptions.getInstance().isViewHtmlOnSave()) { MarkdownViewHtmlAction viewAction = new MarkdownViewHtmlAction(dataObject); viewAction.actionPerformed(null); } // export html if (MarkdownGlobalOptions.getInstance().isExportOnSave()) { MarkdownGenerateHtmlAction exportAction = new MarkdownGenerateHtmlAction(dataObject); exportAction.exportOnSave(); } } @Override public void runLocked(Runnable run) { run.run(); } @Override public boolean cancel() { return true; } @MimeRegistration(mimeType = MarkdownLanguageConfig.MIME_TYPE, service = OnSaveTask.Factory.class, position = 1500) public static final class FactoryImpl implements Factory { @Override public OnSaveTask createTask(Context context) { return new MarkdownOnSaveTask(context); } } }