
org.eclipse.debug.internal.ui.LaunchConfigurationTabExtension Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.eclipse.debug.ui Show documentation
Show all versions of org.eclipse.debug.ui Show documentation
This is org.eclipse.debug.ui jar used by Scout SDK
The newest version!
/*******************************************************************************
* Copyright (c) 2006, 2013 IBM Corporation 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.debug.internal.ui;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.debug.internal.core.IConfigurationElementConstants;
import org.eclipse.debug.ui.ILaunchConfigurationTab;
/**
* Provides a proxy to a launchConfigurationTabs extension point
*
* @since 3.3
*/
public final class LaunchConfigurationTabExtension {
/**
* The configuration element backing this proxy
*/
IConfigurationElement fElement = null;
private Set fDelegates = null;
/**
* Constructor
* @param element the IConfigurationElement
for this proxy
*/
public LaunchConfigurationTabExtension(IConfigurationElement element) {
fElement = element;
}
/**
* Returns the unique id of the tab
* @return the unique id of the tab
*/
public String getIdentifier() {
return fElement.getAttribute(IConfigurationElementConstants.ID);
}
/**
* Returns the human readable name for the tab, not to be confused with the name that appears on the tab itself
* @return the name of the tab
*/
public String getName() {
return fElement.getAttribute(IConfigurationElementConstants.NAME);
}
/**
* Returns the instantiated class of this tab
* @return the instantiated class of this tab
*/
public ILaunchConfigurationTab getTab() {
try {
Object object = fElement.createExecutableExtension(IConfigurationElementConstants.CLASS);
if(object instanceof ILaunchConfigurationTab) {
return (ILaunchConfigurationTab) object;
}
} catch (CoreException e) {DebugUIPlugin.log(e);}
return null;
}
/**
* Returns the unique id of the ILaunchConfigurationTabGroup
that this tab contributes to
* @return the id of the ILaunchConfigurationTabGroup
this tab contributes to
*/
public String getTabGroupId() {
return fElement.getAttribute(IConfigurationElementConstants.GROUP);
}
/**
* This method returns the id of the tab that this tab should be placed immediately after.
* @return the id of the relative tab or null
if one has not been specified
*
*/
public String getRelativeTabId() {
IConfigurationElement[] elems = fElement.getChildren(IConfigurationElementConstants.PLACEMENT);
if(elems.length == 1) {
return elems[0].getAttribute(IConfigurationElementConstants.AFTER);
}
return null;
}
/**
* Returns the id of the plugin that contributed this tab extension
* @return the id of the plugin tat contributed this tab
*/
public String getPluginIdentifier() {
return fElement.getContributor().getName();
}
/**
* Returns a set of strings of the launch delegates that this tab contribution is associated with
* @return the set of strings of the associated launch delegates, which can be an empty collection, never null
.
*/
public Set getDelegateSet() {
if(fDelegates == null) {
fDelegates = new HashSet();
IConfigurationElement[] children = fElement.getChildren(IConfigurationElementConstants.ASSOCIATED_DELEGATE);
String id = null;
for(int i = 0; i < children.length; i++) {
id = children[i].getAttribute(IConfigurationElementConstants.DELEGATE);
if(id != null) {
fDelegates.add(id);
}
}
}
return fDelegates;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy