Search in sources :

Example 1 with RepositoryToolbarAction

use of org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction in project egit by eclipse.

the class RebaseInteractiveView method createPartControl.

@Override
public void createPartControl(Composite parent) {
    GridLayoutFactory.fillDefaults().applyTo(parent);
    final FormToolkit toolkit = new FormToolkit(parent.getDisplay());
    parent.addDisposeListener(new DisposeListener() {

        @Override
        public void widgetDisposed(DisposeEvent e) {
            toolkit.dispose();
        }
    });
    form = createForm(parent, toolkit);
    createCommandToolBar(form, toolkit);
    planTreeViewer = createPlanTreeViewer(form.getBody(), toolkit);
    planLayout = new PlanLayout();
    planTreeViewer.getTree().getParent().setLayout(planLayout);
    createColumns(planLayout);
    createStepActionToolBar(toolkit);
    createPopupMenu(planTreeViewer);
    setupListeners();
    createLocalDragandDrop();
    planTreeViewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            PlanElement element = (PlanElement) ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (element == null)
                return;
            RepositoryCommit commit = loadCommit(element.getCommit());
            if (commit != null)
                CommitEditor.openQuiet(commit);
        }

        private RepositoryCommit loadCommit(AbbreviatedObjectId abbreviatedObjectId) {
            if (abbreviatedObjectId != null) {
                try (RevWalk walk = new RevWalk(RebaseInteractiveView.this.currentRepository)) {
                    Collection<ObjectId> resolved = walk.getObjectReader().resolve(abbreviatedObjectId);
                    if (resolved.size() == 1) {
                        RevCommit commit = walk.parseCommit(resolved.iterator().next());
                        return new RepositoryCommit(RebaseInteractiveView.this.currentRepository, commit);
                    }
                } catch (IOException e) {
                    return null;
                }
            }
            return null;
        }
    });
    prefListener = new IPreferenceChangeListener() {

        @Override
        public void preferenceChange(PreferenceChangeEvent event) {
            if (!RepositoryUtil.PREFS_DIRECTORIES_REL.equals(event.getKey())) {
                return;
            }
            final Repository repo = currentRepository;
            if (repo == null)
                return;
            if (Activator.getDefault().getRepositoryUtil().contains(repo))
                return;
            // Unselect repository as it has been removed
            Display.getDefault().asyncExec(new Runnable() {

                @Override
                public void run() {
                    currentRepository = null;
                    showRepository(null);
                }
            });
        }
    };
    InstanceScope.INSTANCE.getNode(org.eclipse.egit.core.Activator.getPluginId()).addPreferenceChangeListener(prefListener);
    uiPrefsListener = new IPropertyChangeListener() {

        @Override
        public void propertyChange(PropertyChangeEvent event) {
            String property = event.getProperty();
            if (UIPreferences.DATE_FORMAT.equals(property) || UIPreferences.DATE_FORMAT_CHOICE.equals(property) || UIPreferences.RESOURCEHISTORY_SHOW_RELATIVE_DATE.equals(property)) {
                refresh();
            }
        }
    };
    Activator.getDefault().getPreferenceStore().addPropertyChangeListener(uiPrefsListener);
    IActionBars actionBars = getViewSite().getActionBars();
    IToolBarManager toolbar = actionBars.getToolBarManager();
    listenOnRepositoryViewSelection = RebaseInteractivePreferences.isReactOnSelection();
    // link with selection
    Action linkSelectionAction = new BooleanPrefAction((IPersistentPreferenceStore) Activator.getDefault().getPreferenceStore(), UIPreferences.REBASE_INTERACTIVE_SYNC_SELECTION, UIText.InteractiveRebaseView_LinkSelection) {

        @Override
        public void apply(boolean value) {
            listenOnRepositoryViewSelection = value;
        }
    };
    linkSelectionAction.setImageDescriptor(UIIcons.ELCL16_SYNCED);
    toolbar.add(linkSelectionAction);
    switchRepositoriesAction = new RepositoryToolbarAction(false, () -> currentRepository, repo -> setInput(new StructuredSelection(repo)));
    toolbar.add(switchRepositoriesAction);
    UIUtils.notifySelectionChangedWithCurrentSelection(selectionChangedListener, getSite());
    getSite().setSelectionProvider(new RepositorySelectionProvider(planTreeViewer, () -> currentRepository));
}
Also used : AdapterUtils(org.eclipse.egit.core.AdapterUtils) UIPreferences(org.eclipse.egit.ui.UIPreferences) IWorkbenchPartSite(org.eclipse.ui.IWorkbenchPartSite) DND(org.eclipse.swt.dnd.DND) CommitEditor(org.eclipse.egit.ui.internal.commit.CommitEditor) RepositoryState(org.eclipse.jgit.lib.RepositoryState) LocalSelectionTransfer(org.eclipse.jface.util.LocalSelectionTransfer) RevWalk(org.eclipse.jgit.revwalk.RevWalk) PropertyChangeEvent(org.eclipse.jface.util.PropertyChangeEvent) ProcessStepsRebaseCommand(org.eclipse.egit.ui.internal.commands.shared.ProcessStepsRebaseCommand) Composite(org.eclipse.swt.widgets.Composite) PartInitException(org.eclipse.ui.PartInitException) PreferenceBasedDateFormatter(org.eclipse.egit.ui.internal.PreferenceBasedDateFormatter) KeyEvent(org.eclipse.swt.events.KeyEvent) KeyAdapter(org.eclipse.swt.events.KeyAdapter) IEditorPart(org.eclipse.ui.IEditorPart) AbortRebaseCommand(org.eclipse.egit.ui.internal.commands.shared.AbortRebaseCommand) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Separator(org.eclipse.jface.action.Separator) IEditorInput(org.eclipse.ui.IEditorInput) PlatformUI(org.eclipse.ui.PlatformUI) MenuManager(org.eclipse.jface.action.MenuManager) ToolItem(org.eclipse.swt.widgets.ToolItem) AbstractRebaseCommandHandler(org.eclipse.egit.ui.internal.commands.shared.AbstractRebaseCommandHandler) GridLayoutFactory(org.eclipse.jface.layout.GridLayoutFactory) Transfer(org.eclipse.swt.dnd.Transfer) InstanceScope(org.eclipse.core.runtime.preferences.InstanceScope) UIText(org.eclipse.egit.ui.internal.UIText) PreferenceChangeEvent(org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent) SWT(org.eclipse.swt.SWT) BooleanPrefAction(org.eclipse.egit.ui.internal.actions.BooleanPrefAction) ElementType(org.eclipse.egit.core.internal.rebase.RebaseInteractivePlan.ElementType) RepositorySelectionProvider(org.eclipse.egit.ui.internal.selection.RepositorySelectionProvider) ViewPart(org.eclipse.ui.part.ViewPart) RevCommit(org.eclipse.jgit.revwalk.RevCommit) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) Format(org.eclipse.jgit.util.GitDateFormatter.Format) JFaceResources(org.eclipse.jface.resource.JFaceResources) RebaseInteractivePlan(org.eclipse.egit.core.internal.rebase.RebaseInteractivePlan) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) ArrayList(java.util.ArrayList) IFileEditorInput(org.eclipse.ui.IFileEditorInput) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) PlanElement(org.eclipse.egit.core.internal.rebase.RebaseInteractivePlan.PlanElement) IPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener) Font(org.eclipse.swt.graphics.Font) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent) IPreferenceChangeListener(org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener) GridDataFactory(org.eclipse.jface.layout.GridDataFactory) IViewSite(org.eclipse.ui.IViewSite) IOException(java.io.IOException) ExecutionException(org.eclipse.core.commands.ExecutionException) IActionBars(org.eclipse.ui.IActionBars) CommonUtils(org.eclipse.egit.ui.internal.CommonUtils) Form(org.eclipse.ui.forms.widgets.Form) RepositoryToolbarAction(org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction) ToolTip(org.eclipse.jface.window.ToolTip) Repository(org.eclipse.jgit.lib.Repository) ElementAction(org.eclipse.egit.core.internal.rebase.RebaseInteractivePlan.ElementAction) DisposeEvent(org.eclipse.swt.events.DisposeEvent) DisposeListener(org.eclipse.swt.events.DisposeListener) IAction(org.eclipse.jface.action.IAction) ToolBar(org.eclipse.swt.widgets.ToolBar) IToolBarManager(org.eclipse.jface.action.IToolBarManager) SWTKeySupport(org.eclipse.jface.bindings.keys.SWTKeySupport) ColumnPixelData(org.eclipse.jface.viewers.ColumnPixelData) GC(org.eclipse.swt.graphics.GC) ISelectionListener(org.eclipse.ui.ISelectionListener) ColumnViewerToolTipSupport(org.eclipse.jface.viewers.ColumnViewerToolTipSupport) RepositoryCommit(org.eclipse.egit.ui.internal.commit.RepositoryCommit) IWorkbenchAction(org.eclipse.ui.actions.ActionFactory.IWorkbenchAction) TreeViewerColumn(org.eclipse.jface.viewers.TreeViewerColumn) IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) Collection(java.util.Collection) GitDateFormatter(org.eclipse.jgit.util.GitDateFormatter) Display(org.eclipse.swt.widgets.Display) ColumnLabelProvider(org.eclipse.jface.viewers.ColumnLabelProvider) AbbreviatedObjectId(org.eclipse.jgit.lib.AbbreviatedObjectId) List(java.util.List) Tree(org.eclipse.swt.widgets.Tree) ISelection(org.eclipse.jface.viewers.ISelection) TreeViewer(org.eclipse.jface.viewers.TreeViewer) UIIcons(org.eclipse.egit.ui.internal.UIIcons) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) ISelectionService(org.eclipse.ui.ISelectionService) RepositoryMapping(org.eclipse.egit.core.project.RepositoryMapping) RepositoryTreeNode(org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode) Activator(org.eclipse.egit.ui.Activator) Image(org.eclipse.swt.graphics.Image) RepositoryUtil(org.eclipse.egit.core.RepositoryUtil) IPersistentPreferenceStore(org.eclipse.jface.preference.IPersistentPreferenceStore) ColumnWeightData(org.eclipse.jface.viewers.ColumnWeightData) ContinueRebaseCommand(org.eclipse.egit.ui.internal.commands.shared.ContinueRebaseCommand) IWorkbenchActionConstants(org.eclipse.ui.IWorkbenchActionConstants) FormToolkit(org.eclipse.ui.forms.widgets.FormToolkit) Action(org.eclipse.jface.action.Action) TreeItem(org.eclipse.swt.widgets.TreeItem) ObjectId(org.eclipse.jgit.lib.ObjectId) IResource(org.eclipse.core.resources.IResource) UIUtils(org.eclipse.egit.ui.UIUtils) TreeColumnLayout(org.eclipse.jface.layout.TreeColumnLayout) LocalResourceManager(org.eclipse.jface.resource.LocalResourceManager) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Menu(org.eclipse.swt.widgets.Menu) RepositoriesView(org.eclipse.egit.ui.internal.repository.RepositoriesView) Control(org.eclipse.swt.widgets.Control) SkipRebaseCommand(org.eclipse.egit.ui.internal.commands.shared.SkipRebaseCommand) DisposeListener(org.eclipse.swt.events.DisposeListener) BooleanPrefAction(org.eclipse.egit.ui.internal.actions.BooleanPrefAction) RepositoryToolbarAction(org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction) ElementAction(org.eclipse.egit.core.internal.rebase.RebaseInteractivePlan.ElementAction) IAction(org.eclipse.jface.action.IAction) IWorkbenchAction(org.eclipse.ui.actions.ActionFactory.IWorkbenchAction) Action(org.eclipse.jface.action.Action) FormToolkit(org.eclipse.ui.forms.widgets.FormToolkit) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) RepositorySelectionProvider(org.eclipse.egit.ui.internal.selection.RepositorySelectionProvider) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) DisposeEvent(org.eclipse.swt.events.DisposeEvent) PlanElement(org.eclipse.egit.core.internal.rebase.RebaseInteractivePlan.PlanElement) AbbreviatedObjectId(org.eclipse.jgit.lib.AbbreviatedObjectId) IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) IActionBars(org.eclipse.ui.IActionBars) RevCommit(org.eclipse.jgit.revwalk.RevCommit) IPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener) RepositoryToolbarAction(org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction) PreferenceChangeEvent(org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent) IPreferenceChangeListener(org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener) PropertyChangeEvent(org.eclipse.jface.util.PropertyChangeEvent) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent) IOException(java.io.IOException) RevWalk(org.eclipse.jgit.revwalk.RevWalk) RepositoryCommit(org.eclipse.egit.ui.internal.commit.RepositoryCommit) Repository(org.eclipse.jgit.lib.Repository) IToolBarManager(org.eclipse.jface.action.IToolBarManager) Collection(java.util.Collection) BooleanPrefAction(org.eclipse.egit.ui.internal.actions.BooleanPrefAction)

Example 2 with RepositoryToolbarAction

use of org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction in project egit by eclipse.

the class StagingView method updateToolbar.

private void updateToolbar() {
    ControlContribution controlContribution = new ControlContribution(// $NON-NLS-1$
    "StagingView.searchText") {

        @Override
        protected Control createControl(Composite parent) {
            Composite toolbarComposite = toolkit.createComposite(parent, SWT.NONE);
            toolbarComposite.setBackground(null);
            GridLayout headLayout = new GridLayout();
            headLayout.numColumns = 2;
            headLayout.marginHeight = 0;
            headLayout.marginWidth = 0;
            headLayout.marginTop = 0;
            headLayout.marginBottom = 0;
            headLayout.marginLeft = 0;
            headLayout.marginRight = 0;
            toolbarComposite.setLayout(headLayout);
            filterText = new Text(toolbarComposite, SWT.SEARCH | SWT.ICON_CANCEL | SWT.ICON_SEARCH);
            filterText.setMessage(UIText.StagingView_Find);
            GridData data = new GridData(GridData.FILL_HORIZONTAL);
            data.widthHint = 150;
            filterText.setLayoutData(data);
            final Display display = Display.getCurrent();
            filterText.addModifyListener(new ModifyListener() {

                @Override
                public void modifyText(ModifyEvent e) {
                    filterPattern = wildcardToRegex(filterText.getText());
                    final StagingViewSearchThread searchThread = new StagingViewSearchThread(StagingView.this);
                    display.timerExec(200, new Runnable() {

                        @Override
                        public void run() {
                            searchThread.start();
                        }
                    });
                }
            });
            return toolbarComposite;
        }
    };
    IActionBars actionBars = getViewSite().getActionBars();
    IToolBarManager toolbar = actionBars.getToolBarManager();
    toolbar.add(controlContribution);
    refreshAction = new Action(UIText.StagingView_Refresh, IAction.AS_PUSH_BUTTON) {

        @Override
        public void run() {
            if (cacheEntry != null) {
                schedule(cacheEntry.createRefreshResourcesAndIndexDiffJob(), false);
            }
        }
    };
    refreshAction.setImageDescriptor(UIIcons.ELCL16_REFRESH);
    toolbar.add(refreshAction);
    // link with selection
    Action linkSelectionAction = new BooleanPrefAction((IPersistentPreferenceStore) getPreferenceStore(), UIPreferences.STAGING_VIEW_SYNC_SELECTION, UIText.StagingView_LinkSelection) {

        @Override
        public void apply(boolean value) {
            reactOnSelection = value;
        }
    };
    linkSelectionAction.setImageDescriptor(UIIcons.ELCL16_SYNCED);
    toolbar.add(linkSelectionAction);
    toolbar.add(new Separator());
    switchRepositoriesAction = new RepositoryToolbarAction(false, () -> realRepository, repo -> {
        if (realRepository != repo) {
            reload(repo);
        }
    });
    toolbar.add(switchRepositoriesAction);
    compareModeAction = new Action(UIText.StagingView_CompareMode, IAction.AS_CHECK_BOX) {

        @Override
        public void run() {
            getPreferenceStore().setValue(UIPreferences.STAGING_VIEW_COMPARE_MODE, isChecked());
        }
    };
    compareModeAction.setImageDescriptor(UIIcons.ELCL16_COMPARE_VIEW);
    compareModeAction.setChecked(getPreferenceStore().getBoolean(UIPreferences.STAGING_VIEW_COMPARE_MODE));
    toolbar.add(compareModeAction);
    toolbar.add(new Separator());
    openNewCommitsAction = new Action(UIText.StagingView_OpenNewCommits, IAction.AS_CHECK_BOX) {

        @Override
        public void run() {
            getPreferenceStore().setValue(UIPreferences.STAGING_VIEW_SHOW_NEW_COMMITS, isChecked());
        }
    };
    openNewCommitsAction.setChecked(getPreferenceStore().getBoolean(UIPreferences.STAGING_VIEW_SHOW_NEW_COMMITS));
    columnLayoutAction = new Action(UIText.StagingView_ColumnLayout, IAction.AS_CHECK_BOX) {

        @Override
        public void run() {
            getPreferenceStore().setValue(UIPreferences.STAGING_VIEW_COLUMN_LAYOUT, isChecked());
            stagingSashForm.setOrientation(isChecked() ? SWT.HORIZONTAL : SWT.VERTICAL);
        }
    };
    columnLayoutAction.setChecked(getPreferenceStore().getBoolean(UIPreferences.STAGING_VIEW_COLUMN_LAYOUT));
    fileNameModeAction = new Action(UIText.StagingView_ShowFileNamesFirst, IAction.AS_CHECK_BOX) {

        @Override
        public void run() {
            final boolean enable = isChecked();
            getLabelProvider(stagedViewer).setFileNameMode(enable);
            getLabelProvider(unstagedViewer).setFileNameMode(enable);
            getContentProvider(stagedViewer).setFileNameMode(enable);
            getContentProvider(unstagedViewer).setFileNameMode(enable);
            StagingEntryComparator comparator = (StagingEntryComparator) unstagedViewer.getComparator();
            comparator.setFileNamesFirst(enable);
            comparator = (StagingEntryComparator) stagedViewer.getComparator();
            comparator.setFileNamesFirst(enable);
            getPreferenceStore().setValue(UIPreferences.STAGING_VIEW_FILENAME_MODE, enable);
            refreshViewersPreservingExpandedElements();
        }
    };
    fileNameModeAction.setChecked(getPreferenceStore().getBoolean(UIPreferences.STAGING_VIEW_FILENAME_MODE));
    IMenuManager dropdownMenu = actionBars.getMenuManager();
    MenuManager presentationMenu = new MenuManager(UIText.StagingView_Presentation);
    listPresentationAction = new Action(UIText.StagingView_List, IAction.AS_RADIO_BUTTON) {

        @Override
        public void run() {
            if (!isChecked()) {
                return;
            }
            switchToListMode();
            refreshViewers();
        }
    };
    listPresentationAction.setImageDescriptor(UIIcons.FLAT);
    presentationMenu.add(listPresentationAction);
    treePresentationAction = new Action(UIText.StagingView_Tree, IAction.AS_RADIO_BUTTON) {

        @Override
        public void run() {
            if (!isChecked()) {
                return;
            }
            presentation = Presentation.TREE;
            setPresentation(presentation, false);
            listPresentationAction.setChecked(false);
            compactTreePresentationAction.setChecked(false);
            setExpandCollapseActionsVisible(false, isExpandAllowed(false), true);
            setExpandCollapseActionsVisible(true, isExpandAllowed(true), true);
            refreshViewers();
        }
    };
    treePresentationAction.setImageDescriptor(UIIcons.HIERARCHY);
    presentationMenu.add(treePresentationAction);
    compactTreePresentationAction = new Action(UIText.StagingView_CompactTree, IAction.AS_RADIO_BUTTON) {

        @Override
        public void run() {
            if (!isChecked()) {
                return;
            }
            switchToCompactModeInternal(false);
            refreshViewers();
        }
    };
    compactTreePresentationAction.setImageDescriptor(UIIcons.COMPACT);
    presentationMenu.add(compactTreePresentationAction);
    presentation = readPresentation(UIPreferences.STAGING_VIEW_PRESENTATION, Presentation.LIST);
    switch(presentation) {
        case LIST:
            listPresentationAction.setChecked(true);
            setExpandCollapseActionsVisible(false, false, false);
            setExpandCollapseActionsVisible(true, false, false);
            break;
        case TREE:
            treePresentationAction.setChecked(true);
            break;
        case COMPACT_TREE:
            compactTreePresentationAction.setChecked(true);
            break;
        default:
            break;
    }
    dropdownMenu.add(presentationMenu);
    dropdownMenu.add(new Separator());
    dropdownMenu.add(openNewCommitsAction);
    dropdownMenu.add(columnLayoutAction);
    dropdownMenu.add(fileNameModeAction);
    dropdownMenu.add(compareModeAction);
    actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), new GlobalDeleteActionHandler());
    // For the normal resource undo/redo actions to be active, so that files
    // deleted via the "Delete" action in the staging view can be restored.
    IUndoContext workspaceContext = AdapterUtils.adapt(ResourcesPlugin.getWorkspace(), IUndoContext.class);
    undoRedoActionGroup = new UndoRedoActionGroup(getViewSite(), workspaceContext, true);
    undoRedoActionGroup.fillActionBars(actionBars);
    actionBars.updateActionBars();
}
Also used : RepositoryToolbarAction(org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction) SashForm(org.eclipse.swt.custom.SashForm) IWorkbenchPartSite(org.eclipse.ui.IWorkbenchPartSite) IWorkbenchWindow(org.eclipse.ui.IWorkbenchWindow) RepositoryState(org.eclipse.jgit.lib.RepositoryState) DiffViewer(org.eclipse.egit.ui.internal.commit.DiffViewer) Point(org.eclipse.swt.graphics.Point) Clipboard(org.eclipse.swt.dnd.Clipboard) DropTargetEvent(org.eclipse.swt.dnd.DropTargetEvent) PropertyChangeEvent(org.eclipse.jface.util.PropertyChangeEvent) Composite(org.eclipse.swt.widgets.Composite) Map(java.util.Map) ISelectionProvider(org.eclipse.jface.viewers.ISelectionProvider) MessageDialog(org.eclipse.jface.dialogs.MessageDialog) Cursor(org.eclipse.swt.graphics.Cursor) IEditorPart(org.eclipse.ui.IEditorPart) EnumSet(java.util.EnumSet) Nullable(org.eclipse.jgit.annotations.Nullable) AbortRebaseCommand(org.eclipse.egit.ui.internal.commands.shared.AbortRebaseCommand) JobFamilies(org.eclipse.egit.ui.JobFamilies) GitAPIException(org.eclipse.jgit.api.errors.GitAPIException) IEditorInput(org.eclipse.ui.IEditorInput) PlatformUI(org.eclipse.ui.PlatformUI) Constants(org.eclipse.jgit.lib.Constants) Transfer(org.eclipse.swt.dnd.Transfer) ILabelProvider(org.eclipse.jface.viewers.ILabelProvider) Window(org.eclipse.jface.window.Window) InstanceScope(org.eclipse.core.runtime.preferences.InstanceScope) Path(org.eclipse.core.runtime.Path) DragSourceAdapter(org.eclipse.swt.dnd.DragSourceAdapter) ResourcesPlugin(org.eclipse.core.resources.ResourcesPlugin) RevCommit(org.eclipse.jgit.revwalk.RevCommit) ControlListener(org.eclipse.swt.events.ControlListener) IFileEditorInput(org.eclipse.ui.IFileEditorInput) LinkedHashMap(java.util.LinkedHashMap) TreeExpansionEvent(org.eclipse.jface.viewers.TreeExpansionEvent) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) LaunchFinder(org.eclipse.egit.ui.internal.branch.LaunchFinder) CommitMessageArea(org.eclipse.egit.ui.internal.dialogs.CommitMessageArea) TextTransfer(org.eclipse.swt.dnd.TextTransfer) IPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener) ILabelDecorator(org.eclipse.jface.viewers.ILabelDecorator) Section(org.eclipse.ui.forms.widgets.Section) ControlContribution(org.eclipse.jface.action.ControlContribution) IPreferenceChangeListener(org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener) IMemento(org.eclipse.ui.IMemento) GridDataFactory(org.eclipse.jface.layout.GridDataFactory) IBaseLabelProvider(org.eclipse.jface.viewers.IBaseLabelProvider) IActionBars(org.eclipse.ui.IActionBars) ImageDescriptor(org.eclipse.jface.resource.ImageDescriptor) Form(org.eclipse.ui.forms.widgets.Form) ICommitMessageComponentNotifications(org.eclipse.egit.ui.internal.dialogs.ICommitMessageComponentNotifications) NoFilepatternException(org.eclipse.jgit.api.errors.NoFilepatternException) UntrackOperation(org.eclipse.egit.core.op.UntrackOperation) ModifyListener(org.eclipse.swt.events.ModifyListener) IPreferenceStore(org.eclipse.jface.preference.IPreferenceStore) DisposeEvent(org.eclipse.swt.events.DisposeEvent) IProblemDecoratable(org.eclipse.egit.ui.internal.decorators.IProblemDecoratable) PushMode(org.eclipse.egit.ui.internal.push.PushMode) DisposeListener(org.eclipse.swt.events.DisposeListener) MultiViewerSelectionProvider(org.eclipse.egit.ui.internal.selection.MultiViewerSelectionProvider) IAction(org.eclipse.jface.action.IAction) IToolBarManager(org.eclipse.jface.action.IToolBarManager) ILaunchConfiguration(org.eclipse.debug.core.ILaunchConfiguration) AddCommand(org.eclipse.jgit.api.AddCommand) RuleUtil(org.eclipse.egit.core.internal.job.RuleUtil) IStatus(org.eclipse.core.runtime.IStatus) ISelectionListener(org.eclipse.ui.ISelectionListener) ViewerComparator(org.eclipse.jface.viewers.ViewerComparator) IPartListener2(org.eclipse.ui.IPartListener2) UndoRedoActionGroup(org.eclipse.ui.operations.UndoRedoActionGroup) ModifyEvent(org.eclipse.swt.events.ModifyEvent) Button(org.eclipse.swt.widgets.Button) ActionUtils(org.eclipse.egit.ui.internal.ActionUtils) Collection(java.util.Collection) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) AssumeUnchangedOperation(org.eclipse.egit.core.op.AssumeUnchangedOperation) CommitProposalProcessor(org.eclipse.egit.ui.internal.commit.CommitProposalProcessor) GitLabels(org.eclipse.egit.ui.internal.GitLabels) ISelection(org.eclipse.jface.viewers.ISelection) TreeViewer(org.eclipse.jface.viewers.TreeViewer) IShowInTarget(org.eclipse.ui.part.IShowInTarget) UIIcons(org.eclipse.egit.ui.internal.UIIcons) DragSourceEvent(org.eclipse.swt.dnd.DragSourceEvent) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) Label(org.eclipse.swt.widgets.Label) OpenEvent(org.eclipse.jface.viewers.OpenEvent) ToggleableWarningLabel(org.eclipse.egit.ui.internal.components.ToggleableWarningLabel) Activator(org.eclipse.egit.ui.Activator) Image(org.eclipse.swt.graphics.Image) MessageFormat(java.text.MessageFormat) CommitOperation(org.eclipse.egit.core.op.CommitOperation) IPersistentPreferenceStore(org.eclipse.jface.preference.IPersistentPreferenceStore) HashSet(java.util.HashSet) ContinueRebaseCommand(org.eclipse.egit.ui.internal.commands.shared.ContinueRebaseCommand) IMarker(org.eclipse.core.resources.IMarker) JobChangeAdapter(org.eclipse.core.runtime.jobs.JobChangeAdapter) ContentViewer(org.eclipse.jface.viewers.ContentViewer) Action(org.eclipse.jface.action.Action) IgnoreOperationUI(org.eclipse.egit.ui.internal.operations.IgnoreOperationUI) CheckoutCommand(org.eclipse.jgit.api.CheckoutCommand) Consumer(java.util.function.Consumer) JGitInternalException(org.eclipse.jgit.api.errors.JGitInternalException) ToolBarManager(org.eclipse.jface.action.ToolBarManager) IContributionItem(org.eclipse.jface.action.IContributionItem) IWorkbenchSiteProgressService(org.eclipse.ui.progress.IWorkbenchSiteProgressService) LocalResourceManager(org.eclipse.jface.resource.LocalResourceManager) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Comparator(java.util.Comparator) SkipRebaseCommand(org.eclipse.egit.ui.internal.commands.shared.SkipRebaseCommand) AdapterUtils(org.eclipse.egit.core.AdapterUtils) UIPreferences(org.eclipse.egit.ui.UIPreferences) DialogSettings(org.eclipse.jface.dialogs.DialogSettings) DND(org.eclipse.swt.dnd.DND) CoreException(org.eclipse.core.runtime.CoreException) IDialogConstants(org.eclipse.jface.dialogs.IDialogConstants) FocusEvent(org.eclipse.swt.events.FocusEvent) ReplaceWithOursTheirsMenu(org.eclipse.egit.ui.internal.actions.ReplaceWithOursTheirsMenu) LocalSelectionTransfer(org.eclipse.jface.util.LocalSelectionTransfer) ResetCommand(org.eclipse.jgit.api.ResetCommand) Matcher(java.util.regex.Matcher) CommitHelper(org.eclipse.egit.ui.internal.commit.CommitHelper) PartInitException(org.eclipse.ui.PartInitException) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Separator(org.eclipse.jface.action.Separator) Text(org.eclipse.swt.widgets.Text) MenuManager(org.eclipse.jface.action.MenuManager) Set(java.util.Set) Status(org.eclipse.core.runtime.Status) DeletePathsOperationUI(org.eclipse.egit.ui.internal.operations.DeletePathsOperationUI) AbstractRebaseCommandHandler(org.eclipse.egit.ui.internal.commands.shared.AbstractRebaseCommandHandler) IJobChangeEvent(org.eclipse.core.runtime.jobs.IJobChangeEvent) GridLayoutFactory(org.eclipse.jface.layout.GridLayoutFactory) ListenerHandle(org.eclipse.jgit.events.ListenerHandle) CommitMessageComponentState(org.eclipse.egit.ui.internal.dialogs.CommitMessageComponentState) UIText(org.eclipse.egit.ui.internal.UIText) PreferenceChangeEvent(org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent) JobUtil(org.eclipse.egit.core.internal.job.JobUtil) ActionCommands(org.eclipse.egit.ui.internal.actions.ActionCommands) SWT(org.eclipse.swt.SWT) BooleanPrefAction(org.eclipse.egit.ui.internal.actions.BooleanPrefAction) RepositorySelectionProvider(org.eclipse.egit.ui.internal.selection.RepositorySelectionProvider) IWorkbenchPartReference(org.eclipse.ui.IWorkbenchPartReference) ViewPart(org.eclipse.ui.part.ViewPart) JFaceResources(org.eclipse.jface.resource.JFaceResources) AbstractTreeViewer(org.eclipse.jface.viewers.AbstractTreeViewer) WorkbenchJob(org.eclipse.ui.progress.WorkbenchJob) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) ArrayList(java.util.ArrayList) ControlEvent(org.eclipse.swt.events.ControlEvent) IContainer(org.eclipse.core.resources.IContainer) CommitMessageHistory(org.eclipse.egit.ui.internal.commit.CommitMessageHistory) IShowInSource(org.eclipse.ui.part.IShowInSource) ShowInContext(org.eclipse.ui.part.ShowInContext) IFile(org.eclipse.core.resources.IFile) GridData(org.eclipse.swt.layout.GridData) LinkedHashSet(java.util.LinkedHashSet) BaseLabelProvider(org.eclipse.jface.viewers.BaseLabelProvider) ViewerFilter(org.eclipse.jface.viewers.ViewerFilter) IViewSite(org.eclipse.ui.IViewSite) ExecutionException(org.eclipse.core.commands.ExecutionException) CommonUtils(org.eclipse.egit.ui.internal.CommonUtils) File(java.io.File) IURIEditorInput(org.eclipse.ui.IURIEditorInput) IMenuManager(org.eclipse.jface.action.IMenuManager) ActionFactory(org.eclipse.ui.actions.ActionFactory) RepositoryToolbarAction(org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction) IPartService(org.eclipse.ui.IPartService) Repository(org.eclipse.jgit.lib.Repository) GridLayout(org.eclipse.swt.layout.GridLayout) VerifyKeyListener(org.eclipse.swt.custom.VerifyKeyListener) IndexDiffData(org.eclipse.egit.core.internal.indexdiff.IndexDiffData) IndexDiffChangedListener(org.eclipse.egit.core.internal.indexdiff.IndexDiffChangedListener) IDialogSettings(org.eclipse.jface.dialogs.IDialogSettings) DropTargetAdapter(org.eclipse.swt.dnd.DropTargetAdapter) IPath(org.eclipse.core.runtime.IPath) IndexDiffCacheEntry(org.eclipse.egit.core.internal.indexdiff.IndexDiffCacheEntry) IWorkbenchAction(org.eclipse.ui.actions.ActionFactory.IWorkbenchAction) ITreeViewerListener(org.eclipse.jface.viewers.ITreeViewerListener) CommitMessageComponentStateManager(org.eclipse.egit.ui.internal.dialogs.CommitMessageComponentStateManager) Display(org.eclipse.swt.widgets.Display) IUndoContext(org.eclipse.core.commands.operations.IUndoContext) IHandlerService(org.eclipse.ui.handlers.IHandlerService) List(java.util.List) ILabelProviderListener(org.eclipse.jface.viewers.ILabelProviderListener) Tree(org.eclipse.swt.widgets.Tree) IFormColors(org.eclipse.ui.forms.IFormColors) CommitJob(org.eclipse.egit.ui.internal.commit.CommitJob) Pattern(java.util.regex.Pattern) IMenuListener(org.eclipse.jface.action.IMenuListener) RmCommand(org.eclipse.jgit.api.RmCommand) ExpandableComposite(org.eclipse.ui.forms.widgets.ExpandableComposite) ISelectionService(org.eclipse.ui.ISelectionService) RepositoryMapping(org.eclipse.egit.core.project.RepositoryMapping) RepositoryTreeNode(org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode) CommonUtils.runCommand(org.eclipse.egit.ui.internal.CommonUtils.runCommand) RepositoryUtil(org.eclipse.egit.core.RepositoryUtil) FocusListener(org.eclipse.swt.events.FocusListener) VerifyEvent(org.eclipse.swt.events.VerifyEvent) FileTransfer(org.eclipse.swt.dnd.FileTransfer) SpellcheckableMessageArea(org.eclipse.egit.ui.internal.dialogs.SpellcheckableMessageArea) Iterator(java.util.Iterator) Viewer(org.eclipse.jface.viewers.Viewer) Job(org.eclipse.core.runtime.jobs.Job) ProblemLabelDecorator(org.eclipse.egit.ui.internal.decorators.ProblemLabelDecorator) FormToolkit(org.eclipse.ui.forms.widgets.FormToolkit) DecoratingLabelProvider(org.eclipse.jface.viewers.DecoratingLabelProvider) TreeItem(org.eclipse.swt.widgets.TreeItem) ObjectId(org.eclipse.jgit.lib.ObjectId) RowLayout(org.eclipse.swt.layout.RowLayout) CommitMessageComponent(org.eclipse.egit.ui.internal.dialogs.CommitMessageComponent) IResource(org.eclipse.core.resources.IResource) GerritUtil(org.eclipse.egit.core.internal.gerrit.GerritUtil) UIUtils(org.eclipse.egit.ui.UIUtils) NonNull(org.eclipse.jgit.annotations.NonNull) Git(org.eclipse.jgit.api.Git) Collections(java.util.Collections) Control(org.eclipse.swt.widgets.Control) IAction(org.eclipse.jface.action.IAction) Action(org.eclipse.jface.action.Action) BooleanPrefAction(org.eclipse.egit.ui.internal.actions.BooleanPrefAction) RepositoryToolbarAction(org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction) IWorkbenchAction(org.eclipse.ui.actions.ActionFactory.IWorkbenchAction) Composite(org.eclipse.swt.widgets.Composite) ExpandableComposite(org.eclipse.ui.forms.widgets.ExpandableComposite) ModifyListener(org.eclipse.swt.events.ModifyListener) ControlContribution(org.eclipse.jface.action.ControlContribution) Text(org.eclipse.swt.widgets.Text) UIText(org.eclipse.egit.ui.internal.UIText) IUndoContext(org.eclipse.core.commands.operations.IUndoContext) GridLayout(org.eclipse.swt.layout.GridLayout) ModifyEvent(org.eclipse.swt.events.ModifyEvent) UndoRedoActionGroup(org.eclipse.ui.operations.UndoRedoActionGroup) IToolBarManager(org.eclipse.jface.action.IToolBarManager) GridData(org.eclipse.swt.layout.GridData) MenuManager(org.eclipse.jface.action.MenuManager) IMenuManager(org.eclipse.jface.action.IMenuManager) BooleanPrefAction(org.eclipse.egit.ui.internal.actions.BooleanPrefAction) IMenuManager(org.eclipse.jface.action.IMenuManager) IActionBars(org.eclipse.ui.IActionBars) Separator(org.eclipse.jface.action.Separator) Display(org.eclipse.swt.widgets.Display)

Example 3 with RepositoryToolbarAction

use of org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction in project egit by eclipse.

the class ReflogView method createPartControl.

@Override
public void createPartControl(Composite parent) {
    dateFormatter = PreferenceBasedDateFormatter.create();
    GridLayoutFactory.fillDefaults().applyTo(parent);
    toolkit = new FormToolkit(parent.getDisplay());
    parent.addDisposeListener(new DisposeListener() {

        @Override
        public void widgetDisposed(DisposeEvent e) {
            toolkit.dispose();
        }
    });
    form = toolkit.createForm(parent);
    Image repoImage = UIIcons.REPOSITORY.createImage();
    UIUtils.hookDisposal(form, repoImage);
    Image commitImage = UIIcons.CHANGESET.createImage();
    UIUtils.hookDisposal(form, commitImage);
    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) {
            if (element instanceof ReflogEntry) {
                final ReflogEntry entry = (ReflogEntry) element;
                return entry.getNewId().abbreviate(7).name();
            }
            return null;
        }

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

        @Override
        public Image getImage(Object element) {
            if (element instanceof ReflogEntry) {
                return commitImage;
            }
            return null;
        }
    });
    TreeViewerColumn commitMessageColumn = createColumn(layout, UIText.ReflogView_CommitMessageColumnHeader, 40, SWT.LEFT);
    commitMessageColumn.setLabelProvider(new ColumnLabelProvider() {

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

        private RevCommit getCommit(final ReflogEntry entry) {
            try (RevWalk walk = new RevWalk(getRepository())) {
                walk.setRetainBody(true);
                return walk.parseCommit(entry.getNewId());
            } catch (IOException ignored) {
                // ignore
                return null;
            }
        }
    });
    TreeViewerColumn dateColumn = createColumn(layout, UIText.ReflogView_DateColumnHeader, 15, SWT.LEFT);
    dateColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof ReflogEntry) {
                final ReflogEntry entry = (ReflogEntry) element;
                final PersonIdent who = entry.getWho();
                return dateFormatter.formatDate(who);
            }
            return null;
        }

        @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) {
            if (element instanceof ReflogEntry) {
                final ReflogEntry entry = (ReflogEntry) element;
                return entry.getComment();
            }
            return null;
        }

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

        @Override
        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;
            try (RevWalk walk = new RevWalk(repo)) {
                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);
            }
        }
    };
    uiPrefsListener = new IPropertyChangeListener() {

        @Override
        public void propertyChange(PropertyChangeEvent event) {
            String property = event.getProperty();
            if (UIPreferences.DATE_FORMAT.equals(property) || UIPreferences.DATE_FORMAT_CHOICE.equals(property)) {
                dateFormatter = PreferenceBasedDateFormatter.create();
                refLogTableTreeViewer.refresh();
            }
        }
    };
    Activator.getDefault().getPreferenceStore().addPropertyChangeListener(uiPrefsListener);
    selectionChangedListener = new ISelectionListener() {

        @Override
        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 = CommonUtils.getService(site, ISelectionService.class);
    service.addPostSelectionListener(selectionChangedListener);
    // Use current selection to populate reflog view
    UIUtils.notifySelectionChangedWithCurrentSelection(selectionChangedListener, site);
    site.setSelectionProvider(new RepositorySelectionProvider(refLogTableTreeViewer, () -> getRepository()));
    addRefsChangedListener = Repository.getGlobalListenerList().addRefsChangedListener(this);
    // Toolbar
    IToolBarManager toolbar = getViewSite().getActionBars().getToolBarManager();
    switchRepositoriesAction = new RepositoryToolbarAction(false, () -> getRepository(), repo -> reactOnSelection(new StructuredSelection(repo)));
    toolbar.add(switchRepositoriesAction);
    getViewSite().getActionBars().updateActionBars();
    // register context menu
    MenuManager menuManager = new MenuManager();
    menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
    Tree tree = refLogTableTreeViewer.getTree();
    tree.setMenu(menuManager.createContextMenu(tree));
    MenuManager resetManager = ResetMenu.createMenu(getSite());
    menuManager.add(resetManager);
    getSite().registerContextMenu(POPUP_MENU_ID, menuManager, refLogTableTreeViewer);
}
Also used : OpenAndLinkWithEditorHelper(org.eclipse.ui.OpenAndLinkWithEditorHelper) AdapterUtils(org.eclipse.egit.core.AdapterUtils) DisposeEvent(org.eclipse.swt.events.DisposeEvent) UIPreferences(org.eclipse.egit.ui.UIPreferences) IWorkbenchPartSite(org.eclipse.ui.IWorkbenchPartSite) ResourceManager(org.eclipse.jface.resource.ResourceManager) DisposeListener(org.eclipse.swt.events.DisposeListener) IToolBarManager(org.eclipse.jface.action.IToolBarManager) HyperlinkEvent(org.eclipse.ui.forms.events.HyperlinkEvent) CommitEditor(org.eclipse.egit.ui.internal.commit.CommitEditor) RepositoryState(org.eclipse.jgit.lib.RepositoryState) OpenAndLinkWithEditorHelper(org.eclipse.ui.OpenAndLinkWithEditorHelper) RevWalk(org.eclipse.jgit.revwalk.RevWalk) PropertyChangeEvent(org.eclipse.jface.util.PropertyChangeEvent) ISelectionListener(org.eclipse.ui.ISelectionListener) Composite(org.eclipse.swt.widgets.Composite) PreferenceBasedDateFormatter(org.eclipse.egit.ui.internal.PreferenceBasedDateFormatter) ColumnViewerToolTipSupport(org.eclipse.jface.viewers.ColumnViewerToolTipSupport) RepositoryCommit(org.eclipse.egit.ui.internal.commit.RepositoryCommit) IEditorPart(org.eclipse.ui.IEditorPart) IWorkbenchAction(org.eclipse.ui.actions.ActionFactory.IWorkbenchAction) IWorkbenchAdapter(org.eclipse.ui.model.IWorkbenchAdapter) TreeViewerColumn(org.eclipse.jface.viewers.TreeViewerColumn) TreeColumn(org.eclipse.swt.widgets.TreeColumn) RefsChangedListener(org.eclipse.jgit.events.RefsChangedListener) Separator(org.eclipse.jface.action.Separator) IEditorInput(org.eclipse.ui.IEditorInput) PlatformUI(org.eclipse.ui.PlatformUI) MenuManager(org.eclipse.jface.action.MenuManager) Constants(org.eclipse.jgit.lib.Constants) ColumnLabelProvider(org.eclipse.jface.viewers.ColumnLabelProvider) ResetMenu(org.eclipse.egit.ui.internal.actions.ResetMenu) GridLayoutFactory(org.eclipse.jface.layout.GridLayoutFactory) ListenerHandle(org.eclipse.jgit.events.ListenerHandle) OpenStrategy(org.eclipse.jface.util.OpenStrategy) PersonIdent(org.eclipse.jgit.lib.PersonIdent) Window(org.eclipse.jface.window.Window) UIText(org.eclipse.egit.ui.internal.UIText) ReflogInput(org.eclipse.egit.ui.internal.reflog.ReflogViewContentProvider.ReflogInput) Tree(org.eclipse.swt.widgets.Tree) IFormColors(org.eclipse.ui.forms.IFormColors) SWT(org.eclipse.swt.SWT) ISelection(org.eclipse.jface.viewers.ISelection) TreeViewer(org.eclipse.jface.viewers.TreeViewer) IShowInTarget(org.eclipse.ui.part.IShowInTarget) UIIcons(org.eclipse.egit.ui.internal.UIIcons) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) ISelectionService(org.eclipse.ui.ISelectionService) RepositoryMapping(org.eclipse.egit.core.project.RepositoryMapping) RepositoryTreeNode(org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode) RepositorySelectionProvider(org.eclipse.egit.ui.internal.selection.RepositorySelectionProvider) ViewPart(org.eclipse.ui.part.ViewPart) RevCommit(org.eclipse.jgit.revwalk.RevCommit) Activator(org.eclipse.egit.ui.Activator) Image(org.eclipse.swt.graphics.Image) JFaceResources(org.eclipse.jface.resource.JFaceResources) ImageHyperlink(org.eclipse.ui.forms.widgets.ImageHyperlink) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) IFileEditorInput(org.eclipse.ui.IFileEditorInput) FilteredTree(org.eclipse.ui.dialogs.FilteredTree) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) ShowInContext(org.eclipse.ui.part.ShowInContext) ReflogEntry(org.eclipse.jgit.lib.ReflogEntry) ColumnWeightData(org.eclipse.jface.viewers.ColumnWeightData) IPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener) IWorkbenchActionConstants(org.eclipse.ui.IWorkbenchActionConstants) ControlContribution(org.eclipse.jface.action.ControlContribution) GridDataFactory(org.eclipse.jface.layout.GridDataFactory) RefsChangedEvent(org.eclipse.jgit.events.RefsChangedEvent) FormToolkit(org.eclipse.ui.forms.widgets.FormToolkit) IOException(java.io.IOException) CommonUtils(org.eclipse.egit.ui.internal.CommonUtils) ObjectId(org.eclipse.jgit.lib.ObjectId) Form(org.eclipse.ui.forms.widgets.Form) RowLayout(org.eclipse.swt.layout.RowLayout) PatternFilter(org.eclipse.ui.dialogs.PatternFilter) IContextService(org.eclipse.ui.contexts.IContextService) IResource(org.eclipse.core.resources.IResource) UIUtils(org.eclipse.egit.ui.UIUtils) TreeColumnLayout(org.eclipse.jface.layout.TreeColumnLayout) RepositoryToolbarAction(org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction) LocalResourceManager(org.eclipse.jface.resource.LocalResourceManager) HyperlinkAdapter(org.eclipse.ui.forms.events.HyperlinkAdapter) Repository(org.eclipse.jgit.lib.Repository) Control(org.eclipse.swt.widgets.Control) GridLayout(org.eclipse.swt.layout.GridLayout) DisposeListener(org.eclipse.swt.events.DisposeListener) PatternFilter(org.eclipse.ui.dialogs.PatternFilter) FormToolkit(org.eclipse.ui.forms.widgets.FormToolkit) TreeColumnLayout(org.eclipse.jface.layout.TreeColumnLayout) LocalResourceManager(org.eclipse.jface.resource.LocalResourceManager) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) RepositorySelectionProvider(org.eclipse.egit.ui.internal.selection.RepositorySelectionProvider) FilteredTree(org.eclipse.ui.dialogs.FilteredTree) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) DisposeEvent(org.eclipse.swt.events.DisposeEvent) Image(org.eclipse.swt.graphics.Image) ISelectionListener(org.eclipse.ui.ISelectionListener) IWorkbenchPartSite(org.eclipse.ui.IWorkbenchPartSite) ColumnLabelProvider(org.eclipse.jface.viewers.ColumnLabelProvider) GridLayout(org.eclipse.swt.layout.GridLayout) ReflogEntry(org.eclipse.jgit.lib.ReflogEntry) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) IFileEditorInput(org.eclipse.ui.IFileEditorInput) ISelection(org.eclipse.jface.viewers.ISelection) ISelectionService(org.eclipse.ui.ISelectionService) Tree(org.eclipse.swt.widgets.Tree) FilteredTree(org.eclipse.ui.dialogs.FilteredTree) RevCommit(org.eclipse.jgit.revwalk.RevCommit) IPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener) RepositoryToolbarAction(org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction) PropertyChangeEvent(org.eclipse.jface.util.PropertyChangeEvent) Composite(org.eclipse.swt.widgets.Composite) ObjectId(org.eclipse.jgit.lib.ObjectId) IOException(java.io.IOException) ResourceManager(org.eclipse.jface.resource.ResourceManager) LocalResourceManager(org.eclipse.jface.resource.LocalResourceManager) IEditorPart(org.eclipse.ui.IEditorPart) RevWalk(org.eclipse.jgit.revwalk.RevWalk) RepositoryCommit(org.eclipse.egit.ui.internal.commit.RepositoryCommit) TreeViewerColumn(org.eclipse.jface.viewers.TreeViewerColumn) Repository(org.eclipse.jgit.lib.Repository) PersonIdent(org.eclipse.jgit.lib.PersonIdent) IToolBarManager(org.eclipse.jface.action.IToolBarManager) IWorkbenchAdapter(org.eclipse.ui.model.IWorkbenchAdapter) MenuManager(org.eclipse.jface.action.MenuManager) IEditorInput(org.eclipse.ui.IEditorInput) Separator(org.eclipse.jface.action.Separator)

Aggregations

IResource (org.eclipse.core.resources.IResource)3 AdapterUtils (org.eclipse.egit.core.AdapterUtils)3 RepositoryMapping (org.eclipse.egit.core.project.RepositoryMapping)3 Activator (org.eclipse.egit.ui.Activator)3 UIPreferences (org.eclipse.egit.ui.UIPreferences)3 UIUtils (org.eclipse.egit.ui.UIUtils)3 CommonUtils (org.eclipse.egit.ui.internal.CommonUtils)3 UIIcons (org.eclipse.egit.ui.internal.UIIcons)3 UIText (org.eclipse.egit.ui.internal.UIText)3 RepositoryToolbarAction (org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction)3 RepositoryTreeNode (org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode)3 RepositorySelectionProvider (org.eclipse.egit.ui.internal.selection.RepositorySelectionProvider)3 IToolBarManager (org.eclipse.jface.action.IToolBarManager)3 MenuManager (org.eclipse.jface.action.MenuManager)3 Separator (org.eclipse.jface.action.Separator)3 ControlContribution (org.eclipse.jface.action.ControlContribution)2 GridDataFactory (org.eclipse.jface.layout.GridDataFactory)2 GridLayoutFactory (org.eclipse.jface.layout.GridLayoutFactory)2 JFaceResources (org.eclipse.jface.resource.JFaceResources)2 LocalResourceManager (org.eclipse.jface.resource.LocalResourceManager)2