/* * Copyright (c) 2005, 2009 Borland Software Corporation * * 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: * Artem Tikhomirov (Borland) - initial API and implementation */ package org.eclipse.gmf.internal.codegen.lite; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.emf.codegen.jet.JETCompiler; import org.eclipse.emf.codegen.merge.java.JControlModel; import org.eclipse.emf.codegen.merge.java.JMerger; import org.eclipse.emf.codegen.util.CodeGenUtil; import org.eclipse.emf.common.CommonPlugin; import org.eclipse.emf.common.util.URI; import org.eclipse.gmf.common.UnexpectedBehaviourException; import org.eclipse.gmf.internal.common.codegen.BinaryEmitter; import org.eclipse.gmf.internal.common.codegen.DefaultTextMerger; import org.eclipse.gmf.internal.common.codegen.GIFEmitter; import org.eclipse.gmf.internal.common.codegen.JETGIFEmitterAdapter; import org.eclipse.gmf.internal.common.codegen.TextEmitter; import org.eclipse.gmf.internal.common.codegen.TextMerger; import org.eclipse.gmf.internal.common.codegen.XpandTextEmitter; import org.eclipse.gmf.internal.xpand.ResourceManager; import org.eclipse.gmf.internal.xpand.util.BundleResourceManager; import org.osgi.framework.Bundle; /** * Provides Xpand templates. * FIXME Merge with {@link org.eclipse.gmf.codegen.util.CodegenEmitters} * * @author artem */ public class CodegenEmitters { private static final String CODEGEN_PLUGIN_ID = "org.eclipse.gmf.codegen"; //$NON-NLS-1$ private static final String PATH_SEPARATOR = "::"; private final String[] myTemplatePath; private final ResourceManager myResourceManager; public CodegenEmitters(boolean useBaseTemplatesOnly, String templateDirectory) { ArrayList<URL> templatesURI = new ArrayList<URL>(3); templatesURI.add(getTemplatesBundle().getEntry("/templates/")); //$NON-NLS-1$ templatesURI.add(getCodegenTemplatesBundle().getEntry("/templates/")); //$NON-NLS-1$ URL dynamicTemplatesPath = getDynamicTemplatesURL(templateDirectory); if (!useBaseTemplatesOnly && dynamicTemplatesPath != null) { templatesURI.add(0, dynamicTemplatesPath); } myResourceManager = new BundleResourceManager(templatesURI.toArray(new URL[templatesURI.size()])); myTemplatePath = new String[templatesURI.size()]; for (int i = 0; i < templatesURI.size(); i++) { myTemplatePath[i] = templatesURI.get(i).toString(); } } private static URL getDynamicTemplatesURL(String templateDirectory) { if (templateDirectory != null) { URI templatesURI = templateDirectory.indexOf(":") == -1 ? URI.createPlatformResourceURI(templateDirectory, true) : URI.createURI(templateDirectory); //$NON-NLS-1$ try { return new URL(CommonPlugin.resolve(templatesURI).toString()); } catch (MalformedURLException e) { Activator.getInstance().getLog().log(new Status(IStatus.ERROR, Activator.getPluginID(), 0, "Incorrect dynamic templates location", e)); //$NON-NLS-1$ } } return null; } public TextMerger createMergeService() { URL controlFile = getJMergeControlFile(); if (controlFile != null){ JControlModel controlModel = new JControlModel(); controlModel.initialize(CodeGenUtil.instantiateFacadeHelper(JMerger.DEFAULT_FACADE_HELPER_CLASS), controlFile.toString()); if (!controlModel.canMerge()){ throw new IllegalStateException("Can not initialize JControlModel"); } return new DefaultTextMerger(controlModel); } return null; } public TextEmitter getCreateNodeCommandEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::CreateNodeCommand::CreateNodeCommand"); //$NON-NLS-1$ } public TextEmitter getCreateNodeCommandQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::CreateNodeCommand::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getAddNodeCommandEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::AddNodeCommand::AddNodeCommand"); //$NON-NLS-1$ } public TextEmitter getAddNodeCommandQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::AddNodeCommand::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getCloneNodeCommandEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::CloneNodeCommand::CloneNodeCommand"); //$NON-NLS-1$ } public TextEmitter getCloneNodeCommandQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::CloneNodeCommand::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getCreateLinkStartCommandEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::CreateLinkStartCommand::CreateLinkStartCommand"); //$NON-NLS-1$ } public TextEmitter getCreateLinkStartCommandQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::CreateLinkStartCommand::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getCreateLinkCompleteCommandEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::CreateLinkCompleteCommand::CreateLinkCompleteCommand"); //$NON-NLS-1$ } public TextEmitter getCreateLinkCompleteCommandQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::CreateLinkCompleteCommand::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getReconnectLinkSourceCommandEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::ReconnectLinkSourceCommand::ReconnectLinkSourceCommand"); //$NON-NLS-1$ } public TextEmitter getReconnectLinkSourceCommandQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::ReconnectLinkSourceCommand::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getReconnectLinkTargetCommandEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::ReconnectLinkTargetCommand::ReconnectLinkTargetCommand"); //$NON-NLS-1$ } public TextEmitter getReconnectLinkTargetCommandQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::ReconnectLinkTargetCommand::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getViewFactoryGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::viewfactories::ViewFactory::ViewFactory"); //$NON-NLS-1$ } public TextEmitter getComponentEditPolicyEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::policies::ComponentEditPolicy::ComponentEditPolicy"); //$NON-NLS-1$ } public TextEmitter getComponentEditPolicyQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::policies::ComponentEditPolicy::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getLayoutEditPolicyEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::policies::LayoutEditPolicy::LayoutEditPolicy"); //$NON-NLS-1$ } public TextEmitter getLayoutEditPolicyQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::policies::LayoutEditPolicy::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getSideAffixedLayoutEditPolicyEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::policies::LayoutEditPolicy::SideAffixedLayoutEditPolicy"); //$NON-NLS-1$ } public TextEmitter getSideAffixedLayoutEditPolicyQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::policies::LayoutEditPolicy::SideAffixedQualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getGraphicalEditPolicyEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::policies::GraphicalNodeEditPolicy::GraphicalNodeEditPolicy"); //$NON-NLS-1$ } public TextEmitter getGraphicalEditPolicyQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::policies::GraphicalNodeEditPolicy::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getConnectionEndpointEditPolicyEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::policies::ConnectionEndpointEditPolicy::ConnectionEndpointEditPolicy"); //$NON-NLS-1$ } public TextEmitter getConnectionEndpointEditPolicyQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::policies::ConnectionEndpointEditPolicy::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getValidationProviderGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::providers::ValidationProvider::ValidationProvider"); //$NON-NLS-1$ } public TextEmitter getValidateActionGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::providers::ValidateAction::ValidateAction"); //$NON-NLS-1$ } public TextEmitter getValidateActionQualifiedNameGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::providers::ValidateAction::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getMetricProviderEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::providers::MetricProvider::MetricProvider"); //$NON-NLS-1$ } public TextEmitter getMetricsActionEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::providers::MetricsAction::MetricsAction"); //$NON-NLS-1$ } public TextEmitter getMetricsActionQualifiedNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::providers::MetricsAction::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getDomainElementInitializerGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::providers::DomainElementInitializer::DomainElementInitializer"); //$NON-NLS-1$ } public TextEmitter getDomainElementInitializerQualifiedNameGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::providers::DomainElementInitializer::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getCompartmentEditPartGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::parts::CompartmentEditPart::CompartmentEditPart"); //$NON-NLS-1$ } public TextEmitter getDiagramEditPartGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::parts::DiagramEditPart::DiagramEditPart"); //$NON-NLS-1$ } public TextEmitter getEditPartFactoryGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::parts::EditPartFactory::EditPartFactory"); //$NON-NLS-1$ } public TextEmitter getLinkEditPartGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::parts::LinkEditPart::LinkEditPart"); //$NON-NLS-1$ } public TextEmitter getLinkLabelEditPartGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::parts::LinkLabelEditPart::LinkLabelEditPart"); //$NON-NLS-1$ } public TextEmitter getChildNodeEditPartGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::parts::ChildNodeEditPart::ChildNodeEditPart"); //$NON-NLS-1$ } public TextEmitter getNodeEditPartGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::parts::NodeEditPart::NodeEditPart"); //$NON-NLS-1$ } public TextEmitter getNodeLabelEditPartGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::parts::NodeLabelEditPart::NodeLabelEditPart"); //$NON-NLS-1$ } public TextEmitter getPluginGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::Plugin::Plugin"); //$NON-NLS-1$ } public TextEmitter getActionBarContributorGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::ActionBarContributor::ActionBarContributor"); //$NON-NLS-1$ } public TextEmitter getOpenDiagramInViewActionGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::OpenDiagramInViewAction::OpenDiagramInViewAction"); //$NON-NLS-1$ } public TextEmitter getOpenDiagramInViewActionQualifiedClassNameGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::OpenDiagramInViewAction::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getEditorGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::Editor::Editor"); //$NON-NLS-1$ } public TextEmitter getMatchingStrategyEmitter() { return retrieveXpand("xpt::editor::MatchingStrategy::MatchingStrategy"); //$NON-NLS-1$ } public TextEmitter getCreationWizardGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::CreationWizard::CreationWizard"); //$NON-NLS-1$ } public TextEmitter getCreationWizardPageGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::CreationWizardPage::CreationWizardPage"); //$NON-NLS-1$ } public TextEmitter getDiagramEditorUtilGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::DiagramEditorUtil::DiagramEditorUtil"); //$NON-NLS-1$ } public TextEmitter getPaletteFactoryGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::palette::PaletteFactory::Factory"); //$NON-NLS-1$ } public TextEmitter getVisualIDRegistryGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::VisualIDRegistry::VisualIDRegistry"); //$NON-NLS-1$ } public TextEmitter getManifestGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::manifest::manifest"); //$NON-NLS-1$ } public TextEmitter getBuildPropertiesGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::buildProperties::buildProperties"); //$NON-NLS-1$ } public TextEmitter getPluginXML() throws UnexpectedBehaviourException { return retrieveXpand("xpt::plugin::plugin"); //$NON-NLS-1$ } public TextEmitter getModelElementSelectionPageEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::ModelElementSelectionPage::ModelElementSelectionPage"); //$NON-NLS-1$ } public TextEmitter getModelElementSelectionPageQualifiedNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::ModelElementSelectionPage::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getInitDiagramFileActionGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::InitDiagramFileAction::InitDiagramFileAction"); //$NON-NLS-1$ } public TextEmitter getNewDiagramFileWizardGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::NewDiagramFileWizard::NewDiagramFileWizard"); //$NON-NLS-1$ } public TextEmitter getURISelectorPageGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::URISelectorPage::URISelectorPage"); //$NON-NLS-1$ } public TextEmitter getURISelectorPageQualifiedClassNameGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::URISelectorPage::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getShortcutPropertyTesterEmitter() { return retrieveXpand("xpt::editor::ShortcutPropertyTester::ShortcutPropertyTester"); //$NON-NLS-1$ } public TextEmitter getShortcutCreationWizardEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::ShortcutCreationWizard::ShortcutCreationWizard"); //$NON-NLS-1$ } public TextEmitter getShortcutCreationWizardQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::ShortcutCreationWizard::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getCreateShortcutActionEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::CreateShortcutAction::CreateShortcutAction"); //$NON-NLS-1$ } public TextEmitter getShortcutProviderEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::providers::ShortcutProvider::ShortcutProvider"); //$NON-NLS-1$ } public TextEmitter getShortcutProviderQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::providers::ShortcutProvider::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getCreateShortcutNodeCommandEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::CreateShortcutNodeCommand::CreateShortcutNodeCommand"); //$NON-NLS-1$ } public TextEmitter getCreateShortcutNodeCommandQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::CreateShortcutNodeCommand::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getCreateShortcutEdgeCommandEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::CreateShortcutEdgeCommand::CreateShortcutEdgeCommand"); //$NON-NLS-1$ } public TextEmitter getCreateShortcutEdgeCommandQualifiedClassNameEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::commands::CreateShortcutEdgeCommand::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getElementChooserEmitter() { return retrieveXpand("xpt::editor::ElementChooser::ElementChooser"); //$NON-NLS-1$ } public TextEmitter getLoadResourceActionGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::LoadResourceAction::LoadResourceAction"); //$NON-NLS-1$ } public TextEmitter getElementTypesGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::providers::ElementTypes::ElementTypes"); //$NON-NLS-1$ } public TextEmitter getPluginPropertiesGenerator() throws UnexpectedBehaviourException { return retrieveXpand("xpt::properties::properties"); //$NON-NLS-1$ } public TextEmitter getAbstractExpressionEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::expressions::AbstractExpression::AbstractExpression"); } public TextEmitter getOCLExpressionFactoryEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::expressions::OCLExpressionFactory::OCLExpressionFactory"); } public TextEmitter getRegexpExpressionFactoryEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::expressions::RegexpExpressionFactory::RegexpExpressionFactory"); } public TextEmitter getOpenDiagramEditPolicyEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::diagram::policies::OpenDiagramEditPolicy::OpenDiagramEditPolicy"); //$NON-NLS-1$ } public TextEmitter getAppearancePreferencePageEmitter() { return retrieveXpand("xpt::diagram::preferences::AppearancePreferencePage::AppearancePreferencePage"); //$NON-NLS-1$ } public TextEmitter getAppearancePreferencePageQualifiedClassNameEmitter() { return retrieveXpand("xpt::diagram::preferences::AppearancePreferencePage::qualifiedClassName"); //$NON-NLS-1$ } public TextEmitter getGeneralPreferencePageEmitter() { return retrieveXpand("xpt::diagram::preferences::GeneralPreferencePage::GeneralPreferencePage"); //$NON-NLS-1$ } public TextEmitter getGeneralPreferencePageQualifiedClassNameEmitter() { return retrieveXpand("xpt::diagram::preferences::GeneralPreferencePage::qualifiedClassName"); //$NON-NLS-1$ } public BinaryEmitter getDiagramIconEmitter() throws UnexpectedBehaviourException { return newGIFEmitterAdapter("/xpt/editor/diagram.gif"); //$NON-NLS-1$ } public BinaryEmitter getWizardBannerImageEmitter() throws UnexpectedBehaviourException { return newGIFEmitterAdapter("/xpt/editor/wizban.gif"); //$NON-NLS-1$ } public TextEmitter getWizardBannerStemEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::CreationWizard::wizardBannerStem"); //$NON-NLS-1$ } public TextEmitter getWizardBannerLocationEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::editor::CreationWizard::wizardBannerLocation"); //$NON-NLS-1$ } private BinaryEmitter newGIFEmitter(String relativePath) throws UnexpectedBehaviourException { return new GIFEmitter(checkTemplateLocation(relativePath)); } private BinaryEmitter newGIFEmitterAdapter(String relativePath) throws UnexpectedBehaviourException { return new JETGIFEmitterAdapter(new org.eclipse.emf.codegen.util.GIFEmitter(checkTemplateLocation(relativePath))); } private String checkTemplateLocation(String relativePath) throws UnexpectedBehaviourException { String templateLocation = JETCompiler.find(getTemplatePath(), relativePath); if (templateLocation == null) { throw new UnexpectedBehaviourException("Template " + relativePath +" not found"); } return templateLocation; } private String[] getTemplatePath() { return myTemplatePath; } private static Bundle getTemplatesBundle() { return Activator.getDefault(); } private static Bundle getCodegenTemplatesBundle() { return Platform.getBundle(CODEGEN_PLUGIN_ID); } public URL getJMergeControlFile() { return getCodegenTemplatesBundle().getEntry("/templates/emf-merge.xml"); } public BinaryEmitter getShortcutImageEmitter() throws UnexpectedBehaviourException { return newGIFEmitter("/xpt/editor/shortcut.gif"); //$NON-NLS-1$ } public TextEmitter getNavigatorContentProviderEmitter() { return retrieveXpand("xpt::navigator::NavigatorContentProvider::NavigatorContentProvider"); //$NON-NLS-1$ } public TextEmitter getDomainNavigatorContentProviderEmitter() { return retrieveXpand("xpt::navigator::DomainNavigatorContentProvider::DomainNavigatorContentProvider"); //$NON-NLS-1$ } public TextEmitter getDomainNavigatorLabelProviderEmitter() { return retrieveXpand("xpt::navigator::DomainNavigatorLabelProvider::DomainNavigatorLabelProvider"); //$NON-NLS-1$ } public TextEmitter getDomainNavigatorItemEmitter() { return retrieveXpand("xpt::navigator::DomainNavigatorItem::DomainNavigatorItem"); //$NON-NLS-1$ } public TextEmitter getURIEditorInputTesterEmitter() { return retrieveXpand("xpt::editor::UriEditorInputTester::UriEditorInputTester"); //$NON-NLS-1$ } public TextEmitter getNavigatorLabelProviderEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::navigator::NavigatorLabelProvider::NavigatorLabelProvider"); //$NON-NLS-1$ } public TextEmitter getNavigatorLinkHelperEmitter() { return retrieveXpand("xpt::navigator::NavigatorLinkHelper::NavigatorLinkHelper"); //$NON-NLS-1$ } public TextEmitter getNavigatorSorterEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::navigator::NavigatorSorter::NavigatorSorter"); } public TextEmitter getNavigatorActionProviderEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::navigator::NavigatorActionProvider::NavigatorActionProvider"); //$NON-NLS-1$ } public TextEmitter getAbstractNavigatorItemEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::navigator::AbstractNavigatorItem::AbstractNavigatorItem"); } public TextEmitter getNavigatorGroupEmitter() { return retrieveXpand("xpt::navigator::NavigatorGroup::NavigatorGroup"); //$NON-NLS-1$ } public TextEmitter getNavigatorItemEmitter() { return retrieveXpand("xpt::navigator::NavigatorItem::NavigatorItem"); //$NON-NLS-1$ } public BinaryEmitter getGroupIconEmitter() throws UnexpectedBehaviourException { return newGIFEmitter("/xpt/navigator/navigatorGroup.gif"); //$NON-NLS-1$ } public TextEmitter getPropertySheetLabelProviderEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::propsheet::SheetLabelProvider::SheetLabelProvider"); //$NON-NLS-1$ } public TextEmitter getPropertySectionEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::propsheet::PropertySection::PropertySection"); } public TextEmitter getApplicationEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::application::Application::Application"); //$NON-NLS-1$ } public TextEmitter getActionBarAdvisorEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::application::ActionBarAdvisor::ActionBarAdvisor"); //$NON-NLS-1$ } public TextEmitter getPerspectiveEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::application::Perspective::Perspective"); //$NON-NLS-1$ } public TextEmitter getWorkbenchAdvisorEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::application::WorkbenchAdvisor::WorkbenchAdvisor"); //$NON-NLS-1$ } public TextEmitter getWorkbenchWindowAdvisorEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::application::WorkbenchWindowAdvisor::WorkbenchWindowAdvisor"); //$NON-NLS-1$ } public TextEmitter getMarkerNavigationProviderEmitter() throws UnexpectedBehaviourException { return retrieveXpand("xpt::providers::MarkerNavigationProvider::MarkerNavigationProvider"); //$NON-NLS-1$ } public TextEmitter getExternalizeEmitter() { return retrieveXpand("xpt::Externalizer::Access"); //$NON-NLS-1$ } public TextEmitter getMessagesEmitter() { return retrieveXpand("xpt::Externalizer::Values"); //$NON-NLS-1$ } private TextEmitter retrieveXpand(String templateFQN) { String[] parts = templateFQN.split(PATH_SEPARATOR); StringBuilder templateName = new StringBuilder(parts[0]); for(int i = 1; i < parts.length - 2; i ++) { templateName.append(PATH_SEPARATOR).append(parts[i]); } return new XpandTextEmitter(myResourceManager, templateName.toString(), parts[parts.length - 1]); } }