blob: 305bdbc5b01692b2720f06144383c6ad46ce320b [file] [log] [blame]
package org.eclipse.gmf.codegen.gwt.ui.actions
import com.google.inject.Inject
import org.eclipse.core.runtime.IProgressMonitor
import org.eclipse.core.runtime.Status
import org.eclipse.emf.ecore.resource.Resource
import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator
import org.eclipse.gmf.codegen.gwt.IProjectGenerator
import org.eclipse.gmf.codegen.gwt.impl.Generator
class DiagramGeneratorHandler extends AbstractGeneratorHandler {
@Inject IProjectGenerator projectGenerator
protected override doGenerate(Resource resource, IProgressMonitor monitor) {
val editor = resource.contents.get(0) as GenEditorGenerator
val injector = editor.getInjector
generateDiagramProject(injector.getInstance(Generator), editor, monitor)
Status::OK_STATUS
}
protected def generateDiagramProject(Generator generator, GenEditorGenerator editor, IProgressMonitor monitor) {
val project = projectGenerator.createProject(editor.plugin.ID, null, monitor)
val root = projectGenerator.getFragmentRoot(project, monitor)
generator.generate(editor, project, root, monitor)
}
}