/** * 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 java.io.FileWriter; import javax.swing.text.StyledDocument; import org.jkan997.slingbeans.dialogs.NewNodeDialog; import org.jkan997.slingbeans.helper.LogHelper; import org.jkan997.slingbeans.helper.SwingHelper; import org.jkan997.slingbeans.nbprojects.maven.LocalSlingNode; 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 AddFileAction extends AbstractAction { public AddFileAction(LocalSlingNode node) { setActionName("Add file..."); this.node = node; } @Override public void actionPerformed(ActionEvent e) { try { LocalSlingNode slingNode = (LocalSlingNode) node; File parentFile = new File(slingNode.getFileObject().getLocalFilePath()); if (!parentFile.isDirectory()) { LogHelper.logInfo(this, "The %s is not a folder cannot add file.", parentFile.getPath()); } NewNodeDialog npd = new NewNodeDialog(null, true); SwingHelper.showDialog(npd); if (npd.isCreateNode()) { String newFileName = npd.getSelectedNodeName(); if ((newFileName != null) && (!"".equals(newFileName.trim()))) { File newFile = new File(slingNode.getFileObject().getLocalFilePath() + "/" + newFileName); FileWriter fw = new FileWriter(newFile); fw.append(""); fw.close(); FileObject fo = FileUtil.toFileObject(newFile); DataObject d = DataObject.find(fo); System.out.println("Data object " + d); 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(); } } } RefreshAction refreshAction = new RefreshAction(slingNode); refreshAction.actionPerformed(e); } } catch (Exception ex) { LogHelper.logError(ex); } } }