Example #1
0
  /*
   * (non-Javadoc)
   *
   * @see org.eclipse.ui.INestableKeyBindingService#removeKeyBindingService(org.eclipse.ui.IWorkbenchSite)
   */
  public boolean removeKeyBindingService(IWorkbenchSite nestedSite) {
    if (disposed) {
      return false;
    }

    final IKeyBindingService service = (IKeyBindingService) nestedServices.remove(nestedSite);
    if (service == null) {
      return false;
    }

    if (service.equals(activeService)) {
      deactivateNestedService();
    }

    return true;
  }
Example #2
0
  public String[] getScopes() {
    if (disposed) {
      return null;
    }

    // Get the nested scopes, if any.
    final String[] nestedScopes;
    if (activeService == null) {
      nestedScopes = null;
    } else {
      nestedScopes = activeService.getScopes();
    }

    // Build the list of active scopes
    final Set activeScopes = new HashSet();
    activeScopes.addAll(enabledContextIds);
    if (nestedScopes != null) {
      for (int i = 0; i < nestedScopes.length; i++) {
        activeScopes.add(nestedScopes[i]);
      }
    }

    return (String[]) activeScopes.toArray(new String[activeScopes.size()]);
  }
Example #3
0
  private void createActions() {
    cutAction =
        new Action() {
          @Override
          public void run() {
            viewer.cut();
          }
        };

    copyAction =
        new Action() {
          @Override
          public void run() {
            viewer.copy();
          }
        };
    pasteAction =
        new Action() {
          @Override
          public void run() {
            viewer.paste();
          }
        };
    selectAllAction =
        new Action() {
          @Override
          public void run() {
            viewer.selectAll();
          }
        };
    clearAction =
        new ClearAction(
            "Clear",
            "Clear console output",
            ImageRepository.getImageDescriptor(ImageRepository.CLEAR));
    searchAction =
        new Action("Open Search Dialog") {
          @Override
          public void run() {
            NewSearchUI.openSearchDialog(
                getSite().getWorkbenchWindow(), PrologSearchPage.EXTENSION_POINT_ID);
          }
        };
    //		guiTracerAction = new GuiTracerAction(new String[] {"guitracer", "noguitracer"},
    //				new String[] {"activate guitracer", "deactivate guitracer"},
    //				new String[] {"activate GUI tracer", "deactivate GUI tracer"},
    //				new ImageDescriptor[] {
    //				ImageRepository.getImageDescriptor(ImageRepository.GUITRACER),
    //				ImageRepository.getImageDescriptor(ImageRepository.NOGUITRACER)});
    activateGuiTracerAction =
        new ConsoleQueryAction(
            "Activate GUI tracer",
            ImageRepository.getImageDescriptor(ImageRepository.GUITRACER),
            "guitracer");
    deactivateGuiTracerAction =
        new ConsoleQueryAction(
            "Deactivate GUI tracer",
            ImageRepository.getImageDescriptor(ImageRepository.NOGUITRACER),
            "noguitracer");
    threadMonitorAction =
        new ConsoleQueryAction(
            "Show SWI thread monitor",
            ImageRepository.getImageDescriptor(ImageRepository.THREAD_MONITOR),
            "user:prolog_ide(thread_monitor)");
    debugMonitorAction =
        new ConsoleQueryAction(
            "Show SWI debug message monitor",
            ImageRepository.getImageDescriptor(ImageRepository.DEBUG_MONITOR),
            "user:prolog_ide(debug_monitor)");
    abortAction =
        new PifQueryAction(
            "Abort running query",
            ImageRepository.getImageDescriptor(ImageRepository.ABORT),
            bT(PDTConsolePredicates.CONSOLE_THREAD_NAME, "ID")
                + ", catch(thread_signal(ID, abort),_,fail)") {
          @Override
          public void run() {
            super.run();
            if (!getModel().isConnected()) {
              new Thread(
                      new Runnable() {
                        @Override
                        public void run() {
                          try {
                            Thread.sleep(500);
                          } catch (InterruptedException e) {
                          }
                          try {
                            connect(currentPif);
                          } catch (PrologInterfaceException e) {
                          }
                        }
                      })
                  .start();
            }
          }
        };
    traceAction =
        new PifQueryAction(
            "Interrupt running query and start tracing",
            ImageRepository.getImageDescriptor(ImageRepository.TRACE),
            bT(PDTConsolePredicates.CONSOLE_THREAD_NAME, "ID")
                + ", catch(thread_signal(ID, trace),_,fail)");

    pasteFileNameAction =
        new PasteAction(
            "Paste filename",
            "Paste the name of the current editor file",
            ImageRepository.getImageDescriptor(ImageRepository.PASTE_FILENAME)) {

          @Override
          protected String getTextToInsert() {
            String fileName = UIUtils.getFileFromActiveEditor();
            if (fileName == null) {
              return null;
            }
            return Util.quoteAtom(Util.prologFileName(new File(fileName)));
          }
        };
    pasteFileNameAction.setActionDefinitionId(PDTConsole.COMMAND_PASTE_FILENAME);

    IKeyBindingService keyBindingService = getSite().getKeyBindingService();
    keyBindingService.setScopes(new String[] {PDTConsole.CONTEXT_USING_CONSOLE_VIEW});
    keyBindingService.registerAction(pasteFileNameAction);
    restartAction = new RestartAction();
    killAction = new KillAction();
    genLoadFileAction = new GenLoadFileAction();
    createProcessAction = new CreateNamedProcessAction();
    helpAction =
        new Action(
            "SWI-Prolog Documentation", ImageRepository.getImageDescriptor(ImageRepository.HELP)) {
          @Override
          public void run() {
            try {
              PlatformUI.getWorkbench()
                  .getBrowserSupport()
                  .getExternalBrowser()
                  .openURL(new URL("http://www.swi-prolog.org/pldoc/index.html"));
            } catch (Exception e) {
            }
          }
        };

    configAction =
        new Action(
            "Console preferences",
            ImageRepository.getImageDescriptor(ImageRepository.PREFERENCES)) {
          @Override
          public void run() {
            PreferenceManager mgr = new PreferenceManager();

            IPreferencePage page = new PreferencePageMain();
            page.setTitle("PDT Console");

            IPreferenceNode node = new PreferenceNode("PreferencePage", page);
            mgr.addToRoot(node);

            PreferenceDialog dialog = new PreferenceDialog(getSite().getShell(), mgr);
            dialog.create();
            dialog.setMessage(page.getTitle());
            dialog.open();
          }
        };
  }