blob: ffb16ae81a9012ff1f66184d3501ab1f4b43a113 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013, 2016 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.ui.controls.interfaces;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.swt.graphics.Image;
import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer;
import org.eclipse.tcf.te.runtime.services.interfaces.ISimulatorService;
import org.eclipse.tcf.te.ui.controls.BaseControl;
import org.eclipse.tcf.te.ui.controls.BaseWizardConfigurationPanelControl;
/**
* Simulator service UI delegate.
*/
public interface ISimulatorServiceUIDelegate {
public static final String PROP_NAME_NEW = "NameNew"; //$NON-NLS-1$
public static final String PROP_NAME_PATTERN = "NamePattern"; //$NON-NLS-1$
public static final String PROP_MODES = "Modes"; //$NON-NLS-1$
public static final String PROP_MODE_LABEL_X = "ModeLabel"; //$NON-NLS-1$
public static final String PROP_MODE_DESCRIPTION_X = "ModeDescription"; //$NON-NLS-1$
/**
* Get the simulator service the UI delegate is associated with.
*
* @return The simulator service.
*/
public ISimulatorService getService();
/**
* Get the name of the simulator service to identify the simulator (type)
* to the user in the UI.
*
* @return The simulator service name.
*/
public String getName();
/**
* Get the image for the simulator service.
* @return The simulator image.
*/
public Image getImage();
/**
* Get properties for ui configuration.
* @param context The context.
* @param config The current config.
* @return The properties for ui configuartion
*/
public IPropertiesContainer getProperties(Object context, String config);
/**
* Get the configuration panel for the given context and mode.
* @param context The context to configure.
* @param parentControl The parent control.
* @param mode The connection mode.
* @return
*/
public IWizardConfigurationPanel getConfigPanel(Object context, BaseWizardConfigurationPanelControl parentControl, String mode);
/**
* Check if a project can be used to get the kernel image.
* @param project The project to check.
* @return
*/
public boolean isValidProjectForKernelImage(IProject project);
/**
* Check if a projects build target path is a valid kernel image.
* @param path The path to check.
* @return
*/
public boolean isValidBuildTargetPathForKernelImage(IPath path);
/**
* Do additional validation for a given valid kernel image path.
* I.e. check for further needed files and set message to the messageProvider
*
* @param path The path. Must not be <code>null</code>.
* @param messageProvider The message provider. Must not be <code>null</code>:
* @param mode The connection mode.
*
* @return <code>True</code> if the given kernel image path is valid, <code>false</code> otherwise.
*/
public boolean validateKernelImage(IPath path, BaseControl messageProvider, String mode);
}