Package org.openbp.cockpit.generator

Examples of org.openbp.cockpit.generator.Generator


          {
            WizardSelectionPage selectionPage = new WizardSelectionPage(this);

            for (int i = 0; i < n; ++i)
            {
              Generator generator = (Generator) list.get(i);
              selectionPage.addGenerator(generator);
            }

            selectionPage.expandTree();
            addAndLinkPage(GeneratorWizard.SELECTION_PAGE, selectionPage);
          }
          else if (n == 1)
          {
            Generator gen = (Generator) list.get(0);
            if (gen != null)
            {
              // Initialize the generator context and settings as if we would have gotten them from an item of newer type
              context.setSelectedGenerator(gen);

              GeneratorSettings settings = new GeneratorSettings();
              settings.setGeneratorName(gen.getName());
              context.setGeneratorSettings(settings);
              context.setProperty(GeneratorWizard.SETTINGS_PAGE, settings);
            }
          }
        }
View Full Code Here


        ExceptionUtil.printTrace(e);
        return false;
      }

      String name = settings.getGeneratorName();
      Generator gen = GeneratorMgr.getInstance().getGenerator(name);
      if (gen != null)
      {
        context.setSelectedGenerator(gen);
        context.setGeneratorSettings(settings);
        context.setProperty(GeneratorWizard.SETTINGS_PAGE, settings);
View Full Code Here

    String processType = item.getProcessType();
    if (processType != null)
    {
      String generatorName = "Process" + processType;

      Generator gen = GeneratorMgr.getInstance().getGenerator(generatorName);
      if (gen != null)
      {
        // Initialize the generator context and settings as if we would have gotten them from an item of newer type
        context.setSelectedGenerator(gen);
View Full Code Here

    // Instead, we display the template set combo box and the 'Run generator' button
    // at the top of the page.
    addStartPanel();

    // Add the 'Open result file' checkbox to the bottom of the page.
    Generator generator = getContext().getSelectedGenerator();
    if (generator.isShowOpenResultCheckBox())
    {
      addOpenPanel();
    }
  }
View Full Code Here

    // Prepare the context
    GeneratorContext context = getContext();
    context.setProperty("mergeModeRequester", new GeneratorMergeModeRequester());

    // Call the generator
    Generator generator = context.getSelectedGenerator();
    generator.preProcess(context);
  }
View Full Code Here

  protected void process()
    throws Exception
  {
    // Call the generator
    GeneratorContext context = getContext();
    Generator generator = context.getSelectedGenerator();
    generator.performProcess(context);
  }
View Full Code Here

  {
    if (success)
    {
      // Call the generator
      GeneratorContext context = getContext();
      Generator generator = context.getSelectedGenerator();
      generator.postProcess(context);

      // Reset the template logger streams
      getConsole().unmapAll();
      getConsole().writeText(resourceCollection.getRequiredString("wizard.result.progress.finished"));
View Full Code Here

    // We don't want the generation processing to start automatically, so we don't call the super method here.

    if (event.eventType == WizardEvent.SHOW)
    {
      // Show/hide the settings panel
      Generator generator = getContext().getSelectedGenerator();
      if (generator.getTemplateName() != null)
      {
        if (settingsPanel.getParent() == null)
        {
          startPanel.add(settingsPanel, BorderLayout.NORTH);
        }
View Full Code Here

   * true: Processing can be continued.<br>
   * false: The cancel flag of the event has been set by an event listener.
   */
  protected boolean fireWizardEvent(final WizardEvent event)
  {
    Generator selectedGenerator = context.getSelectedGenerator();

    // The super method will link and show the result page if set
    if (! super.fireWizardEvent(event))
      return false;

    // Invoke the generator's customizer to handle the event
    if (selectedGenerator != null)
    {
      GeneratorCustomizer customizer = selectedGenerator.getCustomizer();
      if (customizer != null)
      {
        customizer.processWizardEvent(context, event);
        if (event.cancel)
          return false;
      }
    }

    if (event.eventType == WizardEvent.FINISH)
    {
      // Save the item if appropriate
      boolean save = false;

      if (selectedGenerator == null)
      {
        // No generator, creating an item
        save = true;
      }
      else
      {
        if (selectedGenerator.isItemGenerator())
        {
          // Generator, but also creating an item
          save = true;
        }

        selectedGenerator.saveSettings(context);
      }

      if (save)
      {
        Item item = context.getItem();

        // First, serialize the generator settings and store them in the item
        String info = null;
        GeneratorSettings settings = context.getGeneratorSettings();
        if (settings != null && selectedGenerator != null)
        {
          settings.beforeSerialization();

          StringBuffer sb = new StringBuffer();
          StringBufferOutputStream os = new StringBufferOutputStream(sb);
          try
          {
            selectedGenerator.getXmlDriver().serialize(settings, os);
          }
          catch (XMLDriverException e)
          {
            ExceptionUtil.printTrace(e);
          }

          info = sb.toString().trim();
          if (info.equals(""))
          {
            info = null;
          }
          else
          {
            // Remove xml method tag (or else the XML parser will complain)
            info = StringUtil.substitute(info, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "");
            info = StringUtil.substitute(info, "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>", "");
          }
        }
        item.setGeneratorInfo(info);

        // Add the item if the item is new and has not been saved yet; otherwise update the item
        // Placeholders serve for the creation of placeholder nodes only and are never saved.
        if (! (item instanceof PlaceholderItem))
        {
          boolean add = context.isNewItem() && ! context.isItemSaved();
          if (! ModelConnector.getInstance().saveItem(item, add))
          {
            event.cancel = true;
            return false;
          }
        }

        // Mark the item as saved. Do not initialize the item any more after saving.
        context.setItemSaved(true);
        context.setEmptyItem(false);

        // Get a reference to the saved item that is managed by the model for name uniqueness check and restoration purposes
        Item original;
        if (item instanceof Model)
        {
          original = ModelConnector.getInstance().getModelByQualifier(item.getQualifier());
        }
        else
        {
          original = ModelConnector.getInstance().getItemByQualifier(item.getQualifier(), false);
        }
        context.setOriginalItem(original);

        // After the item has been saved, we won't let the user back to the generator selection page
        removePage(GeneratorWizard.SELECTION_PAGE);
      }

      // Link the result (= generation) page if our generator requires one
      if (selectedGenerator != null)
      {
        boolean hasResultPage = true;
        GeneratorCustomizer customizer = selectedGenerator.getCustomizer();
        if (customizer != null)
        {
          hasResultPage = customizer.hasResultPage(context);
        }

View Full Code Here

  /**
   * Updates the wizard pages according to the selected generator type.
   */
  public void updateGeneratorPageSequence()
  {
    Generator generator = context.getSelectedGenerator();
    SequenceManagerImpl manager = (SequenceManagerImpl) getManager();

    if (originalSequence == null)
    {
      // First time: Back up the page sequence
      try
      {
        originalSequence = (SequenceManagerImpl) manager.clone();
      }
      catch (CloneNotSupportedException e)
      {
        // Never happens
      }
    }
    else
    {
      // Restore the original page sequence
      try
      {
        String current = manager.getCurrent();

        manager = (SequenceManagerImpl) originalSequence.clone();
        setManager(manager);

        manager.setCurrent(current);
      }
      catch (CloneNotSupportedException e)
      {
        // Never happens
      }
    }

    if (generator != null)
    {
      context.setInvalidGenerator(false);

      // A generator type was selected, we can continue.
      // Perform the necessary preparations
      try
      {
        // Create the generator customizer class for this type
        generator.checkRequirements(context);
        generator.createSettings(context);
        generator.loadSettings(context);

        GeneratorCustomizer customizer = generator.getCustomizer();
        if (customizer != null)
        {
          customizer.beforePageSequenceUpdate(context, this);
        }

        // Create and link the custom pages if defined
        List customPages = generator.getCustomPageList();
        if (customPages != null)
        {
          // Determine the first generator page and its successor
          String currentPageName;
          String next;
          if (getPage(GeneratorWizard.SELECTION_PAGE) != null)
          {
            currentPageName = GeneratorWizard.SELECTION_PAGE;
            next = manager.getNext(currentPageName);
          }
          else
          {
            currentPageName = null;
            next = manager.getFirst();
          }

          // Custom pages, link them into the sequence
          int n = customPages.size();
          for (int i = 0; i < n; ++i)
          {
            GeneratorPageDescriptor pd = (GeneratorPageDescriptor) customPages.get(i);
            String pageName = pd.getName();

            WizardPage page = (WizardPage) getPage(pageName);

            if (page == null)
            {
              // If the page does not yet exist, create it
              String pageClassName = pd.getPageClassName();
              String objectClassName = pd.getObjectClassName();

              if (objectClassName != null)
              {
                // Object page, get/create the object
                Object o = context.getProperty(pageName);
                if (o == null)
                {
                  o = ReflectUtil.instantiate(objectClassName, null,
                    "generator settings object class");
                  context.setProperty(pageName, o);
                }

                // Create property browser page and set the object
                page = new WizardObjectPage(this, pd);
              }
              else if (pageClassName != null)
              {
                try
                {
                  Class pageClass = Class.forName(pageClassName);

                  // We retrieve the Constructor of the page that uses one single parameter
                  // of the type Wizard.

                  Constructor[] ctrs = pageClass.getDeclaredConstructors();
                  for (int ic = 0; ic < ctrs.length; ++ic)
                  {
                    Class[] params = ctrs[ic].getParameterTypes();
                    if (params.length == 1 && params[0] == GeneratorWizard.class)
                    {
                      page = (WizardPage) ctrs[ic].newInstance(new Object[]
                      {
                        this
                      });
                      break;
                    }
                  }

                  if (page == null)
                    throw new GeneratorException("Class '" + pageClassName
                      + "' does not have a (GeneratorWizard) constructor.");
                }
                catch (Exception e)
                {
                  String msg = LogUtil.error(getClass(), "Cannot instantiate page class $0.",
                    pageClassName, e);
                  String exMsg = ExceptionUtil.getNestedMessage(e);
                  throw new GeneratorException(exMsg != null ? exMsg : msg);
                }
              }

              if (page != null)
              {
                // Get the description of the page from the page descriptor
                String pageDescription = pd.getDescription();
                page.setDescription(pageDescription);

                // Add it to the wizard
                addPage(pageName, page);
              }
            }

            if (page != null)
            {
              // Get the title of the page from the page descriptor
              String pageTitle = pd.getDisplayName();
              if (pageTitle == null)
                pageTitle = generator.getDisplayName();
              page.setTitle(pageTitle);

              if (pd.isFinish())
              {
                page.canFinish = true;
View Full Code Here

TOP

Related Classes of org.openbp.cockpit.generator.Generator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.