diff options
author | Kenji Hosokawa <khosokawa@jp.adit-jv.com> | 2021-08-03 18:42:39 +0900 |
---|---|---|
committer | Kenji Hosokawa <khosokawa@jp.adit-jv.com> | 2021-08-06 19:32:38 +0900 |
commit | be4f78978faba3d3ceb88df02a7f93a2e09ff1e0 (patch) | |
tree | 1f3f1a96251ac4f655c8a96fc33d5d4ee779cd06 /rba.tool.editor.ui/src/rba/tool/editor/ui/wizard | |
parent | 71ca7c6cab863767ef30c8bd05b2bbfda8731cb5 (diff) |
Initial commit
Bug-AGL: SPEC-4033
Signed-off-by: Kenji Hosokawa <khosokawa@jp.adit-jv.com>
Diffstat (limited to 'rba.tool.editor.ui/src/rba/tool/editor/ui/wizard')
9 files changed, 261 insertions, 0 deletions
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/ExtendRBAModelProjectCreator.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/ExtendRBAModelProjectCreator.xtend new file mode 100644 index 0000000..70114cc --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/ExtendRBAModelProjectCreator.xtend @@ -0,0 +1,12 @@ +package rba.tool.editor.ui.wizard + +import rba.tool.editor.ui.wizard.RBAModelProjectCreator +import rba.tool.editor.util.RBAModelEditorNameUtil + +class ExtendRBAModelProjectCreator extends RBAModelProjectCreator { + + override public getModelFolderName() { + return RBAModelEditorNameUtil.BUILD_FOLDER_NAME; + } + +}
\ No newline at end of file diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAEmptyModelNewProjectWizardEx.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAEmptyModelNewProjectWizardEx.java new file mode 100644 index 0000000..f845fa9 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAEmptyModelNewProjectWizardEx.java @@ -0,0 +1,48 @@ +package rba.tool.editor.ui.wizard;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.Paths;
+
+import org.apache.commons.io.FileUtils;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.xtext.ui.wizard.IProjectCreator;
+
+import com.google.inject.Inject;
+
+public class RBAEmptyModelNewProjectWizardEx extends RBAModelNewProjectWizardEx {
+
+ private static final String DEFAULT_TEMPLATE_PATH = "RBATool\\empty_project"; //$NON-NLS-1$
+
+ @Inject
+ public RBAEmptyModelNewProjectWizardEx(IProjectCreator projectCreator) {
+ super(projectCreator);
+ }
+
+ @Override
+ protected void copyResources(IProject project) throws IOException, URISyntaxException, CoreException {
+ URL installLocationUrl = Platform.getInstallLocation().getURL();
+ String installLocationPath = new File(installLocationUrl.getPath()).toString();
+
+ java.nio.file.Path runtimePath = Paths.get(installLocationPath, DEFAULT_TEMPLATE_PATH);
+
+ URI locationURI = project.getLocationURI();
+
+ File srcRuntime = new File(runtimePath.toString());
+ File dst = new File(locationURI.getPath());
+
+ if (srcRuntime.exists()) {
+ FileUtils.copyDirectory(srcRuntime, dst);
+ }
+
+ project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardEx.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardEx.java new file mode 100644 index 0000000..47cda5f --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardEx.java @@ -0,0 +1,115 @@ +package rba.tool.editor.ui.wizard; + +import java.io.File; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Paths; + +import org.apache.commons.io.FileUtils; +import org.eclipse.core.internal.events.BuildCommand; +import org.eclipse.core.resources.ICommand; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IFolder; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IProjectDescription; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.ide.IDE; +import org.eclipse.xtext.ui.wizard.IProjectCreator; + +import com.google.inject.Inject; + +public class RBAModelNewProjectWizardEx extends RBAModelNewProjectWizard { + + private static final String DEFAULT_TEMPLATE_PATH = "RBATool\\Project"; //$NON-NLS-1$ + + @Inject + public RBAModelNewProjectWizardEx(IProjectCreator projectCreator) { + super(projectCreator); + } + + @Override + public boolean performFinish() { + + boolean performFinish = super.performFinish(); + + String projectName = getMainPage().getProjectName(); + IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); + + try { + setProjectSettings(project, projectName); + copyResources(project); + + String pathStr = project.getName() + "/model"; + IFolder ifolder = ResourcesPlugin.getWorkspace().getRoot().getFolder(new Path(pathStr)); + + if (ifolder.exists()) { + IResource[] members = ifolder.members(); + if (members.length > 0 && members[0] instanceof IFile) { + IFile ifile = (IFile) members[0]; + IWorkbench workbench = PlatformUI.getWorkbench(); + IWorkbenchWindow window = workbench.getActiveWorkbenchWindow(); + try { + IDE.openEditor(window.getActivePage(), ifile); + } catch (PartInitException e) { + e.printStackTrace(); + } + } + } + + } catch (IOException e) { + e.printStackTrace(); + } catch (URISyntaxException e) { + e.printStackTrace(); + } catch (CoreException e) { + e.printStackTrace(); + } + + return performFinish; + } + + @SuppressWarnings("restriction") + private void setProjectSettings(IProject project, String projectName) throws CoreException { + + IProjectDescription description = ResourcesPlugin.getWorkspace().getRoot().getWorkspace().newProjectDescription(projectName); + BuildCommand rbacommand = new BuildCommand(); + rbacommand.setBuilderName("rba.tool.RBAToolBuilder"); //$NON-NLS-1$ + BuildCommand xcommand = new BuildCommand(); + xcommand.setBuilderName("org.eclipse.xtext.ui.shared.xtextBuilder"); //$NON-NLS-1$ + ICommand[] commands = new BuildCommand[] { rbacommand, xcommand }; + description.setBuildSpec(commands); + + String[] natures = new String[] { "org.eclipse.xtext.ui.shared.xtextNature" }; //$NON-NLS-1$ //$NON-NLS-2$ + description.setNatureIds(natures); + + project.setDescription(description, new NullProgressMonitor()); + } + + protected void copyResources(IProject project) throws IOException, URISyntaxException, CoreException { + URL installLocationUrl = Platform.getInstallLocation().getURL(); + String installLocationPath = new File(installLocationUrl.getPath()).toString(); + + java.nio.file.Path runtimePath = Paths.get(installLocationPath, DEFAULT_TEMPLATE_PATH); + + URI locationURI = project.getLocationURI(); + + File srcRuntime = new File(runtimePath.toString()); + File dst = new File(locationURI.getPath()); + + if (srcRuntime.exists()) { + FileUtils.copyDirectory(srcRuntime, dst); + } + + project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardInitialContents.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardInitialContents.xtend new file mode 100644 index 0000000..61ded06 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardInitialContents.xtend @@ -0,0 +1,12 @@ +/* + * generated by Xtext 2.13.0 + */ +package rba.tool.editor.ui.wizard + +import org.eclipse.xtext.generator.IFileSystemAccess2 + +class RBAModelNewProjectWizardInitialContents { + + def generateInitialContents(IFileSystemAccess2 fsa) { + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelProjectInfo.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelProjectInfo.java new file mode 100644 index 0000000..7d6894e --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelProjectInfo.java @@ -0,0 +1,10 @@ +/* + * generated by Xtext 2.12.0 + */ +package rba.tool.editor.ui.wizard; + +import org.eclipse.xtext.ui.wizard.DefaultProjectInfo; + +public class RBAModelProjectInfo extends DefaultProjectInfo { + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelWizardNewProjectCreationPage.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelWizardNewProjectCreationPage.java new file mode 100644 index 0000000..f207276 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelWizardNewProjectCreationPage.java @@ -0,0 +1,14 @@ +/* + * generated by Xtext 2.12.0 + */ +package rba.tool.editor.ui.wizard; + +import org.eclipse.ui.dialogs.WizardNewProjectCreationPage; + +public class RBAModelWizardNewProjectCreationPage extends WizardNewProjectCreationPage { + + public RBAModelWizardNewProjectCreationPage(String pageName) { + super(pageName); + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelNewProjectWizardInitialContents.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelNewProjectWizardInitialContents.xtend new file mode 100644 index 0000000..d2c9c92 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelNewProjectWizardInitialContents.xtend @@ -0,0 +1,26 @@ +/* + * generated by Xtext 2.13.0 + */ +package rba.tool.editor.ui.wizard + + +import com.google.inject.Inject +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.resource.FileExtensionProvider + +class RBATemplateModelNewProjectWizardInitialContents { + @Inject + FileExtensionProvider fileExtensionProvider + + def generateInitialContents(IFileSystemAccess2 fsa) { + fsa.generateFile( + "src/model/Model." + fileExtensionProvider.primaryFileExtension, + ''' + /* + * This is an example model + */ + Hello Xtext! + ''' + ) + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelProjectInfo.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelProjectInfo.java new file mode 100644 index 0000000..c22d512 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelProjectInfo.java @@ -0,0 +1,10 @@ +/* + * generated by Xtext 2.13.0 + */ +package rba.tool.editor.ui.wizard; + +import org.eclipse.xtext.ui.wizard.DefaultProjectInfo; + +public class RBATemplateModelProjectInfo extends DefaultProjectInfo { + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelWizardNewProjectCreationPage.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelWizardNewProjectCreationPage.java new file mode 100644 index 0000000..27da49b --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelWizardNewProjectCreationPage.java @@ -0,0 +1,14 @@ +/* + * generated by Xtext 2.13.0 + */ +package rba.tool.editor.ui.wizard; + +import org.eclipse.ui.dialogs.WizardNewProjectCreationPage; + +public class RBATemplateModelWizardNewProjectCreationPage extends WizardNewProjectCreationPage { + + public RBATemplateModelWizardNewProjectCreationPage(String pageName) { + super(pageName); + } + +} |