blob: 0cdfd7b866b0a0a076d768b2049f08f5ff9d38df [file] [log] [blame]
/*
* Copyright (c) 2006, 2010 Borland Software Corporation and others
*
* 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:
* bblajer - initial API and implementation
*/
package org.eclipse.gmf.tests.lite.setup;
import org.eclipse.gmf.codegen.gmfgen.FontStyle;
import org.eclipse.gmf.codegen.gmfgen.GMFGenFactory;
import org.eclipse.gmf.codegen.gmfgen.GenCustomFont;
import org.eclipse.gmf.codegen.gmfgen.GenDiagramPreferences;
import org.eclipse.gmf.codegen.gmfgen.GenRGBColor;
import org.eclipse.gmf.graphdef.codegen.MapModeCodeGenStrategy;
import org.eclipse.gmf.internal.bridge.genmodel.InnerClassViewmapProducer;
import org.eclipse.gmf.runtime.notation.NotationPackage;
import org.eclipse.gmf.tests.TestConfiguration;
import org.eclipse.gmf.tests.lite.gen.LiteGeneratorConfiguration;
import org.eclipse.gmf.tests.setup.DiaGenSetup;
import org.eclipse.gmf.tests.setup.DiaGenSource;
import org.eclipse.gmf.tests.setup.GeneratorConfiguration;
import org.eclipse.gmf.tests.setup.SessionSetup;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.widgets.Display;
public class LiteSessionSetup extends SessionSetup {
protected LiteSessionSetup(GeneratorConfiguration genConfig) {
super(genConfig);
}
@TestConfiguration.FactoryMethod
public static SessionSetup getInstance() {
if (factoryClosed) {
return null;
}
return new LiteSessionSetup(new LiteGeneratorConfiguration());
}
protected DiaGenSource createGenModel() {
final InnerClassViewmapProducer viewmapProducer = new InnerClassViewmapProducer("lite", MapModeCodeGenStrategy.STATIC, null);
DiaGenSource result = new DiaGenSetup(viewmapProducer).init(getMapModel());
GenDiagramPreferences preferences = GMFGenFactory.eINSTANCE.createGenDiagramPreferences();
GenCustomFont font = GMFGenFactory.eINSTANCE.createGenCustomFont();
font.setHeight(9);
font.setStyle(FontStyle.ITALIC_LITERAL);
FontData[] availableFonts = Display.getDefault().getFontList(null, true);
if (availableFonts == null || availableFonts.length == 0) {
font.setName(NotationPackage.eINSTANCE.getFontStyle_FontName().getDefaultValueLiteral());
} else {
font.setName(availableFonts[(int) (Math.random() * availableFonts.length)].getName());
}
preferences.setDefaultFont(font);
preferences.setFillColor(createRandomColor());
preferences.setFontColor(createRandomColor());
preferences.setLineColor(createRandomColor());
result.getGenDiagram().setPreferences(preferences);
return result;
}
private GenRGBColor createRandomColor() {
GenRGBColor result = GMFGenFactory.eINSTANCE.createGenRGBColor();
result.setBlue((int)(Math.random()*255));
result.setRed((int)(Math.random()*255));
result.setGreen((int)(Math.random()*255));
return result;
}
}