package org.kie.eclipse.navigator.view.actions.organization;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.widgets.Display;
import org.kie.eclipse.navigator.view.actions.KieNavigatorAction;
import org.kie.eclipse.navigator.view.actions.dialogs.CreateRepositoryRequestDialog;
import org.kie.eclipse.navigator.view.content.IContainerNode;
import org.kie.eclipse.server.IKieOrganizationHandler;
import org.kie.eclipse.server.IKieServiceDelegate;
import org.kie.eclipse.server.KieRepositoryHandler;
import com.eclipsesource.json.JsonObject;
public class CreateRepositoryAction extends KieNavigatorAction {
protected CreateRepositoryAction(ISelectionProvider provider, String text) {
super(provider, text);
}
public CreateRepositoryAction(ISelectionProvider selectionProvider) {
this(selectionProvider, "Create Repository...");
}
public void run() {
IContainerNode<?> container = getContainer();
if (container==null)
return;
IKieOrganizationHandler organization = (IKieOrganizationHandler) container.getHandler();
IKieServiceDelegate delegate = getDelegate();
CreateRepositoryRequestDialog dlg = new CreateRepositoryRequestDialog(Display.getDefault().getActiveShell(), organization);
if (dlg.open()== Window.OK){
JsonObject properties = dlg.getResult();
String name = properties.get("name").asString().trim();
KieRepositoryHandler repository = new KieRepositoryHandler(organization, name);
repository.setProperties(properties);
try {
delegate.createRepository(repository);
refreshViewer(container);
}
catch (Exception e) {
handleException(e);
}
}
}
}