/**
* 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.nbactions.submenu;
import java.util.ArrayList;
import org.jkan997.slingbeans.helper.LogHelper;
import org.jkan997.slingbeans.nbactions.AbstractAction;
import org.jkan997.slingbeans.nbactions.BuildBundleAction;
import org.jkan997.slingbeans.nbactions.CheckoutAction;
import org.jkan997.slingbeans.nbactions.SynchronizeAction;
import org.jkan997.slingbeans.nbactions.SynchronizeWithDialogAction;
import org.openide.awt.ActionID;
import org.openide.awt.ActionReference;
import org.openide.awt.ActionReferences;
import org.openide.awt.ActionRegistration;
import org.openide.loaders.DataObject;
import org.openide.nodes.Node;
import org.openide.util.actions.Presenter;
/*
@ActionID(
category = "SlingFs",
id = "org.jkan997.slingbeans.nbactions.submenu.")
@ActionRegistration(
displayName = "Sling sm")
@ActionReferences({
@ActionReference(path = "Loaders/folder/any/Actions", position = 111)
})
*/
public class ProjectSubmenu extends AbstractSubmenu implements Presenter.Popup {
protected final DataObject context;
private ProjectSubmenu() {
actions = new ArrayList<AbstractAction>();
context = null;
this.setActionName("SlingBeans");
}
@Override
protected boolean enable(Node[] nodes) {
super.enable(nodes);
Node node = this.getSelectedNode();
DataObject dataObject = node.getCookie(DataObject.class);
if (dataObject == null) {
LogHelper.logInfo(this, "Null data object");
return false;
}
LogHelper.logInfo(this, "Submenu", dataObject);
actions.clear();
CheckoutAction checkoutAction = new CheckoutAction(dataObject);
addAction(checkoutAction);
SynchronizeAction synchronizeAction = new SynchronizeAction(dataObject);
addAction(synchronizeAction);
SynchronizeWithDialogAction synchronizeWithDialogAction = new SynchronizeWithDialogAction(dataObject);
addAction(synchronizeWithDialogAction);
BuildBundleAction buildBundleAction = new BuildBundleAction(dataObject);
addAction(buildBundleAction);
return true;
}
}