summaryrefslogtreecommitdiffstats
path: root/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard
diff options
context:
space:
mode:
authorKenji Hosokawa <khosokawa@jp.adit-jv.com>2021-08-03 18:42:39 +0900
committerKenji Hosokawa <khosokawa@jp.adit-jv.com>2021-08-06 19:32:38 +0900
commitbe4f78978faba3d3ceb88df02a7f93a2e09ff1e0 (patch)
tree1f3f1a96251ac4f655c8a96fc33d5d4ee779cd06 /rba.tool.editor.ui/src/rba/tool/editor/ui/wizard
parent71ca7c6cab863767ef30c8bd05b2bbfda8731cb5 (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')
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/ExtendRBAModelProjectCreator.xtend12
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAEmptyModelNewProjectWizardEx.java48
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardEx.java115
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardInitialContents.xtend12
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelProjectInfo.java10
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelWizardNewProjectCreationPage.java14
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelNewProjectWizardInitialContents.xtend26
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelProjectInfo.java10
-rw-r--r--rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelWizardNewProjectCreationPage.java14
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);
+ }
+
+}