/** * 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.nbtree; import java.awt.Image; import java.util.ArrayList; import java.util.List; import javax.swing.Action; import org.jkan997.slingbeans.helper.LogHelper; import org.jkan997.slingbeans.nbactions.submenu.AddSubmenu; import org.jkan997.slingbeans.nbactions.submenu.CQ5Submenu; import org.jkan997.slingbeans.slingfs.FileObject; import org.openide.explorer.view.BeanTreeView; import org.openide.nodes.AbstractNode; import org.openide.nodes.Children; import org.openide.util.Lookup; import org.openide.util.Utilities; /** * * @author jkan997 */ public class SlingRootNode extends AbstractNode { private FileObject rootFileObject = null; private BeanTreeView beanTreeView; private Action[] actionsArr = null; private String defaultName = "Not connected"; public SlingRootNode(Children children) { super(children); setName(defaultName); } public SlingRootNode(Children children, Lookup lookup) { super(children, lookup); setName(defaultName); } @Override public void setName(String newName) { String oldName = this.getName(); super.setName(newName); super.setDisplayName(newName); fireNameChange(oldName, newName); fireDisplayNameChange(oldName, newName); } @Override public Action[] getActions(boolean popup) { if (actionsArr == null) { List<Action> actions = new ArrayList<Action>(); AddSubmenu addSubmenu = new AddSubmenu(this); actions.add(addSubmenu); try { boolean aemMode = (rootFileObject.getFileSystem().isCQ5()); CQ5Submenu cq5submenu = new CQ5Submenu(this, this.rootFileObject, aemMode); actions.add(cq5submenu); } catch (Exception ex) { LogHelper.logError(ex); } actionsArr = actions.toArray(new Action[]{}); } return actionsArr; } @Override public Image getIcon(int type) { return Utilities.loadImage("org/jkan997/slingbeans/nbicons/folder.png"); } @Override public Image getOpenedIcon(int type) { return getIcon(type); } public BeanTreeView getBeanTreeView() { return beanTreeView; } public void setBeanTreeView(BeanTreeView beanTreeView) { this.beanTreeView = beanTreeView; } public FileObject getRootFileObject() { return rootFileObject; } public void setRootFileObject(FileObject rootFileObject) { this.rootFileObject = rootFileObject; } public void refresh() { refresh(true); } public void refresh(boolean expandNodeAfter) { } }