1 /*******************************************************************************
2 * Copyright (c) 2011, 2014 GitHub Inc. and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License 2.0
5 * which accompanies this distribution, and is available at
6 * https://www.eclipse.org/legal/epl-2.0/
8 * SPDX-License-Identifier: EPL-2.0
11 * Kevin Sawicki (GitHub Inc.) - initial API and implementation
12 *******************************************************************************/
13 package org
.eclipse
.egit
.ui
.internal
.commit
;
15 import java
.text
.MessageFormat
;
17 import org
.eclipse
.core
.runtime
.Assert
;
18 import org
.eclipse
.core
.runtime
.PlatformObject
;
19 import org
.eclipse
.egit
.ui
.internal
.UIIcons
;
20 import org
.eclipse
.egit
.ui
.internal
.UIText
;
21 import org
.eclipse
.jface
.resource
.ImageDescriptor
;
22 import org
.eclipse
.jgit
.lib
.Repository
;
23 import org
.eclipse
.jgit
.revwalk
.RevCommit
;
24 import org
.eclipse
.ui
.IEditorInput
;
25 import org
.eclipse
.ui
.IMemento
;
26 import org
.eclipse
.ui
.IPersistableElement
;
29 * Commit editor input class. This class wraps a {@link RepositoryCommit} to be
30 * viewed in an editor.
32 public class CommitEditorInput
extends PlatformObject
implements IEditorInput
,
35 private RepositoryCommit commit
;
38 * Create commit editor input
42 public CommitEditorInput(RepositoryCommit commit
) {
43 Assert
.isNotNull(commit
, "Repository commit cannot be null"); //$NON-NLS-1$
48 * @see java.lang.Object#hashCode()
51 public int hashCode() {
52 return commit
.getRevCommit().hashCode();
56 * @see java.lang.Object#equals(java.lang.Object)
59 public boolean equals(Object obj
) {
62 else if (obj
instanceof CommitEditorInput
) {
63 RepositoryCommit inputCommit
= ((CommitEditorInput
) obj
).commit
;
64 return commit
.getRevCommit().equals(inputCommit
.getRevCommit())
65 && commit
.getRepository().equals(
66 inputCommit
.getRepository());
72 * @see java.lang.Object#toString()
75 public String
toString() {
80 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
83 public Object
getAdapter(Class adapter
) {
84 if (RepositoryCommit
.class == adapter
)
87 if (RevCommit
.class == adapter
)
88 return commit
.getRevCommit();
90 if (Repository
.class == adapter
)
91 return commit
.getRepository();
93 return super.getAdapter(adapter
);
97 * @see org.eclipse.ui.IEditorInput#exists()
100 public boolean exists() {
105 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
108 public ImageDescriptor
getImageDescriptor() {
109 return UIIcons
.CHANGESET
;
113 * @see org.eclipse.ui.IEditorInput#getName()
116 public String
getName() {
117 return MessageFormat
.format(UIText
.CommitEditorInput_Name
,
118 commit
.abbreviate(), commit
.getRepositoryName());
122 * @see org.eclipse.ui.IEditorInput#getPersistable()
125 public IPersistableElement
getPersistable() {
130 * @see org.eclipse.ui.IEditorInput#getToolTipText()
133 public String
getToolTipText() {
134 return MessageFormat
.format(UIText
.CommitEditorInput_ToolTip
, commit
135 .getRevCommit().getShortMessage(), commit
.getRepositoryName());
139 * Get repository commit
143 public RepositoryCommit
getCommit() {
148 * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
151 public void saveState(IMemento memento
) {
152 CommitEditorInputFactory
.saveState(memento
, this);
156 * @see org.eclipse.ui.IPersistableElement#getFactoryId()
159 public String
getFactoryId() {
160 return CommitEditorInputFactory
.ID
;