/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package ca.weblite.netbeans.mirah; import ca.weblite.netbeans.mirah.support.api.MirahExtender; import org.netbeans.api.editor.mimelookup.MimeRegistration; import org.netbeans.api.project.FileOwnerQuery; import org.netbeans.api.project.Project; import org.netbeans.modules.editor.NbEditorUtilities; import org.netbeans.spi.editor.document.OnSaveTask; import org.openide.filesystems.FileObject; /** * * @author shannah */ public class MirahOnSaveTask implements OnSaveTask { Context context; private MirahOnSaveTask(Context context){ this.context = context; } @Override public void performTask() { FileObject fo = NbEditorUtilities.getFileObject(context.getDocument()); Project proj = FileOwnerQuery.getOwner(fo); if (!MirahExtender.isActive(proj)) { MirahExtender.activate(proj); } System.out.println("About to check if mirah is current"); if (!MirahExtender.isCurrent(proj)){ System.out.println("Mirah is not current"); MirahExtender.update(proj); } } @Override public void runLocked(Runnable r) { performTask(); } @Override public boolean cancel() { System.out.println("Cancelling...."); return false; } @MimeRegistration(mimeType="text/x-mirah", service=OnSaveTask.Factory.class, position=1500) public static class Factory implements OnSaveTask.Factory { @Override public OnSaveTask createTask(Context cntxt) { return new MirahOnSaveTask(cntxt); } } }