Package de.innovationgate.eclipse.editors.design.wizards

Source Code of de.innovationgate.eclipse.editors.design.wizards.CreateNewCMLayout

/*******************************************************************************
* Copyright (c) 2009, 2010 Innovation Gate GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     Innovation Gate GmbH - initial API and implementation
******************************************************************************/
package de.innovationgate.eclipse.editors.design.wizards;

import java.io.IOException;
import java.io.InputStream;

import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbench;

import de.innovationgate.eclipse.editors.Plugin;
import de.innovationgate.eclipse.editors.ResourceIDs;
import de.innovationgate.eclipse.utils.WorkbenchUtils;
import de.innovationgate.eclipse.utils.ui.SingleStructuredSelection;
import de.innovationgate.eclipse.utils.ui.ValidatedMultiPageWizard;
import de.innovationgate.eclipse.utils.wga.WGADesignStructureHelper;

public class CreateNewCMLayout extends ValidatedMultiPageWizard {

  private DesignFolderSelectionPage _designFolderSelectionPage;
  private CreateNewCMLayoutPage _layoutPage;

  public CreateNewCMLayout() {
    super();
    setWindowTitle("New CM Layout");
  }
 
  @Override
  public boolean performFinish() {
    try {
      IContainer designRoot = (IContainer) _designFolderSelectionPage.getSelectedResource();
      String outerLayoutName = _layoutPage.getOuterLayoutName();
      String innerLayoutName = _layoutPage.getInnerLayoutName();
     
      WGADesignStructureHelper helper = new WGADesignStructureHelper(designRoot);
      IFolder html = helper.getTmlRoot().getFolder("html");
      if (!html.exists()) {
        html.create(false, true, new NullProgressMonitor());
      }
     
      IFile outerLayoutFile = html.getFile(new Path(outerLayoutName + ".tml"));
      InputStream outerLayoutTemplate = null;
      try {
        outerLayoutTemplate = Plugin.getDefault().getResourceAsStream("resources/templates/defaultOuterLayout.template");
        outerLayoutFile.create(outerLayoutTemplate, true, new NullProgressMonitor());
      } finally {
        if (outerLayoutTemplate != null) {
          try {
            outerLayoutTemplate.close();
          } catch (IOException e) {
          }
        }
      }
     
      IFolder inner = html.getFolder("inner");
      if (!inner.exists()) {
        inner.create(false, true, new NullProgressMonitor());
      }
     
      IFile innerLayoutFile = inner.getFile(innerLayoutName + ".tml");
      InputStream innerLayoutTemplate = null;
      try {
        innerLayoutTemplate = Plugin.getDefault().getResourceAsStream("resources/templates/defaultInnerLayout.template");       
        innerLayoutFile.create(innerLayoutTemplate, true, new NullProgressMonitor());
      } finally  {
        if (innerLayoutTemplate != null) {
          try {
            innerLayoutTemplate.close();
          } catch (IOException e) {
          }
        }
      }
     
      try {
        WorkbenchUtils.setNavigationViewSelection(new SingleStructuredSelection(innerLayoutFile));
        WorkbenchUtils.setNavigationViewSelection(new SingleStructuredSelection(outerLayoutFile));
        WorkbenchUtils.openEditor(Plugin.getDefault().getWorkbench(), outerLayoutFile, ResourceIDs.EDITOR_TML);
      } catch (Exception e) {       
      }
     
      return true;
    } catch (Exception e) {
      WorkbenchUtils.showErrorDialog(Plugin.getDefault(), getShell(), "Create new CM layout failed", "Unable to create new CM layout.", e);
      return false;
    }
  }

  public void init(IWorkbench workbench, IStructuredSelection selection) {
    _designFolderSelectionPage = new DesignFolderSelectionPage("Create new CM layout", "Please select the WGA design to create the new content management layout.", selection);
    addPage(_designFolderSelectionPage);
    _layoutPage = new CreateNewCMLayoutPage();
    addPage(_layoutPage);
  }

}
TOP

Related Classes of de.innovationgate.eclipse.editors.design.wizards.CreateNewCMLayout

TOP
Copyright © 2018 www.massapi.com. 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.