package org.kie.eclipse.navigator.view.actions.dialogs; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.kie.eclipse.navigator.Activator; import org.kie.eclipse.server.IKieProjectHandler; import org.kie.eclipse.server.IKieRepositoryHandler; import com.eclipsesource.json.JsonObject; import com.eclipsesource.json.JsonValue; public class CreateProjectRequestDialog extends AbstractKieRequestDialog { private final static String DESCRIPTION = "description"; private final static String ARTIFACT_ID = "artifactId"; private final static String GROUP_ID = "groupId"; private final static String VERSION = "version"; IKieRepositoryHandler repository; KieRequestDialogTextField name; KieRequestDialogTextField description; KieRequestDialogTextField groupId; KieRequestDialogTextField artifactId; KieRequestDialogTextField version; String artifactIdValue = null; boolean importProject = true; // boolean createArtifacts = true; public CreateProjectRequestDialog(Shell shell, final IKieRepositoryHandler repository) { super(shell, "Project", new IKieRequestValidator() { @Override public String isValid(JsonObject object) { final IWorkspaceRoot wsr = ResourcesPlugin.getWorkspace().getRoot(); JsonValue jv; jv = object.get("name"); String name = jv==null ? null : jv.asString().trim(); if (name!=null && !name.isEmpty()) { name = name.trim(); try { for (IKieProjectHandler p : repository.getProjects()) { if (p.getName().equals(name)) return "Project '"+name+"' already exists in Repository"; } IProject project = wsr.getProject(name); if (project.exists()) { return "Project '"+name+"' already exists in Workspace"; } } catch (Exception e) { } } else { return "Name is required"; } return null; } }); setTitleImage(Activator.getImage("icons/wizban/project.png")); this.repository = repository; } @Override protected void createFields(Composite composite) { setMessage("Enter the Project 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); groupId = new KieRequestDialogTextField(composite, "Group ID:", "", properties, GROUP_ID); artifactId = new KieRequestDialogTextField(composite, "Artifact ID:", "", properties, ARTIFACT_ID); version = new KieRequestDialogTextField(composite, "Version:", "", properties, VERSION); new Label(composite, SWT.NONE); final Button importProjectButton = new Button(composite, SWT.CHECK); importProjectButton.setText("Import the Project into my Workspace when done"); importProjectButton.setSelection(importProject); new Label(composite, SWT.NONE); // new Label(composite, SWT.NONE); // final Button createArtifactsButton = new Button(composite, SWT.CHECK); // createArtifactsButton.setText("Create Maven and KJar artifacts"); // createArtifactsButton.setSelection(createArtifacts); // new Label(composite, SWT.NONE); // // createArtifactsButton.addSelectionListener(new SelectionAdapter() { // @Override // public void widgetSelected(SelectionEvent e) { // createArtifacts = createArtifactsButton.getSelection(); // } // }); importProjectButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { importProject = importProjectButton.getSelection(); // createArtifactsButton.setEnabled(importProject); } }); } @Override public int open() { int rtn = super.open(); JsonObject object = super.getResult(); JsonValue jv = object.get(ARTIFACT_ID); if (jv!=null) artifactIdValue = jv.asString().trim(); object.remove(ARTIFACT_ID); return rtn; } public boolean shouldImportProject() { return importProject; } // public boolean shouldCreateArtifacts() { // return createArtifacts; // } public String getArtifactId() { return artifactIdValue; } }