Page 1 of 1

Kontextmenü Befehl hinzufügen

PostPosted: 2016-08-16 18:20
by jay-squared
Liebes Citavi-Team,

ich wollte dem Kontextmenü der EntityLinks eines Titels einen Befehl hinzufügen, welcher die erste verknüpfte Location des EntityLinks aufruft. Der Befehl als solches ist kein Problem, das kriege ich hin, aber ich sehe noch nicht ganz, wie ich dem Kontextmenü was hinzufügen kann. Das Ganze wird auf dem Screenshot ersichtlich. Statt des schicken roten Xs in der Toolbar (also das ganz rechts, nicht das, was eh schon da ist) würde ich gerne einen Befehl in das Kontextmenü einfügen (am liebsten an dritter Stelle, am allerliebsten mit eigenem Keyboard-Combo Strg+Shift+Enter), weiß aber nicht wie.

Capture.PNG


Hier ist mein Versuch, der damit endet, dass der Befehl in der Toolbar landet:

Code: Select all
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using SwissAcademic.Citavi;
using SwissAcademic.Citavi.Shell;

namespace BornheimsToolbox
{
    class CrossReferenceOpen
        :
        CitaviAddOn
    {
        public override AddOnHostingForm HostingForm
        {
            get { return AddOnHostingForm.MainForm; }
        }

        protected override void OnHostingFormLoaded(System.Windows.Forms.Form hostingForm)
        {
            MainForm mainForm = (MainForm)hostingForm;

            if (mainForm.ActiveWorkspace == MainFormWorkspace.ReferenceEditor)
            {
                var buttonOne = mainForm.GetReferenceEditorSourceEntityLinksCommandbarManager().GetCommandbar(MainFormReferenceEditorSourceEntityLinksCommandbarId.Toolbar).AddCommandbarButton("CrossReferenceOpen", "Open the First Location Attached to this Reference");

                var buttonTwo = mainForm.GetReferenceEditorTargetEntityLinksCommandbarManager().GetCommandbar(MainFormReferenceEditorTargetEntityLinksCommandbarId.Toolbar).AddCommandbarButton("CrossReferenceOpen", "Open the First Location Attached to this Reference");

                base.OnHostingFormLoaded(hostingForm);
            }
        }

        protected override void OnBeforePerformingCommand(SwissAcademic.Controls.BeforePerformingCommandEventArgs e)
        {
            switch (e.Key)
            {
                case "CrossReferenceOpen":
                    {
                        e.Handled = true;

                        var crossReferenceOpener = new CrossReferenceOpener();
                        bool handled;
                        var mainForm = (MainForm)e.Form;

                        crossReferenceOpener.CrossReferenceOpen();
                    }
                    break;
            }
            base.OnBeforePerformingCommand(e);
        }
    }
}


Beste Grüße und vielen Dank
JJ

Re: Kontextmenü Befehl hinzufügen

PostPosted: 2016-08-17 12:34
by Peter Meurer
Lieber JJ

Ich muss hier auf meine Antwort auf dieses Posting verweisen. Evt. liest "Lutze" mit und kann Ihnen einen Tipp geben - das fände ich für alle Seiten prima.

Freundliche Grüsse
Peter

Re: Kontextmenü Befehl hinzufügen

PostPosted: 2016-09-12 17:16
by lutzeslife
Hallo,

Ist das Problem noch aktuell?

Gruß

Daniel

Re: Kontextmenü Befehl hinzufügen

PostPosted: 2016-09-13 18:03
by lutzeslife
Frage wurde geklärt!