diff options
author | mkersten | 2008-06-05 21:29:19 +0000 |
---|---|---|
committer | mkersten | 2008-06-05 21:29:19 +0000 |
commit | eded99e0843e707187a1bb3df183ffc425f9ef36 (patch) | |
tree | 2c486836f41631058642c9f7f8aecb6efd50e1a1 /org.eclipse.mylyn.tasks.bugs/src | |
parent | 7e14cd54988d7b89f0d4ea8502077f98c042904a (diff) | |
download | org.eclipse.mylyn.tasks-eded99e0843e707187a1bb3df183ffc425f9ef36.tar.gz org.eclipse.mylyn.tasks-eded99e0843e707187a1bb3df183ffc425f9ef36.tar.xz org.eclipse.mylyn.tasks-eded99e0843e707187a1bb3df183ffc425f9ef36.zip |
RESOLVED - bug 136298: [patch] [new eux] importing/promote/convert Eclipse todo tags/markers items to become tasks
https://bugs.eclipse.org/bugs/show_bug.cgi?id=136298
Diffstat (limited to 'org.eclipse.mylyn.tasks.bugs/src')
-rw-r--r-- | org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromMarkerHandler.java | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromMarkerHandler.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromMarkerHandler.java new file mode 100644 index 000000000..0c5509c08 --- /dev/null +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromMarkerHandler.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Mylyn project committers 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 + *******************************************************************************/ + +package org.eclipse.mylyn.internal.tasks.bugs.actions; + +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.mylyn.tasks.core.TaskMapping; +import org.eclipse.mylyn.tasks.ui.TasksUiUtil; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.views.markers.MarkerViewHandler; +import org.eclipse.ui.views.markers.internal.MarkerType; +import org.eclipse.ui.views.markers.internal.MarkerTypesModel; + +/** + * Creates a new task from the selected marker entry. + * + * @author Frank Becker + * @since 3.0 + */ +@SuppressWarnings("restriction") +public class NewTaskFromMarkerHandler extends MarkerViewHandler { + + public Object execute(ExecutionEvent event) throws ExecutionException { + IMarker[] markers = getSelectedMarkers(event); + if (markers.length == 0 || markers[0] == null) { + return null; + } + + final IMarker marker = markers[0]; + TaskMapping mapping = new TaskMapping() { + + @Override + public String getSummary() { + StringBuilder sb = new StringBuilder(); + try { + MarkerType type = MarkerTypesModel.getInstance().getType(marker.getType()); + sb.append(type.getLabel() + ": "); + } catch (CoreException e) { + // ignore + } + + return sb.toString() + marker.getAttribute("message", ""); + } + + @Override + public String getDescription() { + return buildDescriptionFromMarkerItem(marker); + } + + }; + + TasksUiUtil.openNewTaskEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), mapping, null); + return null; + } + + private String buildDescriptionFromMarkerItem(IMarker marker) { + + StringBuilder sb = new StringBuilder(); + try { + sb.append("Resource: " + marker.getResource().getFullPath().removeLastSegments(1).toString().substring(1) + + "/" + marker.getResource().getName()); + int lineNumber = marker.getAttribute(IMarker.LINE_NUMBER, -1); + if (lineNumber != -1) { + sb.append("\nLocation: line " + lineNumber); + } + } catch (Exception e) { + // ignore + } + + return sb.toString(); + } + +} |