Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Schwarz2012-05-10 05:56:10 +0000
committerUwe Stieber2012-05-10 05:56:10 +0000
commit5c52e55eec4b75d7d0135e56943f6c80d2753548 (patch)
tree27d60fc2b6053960ac24228a133e2a1be7999b15 /target_explorer/plugins/org.eclipse.tcf.te.launch.ui
parent642b08adcd2d525d0dbf24ecb172cd278b050aa3 (diff)
downloadorg.eclipse.tcf-5c52e55eec4b75d7d0135e56943f6c80d2753548.tar.gz
org.eclipse.tcf-5c52e55eec4b75d7d0135e56943f6c80d2753548.tar.xz
org.eclipse.tcf-5c52e55eec4b75d7d0135e56943f6c80d2753548.zip
Target Explorer: ADD correct breakpoint at main after debug remote app
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.launch.ui')
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.ui/plugin.xml15
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/internal/properties/LaunchContextPropertiesSection.java15
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/internal/viewer/LaunchNavigatorContentProvider.java37
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/selection/LaunchSelectionManager.java24
4 files changed, 79 insertions, 12 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/plugin.xml
index 70c3f82c7..cfa8ee129 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/plugin.xml
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/plugin.xml
@@ -92,15 +92,16 @@
id="launchConfigurations"
labelProvider="org.eclipse.tcf.te.launch.ui.internal.viewer.LaunchTreeLabelProvider"
name="%LauchEditorPage.column.name"
- width="400">
+ width="250">
</column>
<column
id="description"
labelProvider="org.eclipse.tcf.te.launch.ui.internal.viewer.DescriptionColumnLabelProvider"
name="%LauchEditorPage.column.description"
- width="400">
+ width="300">
</column>
<column
+ visible="false"
id="lastLaunched"
labelProvider="org.eclipse.tcf.te.launch.ui.internal.viewer.LastLaunchedColumnLabelProvider"
name="%LauchEditorPage.column.lastLaunched"
@@ -584,7 +585,10 @@
<iterate
operator="and"
ifEmpty="false">
- <test property="org.eclipse.tcf.te.launch.ui.model.isValidLaunchConfig" value="run"/>
+ <and>
+ <test property="org.eclipse.tcf.te.launch.ui.model.isLaunchConfig"/>
+ <test property="org.eclipse.tcf.te.launch.ui.model.isValidLaunchConfig" value="run"/>
+ </and>
</iterate>
</with>
</enabledWhen>
@@ -605,7 +609,10 @@
<iterate
operator="and"
ifEmpty="false">
- <test property="org.eclipse.tcf.te.launch.ui.model.isValidLaunchConfig" value="debug"/>
+ <and>
+ <test property="org.eclipse.tcf.te.launch.ui.model.isLaunchConfig"/>
+ <test property="org.eclipse.tcf.te.launch.ui.model.isValidLaunchConfig" value="debug"/>
+ </and>
</iterate>
</with>
</enabledWhen>
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/internal/properties/LaunchContextPropertiesSection.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/internal/properties/LaunchContextPropertiesSection.java
index 6a7dd6334..5e4056c8c 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/internal/properties/LaunchContextPropertiesSection.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/internal/properties/LaunchContextPropertiesSection.java
@@ -11,6 +11,7 @@ package org.eclipse.tcf.te.launch.ui.internal.properties;
import org.eclipse.core.runtime.Assert;
import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.jface.viewers.ILabelDecorator;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -56,7 +57,19 @@ public class LaunchContextPropertiesSection extends BaseTitledSection {
ILaunchConfiguration node = ((LaunchNode)input).getLaunchConfiguration();
IModelNode[] contexts = LaunchContextsPersistenceDelegate.getLaunchContexts(node);
- launchContextValue = contexts != null && contexts.length > 0 ? ((ILabelProvider)contexts[0].getAdapter(ILabelProvider.class)).getText(contexts[0]) : ""; //$NON-NLS-1$
+ if (contexts != null && contexts.length > 0) {
+ ILabelProvider labelProvider = (ILabelProvider)contexts[0].getAdapter(ILabelProvider.class);
+ launchContextValue = labelProvider.getText(contexts[0]);
+ if (labelProvider instanceof ILabelDecorator) {
+ launchContextValue = ((ILabelDecorator)labelProvider).decorateText(launchContextValue, contexts[0]);
+ }
+ if (contexts.length > 1) {
+ launchContextValue += ", ..."; //$NON-NLS-1$
+ }
+ }
+ else {
+ launchContextValue = ""; //$NON-NLS-1$
+ }
}
/*
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/internal/viewer/LaunchNavigatorContentProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/internal/viewer/LaunchNavigatorContentProvider.java
index dc62136df..b591a0c7b 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/internal/viewer/LaunchNavigatorContentProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/internal/viewer/LaunchNavigatorContentProvider.java
@@ -11,13 +11,20 @@ package org.eclipse.tcf.te.launch.ui.internal.viewer;
import java.util.EventObject;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.tcf.te.launch.core.lm.interfaces.ICommonLaunchAttributes;
+import org.eclipse.tcf.te.launch.core.persistence.DefaultPersistenceDelegate;
import org.eclipse.tcf.te.launch.ui.model.LaunchModel;
import org.eclipse.tcf.te.launch.ui.model.LaunchNode;
+import org.eclipse.tcf.te.runtime.concurrent.util.ExecutorsUtil;
import org.eclipse.tcf.te.runtime.events.ChangeEvent;
import org.eclipse.tcf.te.runtime.events.EventManager;
import org.eclipse.tcf.te.runtime.interfaces.events.IEventListener;
+import org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode;
+import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode;
import org.eclipse.tcf.te.ui.trees.TreeContentProvider;
import org.eclipse.ui.PlatformUI;
@@ -58,8 +65,36 @@ public class LaunchNavigatorContentProvider extends TreeContentProvider implemen
* @see org.eclipse.tcf.te.ui.trees.TreeContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
*/
@Override
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ public void inputChanged(final Viewer viewer, Object oldInput, Object newInput) {
super.inputChanged(viewer, oldInput, newInput);
+
+ if (newInput != null && !newInput.equals(oldInput)) {
+ LaunchModel model = LaunchModel.getLaunchModel(newInput);
+ LaunchNode lastLaunchedNode = null;
+ long nodeValue = -1;
+ for (IModelNode typeNode : model.getRootNode().getChildren()) {
+ for (IModelNode launchNode : ((IContainerModelNode)typeNode).getChildren()) {
+ ILaunchConfiguration config = ((LaunchNode)launchNode).getLaunchConfiguration();
+ String lastLaunched = DefaultPersistenceDelegate.getAttribute(config, ICommonLaunchAttributes.ATTR_LAST_LAUNCHED, (String)null);
+ if (lastLaunched != null) {
+ long last = Long.parseLong(lastLaunched);
+ if (last > nodeValue) {
+ nodeValue = last;
+ lastLaunchedNode = (LaunchNode)launchNode;
+ }
+ }
+ }
+ }
+ if (lastLaunchedNode != null) {
+ final LaunchNode node = lastLaunchedNode;
+ ExecutorsUtil.executeInUI(new Runnable() {
+ @Override
+ public void run() {
+ viewer.setSelection(new StructuredSelection(node));
+ }
+ });
+ }
+ }
}
/*
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/selection/LaunchSelectionManager.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/selection/LaunchSelectionManager.java
index 2029001a4..3e824cb48 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/selection/LaunchSelectionManager.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.ui/src/org/eclipse/tcf/te/launch/ui/selection/LaunchSelectionManager.java
@@ -22,6 +22,7 @@ import org.eclipse.cdt.utils.elf.Elf.Attribute;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
@@ -222,15 +223,23 @@ public class LaunchSelectionManager {
// If the selection is not an IResource itself, try to adapt to it.
// This will possibly trigger an plugin activation on loadAdapter(...).
- if (sel instanceof IResource) {
- resource = (IResource)sel;
+ if (sel instanceof IProject) {
+ prj = (IProject)sel;
}
else {
- resource = (IResource)Platform.getAdapterManager().loadAdapter(sel, IResource.class.getName());
- }
+ if (sel instanceof IResource) {
+ resource = (IResource)sel;
+ }
+ else if (sel instanceof IAdaptable) {
+ resource = (IResource)((IAdaptable)sel).getAdapter(IResource.class);
+ }
+ else {
+ resource = (IResource)Platform.getAdapterManager().loadAdapter(sel, IResource.class.getName());
+ }
- // Get the project from the resource
- prj = resource.getProject();
+ // Get the project from the resource
+ prj = resource != null ? resource.getProject() : null;
+ }
// If the project could be determined, add the project's
// hash code to the cumulative hash code.
@@ -238,6 +247,9 @@ public class LaunchSelectionManager {
projects.add(prj);
hash += prj.hashCode();
}
+ else {
+ hash += sel.hashCode();
+ }
}
projects.clear();

Back to the top