From 5ae8e3d4b72efb1f3c2c7da761083c0bb295dc2e Mon Sep 17 00:00:00 2001 From: Bogdan Gheorghe Date: Mon, 18 Apr 2005 19:06:02 +0000 Subject: [PATCH] Patch for Devin Steffler w/ Modifications - Indexer View Search --- .../icons/dom_view/refresh_view.gif | Bin 0 -> 182 bytes .../icons/dom_view/reload_view.gif | Bin 0 -> 144 bytes .../icons/indexer_view/alphab_sort.gif | Bin 0 -> 224 bytes .../icons/indexer_view/alphab_sorted.gif | Bin 0 -> 99 bytes .../indexer_view/constructor_ref_obj.GIF | Bin 838 -> 0 bytes .../indexer_view/constructor_ref_obj.gif | Bin 0 -> 181 bytes .../icons/indexer_view/display_full_name.gif | Bin 0 -> 590 bytes .../icons/indexer_view/enumerator_ref_obj.GIF | Bin 836 -> 0 bytes .../icons/indexer_view/enumerator_ref_obj.gif | Bin 0 -> 73 bytes .../icons/indexer_view/field_ref_obj.GIF | Bin 837 -> 0 bytes .../icons/indexer_view/field_ref_obj.gif | Bin 0 -> 117 bytes .../indexer_view/full_name_displayed.gif | Bin 0 -> 563 bytes .../icons/indexer_view/function_obj.gif | Bin 849 -> 97 bytes .../icons/indexer_view/function_ref_obj.GIF | Bin 838 -> 0 bytes .../icons/indexer_view/function_ref_obj.gif | Bin 0 -> 111 bytes .../icons/indexer_view/fwd_class.gif | Bin 888 -> 586 bytes .../icons/indexer_view/fwd_struct.GIF | Bin 896 -> 0 bytes .../icons/indexer_view/fwd_struct.gif | Bin 0 -> 585 bytes .../icons/indexer_view/fwd_union.GIF | Bin 906 -> 0 bytes .../icons/indexer_view/fwd_union.gif | Bin 0 -> 170 bytes .../icons/indexer_view/grouped_all.gif | Bin 822 -> 856 bytes .../icons/indexer_view/grouped_decl.gif | Bin 821 -> 856 bytes .../icons/indexer_view/grouped_ref.gif | Bin 822 -> 857 bytes .../icons/indexer_view/grouped_type.gif | Bin 819 -> 847 bytes .../indexer_view/method_public_ref_obj.GIF | Bin 846 -> 0 bytes .../indexer_view/method_public_ref_obj.gif | Bin 0 -> 193 bytes .../icons/indexer_view/namespace_ref_obj.GIF | Bin 889 -> 0 bytes .../icons/indexer_view/namespace_ref_obj.gif | Bin 0 -> 585 bytes .../icons/indexer_view/search_decl_obj.gif | Bin 0 -> 361 bytes .../icons/indexer_view/typedecl_ref_obj.GIF | Bin 871 -> 0 bytes .../icons/indexer_view/typedecl_ref_obj.gif | Bin 0 -> 585 bytes .../eclipse/cdt/ui/tests/DOMAST/DOMAST.java | 98 +++---- .../ui/tests/DOMAST/DOMASTPluginImages.java | 4 + .../ui/tests/IndexerView/IndexerNodeLeaf.java | 12 +- .../tests/IndexerView/IndexerNodeParent.java | 95 +++++++ .../ui/tests/IndexerView/IndexerQuery.java | 244 ++++++++++++++++++ .../cdt/ui/tests/IndexerView/IndexerView.java | 120 +++++++-- .../IndexerView/IndexerViewPluginImages.java | 10 + 38 files changed, 518 insertions(+), 65 deletions(-) create mode 100644 core/org.eclipse.cdt.ui.tests/icons/dom_view/refresh_view.gif create mode 100644 core/org.eclipse.cdt.ui.tests/icons/dom_view/reload_view.gif create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/alphab_sort.gif create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/alphab_sorted.gif delete mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/constructor_ref_obj.GIF create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/constructor_ref_obj.gif create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/display_full_name.gif delete mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/enumerator_ref_obj.GIF create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/enumerator_ref_obj.gif delete mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/field_ref_obj.GIF create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/field_ref_obj.gif create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/full_name_displayed.gif delete mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/function_ref_obj.GIF create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/function_ref_obj.gif delete mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/fwd_struct.GIF create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/fwd_struct.gif delete mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/fwd_union.GIF create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/fwd_union.gif delete mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/method_public_ref_obj.GIF create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/method_public_ref_obj.gif delete mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/namespace_ref_obj.GIF create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/namespace_ref_obj.gif create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/search_decl_obj.gif delete mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/typedecl_ref_obj.GIF create mode 100644 core/org.eclipse.cdt.ui.tests/icons/indexer_view/typedecl_ref_obj.gif create mode 100644 core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerQuery.java diff --git a/core/org.eclipse.cdt.ui.tests/icons/dom_view/refresh_view.gif b/core/org.eclipse.cdt.ui.tests/icons/dom_view/refresh_view.gif new file mode 100644 index 0000000000000000000000000000000000000000..a063c230aca909c805f6a97a93c524c89198cc6c GIT binary patch literal 182 zcmZ?wbhEHb6krfw*v!E2|G#~Gz5V?8@&EtNpFh8T|Ni;^@7vF>x4%E%zCPam|NsB{ zfkN}=0~ripp!k!8k%57iK?lSGnZdx4yy2uL^Ir3ap5|M3p71&;7@R&L;67QxL54l! zu*}gfQtm|zTcZ0WIjBgri1Vs5s`jxmIW;RhF|qP|cz{DfsHKg4$1sH2{nEMt%SQ literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui.tests/icons/dom_view/reload_view.gif b/core/org.eclipse.cdt.ui.tests/icons/dom_view/reload_view.gif new file mode 100644 index 0000000000000000000000000000000000000000..919423d435727bf8525c777e1957a3606e413047 GIT binary patch literal 144 zcmZ?wbhEHb6krfwSj51vV8N3A|NrmbzkmMx`3(&X_4W1f@$o;`TCpqU&w2|E?-?aG4NgfMQsOz1$l*AvN>NfP-9h5WSHbs1QpXc+Sg;;DAkC=4 waKUj=FbBunhQtkfZ05p=4}w|!EUhi`1Wy{CNgTm}Yf0Og}O-v9sr literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/alphab_sort.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/alphab_sort.gif new file mode 100644 index 0000000000000000000000000000000000000000..6d772441d0dbf077f40c69416a5bf27d2901b966 GIT binary patch literal 224 zcmZ?wbhEHb6krfwIKsd%Kfa!sfoZ;deZ74>BO|lD{d{}-c>DPM_VxSi=kKqdKY#xI z{S1r@`{&QUzaIpE0t^fc|Ns97lEeVTpDc_F3_=V#AjKd%8CYW%sPv^|dYvlN=>93t zzr(BeCyQaFf}XH`=iPInol8Yb=B@3p@(?@xlz(B6$dtwGpH)nG_a$_ixeJ-7^f5Z@ mQJs7Fb%&#z;X&649dbdtyw6qEs4_4s@iN6IB_t>^SOWlBJVIUo literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/alphab_sorted.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/alphab_sorted.gif new file mode 100644 index 0000000000000000000000000000000000000000..62a8fdb555b9f22bab11fcc702ba95eb5c5bd059 GIT binary patch literal 99 zcmZ?wbhEHb6krfwn8?7efB*jZ^XLEn|DS<@LGdRGBLf2ygAR}llobH7O{Vm(WO}&a z5a$Kg)Q_2dS#F$>k4zW1=bg9E)$1ym%jh4#+<98|l#5FDL$gHF5i7)qQg`cF$1XJyZSvvl;8!CMAi|&nQV6n>fz?Ps zwJ#-eUdF0*IbH&~j0_v1I4TmBoId!c=P<+44xhfs9!jheEmS+E9{!nODz$daHc=)9 FYXDFdK#l+a literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/display_full_name.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/display_full_name.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b50ff8d67b708f94fac7d38b03af9c88ec08468 GIT binary patch literal 590 zcmZ?wbhEHb6krfwc*el+?fdWa+LbwtYg;F;Yn#08)7RhMe*F3Q>(7s$zjK?{7I$u{ z>fc^HaeL#m-A&W?v`$&yI%Qqkly&bv|7xFepuA;P=d?9X-~4#~?&sT2zdn8amEXHF zDX*b-#>#syzCU{XZXKOn9W8F`{Szj-w78ownhEoAb8#|qIJda6Encj! zgw3JFQJqm;YW;?dQXWpGlBQY{cWHXq3o!~ADKIh!^YL&ov1xeNsY$3A@0w`hVJpul zZ+`gb@sn)k9ySKz23D++tgl|M8d`c-i!q8>eEs&_!b3+@UsdkETntN$V@GobgOXA1 mE0-kZgSg2s#xEF49GDC@A;?x@LIb@|OMqox~*gNw}RFoQ|Uj@ zC;0Fo9W%Va#i8Klql<$>{p1@cw;{>NIVbnNeEs6_lkZ+ldwU*3G&DBCJiv>kDbypAdEK>A_X}CscBpeylG)>nGO}4@s zFi67^TGUt!Hqc-(oF%Ao!p*`gOCM{=+|9#0OD-%ZhFgS1q8?K8TDoOeA`d^H$uxGL z9}*~pHDHj2C9UvaG1x$ZmE~NO$%$~!G7^2PC5!M#d_^uSD0+q`KH@Y6z>9W_MlDw2 z2Q-<+4mcqgg|G$;(o8}N9xMhM=&Tb}H)V1nxfn*GkF{ixSqE(AFBa{hbT;+wFF@+wJ%J>+9>o;cz@2PycRKtIu86op_f|a%vBr{39OL8(!an y^d89R*4`MZ8kp8f~My<6)5 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/enumerator_ref_obj.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/enumerator_ref_obj.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec911412effc35d39560e0742629e688a93a7c10 GIT binary patch literal 73 zcmZ?wbhEHb6krfwn8?5|CDmZd;6Z`a;Kdk-Alckt-J zBPR|WJ$c~JQHZi1KYkuLetPTnod*sb`SSJK*Kgmy|M&^iyKCR!6|2@9Japvar!Sws zfW(2O0ok8Ee+80Y!LLA-zkdB*zh&3fo%^@#Ixu(Mfip zk^leyrws+5_>+Z^fx&}8hXDvcal*hpp~0i6xuvy9rlYf~qeX_jf5JqWUNc5BVP0-7 zPDYN&%`$9@7AY)do8PX^s4lg3-P%qM8B)UJV<2u|#VX1A@II^IE-^+ii&w8-ZIn^fSC#uLr}uTmCM8Ct8MEf7 X{IJ*}VbPS(E+EUK7iFO#z+epk61JV>D8L}VuxKK;l#Sv~7DfgJ76u&#AOMLnFspg&y7SNA)X4@`;T~J3 hD|Zws_)qjs*tsxOV}t*PeJLV$OqagjGmnA68URKW8TrFo zcx+g3u$eI9# HV6X-NNJAgO diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/function_ref_obj.GIF b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/function_ref_obj.GIF deleted file mode 100644 index c644c3e3d6823359faa1f4ec1e1259ad95b422df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 838 zcmZ?wbhEHb6krfw_|Cv!UvF<8Z(lz@e*XUW|Ns9pjDpb+7)c?Z1M(~=FEDUuGjMXq vcx+g3u$e diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/function_ref_obj.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/function_ref_obj.gif new file mode 100644 index 0000000000000000000000000000000000000000..92075a8a352233301ec30f28249fda12d06130a4 GIT binary patch literal 111 zcmZ?wbhEHb6krfwSj51}GOLJe1=m#9$2o3Fs;6 literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/fwd_class.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/fwd_class.gif index 51396ef61145494bf75d06df87f07744be8c5061..6279478c51ba4953e3cf8d23eb02f2e98625e92e 100644 GIT binary patch literal 586 zcmZ?wbhEHb6krfwc*ekxv!cRsX(Ohwq+z^!{nkw1lu( zDPc2HV&`P7KEHX-jYA>R6T@ewM9fTyo0E0x)!k_2wz@P-Sk|APSoeSzXn7Dfh!CJH zUW|QB>`uX}Lj40G{d}B+nprJeB3+%2xVyPIur@P_Yes5`iin6x$SLvdlb4RvR!~t9 zHV{xd)g+{BY8h#$p%`heufxzR!((J)w%Xjzgl9t&r__`S8y6qvlQm{hF_?1TP^Xw) b)SL|)K3rsCX6E2=`0#$>@qT$`Mh0sDD)P+= literal 888 zcmZ?wbhEHb6krfw_|Cv!Kfm6-KE8hceEa$K_VM=n@9(eQAHRS9{QLL!{|5txQ7{?; z!#4zUKwbmo1qO~-24M~vj|~eBHggCoa2%MR$kf8a?lI-Wg@lGq2~9PbjD|;yEv#%D z9tMUCP7IRl0v0oio;psEjFsZCoV3WZkzJ3^;6R{KV?T50vNaI~NuEsRyw6k)m@r)E KRZakq`npAWwqw z0s}`X122b+$A$$5n>lzHI1Cmf0>z~HI2-~OIkxi{nyGLkBr!0tIti`d_^8mxsG!Z~ zU@>WtHxq}mSjJC5Mb`;(iL+cH6Bad0WwO3E<>n*@&qgW3e|tI%8yY5aSPRXtdXVAN J!pO*A4FJ#YFN6R9 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/fwd_struct.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/fwd_struct.gif new file mode 100644 index 0000000000000000000000000000000000000000..5db2efa2516a2e250ad5e531f60c7b4ffc4f48e6 GIT binary patch literal 585 zcmZ?wbhEHb6krfwc*el+?dP9AfB%`~&-bif9o@e*aq^C&$vcxL?@XDpt6;&AytxMo z<{c9j4%*K@aPrC92Oqxv{PXwI&)+}({QVCG3cG&US|>JTwh`mtiMdw(MXgEaudHtoy+ literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/fwd_union.GIF b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/fwd_union.GIF deleted file mode 100644 index 8396e8eeb89548fe916bddb5fcbad88b68f00a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 906 zcmZ?wbhEHb6krfw_|CvkUvIyEfBgOX_4DV)|NlRK|Ni>=dLVZ{0|UeV|NnvHC>RZa zVH^TFAisg~0s}`rgD{7T$A$$5n>mDKI1CmfHZXHYiwQVvbZ~BF<`TGZVq$}93mcOF zM?%75h7LAC9t8u2gU9+c!?)ehU^w77RVP+xMP=|Zzj=m|uUaAv7@8Ic0Mwc|;{X5v diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/fwd_union.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/fwd_union.gif new file mode 100644 index 0000000000000000000000000000000000000000..f5e36403ea7bd8d1b0873073efc3cfbeda52d839 GIT binary patch literal 170 zcmZ?wbhEHb6krfw*v!CCU$3=)fBdRdq4Vd*U%67hYE}J}E2|h782x;!hSv z1_llW9gq~r3xA_ew|}+<7p@v4=ICvvuJ*H_zNG0f|joHA1W8nhj;Nrn5NQ z_*$pcl;C9YtAR~*bH)SP$){shS#c;tNAfC^X`D|Gk=2%%$HAa9>E$NI8~HPBl$aQ- E0WkqI-T(jq literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/grouped_all.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/grouped_all.gif index 0f5b4f1844b6e9ef4190bb6a9c9b151e796a0d19..5b19b27c6d558f845cb58b2ec04345bc937b0ce4 100644 GIT binary patch literal 856 zcmZ?wbhEHb6krfw_|CxKSiU~EZI?jI9LeMbYT3(m3RZYDZ{Be7{(mrF7zLvtFswsB z2jn|YUSQy`Wf0_$@z}7yv5`qg&SXZwfkTbF%62_B3KluHi1TY5$q-C(Ym+n=TH+Cu a;yFpqepw8s(UKDr)#5kRWEdzgSOWkM0xBH< literal 822 zcmZ?wbhEHbWM|-D_|Cxa|Nnmmh6aXFFd70QG6Zx$z6Rw51`cTkMh+f@4G9g+tc(IG V8379qHgm}G&G9f?c%Xs78UPG!4-EhS diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/grouped_decl.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/grouped_decl.gif index 02861a89a1fedcfe99381ae320f4a61563110c5a..58fb932151b63d639a2d5b8aea80da5f5b2be477 100644 GIT binary patch literal 856 zcmZ?wbhEHb6krfw_|CxKSiU~EZI?jI9LeMbYT3(m3RZYDZ{Be7{(mrF7zLvtFswsB z2jn|YUSQy`Wf0_$@z}87U^5%5MvMl7B2yc;tXqx6#s@BK?Am-+Rs<@zw{kk>iFkfU ZcJ5N~?m8kNw8*7HUG~(RN&^K3YXH=bDB1u3 literal 821 zcmZ?wbhEHbWM|-D_|Cxa|Nnmmh6aXFFd70QG6Zx$z6Rw51`a6(Mh+Pbg9gVYMg|!j U3xkD++IYmZrg#)2I51cP0PLI%R{#J2 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/grouped_ref.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/grouped_ref.gif index 936ad6e3d41a6644b63b05bb777acf84dadf675c..93c5a033a632ca87a42ef8b86f1afc7110abe93d 100644 GIT binary patch literal 857 zcmZ?wbhEHb6krfw_|CxKSiU~EZI?jI9LeMbYT3(m3RZYDZ{Be7{(mrF7zLvtFswsB z2jn|YUSQy`V-Vz!@z}87U^5%5M$C>63WwYIM1`izn6Sv9TUg#~&5A$=mwpZdu{#<@ b${ua<`gt;)f{zYNRSZ;`<9Rv3fx#L8UH>aF literal 822 zcmZ?wbhEHbWM|-D_|Cxa|Nnmmh6aXFFd70QG6Zx$z6Rw51`cTkMh+PbgNB0)%z{h- VJ3b^FYGo0Ws<|;i;a~%UH2@Io53B$H diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/grouped_type.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/grouped_type.gif index efc48fbde4c03f5c17ab1b3bccf507224ed7c298..f2f0ebed6cf6ce22143d5f45de6dab2322af56c5 100644 GIT binary patch literal 847 zcmZ?wbhEHb6krfw_|CxKSiU~EZI?jI9LeMbYT3(m3RZYDZ{Be7{(mrF7zLvtFswsB z2jn|YUSQxbVG!hy@z}87U^5%5M$Cx-#e;1EtO_m<3LZIkim`{C@eou#-Ye-CC1N>I Q#c48oU{Oq_fdYdy0HH@E{Qv*} literal 819 zcmZ?wbhEHbWM|-D_|Cxa|Nnmmh6aXFFd70QG6Zx$z6Rw51`Y`ZMh+Pbg9gWD7G?pR R9Rdx9TKR>|R3ro#tO3xk3;6&5 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/method_public_ref_obj.GIF b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/method_public_ref_obj.GIF deleted file mode 100644 index 3bca3e8eda4889e60057ff964c3b13aae5f5d7a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 846 zcmZ?wbhEHb6krfw_|Cv!UvF<8Z(lz@e*XUW|Ns9pjDpb+7)c?Z1M(~=FEDTzGjMXq zcx+g3u$eVRxXubL!4|)qjO}gg>klxZ?TGXw~#-V zU_Y2&N}FX?r*L1YbYiM-aj|xBv2}#Mgo3?-guaA=wSS1Yfrz+)iMWB7#*ml2h^x<; ztIwFU(w+bR{{R30A^8LW0015UEC2ui01yBW000F(peK%GX`X1Rt}L1aL$Vf5mpMgx vG+WO#2NYmJDM}^)l;8n@L?90V%CN9pFcyU&MPO(u48jTlL$uClRtNw)MiWcq literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/namespace_ref_obj.GIF b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/namespace_ref_obj.GIF deleted file mode 100644 index dbda5b32a7c2970ecb581197207a2911b01596ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 889 zcmZ?wbhEHb6krfw_|CvkZW7jQQn504+Cr1*lS~#Y@LjVueaE5RQzvGgzqa}Ik54~e z-F&-Y>dyaQz%U9%LtuD?fDXtzpuE7q5yv3SA>*-O!NFz@X#)v?1rHh6IGA}P92Pt} z!obGNvEszWMGQU6;zAk?4-R;+uyWYQSWIkSY-Ed*3b0H_Xz0=x)tL|}n9@93Pg)^k Z!h(Z7ObkL=v8T4Iyu3VMHX93rH2|UvKm-5) diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/namespace_ref_obj.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/namespace_ref_obj.gif new file mode 100644 index 0000000000000000000000000000000000000000..c70cce0ecdfda7de896697d28ddcf2c4ca7e8322 GIT binary patch literal 585 zcmZ?wbhEHb6krfwc*el+_s_pCpML!M`KKUmLw@YKqJ)iw@f(U0Hx?zXElt^2k+!8a zXGd+$_NJnp{SAkvcO0AAeso6H@j3k`=TADlXxf=AtFCQdclGGLyO+;Czj*q|o$GHN z-TQF=_S;aW`BCokW4)HdcrJ+ZUJ~oIFve>^toOo1|K$n(%M$&UB?T-`30jd9ur$Gc zQA*JA)Zi7VAuDsD*Jekr$%$E0n6NQFZe3~0rsCv{%_Vy}tM<25?Cz@B*Vk}xdiUXl zQ_q|^_T+|z!1cs19A>1P8isiH3T&^x3sp|^0P9t z@!PgF*)VhSP2py?X|vHYwVFHERBuMJl&X&j=Egmkq$8MU>Y{Q|Ug zM4F{#jlJ9~e*3PK-O#L76EIRx?CQcePSC|iR3+pRcR2|v4*j=-c Hfx#L8LGIUr literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/search_decl_obj.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/search_decl_obj.gif new file mode 100644 index 0000000000000000000000000000000000000000..f31a02a394d157171eb614e3836c31f37df98391 GIT binary patch literal 361 zcmV-v0hazpNk%w1VGsZi0M!5h^Y#1q`TX_w{Pp+y`TG3f>G$aF`Rwuf@ALXxda7W4 zt!9IGTU`D}`};p+I{>G$RB`Qz*N=VUAi+p*CJO~8R-9$h2?!eqgfvAd2NDSq2aSw1MJfgu2@w&1 z7%N3A77&1R2@owsBo_~+7l02VMI{v#1q}@a6%+*_MJEosyu2nwC?X#pAjBUcA}CDD HLqPyL)C;dr literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/typedecl_ref_obj.GIF b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/typedecl_ref_obj.GIF deleted file mode 100644 index fd9a7989f42ba06d503084c80ee70c9763d66d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 871 zcmW-gF=$i)42Cllso0@ImuiQCP$9VJEf$A5wH9v8&~6SEbgUq5c_40e5EpOq2CEPh z(#BMj@;LgEW)Sf(MJi20H6R)lHe4NG^tv=wmHeWYz)O^B0TuqIJ*q zNJXmkz0TWOSsYt;>e{W~qTFhzw70j{>-F~c_XmT)a5x-|M&t4L?CfkZnN0tk_xo>}rkV0CPi5LZ zc=C_9UT=7P3o_f4>BXhHANxm7XOB*{KhG~6KRfuc`TpR?@`vqTHy_Syyyzc4Uw*K< s@Z`qT=H<1{8P`{>W<*H7=hzrJ(n!i?Ph57VM;IRF3v diff --git a/core/org.eclipse.cdt.ui.tests/icons/indexer_view/typedecl_ref_obj.gif b/core/org.eclipse.cdt.ui.tests/icons/indexer_view/typedecl_ref_obj.gif new file mode 100644 index 0000000000000000000000000000000000000000..9d6df6acc621322261dcd85fa7cdcab42801cd63 GIT binary patch literal 585 zcmZ?wbhEHb6krfwc*el+?_Jp6m%)Eu1^;*w{`;Z-uZRBMZ+d^e;P(DX^y_m`U(UOI zKJWJagx9+hUN4UZKRudodX?9seKAiCrMzy`lcG|w#W&3)U?VFu;ru7!8A zzlXkoft|ITp@E*ge~X`0%9I_?7a!q~_2UucoOHOYQ_8YIqEh5(#{{*2Sq7F)8y6q% JYh+-s1^{G4(g^?n literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/DOMAST/DOMAST.java b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/DOMAST/DOMAST.java index 0d7a418ee83..1a65e3b8610 100644 --- a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/DOMAST/DOMAST.java +++ b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/DOMAST/DOMAST.java @@ -149,20 +149,20 @@ public class DOMAST extends ViewPart { private Action displayNodeSignatureAction; private Action displayExpressionAction; private Action displayInitializerAction; - private Action singleClickAction; + protected Action singleClickAction; private Action loadActiveEditorAction; private Action refreshAction; private Action expandAllAction; private Action collapseAllAction; private Action clearAction; private Action searchNamesAction; - private IFile file = null; + protected IFile file = null; private IEditorPart part = null; - private ParserLanguage lang = null; + protected ParserLanguage lang = null; private CustomFiltersActionGroup customFiltersActionGroup; - private static ViewContentProvider.StartInitializingASTView initializeASTViewJob = null; + protected static ViewContentProvider.StartInitializingASTView initializeASTViewJob = null; /* * The content provider class is responsible for providing objects to the @@ -177,7 +177,7 @@ public class DOMAST extends ViewPart { private DOMASTNodeParent invisibleRoot; private DOMASTNodeParent tuTreeParent = null; private IASTTranslationUnit tu = null; - private IASTProblem[] astProblems = null; + protected IASTProblem[] astProblems = null; public ViewContentProvider() { } @@ -283,16 +283,16 @@ public class DOMAST extends ViewPart { } - private void expandTreeIfNecessary(TreeItem[] tree, Object[] expanded) { + private void expandTreeIfNecessary(TreeItem[] tree, Object[] theExpanded) { for( int i=0; i 0) end = word.indexOf(IIndexConstants.SEPARATOR, word.indexOf(stringBeforeName) + stringBeforeName.length() ); - name = word.substring(word.indexOf(stringBeforeName) + stringBeforeName.length(), end); + if (stringBeforeName == null) { + name = word; + return; + } + + name = word.substring(word.indexOf(stringBeforeName) + stringBeforeName.length()); } @@ -291,6 +294,9 @@ public class IndexerNodeLeaf implements IAdaptable { } public String toString() { + if (!parent.isDisplayFullName() && name.indexOf(IIndexConstants.SEPARATOR) > 0) + return name.substring(0, name.indexOf(IIndexConstants.SEPARATOR)); + return name; } diff --git a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerNodeParent.java b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerNodeParent.java index c0f8c7f9a72..93b9298f0b0 100644 --- a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerNodeParent.java +++ b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerNodeParent.java @@ -32,6 +32,9 @@ public class IndexerNodeParent extends IndexerNodeLeaf { private boolean firstDisplay=true; private IndexerFilterManager filterManager = null; private IndexerView.ViewContentProvider view=null; + private boolean sort=true; + private boolean displayFullName=true; + private boolean navigate=false; public IndexerNodeParent(IEntryResult result, File indexerFile, IndexerView.ViewContentProvider view) { super(result, indexerFile); @@ -52,6 +55,14 @@ public class IndexerNodeParent extends IndexerNodeLeaf { public IndexerNodeLeaf[] getChildren() { // if there is nothing to display return an empty list if (children.length == 0) return EMPTY_INDEXER_NODE_LEAVES; + + // navigate is used to determine if the array should be traversed or not (button pressed or first loading) + if (!navigate) { + return (IndexerNodeLeaf[])ArrayUtil.removeNulls(IndexerNodeLeaf.class, childrenToDisplay); + } else { + navigate = false; + } + // obey the bounds of the list! if (!firstDisplay && (!isForward && lastBackwardDisplayed==0 || isForward && lastForwardDisplayed==children.length-1)) { @@ -63,6 +74,14 @@ public class IndexerNodeParent extends IndexerNodeLeaf { return (IndexerNodeLeaf[])ArrayUtil.removeNulls(IndexerNodeLeaf.class, childrenToDisplay); } + if (firstDisplay && children.length > 1) { + if (sort) {// sort children based on name + quickSort(children, 0, children.length - 1, true); + } else {// sort children based on word + quickSort(children, 0, children.length - 1, false); + } + } + int start=0; if (isForward) { if (lastForwardDisplayed==0) start=0; @@ -139,6 +158,57 @@ public class IndexerNodeParent extends IndexerNodeLeaf { return (IndexerNodeLeaf[])ArrayUtil.removeNulls(IndexerNodeLeaf.class, childrenToDisplay); } + private static void quickSort(IndexerNodeLeaf[] list, int left, int right, boolean sortName) { + int original_left= left; + int original_right= right; + String mid=null; + if (sortName) { + mid= list[(left + right) / 2].getName().toUpperCase(); + } else { + mid= new String(list[(left + right) / 2].getResult().getWord()).toUpperCase(); + } + do { + String compareL = null; + String compareR = null; + if (sortName) { + compareL = list[left].getName().toUpperCase(); + compareR = list[right].getName().toUpperCase(); + } else { + compareL = new String(list[left].getResult().getWord()).toUpperCase(); + compareR = new String(list[right].getResult().getWord()).toUpperCase(); + } + while (compareL.compareTo(mid) < 0) { + left++; + if (sortName) { + compareL = list[left].getName().toUpperCase(); + } else { + compareL = new String(list[left].getResult().getWord()).toUpperCase(); + } + } + while (mid.compareTo(compareR) < 0) { + right--; + if (sortName) { + compareR = list[right].getName().toUpperCase(); + } else { + compareR = new String(list[right].getResult().getWord()).toUpperCase(); + } + } + if (left <= right) { + IndexerNodeLeaf tmp= list[left]; + list[left]= list[right]; + list[right]= tmp; + left++; + right--; + } + } while (left <= right); + if (original_left < right) { + quickSort(list, original_left, right, sortName); + } + if (left < original_right) { + quickSort(list, left, original_right, sortName); + } + } + public void setChildren(IndexerNodeLeaf[] children) { this.children = children; } @@ -160,6 +230,7 @@ public class IndexerNodeParent extends IndexerNodeLeaf { } public void reset() { + navigate=true; lastBackwardDisplayed = 0; lastForwardDisplayed=0; isForward=true; @@ -182,4 +253,28 @@ public class IndexerNodeParent extends IndexerNodeLeaf { } return filteredCount; } + + public boolean isSort() { + return sort; + } + + public void setSort(boolean sort) { + this.sort = sort; + } + + public boolean isDisplayFullName() { + return displayFullName; + } + + public void setDisplayFullName(boolean displayFullName) { + this.displayFullName = displayFullName; + } + + public boolean isNavigate() { + return navigate; + } + + public void setNavigate(boolean navigate) { + this.navigate = navigate; + } } diff --git a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerQuery.java b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerQuery.java new file mode 100644 index 00000000000..f487697360f --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerQuery.java @@ -0,0 +1,244 @@ +/********************************************************************** + * Copyright (c) 2005 IBM Canada and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation + **********************************************************************/ +package org.eclipse.cdt.ui.tests.IndexerView; + +import java.io.IOException; + +import org.eclipse.cdt.core.browser.PathUtil; +import org.eclipse.cdt.core.model.ICElement; +import org.eclipse.cdt.core.parser.util.ArrayUtil; +import org.eclipse.cdt.core.search.BasicSearchMatch; +import org.eclipse.cdt.core.search.IMatch; +import org.eclipse.cdt.internal.core.index.IEntryResult; +import org.eclipse.cdt.internal.core.index.cindexstorage.IndexedFileEntry; +import org.eclipse.cdt.internal.core.index.cindexstorage.io.BlocksIndexInput; +import org.eclipse.cdt.internal.core.index.cindexstorage.io.IndexInput; +import org.eclipse.cdt.internal.ui.search.CSearchQuery; +import org.eclipse.cdt.internal.ui.search.CSearchResult; +import org.eclipse.cdt.internal.ui.search.NewSearchResultCollector; +import org.eclipse.cdt.ui.testplugin.CTestPlugin; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.OperationCanceledException; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.search.ui.ISearchQuery; +import org.eclipse.search.ui.ISearchResult; + +/** + * @author dsteffle + */ +public class IndexerQuery extends CSearchQuery implements ISearchQuery { + private static final int DEFAULT_MATCH_INFO_SIZE = 4; + private static final String BLANK_STRING = ""; //$NON-NLS-1$ + private CSearchResult _result; + private IndexerNodeLeaf leaf=null; + private String queryLabel = null; + + /** + * + */ + public IndexerQuery(IndexerNodeLeaf leaf, String queryLabel, String pattern) { + super(CTestPlugin.getWorkspace(), pattern, false, null, null, null, queryLabel, null); + this.leaf = leaf; + this.queryLabel = queryLabel; + } + + /* (non-Javadoc) + * @see org.eclipse.search.ui.ISearchQuery#run(org.eclipse.core.runtime.IProgressMonitor) + */ + public IStatus run(IProgressMonitor monitor) + throws OperationCanceledException { + + final CSearchResult textResult= (CSearchResult) getSearchResult(); + + IProgressMonitor mainSearchPM= new SubProgressMonitor(monitor, 1000); + NewSearchResultCollector collector = new NewSearchResultCollector(textResult, mainSearchPM); + + collector.aboutToStart(); + + MatchInfo[] matches = generateMatchInfo(); + for (int i=0; i j-1) { + IndexedFileEntry file = input.getIndexedFile(references[j]); + if (file != null){ + IPath filePath = new Path(file.getPath()); + //If we can verify that the file exists within the workspace, we'll use it + //to open the appropriate editor - if not we can just set the path and we'll + //use the external editor mechanism + IFile tempFile = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath); + if (tempFile != null && tempFile.exists()) + match.setResource(tempFile); + else { + match.setPath(PathUtil.getWorkspaceRelativePath(file.getPath())); + } + + } + } + int start=0; + int end=0; + try { + start=Integer.valueOf(String.valueOf(offsets[j][k]).substring(1)).intValue(); + end=start+offsetLengths[j][k]; + } catch (NumberFormatException nfe) {} + + match.setStart(start) ; + match.setEnd(end); + match.setName(leaf.getName()); + + matches = (MatchInfo[])ArrayUtil.append(MatchInfo.class, matches, match); + } + } + } + + } catch (IOException e) { + } + + return matches; + } + + private class MatchInfo { + private IPath path=null; + private int start=0; + private int end=0; + private String name=null; + private IResource resource=null; + + public IPath getPath() { + return path; + } + public void setPath(IPath path) { + this.path = path; + } + public int getEnd() { + return end; + } + public void setEnd(int end) { + this.end = end; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public int getStart() { + return start; + } + public void setStart(int start) { + this.start = start; + } + public IResource getResource() { + return resource; + } + public void setResource(IResource resource) { + this.resource = resource; + } + } + + public IMatch createMatch( Object fileResource, int start, int end, String name, IPath referringElement ) { + BasicSearchMatch result = new BasicSearchMatch(); + if( fileResource instanceof IResource ) + result.resource = (IResource) fileResource; + else if( fileResource instanceof IPath ) + result.path = (IPath) fileResource; + + result.startOffset = start; + result.endOffset = end; + result.parentName = BLANK_STRING; //$NON-NLS-1$ + result.referringElement = referringElement; + + result.name = name; + + result.type = ICElement.C_FIELD; // TODO Devin static for now, want something like BasicSearchResultCollector#setElementInfo + result.visibility = ICElement.CPP_PUBLIC; // TODO Devin static for now, want something like BasicSearchResultCollector#setElementInfo + result.returnType = BLANK_STRING; + + return result; + } + + + /* (non-Javadoc) + * @see org.eclipse.search.ui.ISearchQuery#getLabel() + */ + public String getLabel() { + return queryLabel; + } + + /* (non-Javadoc) + * @see org.eclipse.search.ui.ISearchQuery#canRerun() + */ + public boolean canRerun() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.eclipse.search.ui.ISearchQuery#canRunInBackground() + */ + public boolean canRunInBackground() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.eclipse.search.ui.ISearchQuery#getSearchResult() + */ + public ISearchResult getSearchResult() { + if (_result == null) + _result= new CSearchResult(this); + return _result; + } + +} diff --git a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerView.java b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerView.java index 92992b1fae5..682fd16e4f0 100644 --- a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerView.java +++ b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerView.java @@ -13,7 +13,6 @@ package org.eclipse.cdt.ui.tests.IndexerView; import java.io.IOException; import org.eclipse.cdt.core.index.ICDTIndexer; -import org.eclipse.cdt.core.parser.util.ArrayUtil; import org.eclipse.cdt.core.search.ICSearchConstants; import org.eclipse.cdt.internal.core.index.IEntryResult; import org.eclipse.cdt.internal.core.index.IIndex; @@ -36,12 +35,14 @@ import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredContentProvider; +import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; +import org.eclipse.search.ui.NewSearchUI; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Composite; @@ -57,6 +58,10 @@ import org.eclipse.ui.views.properties.PropertySheet; * @author dsteffle */ public class IndexerView extends ViewPart { + private static final int DEFAULT_INDEXER_SIZE = 1; + private static final String SWITCH_FULL_NAMES = "Switch Full Names"; //$NON-NLS-1$ + private static final String SORT_RESULTS = "Sort Results"; //$NON-NLS-1$ + private static final String SEARCH_LOCATIONS = "Search Locations"; //$NON-NLS-1$ private static final String _TOTAL_IENTRYRESULTS = " total IEntryResults"; //$NON-NLS-1$ private static final String _FILTERED_IENTRY_RESULTS_ = " filtered IEntry Results\n"; //$NON-NLS-1$ private static final String INDEXER_STATS = "Indexer Stats"; //$NON-NLS-1$ @@ -70,14 +75,17 @@ public class IndexerView extends ViewPart { private static final String PROPERTIES_VIEW = "org.eclipse.ui.views.PropertySheet"; //$NON-NLS-1$ protected static final String BLANK_STRING = ""; //$NON-NLS-1$ static TableViewer viewer; + protected Action searchLocationAction; protected Action previousPageAction; protected Action nextPageAction; protected Action singleClickAction; protected Action setFiltersAction; + protected Action sortAction; + protected Action displayFullNameAction; protected Action displayStatsAction; - protected IIndexer[] indexers = new IIndexer[CTestPlugin.getWorkspace().getRoot().getProjects().length]; + protected IIndexer[] indexers = new IIndexer[DEFAULT_INDEXER_SIZE]; // support 1 indexer for now new IIndexer[CTestPlugin.getWorkspace().getRoot().getProjects().length]; protected IProject project = null; - + protected static ViewContentProvider.StartInitializingIndexerView initializeIndexerViewJob = null; public class ViewContentProvider implements IStructuredContentProvider, @@ -143,7 +151,6 @@ public class IndexerView extends ViewPart { invisibleRoot.setIsForward(true); // initial display direction is forward } catch (IOException e) { - // TODO Auto-generated catch block e.printStackTrace(); } } @@ -167,7 +174,8 @@ public class IndexerView extends ViewPart { */ public void run() { if (!updateView) return; - + + enableButtons(false); view.refresh(); if (view.getTable().getItems().length > 0) { @@ -178,6 +186,7 @@ public class IndexerView extends ViewPart { view.getTable().setSelection(selection); } + enableButtons(true); previousPageAction.setEnabled(displayBackwards); nextPageAction.setEnabled(displayForwards); } @@ -234,6 +243,7 @@ public class IndexerView extends ViewPart { initializeIndexerViewJob.schedule(); } + invisibleRoot.reset(); this.displayForwards=displayForwards; this.displayBackwards=displayBackwards; } @@ -247,7 +257,7 @@ public class IndexerView extends ViewPart { public void dispose() {} - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + public void inputChanged(Viewer aViewer, Object oldInput, Object newInput) { // TODO Auto-generated method stub } @@ -381,12 +391,25 @@ public class IndexerView extends ViewPart { contributeToActionBars(); } + protected void enableButtons(boolean value) { + setFiltersAction.setEnabled(value); + setFiltersAction.setEnabled(value); + sortAction.setEnabled(value); + displayFullNameAction.setEnabled(value); + } + private void makeActions() { + searchLocationAction = new SearchLocationsAction(); + searchLocationAction.setText(SEARCH_LOCATIONS); + searchLocationAction.setToolTipText(SEARCH_LOCATIONS); + searchLocationAction.setImageDescriptor(IndexerViewPluginImages.DESC_SEARCH_LOCATION); + previousPageAction = new Action() { public void run() { if (viewer.getContentProvider() instanceof ViewContentProvider) { IndexerNodeParent root = ((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot(); root.setIsForward(false); + root.setNavigate(true); } viewer.refresh(); @@ -403,6 +426,7 @@ public class IndexerView extends ViewPart { if (viewer.getContentProvider() instanceof ViewContentProvider) { IndexerNodeParent root = ((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot(); root.setIsForward(true); + root.setNavigate(true); } viewer.refresh(); @@ -422,11 +446,9 @@ public class IndexerView extends ViewPart { int result = dialog.open(); if (result == IDialogConstants.OK_ID) { - viewer.setContentProvider(new ViewContentProvider(((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot(), true, true)); - ((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot().setView((ViewContentProvider)viewer.getContentProvider()); // update the root's content provider - - previousPageAction.setEnabled(((ViewContentProvider)viewer.getContentProvider()).isDisplayBackwards()); - nextPageAction.setEnabled(((ViewContentProvider)viewer.getContentProvider()).isDisplayForwards()); + // reset the view but remember the buttons being displayed from the old content provider + ((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot().reset(); + viewer.refresh(); } } }; @@ -434,6 +456,48 @@ public class IndexerView extends ViewPart { setFiltersAction.setToolTipText(SET_FILTERS); setFiltersAction.setImageDescriptor(IndexerViewPluginImages.DESC_FILTER_BUTTON); + sortAction = new Action() { + public void run() { + if (viewer.getContentProvider() instanceof ViewContentProvider) { + enableButtons(false); + if (((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot().isSort()) { + ((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot().setSort(false); + ((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot().reset(); + viewer.refresh(); + this.setImageDescriptor(IndexerViewPluginImages.DESC_SORT); + } else { + ((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot().setSort(true); + ((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot().reset(); + viewer.refresh(); + this.setImageDescriptor(IndexerViewPluginImages.DESC_SORTED); + } + enableButtons(true); + } + } + }; + sortAction.setText(SORT_RESULTS); + sortAction.setToolTipText(SORT_RESULTS); + sortAction.setImageDescriptor(IndexerViewPluginImages.DESC_SORTED); + + displayFullNameAction = new Action() { + public void run() { + if (viewer.getContentProvider() instanceof ViewContentProvider) { + if (((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot().isDisplayFullName()) { + ((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot().setDisplayFullName(false); + viewer.refresh(); + this.setImageDescriptor(IndexerViewPluginImages.DESC_DISPLAY_FULL_NAME); + } else { + ((ViewContentProvider)viewer.getContentProvider()).getInvisibleRoot().setDisplayFullName(true); + viewer.refresh(); + this.setImageDescriptor(IndexerViewPluginImages.DESC_FULL_NAME_DISPLAYED); + } + } + } + }; + displayFullNameAction.setText(SWITCH_FULL_NAMES); + displayFullNameAction.setToolTipText(SWITCH_FULL_NAMES); + displayFullNameAction.setImageDescriptor(IndexerViewPluginImages.DESC_FULL_NAME_DISPLAYED); + displayStatsAction = new Action() { public void run() { CTestPlugin.getStandardDisplay().asyncExec(new Runnable() { @@ -454,7 +518,7 @@ public class IndexerView extends ViewPart { singleClickAction = new IndexerHighlighterAction(); } - + private void hookContextMenu() { MenuManager menuMgr = new MenuManager(_INDEXER_MENU_MANAGER); menuMgr.setRemoveAllWhenShown(true); @@ -473,6 +537,8 @@ public class IndexerView extends ViewPart { } void fillContextMenu(IMenuManager manager) { + manager.add(searchLocationAction); + manager.add(new Separator()); // Other plug-ins can contribute there actions here manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); } @@ -502,13 +568,14 @@ public class IndexerView extends ViewPart { fillLocalToolBar(bars.getToolBarManager()); } - private void fillLocalPullDown(IMenuManager manager) { - } + private void fillLocalPullDown(IMenuManager manager) {} private void fillLocalToolBar(IToolBarManager manager) { manager.add(previousPageAction); manager.add(nextPageAction); manager.add(new Separator()); + manager.add(sortAction); + manager.add(displayFullNameAction); manager.add(setFiltersAction); manager.add(new Separator()); manager.add(displayStatsAction); @@ -523,11 +590,14 @@ public class IndexerView extends ViewPart { } public void appendIndexer(IIndexer indexer) { - indexers = (IIndexer[])ArrayUtil.append(IIndexer.class, indexers, indexer); +// indexers = (IIndexer[])ArrayUtil.append(IIndexer.class, indexers, indexer); + // only support 1 indexer for now + indexers[0] = indexer; } public void clearIndexers() { - indexers = new IIndexer[CTestPlugin.getWorkspace().getRoot().getProjects().length]; + // for now only support 1 indexer at a time + indexers = new IIndexer[1]; } public void setContentProvider(ViewContentProvider provider) { @@ -548,4 +618,22 @@ public class IndexerView extends ViewPart { return project.getName(); } + + private class SearchLocationsAction extends Action { + private static final String LOCATIONS = "Locations"; //$NON-NLS-1$ + private static final String INDEX = "Index"; //$NON-NLS-1$ + protected void displayLocations(IndexerNodeLeaf leaf, String queryLabel, String pattern) { + IndexerQuery job = new IndexerQuery(leaf, queryLabel, pattern); + NewSearchUI.activateSearchResultView(); + NewSearchUI.runQuery(job); + } + + public void run() { + if (viewer.getSelection() instanceof IStructuredSelection && + ((IStructuredSelection)viewer.getSelection()).getFirstElement() instanceof IndexerNodeLeaf) { + displayLocations((IndexerNodeLeaf)((IStructuredSelection)viewer.getSelection()).getFirstElement(), + INDEX, LOCATIONS); + } + } + } } diff --git a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerViewPluginImages.java b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerViewPluginImages.java index 98d0c9eba6b..922fd9faa8e 100644 --- a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerViewPluginImages.java +++ b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/IndexerView/IndexerViewPluginImages.java @@ -90,6 +90,11 @@ public class IndexerViewPluginImages { public static final String IMG_GROUPED_DECL= NAME_PREFIX + "grouped_decl.gif"; //$NON-NLS-1$ public static final String IMG_GROUPED_REF= NAME_PREFIX + "grouped_ref.gif"; //$NON-NLS-1$ public static final String IMG_GROUPED_TYPE= NAME_PREFIX + "grouped_type.gif"; //$NON-NLS-1$ + public static final String IMG_SEARCH_LOCATION= NAME_PREFIX + "search_decl_obj.gif"; //$NON-NLS-1$ + public static final String IMG_SORT= NAME_PREFIX + "alphab_sort.gif"; //$NON-NLS-1$ + public static final String IMG_SORTED= NAME_PREFIX + "alphab_sorted.gif"; //$NON-NLS-1$ + public static final String IMG_FULL_NAME_DISPLAYED= NAME_PREFIX + "full_name_displayed.gif"; //$NON-NLS-1$ + public static final String IMG_DISPLAY_FULL_NAME= NAME_PREFIX + "display_full_name.gif"; //$NON-NLS-1$ public static final ImageDescriptor DESC_REF= createManaged(ICON_PREFIX, IMG_REF); public static final ImageDescriptor DESC_TYPE_REF= createManaged(ICON_PREFIX, IMG_TYPE_REF); @@ -129,6 +134,11 @@ public class IndexerViewPluginImages { public static final ImageDescriptor DESC_GROUPED_DECL= createManaged(ICON_PREFIX, IMG_GROUPED_DECL); public static final ImageDescriptor DESC_GROUPED_REF= createManaged(ICON_PREFIX, IMG_GROUPED_REF); public static final ImageDescriptor DESC_GROUPED_TYPE= createManaged(ICON_PREFIX, IMG_GROUPED_TYPE); + public static final ImageDescriptor DESC_SEARCH_LOCATION= createManaged(ICON_PREFIX, IMG_SEARCH_LOCATION); + public static final ImageDescriptor DESC_SORT= createManaged(ICON_PREFIX, IMG_SORT); + public static final ImageDescriptor DESC_SORTED= createManaged(ICON_PREFIX, IMG_SORTED); + public static final ImageDescriptor DESC_FULL_NAME_DISPLAYED= createManaged(ICON_PREFIX, IMG_FULL_NAME_DISPLAYED); + public static final ImageDescriptor DESC_DISPLAY_FULL_NAME= createManaged(ICON_PREFIX, IMG_DISPLAY_FULL_NAME); private static ImageDescriptor createManaged(String prefix, String name) { return createManaged(imageRegistry, prefix, name);