Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java445
1 files changed, 0 insertions, 445 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java
deleted file mode 100644
index 049731153..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java
+++ /dev/null
@@ -1,445 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 Tasktop Technologies 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:
- * Tasktop Technologies - initial API and implementation
- * Frank Becker - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.search;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.mylyn.internal.provisional.commons.ui.EnhancedFilteredTree;
-import org.eclipse.mylyn.internal.provisional.commons.ui.SubstringPatternFilter;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskGroup;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.AddExistingTaskJob;
-import org.eclipse.mylyn.internal.tasks.ui.actions.OpenTaskSearchAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.OpenWithBrowserAction;
-import org.eclipse.mylyn.internal.tasks.ui.search.SearchResultTreeContentProvider.GroupBy;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskDragSourceListener;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListToolTip;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.ITasksUiConstants;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.search.ui.IContextMenuConstants;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.ISearchResult;
-import org.eclipse.search.ui.text.AbstractTextSearchViewPage;
-import org.eclipse.search.ui.text.Match;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.FilteredTree;
-import org.eclipse.ui.part.IShowInTargetList;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * Displays the results of a Repository search.
- *
- * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage
- * @author Rob Elves
- * @author Mik Kersten
- * @author Shawn Minto
- * @author Frank Becker
- * @author Steffen Pingel
- */
-public class RepositorySearchResultView extends AbstractTextSearchViewPage implements IAdaptable {
-
- private class GroupingAction extends Action {
-
- private final GroupBy groupBy;
-
- public GroupingAction(String text, GroupBy groupBy) {
- super(text, IAction.AS_CHECK_BOX);
- this.groupBy = groupBy;
- groupingActions.add(this);
- }
-
- @Override
- public void run() {
- for (GroupingAction action : groupingActions) {
- action.setChecked(false);
- }
-
- SearchResultTreeContentProvider contentProvider = (SearchResultTreeContentProvider) getViewer().getContentProvider();
- if (contentProvider.getSelectedGroup() == groupBy) {
- contentProvider.setSelectedGroup(GroupBy.NONE);
- } else {
- contentProvider.setSelectedGroup(groupBy);
- setChecked(true);
- }
- getViewer().refresh();
- }
- }
-
- private class FilteringAction extends Action {
-
- private final ViewerFilter filter;
-
- public FilteringAction(String text, ViewerFilter filter) {
- super(text, IAction.AS_CHECK_BOX);
- this.filter = filter;
- filterActions.add(this);
- }
-
- @Override
- public void runWithEvent(Event event) {
- if (isChecked()) {
- getViewer().addFilter(filter);
- } else {
- getViewer().removeFilter(filter);
- }
- }
- }
-
- private static final String MEMENTO_KEY_SORT = "sort"; //$NON-NLS-1$
-
- private SearchResultContentProvider searchResultProvider;
-
- private final OpenSearchResultAction openInEditorAction;
-
- private final CreateQueryFromSearchAction createQueryAction;
-
- private final Action refineSearchAction;
-
- private static final String[] SHOW_IN_TARGETS = new String[] { ITasksUiConstants.ID_VIEW_TASKS };
-
- private TaskListToolTip toolTip;
-
- private final List<GroupingAction> groupingActions;
-
- private final List<FilteringAction> filterActions;
-
- private final OpenWithBrowserAction openSearchWithBrowserAction;
-
- private final SearchResultSorter searchResultSorter;
-
- private SearchResultSortAction sortByDialogAction;
-
- private static final IShowInTargetList SHOW_IN_TARGET_LIST = new IShowInTargetList() {
- public String[] getShowInTargetIds() {
- return SHOW_IN_TARGETS;
- }
- };
-
- public RepositorySearchResultView() {
- // Only use the table layout.
- super(FLAG_LAYOUT_TREE);
-
- openInEditorAction = new OpenSearchResultAction(Messages.RepositorySearchResultView_Open_in_Editor, this);
- createQueryAction = new CreateQueryFromSearchAction(
- Messages.RepositorySearchResultView_Create_Query_from_Search_, this);
- refineSearchAction = new OpenTaskSearchAction();
- refineSearchAction.setText(Messages.RepositorySearchResultView_Refine_Search_);
- openSearchWithBrowserAction = new OpenWithBrowserAction();
- openSearchWithBrowserAction.setText(Messages.RepositorySearchResultView_Open_Search_with_Browser_Label);
-
- groupingActions = new ArrayList<GroupingAction>();
- new GroupingAction(Messages.RepositorySearchResultView_Group_By_Owner, GroupBy.OWNER);
-// new GroupingAction(Messages.RepositorySearchResultView_Group_By_Complete, GroupBy.COMPLETION);
-
- filterActions = new ArrayList<FilteringAction>();
- new FilteringAction(Messages.RepositorySearchResultView_Filter_Completed_Tasks, new ViewerFilter() {
- @Override
- public boolean select(Viewer viewer, Object parentElement, Object element) {
- if (element instanceof ITask) {
- return !((ITask) element).isCompleted();
- } else if (element instanceof TaskGroup) {
- TaskGroup taskGroup = (TaskGroup) element;
- return taskGroup.getHandleIdentifier().equals("group-incompleteIncomplete"); //$NON-NLS-1$
- }
- return true;
- }
- });
-
- // construct early since to be ready when restoreState() is invoked
- searchResultSorter = new SearchResultSorter();
- }
-
- @Override
- protected void elementsChanged(Object[] objects) {
- if (searchResultProvider != null) {
- searchResultProvider.elementsChanged(objects);
- getViewer().refresh();
- }
- }
-
- @Override
- protected void clear() {
- if (searchResultProvider != null) {
- searchResultProvider.clear();
- getViewer().refresh();
- }
- }
-
- // Allows the inherited method "getViewer" to be accessed publicly.
- @Override
- public StructuredViewer getViewer() {
- return super.getViewer();
- }
-
- @Override
- protected void configureTreeViewer(TreeViewer viewer) {
- viewer.setUseHashlookup(true);
- searchResultProvider = new SearchResultTreeContentProvider();
- viewer.setContentProvider(searchResultProvider);
-
- DecoratingLabelProvider labelProvider = new DecoratingLabelProvider(new SearchResultsLabelProvider(
- searchResultProvider, viewer), PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator());
- viewer.setLabelProvider(labelProvider);
- viewer.setSorter(searchResultSorter);
-
- Transfer[] dragTypes = new Transfer[] { LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
-
- getViewer().addDragSupport(DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK, dragTypes,
- new TaskDragSourceListener(getViewer()));
-
- sortByDialogAction = new SearchResultSortAction(this);
-
- toolTip = new TaskListToolTip(viewer.getControl());
- }
-
- @Override
- protected TreeViewer createTreeViewer(Composite parent) {
- // create a filtered tree
- Composite treeComposite = parent;
- Layout parentLayout = parent.getLayout();
- if (!(parentLayout instanceof GridLayout)) {
- treeComposite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- treeComposite.setLayout(layout);
- }
-
- // TODO e3.5 use new FilteredTree API
- FilteredTree searchTree = new EnhancedFilteredTree(treeComposite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL,
- new SubstringPatternFilter());
- return searchTree.getViewer();
- }
-
- @Override
- protected void configureTableViewer(TableViewer viewer) {
-// viewer.setUseHashlookup(true);
-// String[] columnNames = new String[] { "Summary" };
-// TableColumn[] columns = new TableColumn[columnNames.length];
-// int[] columnWidths = new int[] { 500 };
-// viewer.setColumnProperties(columnNames);
-//
-// viewer.getTable().setHeaderVisible(false);
-// for (int i = 0; i < columnNames.length; i++) {
-// columns[i] = new TableColumn(viewer.getTable(), 0, i); // SWT.LEFT
-// columns[i].setText(columnNames[i]);
-// columns[i].setWidth(columnWidths[i]);
-// columns[i].setData(new Integer(i));
-// columns[i].addSelectionListener(new SelectionAdapter() {
-//
-// @Override
-// public void widgetSelected(SelectionEvent e) {
-// TableColumn col = (TableColumn) e.getSource();
-// Integer integer = (Integer) col.getData();
-// setSortOrder(integer.intValue());
-// }
-// });
-// }
-//
-// IThemeManager themeManager = getSite().getWorkbenchWindow().getWorkbench().getThemeManager();
-// Color categoryBackground = themeManager.getCurrentTheme().getColorRegistry().get(
-// TaskListColorsAndFonts.THEME_COLOR_TASKLIST_CATEGORY);
-//
-// SearchViewTableLabelProvider taskListTableLabelProvider = new SearchViewTableLabelProvider(
-// new TaskElementLabelProvider(true),
-// PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(), categoryBackground);
-//
-// viewer.setLabelProvider(taskListTableLabelProvider);
-// viewer.setContentProvider(new SearchResultTableContentProvider(this));
-//
-// // Set the order when the search view is loading so that the items are
-// // sorted right away
-// setSortOrder(currentSortOrder);
-//
-// taskContentProvider = (SearchResultContentProvider) viewer.getContentProvider();
- }
-
- @Override
- public void dispose() {
- toolTip.dispose();
- super.dispose();
- }
-
- @SuppressWarnings("unchecked")
- public Object getAdapter(Class adapter) {
- return getAdapterDelegate(adapter);
- }
-
- private Object getAdapterDelegate(Class<?> adapter) {
- if (IShowInTargetList.class.equals(adapter)) {
- return SHOW_IN_TARGET_LIST;
- }
- return null;
- }
-
- @Override
- protected void showMatch(Match match, int currentOffset, int currentLength, boolean activate)
- throws PartInitException {
- AbstractTask repositoryHit = (AbstractTask) match.getElement();
- TasksUiInternal.refreshAndOpenTaskListElement(repositoryHit);
- }
-
- @Override
- protected void fillContextMenu(IMenuManager menuManager) {
- super.fillContextMenu(menuManager);
-
- // open actions
- menuManager.appendToGroup(IContextMenuConstants.GROUP_OPEN, openInEditorAction);
-
- // Add to Task List menu
- // HACK: this should be a contribution
- final MenuManager subMenuManager = new MenuManager(MessageFormat.format(
- Messages.RepositorySearchResultView_Add_to_X_Category, TaskListView.LABEL_VIEW));
- List<AbstractTaskCategory> categories = new ArrayList<AbstractTaskCategory>(TasksUiInternal.getTaskList()
- .getCategories());
- Collections.sort(categories);
- for (final AbstractTaskCategory category : categories) {
- if (!(category instanceof UnmatchedTaskContainer)) {//.equals(TasksUiPlugin.getTaskList().getArchiveContainer())) {
- Action action = new Action() {
- @Override
- public void run() {
- moveToCategory(category);
- }
- };
- String text = category.getSummary();
- action.setText(text);
- action.setImageDescriptor(TasksUiImages.CATEGORY);
- subMenuManager.add(action);
- }
- }
- menuManager.appendToGroup(IContextMenuConstants.GROUP_OPEN, subMenuManager);
-
- // search actions
-
- menuManager.appendToGroup(IContextMenuConstants.GROUP_SEARCH, createQueryAction);
- menuManager.appendToGroup(IContextMenuConstants.GROUP_SEARCH, refineSearchAction);
- menuManager.appendToGroup(IContextMenuConstants.GROUP_SEARCH, openSearchWithBrowserAction);
-
- menuManager.appendToGroup(IContextMenuConstants.GROUP_VIEWER_SETUP, sortByDialogAction);
- for (Action action : groupingActions) {
- menuManager.appendToGroup(IContextMenuConstants.GROUP_VIEWER_SETUP, action);
- }
- for (Action action : filterActions) {
- menuManager.appendToGroup(IContextMenuConstants.GROUP_VIEWER_SETUP, action);
- }
-
- }
-
- private void moveToCategory(AbstractTaskCategory category) {
- final IProgressService progressService = PlatformUI.getWorkbench().getProgressService();
- StructuredSelection selection = (StructuredSelection) this.getViewer().getSelection();
- for (Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
- Object selectedObject = iterator.next();
- if (selectedObject instanceof ITask) {
- ITask task = (ITask) selectedObject;
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
- task.getRepositoryUrl());
- final AddExistingTaskJob job = new AddExistingTaskJob(repository, task.getTaskId(), category);
- job.schedule();
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- progressService.showInDialog(RepositorySearchResultView.this.getSite().getShell(), job);
- }
- });
- }
- }
- }
-
- @Override
- public void createControl(Composite parent) {
- super.createControl(parent);
- IMenuManager menuManager = getSite().getActionBars().getMenuManager();
- for (Action action : groupingActions) {
- menuManager.appendToGroup(IContextMenuConstants.GROUP_VIEWER_SETUP, action);
- }
- menuManager.appendToGroup(IContextMenuConstants.GROUP_VIEWER_SETUP, new Separator());
- for (Action action : filterActions) {
- menuManager.appendToGroup(IContextMenuConstants.GROUP_VIEWER_SETUP, action);
- }
- }
-
- @Override
- public void setInput(ISearchResult newSearch, Object viewState) {
- super.setInput(newSearch, viewState);
- if (newSearch != null) {
- ISearchQuery query = ((RepositorySearchResult) newSearch).getQuery();
- IRepositoryQuery repositoryQuery = ((SearchHitCollector) query).getRepositoryQuery();
- openSearchWithBrowserAction.selectionChanged(new StructuredSelection(repositoryQuery));
- } else {
- openSearchWithBrowserAction.selectionChanged(StructuredSelection.EMPTY);
- }
- }
-
- public SearchResultSorter getSorter() {
- return searchResultSorter;
- }
-
- @Override
- public void restoreState(IMemento memento) {
- super.restoreState(memento);
- if (memento != null) {
- IMemento child = memento.getChild(MEMENTO_KEY_SORT);
- if (child != null && searchResultSorter != null) {
- searchResultSorter.getTaskComparator().restoreState(child);
- }
- }
- }
-
- @Override
- public void saveState(IMemento memento) {
- super.saveState(memento);
- if (memento != null) {
- IMemento child = memento.createChild(MEMENTO_KEY_SORT);
- if (searchResultSorter != null) {
- searchResultSorter.getTaskComparator().saveState(child);
- }
- }
- }
-
-}

Back to the top