import "StandardTypes.madl";namespace "org.smags.ui";meta architecture GenericUI{		type libraries:	type library GenericUITypes{				complex Brush{					}				complex SolidColorBrush extends Brush{			property color : Color;		}				complex Color{			property r : Integer;			property g : Integer;			property b : Integer;		}				complex Thickness{			property top : Integer;			property right : Integer;			property bottom : Integer;			property left : Integer;		}				complex QualifiedInteger {			property value : Integer;			property domain : DimensionDomain;		}				enum DimensionDomain{			Pixel, Percent, Fill		}				enum FontWeight{			Normal, Bold		}				enum FontStyle{			Normal, Italic, Oblique		}				enum VerticalAlignment{			Top,	Bottom, Center, Stretch		}				enum HorizontalAlignment{			Left, Center, Right, Stretch		}				enum Visibility{			Visible, Hidden, Collapsed		}				enum StackPanelOrientation{			Horizontal, Vertical		}				enum TextAlignment{			Center, Justify, Left, Right		}				complex UIEventArgs{			property source : IUIControl;		}				complex ClickEventArgs extends UIEventArgs {}				complex FocusChangedEventArgs extends UIEventArgs{			property focusGained : Boolean;			property focusLost : Boolean;		}				complex CheckedChangedEventArgs extends UIEventArgs{			property oldState : Boolean;			property newState : Boolean;		}				complex TextChangedEventArgs extends UIEventArgs{			property oldText : String;			property newText : String;		}	}		port types:	event port type IClickable fires ClickEventArgs{}		event port type IFocusable fires FocusChangedEventArgs{		parameter focusEnabled : Boolean;				void focus();	}		event port type ICheckedChanged fires CheckedChangedEventArgs{}		event port type ITextChanged fires TextChangedEventArgs{}		port type IUIControl{				parameter controlName : String;		parameter background : Brush;		parameter foreground : Brush;		parameter border : Brush;		parameter borderThickness : Thickness;		parameter fontFamily : String;		parameter fontSize : Integer;		parameter fontStyle : FontStyle;		parameter fontWeight : FontWeight;		parameter padding : Thickness;		parameter margin : Thickness;		parameter tabIndex : Integer;		parameter horizontalContentAlignment : HorizontalAlignment;		parameter verticalContentAlignment : VerticalAlignment;		parameter enabled : Boolean;		parameter visibility : Visibility;		parameter width : QualifiedInteger;		parameter height : QualifiedInteger;		parameter opacity : Integer;				void updateControl();				requires IContextMenu [0 to 1];	}		port type ITextControl extends IUIControl{		parameter text : String;	}		port type IContextMenu extends IUIControl{		void open();		void close();		Boolean isOpen();	}		port type IContentControl extends IUIControl{		requires IUIControl;	}		port type IButton extends IContentControl{		parameter isCancel : Boolean;		parameter isDefault : Boolean;		Boolean isPressed();				expects ITextControl;	}		port type IToogleButton extends IButton{		parameter isChecked : Boolean;	}		port type IPanel extends IUIControl{		requires IUIControl [0 to *];	}		port type IStackPanel extends IPanel{		parameter orientation : StackPanelOrientation;	}		port type ITextBlock extends IUIControl{		parameter text : String;		parameter textAlignment : TextAlignment;	}		port type ITextBox extends IUIControl{		parameter lineCount : Integer;		parameter text : String;				expects ITextChanged;	}		component types:		ui component type Button {		provides IButton;		provides IClickable;		provides IFocusable;		provides ITextControl;	}			ui component type Checkbox {		provides IToogleButton;		provides IClickable;		provides IFocusable;		provides ITextControl;		provides ICheckedChanged;	}		ui component type StackPanel {		provides IStackPanel;	}		ui component type TextBlock {		provides ITextBlock;	}		ui component type TextBox {		provides ITextBox;		provides ITextChanged;	}		ui component type PasswordBox { 	}		ui component type RootView {		provides IContentControl;	}}