package org.kie.eclipse.navigator.view.actions.server;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.window.Window;
import org.kie.eclipse.navigator.view.actions.KieNavigatorAction;
import org.kie.eclipse.navigator.view.actions.dialogs.CreateOrganizationRequestDialog;
import org.kie.eclipse.navigator.view.content.IContainerNode;
import org.kie.eclipse.server.IKieServerHandler;
import org.kie.eclipse.server.IKieServiceDelegate;
import org.kie.eclipse.server.KieOrganizationHandler;
import com.eclipsesource.json.JsonObject;
public class CreateOrganizationAction extends KieNavigatorAction {
protected CreateOrganizationAction(ISelectionProvider provider, String text) {
super(provider, text);
}
public CreateOrganizationAction(ISelectionProvider selectionProvider) {
this(selectionProvider, "Create Organization...");
}
public void run() {
IContainerNode<?> container = getContainer();
if (container==null)
return;
IKieServerHandler server = (IKieServerHandler) container.getHandler();
IKieServiceDelegate delegate = getDelegate();
CreateOrganizationRequestDialog dlg = new CreateOrganizationRequestDialog(getShell(), server);
if (dlg.open()==Window.OK) {
JsonObject properties = dlg.getResult();
String name = properties.get("name").asString().trim();
KieOrganizationHandler organization = new KieOrganizationHandler(server, name);
organization.setProperties(properties);
try {
delegate.createOrganization(organization);
refreshViewer(container);
}
catch (Exception e) {
handleException(e);
}
}
}
}