Java Code Examples for org.eclipse.jface.text.ITextSelection

The following are top voted examples for showing how to use org.eclipse.jface.text.ITextSelection. These examples are extracted from open source projects. You can vote up the examples you like and your votes will be used in our system to generate more good examples.
Example 1
Project: lcdsl   File: AbstractLaunchConfigGeneratorHandler.java   View source code 6 votes vote down vote up
protected LaunchConfig getLaunchConfigFromEditor(ExecutionEvent event) {
    XtextEditor activeXtextEditor = EditorUtils.getActiveXtextEditor(event);
    if (activeXtextEditor == null) {
        return null;
    }
    final ITextSelection selection = (ITextSelection) activeXtextEditor.getSelectionProvider().getSelection();
    return activeXtextEditor.getDocument().priorityReadOnly(new IUnitOfWork<LaunchConfig, XtextResource>() {

        @Override
        public LaunchConfig exec(XtextResource xTextResource) throws Exception {
            EObject lc = eObjectAtOffsetHelper.resolveContainedElementAt(xTextResource, selection.getOffset());
            return findParentLaunchConfig(lc);
        }

    });
}
 
Example 2
Project: vertigo-chroma-kspplugin   File: UiUtils.java   View source code 6 votes vote down vote up
public static String getCurrentEditorCurrentWord(WordSelectionType wordSelectionType) {
	IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

	/* Extrait l'éditeur courant. */
	ITextEditor editor = (ITextEditor) activePage.getActiveEditor();
	if (editor == null) {
		return null;
	}

	/* Extrait la sélection courante. */
	ITextSelection selection = (ITextSelection) activePage.getSelection();
	if (selection == null) {
		return null;
	}

	/* Extrait le document courant. */
	IDocument document = editor.getDocumentProvider().getDocument(editor.getEditorInput());

	/* Extrait le mot sélectionné. */
	ITextSelection currentWordSelection = DocumentUtils.findCurrentWord(document, selection, wordSelectionType);
	if (currentWordSelection == null) {
		return null;
	}

	return currentWordSelection.getText();
}
 
Example 3
Project: vertigo-chroma-kspplugin   File: KspTextHover.java   View source code 6 votes vote down vote up
@Override
public IRegion getHoverRegion(ITextViewer textViewer, int offset) {

	IDocument document = textViewer.getDocument();

	/* Vérifie qu'on est dans une String de KSP */
	boolean isSqlString = DocumentUtils.isContentType(document, offset, KspRegionType.STRING);
	if (!isSqlString) {
		return null;
	}

	/* Extrait le mot courant. */
	ITextSelection selection = new TextSelection(document, offset, 0);
	ITextSelection currentWordSelection = DocumentUtils.findCurrentWord(document, selection, WordSelectionType.SNAKE_CASE);
	if (currentWordSelection == null) {
		return null;
	}
	String currentWord = currentWordSelection.getText();
	if (currentWord == null) {
		return null;
	}

	/* Renvoie la région du mot. */
	return new Region(currentWordSelection.getOffset(), currentWordSelection.getLength());
}
 
Example 4
Project: vertigo-chroma-kspplugin   File: BaseContentAssistProcessor.java   View source code 6 votes vote down vote up
/**
 * Constuit les propositions d'aucomplétion.
 * 
 * @param suggestions Suggestionsà proposer.
 * @param currentWordSelection Mot courant à remplacer dans le document.
 * @return Propositions d'autocomplétion.
 */
private ICompletionProposal[] buildProposals(List<CompletionCandidate> suggestions, ITextSelection currentWordSelection) {
	/* Calcul l'offset et la longueur du mot à remplacer dans le document. */
	int replacementLength = currentWordSelection.getLength();
	int replacementOffset = currentWordSelection.getOffset();

	/* Construit les propositions en parcourant les suggestions. */
	List<ICompletionProposal> proposals = new ArrayList<>();
	for (CompletionCandidate suggestion : suggestions) {
		/* String qui remplacera le mot courant. */
		String replacementString = suggestion.getDisplayString();

		/* String affiché comme libellé de la proposition. */
		String displayString = replacementString;

		/* String affiché comme description de la proposition (dans la boîte jaune). */
		String additionalProposalInfo = suggestion.getAdditionalProposalInfo();
		CompletionProposal proposal = new CompletionProposal(replacementString, replacementOffset, replacementLength, replacementString.length(), null,
				displayString, null, additionalProposalInfo);
		proposals.add(proposal);
	}
	return proposals.toArray(new ICompletionProposal[0]);
}
 
Example 5
Project: vertigo-chroma-kspplugin   File: KspStringContentAssistProcessor.java   View source code 6 votes vote down vote up
@Override
protected List<CompletionCandidate> getCandidates(ITextSelection currentWordSelection) {
	List<CompletionCandidate> list = new ArrayList<>();

	/* Trouve la déclaration contenant le nom de paramètre. */
	IFile file = UiUtils.getCurrentEditorFile();
	FileRegion fileRegion = new FileRegion(file, currentWordSelection.getOffset(), currentWordSelection.getLength());
	KspDeclaration declaration = KspManager.getInstance().findDeclarationAt(fileRegion);
	if (declaration == null) {
		return list;
	}

	/* Construit les candidats */
	for (KspAttribute attribute : declaration.getAttributes()) {
		handleAttribute(attribute, list);
	}

	/* Tri par libellé. */
	list.sort((o1, o2) -> o1.getDisplayString().compareTo(o2.getDisplayString()));

	return list;
}
 
Example 6
Project: dsp4e   File: DSPBreakpointAdapter.java   View source code 6 votes vote down vote up
@Override
public void toggleLineBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException {
	ITextEditor textEditor = getEditor(part);
	if (textEditor != null) {
		IResource resource = textEditor.getEditorInput().getAdapter(IResource.class);
		ITextSelection textSelection = (ITextSelection) selection;
		int lineNumber = textSelection.getStartLine();
		IBreakpoint[] breakpoints = DebugPlugin.getDefault().getBreakpointManager()
				.getBreakpoints(DSPPlugin.ID_DSP_DEBUG_MODEL);
		for (int i = 0; i < breakpoints.length; i++) {
			IBreakpoint breakpoint = breakpoints[i];
			if (breakpoint instanceof ILineBreakpoint && resource.equals(breakpoint.getMarker().getResource())) {
				if (((ILineBreakpoint) breakpoint).getLineNumber() == (lineNumber + 1)) {
					// remove
					breakpoint.delete();
					return;
				}
			}
		}
		// create line breakpoint (doc line numbers start at 0)
		DSPLineBreakpoint lineBreakpoint = new DSPLineBreakpoint(resource, lineNumber + 1);
		DebugPlugin.getDefault().getBreakpointManager().addBreakpoint(lineBreakpoint);
	}
}
 
Example 7
Project: Tarski   File: MarkerFactory.java   View source code 6 votes vote down vote up
/**
 * @param resource
 * @param selection
 * @returns list of markers which are found by selection
 */
public static ArrayList<IMarker> findMarkersInSelection(final IResource resource,
    final ITextSelection selection) {
  final ArrayList<IMarker> markerListInArea = new ArrayList<>();
  final ArrayList<IMarker> markerList = MarkerFactory.findMarkersAsArrayList(resource);

  if (markerList.isEmpty()) {
    return null;
  }
  final int textStart = selection.getOffset();
  final int textEnd = textStart + selection.getLength();

  for (final IMarker iMarker : markerList) {
    final int markerStart = MarkUtilities.getStart(iMarker);
    final int markerEnd = MarkUtilities.getEnd(iMarker);
    if (textStart >= markerStart && textStart <= markerEnd
        || textEnd >= markerStart && textEnd <= markerEnd
        || markerStart >= textStart && markerStart <= textEnd
        || markerEnd >= textStart && markerEnd <= textEnd) {

      markerListInArea.add(iMarker);
    }
  }
  return markerListInArea;
}
 
Example 8
Project: subclipse   File: TeamAction.java   View source code 6 votes vote down vote up
public void selectionChanged(IAction action, ISelection sel) {
	if (sel instanceof IStructuredSelection) {
		this.selection = (IStructuredSelection) sel;
		if (action != null) {
			setActionEnablement(action);
		}
	}
	if (sel instanceof ITextSelection){
			IEditorPart part = getTargetPage().getActiveEditor();
			if (part != null) {
				IEditorInput input = part.getEditorInput();
				IResource r = (IResource) input.getAdapter(IResource.class);
				if (r != null) {
					switch(r.getType()){
						case IResource.FILE:
							this.selection = new StructuredSelection(r);
							if (action != null) {
								setActionEnablement(action);
							}
						break;
					}
				}	//	set selection to current editor file;
			}
	}
}
 
Example 9
Project: subclipse   File: AnnotateView.java   View source code 6 votes vote down vote up
/**
 * A selection event in the Annotate Source Editor
 * @param event
 */
private void textSelectionChanged(ITextSelection selection) {
	
	// Track where the last selection event came from to avoid
	// a selection event loop.
	lastSelectionWasText = true;
		
	// Locate the annotate block containing the selected line number.
	AnnotateBlock match = null;
	for (Iterator iterator = svnAnnotateBlocks.iterator(); iterator.hasNext();) {
		AnnotateBlock block = (AnnotateBlock) iterator.next();
		if (block.contains(selection.getStartLine())) {
			match = block;
			break;
		}
	}

	// Select the annotate block in the List View.
	if (match == null) {
		return;
	}
	
	StructuredSelection listSelection = new StructuredSelection(match); 
	viewer.setSelection(listSelection, true);
}
 
Example 10
Project: ftc   File: TweakedLinkedModeUI.java   View source code 6 votes vote down vote up
public void selectionChanged(SelectionChangedEvent event) {
	ISelection selection = event.getSelection();
	if (selection instanceof ITextSelection) {
		ITextSelection textsel = (ITextSelection) selection;
		if (event.getSelectionProvider() instanceof ITextViewer) {
			IDocument doc = ((ITextViewer) event.getSelectionProvider()).getDocument();
			if (doc != null) {
				int offset = textsel.getOffset();
				int length = textsel.getLength();
				if (offset >= 0 && length >= 0) {
					LinkedPosition find = new LinkedPosition(doc, offset, length, LinkedPositionGroup.NO_STOP);
					LinkedPosition pos = fModel.findPosition(find);
					if (pos == null && fExitPosition != null && fExitPosition.includes(find))
						pos = fExitPosition;

					if (pos != null)
						switchPosition(pos, false, false);
				}
			}
		}
	}
}
 
Example 11
Project: texlipse   File: TexSelections.java   View source code 6 votes vote down vote up
/**
 * Takes a text editor as a parameter and sets variables 
 * to correspond selection features.
 * 
 * @param textEditor The currenct text editor
 */
public TexSelections(ITextEditor textEditor) {
     
    // Get the document
    this.document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput());
    this.editor = textEditor;
    
    // Get the selection
    this.textSelection = (ITextSelection) this.editor.getSelectionProvider().getSelection();
  
    this.startLineIndex = this.textSelection.getStartLine();
    this.endLineIndex = this.textSelection.getEndLine();
    this.selLength = this.textSelection.getLength();

    // Store selection information
    select();
}
 
Example 12
Project: texlipse   File: TexInsertMathSymbolAction.java   View source code 6 votes vote down vote up
public void run() {
    if (editor == null)
        return;
    ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection();
    IDocument doc = editor.getDocumentProvider().getDocument(editor.getEditorInput());
    TexCompletionProposal prop = new TexCompletionProposal(entry, selection.getOffset() + 1, 0, 
            editor.getViewer());
    try {
        // insert a backslash first
        doc.replace(selection.getOffset(), 0, "\\");
        prop.apply(doc);
        int newOffset = selection.getOffset() + entry.key.length() + 1;
        if (entry.arguments > 0) {
            newOffset += 1;
        }
        editor.getSelectionProvider().setSelection(new TextSelection(newOffset, 0));
    } catch (BadLocationException e) {
        TexlipsePlugin.log("Error while trying to insert command", e);
    }
}
 
Example 13
Project: texlipse   File: TexQuoteListener.java   View source code 6 votes vote down vote up
public void documentChanged(DocumentEvent event) {
    // if this is enabled
    if ("\"".equals(event.getText())) {
        ITextSelection textSelection = (ITextSelection) this.editor.getSelectionProvider().getSelection();            
        try {
            char prev = document.getChar(textSelection.getOffset() - 1);
            String replacement = "\"";
            // TODO null checks?
            IProject project = ((FileEditorInput)editor.getEditorInput()).getFile().getProject();
            String lang = TexlipseProperties.getProjectProperty(project, TexlipseProperties.LANGUAGE_PROPERTY);
            if (Character.isWhitespace(prev)) {
                replacement = (String) quotes.get(lang + "o");
            } else if (Character.isLetterOrDigit(prev)) {
                replacement = (String) quotes.get(lang + "c");
            } else {
                return;
            }
            document.removeDocumentListener(this);
            document.replace(textSelection.getOffset(), 1, replacement);
            document.addDocumentListener(this);
            //editor.resetHighlightRange();
            //editor.setHighlightRange(textSelection.getOffset() + 1, 1, true);
            //editor.getSelectionProvider().setSelection(new TextSelection(textSelection.getOffset() + 3, 5));
        } catch (BadLocationException e) {}
    }
}
 
Example 14
Project: mesfavoris   File: TextEditorBookmarkPropertiesProvider.java   View source code 6 votes vote down vote up
private void addBookmarkProperties(Map<String, String> properties, ITextEditor textEditor,
		ITextSelection textSelection) {
	int lineNumber = textSelection.getStartLine();
	addLineNumber(properties, lineNumber);
	addLineContent(properties, textEditor, lineNumber);
	addWorkspacePath(properties, textEditor);
	putIfAbsent(properties, PROPERTY_NAME, () -> {
		String lineContent = properties.get(PROP_LINE_CONTENT);
		if (lineContent != null) {
			return textEditor.getEditorInput().getName() + " : " + lineContent;
		} else {
			return textEditor.getEditorInput().getName();
		}
	});
	IPath filePath = getFilePath(textEditor);
	if (filePath != null) {
		addFilePath(properties, filePath);
	}
}
 
Example 15
Project: mesfavoris   File: BookmarksViewTest.java   View source code 6 votes vote down vote up
@Test
public void testGotoBookmarkOnDoubleClick() throws Exception {
	// Given
	Bookmark bookmark = new Bookmark(new BookmarkId(), ImmutableMap.of(Bookmark.PROPERTY_NAME, "bookmark",
			PROP_WORKSPACE_PATH, "/BookmarksViewTest/src/main/java/org/apache/commons/cli/DefaultParser.java",
			PROP_LINE_CONTENT,
			"for (Enumeration<?> enumeration = properties.propertyNames(); enumeration.hasMoreElements();)"));
	addBookmark(getBookmarksRootFolderId(), bookmark);
	SWTBotTreeItem bookmarkTreeItem = waitUntil("Cannot find new bookmark",
			() -> bookmarksViewDriver.tree().getTreeItem("bookmark"));

	// When
	bookmarkTreeItem.doubleClick();

	// Then
	waitUntil("cannot go to bookmark", () -> "DefaultParser.java".equals(getActivePart().getTitle()));
	IWorkbenchPart workbenchPart = getActivePart();
	ITextSelection selection = (ITextSelection) getSelection(workbenchPart);
	assertEquals("DefaultParser.java", workbenchPart.getTitle());
	assertEquals(146, selection.getStartLine());
}
 
Example 16
Project: mesfavoris   File: GotoBookmarkOperationTest.java   View source code 6 votes vote down vote up
@Test
public void testGotoBookmark() throws Exception {
	// Given
	Bookmark bookmark = bookmark(new BookmarkId(), "LICENSE.txt")
			.withProperty(PROP_WORKSPACE_PATH, "/gotoBookmarkOperationTest/LICENSE.txt")
			.withProperty(PROP_LINE_NUMBER, "10").build();
	addBookmark(new BookmarkId("rootFolder"), bookmark);

	// When
	gotoBookmarkOperation.gotoBookmark(bookmark.getId(), new NullProgressMonitor());

	// Then
	IWorkbenchPart workbenchPart = getActivePart();
	ITextSelection selection = (ITextSelection) getSelection(workbenchPart);
	assertEquals("LICENSE.txt", workbenchPart.getTitle());
	assertEquals(10, selection.getStartLine());
	waitUntil("Cannot find marker", () -> bookmarksMarkers.findMarker(bookmark.getId(), null));
}
 
Example 17
Project: code   File: RelatedObjectsEdges.java   View source code 6 votes vote down vote up
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
	if (selection instanceof ITextSelection) {
		ASTNode node = ASTUtils.getASTNode((ITextSelection) selection);
		if (node != null) {
			String string = node.toString();
			CharSequence subSequence = string.subSequence(0,
					string.length() > 100 ? 100 : string.length());
			RelatedObjectsEdges.this.setContentDescription(subSequence.toString()
					.trim());
			RelatedObjectsEdges.this.fTreeViewer.setInput(node);
			RelatedObjectsEdges.this.fTreeViewer.expandAll();
			RelatedObjectsEdges.this.tableViewer.setInput(null);
		}
	}

}
 
Example 18
Project: tlaplus   File: ToggleCommentAction.java   View source code 6 votes vote down vote up
/**
 * Creates a region describing the text block (something that starts at
 * the beginning of a line) completely containing the current selection.
 *
 * @param selection The selection to use
 * @param document The document
 * @return the region describing the text block comprising the given selection
 */
private IRegion getTextBlockFromSelection(ITextSelection selection, IDocument document)
{

    try
    {
        IRegion line = document.getLineInformationOfOffset(selection.getOffset());
        int length = selection.getLength() == 0 ? line.getLength() : selection.getLength()
                + (selection.getOffset() - line.getOffset());
        return new Region(line.getOffset(), length);

    } catch (BadLocationException x)
    {
        // should not happen
        // TODO
    }

    return null;
}
 
Example 19
Project: fluentmark   File: SmartAutoEditStrategy.java   View source code 6 votes vote down vote up
/**
 * Computes an insert position for an opening brace if <code>offset</code> maps to a position in
 * <code>doc</code> involving a keyword taking a block after it. These are: <code>try</code>,
 * <code>do</code>, <code>synchronized</code>, <code>static</code>, <code>finally</code>, or
 * <code>else</code>.
 *
 * @param doc the document being modified
 * @param line the current line under investigation
 * @param offset the offset of the caret position, relative to the line start.
 * @return an insert position relative to the line start if <code>line</code> contains one of
 *         the above keywords at or before <code>offset</code>, -1 otherwise
 */
private static int computeAfterTryDoElse(IDocument doc, ITextSelection line, int offset) {
	// search backward while WS, find 'try', 'do', 'else' in default partition
	int p = offset + line.getOffset();
	p = firstWhitespaceToRight(doc, p);
	if (p == -1) return -1;
	p--;

	if (looksLike(doc, p, "try") //$NON-NLS-1$
			|| looksLike(doc, p, "do")  //$NON-NLS-1$
			|| looksLike(doc, p, "synchronized")  //$NON-NLS-1$
			|| looksLike(doc, p, "static")  //$NON-NLS-1$
			|| looksLike(doc, p, "finally")  //$NON-NLS-1$
			|| looksLike(doc, p, "else"))  //$NON-NLS-1$
		return p + 1 - line.getOffset();

	return -1;
}
 
Example 20
Project: fluentmark   File: FluentMkEditor.java   View source code 6 votes vote down vote up
/**
 * Reveals the specified ranges in this text editor.
 *
 * @param offset the offset of the revealed range
 * @param len the length of the revealed range
 */
protected void reveal(int offset, int len) {
	if (viewer == null) return;

	ISelection sel = getSelectionProvider().getSelection();
	if (sel instanceof ITextSelection) {
		ITextSelection tsel = (ITextSelection) sel;
		if (tsel.getOffset() != 0 || tsel.getLength() != 0) markInNavigationHistory();
	}

	StyledText widget = viewer.getTextWidget();
	widget.setRedraw(false);
	setHighlightRange(offset, len, false);
	viewer.revealRange(offset, len);
	markInNavigationHistory();
	widget.setRedraw(true);
}
 
Example 21
Project: fluentmark   File: FluentMkEditor.java   View source code 6 votes vote down vote up
@Override
public boolean show(ShowInContext context) {
	ISelection selection = context.getSelection();
	if (selection instanceof IStructuredSelection) {
		for (Object element : ((IStructuredSelection) selection).toArray()) {
			if (element instanceof PagePart) {
				PagePart item = (PagePart) element;
				revealPart(item);
				if (isOutlinePageValid()) {
					outlinePage.setSelection(selection);
				}
				return true;
			}
		}
	} else if (selection instanceof ITextSelection) {
		ITextSelection textSel = (ITextSelection) selection;
		selectAndReveal(textSel.getOffset(), textSel.getLength());
		return true;
	}
	return false;
}
 
Example 22
Project: typescript.java   File: OpenSymbolSelectionDialog.java   View source code 6 votes vote down vote up
@Override
public int open() {
	if (getInitialPattern() == null) {
		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
		if (window != null) {
			ISelection selection = window.getSelectionService().getSelection();
			if (selection instanceof ITextSelection) {
				String text = ((ITextSelection) selection).getText();
				if (text != null) {
					text = text.trim();
					if (text.length() > 0) {
						setInitialPattern(text);
					}
				}
			}
		}
	}
	return super.open();
}
 
Example 23
Project: APICloud-Studio   File: TeamAction.java   View source code 6 votes vote down vote up
public void selectionChanged(IAction action, ISelection sel) {
	if (sel instanceof IStructuredSelection) {
		this.selection = (IStructuredSelection) sel;
		if (action != null) {
			setActionEnablement(action);
		}
	}
	if (sel instanceof ITextSelection){
			IEditorPart part = getTargetPage().getActiveEditor();
			if (part != null) {
				IEditorInput input = part.getEditorInput();
				IResource r = (IResource) input.getAdapter(IResource.class);
				if (r != null) {
					switch(r.getType()){
						case IResource.FILE:
							this.selection = new StructuredSelection(r);
							if (action != null) {
								setActionEnablement(action);
							}
						break;
					}
				}	//	set selection to current editor file;
			}
	}
}
 
Example 24
Project: typescript.java   File: NpmModuleVersionsSelectionDialog.java   View source code 6 votes vote down vote up
@Override
public int open() {
	if (getInitialPattern() == null) {
		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
		if (window != null) {
			ISelection selection = window.getSelectionService().getSelection();
			if (selection instanceof ITextSelection) {
				String text = ((ITextSelection) selection).getText();
				if (text != null) {
					text = text.trim();
					if (text.length() > 0) {
						setInitialPattern(text);
					}
				}
			}
		}
	}
	return super.open();
}
 
Example 25
Project: typescript.java   File: ImplementationsCodeLens.java   View source code 6 votes vote down vote up
@Override
public void open() {
	// Open Implementation dialog
	Display.getDefault().asyncExec(() -> {
		try {
			Shell parent = Display.getDefault().getActiveShell();
			TypeScriptImplementationDialog dialog = new TypeScriptImplementationDialog(parent, SWT.RESIZE, tsFile);
			int offset = tsFile.getPosition(getRange().startLineNumber, getRange().startColumn);
			ITextSelection selection = new TextSelection(offset, 1);
			dialog.setSize(450, 500);
			dialog.setInput(selection);
			dialog.open();
		} catch (TypeScriptException e) {
			e.printStackTrace();
		}
	});
}
 
Example 26
Project: typescript.java   File: RefactorActionGroup.java   View source code 6 votes vote down vote up
private void refactorMenuShown(IMenuManager refactorSubmenu) {
	// we know that we have an MenuManager since we created it in
	// addRefactorSubmenu.
	Menu menu = ((MenuManager) refactorSubmenu).getMenu();
	menu.addMenuListener(new MenuAdapter() {
		@Override
		public void menuHidden(MenuEvent e) {
			refactorMenuHidden();
		}
	});
	ITextSelection textSelection = (ITextSelection) fEditor.getSelectionProvider().getSelection();
	// JavaTextSelection javaSelection= new
	// JavaTextSelection(getEditorInput(), getDocument(),
	// textSelection.getOffset(), textSelection.getLength());

	for (Iterator<SelectionDispatchAction> iter = fActions.iterator(); iter.hasNext();) {
		SelectionDispatchAction action = iter.next();
		action.update(textSelection);
	}
	refactorSubmenu.removeAll();
	if (fillRefactorMenu(refactorSubmenu) == 0)
		refactorSubmenu.add(fNoActionAvailable);
}
 
Example 27
Project: typescript.java   File: TypeScriptEditor.java   View source code 6 votes vote down vote up
public void selectionChanged(SelectionChangedEvent event) {
	// TypeScriptEditor.this.selectionChanged();

	ISelection selection = event.getSelection();
	if (selection instanceof ITextSelection) {
		// Update occurrences
		ITextSelection textSelection = (ITextSelection) selection;
		updateOccurrenceAnnotations(textSelection);

		TypeScriptContentOutlinePage outlinePage = getOutlinePage();
		if (outlinePage != null && outlinePage.isLinkingEnabled()) {
			fOutlineSelectionChangedListener.uninstall(outlinePage);
			outlinePage.setSelection(selection);
			fOutlineSelectionChangedListener.install(outlinePage);
		}
	}
}
 
Example 28
Project: typescript.java   File: TypeScriptEditor.java   View source code 6 votes vote down vote up
protected void installOccurrencesFinder(boolean forceUpdate) {
	fMarkOccurrenceAnnotations = true;

	// fPostSelectionListenerWithAST= new ISelectionListenerWithAST() {
	// public void selectionChanged(IEditorPart part, ITextSelection
	// selection, JavaScriptUnit astRoot) {
	// updateOccurrenceAnnotations(selection, astRoot);
	// }
	// };
	// SelectionListenerWithASTManager.getDefault().addListener(this,
	// fPostSelectionListenerWithAST);
	if (forceUpdate && getSelectionProvider() != null) {
		fForcedMarkOccurrencesSelection = getSelectionProvider().getSelection();
		updateOccurrenceAnnotations((ITextSelection) fForcedMarkOccurrencesSelection);
	}

	if (fOccurrencesFinderJobCanceler == null) {
		fOccurrencesFinderJobCanceler = new OccurrencesFinderJobCanceler();
		fOccurrencesFinderJobCanceler.install();
	}
}
 
Example 29
Project: typescript.java   File: TypeScriptEditor.java   View source code 6 votes vote down vote up
protected void doSelectionChanged(SelectionChangedEvent event) {
	ISelection selection = event.getSelection();
	NavigationBarItem item = null;
	Iterator iter = ((IStructuredSelection) selection).iterator();
	while (iter.hasNext()) {
		Object o = iter.next();
		if (o instanceof NavigationBarItem) {
			item = (NavigationBarItem) o;
			break;
		}
	}

	setSelection(item, !isActivePart());

	ISelectionProvider selectionProvider = getSelectionProvider();
	if (selectionProvider == null)
		return;

	ISelection textSelection = selectionProvider.getSelection();
	if (!(textSelection instanceof ITextSelection))
		return;

	fForcedMarkOccurrencesSelection = textSelection;
	updateOccurrenceAnnotations((ITextSelection) textSelection);

}
 
Example 30
Project: APICloud-Studio   File: OpenDeclarationAction.java   View source code 6 votes vote down vote up
/**
 * Open the declaration if possible.
 */
@Override
public void run()
{
	ITextEditor textEditor = getTextEditor();

	if (textEditor instanceof JSSourceEditor)
	{
		ITextSelection selection = (ITextSelection) textEditor.getSelectionProvider().getSelection();
		IRegion region = new Region(selection.getOffset(), 1);
		JSHyperlinkDetector detector = new JSHyperlinkDetector();
		IHyperlink[] hyperlinks = detector.detectHyperlinks((AbstractThemeableEditor) textEditor, region, true);

		if (!ArrayUtil.isEmpty(hyperlinks))
		{
			// give first link highest precedence
			hyperlinks[0].open();
		}
	}
}
 
Example 31
Project: Source   File: ObjectToLocationAdapterFactory.java   View source code 6 votes vote down vote up
/**
 * {@inheritDoc}
 *
 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
 */
public Object getAdapter(Object adaptableObject, @SuppressWarnings("rawtypes") Class adapterType) {
	final Object res;

	final Object superRes = super.getAdapter(adaptableObject, adapterType);
	if (superRes != null) {
		res = superRes;
	} else {
		if (adaptableObject instanceof IStructuredSelection) {
			final Object firstElement = ((IStructuredSelection)adaptableObject).getFirstElement();
			if (firstElement instanceof ILocation) {
				res = (ILocation)firstElement;
			} else {
				res = selectionToLocationDescriptor((IStructuredSelection)adaptableObject);
			}
		} else if (adaptableObject instanceof ITextSelection) {
			res = textSelectionToLocationDescriptor((ITextSelection)adaptableObject);
		} else {
			res = objectToLocationDescriptor(adaptableObject);
		}
	}

	return adapt(res, adapterType);
}
 
Example 32
Project: bts   File: XtextEObjectSearchDialog.java   View source code 6 votes vote down vote up
@Override
public int open() {
	if (getInitialPattern() == null) {
		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
		if (window != null) {
			ISelection selection = window.getSelectionService().getSelection();
			if (selection instanceof ITextSelection) {
				String text = ((ITextSelection) selection).getText();
				if (text != null) {
					text = text.trim();
					if (text.length() > 0) {
						setInitialPattern(text);
					}
				}
			}
		}
	}
	return super.open();
}
 
Example 33
Project: bts   File: TextViewerMoveLinesAction.java   View source code 6 votes vote down vote up
/**
 * Given a selection on a document, computes the lines fully or partially covered by
 * <code>selection</code>. A line in the document is considered covered if
 * <code>selection</code> comprises any characters on it, including the terminating delimiter.
 * <p>Note that the last line in a selection is not considered covered if the selection only
 * comprises the line delimiter at its beginning (that is considered part of the second last
 * line).
 * As a special case, if the selection is empty, a line is considered covered if the caret is
 * at any position in the line, including between the delimiter and the start of the line. The
 * line containing the delimiter is not considered covered in that case.
 * </p>
 *
 * @param document the document <code>selection</code> refers to
 * @param selection a selection on <code>document</code>
 * @param viewer the <code>ISourceViewer</code> displaying <code>document</code>
 * @return a selection describing the range of lines (partially) covered by
 * <code>selection</code>, without any terminating line delimiters
 * @throws BadLocationException if the selection is out of bounds (when the underlying document has changed during the call)
 */
private ITextSelection getMovingSelection(IDocument document, ITextSelection selection, ITextViewer viewer) throws BadLocationException {
	int low= document.getLineOffset(selection.getStartLine());
	int endLine= selection.getEndLine();
	int high= document.getLineOffset(endLine) + document.getLineLength(endLine);

	// get everything up to last line without its delimiter
	String delim= document.getLineDelimiter(endLine);
	if (delim != null)
		high -= delim.length();

	// the new selection will cover the entire lines being moved, except for the last line's
	// delimiter. The exception to this rule is an empty last line, which will stay covered
	// including its delimiter
	if (delim != null && document.getLineLength(endLine) == delim.length())
		fAddDelimiter= true;
	else
		fAddDelimiter= false;

	return new TextSelection(document, low, high - low);
}
 
Example 34
Project: APICloud-Studio   File: AnnotateView.java   View source code 6 votes vote down vote up
/**
 * A selection event in the Annotate Source Editor
 * @param event
 */
private void textSelectionChanged(ITextSelection selection) {
	
	// Track where the last selection event came from to avoid
	// a selection event loop.
	lastSelectionWasText = true;
		
	// Locate the annotate block containing the selected line number.
	AnnotateBlock match = null;
	for (Iterator iterator = svnAnnotateBlocks.iterator(); iterator.hasNext();) {
		AnnotateBlock block = (AnnotateBlock) iterator.next();
		if (block.contains(selection.getStartLine())) {
			match = block;
			break;
		}
	}

	// Select the annotate block in the List View.
	if (match == null) {
		return;
	}
	
	StructuredSelection listSelection = new StructuredSelection(match); 
	viewer.setSelection(listSelection, true);
}
 
Example 35
Project: bts   File: FindReferencesHandler.java   View source code 6 votes vote down vote up
public Object execute(ExecutionEvent event) throws ExecutionException {
	try {
		XtextEditor editor = EditorUtils.getActiveXtextEditor(event);
		if (editor != null) {
			final ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection();
			editor.getDocument().readOnly(new IUnitOfWork.Void<XtextResource>() {
				@Override
				public void process(XtextResource state) throws Exception {
					EObject target = eObjectAtOffsetHelper.resolveElementAt(state, selection.getOffset());
					findReferences(target);
				}
			});
		}
	} catch (Exception e) {
		LOG.error(Messages.FindReferencesHandler_3, e);
	}
	return null;
}
 
Example 36
Project: bts   File: OpenDeclarationHandler.java   View source code 6 votes vote down vote up
public Object execute(ExecutionEvent event) throws ExecutionException {
	XtextEditor xtextEditor = EditorUtils.getActiveXtextEditor(event);
	if (xtextEditor != null) {
		ITextSelection selection = (ITextSelection) xtextEditor.getSelectionProvider().getSelection();

		IRegion region = new Region(selection.getOffset(), selection.getLength());

		ISourceViewer internalSourceViewer = xtextEditor.getInternalSourceViewer();

		IHyperlink[] hyperlinks = getDetector().detectHyperlinks(internalSourceViewer, region, false);
		if (hyperlinks != null && hyperlinks.length > 0) {
			IHyperlink hyperlink = hyperlinks[0];
			hyperlink.open();
		}
	}		
	return null;
}
 
Example 37
Project: bts   File: EditorCopyQualifiedNameHandler.java   View source code 6 votes vote down vote up
@Override
protected String getQualifiedName(ExecutionEvent event) {
	XtextEditor activeXtextEditor = EditorUtils.getActiveXtextEditor(event);
	if (activeXtextEditor == null) {
		return null;
	}
	final ITextSelection selection = getTextSelection(activeXtextEditor);
	return activeXtextEditor.getDocument().readOnly(new IUnitOfWork<String, XtextResource>() {

		public String exec(XtextResource xTextResource) throws Exception {
			EObject context = getContext(selection, xTextResource);
			EObject selectedElement = getSelectedName(selection, xTextResource);
			return getQualifiedName(selectedElement, context);
		}

	});
}
 
Example 38
Project: Permo   File: SelectedMethods.java   View source code 6 votes vote down vote up
/**
 * Determines the Java element the given {@link ITextSelection} points to (i.e. the Java element the cursor is
 * positioned to).
 * 
 * @param textSelection
 *          the {@link ITextSelection} to be checked
 * @return the {@link IJavaElement} the cursor is positioned to or {@link Optional#empty()}, if there is no active
 *         editor, or the active editor is not a Java editor.
 */
public static Optional<IJavaElement> getSelectedJavaElement(final ITextSelection textSelection) {
  final Optional<ITypeRoot> javaRootElement = getJavaRootElementOfActiveEditor();
  if (javaRootElement.isPresent()) {
    try {
      final IJavaElement selectedJavaElement = ((ICompilationUnit) javaRootElement.get()).getElementAt(textSelection.getOffset());
      if (selectedJavaElement != null) {
        return Optional.of(selectedJavaElement);
      }
    }
    catch (final JavaModelException e) {
      e.printStackTrace();
    }
  }
  return Optional.empty();
}
 
Example 39
Project: junit-tools   File: JDTUtils.java   View source code 6 votes vote down vote up
public static IMethod getSelectedMethod() throws JavaModelException {
	IWorkbenchPage page = PlatformUI.getWorkbench()
			.getActiveWorkbenchWindow().getActivePage();
	ITextEditor editor = (ITextEditor) page.getActiveEditor();
	IJavaElement elem = JavaUI.getEditorInputJavaElement(editor
			.getEditorInput());
	if (elem instanceof ICompilationUnit) {
		ITextSelection sel = (ITextSelection) editor.getSelectionProvider()
				.getSelection();
		IJavaElement selected = ((ICompilationUnit) elem).getElementAt(sel
				.getOffset());
		if (selected != null
				&& selected.getElementType() == IJavaElement.METHOD) {
			return (IMethod) selected;
		}
	}

	return null;
}
 
Example 40
Project: gwt-eclipse-plugin   File: JsniParser.java   View source code 6 votes vote down vote up
public static ITypedRegion getEnclosingJsniRegion(ITextSelection selection,
    IDocument document) {
  try {
    ITypedRegion region = TextUtilities.getPartition(document,
        GWTPartitions.GWT_PARTITIONING, selection.getOffset(), false);

    if (region.getType().equals(GWTPartitions.JSNI_METHOD)) {
      int regionEnd = region.getOffset() + region.getLength();
      int selectionEnd = selection.getOffset() + selection.getLength();

      // JSNI region should entirely contain the selection
      if (region.getOffset() <= selection.getOffset()
          && regionEnd >= selectionEnd) {
        return region;
      }
    }
  } catch (BadLocationException e) {
    GWTPluginLog.logError(e);
  }

  return null;
}