### Eclipse Workspace Patch 1.0 #P org.eclipse.gmf.graphdef.codegen Index: src/org/eclipse/gmf/graphdef/codegen/MapModeCodeGenStrategy.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.codegen/src/org/eclipse/gmf/graphdef/codegen/MapModeCodeGenStrategy.java,v retrieving revision 1.1 diff -u -r1.1 MapModeCodeGenStrategy.java --- src/org/eclipse/gmf/graphdef/codegen/MapModeCodeGenStrategy.java 24 Feb 2006 15:11:34 -0000 1.1 +++ src/org/eclipse/gmf/graphdef/codegen/MapModeCodeGenStrategy.java 28 Apr 2006 15:42:54 -0000 @@ -14,24 +14,10 @@ import org.eclipse.gmf.common.codegen.ImportAssistant; public abstract class MapModeCodeGenStrategy { - private final ImportAssistant myImportAssistant; - public abstract String LPtoDP(int logicalUnit); public abstract String DPtoLP(int deviceUnit); - public MapModeCodeGenStrategy(ImportAssistant importAssistant){ - myImportAssistant = importAssistant; - } - - public ImportAssistant getImportAssistant() { - return myImportAssistant; - } - public static class StaticIdentityMapMode extends MapModeCodeGenStrategy { - public StaticIdentityMapMode(ImportAssistant importAssistant){ - super(importAssistant); - } - public String DPtoLP(int deviceUnit) { return String.valueOf(deviceUnit); } @@ -42,10 +28,6 @@ } public static class RuntimeUnspecifiedMapMode extends MapModeCodeGenStrategy { - public RuntimeUnspecifiedMapMode(ImportAssistant importAssistant){ - super(importAssistant); - } - public String DPtoLP(int deviceUnit) { StringBuffer result = new StringBuffer(); result.append(getMapModeAccessor()); @@ -73,12 +55,17 @@ public static class RuntimeMapModeFromPluginClass extends RuntimeUnspecifiedMapMode { private final String myPluginActivatorClassFQN; + private final ImportAssistant myImportAssistant; public RuntimeMapModeFromPluginClass(ImportAssistant importAssistant, String pluginActivatorClassFQN){ - super(importAssistant); + myImportAssistant = importAssistant; myPluginActivatorClassFQN = pluginActivatorClassFQN; } + public ImportAssistant getImportAssistant() { + return myImportAssistant; + } + protected String getMapModeAccessor() { StringBuffer result = new StringBuffer(); result.append(getImportAssistant().getImportedName(myPluginActivatorClassFQN)); Index: src/org/eclipse/gmf/graphdef/codegen/FigureGenerator.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.codegen/src/org/eclipse/gmf/graphdef/codegen/FigureGenerator.java,v retrieving revision 1.17 diff -u -r1.17 FigureGenerator.java --- src/org/eclipse/gmf/graphdef/codegen/FigureGenerator.java 21 Apr 2006 17:47:10 -0000 1.17 +++ src/org/eclipse/gmf/graphdef/codegen/FigureGenerator.java 28 Apr 2006 15:42:54 -0000 @@ -79,7 +79,7 @@ private GraphDefDispatcher myInnerDispatcher; public FigureGenerator(String aPackageName, ImportAssistant importManager, FigureQualifiedNameSwitch figureNameSwitch) { - this(aPackageName, importManager, figureNameSwitch, new MapModeCodeGenStrategy.RuntimeUnspecifiedMapMode(importManager)); + this(aPackageName, importManager, figureNameSwitch, new MapModeCodeGenStrategy.RuntimeUnspecifiedMapMode()); } public FigureGenerator(String aPackageName, ImportAssistant importManager, FigureQualifiedNameSwitch figureNameSwitch, MapModeCodeGenStrategy mapModeStrategy) { Index: src/org/eclipse/gmf/graphdef/codegen/StandaloneGenerator.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.codegen/src/org/eclipse/gmf/graphdef/codegen/StandaloneGenerator.java,v retrieving revision 1.5 diff -u -r1.5 StandaloneGenerator.java --- src/org/eclipse/gmf/graphdef/codegen/StandaloneGenerator.java 11 Apr 2006 19:16:42 -0000 1.5 +++ src/org/eclipse/gmf/graphdef/codegen/StandaloneGenerator.java 28 Apr 2006 15:42:54 -0000 @@ -132,7 +132,7 @@ if (config.needsMapMode()) { strategy = new MapModeCodeGenStrategy.RuntimeMapModeFromPluginClass(importAssistant, pluginActivatorFQN); } else { - strategy = new MapModeCodeGenStrategy.StaticIdentityMapMode(importAssistant); + strategy = new MapModeCodeGenStrategy.StaticIdentityMapMode(); } myFigureGenerator = new FigureGeneratorAdapter( // #P org.eclipse.gmf.tests Index: src/org/eclipse/gmf/tests/gen/MapModeStrategyTest.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/gen/MapModeStrategyTest.java,v retrieving revision 1.2 diff -u -r1.2 MapModeStrategyTest.java --- src/org/eclipse/gmf/tests/gen/MapModeStrategyTest.java 1 Mar 2006 20:18:28 -0000 1.2 +++ src/org/eclipse/gmf/tests/gen/MapModeStrategyTest.java 28 Apr 2006 15:42:55 -0000 @@ -41,15 +41,16 @@ private void checkAllStrategies(Figure figure){ String baseName = figure.getName(); try { - setCustomFigureGenerator(createGenerator(createStaticIdentity())); + setCustomFigureGenerator(createGenerator(createImportAssistant(), createStaticIdentity())); figure.setName(baseName + "_StaticIdentity"); performTests(figure); - setCustomFigureGenerator(createGenerator(createDefaultStrategy())); + setCustomFigureGenerator(createGenerator(createImportAssistant(), createDefaultStrategy())); figure.setName(baseName + "_DefaultMapMode"); performTests(figure); - setCustomFigureGenerator(createGenerator(createStandaloneStrategy())); + ImportAssistant assistant = createImportAssistant(); + setCustomFigureGenerator(createGenerator(assistant, createStandaloneStrategy(assistant))); figure.setName(baseName + "_StandaloneMapMode"); performTests(figure); } finally { @@ -68,22 +69,26 @@ } private MapModeCodeGenStrategy createStaticIdentity(){ - return new MapModeCodeGenStrategy.StaticIdentityMapMode(createImportAssistant()); + return new MapModeCodeGenStrategy.StaticIdentityMapMode(); } private MapModeCodeGenStrategy createDefaultStrategy(){ - return new MapModeCodeGenStrategy.RuntimeUnspecifiedMapMode(createImportAssistant()); + return new MapModeCodeGenStrategy.RuntimeUnspecifiedMapMode(); } - private MapModeCodeGenStrategy createStandaloneStrategy(){ - return new MapModeCodeGenStrategy.RuntimeMapModeFromPluginClass(createImportAssistant(), getPluginActivatorClassFQN()); + private MapModeCodeGenStrategy createStandaloneStrategy(ImportAssistant assistant){ + return new MapModeCodeGenStrategy.RuntimeMapModeFromPluginClass(assistant, getPluginActivatorClassFQN()); } private ImportAssistant createImportAssistant(){ return new ImportUtil(getFigurePackageName()); } - private FigureGenerator createGenerator(MapModeCodeGenStrategy strategy) { - return new FigureGenerator(strategy.getImportAssistant().getPackageName(), strategy.getImportAssistant(), new RuntimeFQNSwitch(), strategy); + private FigureGenerator createGenerator(ImportAssistant assistant, MapModeCodeGenStrategy strategy) { + if (strategy instanceof MapModeCodeGenStrategy.RuntimeMapModeFromPluginClass){ + MapModeCodeGenStrategy.RuntimeMapModeFromPluginClass impl = (MapModeCodeGenStrategy.RuntimeMapModeFromPluginClass)strategy; + assertSame(assistant, impl.getImportAssistant()); + } + return new FigureGenerator(assistant.getPackageName(), assistant, new RuntimeFQNSwitch(), strategy); } } #P org.eclipse.gmf.bridge Index: src/org/eclipse/gmf/bridge/genmodel/InnerClassViewmapProducer.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.bridge/src/org/eclipse/gmf/bridge/genmodel/InnerClassViewmapProducer.java,v retrieving revision 1.12 diff -u -r1.12 InnerClassViewmapProducer.java --- src/org/eclipse/gmf/bridge/genmodel/InnerClassViewmapProducer.java 20 Apr 2006 16:27:14 -0000 1.12 +++ src/org/eclipse/gmf/bridge/genmodel/InnerClassViewmapProducer.java 28 Apr 2006 15:42:56 -0000 @@ -37,6 +37,7 @@ import org.eclipse.gmf.gmfgraph.util.FigureQualifiedNameSwitch; import org.eclipse.gmf.gmfgraph.util.RuntimeFQNSwitch; import org.eclipse.gmf.graphdef.codegen.FigureGenerator; +import org.eclipse.gmf.graphdef.codegen.MapModeCodeGenStrategy; /** * @author artem @@ -47,13 +48,13 @@ private final FigureQualifiedNameSwitch fqnSwitch; public InnerClassViewmapProducer() { - this(new RuntimeFQNSwitch()); + this(new RuntimeFQNSwitch(), new MapModeCodeGenStrategy.RuntimeUnspecifiedMapMode()); } - public InnerClassViewmapProducer(FigureQualifiedNameSwitch figureNameSwitch) { + public InnerClassViewmapProducer(FigureQualifiedNameSwitch figureNameSwitch, MapModeCodeGenStrategy mapModeCodeGenStrategy) { assert figureNameSwitch != null; fqnSwitch = figureNameSwitch; - figureGenerator = new FigureGenerator(null, new NullImportAssistant(), fqnSwitch); + figureGenerator = new FigureGenerator(null, new NullImportAssistant(), fqnSwitch, mapModeCodeGenStrategy); } public Viewmap create(Node node) { #P org.eclipse.gmf.graphdef.codegen.ui Index: src/org/eclipse/gmf/internal/graphdef/codegen/ui/GeneratePluginAction.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.codegen.ui/src/org/eclipse/gmf/internal/graphdef/codegen/ui/GeneratePluginAction.java,v retrieving revision 1.5 diff -u -r1.5 GeneratePluginAction.java --- src/org/eclipse/gmf/internal/graphdef/codegen/ui/GeneratePluginAction.java 20 Apr 2006 17:52:45 -0000 1.5 +++ src/org/eclipse/gmf/internal/graphdef/codegen/ui/GeneratePluginAction.java 28 Apr 2006 15:42:56 -0000 @@ -18,6 +18,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.emf.common.util.URI; @@ -42,6 +43,8 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; @@ -77,14 +80,8 @@ } String pluginId = dialog.getPluginId(); FigureGallery[] input = (FigureGallery[]) galleries.toArray(new FigureGallery[galleries.size()]); - StandaloneGenerator.Config config = new StandaloneGenerator.ConfigImpl(pluginId, pluginId, false); - FigureQualifiedNameSwitch fqnSwitch; - if (dialog.isUseRuntimeFigures()) { - fqnSwitch = new RuntimeFQNSwitch(); - } else { - fqnSwitch = new RuntimeLiteFQNSwitch(); - } - final StandaloneGenerator generator = new StandaloneGenerator(input, config, fqnSwitch); + StandaloneGenerator.Config config = new StandaloneGenerator.ConfigImpl(pluginId, pluginId, dialog.isUseMapMode()); + final StandaloneGenerator generator = new StandaloneGenerator(input, config, dialog.getFigureQualifiedNameSwitch()); generator.setSkipPluginStructure(false); new Job(action.getText()) { @@ -196,32 +193,27 @@ } } - private static class StandaloneGeneratorOptionsDialog extends Dialog { + private static class StandaloneGeneratorOptionsDialog extends FigureGeneratorOptionsDialog { private IInputValidator pluginIdValidator; private Text pluginIdText; - private Text errorMessageText; - private Button useRuntimeFiguresButton; - private String pluginId; - private boolean useRuntimeFigures; + private final boolean shouldWarnLiteVerstionDoesNotSupportMapMode; public StandaloneGeneratorOptionsDialog(Shell parentShell, String initialPluginId, boolean initialUseRuntimeFigures, IInputValidator pluginIdValidator) { - super(parentShell); + this(parentShell, initialPluginId, initialUseRuntimeFigures, false, pluginIdValidator); + } + + public StandaloneGeneratorOptionsDialog(Shell parentShell, String initialPluginId, boolean initialUseRuntimeFigures, boolean initialUseMapMode, IInputValidator pluginIdValidator) { + super(parentShell, "Figure Gallery Generator", initialUseRuntimeFigures, initialUseMapMode); pluginId = initialPluginId; if (pluginId == null) { pluginId = ""; //$NON-NLS-1$ } this.pluginIdValidator = pluginIdValidator; - useRuntimeFigures = initialUseRuntimeFigures; - } - - protected void configureShell(Shell newShell) { - super.configureShell(newShell); - newShell.setText("Figure Gallery Generator"); + shouldWarnLiteVerstionDoesNotSupportMapMode = Platform.getBundle("org.eclipse.gmf.codegen.lite") != null; } - protected Control createDialogArea(Composite parent) { - Composite result = (Composite) super.createDialogArea(parent); + protected void createControls(Composite result) { Label label = new Label(result, SWT.WRAP); label.setText("Please specify the name of plug-in/main package"); GridData data = new GridData(GridData.GRAB_HORIZONTAL @@ -229,7 +221,6 @@ | GridData.VERTICAL_ALIGN_CENTER); data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH); label.setLayoutData(data); - label.setFont(parent.getFont()); pluginIdText = new Text(result, SWT.SINGLE | SWT.BORDER); pluginIdText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); @@ -238,15 +229,7 @@ validateInput(); } }); - useRuntimeFiguresButton = new Button(result, SWT.CHECK); - useRuntimeFiguresButton.setText("Utilize enhanced features of GMF runtime"); - useRuntimeFiguresButton.setSelection(useRuntimeFigures); - errorMessageText = new Text(result, SWT.READ_ONLY); - errorMessageText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL - | GridData.HORIZONTAL_ALIGN_FILL)); - errorMessageText.setBackground(errorMessageText.getDisplay() - .getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); - return result; + super.createControls(result); } protected void validateInput() { @@ -259,17 +242,13 @@ setErrorMessage(errorMessage); } - public void setErrorMessage(String errorMessage) { - errorMessageText.setText(errorMessage == null ? "" : errorMessage); //$NON-NLS-1$ - errorMessageText.getParent().update(); - Control button = getButton(IDialogConstants.OK_ID); - if (button != null) { - button.setEnabled(errorMessage == null); - } + protected void warnLiteVerstionDoesNotSupportMapMode() { + if (shouldWarnLiteVerstionDoesNotSupportMapMode) { + super.warnLiteVerstionDoesNotSupportMapMode(); + } } protected void okPressed() { - useRuntimeFigures = useRuntimeFiguresButton.getSelection(); pluginId = pluginIdText.getText(); super.okPressed(); } @@ -277,9 +256,5 @@ public String getPluginId() { return pluginId; } - - public boolean isUseRuntimeFigures() { - return useRuntimeFigures; - } } } Index: META-INF/MANIFEST.MF =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.codegen.ui/META-INF/MANIFEST.MF,v retrieving revision 1.5 diff -u -r1.5 MANIFEST.MF --- META-INF/MANIFEST.MF 12 Apr 2006 18:16:40 -0000 1.5 +++ META-INF/MANIFEST.MF 28 Apr 2006 15:42:56 -0000 @@ -15,3 +15,4 @@ org.eclipse.gmf.common;bundle-version="[1.0.0,2.0.0)", org.eclipse.ui;bundle-version="[3.2.0,4.0.0)", org.eclipse.jdt.core;bundle-version="[3.2.0,4.0.0)" +Export-Package: org.eclipse.gmf.internal.graphdef.codegen.ui;x-friends:="org.eclipse.gmf.codegen.ui" Index: src/org/eclipse/gmf/internal/graphdef/codegen/ui/FigureGeneratorOptionsDialog.java =================================================================== RCS file: src/org/eclipse/gmf/internal/graphdef/codegen/ui/FigureGeneratorOptionsDialog.java diff -N src/org/eclipse/gmf/internal/graphdef/codegen/ui/FigureGeneratorOptionsDialog.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/gmf/internal/graphdef/codegen/ui/FigureGeneratorOptionsDialog.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2005 Borland Software Corporation + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boris Blajer (Borland) - initial API and implementation + */ +package org.eclipse.gmf.internal.graphdef.codegen.ui; + +import org.eclipse.gmf.gmfgraph.util.FigureQualifiedNameSwitch; +import org.eclipse.gmf.gmfgraph.util.RuntimeFQNSwitch; +import org.eclipse.gmf.gmfgraph.util.RuntimeLiteFQNSwitch; +import org.eclipse.gmf.graphdef.codegen.MapModeCodeGenStrategy; +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.dialogs.IMessageProvider; +import org.eclipse.jface.dialogs.TitleAreaDialog; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Shell; + +public class FigureGeneratorOptionsDialog extends TitleAreaDialog { + private Button useMapModeButton; + private Button useRuntimeFiguresButton; + private boolean useMapMode; + private boolean useRuntimeFigures; + private String title; + + public FigureGeneratorOptionsDialog(Shell parentShell, String dialogTitle, boolean initialUseRuntimeFigures, boolean initialUseMapMode) { + super(parentShell); + title = dialogTitle; + useMapMode = initialUseMapMode; + useRuntimeFigures = initialUseRuntimeFigures; + } + + protected void configureShell(Shell newShell) { + super.configureShell(newShell); + if (title != null) { + newShell.setText(title); + } + } + + protected Control createDialogArea(Composite parent) { + Composite result = (Composite) super.createDialogArea(parent); + GridLayout layout = new GridLayout(); + layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); + layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); + layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); + layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); + result.setLayout(layout); + createControls(result); + setTitle("Generator Model Options"); + warnLiteVerstionDoesNotSupportMapMode(); + Dialog.applyDialogFont(result); + return result; + } + + protected void createControls(Composite result) { + useMapModeButton = new Button(result, SWT.CHECK); + useMapModeButton.setText("Use &IMapMode"); + useMapModeButton.setSelection(useMapMode); + useMapModeButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER)); + useRuntimeFiguresButton = new Button(result, SWT.CHECK); + useRuntimeFiguresButton.setText("&Utilize enhanced features of GMF runtime"); + useRuntimeFiguresButton.setSelection(useRuntimeFigures); + useRuntimeFiguresButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER)); + SelectionListener selectionListener = new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + warnLiteVerstionDoesNotSupportMapMode(); + } + public void widgetSelected(SelectionEvent e) { + warnLiteVerstionDoesNotSupportMapMode(); + } + }; + useMapModeButton.addSelectionListener(selectionListener); + useRuntimeFiguresButton.addSelectionListener(selectionListener); + useMapModeButton.setSelection(useMapMode); + useRuntimeFiguresButton.setSelection(useRuntimeFigures); + } + + protected void warnLiteVerstionDoesNotSupportMapMode() { + if (!useRuntimeFiguresButton.getSelection() && useMapModeButton.getSelection()) { + setMessage("It is not recommended to use IMapMode for pure-GEF diagram editors", IMessageProvider.INFORMATION); + } else { + setMessage(null); + } + } + + protected void okPressed() { + useRuntimeFigures = useRuntimeFiguresButton.getSelection(); + useMapMode = useMapModeButton.getSelection(); + super.okPressed(); + } + + public FigureQualifiedNameSwitch getFigureQualifiedNameSwitch() { + if (useRuntimeFigures) { + return new RuntimeFQNSwitch(); + } else { + return new RuntimeLiteFQNSwitch(); + } + } + + public MapModeCodeGenStrategy getMapModeCodeGenStrategy() { + if (useMapMode) { + return new MapModeCodeGenStrategy.RuntimeUnspecifiedMapMode(); + } else { + return new MapModeCodeGenStrategy.StaticIdentityMapMode(); + } + } + + public boolean isUseMapMode() { + return useMapMode; + } + + public boolean isHelpAvailable() { + return false; + } +} #P org.eclipse.gmf.codegen.ui Index: src/org/eclipse/gmf/internal/codegen/popup/actions/TransformToGenModel.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen.ui/src/org/eclipse/gmf/internal/codegen/popup/actions/TransformToGenModel.java,v retrieving revision 1.18 diff -u -r1.18 TransformToGenModel.java --- src/org/eclipse/gmf/internal/codegen/popup/actions/TransformToGenModel.java 14 Apr 2006 19:22:55 -0000 1.18 +++ src/org/eclipse/gmf/internal/codegen/popup/actions/TransformToGenModel.java 28 Apr 2006 15:42:58 -0000 @@ -50,14 +50,16 @@ import org.eclipse.gmf.bridge.genmodel.ViewmapProducer; import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator; import org.eclipse.gmf.gmfgraph.util.RuntimeFQNSwitch; -import org.eclipse.gmf.gmfgraph.util.RuntimeLiteFQNSwitch; +import org.eclipse.gmf.graphdef.codegen.MapModeCodeGenStrategy; import org.eclipse.gmf.internal.bridge.naming.gen.GenModelNamingMediatorImpl; import org.eclipse.gmf.internal.codegen.CodeGenUIPlugin; import org.eclipse.gmf.internal.codegen.GMFGenConfig; import org.eclipse.gmf.internal.common.reconcile.Reconciler; +import org.eclipse.gmf.internal.graphdef.codegen.ui.FigureGeneratorOptionsDialog; import org.eclipse.gmf.mappings.Mapping; import org.eclipse.jface.action.IAction; import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.IInputValidator; import org.eclipse.jface.dialogs.InputDialog; import org.eclipse.jface.dialogs.MessageDialog; @@ -125,7 +127,10 @@ final DiagramRunTimeModelHelper drtModelHelper = detectRunTimeModel(resSet); - final ViewmapProducer viewmapProducer = detectViewmapProducer(getShell()); + final ViewmapProducer viewmapProducer = detectViewmapProducer(getShell()); + if (viewmapProducer == null) { + return; + } //final ISchedulingRule rule = MultiRule.combine(myMapFile, myDestFile); final DiagramGenModelTransformer t = new DiagramGenModelTransformer(drtModelHelper, new GenModelNamingMediatorImpl(), viewmapProducer); @@ -216,14 +221,20 @@ private ViewmapProducer detectViewmapProducer(Shell shell) { if (!checkLiteOptionPresent()) { - return new InnerClassViewmapProducer(new RuntimeFQNSwitch()); + MapModeCodeGenStrategy strategy; + final String msg = "Would you like to use IMapMode?"; + if (MessageDialog.openQuestion(shell, "Create Generator Model", msg)) { + strategy = new MapModeCodeGenStrategy.RuntimeUnspecifiedMapMode(); + } else { + strategy = new MapModeCodeGenStrategy.StaticIdentityMapMode(); + } + return new InnerClassViewmapProducer(new RuntimeFQNSwitch(), strategy); } - final String msg = "Would you like to utilize enhanced features of GMF runtime (if no, only basic GEF capabilities will be used)"; - if (MessageDialog.openQuestion(shell, "Target runtime", msg)) { - return new InnerClassViewmapProducer(new RuntimeFQNSwitch()); - } else { - return new InnerClassViewmapProducer(new RuntimeLiteFQNSwitch()); + FigureGeneratorOptionsDialog dlg = new FigureGeneratorOptionsDialog(shell, "Create Generator Model", true, true); + if (dlg.open() != IDialogConstants.OK_ID) { + return null; } + return new InnerClassViewmapProducer(dlg.getFigureQualifiedNameSwitch(), dlg.getMapModeCodeGenStrategy()); } Index: META-INF/MANIFEST.MF =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen.ui/META-INF/MANIFEST.MF,v retrieving revision 1.17 diff -u -r1.17 MANIFEST.MF --- META-INF/MANIFEST.MF 14 Apr 2006 12:53:37 -0000 1.17 +++ META-INF/MANIFEST.MF 28 Apr 2006 15:42:57 -0000 @@ -9,7 +9,8 @@ org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)", org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)", org.eclipse.gmf.bridge;bundle-version="[1.0.0,2.0.0)", - org.eclipse.gmf.codegen.edit;bundle-version="[1.0.0,2.0.0)" + org.eclipse.gmf.codegen.edit;bundle-version="[1.0.0,2.0.0)", + org.eclipse.gmf.graphdef.codegen.ui;bundle-version="[1.0.0,2.0.0)" Eclipse-LazyStart: true Bundle-Vendor: %providerName Export-Package: org.eclipse.gmf.internal.codegen;x-friends:="org.eclipse.gmf.tests",