Instead of defining our own command, we can hook into the
Eclipse-provided org.eclipse.ui.navigate.openResource command,
so that the reports can then be opened using the usual
keybindings to open resources.
Also hook it into OpenAction so that Enter and double-click
opens the report.
Bug: 493941
Change-Id: I4c546b60a77c2d531c8c9f18961984e5962ef56f
Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Reviewed-on: https://git.eclipse.org/r/74569
Reviewed-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
Tested-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
Reviewed-by: Hudson CI
</handler>
<handler
class="org.eclipse.tracecompass.internal.provisional.analysis.lami.ui.handler.OpenReportHandler"
</handler>
<handler
class="org.eclipse.tracecompass.internal.provisional.analysis.lami.ui.handler.OpenReportHandler"
- commandId="org.eclipse.tracecompass.tmf.ui.command.report_open">
+ commandId="org.eclipse.ui.navigate.openResource">
<activeWhen>
<and>
<iterate
<activeWhen>
<and>
<iterate
id="org.eclipse.tracecompass.tmf.ui.command.analysis_add"
name="%command.analysis_add">
</command>
id="org.eclipse.tracecompass.tmf.ui.command.analysis_add"
name="%command.analysis_add">
</command>
- <command
- categoryId="org.eclipse.linuxtools.tmf.ui.commands.category"
- description="%command.report_open.description"
- id="org.eclipse.tracecompass.tmf.ui.command.report_open"
- name="%command.report_open">
- </command>
<command
categoryId="org.eclipse.linuxtools.tmf.ui.commands.category"
description="%command.report_delete.description"
<command
categoryId="org.eclipse.linuxtools.tmf.ui.commands.category"
description="%command.report_delete.description"
</menuContribution>
<menuContribution
allPopups="false"
</menuContribution>
<menuContribution
allPopups="false"
- locationURI="popup:org.eclipse.ui.popup.any?after=additions">
+ locationURI="popup:org.eclipse.ui.popup.any?after=group.open">
- commandId="org.eclipse.tracecompass.tmf.ui.command.report_open"
+ commandId="org.eclipse.ui.navigate.openResource"
label="%command.report_open"
mnemonic="%command.report_open.mnemonic"
style="push"
label="%command.report_open"
mnemonic="%command.report_open.mnemonic"
style="push"
<with
variable="selection">
<iterate
<with
variable="selection">
<iterate
+ ifEmpty="false"
+ operator="and">
<instanceof
value="org.eclipse.tracecompass.tmf.ui.project.model.TmfReportElement">
</instanceof>
<instanceof
value="org.eclipse.tracecompass.tmf.ui.project.model.TmfReportElement">
</instanceof>
import org.eclipse.tracecompass.tmf.ui.project.model.TmfAnalysisOutputElement;
import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentElement;
import org.eclipse.tracecompass.tmf.ui.project.model.TmfProjectModelElement;
import org.eclipse.tracecompass.tmf.ui.project.model.TmfAnalysisOutputElement;
import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentElement;
import org.eclipse.tracecompass.tmf.ui.project.model.TmfProjectModelElement;
+import org.eclipse.tracecompass.tmf.ui.project.model.TmfReportElement;
import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceElement;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceElement;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.handlers.IHandlerService;
Object firstElement = sSelection.getFirstElement();
if ((sSelection.size() == 1) && (firstElement instanceof TmfTraceElement ||
firstElement instanceof TmfExperimentElement ||
Object firstElement = sSelection.getFirstElement();
if ((sSelection.size() == 1) && (firstElement instanceof TmfTraceElement ||
firstElement instanceof TmfExperimentElement ||
- firstElement instanceof TmfAnalysisOutputElement)) {
+ firstElement instanceof TmfAnalysisOutputElement ||
+ firstElement instanceof TmfReportElement)) {
element = (TmfProjectModelElement) firstElement;
return true;
}
element = (TmfProjectModelElement) firstElement;
return true;
}
try {
Object service = page.getActivePart().getSite().getService(IHandlerService.class);
IHandlerService handlerService = (IHandlerService) service;
try {
Object service = page.getActivePart().getSite().getService(IHandlerService.class);
IHandlerService handlerService = (IHandlerService) service;
- boolean executeCommand = ((element instanceof TmfTraceElement) || (element instanceof TmfAnalysisOutputElement));
+ boolean executeCommand = (element instanceof TmfTraceElement ||
+ element instanceof TmfAnalysisOutputElement ||
+ element instanceof TmfReportElement);
if (!executeCommand && element instanceof TmfExperimentElement) {
TmfExperimentElement experiment = (TmfExperimentElement) element;
if (!executeCommand && element instanceof TmfExperimentElement) {
TmfExperimentElement experiment = (TmfExperimentElement) element;