/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * 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: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.plugin.languageserver.ide.navigation.symbol; import org.eclipse.che.ide.api.editor.text.TextPosition; import org.eclipse.che.ide.api.editor.text.TextRange; import org.eclipse.che.ide.api.editor.texteditor.TextEditor; import org.eclipse.che.ide.filters.Match; import org.eclipse.che.plugin.languageserver.ide.quickopen.QuickOpenEntryGroup; import org.vectomatic.dom.svg.ui.SVGResource; import java.util.List; /** * @author Evgen Vidolob */ class SymbolEntry extends QuickOpenEntryGroup { private String name; private String type; private String description; private TextRange range; private TextEditor editor; private SVGResource icon; public SymbolEntry(String name, String type, String description, TextRange range, TextEditor editor, List<Match> highlights, SVGResource icon) { this.name = name; this.type = type; this.description = description; this.range = range; this.editor = editor; this.icon = icon; setHighlights(highlights); } @Override public String getLabel() { return name; } @Override public SVGResource getIcon() { return icon; } @Override public String getDescription() { return description; } public String getType() { return type; } public TextRange getRange() { return range; } @Override public boolean run(Mode mode) { if (mode == Mode.OPEN) { return runOpen(); } return runPreview(); } private boolean runPreview() { editor.getDocument().setSelectedRange(range, true); return false; } private boolean runOpen() { editor.getDocument().setCursorPosition(new TextPosition(range.getFrom().getLine(), range.getFrom().getCharacter())); editor.setFocus(); return true; } }