package org.kie.eclipse.navigator.view.actions.dialogs; import java.io.IOException; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Shell; import org.kie.eclipse.navigator.Activator; import org.kie.eclipse.server.IKieOrganizationHandler; import org.kie.eclipse.server.IKieServerHandler; import com.eclipsesource.json.JsonObject; import com.eclipsesource.json.JsonValue; public class CreateOrganizationRequestDialog extends AbstractKieRequestDialog { IKieServerHandler server; KieRequestDialogTextField name; KieRequestDialogTextField description; KieRequestDialogTextField owner; KieRequestDialogTextField defaultGroupId; public CreateOrganizationRequestDialog(Shell shell, final IKieServerHandler server) { super(shell, "Organizational Unit", new IKieRequestValidator() { @Override public String isValid(JsonObject object) { JsonValue jv; jv = object.get("name"); String name = jv==null ? null : jv.asString().trim(); jv = object.get("owner"); String owner = jv==null ? null : jv.asString().trim(); if (name!=null && !name.isEmpty()) { try { for (IKieOrganizationHandler org : server.getOrganizations()) { if (org.getName().equals(name)) return "Organizational Unit '"+name+"' already exists"; } } catch (IOException e) { } } else { return "Name is required"; } if (owner==null || owner.isEmpty()) return "Owner is required"; return null; } }); setTitleImage(Activator.getImage("icons/wizban/organization.png")); this.server = server; } @Override protected void createFields(Composite composite) { setMessage("Enter the Organizational Unit details"); name = new KieRequestDialogTextField(composite, "Name:", "", properties, "name"); name.setChangeListener(new IKieRequestChangeListener() { @Override public void objectChanged(JsonObject object) { validate(); } }); description = new KieRequestDialogTextField(composite, "Description:", "", properties, "description"); owner = new KieRequestDialogTextField(composite, "Owner:", "", properties, "owner"); owner.setChangeListener(new IKieRequestChangeListener() { @Override public void objectChanged(JsonObject object) { validate(); } }); defaultGroupId = new KieRequestDialogTextField(composite, "Default Group ID:", "", properties, "defaultGroupId"); } }