comparison dwtx/jface/text/link/LinkedModeUI.d @ 134:51e6e63f930e

Regex fix for casts
author Frank Benoit <benoit@tionex.de>
date Sun, 24 Aug 2008 01:46:20 +0200
parents 7d818bd32d63
children 65801ad2b265
comparison
equal deleted inserted replaced
133:7d818bd32d63 134:51e6e63f930e
346 { 346 {
347 // Post in UI thread since the assistant popup will only get the focus after we lose it. 347 // Post in UI thread since the assistant popup will only get the focus after we lose it.
348 display.asyncExec(new Runnable() { 348 display.asyncExec(new Runnable() {
349 public void run() { 349 public void run() {
350 if (fIsActive && viewer instanceof IEditingSupportRegistry) { 350 if (fIsActive && viewer instanceof IEditingSupportRegistry) {
351 IEditingSupport[] helpers= ((IEditingSupportRegistry) viewer).getRegisteredSupports(); 351 IEditingSupport[] helpers= (cast(IEditingSupportRegistry) viewer).getRegisteredSupports();
352 for (int i= 0; i < helpers.length; i++) { 352 for (int i= 0; i < helpers.length; i++) {
353 if (helpers[i].ownsFocusShell()) 353 if (helpers[i].ownsFocusShell())
354 return; 354 return;
355 } 355 }
356 } 356 }
399 int end= event.getOffset() + event.getLength(); 399 int end= event.getOffset() + event.getLength();
400 for (int offset= event.getOffset(); offset <= end; offset++) { 400 for (int offset= event.getOffset(); offset <= end; offset++) {
401 if (!fModel.anyPositionContains(offset)) { 401 if (!fModel.anyPositionContains(offset)) {
402 ITextViewer viewer= fCurrentTarget.getViewer(); 402 ITextViewer viewer= fCurrentTarget.getViewer();
403 if (fFramePosition !is null && viewer instanceof IEditingSupportRegistry) { 403 if (fFramePosition !is null && viewer instanceof IEditingSupportRegistry) {
404 IEditingSupport[] helpers= ((IEditingSupportRegistry) viewer).getRegisteredSupports(); 404 IEditingSupport[] helpers= (cast(IEditingSupportRegistry) viewer).getRegisteredSupports();
405 for (int i= 0; i < helpers.length; i++) { 405 for (int i= 0; i < helpers.length; i++) {
406 if (helpers[i].isOriginator(null, new Region(fFramePosition.getOffset(), fFramePosition.getLength()))) 406 if (helpers[i].isOriginator(null, new Region(fFramePosition.getOffset(), fFramePosition.getLength())))
407 return; 407 return;
408 } 408 }
409 } 409 }
449 // standard behavior: 449 // standard behavior:
450 // (Shift+)Tab: jumps from position to position, depending on cycle mode 450 // (Shift+)Tab: jumps from position to position, depending on cycle mode
451 // Enter: accepts all entries and leaves all (possibly stacked) environments, the last sets the caret 451 // Enter: accepts all entries and leaves all (possibly stacked) environments, the last sets the caret
452 // Esc: accepts all entries and leaves all (possibly stacked) environments, the caret stays 452 // Esc: accepts all entries and leaves all (possibly stacked) environments, the caret stays
453 // ? what do we do to leave one level of a cycling model that is stacked? 453 // ? what do we do to leave one level of a cycling model that is stacked?
454 // -> This is only the case if the level was set up with forced cycling (CYCLE_ALWAYS), in which case 454 // -> This is only the case if the level was set up with forced cycling cast(CYCLE_ALWAYS), in which case
455 // the caller is sure that one does not need by-level exiting. 455 // the caller is sure that one does not need by-level exiting.
456 switch (event.character) { 456 switch (event.character) {
457 // [SHIFT-]TAB = hop between edit boxes 457 // [SHIFT-]TAB = hop between edit boxes
458 case 0x09: 458 case 0x09:
459 if (!(fExitPosition !is null && fExitPosition.includes(offset)) && !fModel.anyPositionContains(offset)) { 459 if (!(fExitPosition !is null && fExitPosition.includes(offset)) && !fModel.anyPositionContains(offset)) {
539 * @see dwtx.jface.viewers.ISelectionChangedListener#selectionChanged(dwtx.jface.viewers.SelectionChangedEvent) 539 * @see dwtx.jface.viewers.ISelectionChangedListener#selectionChanged(dwtx.jface.viewers.SelectionChangedEvent)
540 */ 540 */
541 public void selectionChanged(SelectionChangedEvent event) { 541 public void selectionChanged(SelectionChangedEvent event) {
542 ISelection selection= event.getSelection(); 542 ISelection selection= event.getSelection();
543 if (selection instanceof ITextSelection) { 543 if (selection instanceof ITextSelection) {
544 ITextSelection textsel= (ITextSelection) selection; 544 ITextSelection textsel= cast(ITextSelection) selection;
545 if (event.getSelectionProvider() instanceof ITextViewer) { 545 if (event.getSelectionProvider() instanceof ITextViewer) {
546 IDocument doc= ((ITextViewer) event.getSelectionProvider()).getDocument(); 546 IDocument doc= (cast(ITextViewer) event.getSelectionProvider()).getDocument();
547 if (doc !is null) { 547 if (doc !is null) {
548 int offset= textsel.getOffset(); 548 int offset= textsel.getOffset();
549 int length= textsel.getLength(); 549 int length= textsel.getLength();
550 if (offset >= 0 && length >= 0) { 550 if (offset >= 0 && length >= 0) {
551 LinkedPosition find= new LinkedPosition(doc, offset, length, LinkedPositionGroup.NO_STOP); 551 LinkedPosition find= new LinkedPosition(doc, offset, length, LinkedPositionGroup.NO_STOP);
832 } 832 }
833 833
834 /** Trigger content assist on choice positions */ 834 /** Trigger content assist on choice positions */
835 private void triggerContentAssist() { 835 private void triggerContentAssist() {
836 if (fFramePosition instanceof ProposalPosition) { 836 if (fFramePosition instanceof ProposalPosition) {
837 ProposalPosition pp= (ProposalPosition) fFramePosition; 837 ProposalPosition pp= cast(ProposalPosition) fFramePosition;
838 ICompletionProposal[] choices= pp.getChoices(); 838 ICompletionProposal[] choices= pp.getChoices();
839 if (choices !is null && choices.length > 0) { 839 if (choices !is null && choices.length > 0) {
840 fAssistant.setCompletions(choices); 840 fAssistant.setCompletions(choices);
841 fAssistant.showPossibleCompletions(); 841 fAssistant.showPossibleCompletions();
842 return; 842 return;
886 private void ensureAnnotationModelInstalled() { 886 private void ensureAnnotationModelInstalled() {
887 LinkedPositionAnnotations lpa= fCurrentTarget.fAnnotationModel; 887 LinkedPositionAnnotations lpa= fCurrentTarget.fAnnotationModel;
888 if (lpa !is null) { 888 if (lpa !is null) {
889 ITextViewer viewer= fCurrentTarget.getViewer(); 889 ITextViewer viewer= fCurrentTarget.getViewer();
890 if (viewer instanceof ISourceViewer) { 890 if (viewer instanceof ISourceViewer) {
891 ISourceViewer sv= (ISourceViewer) viewer; 891 ISourceViewer sv= cast(ISourceViewer) viewer;
892 IAnnotationModel model= sv.getAnnotationModel(); 892 IAnnotationModel model= sv.getAnnotationModel();
893 if (model instanceof IAnnotationModelExtension) { 893 if (model instanceof IAnnotationModelExtension) {
894 IAnnotationModelExtension ext= (IAnnotationModelExtension) model; 894 IAnnotationModelExtension ext= cast(IAnnotationModelExtension) model;
895 IAnnotationModel ourModel= ext.getAnnotationModel(getUniqueKey()); 895 IAnnotationModel ourModel= ext.getAnnotationModel(getUniqueKey());
896 if (ourModel is null) { 896 if (ourModel is null) {
897 ext.addAnnotationModel(getUniqueKey(), lpa); 897 ext.addAnnotationModel(getUniqueKey(), lpa);
898 } 898 }
899 } 899 }
902 } 902 }
903 903
904 private void uninstallAnnotationModel(LinkedModeUITarget target) { 904 private void uninstallAnnotationModel(LinkedModeUITarget target) {
905 ITextViewer viewer= target.getViewer(); 905 ITextViewer viewer= target.getViewer();
906 if (viewer instanceof ISourceViewer) { 906 if (viewer instanceof ISourceViewer) {
907 ISourceViewer sv= (ISourceViewer) viewer; 907 ISourceViewer sv= cast(ISourceViewer) viewer;
908 IAnnotationModel model= sv.getAnnotationModel(); 908 IAnnotationModel model= sv.getAnnotationModel();
909 if (model instanceof IAnnotationModelExtension) { 909 if (model instanceof IAnnotationModelExtension) {
910 IAnnotationModelExtension ext= (IAnnotationModelExtension) model; 910 IAnnotationModelExtension ext= cast(IAnnotationModelExtension) model;
911 ext.removeAnnotationModel(getUniqueKey()); 911 ext.removeAnnotationModel(getUniqueKey());
912 } 912 }
913 } 913 }
914 } 914 }
915 915
940 } 940 }
941 941
942 private void select() { 942 private void select() {
943 ITextViewer viewer= fCurrentTarget.getViewer(); 943 ITextViewer viewer= fCurrentTarget.getViewer();
944 if (viewer instanceof ITextViewerExtension5) { 944 if (viewer instanceof ITextViewerExtension5) {
945 ITextViewerExtension5 extension5= (ITextViewerExtension5) viewer; 945 ITextViewerExtension5 extension5= cast(ITextViewerExtension5) viewer;
946 extension5.exposeModelRange(new Region(fFramePosition.offset, fFramePosition.length)); 946 extension5.exposeModelRange(new Region(fFramePosition.offset, fFramePosition.length));
947 } else if (!viewer.overlapsWithVisibleRegion(fFramePosition.offset, fFramePosition.length)) { 947 } else if (!viewer.overlapsWithVisibleRegion(fFramePosition.offset, fFramePosition.length)) {
948 viewer.resetVisibleRegion(); 948 viewer.resetVisibleRegion();
949 } 949 }
950 viewer.revealRange(fFramePosition.offset, fFramePosition.length); 950 viewer.revealRange(fFramePosition.offset, fFramePosition.length);
964 if (fCurrentTarget.fWidget is null) 964 if (fCurrentTarget.fWidget is null)
965 leave(ILinkedModeListener.EXIT_ALL); 965 leave(ILinkedModeListener.EXIT_ALL);
966 966
967 if (fCurrentTarget.fKeyListener is null) { 967 if (fCurrentTarget.fKeyListener is null) {
968 fCurrentTarget.fKeyListener= new KeyListener(); 968 fCurrentTarget.fKeyListener= new KeyListener();
969 ((ITextViewerExtension) viewer).prependVerifyKeyListener(fCurrentTarget.fKeyListener); 969 (cast(ITextViewerExtension) viewer).prependVerifyKeyListener(fCurrentTarget.fKeyListener);
970 } else 970 } else
971 fCurrentTarget.fKeyListener.setEnabled(true); 971 fCurrentTarget.fKeyListener.setEnabled(true);
972 972
973 registerAutoEditVetoer(viewer); 973 registerAutoEditVetoer(viewer);
974 974
975 ((IPostSelectionProvider) viewer).addPostSelectionChangedListener(fSelectionListener); 975 (cast(IPostSelectionProvider) viewer).addPostSelectionChangedListener(fSelectionListener);
976 976
977 createAnnotationModel(); 977 createAnnotationModel();
978 978
979 showSelection(); 979 showSelection();
980 980
1027 */ 1027 */
1028 private void registerAutoEditVetoer(ITextViewer viewer) { 1028 private void registerAutoEditVetoer(ITextViewer viewer) {
1029 try { 1029 try {
1030 String[] contentTypes= getContentTypes(viewer.getDocument()); 1030 String[] contentTypes= getContentTypes(viewer.getDocument());
1031 if (viewer instanceof ITextViewerExtension2) { 1031 if (viewer instanceof ITextViewerExtension2) {
1032 ITextViewerExtension2 vExtension= ((ITextViewerExtension2) viewer); 1032 ITextViewerExtension2 vExtension= (cast(ITextViewerExtension2) viewer);
1033 for (int i= 0; i < contentTypes.length; i++) { 1033 for (int i= 0; i < contentTypes.length; i++) {
1034 vExtension.prependAutoEditStrategy(fAutoEditVetoer, contentTypes[i]); 1034 vExtension.prependAutoEditStrategy(fAutoEditVetoer, contentTypes[i]);
1035 } 1035 }
1036 } else { 1036 } else {
1037 Assert.isTrue(false); 1037 Assert.isTrue(false);
1044 1044
1045 private void unregisterAutoEditVetoer(ITextViewer viewer) { 1045 private void unregisterAutoEditVetoer(ITextViewer viewer) {
1046 try { 1046 try {
1047 String[] contentTypes= getContentTypes(viewer.getDocument()); 1047 String[] contentTypes= getContentTypes(viewer.getDocument());
1048 if (viewer instanceof ITextViewerExtension2) { 1048 if (viewer instanceof ITextViewerExtension2) {
1049 ITextViewerExtension2 vExtension= ((ITextViewerExtension2) viewer); 1049 ITextViewerExtension2 vExtension= (cast(ITextViewerExtension2) viewer);
1050 for (int i= 0; i < contentTypes.length; i++) { 1050 for (int i= 0; i < contentTypes.length; i++) {
1051 vExtension.removeAutoEditStrategy(fAutoEditVetoer, contentTypes[i]); 1051 vExtension.removeAutoEditStrategy(fAutoEditVetoer, contentTypes[i]);
1052 } 1052 }
1053 } else { 1053 } else {
1054 Assert.isTrue(false); 1054 Assert.isTrue(false);
1066 * @throws BadPartitioningException 1066 * @throws BadPartitioningException
1067 * @since 3.1 1067 * @since 3.1
1068 */ 1068 */
1069 private String[] getContentTypes(IDocument document) throws BadPartitioningException { 1069 private String[] getContentTypes(IDocument document) throws BadPartitioningException {
1070 if (document instanceof IDocumentExtension3) { 1070 if (document instanceof IDocumentExtension3) {
1071 IDocumentExtension3 ext= (IDocumentExtension3) document; 1071 IDocumentExtension3 ext= cast(IDocumentExtension3) document;
1072 String[] partitionings= ext.getPartitionings(); 1072 String[] partitionings= ext.getPartitionings();
1073 Set contentTypes= new HashSet(20); 1073 Set contentTypes= new HashSet(20);
1074 for (int i= 0; i < partitionings.length; i++) { 1074 for (int i= 0; i < partitionings.length; i++) {
1075 contentTypes.addAll(Arrays.asList(ext.getLegalContentTypes(partitionings[i]))); 1075 contentTypes.addAll(Arrays.asList(ext.getLegalContentTypes(partitionings[i])));
1076 } 1076 }
1128 // don't remove the verify key listener to let it keep its position 1128 // don't remove the verify key listener to let it keep its position
1129 // in the listener queue 1129 // in the listener queue
1130 if (fCurrentTarget.fKeyListener !is null) 1130 if (fCurrentTarget.fKeyListener !is null)
1131 fCurrentTarget.fKeyListener.setEnabled(false); 1131 fCurrentTarget.fKeyListener.setEnabled(false);
1132 1132
1133 ((IPostSelectionProvider) viewer).removePostSelectionChangedListener(fSelectionListener); 1133 (cast(IPostSelectionProvider) viewer).removePostSelectionChangedListener(fSelectionListener);
1134 1134
1135 redraw(); 1135 redraw();
1136 } 1136 }
1137 1137
1138 void leave(final int flags) { 1138 void leave(final int flags) {
1152 1152
1153 for (int i= 0; i < fTargets.length; i++) { 1153 for (int i= 0; i < fTargets.length; i++) {
1154 LinkedModeUITarget target= fTargets[i]; 1154 LinkedModeUITarget target= fTargets[i];
1155 ITextViewer viewer= target.getViewer(); 1155 ITextViewer viewer= target.getViewer();
1156 if (target.fKeyListener !is null) { 1156 if (target.fKeyListener !is null) {
1157 ((ITextViewerExtension) viewer).removeVerifyKeyListener(target.fKeyListener); 1157 (cast(ITextViewerExtension) viewer).removeVerifyKeyListener(target.fKeyListener);
1158 target.fKeyListener= null; 1158 target.fKeyListener= null;
1159 } 1159 }
1160 1160
1161 viewer.removeTextInputListener(fCloser); 1161 viewer.removeTextInputListener(fCloser);
1162 } 1162 }
1189 public void run() { 1189 public void run() {
1190 if (fExitPosition !is null) 1190 if (fExitPosition !is null)
1191 fExitPosition.getDocument().removePosition(fExitPosition); 1191 fExitPosition.getDocument().removePosition(fExitPosition);
1192 1192
1193 for (Iterator iter = docs.iterator(); iter.hasNext(); ) { 1193 for (Iterator iter = docs.iterator(); iter.hasNext(); ) {
1194 IDocument doc= (IDocument) iter.next(); 1194 IDocument doc= cast(IDocument) iter.next();
1195 doc.removePositionUpdater(fPositionUpdater); 1195 doc.removePositionUpdater(fPositionUpdater);
1196 bool uninstallCat= false; 1196 bool uninstallCat= false;
1197 String[] cats= doc.getPositionCategories(); 1197 String[] cats= doc.getPositionCategories();
1198 for (int j= 0; j < cats.length; j++) { 1198 for (int j= 0; j < cats.length; j++) {
1199 if (getCategory().equals(cats[j])) { 1199 if (getCategory().equals(cats[j])) {
1221 runnable.run(); 1221 runnable.run();
1222 } 1222 }
1223 1223
1224 private void endCompoundChange() { 1224 private void endCompoundChange() {
1225 if (fHasOpenCompoundChange) { 1225 if (fHasOpenCompoundChange) {
1226 ITextViewerExtension extension= (ITextViewerExtension) fCurrentTarget.getViewer(); 1226 ITextViewerExtension extension= cast(ITextViewerExtension) fCurrentTarget.getViewer();
1227 IRewriteTarget target= extension.getRewriteTarget(); 1227 IRewriteTarget target= extension.getRewriteTarget();
1228 target.endCompoundChange(); 1228 target.endCompoundChange();
1229 fHasOpenCompoundChange= false; 1229 fHasOpenCompoundChange= false;
1230 } 1230 }
1231 } 1231 }
1232 1232
1233 private void beginCompoundChange() { 1233 private void beginCompoundChange() {
1234 if (!fHasOpenCompoundChange) { 1234 if (!fHasOpenCompoundChange) {
1235 ITextViewerExtension extension= (ITextViewerExtension) fCurrentTarget.getViewer(); 1235 ITextViewerExtension extension= cast(ITextViewerExtension) fCurrentTarget.getViewer();
1236 IRewriteTarget target= extension.getRewriteTarget(); 1236 IRewriteTarget target= extension.getRewriteTarget();
1237 target.beginCompoundChange(); 1237 target.beginCompoundChange();
1238 fHasOpenCompoundChange= true; 1238 fHasOpenCompoundChange= true;
1239 } 1239 }
1240 } 1240 }