blob: 4f46433500ee94a3e9fa472c633a5f2dd35dd7fa [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.uima.ruta.ide.ui;
import org.apache.uima.ruta.ide.RutaIdeUIPlugin;
import org.apache.uima.ruta.ide.core.RutaConstants;
import org.apache.uima.ruta.ide.core.RutaLanguageToolkit;
import org.apache.uima.ruta.ide.core.parser.RutaParseUtils;
import org.apache.uima.ruta.ide.parser.ast.RutaTypeConstants;
import org.apache.uima.ruta.ide.ui.editor.RutaEditor;
import org.apache.uima.ruta.ide.ui.text.SimpleRutaSourceViewerConfiguration;
import org.eclipse.dltk.core.IDLTKLanguageToolkit;
import org.eclipse.dltk.core.IField;
import org.eclipse.dltk.core.IScriptFolder;
import org.eclipse.dltk.core.ISourceModule;
import org.eclipse.dltk.ui.AbstractDLTKUILanguageToolkit;
import org.eclipse.dltk.ui.IDLTKUILanguageToolkit;
import org.eclipse.dltk.ui.ScriptElementLabels;
import org.eclipse.dltk.ui.text.ScriptSourceViewerConfiguration;
import org.eclipse.dltk.ui.text.ScriptTextTools;
import org.eclipse.dltk.ui.viewsupport.ScriptUILabelProvider;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.preference.IPreferenceStore;
public class RutaUILanguageToolkit extends AbstractDLTKUILanguageToolkit {
private static RutaUILanguageToolkit toolkit = null;
public static IDLTKUILanguageToolkit getInstance() {
if (toolkit == null) {
toolkit = new RutaUILanguageToolkit();
}
return toolkit;
}
private static ScriptElementLabels sInstance = new ScriptElementLabels() {
@Override
protected void getScriptFolderLabel(IScriptFolder folder, StringBuffer buf) {
String name = folder.getElementName();
name = name.replace(IScriptFolder.PACKAGE_DELIMITER, '.');
buf.append(name);
}
@Override
protected void getFieldLabel(IField field, long flags, StringBuffer buf) {
super.getFieldLabel(field, flags, buf);
int i = RutaParseUtils.getTypeOfIModelElement(field);
String type = RutaTypeConstants.typeStringOfInt.get(i);
if (type != null) {
type = type.toLowerCase();
buf.append(" : ");
buf.append(type);
}
}
};
@Override
public ScriptElementLabels getScriptElementLabels() {
return sInstance;
}
public IPreferenceStore getPreferenceStore() {
return RutaIdeUIPlugin.getDefault().getPreferenceStore();
}
public IDLTKLanguageToolkit getCoreToolkit() {
return RutaLanguageToolkit.getDefault();
}
public IDialogSettings getDialogSettings() {
return RutaIdeUIPlugin.getDefault().getDialogSettings();
}
@Override
public String getPartitioningId() {
return RutaConstants.RUTA_PARTITIONING;
}
@Override
public String getEditorId(Object inputElement) {
return RutaEditor.EDITOR_ID;
}
@Override
public String getInterpreterContainerId() {
return "org.apache.uima.ruta.ide.launching.INTERPRETER_CONTAINER";
}
@Override
public ScriptUILabelProvider createScriptUILabelProvider() {
return null;
}
@Override
public boolean getProvideMembers(ISourceModule element) {
return true;
}
@Override
public ScriptTextTools getTextTools() {
return RutaIdeUIPlugin.getDefault().getTextTools();
}
@Override
public ScriptSourceViewerConfiguration createSourceViewerConfiguration() {
return new SimpleRutaSourceViewerConfiguration(getTextTools().getColorManager(),
getPreferenceStore(), null, getPartitioningId(), false);
}
private static final String INTERPRETERS_PREFERENCE_PAGE_ID = "org.apache.uima.ruta.ide.preferences.interpreters";
private static final String DEBUG_PREFERENCE_PAGE_ID = "org.apache.uima.ruta.ide.preferences.debug";
@Override
public String getInterpreterPreferencePage() {
return INTERPRETERS_PREFERENCE_PAGE_ID;
}
@Override
public String getDebugPreferencePage() {
return DEBUG_PREFERENCE_PAGE_ID;
}
private static final String[] EDITOR_PREFERENCE_PAGES_IDS = {
"org.apache.uima.ruta.ide.preferences.editor",
"org.apache.uima.ruta.ide.ui.editor.SyntaxColoring",
"org.apache.uima.ruta.ide.ui.editor.SmartTyping",
"org.apache.uima.ruta.ide.ui.editor.RutaFolding" };
@Override
public String[] getEditorPreferencePages() {
return EDITOR_PREFERENCE_PAGES_IDS;
}
}