Home
Categories
Dictionary
Download
Project Details
Changes Log
FAQ
License

ScriptLoggerHyperLinkListener



The ScriptLogger is an interface which logs informations and errors during the script execution. Some of these methods allow to show hyperlinked content.

To be notified when an hyperlink is visited, you must register a ScriptLoggerHyperLinkListener with the ScriptLogger.registerHyperLinkListener(ScriptLoggerHyperLinkListener).

Overview

The method called for a visited link notification depends on if a LinkIndexConverter has been registered or not:
You don't need to implement both of the methods of the ScriptLoggerHyperLinkListener interface. Both of the methods have a default empty implementation.

No LinkIndexConverter

visithyperlink
The ScriptLoggerHyperLinkListener.visitHyperlink(String) method will be called.

Note that in this case it is the responsability of the ScriptLoggerHyperLinkListener to decode the link ID provided as an argument to detect which element the link represents.


For example:
      public class MyLoggerHyperLinkListener implements ScriptLoggerHyperLinkListener {
         @Override
         public void visitHyperLink(String linkID) {
           // get the associated elemet from the linkID and do something with it
         }      
      }

With a LinkIndexConverter

Main Article: LinkIndexConverter


visitobjecthyperlink
The ScriptLoggerHyperLinkListener.visitHyperlink(Object) method will be called.

If the LinkIndexConverter has not been able to convert the link ID (the returned result is null), then an error message will be shown.


For example:
      public class MyLoggerHyperLinkListener implements ScriptLoggerHyperLinkListener<TreeElement> {
         @Override
         public void visitHyperLink(TreeElement element) {
           // do something with the tree element
         }      
      }
Note that you are not required to specify the type of the Object used for the ScriptLoggerHyperLinkListener, If you don't do it, you will have this method to implement:
      public class MyLoggerHyperLinkListener implements ScriptLoggerHyperLinkListener {
         @Override
         public void visitHyperLink(Object o) {
           // do something with the Object
         }      
      }

Example

      GroovyScriptWrapper<Script> wrapper = new GroovyScriptWrapper<Script>() {
      };   
      ScriptLogger logger = new DefaultSwingScriptLogger();
      LinkIndexConverter converter = new MyLinkIndexConverter();;
      logger.registerLinkIndexConverter(converter);        
       
      ScriptLoggerHyperLinkListener linkListener = new MyLoggerHyperLinkListener();      
      logger.registerHyperLinkListener(linkListener);
      
      wrapper.setScriptLogger(logger);
With the following HyperLinkListener:
      public class MyLoggerHyperLinkListener implements ScriptLoggerHyperLinkListener<TreeElement> {
         @Override
         public void visitHyperLink(TreeElement element) {
           // do something with the tree element
         }      
      }

See also


Categories: api

Copyright 2019-2020 Herve Girod. All Rights Reserved. Documentation and source under the BSD licence