/******************************************************************************* * Copyright (c) 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 Import Dialog for the XML Catalog. * *******************************************************************************/ package org.eclipse.wst.xml.ui.internal.wizards; import org.eclipse.core.resources.IFile; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.Wizard; import org.eclipse.ui.IImportWizard; import org.eclipse.ui.IWorkbench; 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.catalog.XMLCatalogMessages; import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper; import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages; public class ImportXMLCatalogWizard extends Wizard implements IImportWizard { protected ImportXMLCatalogPage importPage = null; protected ICatalog workingUserCatalog = null; protected ICatalog userCatalog = null; public ImportXMLCatalogWizard() { setWindowTitle(XMLWizardsMessages._UI_DIALOG_XMLCATALOG_IMPORT_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 canFinish() { return importPage.isPageComplete(); } public boolean performFinish() { IFile file = importPage.getFile(); if (file != null) { String fileName = file.getLocation().toFile().toURI().toString(); try { CatalogSet tempResourceSet = new CatalogSet(); ICatalog newCatalog = tempResourceSet.lookupOrCreateCatalog("temp", fileName); //$NON-NLS-1$ workingUserCatalog.addEntriesFromCatalog(newCatalog); userCatalog.clear(); userCatalog.addEntriesFromCatalog(workingUserCatalog); userCatalog.save(); } catch (Exception e) { return false; } } return true; } public void init(IWorkbench workbench, IStructuredSelection selection) { // TODO Auto-generated method stub } public void addPages() { importPage = new ImportXMLCatalogPage(); importPage.setTitle(XMLCatalogMessages.UI_LABEL_IMPORT_DIALOG_HEADING); importPage.setDescription(XMLWizardsMessages._UI_DIALOG_XMLCATALOG_IMPORT_DESCRIPTION); importPage.setMessage(XMLCatalogMessages.UI_LABEL_IMPORT_DIALOG_MESSAGE); addPage(importPage); importPage.setPageComplete(false); } }