blob: 5ce2f4caf7c4dc096b1850814f6c820f33588a1c [file] [log] [blame]
/*
* Copyright (c) 2006, 2008 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:
* Artem Tikhomirov (Borland) - initial API and implementation
* Michael Golubev (Borland) - GridLayout attributes
*/
«IMPORT 'http://www.eclipse.org/gmf/2006/GraphicalDefinition'»
«IMPORT 'http://www.eclipse.org/emf/2002/Ecore'»
«EXTENSION Util»
«DEFINE Init(owningFigureVariable : String) FOR gmfgraph::Layout
«owningFigureVariable».setLayoutManagerEXPAND Runtime::newInstance»);
«ENDDEFINE»
«DEFINE Init(owningFigureVariable : String) FOR gmfgraph::LayoutRef
«EXPAND Init(owningFigureVariable) FOR actual
«ENDDEFINE»
«DEFINE Init(owningFigureVariable : String) FOR gmfgraph::BorderLayout
«LET 'layout' + owningFigureVariable.firstToUpper() AS layoutVarName»
«EXPAND Runtime::newInstance(layoutVarName
«IF null <> spacing
«layoutVarName».setHorizontalSpacingspacing.dx»);// TODO mapMode?
«layoutVarName».setVerticalSpacingspacing.dy»);
«ENDIF
«owningFigureVariable».setLayoutManagerlayoutVarName»);
«ENDLET»
«ENDDEFINE»
«DEFINE Init(owningFigureVariable : String) FOR gmfgraph::GridLayout
«LET 'layout' + owningFigureVariable.firstToUpper() AS layoutVarName»
«EXPAND Runtime::newInstance(layoutVarName
«layoutVarName».numColumns = «numColumns»;
«layoutVarName».makeColumnsEqualWidth = «equalWidth»;
«IF null <> spacing
«layoutVarName».horizontalSpacing = «spacing.dx»;
«layoutVarName».verticalSpacing = «spacing.dy»;
«ENDIF
«IF null <> margins
«layoutVarName».marginWidth = «margins.dx»;
«layoutVarName».marginHeight = «margins.dy»;
«ENDIF
«owningFigureVariable».setLayoutManagerlayoutVarName»);
«ENDLET»
«ENDDEFINE»
«DEFINE Init(owningFigureVariable : String) FOR gmfgraph::FlowLayout
«LET 'layout' + owningFigureVariable.firstToUpper() AS layoutVarName»
«EXPAND Runtime::newInstance(layoutVarName
«layoutVarName».setStretchMinorAxismatchMinorSize»);
«layoutVarName».setMinorAlignmentEXPAND Runtime::fqn».«EXPAND alignment(forceSingleLine) FOR minorAlignment»);
«IF forceSingleLine»
«layoutVarName».setSpacingmajorSpacing»);
«layoutVarName».setVerticalvertical»);
«ELSE»
«layoutVarName».setMajorAlignmentEXPAND Runtime::fqn».«EXPAND alignment(forceSingleLine) FOR majorAlignment»);
«layoutVarName».setMajorSpacingmajorSpacing»);
«layoutVarName».setMinorSpacingminorSpacing»);
«layoutVarName».setHorizontalnot vertical»);
«ENDIF»
«owningFigureVariable».setLayoutManagerlayoutVarName»);
«ENDLET»
«ENDDEFINE»
«DEFINE Init(owningFigureVariable : String) FOR gmfgraph::CustomLayout
«LET 'layout' + owningFigureVariable.firstToUpper() AS layoutVarName»
«EXPAND Runtime::newInstance(layoutVarName
«EXPAND attr::CustomClass::Init(layoutVarName)-»
«owningFigureVariable».setLayoutManagerlayoutVarName»);
«ENDLET»
«ENDDEFINE»
«DEFINE alignment(forceSingleLine : Boolean) FOR gmfgraph::Alignment
«IF self = gmfgraph::Alignment::BEGINNING
«IF forceSingleLine»ALIGN_TOPLEFT«ELSE»ALIGN_LEFTTOP«ENDIF
«ELSEIF self = gmfgraph::Alignment::END
«IF forceSingleLine»ALIGN_BOTTOMRIGHT«ELSE»ALIGN_RIGHTBOTTOM«ENDIF
«ELSE
ALIGN_CENTER«ENDIF
«REM»XXX implement as extension
switch (value) {
case Alignment.BEGINNING : ""
default : ""
ENDREM»
«ENDDEFINE»