/**
   * Complete the initialization of the package and its meta-model. This method is guarded to have
   * no affect on any invocation but its first.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   *
   * @generated
   */
  public void initializePackageContents() {
    if (isInitialized) return;
    isInitialized = true;

    // Initialize package
    setName(eNAME);
    setNsPrefix(eNS_PREFIX);
    setNsURI(eNS_URI);

    // Obtain other dependent packages
    CinematicPackage theCinematicPackage =
        (CinematicPackage) EPackage.Registry.INSTANCE.getEPackage(CinematicPackage.eNS_URI);
    EnvironmentPackage theEnvironmentPackage =
        (EnvironmentPackage) EPackage.Registry.INSTANCE.getEPackage(EnvironmentPackage.eNS_URI);
    ToolkitsPackage theToolkitsPackage =
        (ToolkitsPackage) EPackage.Registry.INSTANCE.getEPackage(ToolkitsPackage.eNS_URI);

    // Create type parameters

    // Set bounds for type parameters

    // Add supertypes to classes
    abstractViewElementEClass.getESuperTypes().add(theCinematicPackage.getNamedElement());
    abstractViewElementEClass.getESuperTypes().add(theEnvironmentPackage.getBoundableElement());
    viewContainerEClass.getESuperTypes().add(this.getAbstractViewElement());
    viewElementEClass.getESuperTypes().add(this.getAbstractViewElement());
    viewActionEClass.getESuperTypes().add(theCinematicPackage.getNamedElement());
    viewEventEClass.getESuperTypes().add(theCinematicPackage.getEvent());
    viewContainerReferenceEClass.getESuperTypes().add(this.getAbstractViewElement());

    // Initialize classes and features; add operations and parameters
    initEClass(
        abstractViewElementEClass,
        AbstractViewElement.class,
        "AbstractViewElement",
        IS_ABSTRACT,
        !IS_INTERFACE,
        IS_GENERATED_INSTANCE_CLASS);
    initEReference(
        getAbstractViewElement_Widget(),
        theToolkitsPackage.getWidget(),
        null,
        "widget",
        null,
        0,
        1,
        AbstractViewElement.class,
        !IS_TRANSIENT,
        !IS_VOLATILE,
        IS_CHANGEABLE,
        !IS_COMPOSITE,
        IS_RESOLVE_PROXIES,
        !IS_UNSETTABLE,
        IS_UNIQUE,
        !IS_DERIVED,
        IS_ORDERED);
    initEReference(
        getAbstractViewElement_Actions(),
        this.getViewAction(),
        null,
        "actions",
        null,
        0,
        -1,
        AbstractViewElement.class,
        !IS_TRANSIENT,
        !IS_VOLATILE,
        IS_CHANGEABLE,
        IS_COMPOSITE,
        IS_RESOLVE_PROXIES,
        !IS_UNSETTABLE,
        IS_UNIQUE,
        !IS_DERIVED,
        IS_ORDERED);
    initEReference(
        getAbstractViewElement_Events(),
        this.getViewEvent(),
        null,
        "events",
        null,
        0,
        -1,
        AbstractViewElement.class,
        !IS_TRANSIENT,
        !IS_VOLATILE,
        IS_CHANGEABLE,
        IS_COMPOSITE,
        IS_RESOLVE_PROXIES,
        !IS_UNSETTABLE,
        IS_UNIQUE,
        !IS_DERIVED,
        IS_ORDERED);
    initEAttribute(
        getAbstractViewElement_Label(),
        ecorePackage.getEString(),
        "label",
        null,
        0,
        1,
        AbstractViewElement.class,
        !IS_TRANSIENT,
        !IS_VOLATILE,
        IS_CHANGEABLE,
        !IS_UNSETTABLE,
        !IS_ID,
        IS_UNIQUE,
        !IS_DERIVED,
        IS_ORDERED);

    initEClass(
        viewContainerEClass,
        ViewContainer.class,
        "ViewContainer",
        !IS_ABSTRACT,
        !IS_INTERFACE,
        IS_GENERATED_INSTANCE_CLASS);
    initEReference(
        getViewContainer_OwnedElements(),
        this.getAbstractViewElement(),
        null,
        "ownedElements",
        null,
        0,
        -1,
        ViewContainer.class,
        !IS_TRANSIENT,
        !IS_VOLATILE,
        IS_CHANGEABLE,
        IS_COMPOSITE,
        IS_RESOLVE_PROXIES,
        !IS_UNSETTABLE,
        IS_UNIQUE,
        !IS_DERIVED,
        IS_ORDERED);
    initEReference(
        getViewContainer_ViewContainers(),
        this.getViewContainer(),
        null,
        "viewContainers",
        null,
        0,
        -1,
        ViewContainer.class,
        IS_TRANSIENT,
        IS_VOLATILE,
        !IS_CHANGEABLE,
        !IS_COMPOSITE,
        IS_RESOLVE_PROXIES,
        !IS_UNSETTABLE,
        IS_UNIQUE,
        IS_DERIVED,
        IS_ORDERED);
    initEReference(
        getViewContainer_ViewElements(),
        this.getViewElement(),
        null,
        "viewElements",
        null,
        0,
        -1,
        ViewContainer.class,
        IS_TRANSIENT,
        IS_VOLATILE,
        !IS_CHANGEABLE,
        !IS_COMPOSITE,
        IS_RESOLVE_PROXIES,
        !IS_UNSETTABLE,
        IS_UNIQUE,
        IS_DERIVED,
        IS_ORDERED);
    initEReference(
        getViewContainer_ViewContainerReferences(),
        this.getViewContainerReference(),
        null,
        "viewContainerReferences",
        null,
        0,
        -1,
        ViewContainer.class,
        IS_TRANSIENT,
        IS_VOLATILE,
        !IS_CHANGEABLE,
        !IS_COMPOSITE,
        IS_RESOLVE_PROXIES,
        !IS_UNSETTABLE,
        IS_UNIQUE,
        IS_DERIVED,
        IS_ORDERED);

    initEClass(
        viewElementEClass,
        ViewElement.class,
        "ViewElement",
        !IS_ABSTRACT,
        !IS_INTERFACE,
        IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(
        getViewElement_Required(),
        ecorePackage.getEBoolean(),
        "required",
        null,
        0,
        1,
        ViewElement.class,
        !IS_TRANSIENT,
        !IS_VOLATILE,
        IS_CHANGEABLE,
        !IS_UNSETTABLE,
        !IS_ID,
        IS_UNIQUE,
        !IS_DERIVED,
        IS_ORDERED);
    initEReference(
        getViewElement_Type(),
        theEnvironmentPackage.getType(),
        null,
        "type",
        null,
        0,
        1,
        ViewElement.class,
        !IS_TRANSIENT,
        !IS_VOLATILE,
        IS_CHANGEABLE,
        !IS_COMPOSITE,
        IS_RESOLVE_PROXIES,
        !IS_UNSETTABLE,
        IS_UNIQUE,
        !IS_DERIVED,
        IS_ORDERED);

    initEClass(
        viewActionEClass,
        ViewAction.class,
        "ViewAction",
        !IS_ABSTRACT,
        !IS_INTERFACE,
        IS_GENERATED_INSTANCE_CLASS);

    initEClass(
        viewEventEClass,
        ViewEvent.class,
        "ViewEvent",
        !IS_ABSTRACT,
        !IS_INTERFACE,
        IS_GENERATED_INSTANCE_CLASS);
    initEReference(
        getViewEvent_Type(),
        theToolkitsPackage.getWidgetEventType(),
        null,
        "type",
        null,
        0,
        1,
        ViewEvent.class,
        !IS_TRANSIENT,
        !IS_VOLATILE,
        IS_CHANGEABLE,
        !IS_COMPOSITE,
        IS_RESOLVE_PROXIES,
        !IS_UNSETTABLE,
        IS_UNIQUE,
        !IS_DERIVED,
        IS_ORDERED);

    initEClass(
        viewContainerReferenceEClass,
        ViewContainerReference.class,
        "ViewContainerReference",
        !IS_ABSTRACT,
        !IS_INTERFACE,
        IS_GENERATED_INSTANCE_CLASS);
    initEReference(
        getViewContainerReference_ViewContainer(),
        this.getViewContainer(),
        null,
        "viewContainer",
        null,
        1,
        1,
        ViewContainerReference.class,
        !IS_TRANSIENT,
        !IS_VOLATILE,
        IS_CHANGEABLE,
        !IS_COMPOSITE,
        IS_RESOLVE_PROXIES,
        !IS_UNSETTABLE,
        IS_UNIQUE,
        !IS_DERIVED,
        IS_ORDERED);
  }