Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/typing/AbstractCharacterPairInserter.java')
-rw-r--r--bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/typing/AbstractCharacterPairInserter.java144
1 files changed, 0 insertions, 144 deletions
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/typing/AbstractCharacterPairInserter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/typing/AbstractCharacterPairInserter.java
deleted file mode 100644
index c26afbae3a..0000000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/typing/AbstractCharacterPairInserter.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation 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:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.typing;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.link.ILinkedModeListener;
-import org.eclipse.jface.text.link.LinkedModeModel;
-import org.eclipse.jface.text.link.LinkedModeUI;
-import org.eclipse.jface.text.link.LinkedPosition;
-import org.eclipse.jface.text.link.LinkedPositionGroup;
-import org.eclipse.jface.text.link.LinkedModeUI.ExitFlags;
-import org.eclipse.jface.text.link.LinkedModeUI.IExitPolicy;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-abstract public class AbstractCharacterPairInserter {
-
- class ExitPolicy implements IExitPolicy {
-
- private char fExit;
- private char fEscape;
- private IDocument fDocument;
-
- public ExitPolicy(char exit, char escape, IDocument document) {
- fExit = exit;
- fEscape = escape;
- fDocument = document;
- }
-
- public ExitFlags doExit(LinkedModeModel model, VerifyEvent event, int offset, int length) {
- if(!isMasked(offset)) {
- if (event.character == fExit)
- return new ExitFlags(ILinkedModeListener.UPDATE_CARET, false);
- }
- return null;
- }
-
- private boolean isMasked(int offset) {
- try {
- return fEscape == fDocument.getChar(offset - 1);
- } catch (BadLocationException e) {
- }
- return false;
- }
- }
-
- /**
- * Pair the character <code>c</code> in the source viewer <code>viewer</code>.
- * Positions are linked before and after the inserted character.
- *
- * @param viewer the source viewer to add the linked mode to
- * @param c the character to pair with
- * @return true if the character was successfully paired; false otherwise
- */
- public boolean pair(final ISourceViewer viewer, final char c) {
- if (!shouldPair(viewer, c))
- return false;
-
- final char mc = getPair(c);
- final char[] chars = new char[2];
- chars[0] = c;
- chars[1] = mc;
-
- IDocument document = viewer.getDocument();
-
- final Point selection= viewer.getSelectedRange();
- final int offset= selection.x;
- final int length= selection.y;
-
- boolean paired = false;
- try {
- document.replace(offset, length, new String(chars));
- LinkedModeModel model = new LinkedModeModel();
- LinkedPositionGroup group = new LinkedPositionGroup();
- group.addPosition(new LinkedPosition(document, offset + 1, 0, LinkedPositionGroup.NO_STOP));
- model.addGroup(group);
- model.forceInstall();
-
- LinkedModeUI ui = new LinkedModeUI(model, viewer);
- ui.setCyclingMode(LinkedModeUI.CYCLE_NEVER);
- ui.setExitPosition(viewer, offset + 2, 0, Integer.MAX_VALUE);
- ui.setExitPolicy(new ExitPolicy(mc, getEscapeChar(c), document));
- ui.setSimpleMode(true);
- ui.enter();
-
- paired = true;
- } catch (BadLocationException e) {
- Logger.logException(e);
- }
- return paired;
- }
-
- /**
- * Hook to evaluate if the character should be paired. Clients may override
- * to evaluate the case.
- * @param viewer the source viewer where the character would be paired
- * @param c the character to pair
- * @return true if the character should have its pair character inserted; false otherwise
- */
- protected boolean shouldPair(ISourceViewer viewer, char c) {
- return true;
- }
-
- /**
- * Can the character be paired by the inserter
- * @param c the character of interest
- * @return true if the character can be paired by the inserter; false otherwise
- */
- abstract public boolean hasPair(char c);
-
- /**
- * Get the paired character for <code>c</code>
- * @param c the character to find the pair of
- * @return the pair character
- */
- abstract protected char getPair(char c);
-
- /**
- * Gets the escape character for <code>c</code> in case <code>c</code> is to be used
- * within the paired characters
- * @param c the character to find the escape character of
- * @return the escape character
- */
- protected char getEscapeChar(char c) {
- return 0;
- }
-
- public void initialize() {
- }
-
- public void dispose() {
- }
-}

Back to the top