private void registerCommandListener() {
   cmListener =
       new ICommandManagerListener() {
         @SuppressWarnings("restriction")
         @Override
         public void commandManagerChanged(CommandManagerEvent commandManagerEvent) {
           if (commandManagerEvent.isCommandChanged()) {
             if (commandManagerEvent.isCommandDefined()) {
               final String commandId = commandManagerEvent.getCommandId();
               if (findCommand(commandId) != null) {
                 return;
               }
               final Command command =
                   commandManagerEvent.getCommandManager().getCommand(commandId);
               if (command.getHandler() == null) {
                 command.setHandler(HandlerServiceImpl.getHandler(commandId));
               }
               try {
                 MCategory categoryModel = findCategory(command.getCategory().getId());
                 final MCommand createdCommand =
                     createCommand(command, modelService, categoryModel);
                 application.getCommands().add(createdCommand);
               } catch (NotDefinedException e) {
                 Activator.getDefault()
                     .getLogService()
                     .log(0, "Failed to create command " + commandId, e); // $NON-NLS-1$
               }
             }
           }
         }
       };
   commandManager.addCommandManagerListener(cmListener);
 }