/*=============================================================================#
# Copyright (c) 2005-2016 Stephan Wahlbrink (WalWare.de) and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
# Stephan Wahlbrink - initial API and implementation
#=============================================================================*/
package de.walware.statet.r.console.ui;
import org.eclipse.ui.console.IConsoleView;
import org.eclipse.ui.part.IPageBookViewPage;
import de.walware.ecommons.preferences.core.IPreferenceAccess;
import de.walware.statet.nico.core.NicoCore;
import de.walware.statet.nico.ui.console.NIConsole;
import de.walware.statet.nico.ui.console.NIConsoleColorAdapter;
import de.walware.statet.r.console.core.RProcess;
import de.walware.statet.r.core.IRCoreAccess;
import de.walware.statet.r.core.RCodeStyleSettings;
import de.walware.statet.r.core.RCore;
import de.walware.statet.r.core.renv.IREnv;
import de.walware.statet.r.internal.console.ui.page.RConsolePage;
import de.walware.statet.r.launching.ui.RErrorLineTracker;
public class RConsole extends NIConsole implements IRCoreAccess {
private final IPreferenceAccess prefs;
public RConsole(final RProcess process, final NIConsoleColorAdapter adapter) {
super(process, adapter);
final RErrorLineTracker lineMatcher= new RErrorLineTracker(process);
addPatternMatchListener(lineMatcher);
this.prefs= NicoCore.getInstanceConsolePreferences();
}
@Override
public IPageBookViewPage createPage(final IConsoleView view) {
return new RConsolePage(this, view);
}
@Override
protected String getSymbolicFontName() {
return "de.walware.workbench.themes.ConsoleFont"; //$NON-NLS-1$
}
@Override
public IPreferenceAccess getPrefs() {
return this.prefs;
}
@Override
public IREnv getREnv() {
return (IREnv) getProcess().getAdapter(IREnv.class);
}
@Override
public RCodeStyleSettings getRCodeStyle() {
return RCore.WORKBENCH_ACCESS.getRCodeStyle();
}
}