Search in sources :

Example 6 with GitHistoryPage

use of org.eclipse.egit.ui.internal.history.GitHistoryPage in project egit by eclipse.

the class GitAdapterFactory method getAdapter.

@Override
public Object getAdapter(Object adaptableObject, Class adapterType) {
    if (adapterType.isAssignableFrom(IHistoryPageSource.class)) {
        return GitHistoryPageSource.INSTANCE;
    }
    if (IWorkbenchAdapter.class == adapterType) {
        // property page names for git repository tree nodes
        if (adaptableObject instanceof RepositoryTreeNode) {
            return getRepositoryTreeNodeWorkbenchAdapter((RepositoryTreeNode) adaptableObject);
        }
        if (gitModelWorkbenchAdapter == null) {
            gitModelWorkbenchAdapter = new GitModelWorkbenchAdapter();
        }
        return gitModelWorkbenchAdapter;
    }
    if (adaptableObject instanceof IHistoryView && IShowInSource.class == adapterType) {
        IHistoryView historyView = (IHistoryView) adaptableObject;
        IHistoryPage historyPage = historyView.getHistoryPage();
        if (historyPage instanceof GitHistoryPage) {
            return historyPage;
        }
    }
    if (adaptableObject instanceof IURIEditorInput && adapterType == Repository.class) {
        return getRepository((IURIEditorInput) adaptableObject);
    }
    if (adaptableObject instanceof IURIEditorInput && adapterType == File.class) {
        return getFile((IURIEditorInput) adaptableObject);
    }
    if (adaptableObject instanceof GitModelObject && adapterType == ResourceMapping.class) {
        return GitObjectMapping.create((GitModelObject) adaptableObject);
    }
    if (adaptableObject instanceof GitModelObject && adapterType == IResource.class) {
        GitModelObject obj = (GitModelObject) adaptableObject;
        if (obj instanceof GitModelBlob) {
            IResource res = ResourceUtil.getFileForLocation(obj.getLocation(), false);
            if (res == null) {
                // Deleted resource?
                res = getWorkspaceResourceFromGitPath(obj.getLocation());
            }
            return res;
        }
        if (obj instanceof GitModelTree) {
            IResource res = root.getContainerForLocation(obj.getLocation());
            if (res == null) {
                res = root.getFolder(obj.getLocation());
            }
            return res;
        }
    }
    if (adapterType == Repository.class) {
        ResourceMapping m = AdapterUtils.adapt(adaptableObject, ResourceMapping.class);
        if (m != null) {
            return SelectionUtils.getRepository(new StructuredSelection(m));
        }
    }
    return null;
}
Also used : IURIEditorInput(org.eclipse.ui.IURIEditorInput) GitModelTree(org.eclipse.egit.ui.internal.synchronize.model.GitModelTree) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) GitModelObject(org.eclipse.egit.ui.internal.synchronize.model.GitModelObject) IHistoryPage(org.eclipse.team.ui.history.IHistoryPage) Repository(org.eclipse.jgit.lib.Repository) GitHistoryPage(org.eclipse.egit.ui.internal.history.GitHistoryPage) RepositoryTreeNode(org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode) GitModelWorkbenchAdapter(org.eclipse.egit.ui.internal.synchronize.mapping.GitModelWorkbenchAdapter) ResourceMapping(org.eclipse.core.resources.mapping.ResourceMapping) IShowInSource(org.eclipse.ui.part.IShowInSource) IHistoryView(org.eclipse.team.ui.history.IHistoryView) File(java.io.File) IResource(org.eclipse.core.resources.IResource) GitModelBlob(org.eclipse.egit.ui.internal.synchronize.model.GitModelBlob)

Example 7 with GitHistoryPage

use of org.eclipse.egit.ui.internal.history.GitHistoryPage in project egit by eclipse.

the class CreatePatchHandler method isEnabled.

@Override
public boolean isEnabled() {
    GitHistoryPage page = getPage();
    if (page == null)
        return false;
    IStructuredSelection selection = getSelection(page);
    if (selection.size() != 1)
        return false;
    RevCommit commit = (RevCommit) selection.getFirstElement();
    return (commit.getParentCount() <= 1);
}
Also used : GitHistoryPage(org.eclipse.egit.ui.internal.history.GitHistoryPage) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) RevCommit(org.eclipse.jgit.revwalk.RevCommit)

Example 8 with GitHistoryPage

use of org.eclipse.egit.ui.internal.history.GitHistoryPage in project egit by eclipse.

the class DeleteTagOnCommitHandler method isEnabled.

@Override
public boolean isEnabled() {
    GitHistoryPage page = getPage();
    if (page == null)
        return false;
    IStructuredSelection selection = getSelection(page);
    if (selection.size() != 1)
        return false;
    List<Ref> tags = getTagsOfCommit(selection);
    return !tags.isEmpty();
}
Also used : Ref(org.eclipse.jgit.lib.Ref) GitHistoryPage(org.eclipse.egit.ui.internal.history.GitHistoryPage) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection)

Example 9 with GitHistoryPage

use of org.eclipse.egit.ui.internal.history.GitHistoryPage in project egit by eclipse.

the class EditHandler method isEnabled.

@Override
public boolean isEnabled() {
    GitHistoryPage page = getPage();
    if (page == null)
        return false;
    IStructuredSelection selection = getSelection(page);
    if (selection.size() != 1)
        return false;
    Repository repository = getRepository(page);
    if (repository.getRepositoryState() != RepositoryState.SAFE)
        return false;
    RevCommit commit = (RevCommit) selection.getFirstElement();
    return (commit.getParentCount() == 1);
}
Also used : Repository(org.eclipse.jgit.lib.Repository) GitHistoryPage(org.eclipse.egit.ui.internal.history.GitHistoryPage) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) RevCommit(org.eclipse.jgit.revwalk.RevCommit)

Example 10 with GitHistoryPage

use of org.eclipse.egit.ui.internal.history.GitHistoryPage in project egit by eclipse.

the class OpenInTextEditorHandler method isEnabled.

@Override
public boolean isEnabled() {
    GitHistoryPage page = getPage();
    if (page == null)
        return false;
    int size = getSelection(page).size();
    if (size == 0)
        return false;
    return page.getInputInternal().isSingleFile();
}
Also used : GitHistoryPage(org.eclipse.egit.ui.internal.history.GitHistoryPage)

Aggregations

GitHistoryPage (org.eclipse.egit.ui.internal.history.GitHistoryPage)17 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)10 RevCommit (org.eclipse.jgit.revwalk.RevCommit)9 Repository (org.eclipse.jgit.lib.Repository)6 IOException (java.io.IOException)2 Ref (org.eclipse.jgit.lib.Ref)2 IHistoryPage (org.eclipse.team.ui.history.IHistoryPage)2 IHistoryView (org.eclipse.team.ui.history.IHistoryView)2 File (java.io.File)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 IResource (org.eclipse.core.resources.IResource)1 ResourceMapping (org.eclipse.core.resources.mapping.ResourceMapping)1 CommitFileRevision (org.eclipse.egit.core.internal.storage.CommitFileRevision)1 BlameOperation (org.eclipse.egit.ui.internal.blame.BlameOperation)1 RepositoryTreeNode (org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode)1 GitModelWorkbenchAdapter (org.eclipse.egit.ui.internal.synchronize.mapping.GitModelWorkbenchAdapter)1 GitModelBlob (org.eclipse.egit.ui.internal.synchronize.model.GitModelBlob)1 GitModelObject (org.eclipse.egit.ui.internal.synchronize.model.GitModelObject)1 GitModelTree (org.eclipse.egit.ui.internal.synchronize.model.GitModelTree)1