Example usage for org.eclipse.jgit.lib Repository getGlobalListenerList

List of usage examples for org.eclipse.jgit.lib Repository getGlobalListenerList

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib Repository getGlobalListenerList.

Prototype

public static ListenerList getGlobalListenerList() 

Source Link

Document

Get the global listener list observing all events in this JVM.

Usage

From source file:com.gitblit.tickets.BranchTicketService.java

License:Apache License

@Inject
public BranchTicketService(IRuntimeManager runtimeManager, IPluginManager pluginManager,
        INotificationManager notificationManager, IUserManager userManager,
        IRepositoryManager repositoryManager) {

    super(runtimeManager, pluginManager, notificationManager, userManager, repositoryManager);

    lastAssignedId = new ConcurrentHashMap<String, AtomicLong>();

    // register the branch ticket service for repository ref changes
    Repository.getGlobalListenerList().addRefsChangedListener(this);
}

From source file:org.eclipse.egit.core.internal.rebase.RebaseInteractivePlan.java

License:Open Source License

private void registerRefChangedListener() {
    refsChangedListener = Repository.getGlobalListenerList().addRefsChangedListener(this);
}

From source file:org.eclipse.egit.ui.Activator.java

License:Open Source License

private void setupRepoIndexRefresh() {
    refreshJob = new ResourceRefreshJob();
    refreshHandle = Repository.getGlobalListenerList().addIndexChangedListener(refreshJob);
}

From source file:org.eclipse.egit.ui.internal.commit.CommitEditor.java

License:Open Source License

/**
 * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
 *//*from   w w  w .  j  a  v a  2s .c o m*/
protected void addPages() {
    try {
        commitPage = new CommitEditorPage(this);
        addPage(commitPage);
        if (getCommit().getRevCommit().getParentCount() <= 1) {
            diffPage = new DiffEditorPage(this);
            addPage(diffPage);
        }
        if (getCommit().getNotes().length > 0) {
            notePage = new NotesEditorPage(this);
            addPage(notePage);
        }
    } catch (PartInitException e) {
        Activator.error("Error adding page", e); //$NON-NLS-1$
    }
    refListenerHandle = Repository.getGlobalListenerList().addRefsChangedListener(this);
}

From source file:org.eclipse.egit.ui.internal.decorators.GitLightweightDecorator.java

License:Open Source License

/**
 * Constructs a new Git resource decorator
 *//*from  w w w  . jav a  2  s . c o  m*/
public GitLightweightDecorator() {
    TeamUI.addPropertyChangeListener(this);
    Activator.addPropertyChangeListener(this);
    PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().addPropertyChangeListener(this);
    myIndexChangedHandle = Repository.getGlobalListenerList().addIndexChangedListener(this);
    myRefsChangedHandle = Repository.getGlobalListenerList().addRefsChangedListener(this);
    GitProjectData.addRepositoryChangeListener(this);
    ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);

    // This is an optimization to ensure that while decorating our fonts and colors are
    // pre-created and decoration can occur without having to syncExec.
    ensureFontAndColorsCreated(fonts, colors);
}

From source file:org.eclipse.egit.ui.internal.history.GitHistoryPage.java

License:Open Source License

@Override
public void createControl(final Composite parent) {
    trace = GitTraceLocation.HISTORYVIEW.isActive();
    if (trace)/*from w w w.j  a  v a  2s .c  om*/
        GitTraceLocation.getTrace().traceEntry(GitTraceLocation.HISTORYVIEW.getLocation());

    historyControl = createMainPanel(parent);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(historyControl);
    graphDetailSplit = new SashForm(historyControl, SWT.VERTICAL);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(graphDetailSplit);
    graph = new CommitGraphTable(graphDetailSplit, getSite(), popupMgr);
    revInfoSplit = new SashForm(graphDetailSplit, SWT.HORIZONTAL);
    commentViewer = new CommitMessageViewer(revInfoSplit, getSite());
    fileViewer = new CommitFileDiffViewer(revInfoSplit, getSite());
    findToolbar = new FindToolbar(historyControl);

    layoutSashForm(graphDetailSplit, UIPreferences.RESOURCEHISTORY_GRAPH_SPLIT);
    layoutSashForm(revInfoSplit, UIPreferences.RESOURCEHISTORY_REV_SPLIT);

    attachCommitSelectionChanged();
    initActions();

    getSite().registerContextMenu(POPUP_ID, popupMgr, graph.getTableView());
    // due to the issues described in bug 322751, it makes no
    // sense to set a selection provider for the site here
    layout();

    myRefsChangedHandle = Repository.getGlobalListenerList().addRefsChangedListener(this);

    if (trace)
        GitTraceLocation.getTrace().traceExit(GitTraceLocation.HISTORYVIEW.getLocation());
}

From source file:org.eclipse.egit.ui.internal.reflog.ReflogView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    GridLayoutFactory.fillDefaults().applyTo(parent);

    toolkit = new FormToolkit(parent.getDisplay());
    parent.addDisposeListener(new DisposeListener() {
        public void widgetDisposed(DisposeEvent e) {
            toolkit.dispose();/*w w  w .j  ava2 s. c  o  m*/
        }
    });

    form = toolkit.createForm(parent);

    Image repoImage = UIIcons.REPOSITORY.createImage();
    UIUtils.hookDisposal(form, repoImage);
    final Image branchImage = UIIcons.CHANGESET.createImage();
    UIUtils.hookDisposal(form, branchImage);
    form.setImage(repoImage);
    form.setText(UIText.StagingView_NoSelectionTitle);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(form);
    toolkit.decorateFormHeading(form);
    GridLayoutFactory.fillDefaults().applyTo(form.getBody());

    Composite tableComposite = toolkit.createComposite(form.getBody());
    tableComposite.setLayout(new GridLayout());

    GridDataFactory.fillDefaults().grab(true, true).applyTo(tableComposite);

    final TreeColumnLayout layout = new TreeColumnLayout();

    FilteredTree filteredTree = new FilteredTree(tableComposite, SWT.NONE | SWT.BORDER | SWT.FULL_SELECTION,
            new PatternFilter(), true) {
        @Override
        protected void createControl(Composite composite, int treeStyle) {
            super.createControl(composite, treeStyle);
            treeComposite.setLayout(layout);
        }
    };

    toolkit.adapt(filteredTree);
    refLogTableTreeViewer = filteredTree.getViewer();
    refLogTableTreeViewer.getTree().setLinesVisible(true);
    refLogTableTreeViewer.getTree().setHeaderVisible(true);
    refLogTableTreeViewer.setContentProvider(new ReflogViewContentProvider());

    ColumnViewerToolTipSupport.enableFor(refLogTableTreeViewer);

    TreeViewerColumn toColumn = createColumn(layout, UIText.ReflogView_CommitColumnHeader, 10, SWT.LEFT);
    toColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            final ReflogEntry entry = (ReflogEntry) element;
            return entry.getNewId().abbreviate(7).name();
        }

        @Override
        public String getToolTipText(Object element) {
            final ReflogEntry entry = (ReflogEntry) element;
            return entry.getNewId().name();
        }

        @Override
        public Image getImage(Object element) {
            return branchImage;
        }

    });

    TreeViewerColumn commitMessageColumn = createColumn(layout, UIText.ReflogView_CommitMessageColumnHeader, 40,
            SWT.LEFT);
    commitMessageColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            final ReflogEntry entry = (ReflogEntry) element;
            RevCommit c = getCommit(entry);
            return c == null ? "" : c.getShortMessage(); //$NON-NLS-1$
        }

        private RevCommit getCommit(final ReflogEntry entry) {
            RevWalk walk = new RevWalk(getRepository());
            walk.setRetainBody(true);
            RevCommit c = null;
            try {
                c = walk.parseCommit(entry.getNewId());
            } catch (IOException ignored) {
                // ignore
            } finally {
                walk.release();
            }
            return c;
        }
    });

    TreeViewerColumn dateColumn = createColumn(layout, UIText.ReflogView_DateColumnHeader, 15, SWT.LEFT);
    dateColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            final ReflogEntry entry = (ReflogEntry) element;
            final PersonIdent who = entry.getWho();
            // TODO add option to use RelativeDateFormatter
            return absoluteFormatter.format(who.getWhen());
        }

        @Override
        public Image getImage(Object element) {
            return null;
        }

    });

    TreeViewerColumn messageColumn = createColumn(layout, UIText.ReflogView_MessageColumnHeader, 40, SWT.LEFT);
    messageColumn.setLabelProvider(new ColumnLabelProvider() {

        private ResourceManager resourceManager = new LocalResourceManager(JFaceResources.getResources());

        @Override
        public String getText(Object element) {
            final ReflogEntry entry = (ReflogEntry) element;
            return entry.getComment();
        }

        public Image getImage(Object element) {
            String comment = ((ReflogEntry) element).getComment();
            if (comment.startsWith("commit:") || comment.startsWith("commit (initial):")) //$NON-NLS-1$ //$NON-NLS-2$
                return (Image) resourceManager.get(UIIcons.COMMIT);
            if (comment.startsWith("commit (amend):")) //$NON-NLS-1$
                return (Image) resourceManager.get(UIIcons.AMEND_COMMIT);
            if (comment.startsWith("pull")) //$NON-NLS-1$
                return (Image) resourceManager.get(UIIcons.PULL);
            if (comment.startsWith("clone")) //$NON-NLS-1$
                return (Image) resourceManager.get(UIIcons.CLONEGIT);
            if (comment.startsWith("rebase")) //$NON-NLS-1$
                return (Image) resourceManager.get(UIIcons.REBASE);
            if (comment.startsWith("merge")) //$NON-NLS-1$
                return (Image) resourceManager.get(UIIcons.MERGE);
            if (comment.startsWith("fetch")) //$NON-NLS-1$
                return (Image) resourceManager.get(UIIcons.FETCH);
            if (comment.startsWith("branch")) //$NON-NLS-1$
                return (Image) resourceManager.get(UIIcons.CREATE_BRANCH);
            if (comment.startsWith("checkout")) //$NON-NLS-1$
                return (Image) resourceManager.get(UIIcons.CHECKOUT);
            return null;
        }

        public void dispose() {
            resourceManager.dispose();
            super.dispose();
        }
    });

    new OpenAndLinkWithEditorHelper(refLogTableTreeViewer) {
        @Override
        protected void linkToEditor(ISelection selection) {
            // Not supported

        }

        @Override
        protected void open(ISelection sel, boolean activate) {
            handleOpen(sel, OpenStrategy.activateOnOpen());
        }

        @Override
        protected void activate(ISelection selection) {
            handleOpen(selection, true);
        }

        private void handleOpen(ISelection selection, boolean activateOnOpen) {
            if (selection instanceof IStructuredSelection)
                if (selection.isEmpty())
                    return;
            Repository repo = getRepository();
            if (repo == null)
                return;
            RevWalk walk = new RevWalk(repo);
            try {
                for (Object element : ((IStructuredSelection) selection).toArray()) {
                    ReflogEntry entry = (ReflogEntry) element;
                    ObjectId id = entry.getNewId();
                    if (id == null || id.equals(ObjectId.zeroId()))
                        id = entry.getOldId();
                    if (id != null && !id.equals(ObjectId.zeroId()))
                        CommitEditor.openQuiet(new RepositoryCommit(repo, walk.parseCommit(id)),
                                activateOnOpen);
                }
            } catch (IOException e) {
                Activator.logError(UIText.ReflogView_ErrorOnOpenCommit, e);
            } finally {
                walk.release();
            }
        }
    };

    selectionChangedListener = new ISelectionListener() {
        public void selectionChanged(IWorkbenchPart part, ISelection selection) {
            if (part instanceof IEditorPart) {
                IEditorInput input = ((IEditorPart) part).getEditorInput();
                if (input instanceof IFileEditorInput)
                    reactOnSelection(new StructuredSelection(((IFileEditorInput) input).getFile()));
            } else
                reactOnSelection(selection);
        }
    };

    IWorkbenchPartSite site = getSite();
    ISelectionService service = (ISelectionService) site.getService(ISelectionService.class);
    service.addPostSelectionListener(selectionChangedListener);

    // Use current selection to populate reflog view
    ISelection selection = service.getSelection();
    if (selection != null && !selection.isEmpty()) {
        IWorkbenchPart part = site.getPage().getActivePart();
        if (part != null)
            selectionChangedListener.selectionChanged(part, selection);
    }

    site.setSelectionProvider(refLogTableTreeViewer);

    addRefsChangedListener = Repository.getGlobalListenerList().addRefsChangedListener(this);

    // register context menu
    MenuManager menuManager = new MenuManager();
    menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
    Tree tree = refLogTableTreeViewer.getTree();
    tree.setMenu(menuManager.createContextMenu(tree));
    getSite().registerContextMenu(POPUP_MENU_ID, menuManager, refLogTableTreeViewer);
}