Exemplo n.º 1
0
  private void displayWizardStep(
      IWizardStepDescriptor wizardStep,
      IValueConnector modelConnector,
      IActionHandler actionHandler,
      Map<String, Object> context,
      boolean reuseCurrent) {

    ITranslationProvider translationProvider = getTranslationProvider(context);
    Locale locale = getLocale(context);
    IView<E> view =
        getViewFactory(context)
            .createView(wizardStep.getViewDescriptor(), actionHandler, getLocale(context));
    IModelDescriptor modelDescriptor = wizardStep.getViewDescriptor().getModelDescriptor();
    if (modelDescriptor instanceof IComponentDescriptor<?>) {
      for (IPropertyDescriptor propertyDescriptor :
          ((IComponentDescriptor<?>) modelDescriptor).getPropertyDescriptors()) {
        if (propertyDescriptor instanceof IScalarPropertyDescriptor
            && ((IScalarPropertyDescriptor) propertyDescriptor).getDefaultValue() != null) {
          Map<String, Object> wizardModel = modelConnector.getConnectorValue();
          if (!wizardModel.containsKey(propertyDescriptor.getName())) {
            wizardModel.put(
                propertyDescriptor.getName(),
                ((IScalarPropertyDescriptor) propertyDescriptor).getDefaultValue());
          }
        }
      }
    }
    getMvcBinder(context).bind(view.getConnector(), modelConnector);

    String title =
        getI18nName(translationProvider, locale)
            + " - "
            + wizardStep.getI18nName(translationProvider, locale);
    Dimension dialogSize = getDialogSize(context);
    getController(context)
        .displayModalDialog(
            view.getPeer(),
            createWizardStepActions(
                wizardStep,
                view,
                actionHandler,
                translationProvider,
                locale,
                modelConnector,
                context),
            title,
            getSourceComponent(context),
            context,
            dialogSize,
            reuseCurrent);
    // We must update the context
    context.putAll(
        getActionFactory(context)
            .createActionContext(
                actionHandler,
                view,
                view.getConnector(),
                getActionCommand(context),
                getActionWidget(context)));
  }