/******************************************************************************* * Copyright (c) 2014 Wind River Systems, Inc. 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: * Wind River Systems - initial API and implementation *******************************************************************************/ package org.eclipse.tcf.te.tcf.ui.handler; import java.util.ArrayList; import java.util.List; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.jface.wizard.IWizard; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IDelegateService; import org.eclipse.tcf.te.runtime.services.interfaces.IService; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; import org.eclipse.tcf.te.tcf.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.interfaces.IDefaultContextToolbarDelegate; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.wizards.newWizard.AbstractNewSingleWizardHandler; import org.eclipse.tcf.te.ui.wizards.newWizard.NewWizard; /** * AbstractNewSingleWizardHandler */ public class NewToolbarWizardHandler extends AbstractNewSingleWizardHandler { /** * Constructor. */ public NewToolbarWizardHandler() { super(); } /* (non-Javadoc) * @see org.eclipse.tcf.te.ui.wizards.newWizard.NewWizardCommandHandler#createWizard() */ @Override protected IWizard createWizard() { NewWizard wizard = new NewWizard("org.eclipse.tcf.te.tcf.ui.newWizards.category.configurations"); //$NON-NLS-1$ wizard.setWindowTitle(Messages.NewTargetWizardPage_title); return wizard; } @Override protected String getWizardId(ExecutionEvent event) { IPeerModel peerModel = ModelManager.getPeerModel(); IService[] services = ServiceManager.getInstance().getServices(peerModel, IDelegateService.class, false); List<String> ids = new ArrayList<String>(); for (IService service : services) { if (service instanceof IDelegateService) { IDefaultContextToolbarDelegate delegate = ((IDelegateService)service).getDelegate(peerModel, IDefaultContextToolbarDelegate.class); if (delegate != null) { String[] newIds = delegate.getToolbarNewConfigWizardIds(peerModel); if (newIds != null) { for (String newId : newIds) { if (!ids.contains(newId)) ids.add(newId); } } } } } return ids.size() == 1 ? ids.get(0) : null; } }