diff options
author | Otavio Pontes | 2012-06-07 14:35:13 +0000 |
---|---|---|
committer | Otavio Pontes | 2012-06-07 19:27:19 +0000 |
commit | 401e53aed648dba056e4c9abca10ed83af4e3468 (patch) | |
tree | cfc07749c05a76ddeaeee08bb14a4fa08e2b2fad /systemtap | |
parent | f99cdb432fe886d0250b45edb80fe6a278cb8214 (diff) | |
download | org.eclipse.linuxtools-401e53aed648dba056e4c9abca10ed83af4e3468.tar.gz org.eclipse.linuxtools-401e53aed648dba056e4c9abca10ed83af4e3468.tar.xz org.eclipse.linuxtools-401e53aed648dba056e4c9abca10ed83af4e3468.zip |
Systemtap: Loading remote kernel source in kernel browser
Diffstat (limited to 'systemtap')
-rw-r--r-- | systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/views/KernelBrowserView.java | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/views/KernelBrowserView.java b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/views/KernelBrowserView.java index 2db56a9f8b..67b415151e 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/views/KernelBrowserView.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/views/KernelBrowserView.java @@ -12,10 +12,13 @@ package org.eclipse.linuxtools.internal.systemtap.ui.ide.views; import java.io.File; +import java.net.URI; +import java.net.URISyntaxException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.core.runtime.Preferences; import org.eclipse.core.runtime.Preferences.IPropertyChangeListener; import org.eclipse.core.runtime.Preferences.PropertyChangeEvent; import org.eclipse.core.runtime.Status; @@ -26,6 +29,9 @@ import org.eclipse.linuxtools.internal.systemtap.ui.ide.IDEPlugin; import org.eclipse.linuxtools.internal.systemtap.ui.ide.Localization; import org.eclipse.linuxtools.internal.systemtap.ui.ide.actions.hidden.KernelSourceAction; import org.eclipse.linuxtools.internal.systemtap.ui.ide.preferences.IDEPreferenceConstants; +import org.eclipse.linuxtools.internal.systemtap.ui.ide.preferences.PathPreferencePage; +import org.eclipse.linuxtools.systemtap.ui.consolelog.internal.ConsoleLogPlugin; +import org.eclipse.linuxtools.systemtap.ui.consolelog.preferences.ConsoleLogPreferenceConstants; import org.eclipse.linuxtools.systemtap.ui.logging.LogManager; import org.eclipse.linuxtools.systemtap.ui.structures.KernelSourceTree; import org.eclipse.linuxtools.systemtap.ui.structures.TreeNode; @@ -49,6 +55,7 @@ public class KernelBrowserView extends BrowserView { public IStatus runInUIThread(IProgressMonitor monitor) { IPreferenceStore p = IDEPlugin.getDefault().getPreferenceStore(); String kernelSource = p.getString(IDEPreferenceConstants.P_KERNEL_SOURCE); + String localOrRemote = p.getString(IDEPreferenceConstants.P_REMOTE_LOCAL_KERNEL_SOURCE); if(null == kernelSource || kernelSource.length() < 1) { LogManager.logInfo("Kernel Source Directory not found", this); //$NON-NLS-1$ TreeNode t = new TreeNode("", "", false); //$NON-NLS-1$ //$NON-NLS-2$ @@ -60,6 +67,8 @@ public class KernelBrowserView extends BrowserView { monitor.beginTask(Localization.getString("KernelBrowserView.ReadingKernelSourceTree"), 100); //$NON-NLS-1$ KernelSourceTree kst = new KernelSourceTree(); String excluded[] = p.getString(IDEPreferenceConstants.P_EXCLUDED_KERNEL_SOURCE).split(File.pathSeparator); + if (localOrRemote.equals(PathPreferencePage.REMOTE)) + kernelSource = createUri(kernelSource); kst.buildKernelTree(kernelSource, excluded); viewer.setInput(kst.getTree()); kst.dispose(); @@ -79,7 +88,7 @@ public class KernelBrowserView extends BrowserView { refreshJob.setPriority(Job.SHORT); LogManager.logInfo("Initializing", this); //$NON-NLS-1$ } - + /** * Creates the UI on the given <code>Composite</code> */ @@ -147,4 +156,17 @@ public class KernelBrowserView extends BrowserView { doubleClickAction.dispose(); doubleClickAction = null; } + + private String createUri(String path) { + Preferences p = ConsoleLogPlugin.getDefault().getPluginPreferences(); + String user = p.getString(ConsoleLogPreferenceConstants.SCP_USER); + String host = p.getString(ConsoleLogPreferenceConstants.HOST_NAME); + try { + URI uri = new URI("ssh", user, host, -1, path, null, null); //$NON-NLS-1$ + return uri.toString(); + } catch (URISyntaxException uri) { + //fallback + return "ssh://" + user + "@" + host + "/" + path; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + } } |