/******************************************************************************* * Copyright (c) 2008 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.smooks.configuration.editors.wizard; import java.util.Collection; import java.util.HashMap; import java.util.Map; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ITreeContentProvider; import org.jboss.tools.smooks.SmooksModelUtils; import org.jboss.tools.smooks.configuration.editors.GraphicsConstants; import org.jboss.tools.smooks.configuration.editors.csv12.CSV12InputDataWizard; import org.jboss.tools.smooks.configuration.editors.edireader12.EDIDataWizard; import org.jboss.tools.smooks.configuration.editors.javabean12.JavabeanContentProvider; import org.jboss.tools.smooks.configuration.editors.javabean12.JavabeanStrucutredDataWizard; import org.jboss.tools.smooks.configuration.editors.javabean12.JavabeanlabelProvider; import org.jboss.tools.smooks.configuration.editors.json12.Json12DataWizard; import org.jboss.tools.smooks.configuration.editors.xml.XMLStructuredDataContentProvider; import org.jboss.tools.smooks.configuration.editors.xml.XMLStructuredDataLabelProvider; import org.jboss.tools.smooks.configuration.editors.xml.XMLStructuredDataWizard; import org.jboss.tools.smooks.configuration.editors.xml.XSDStructuredDataWizard; /** * @author Dart Peng * @Date Aug 5, 2008 */ public class ViewerInitorStore { protected static ViewerInitorStore instance = null; protected HashMap<String, IViewerInitor> initorMap = null; protected ViewerInitorStore() { } public Collection<IViewerInitor> getViewerInitorCollection() { Map<String, IViewerInitor> map = this.getInitorMap(); if (map != null) { return map.values(); } return null; } public IStructuredDataSelectionWizard getStructuredDataCreationWizard(String typeID) { if (this.getInitorMap() == null) return null; IViewerInitor initor = this.getInitorMap().get(typeID); if (initor == null) return null; IStructuredDataSelectionWizard wizard = initor.getStructuredDataLoadWizard(); return wizard; // if(wizard != null){ // try { // return wizard.getClass().newInstance(); // } catch (Throwable t){ // t.printStackTrace(); // return wizard; // } // } // return null; } public ILabelProvider getLabelProvider(String typeID) { if (this.getInitorMap() == null) return null; IViewerInitor initor = this.getInitorMap().get(typeID); if (initor == null) return null; return initor.getLabelProvider(); } public ITreeContentProvider getTreeCotentProvider(String typeID) { if (this.getInitorMap() == null) return null; IViewerInitor initor = this.getInitorMap().get(typeID); if (initor == null) return null; return initor.getTreeContentProvider(); } public synchronized static ViewerInitorStore getInstance() { if (true) { return new ViewerInitorStore(); } if (instance == null) { instance = new ViewerInitorStore(); } return instance; } /** * @return the initorMap */ protected HashMap<String, IViewerInitor> getInitorMap() { if (initorMap == null) { initorMap = createNewInitorMap(); } return initorMap; } // protected ILabelProvider createLabelProvider(BaseViewerInitor initor, // IConfigurationElement element) { // try { // initor // .setLabelProvider(); // } catch (CoreException e) { // // ignore // } // return initor.getLabelProvider(); // } // // protected ILabelProvider createTreeContentProvider(BaseViewerInitor // initor, // IConfigurationElement element) { // try { // initor // .setTreeContentProvider(); // } catch (CoreException e) {// ignore // } // return initor.getLabelProvider(); // } // // protected ILabelProvider createCreationWizard(BaseViewerInitor initor, // IConfigurationElement element) { // try { // initor // .setStructuredDataLoadWizard); // } catch (CoreException e) {// ignore // } // return initor.getLabelProvider(); // } protected HashMap<String, IViewerInitor> createNewInitorMap() { HashMap<String, IViewerInitor> map = new HashMap<String, IViewerInitor>(); // for json 1.1 BaseViewerInitor jsonViewerInitor = new BaseViewerInitor(); String name = "JSON"; //$NON-NLS-1$ String description = "Select Json data file as the input data."; //$NON-NLS-1$ String iconPath = null; String typeID = SmooksModelUtils.INPUT_TYPE_JSON_1_1; // jsonViewerInitor.setName(name); // jsonViewerInitor.setDescription(description); // jsonViewerInitor.setWizardIconPath(iconPath); // jsonViewerInitor.setTypeID(typeID); // jsonViewerInitor.setLabelProvider(new XMLStructuredDataLabelProvider()); // jsonViewerInitor.setTreeContentProvider(new XMLStructuredDataContentProvider()); // jsonViewerInitor.setStructuredDataLoadWizard(new JsonDataWizard()); // jsonViewerInitor.setWizardIconPath(GraphicsConstants.IMAGE_JAVA_FILE); // map.put(typeID, jsonViewerInitor); // for json 1.2 BaseViewerInitor json12ViewerInitor = new BaseViewerInitor(); name = "Json 1.2"; //$NON-NLS-1$ description = "Select Json data file as the input data.(version 1.2)"; //$NON-NLS-1$ iconPath = null; typeID = SmooksModelUtils.INPUT_TYPE_JSON_1_2; json12ViewerInitor.setName(name); json12ViewerInitor.setDescription(description); json12ViewerInitor.setWizardIconPath(iconPath); json12ViewerInitor.setTypeID(typeID); json12ViewerInitor.setLabelProvider(new XMLStructuredDataLabelProvider()); json12ViewerInitor.setTreeContentProvider(new XMLStructuredDataContentProvider()); json12ViewerInitor.setStructuredDataLoadWizard(new Json12DataWizard()); json12ViewerInitor.setWizardIconPath(GraphicsConstants.IMAGE_JAVA_FILE); // don't add this // map.put(typeID, json12ViewerInitor); // for java BaseViewerInitor javabeanViewerInitor = new BaseViewerInitor(); name = "Java"; //$NON-NLS-1$ description = "Select a Java type(class,interface) as the input data."; //$NON-NLS-1$ iconPath = null; typeID = SmooksModelUtils.INPUT_TYPE_JAVA; javabeanViewerInitor.setName(name); javabeanViewerInitor.setDescription(description); javabeanViewerInitor.setWizardIconPath(iconPath); javabeanViewerInitor.setTypeID(typeID); javabeanViewerInitor.setLabelProvider(new JavabeanlabelProvider()); javabeanViewerInitor.setTreeContentProvider(new JavabeanContentProvider()); javabeanViewerInitor.setStructuredDataLoadWizard(new JavabeanStrucutredDataWizard()); javabeanViewerInitor.setWizardIconPath(GraphicsConstants.IMAGE_JAVA_FILE); map.put(typeID, javabeanViewerInitor); // for XML BaseViewerInitor xmlViewerInitor = new BaseViewerInitor(); name = "XML"; //$NON-NLS-1$ description = "Select a XML file to be the input data. "; //$NON-NLS-1$ iconPath = null; typeID = SmooksModelUtils.INPUT_TYPE_XML; xmlViewerInitor.setName(name); xmlViewerInitor.setDescription(description); xmlViewerInitor.setWizardIconPath(iconPath); xmlViewerInitor.setTypeID(typeID); xmlViewerInitor.setLabelProvider(new XMLStructuredDataLabelProvider()); xmlViewerInitor.setTreeContentProvider(new XMLStructuredDataContentProvider()); xmlViewerInitor.setStructuredDataLoadWizard(new XMLStructuredDataWizard()); xmlViewerInitor.setWizardIconPath(GraphicsConstants.IMAGE_XML_FILE); map.put(typeID, xmlViewerInitor); // for XSD BaseViewerInitor xsdViewerInitor = new BaseViewerInitor(); name = "XSD/WSDL"; //$NON-NLS-1$ description = "Select a XSD file to be the input data. Need to figure out a Root Element. "; //$NON-NLS-1$ iconPath = null; typeID = SmooksModelUtils.INPUT_TYPE_XSD; xsdViewerInitor.setName(name); xsdViewerInitor.setDescription(description); xsdViewerInitor.setWizardIconPath(iconPath); xsdViewerInitor.setTypeID(typeID); xsdViewerInitor.setLabelProvider(new XMLStructuredDataLabelProvider()); xsdViewerInitor.setTreeContentProvider(new XMLStructuredDataContentProvider()); xsdViewerInitor.setStructuredDataLoadWizard(new XSDStructuredDataWizard()); xsdViewerInitor.setWizardIconPath(GraphicsConstants.IMAGE_XSD_FILE); map.put(typeID, xsdViewerInitor); // for Csv 1.1 // BaseViewerInitor csvViewerInitor = new BaseViewerInitor(); // name = "CSV"; //$NON-NLS-1$ // description = "Select CSV data file as the input data."; //$NON-NLS-1$ // iconPath = null; // typeID = SmooksModelUtils.INPUT_TYPE_CSV; // // csvViewerInitor.setName(name); // csvViewerInitor.setDescription(description); // csvViewerInitor.setWizardIconPath(iconPath); // csvViewerInitor.setTypeID(typeID); // csvViewerInitor.setLabelProvider(new XMLStructuredDataLabelProvider()); // csvViewerInitor.setTreeContentProvider(new XMLStructuredDataContentProvider()); // csvViewerInitor.setStructuredDataLoadWizard(new CSVInputDataWizard()); // csvViewerInitor.setWizardIconPath(GraphicsConstants.IMAGE_CSV_FILE); // map.put(typeID, csvViewerInitor); // for Csv 1.2 BaseViewerInitor csv12ViewerInitor = new BaseViewerInitor(); name = "CSV 1.2"; //$NON-NLS-1$ description = "Select CSV data file as the input data (version 1.2)."; //$NON-NLS-1$ iconPath = null; typeID = SmooksModelUtils.INPUT_TYPE_CSV_1_2; csv12ViewerInitor.setName(name); csv12ViewerInitor.setDescription(description); csv12ViewerInitor.setWizardIconPath(iconPath); csv12ViewerInitor.setTypeID(typeID); csv12ViewerInitor.setLabelProvider(new XMLStructuredDataLabelProvider()); csv12ViewerInitor.setTreeContentProvider(new XMLStructuredDataContentProvider()); csv12ViewerInitor.setStructuredDataLoadWizard(new CSV12InputDataWizard()); map.put(typeID, csv12ViewerInitor); // for EDI 1.1 BaseViewerInitor ediViewerInitor = new BaseViewerInitor(); name = "EDI"; //$NON-NLS-1$ description = "Select EDI data file as the input data."; //$NON-NLS-1$ iconPath = null; typeID = SmooksModelUtils.INPUT_TYPE_EDI_1_1; ediViewerInitor.setName(name); ediViewerInitor.setDescription(description); ediViewerInitor.setWizardIconPath(iconPath); ediViewerInitor.setTypeID(typeID); ediViewerInitor.setLabelProvider(new XMLStructuredDataLabelProvider()); ediViewerInitor.setTreeContentProvider(new XMLStructuredDataContentProvider()); ediViewerInitor.setStructuredDataLoadWizard(new EDIDataWizard()); // jsonViewerInitor.setWizardIconPath(GraphicsConstants.IMAGE_JAVA_FILE); map.put(typeID, ediViewerInitor); return map; } }