1 package com.proalpha.pds.generator;
5 import org.eclipse.core.resources.IFile;
6 import org.eclipse.core.runtime.IProgressMonitor;
7 import org.eclipse.core.runtime.IStatus;
8 import org.eclipse.core.runtime.Status;
9 import org.eclipse.core.runtime.jobs.Job;
10 import org.eclipse.jface.dialogs.MessageDialog;
11 import org.eclipse.ui.PlatformUI;
12 import org.eclipse.ui.progress.UIJob;
14 import com.openedge.pdt.core.template.TemplateGenerationException;
15 import com.proalpha.pds.templates.data.IGeneratorDataContainer;
16 import com.proalpha.pds.templates.helper.IDEUtils;
17 import com.proalpha.pds.templates.jet.IpaTemplateGenerator;
18 import com.proalpha.pds.templates.jet.JetTemplateFactory;
36 public static final String JOB_FAMILY =
"com.proalpha.java.oea.plugins.generator.AbstractGenerator";
42 private Boolean isOpenFileInEditor = Boolean.TRUE;
60 this(name, dataContainer,
80 this.dataContainer = dataContainer;
81 this.templateGenerator = templateGenerator;
83 setPriority(Job.SHORT);
87 private void generate(IProgressMonitor monitor)
throws Exception {
89 IFile outputFile = dataContainer.getOutputFile();
91 if (templateGenerator ==
null) {
92 throw new TemplateGenerationException(
"Template generator is not set.");
95 String outputContent = templateGenerator.generate(dataContainer.getDataAsMap());
97 File file = outputFile.getLocation().toFile();
98 ContentWriter contentWriter =
new ContentWriter(file, outputContent);
100 contentWriter.writeContentToHarddisk();
102 if (isOpenFileInEditor) {
103 IDEUtils.openFileInEditor(monitor, outputFile);
113 monitor.beginTask(
"User Exit Include File", 2);
118 if (!dataContainer.isGenerationConfirmed()) {
119 return Status.CANCEL_STATUS;
126 return Status.OK_STATUS;
128 }
catch (Exception e) {
129 MessageDialog.openInformation(PlatformUI.getWorkbench().getDisplay().getActiveShell(),
"NO USER EXITS",
131 return Status.CANCEL_STATUS;
136 public boolean belongsTo(Object family) {
137 if (family instanceof String) {
138 return ((String) family).equals(JOB_FAMILY);
149 isOpenFileInEditor = Boolean.FALSE;
159 isOpenFileInEditor = Boolean.TRUE;
IStatus runInUIThread(IProgressMonitor monitor)
void enableOpenFileInEditro()
ContentGenerator(String name, IGeneratorDataContainer dataContainer, String templateGeneratorName)
ContentGenerator(String name, IGeneratorDataContainer dataContainer, IpaTemplateGenerator templateGenerator)
void disableOpenFileInEditor()
IpaTemplateGenerator getTemplate(String instanceName)
static JetTemplateFactory getFactoryInstance(String proALPHAVersion)