private void setPrologInterface(PrologInterface newPif, boolean updateActivePif) { if (currentPif == newPif) { return; } if (currentPif != null) { viewerStates.put(currentPif, viewer.saveState()); } currentPif = newPif; if (currentPif != null) { addHooks(currentPif); try { connect(currentPif); } catch (PrologInterfaceException e) { Debug.report(e); } reconfigureViewer(currentPif); getDefaultPrologConsoleService().fireActivePrologInterfaceChanged(this); if (updateActivePif) { PrologRuntimeUIPlugin.getDefault() .getPrologInterfaceService() .setActivePrologInterface(currentPif); } } else { Debug.debug("no pif (yet)."); } if (automatedSelector != null) { automatedSelector.update(); } writeCurrentProcessPortToFile(); }
public PrologInterface activateNewPrologProcess( PrologInterfaceRegistry registry, String pifKey, String configuration) { DefaultSubscription subscription = new DefaultSubscription( pifKey + "_indepent", pifKey, "Independent prolog process", "Prolog"); registry.addSubscription(subscription); PrologInterface pif = PrologRuntimeUIPlugin.getDefault().getPrologInterface(subscription, configuration); if (automatedSelector.getActiveTrackers().isEmpty()) { setPrologInterface(pif); automatedSelector.setImageDescriptor( ImageRepository.getImageDescriptor(ImageRepository.MANUAL_MODE)); } return pif; }
private void reconfigureViewer(final PrologInterface pif) { if (Display.getCurrent() != viewer.getControl().getDisplay()) { viewer .getControl() .getDisplay() .asyncExec( new Runnable() { @Override public void run() { reconfigureViewer(pif); } }); return; } if (pif == null) { viewer.setModel(null); viewer.setHistory(null); viewer.setCompletionProvider(null); title.setText("no console available(yet)."); return; } ConsoleViewer.SavedState savedState = viewerStates.get(pif); if (savedState == null) { viewer.clearOutput(); viewer.setModel(models.get(pif)); PrologCompletionProvider completionProvider = new PrologCompletionProvider(); completionProvider.setPrologInterface(pif); viewer.setCompletionProvider(completionProvider); ConsoleHistory history = new ConsoleHistory(); viewer.setHistory(history); loadHistory(history); } else { viewer.loadState(savedState); } PrologInterfaceRegistry reg = PrologRuntimePlugin.getDefault().getPrologInterfaceRegistry(); String key = reg.getKey(pif); title.setText(SelectContextPIFAutomatedAction.getLabelForPif(key, reg)); // Object configuration = pif.getAttribute(PrologRuntimeUI.CONFIGURATION_ATTRIBUTE); // if (configuration == null) { // title.setText(key); // } else { // title.setText(key + " (" + configuration.toString().replaceAll("&", "&&") + ")"); // } viewer.setEnterSendsSemicolon(false); }
private void initToolBars() { IActionBars bars = this.getViewSite().getActionBars(); bars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), selectAllAction); bars.setGlobalActionHandler(ActionFactory.CUT.getId(), cutAction); bars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction); bars.setGlobalActionHandler(ActionFactory.PASTE.getId(), pasteAction); IToolBarManager toolBarManager = bars.getToolBarManager(); addToolbarContributions(toolBarManager); addMenuContributions(bars.getMenuManager()); // pifSelector.init(getViewSite().getWorkbenchWindow()); automatedSelector.init(getViewSite().getWorkbenchWindow()); }
private void createAutomatedSelector(IToolBarManager toolBarManager) { automatedSelector = new SelectContextPIFAutomatedAction() { @Override protected PrologInterface getPrologInterface() { return PrologConsoleView.this.getPrologInterface(); } @Override protected void setPrologInterface(PrologInterface prologInterface) { PrologConsoleView.this.setPrologInterface(prologInterface); } @Override protected void trackerActivated(PrologContextTracker tracker) { setPrologInterface(automatedSelector.getCurrentPrologInterface()); } @Override protected void trackerDeactivated(PrologContextTracker tracker) { setPrologInterface(automatedSelector.getCurrentPrologInterface()); } @Override public void contextChanged(PrologContextTrackerEvent e) { PrologContextTracker tracker = (PrologContextTracker) e.getSource(); Debug.info("context changed for tracker " + tracker.getLabel()); setPrologInterface(e.getPrologInterface()); } }; toolBarManager.add(automatedSelector); // pifSelector = new SelectPifAction() { // // protected void setPrologInterface(PrologInterface prologInterface) { // PrologConsoleView.this.setPrologInterface(prologInterface); // // } // // protected PrologInterface getPrologInterface() { // return PrologConsoleView.this.getPrologInterface(); // } // // }; // toolBarManager.add(pifSelector); // contextSelector = new SelectContextsAction() { // // public void contextChanged(PrologContextTrackerEvent e) { // PrologContextTracker tracker = (PrologContextTracker) e // .getSource(); // Debug.info("context changed for tracker " + tracker.getLabel()); // setPrologInterface(e.getPrologInterface()); // // } // // protected void trackerActivated(PrologContextTracker tracker) { // setPrologInterface(contextSelector.getCurrentPrologInterface()); // // } // // protected void trackerDeactivated(PrologContextTracker tracker) { // setPrologInterface(contextSelector.getCurrentPrologInterface()); // // } // }; // toolBarManager.add(contextSelector); // setPrologInterface(contextSelector.getCurrentPrologInterface()); setPrologInterface( PrologRuntimeUIPlugin.getDefault().getPrologInterfaceService().getActivePrologInterface()); automatedSelector.setImageDescriptor( ImageRepository.getImageDescriptor(ImageRepository.MANUAL_MODE)); }