Mercurial > projects > dwt-addons
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 } |