| /******************************************************************************* |
| * Copyright (c) 2007, 2008 Standards for Technology in Automotive Retail (STAR) and |
| * others. 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: |
| * David Carver/STAR - dcarver@starstandard.org/d_a_carver@yahoo.com - bug 192568 |
| * Initial API - This implements the functionality of the |
| * old Export Dialog for the XML Catalog. |
| * |
| *******************************************************************************/ |
| package org.eclipse.wst.xml.ui.internal.wizards; |
| |
| import java.io.File; |
| |
| import org.eclipse.core.resources.IFile; |
| import org.eclipse.core.resources.IResource; |
| import org.eclipse.core.resources.IWorkspace; |
| import org.eclipse.core.resources.IWorkspaceRoot; |
| import org.eclipse.core.resources.ResourcesPlugin; |
| import org.eclipse.jface.resource.ImageDescriptor; |
| import org.eclipse.jface.viewers.IStructuredSelection; |
| import org.eclipse.ui.IExportWizard; |
| import org.eclipse.ui.IWorkbench; |
| import org.eclipse.ui.dialogs.WizardNewFileCreationPage; |
| import org.eclipse.ui.wizards.newresource.BasicNewFileResourceWizard; |
| import org.eclipse.wst.xml.core.internal.XMLCorePlugin; |
| import org.eclipse.wst.xml.core.internal.catalog.CatalogSet; |
| import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog; |
| import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog; |
| import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper; |
| import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages; |
| |
| public class ExportXMLCatalogWizard extends BasicNewFileResourceWizard implements IExportWizard { |
| |
| protected WizardNewFileCreationPage exportPage = null; |
| protected ICatalog workingUserCatalog = null; |
| protected ICatalog userCatalog = null; |
| |
| public ExportXMLCatalogWizard() { |
| setWindowTitle(XMLWizardsMessages._UI_DIALOG_XMLCATALOG_EXPORT_TITLE); |
| ImageDescriptor descriptor = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_WIZBAN_GENERATEXML); |
| setDefaultPageImageDescriptor(descriptor); |
| ICatalog defaultCatalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog(); |
| INextCatalog[] nextCatalogs = defaultCatalog.getNextCatalogs(); |
| for (int i = 0; i < nextCatalogs.length; i++) { |
| INextCatalog catalog = nextCatalogs[i]; |
| ICatalog referencedCatalog = catalog.getReferencedCatalog(); |
| if (referencedCatalog != null) { |
| if (XMLCorePlugin.USER_CATALOG_ID.equals(referencedCatalog.getId())) { |
| userCatalog = referencedCatalog; |
| } |
| } |
| } |
| CatalogSet tempCatalogSet = new CatalogSet(); |
| workingUserCatalog = tempCatalogSet.lookupOrCreateCatalog("working", ""); //$NON-NLS-1$ //$NON-NLS-2$ |
| workingUserCatalog.addEntriesFromCatalog(userCatalog); |
| |
| } |
| |
| public boolean performFinish() { |
| IWorkspace workspace = ResourcesPlugin.getWorkspace(); |
| IWorkspaceRoot workspaceRoot = workspace.getRoot(); |
| String workspacePath = workspaceRoot.getLocation().toOSString(); |
| String fullPath = workspacePath + exportPage.getContainerFullPath().toOSString(); |
| String requiredString=fullPath + File.separator + exportPage.getFileName(); |
| try { |
| IFile file = exportPage.createNewFile(); |
| workingUserCatalog.setLocation(requiredString); |
| workingUserCatalog.save(); |
| file.refreshLocal(IResource.DEPTH_ZERO, null); |
| } catch (Exception ex) { |
| return false; |
| } |
| return true; |
| } |
| |
| public void addPages() { |
| exportPage = new WizardNewFileCreationPage("XML Catalog Export", getSelection()); |
| exportPage.setTitle(XMLWizardsMessages._UI_DIALOG_XMLCATALOG_EXPORT_TITLE); |
| exportPage.setDescription(XMLWizardsMessages._UI_DIALOG_XMLCATALOG_EXPORT_DESCRIPTION); |
| exportPage.setFileExtension("xml"); //$NON-NLS-1$ |
| |
| addPage(exportPage); |
| } |
| |
| public void init(IWorkbench workbench, IStructuredSelection currentSelection) { |
| super.init(workbench, currentSelection); |
| setWindowTitle(XMLWizardsMessages._UI_DIALOG_XMLCATALOG_EXPORT_TITLE); |
| ImageDescriptor descriptor = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_WIZBAN_GENERATEXML); |
| setDefaultPageImageDescriptor(descriptor); |
| } |
| } |