| /******************************************************************************* |
| * 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: |
| * Xiaoyang Guan - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.mylyn.internal.trac.wiki.editor; |
| |
| import org.eclipse.jface.resource.ImageDescriptor; |
| import org.eclipse.mylyn.internal.trac.core.model.TracWikiPage; |
| import org.eclipse.mylyn.internal.trac.wiki.TracWikiPageHistoryPageSource; |
| import org.eclipse.mylyn.tasks.core.TaskRepository; |
| import org.eclipse.team.ui.history.IHistoryPageSource; |
| import org.eclipse.ui.IEditorInput; |
| import org.eclipse.ui.IPersistableElement; |
| |
| /** |
| * @author Xiaoyang Guan |
| */ |
| public class TracWikiPageEditorInput implements IEditorInput { |
| |
| private TaskRepository repository; |
| |
| private TracWikiPage page; |
| |
| private String pageUrl; |
| |
| public TracWikiPageEditorInput(TaskRepository repository, TracWikiPage page, String pageUrl) { |
| this.repository = repository; |
| this.page = page; |
| this.pageUrl = pageUrl; |
| } |
| |
| public TaskRepository getRepository() { |
| return repository; |
| } |
| |
| public void setRepository(TaskRepository repository) { |
| this.repository = repository; |
| } |
| |
| public TracWikiPage getPage() { |
| return page; |
| } |
| |
| public void setPage(TracWikiPage page) { |
| this.page = page; |
| } |
| |
| public String getPageUrl() { |
| return pageUrl; |
| } |
| |
| public void setPageUrl(String pageUrl) { |
| this.pageUrl = pageUrl; |
| } |
| |
| public boolean exists() { |
| // ignore |
| return false; |
| } |
| |
| public ImageDescriptor getImageDescriptor() { |
| // ignore |
| return null; |
| } |
| |
| public String getName() { |
| return page.getPageInfo().getPageName(); |
| } |
| |
| public IPersistableElement getPersistable() { |
| // ignore |
| return null; |
| } |
| |
| public String getToolTipText() { |
| return getName() + " [" + repository.getRepositoryLabel() + "]"; |
| } |
| |
| private static TracWikiPageHistoryPageSource historyPageSource = new TracWikiPageHistoryPageSource(); |
| |
| @SuppressWarnings("rawtypes") |
| public Object getAdapter(Class adapter) { |
| if (adapter == IEditorInput.class) { |
| return this; |
| } |
| |
| if (adapter == IHistoryPageSource.class) { |
| return historyPageSource; |
| } |
| |
| return null; |
| } |
| |
| @Override |
| public boolean equals(Object obj) { |
| if (obj == null) { |
| return false; |
| } else if (this == obj) { |
| return true; |
| } else if (getClass() != obj.getClass()) { |
| return false; |
| } else { |
| TracWikiPageEditorInput other = (TracWikiPageEditorInput) obj; |
| return repository.equals(other.repository) && page.equals(other.page); |
| } |
| } |
| |
| } |