Annotations-Toolbar: Einbinden eines Commands zum Beenden des Annotations-Erstellmodus
Beispiel zum Einfügen eines Commands zum Beenden des Annotations-Erstellmodus in die Annotations-Toolbar.
Die Commands für das Anlegen von Annotationen werden in der com.levigo.jadice.appbase.AnnotationProfileAwareToolBar-Klasse aus dem Annotationsprofil erstellt, hier hat man die Möglichkeit ein weiteres Command zum Beenden des Annotations-Erstellmodus einzufügen. Die AnnotationProfileAwareToolBar-Implementation muss angepasst werden, der Quellcode ist in der lib/appbase/jadice-appbase-x.x.x.x-sources.jar Datei unter com/levigo/jadice/appbase/AnnotationProfileAwareToolBar.java zu finden. Hier muss das zusätzliche Command in der Methode populateComponent(...) Methode am Anfang eingefügt werden, z.B.:
private boolean stopAnnoCreationCmdAdded = false; private void populateComponent(final TypeSet typeSet, JComponent componentToPopulate) { if (!stopAnnoCreationCmdAdded) { final AbstractDocumentCommand cmdStopAnnoCreation = new AbstractDocumentCommand() { @Override protected void execute() { getPageView().getToolManager().getTool(AnnotationTool.class).setEditMode(); } @Override protected boolean canExecute() { return getPageView().getToolManager().getTool(AnnotationTool.class).getCreateMode() != null; } }; final Icon iconStopAnnoCreation = UIManager.getIcon("Jadice.icons.TB_NORMAL"); final CommandAction cmdActionStopAnnoCreation = new CommandAction(// context, // context Arrays.<Command> asList(cmdStopAnnoCreation), // command "",// "",// "Annotation erstellen beenden",// null, // long description; not used. iconStopAnnoCreation, // iconStopAnnoCreation, // "",// null, // accelerator key 0, // mnemonic key null // other options ); addActionToComponent(componentToPopulate, cmdActionStopAnnoCreation); // Auf 'true' setzen, damit das Command nur einmal hinzugefügt wird stopAnnoCreationCmdAdded = true; } ... }
In der Annotationstoolbar erscheint oben nun ein zusätzliches Icon.
Das Einbinden der angepassten Toolbar-Implementation kann man im Code der BasicJadicePanel-Klasse sehen, siehe com/levigo/jadice/demo/BasicJadicePanel.java, Methode createJadiceAnnotationToolbar():
protected JToolBar createJadiceAnnotationToolbar() { return annoTools = new MyAnnotationProfileAwareToolBar(getPageView(), getContext()); }