Have icon for "reset" entry in reflog
[egit/eclipse.git] / org.eclipse.egit.ui / src / org / eclipse / egit / ui / internal / commit / CommitEditorInput.java
blobcce21162d909a4597121013f5f1f5c6dd72843be
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
10 * Contributors:
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;
28 /**
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,
33 IPersistableElement {
35 private RepositoryCommit commit;
37 /**
38 * Create commit editor input
40 * @param commit
42 public CommitEditorInput(RepositoryCommit commit) {
43 Assert.isNotNull(commit, "Repository commit cannot be null"); //$NON-NLS-1$
44 this.commit = commit;
47 /**
48 * @see java.lang.Object#hashCode()
50 @Override
51 public int hashCode() {
52 return commit.getRevCommit().hashCode();
55 /**
56 * @see java.lang.Object#equals(java.lang.Object)
58 @Override
59 public boolean equals(Object obj) {
60 if (obj == this)
61 return true;
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());
67 } else
68 return false;
71 /**
72 * @see java.lang.Object#toString()
74 @Override
75 public String toString() {
76 return getName();
79 /**
80 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
82 @Override
83 public Object getAdapter(Class adapter) {
84 if (RepositoryCommit.class == adapter)
85 return commit;
87 if (RevCommit.class == adapter)
88 return commit.getRevCommit();
90 if (Repository.class == adapter)
91 return commit.getRepository();
93 return super.getAdapter(adapter);
96 /**
97 * @see org.eclipse.ui.IEditorInput#exists()
99 @Override
100 public boolean exists() {
101 return true;
105 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
107 @Override
108 public ImageDescriptor getImageDescriptor() {
109 return UIIcons.CHANGESET;
113 * @see org.eclipse.ui.IEditorInput#getName()
115 @Override
116 public String getName() {
117 return MessageFormat.format(UIText.CommitEditorInput_Name,
118 commit.abbreviate(), commit.getRepositoryName());
122 * @see org.eclipse.ui.IEditorInput#getPersistable()
124 @Override
125 public IPersistableElement getPersistable() {
126 return this;
130 * @see org.eclipse.ui.IEditorInput#getToolTipText()
132 @Override
133 public String getToolTipText() {
134 return MessageFormat.format(UIText.CommitEditorInput_ToolTip, commit
135 .getRevCommit().getShortMessage(), commit.getRepositoryName());
139 * Get repository commit
141 * @return commit
143 public RepositoryCommit getCommit() {
144 return this.commit;
148 * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
150 @Override
151 public void saveState(IMemento memento) {
152 CommitEditorInputFactory.saveState(memento, this);
156 * @see org.eclipse.ui.IPersistableElement#getFactoryId()
158 @Override
159 public String getFactoryId() {
160 return CommitEditorInputFactory.ID;