Nur benutzerdefinierte Stempel

Hallo @PhilipvP, nach einer internen Diskussion mit @lg habe ich folgende Teillösung nachträglich anzubieten:

Mit dem folgenden Mini-Interceptor wird die Liste vollständig geleert, der Button bleibt aber erhalten. Durch das Ausblenden aller Einträge ist aber zumindest der erste benutzerdefinierte Stempel derjenige, der vorausgewählt ist. Der Interceptor:

var noDefaultStamps = {
    updateEditorConfiguration: async (instance, info, config) => {
        const { documentViewer } = instance.Core;
        const tool = documentViewer.getTool('AnnotationCreateRubberStamp');
        tool.setStandardStamps([]);
    }
}

window.ed.registerInterceptor(noDefaultStamps);

Dies lässt sich auch so nutzen, dass nur manche der Standardstempel angezeigt werden:

var someDefaultStamps = {
    updateEditorConfiguration: async (instance, info, config) => {
        const { documentViewer } = instance.Core;
        const tool = documentViewer.getTool('AnnotationCreateRubberStamp');
        tool.setStandardStamps([
            // "Approved",
            // "AsIs",
            // "Completed",
            // "Confidential",
            // "Departmental",
            // "Draft",
            // "Experimental",
            // "Expired",
            "Final",
            // "ForComment",
            // "ForPublicRelease",
            // "InformationOnly",
            // "NotApproved",
            // "NotForPublicRelease",
            // "PreliminaryResults",
            // "Sold",
            // "TopSecret",
            // "Void",
            // "SHSignHere",
            // "SHWitness",
            // "SHInitialHere",
            // "SHAccepted",
            // "SBRejected"
        ]);
    }
}

window.ed.registerInterceptor(someDefaultStamps);

Letzten Endes können dort auch ganz eigene Stempel abgelegt werden (sofern es sich um einfache Bilder handelt):

Dazu habe ich den Stempel „ecmcommunity.png“ neben den Interceptor gelegt und diesen so angepasst:

var customStamps = {
    updateEditorConfiguration: async (instance, info, config) => {
        const { documentViewer } = instance.Core;
        const tool = documentViewer.getTool('AnnotationCreateRubberStamp');
        tool.setStandardStamps([
            '/ed/interceptors/ecmcommunity.png'
        ]);
    }
}

window.ed.registerInterceptor(customStamps);

Hinweis: Natürlich wäre es denkbar, einen beliebig mächtigen Web-Service zu bauen, welcher Stempel als Bilder.

1 „Gefällt mir“