/** * SlingBeans - NetBeans Sling plugin https://github.com/jkan997/SlingBeans * Licensed under Apache 2.0 license http://www.apache.org/licenses/LICENSE-2.0 */ package org.jkan997.slingbeans.nbprojects.maven.actions; import java.awt.event.ActionEvent; import java.io.File; import javax.swing.text.StyledDocument; import org.jkan997.slingbeans.helper.LogHelper; import org.jkan997.slingbeans.nbprojects.maven.LocalSlingNode; import org.jkan997.slingbeans.nbprojects.maven.LocalSlingRootNode; import org.netbeans.api.actions.Openable; import org.openide.cookies.EditorCookie; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; import org.openide.loaders.DataObject; /** * * @author jkan997 */ public class OpenFilterAction extends AbstractAction { public OpenFilterAction(LocalSlingRootNode node) { setActionName("Open filter file..."); this.node = node; } @Override public void actionPerformed(ActionEvent e) { try { LocalSlingRootNode slingRootNode = (LocalSlingRootNode) node; String contentPath = slingRootNode.getLocalFileSystem().getContentPath(); contentPath = contentPath + "/META-INF/vault/filter.xml"; File filterFile = new File(contentPath); if (filterFile.exists()) { FileObject fo = FileUtil.toFileObject(filterFile); DataObject d = DataObject.find(fo); EditorCookie ec = (EditorCookie) d.getCookie(EditorCookie.class); if (ec != null) { ec.open(); StyledDocument doc = ec.openDocument(); } else { DataObject dob = DataObject.find(fo); Openable oc = dob.getLookup().lookup(Openable.class); if (oc != null) { oc.open(); } } } } catch (Exception ex) { LogHelper.logError(ex); } } }