protected void setContext(
      FormLoader loader,
      Form form,
      ims.framework.interfaces.IAppForm appForm,
      UIFactory factory,
      ims.framework.Context context,
      Boolean skipContextValidation,
      Integer startControlID,
      ims.framework.utils.SizeInfo runtimeSize,
      ims.framework.Control control,
      Integer startTabIndex)
      throws Exception {
    if (loader == null) ; // this is to avoid eclipse warning only.
    if (factory == null) ; // this is to avoid eclipse warning only.
    if (runtimeSize == null) ; // this is to avoid eclipse warning only.
    if (appForm == null) throw new RuntimeException("Invalid application form");
    if (startControlID == null) throw new RuntimeException("Invalid startControlID");
    if (control == null) ; // this is to avoid eclipse warning only.
    if (startTabIndex == null) throw new RuntimeException("Invalid startTabIndex");
    this.context = context;
    this.componentIdentifier = startControlID.toString();
    this.formInfo = form.getFormInfo();
    this.globalContext = new GlobalContext(context);

    if (skipContextValidation == null || !skipContextValidation.booleanValue()) {
      validateContext(context);
    }

    super.setContext(form);

    form.setDarkHeight(60);
    ims.framework.utils.SizeInfo designSize = new ims.framework.utils.SizeInfo(352, 408);
    if (runtimeSize == null) runtimeSize = designSize;
    form.setWidth(runtimeSize.getWidth());
    form.setHeight(runtimeSize.getHeight());
    super.setImageReferences(ImageReferencesFlyweightFactory.getInstance().create(Images.class));
    super.setGlobalContext(
        ContextBridgeFlyweightFactory.getInstance()
            .create(GlobalContextBridge.class, context, false));

    // Label Controls
    RuntimeAnchoring anchoringHelper1 =
        new RuntimeAnchoring(
            designSize,
            runtimeSize,
            16,
            16,
            41,
            17,
            ims.framework.enumerations.ControlAnchoring.TOPLEFT);
    super.addControl(
        factory.getControl(
            Label.class,
            new Object[] {
              control,
              new Integer(startControlID.intValue() + 1000),
              new Integer(anchoringHelper1.getX()),
              new Integer(anchoringHelper1.getY()),
              new Integer(anchoringHelper1.getWidth()),
              new Integer(anchoringHelper1.getHeight()),
              ControlState.UNKNOWN,
              ControlState.UNKNOWN,
              ims.framework.enumerations.ControlAnchoring.TOPLEFT,
              "Name:",
              new Integer(1),
              null,
              new Integer(0)
            }));

    // Button Controls
    RuntimeAnchoring anchoringHelper2 =
        new RuntimeAnchoring(
            designSize,
            runtimeSize,
            256,
            368,
            80,
            24,
            ims.framework.enumerations.ControlAnchoring.TOPLEFT);
    super.addControl(
        factory.getControl(
            Button.class,
            new Object[] {
              control,
              new Integer(startControlID.intValue() + 1001),
              new Integer(anchoringHelper2.getX()),
              new Integer(anchoringHelper2.getY()),
              new Integer(anchoringHelper2.getWidth()),
              new Integer(anchoringHelper2.getHeight()),
              new Integer(startTabIndex.intValue() + 6),
              ControlState.ENABLED,
              ControlState.ENABLED,
              ims.framework.enumerations.ControlAnchoring.TOPLEFT,
              "Cancel",
              Boolean.FALSE,
              null,
              Boolean.FALSE,
              Boolean.FALSE,
              Boolean.FALSE,
              null,
              ims.framework.utils.Color.Default,
              ims.framework.utils.Color.Default
            }));
    RuntimeAnchoring anchoringHelper3 =
        new RuntimeAnchoring(
            designSize,
            runtimeSize,
            168,
            368,
            80,
            24,
            ims.framework.enumerations.ControlAnchoring.TOPLEFT);
    super.addControl(
        factory.getControl(
            Button.class,
            new Object[] {
              control,
              new Integer(startControlID.intValue() + 1002),
              new Integer(anchoringHelper3.getX()),
              new Integer(anchoringHelper3.getY()),
              new Integer(anchoringHelper3.getWidth()),
              new Integer(anchoringHelper3.getHeight()),
              new Integer(startTabIndex.intValue() + 5),
              ControlState.UNKNOWN,
              ControlState.UNKNOWN,
              ims.framework.enumerations.ControlAnchoring.TOPLEFT,
              "Ok",
              Boolean.FALSE,
              null,
              Boolean.FALSE,
              Boolean.TRUE,
              Boolean.FALSE,
              null,
              ims.framework.utils.Color.Default,
              ims.framework.utils.Color.Default
            }));

    // TextBox Controls
    RuntimeAnchoring anchoringHelper4 =
        new RuntimeAnchoring(
            designSize,
            runtimeSize,
            88,
            16,
            168,
            21,
            ims.framework.enumerations.ControlAnchoring.TOPLEFT);
    super.addControl(
        factory.getControl(
            TextBox.class,
            new Object[] {
              control,
              new Integer(startControlID.intValue() + 1003),
              new Integer(anchoringHelper4.getX()),
              new Integer(anchoringHelper4.getY()),
              new Integer(anchoringHelper4.getWidth()),
              new Integer(anchoringHelper4.getHeight()),
              new Integer(startTabIndex.intValue() + 1),
              ControlState.UNKNOWN,
              ControlState.UNKNOWN,
              ims.framework.enumerations.ControlAnchoring.TOPLEFT,
              Boolean.FALSE,
              new Integer(30),
              Boolean.TRUE,
              Boolean.FALSE,
              null,
              null,
              Boolean.TRUE,
              ims.framework.enumerations.CharacterCasing.NORMAL,
              ims.framework.enumerations.TextTrimming.NONE,
              "",
              ""
            }));

    // Grid Controls
    RuntimeAnchoring anchoringHelper5 =
        new RuntimeAnchoring(
            designSize,
            runtimeSize,
            16,
            72,
            320,
            280,
            ims.framework.enumerations.ControlAnchoring.TOPLEFT);
    Grid m_grdUsersTemp =
        (Grid)
            factory.getControl(
                Grid.class,
                new Object[] {
                  control,
                  new Integer(startControlID.intValue() + 1004),
                  new Integer(anchoringHelper5.getX()),
                  new Integer(anchoringHelper5.getY()),
                  new Integer(anchoringHelper5.getWidth()),
                  new Integer(anchoringHelper5.getHeight()),
                  new Integer(startTabIndex.intValue() + 4),
                  ControlState.READONLY,
                  ControlState.EDITABLE,
                  ims.framework.enumerations.ControlAnchoring.TOPLEFT,
                  Boolean.TRUE,
                  Boolean.FALSE,
                  new Integer(24),
                  Boolean.TRUE,
                  null,
                  Boolean.FALSE,
                  Boolean.FALSE,
                  new Integer(0),
                  null,
                  Boolean.FALSE,
                  Boolean.TRUE
                });
    addControl(m_grdUsersTemp);
    grdUsersGrid grdUsers =
        (grdUsersGrid)
            GridFlyweightFactory.getInstance().createGridBridge(grdUsersGrid.class, m_grdUsersTemp);
    grdUsers.addStringColumn(
        "Name",
        0,
        0,
        -1,
        true,
        false,
        0,
        0,
        true,
        ims.framework.enumerations.CharacterCasing.NORMAL);
    super.addGrid(grdUsers);

    // Image Buttons Controls
    RuntimeAnchoring anchoringHelper6 =
        new RuntimeAnchoring(
            designSize,
            runtimeSize,
            304,
            16,
            30,
            30,
            ims.framework.enumerations.ControlAnchoring.TOPLEFT);
    super.addControl(
        factory.getControl(
            ImageButton.class,
            new Object[] {
              control,
              new Integer(startControlID.intValue() + 1005),
              new Integer(anchoringHelper6.getX()),
              new Integer(anchoringHelper6.getY()),
              new Integer(anchoringHelper6.getWidth()),
              new Integer(anchoringHelper6.getHeight()),
              new Integer(startTabIndex.intValue() + 3),
              ControlState.UNKNOWN,
              ControlState.UNKNOWN,
              ims.framework.enumerations.ControlAnchoring.TOPLEFT,
              this.getImages().Core.ClearEnabled24,
              this.getImages().Core.ClearDisabled24,
              "Clear",
              Boolean.FALSE,
              Boolean.FALSE,
              Boolean.TRUE,
              Boolean.FALSE,
              null
            }));
    RuntimeAnchoring anchoringHelper7 =
        new RuntimeAnchoring(
            designSize,
            runtimeSize,
            272,
            16,
            30,
            30,
            ims.framework.enumerations.ControlAnchoring.TOPLEFT);
    super.addControl(
        factory.getControl(
            ImageButton.class,
            new Object[] {
              control,
              new Integer(startControlID.intValue() + 1006),
              new Integer(anchoringHelper7.getX()),
              new Integer(anchoringHelper7.getY()),
              new Integer(anchoringHelper7.getWidth()),
              new Integer(anchoringHelper7.getHeight()),
              new Integer(startTabIndex.intValue() + 2),
              ControlState.UNKNOWN,
              ControlState.UNKNOWN,
              ims.framework.enumerations.ControlAnchoring.TOPLEFT,
              this.getImages().Core.FindEnabled24,
              this.getImages().Core.FindDisabled24,
              "Search",
              Boolean.FALSE,
              Boolean.TRUE,
              Boolean.TRUE,
              Boolean.FALSE,
              null
            }));
  }