Skip to content

Instantly share code, notes, and snippets.

@achudars
Last active August 29, 2015 14:16
Show Gist options
  • Save achudars/983ef56813743b6eb8d1 to your computer and use it in GitHub Desktop.
Save achudars/983ef56813743b6eb8d1 to your computer and use it in GitHub Desktop.
IFML (IFML 1.0 Beta2) Emfatic file with all HTML5 events added as an extension
@namespace(uri="top", prefix="top")
package top;
@namespace(uri="http://www.omg.org/spec/IFML", prefix="ifml")
package ifml {
@namespace(uri="http://www.omg.org/spec/IFML/ext", prefix="ext")
package extensions {
class Form extends core.ViewComponent {
!ordered ref SubmitEvent[*] submitEvent;
}
abstract class Field extends core.ViewComponentPart {
}
class SelectionField extends Field {
!ordered attr boolean[1] isMultiSelection;
}
class ValidationRule extends core.Constraint {
}
class Slot extends core.ViewComponentPart {
ref core.Parameter parameter;
}
class SortAttribute {
!ordered attr SortOrderEnum[1] order;
}
abstract class AbortEvent extends core.ViewElementEvent {
}
abstract class AutocompleteEvent extends core.ViewElementEvent {
}
abstract class AutocompleteerrorEvent extends core.ViewElementEvent {
}
abstract class BlurEvent extends core.ViewElementEvent {
}
abstract class CancelEvent extends core.ViewElementEvent {
}
abstract class CanplayEvent extends core.ViewElementEvent {
}
abstract class Canplaythrought extends core.ViewElementEvent {
}
abstract class ChangeEvent extends core.ViewElementEvent {
}
abstract class ClickEvent extends core.ViewElementEvent {
}
abstract class CloseEvent extends core.ViewElementEvent {
}
abstract class ContextmenuEvent extends core.ViewElementEvent {
}
abstract class CuechangeEvent extends core.ViewElementEvent {
}
abstract class DblclickEvent extends core.ViewElementEvent {
}
abstract class DragEvent extends core.ViewElementEvent {
}
abstract class DragendEvent extends core.ViewElementEvent {
}
abstract class DragenterEvent extends core.ViewElementEvent {
}
abstract class DragexitEvent extends core.ViewElementEvent {
}
abstract class DragleaveEvent extends core.ViewElementEvent {
}
abstract class DragoverEvent extends core.ViewElementEvent {
}
abstract class DragstartEvent extends core.ViewElementEvent {
}
abstract class DropEvent extends core.ViewElementEvent {
}
abstract class DurationchangeEvent extends core.ViewElementEvent {
}
abstract class EmptiedEvent extends core.ViewElementEvent {
}
abstract class EndedEvent extends core.ViewElementEvent {
}
abstract class ErrorEvent extends core.ViewElementEvent {
}
abstract class FocusEvent extends core.ViewElementEvent {
}
abstract class InputEvent extends core.ViewElementEvent {
}
abstract class InvalidEvent extends core.ViewElementEvent {
}
abstract class KeydownEvent extends core.ViewElementEvent {
}
abstract class KeypressEvent extends core.ViewElementEvent {
}
abstract class KeyupEvent extends core.ViewElementEvent {
}
abstract class LoadEvent extends core.ViewElementEvent {
}
abstract class LoadeddataEvent extends core.ViewElementEvent {
}
abstract class LoadedmetadataEvent extends core.ViewElementEvent {
}
abstract class LoadstartEvent extends core.ViewElementEvent {
}
abstract class MousedownEvent extends core.ViewElementEvent {
}
abstract class MouseenterEvent extends core.ViewElementEvent {
}
abstract class MouseleaveEvent extends core.ViewElementEvent {
}
abstract class MousemoveEvent extends core.ViewElementEvent {
}
abstract class MouseoutEvent extends core.ViewElementEvent {
}
abstract class MouseoverEvent extends core.ViewElementEvent {
}
abstract class MouseupEvent extends core.ViewElementEvent {
}
abstract class MousewheelEvent extends core.ViewElementEvent {
}
abstract class PauseEvent extends core.ViewElementEvent {
}
abstract class PlayEvent extends core.ViewElementEvent {
}
abstract class PlayingEvent extends core.ViewElementEvent {
}
abstract class ProgressEvent extends core.ViewElementEvent {
}
abstract class RatechangeEvent extends core.ViewElementEvent {
}
abstract class ResetEvent extends core.ViewElementEvent {
}
abstract class ResizeEvent extends core.ViewElementEvent {
}
abstract class ScrollEvent extends core.ViewElementEvent {
}
abstract class SeekedEvent extends core.ViewElementEvent {
}
abstract class SeekingEvent extends core.ViewElementEvent {
}
abstract class SelectEvent extends core.ViewElementEvent {
}
abstract class ShowEvent extends core.ViewElementEvent {
}
abstract class SortEvent extends core.ViewElementEvent {
}
abstract class StalledEvent extends core.ViewElementEvent {
}
abstract class SuspendEvent extends core.ViewElementEvent {
}
abstract class TimeupdateEvent extends core.ViewElementEvent {
}
abstract class ToggleEvent extends core.ViewElementEvent {
}
abstract class VolumechangeEvent extends core.ViewElementEvent {
}
abstract class WaitingEvent extends core.ViewElementEvent {
}
class List extends core.ViewComponent {
!ordered val SelectEvent[*] selectEvent;
ref SubmitEvent[*] submitEvent;
}
class SimpleField extends Field {
}
class SubmitEvent extends core.ViewElementEvent {
}
class Selector extends core.Expression, core.ViewComponentPart {
}
enum SortOrderEnum {
ascending = 0;
descending = 0;
}
class Device extends core.ContextDimension {
}
class Position extends core.ContextDimension {
}
class UserRole extends core.ContextDimension {
}
class Details extends core.ViewComponent {
}
class Window extends core.ViewContainer {
attr boolean isXor;
attr boolean isModal;
attr boolean isNew;
}
}
@namespace(uri="http://www.omg.org/spec/IFML/core", prefix="core")
package core {
class ViewPoint extends NamedElement {
!ordered val InteractionFlowModelElement[*] interactionFlowModelElements;
ref Context[1] context;
}
abstract class InteractionFlowElement extends NamedElement, InteractionFlowModelElement {
!ordered val Parameter[*] parameters;
!ordered val InteractionFlow[*] inInteractionFlows;
!ordered val InteractionFlow[*] outInteractionFlows;
}
class NavigationFlow extends InteractionFlow {
!ordered val DataFlow[*] dataFlows;
}
class ActionEvent extends Event {
}
class InteractionFlowModel extends NamedElement {
!ordered val InteractionFlowModelElement[*] interactionFlowModelElements;
}
class ParameterBindingGroup extends InteractionFlowModelElement {
!ordered val ParameterBinding[*] parameterBindings;
}
class ParameterBinding extends InteractionFlowModelElement {
!ordered val Parameter[1] sourceParameter;
!ordered val Parameter[1] targetParameter;
}
class ContentModel extends NamedElement {
ref uml.Element[*] elements;
}
class ViewElement extends InteractionFlowElement {
!ordered val ViewElementEvent[*] viewElementEvents;
!ordered val ActivationExpression activationExpression;
ref ViewContainer viewContainer;
}
class Action extends InteractionFlowElement {
!ordered val ActionEvent[*] actionEvents;
ref DynamicBehavior dynamicBehavior;
}
abstract class Element {
!ordered attr String[1] ~id;
!ordered val Constraint[*] constraints;
!ordered val Annotation[*] annotations;
}
class DynamicBehavior extends ContentBinding {
ref uml.BehavioralFeature behavioralFeature;
ref uml.Behavior behavior;
}
class DataFlow extends InteractionFlow {
}
abstract class InteractionFlow extends InteractionFlowModelElement {
!ordered val InteractionFlowElement[1] srcInteractionFlowElement;
!ordered val InteractionFlowElement[1] trgtInteractionFlowElement;
!ordered val ParameterBindingGroup parameterBindingGroup;
}
class ViewElementEvent extends Event {
}
abstract class InteractionFlowModelElement extends Element {
}
abstract class NamedElement extends Element {
!ordered attr String[1] name;
}
class ExternalEvent extends Event {
}
class Constraint extends BooleanExpression {
}
class ViewComponentPart extends InteractionFlowElement {
!ordered val ViewElementEvent[*] viewElementEvents;
!ordered val ActivationExpression activationExpression;
ref ViewComponentPart[*]#parentViewComponentPart subViewComponentParts;
ref ViewComponentPart[1]#subViewComponentParts parentViewComponentPart;
}
class ViewContainer extends ViewElement {
!ordered attr boolean[1] isLandMark;
!ordered attr boolean[1] isDefault;
!ordered val ViewElement[*] viewElements;
}
class IFMLModel extends NamedElement {
!ordered val InteractionFlowModel[1] interactionFlowModel;
!ordered val ContentModel[1] contentModel;
!ordered val ViewPoint[*] interactionFlowModelViewPoints;
}
class Event extends InteractionFlowElement {
!ordered val ActivationExpression activationExpression;
!ordered val NavigationFlow[*] navigationFlows;
!ordered val InteractionFlowExpression interactionFlowExpression;
}
abstract class ContentBinding extends ViewComponentPart {
attr String uniformResourceIdentifier;
}
class InteractionFlowExpression extends Expression {
!ordered val InteractionFlow[+] interactionFlows;
}
class DataBinding extends ContentBinding {
ref ConditionalExpression[*] conditionalExpression;
ref VisualizationAttribute[*] visualizationAttributes;
ref uml.Classifier[1] classifier;
}
class ViewComponent extends ViewElement {
val ViewComponentPart[*] viewComponentParts;
}
class SystemEvent extends Event {
!ordered val Expression[+] triggeringExpressions;
!ordered attr SystemEventTypeEnum[1] type;
}
class BooleanExpression extends Expression {
}
class ActivationExpression extends BooleanExpression {
}
abstract class Expression extends InteractionFlowModelElement {
!ordered attr String[1] language;
!ordered attr String[1] body;
}
class Parameter extends InteractionFlowModelElement, uml.MultiplicityElement, uml.TypedElement, NamedElement {
!ordered attr ParameterKind[1] kind = "ordinary";
}
enum SystemEventTypeEnum {
time = 0;
specialCondition = 0;
}
class ConditionalExpression extends Expression, ViewComponentPart {
}
class Context extends Element {
ref ContextDimension[*] contextDimensions;
}
class ContextDimension extends NamedElement {
}
class VisualizationAttribute extends ViewComponentPart {
ref uml.StructuralFeature structuralFeature;
}
enum ParameterKind {
ordinary = 0;
input = 0;
output = 0;
input_output = 0;
}
class Module extends InteractionFlowModelElement {
ref Port[+] inputPorts;
ref Port[+] outputPorts;
ref InteractionFlowModelElement[+] interactionFlowModelElements;
}
class Port extends InteractionFlowElement {
}
class Annotation {
attr String text;
}
}
}
@namespace(uri="http://www.omg.org/spec/UML", prefix="uml")
package uml {
class Association extends Element {
}
class Classifier extends Element {
}
class Element {
}
class BehavioralFeature {
}
class Behavior {
}
class TemplaetableElement extends Element {
}
class TypedElement extends Element {
}
class MultiplicityElement extends Element {
}
class StructuralFeature {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment