Bug 577871: Adapt to ecommons.text.ui.assist

Change-Id: Ibda02b0fb2e1244260eb1aaebf4c2328ad9a24fc
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/editors/LtxCommandCompletionProposal.java b/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/editors/LtxCommandCompletionProposal.java
index dac1c63..f9597cd 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/editors/LtxCommandCompletionProposal.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/editors/LtxCommandCompletionProposal.java
@@ -45,7 +45,7 @@
 import org.eclipse.statet.jcommons.text.core.SearchPattern;
 
 import org.eclipse.statet.ecommons.text.ITokenScanner;
-import org.eclipse.statet.ecommons.text.ui.BracketLevel;
+import org.eclipse.statet.ecommons.text.ui.assist.LinkedModeBracketLevel;
 import org.eclipse.statet.ecommons.ui.util.UIAccess;
 import org.eclipse.statet.ecommons.ui.viewers.ViewerLabelUtils;
 
@@ -500,7 +500,7 @@
 		
 		final TexBracketLevel level= new TexBracketLevel(model,
 				document, context.getEditor().getDocumentContentInfo(),
-				linked, BracketLevel.AUTODELETE );
+				linked, LinkedModeBracketLevel.AUTODELETE );
 		
 		/* create UI */
 		final LinkedModeUI ui= new LinkedModeUI(model, context.getSourceViewer());
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/sourceediting/LtxAutoEditStrategy.java b/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/sourceediting/LtxAutoEditStrategy.java
index ba87570..4222b1a 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/sourceediting/LtxAutoEditStrategy.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/sourceediting/LtxAutoEditStrategy.java
@@ -14,7 +14,7 @@
 
 package org.eclipse.statet.internal.docmlet.tex.ui.sourceediting;
 
-import static org.eclipse.statet.ecommons.text.ui.BracketLevel.AUTODELETE;
+import static org.eclipse.statet.ecommons.text.ui.assist.LinkedModeBracketLevel.AUTODELETE;
 
 import static org.eclipse.statet.docmlet.tex.core.source.LtxHeuristicTokenScanner.CURLY_BRACKET_TYPE;
 import static org.eclipse.statet.docmlet.tex.core.source.LtxHeuristicTokenScanner.PARATHESIS_TYPE;
@@ -38,7 +38,6 @@
 import org.eclipse.jface.text.TextUtilities;
 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.swt.events.KeyEvent;
 import org.eclipse.swt.widgets.Display;
@@ -587,19 +586,17 @@
 		final LinkedModeModel model= new LinkedModeModel();
 		int pos= 0;
 		
-		final LinkedPositionGroup group= new LinkedPositionGroup();
-		final LinkedPosition position= TexBracketLevel.createPosition(type, getDocument(),
+		final var group= new LinkedPositionGroup();
+		final var position= TexBracketLevel.createPosition(type, getDocument(),
 				offset + 1, 0, pos++ );
 		group.addPosition(position);
 		model.addGroup(group);
 		
 		model.forceInstall();
 		
-		final TexBracketLevel level= new TexBracketLevel(model,
-				getDocument(), getDocumentContentInfo(),
+		final var level= new TexBracketLevel(model, getDocument(), getDocumentContentInfo(),
 				ImCollections.newList(position), (mode & 0xffff0000) );
 		
-		/* create UI */
 		final LinkedModeUI ui= new LinkedModeUI(model, getViewer());
 		ui.setCyclingMode(LinkedModeUI.CYCLE_NEVER);
 		ui.setExitPosition(getViewer(), offset + (mode & 0xff), 0, pos);
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/sourceediting/TexBracketLevel.java b/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/sourceediting/TexBracketLevel.java
index 18a9bc6..cde4766 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/sourceediting/TexBracketLevel.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/sourceediting/TexBracketLevel.java
@@ -21,13 +21,16 @@
 import org.eclipse.jface.text.link.LinkedModeModel;
 import org.eclipse.jface.text.link.LinkedPosition;
 
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
 import org.eclipse.statet.ecommons.text.core.sections.DocContentSections;
-import org.eclipse.statet.ecommons.text.ui.BracketLevel;
+import org.eclipse.statet.ecommons.text.ui.assist.LinkedModeBracketLevel;
 
 import org.eclipse.statet.docmlet.tex.core.source.LtxHeuristicTokenScanner;
 
 
-public class TexBracketLevel extends BracketLevel {
+@NonNullByDefault
+public class TexBracketLevel extends LinkedModeBracketLevel {
 	
 	
 	public static final class CurlyBracketPosition extends InBracketPosition {
@@ -136,7 +139,7 @@
 		}
 		
 		@Override
-		public boolean matchesClose(final BracketLevel level, final int offset, final char character)
+		public boolean matchesClose(final LinkedModeBracketLevel level, final int offset, final char character)
 				throws BadLocationException {
 			return (super.matchesClose(level, offset, character)
 					&& (getLength() > 0 || countBackward(offset-1) == 2) );
@@ -164,7 +167,7 @@
 	
 	public TexBracketLevel(final LinkedModeModel model,
 			final IDocument document, final DocContentSections docContentSections,
-			final List<LinkedPosition> positions, final int mode) {
+			final List<? extends LinkedPosition> positions, final int mode) {
 		super(model, document, docContentSections, positions, mode);
 	}
 	
diff --git a/docmlet/org.eclipse.statet.docmlet.wikitext.ui/src/org/eclipse/statet/internal/docmlet/wikitext/ui/sourceediting/MarkupAutoEditStrategy.java b/docmlet/org.eclipse.statet.docmlet.wikitext.ui/src/org/eclipse/statet/internal/docmlet/wikitext/ui/sourceediting/MarkupAutoEditStrategy.java
index 9a5c1c6..cc6aebe 100644
--- a/docmlet/org.eclipse.statet.docmlet.wikitext.ui/src/org/eclipse/statet/internal/docmlet/wikitext/ui/sourceediting/MarkupAutoEditStrategy.java
+++ b/docmlet/org.eclipse.statet.docmlet.wikitext.ui/src/org/eclipse/statet/internal/docmlet/wikitext/ui/sourceediting/MarkupAutoEditStrategy.java
@@ -14,7 +14,7 @@
 
 package org.eclipse.statet.internal.docmlet.wikitext.ui.sourceediting;
 
-import static org.eclipse.statet.ecommons.text.ui.BracketLevel.AUTODELETE;
+import static org.eclipse.statet.ecommons.text.ui.assist.LinkedModeBracketLevel.AUTODELETE;
 
 import static org.eclipse.statet.docmlet.wikitext.core.source.doc.WikitextDocumentConstants.WIKIDOC_DEFAULT_CONTENT_CONSTRAINT;
 
@@ -34,7 +34,6 @@
 import org.eclipse.jface.text.TextUtilities;
 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.swt.events.KeyEvent;
 import org.eclipse.text.edits.TextEdit;
@@ -651,19 +650,17 @@
 		final LinkedModeModel model= new LinkedModeModel();
 		int pos= 0;
 		
-		final LinkedPositionGroup group= new LinkedPositionGroup();
-		final LinkedPosition position= WikitextBracketLevel.createPosition(type, getDocument(),
+		final var group= new LinkedPositionGroup();
+		final var position= WikitextBracketLevel.createPosition(type, getDocument(),
 				offset + 1, 0, pos++ );
 		group.addPosition(position);
 		model.addGroup(group);
 		
 		model.forceInstall();
 		
-		final WikitextBracketLevel level= new WikitextBracketLevel(model,
-				getDocument(), getDocumentContentInfo(),
+		final var level= new WikitextBracketLevel(model, getDocument(), getDocumentContentInfo(),
 				ImCollections.newList(position), (mode & 0xffff0000) );
 		
-		/* create UI */
 		final LinkedModeUI ui= new LinkedModeUI(model, getViewer());
 		ui.setCyclingMode(LinkedModeUI.CYCLE_NEVER);
 		ui.setExitPosition(getViewer(), offset + (mode & 0xff), 0, pos);
diff --git a/docmlet/org.eclipse.statet.docmlet.wikitext.ui/src/org/eclipse/statet/internal/docmlet/wikitext/ui/sourceediting/WikitextBracketLevel.java b/docmlet/org.eclipse.statet.docmlet.wikitext.ui/src/org/eclipse/statet/internal/docmlet/wikitext/ui/sourceediting/WikitextBracketLevel.java
index c3b218f..b3d1453 100644
--- a/docmlet/org.eclipse.statet.docmlet.wikitext.ui/src/org/eclipse/statet/internal/docmlet/wikitext/ui/sourceediting/WikitextBracketLevel.java
+++ b/docmlet/org.eclipse.statet.docmlet.wikitext.ui/src/org/eclipse/statet/internal/docmlet/wikitext/ui/sourceediting/WikitextBracketLevel.java
@@ -21,13 +21,16 @@
 import org.eclipse.jface.text.link.LinkedModeModel;
 import org.eclipse.jface.text.link.LinkedPosition;
 
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
 import org.eclipse.statet.ecommons.text.core.sections.DocContentSections;
-import org.eclipse.statet.ecommons.text.ui.BracketLevel;
+import org.eclipse.statet.ecommons.text.ui.assist.LinkedModeBracketLevel;
 
 import org.eclipse.statet.docmlet.wikitext.core.source.WikitextHeuristicTokenScanner;
 
 
-public class WikitextBracketLevel extends BracketLevel {
+@NonNullByDefault
+public class WikitextBracketLevel extends LinkedModeBracketLevel {
 	
 	
 	public static final class CurlyBracketPosition extends InBracketPosition {
@@ -164,7 +167,7 @@
 	
 	public WikitextBracketLevel(final LinkedModeModel model,
 			final IDocument document, final DocContentSections docContentSections,
-			final List<LinkedPosition> positions, final int mode) {
+			final List<? extends LinkedPosition> positions, final int mode) {
 		super(model, document, docContentSections, positions, mode);
 	}
 	
diff --git a/yaml/org.eclipse.statet.yaml.ui/src/org/eclipse/statet/internal/yaml/ui/editors/YamlBracketLevel.java b/yaml/org.eclipse.statet.yaml.ui/src/org/eclipse/statet/internal/yaml/ui/editors/YamlBracketLevel.java
index 7c44c96..5268fde 100644
--- a/yaml/org.eclipse.statet.yaml.ui/src/org/eclipse/statet/internal/yaml/ui/editors/YamlBracketLevel.java
+++ b/yaml/org.eclipse.statet.yaml.ui/src/org/eclipse/statet/internal/yaml/ui/editors/YamlBracketLevel.java
@@ -21,12 +21,15 @@
 import org.eclipse.jface.text.link.LinkedModeModel;
 import org.eclipse.jface.text.link.LinkedPosition;
 
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
 import org.eclipse.statet.ecommons.text.TextUtil;
 import org.eclipse.statet.ecommons.text.core.sections.DocContentSections;
-import org.eclipse.statet.ecommons.text.ui.BracketLevel;
+import org.eclipse.statet.ecommons.text.ui.assist.LinkedModeBracketLevel;
 
 
-public class YamlBracketLevel extends BracketLevel {
+@NonNullByDefault
+public class YamlBracketLevel extends LinkedModeBracketLevel {
 	
 	
 	public static final class SquareBracketPosition extends InBracketPosition {
@@ -147,7 +150,7 @@
 	
 	public YamlBracketLevel(final LinkedModeModel model,
 			final IDocument document, final DocContentSections docContentSections,
-			final List<LinkedPosition> positions, final int mode) {
+			final List<? extends LinkedPosition> positions, final int mode) {
 		super(model, document, docContentSections, positions, mode);
 	}
 	
diff --git a/yaml/org.eclipse.statet.yaml.ui/src/org/eclipse/statet/internal/yaml/ui/sourceediting/YamlAutoEditStrategy.java b/yaml/org.eclipse.statet.yaml.ui/src/org/eclipse/statet/internal/yaml/ui/sourceediting/YamlAutoEditStrategy.java
index 213719c..7a36389 100644
--- a/yaml/org.eclipse.statet.yaml.ui/src/org/eclipse/statet/internal/yaml/ui/sourceediting/YamlAutoEditStrategy.java
+++ b/yaml/org.eclipse.statet.yaml.ui/src/org/eclipse/statet/internal/yaml/ui/sourceediting/YamlAutoEditStrategy.java
@@ -14,7 +14,7 @@
 
 package org.eclipse.statet.internal.yaml.ui.sourceediting;
 
-import static org.eclipse.statet.ecommons.text.ui.BracketLevel.AUTODELETE;
+import static org.eclipse.statet.ecommons.text.ui.assist.LinkedModeBracketLevel.AUTODELETE;
 
 import static org.eclipse.statet.yaml.core.source.YamlHeuristicTokenScanner.CURLY_BRACKET_TYPE;
 import static org.eclipse.statet.yaml.core.source.YamlHeuristicTokenScanner.SQUARE_BRACKET_TYPE;
@@ -34,7 +34,6 @@
 import org.eclipse.jface.text.TextUtilities;
 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.swt.events.KeyEvent;
 
@@ -419,19 +418,17 @@
 		final LinkedModeModel model= new LinkedModeModel();
 		int pos= 0;
 		
-		final LinkedPositionGroup group= new LinkedPositionGroup();
-		final LinkedPosition position= YamlBracketLevel.createPosition(type, getDocument(),
+		final var group= new LinkedPositionGroup();
+		final var position= YamlBracketLevel.createPosition(type, getDocument(),
 				offset + 1, 0, pos++ );
 		group.addPosition(position);
 		model.addGroup(group);
 		
 		model.forceInstall();
 		
-		final YamlBracketLevel level= new YamlBracketLevel(model,
-				getDocument(), getDocumentContentInfo(),
+		final var level= new YamlBracketLevel(model, getDocument(), getDocumentContentInfo(),
 				ImCollections.newList(position), (mode & 0xffff0000) );
 		
-		/* create UI */
 		final LinkedModeUI ui= new LinkedModeUI(model, getViewer());
 		ui.setCyclingMode(LinkedModeUI.CYCLE_NEVER);
 		ui.setExitPosition(getViewer(), offset + (mode & 0xff), 0, pos);