4343import java .io .PrintWriter ;
4444import java .io .StringWriter ;
4545import java .util .ArrayList ;
46+ import java .util .Iterator ;
4647import java .util .Vector ;
4748import java .util .Map ;
4849import java .util .HashMap ;
50+
4951import javax .swing .*;
5052import javax .swing .event .*;
5153import javax .swing .border .EmptyBorder ;
5254
55+ import edu .rice .cs .drjava .model .OpenDefinitionsDocument ;
5356import edu .rice .cs .drjava .model .SingleDisplayModel ;
57+ import edu .rice .cs .drjava .model .definitions .ClassNameNotFoundException ;
5458import edu .rice .cs .drjava .config .Option ;
5559import edu .rice .cs .drjava .config .OptionParser ;
5660import edu .rice .cs .drjava .config .OptionConstants ;
5963import edu .rice .cs .drjava .ui .config .*;
6064import edu .rice .cs .drjava .ui .*;
6165import edu .rice .cs .drjava .DrJava ;
62-
6366import edu .rice .cs .plt .iter .IterUtil ;
6467import edu .rice .cs .plt .collect .CollectUtil ;
6568import edu .rice .cs .plt .lambda .Runnable1 ;
6669import edu .rice .cs .plt .lambda .LambdaUtil ;
67-
6870import edu .rice .cs .util .FileOps ;
6971import edu .rice .cs .util .AbsRelFile ;
7072import edu .rice .cs .util .swing .FileSelectorComponent ;
7577import edu .rice .cs .util .swing .Utilities ;
7678
7779import javax .swing .filechooser .FileFilter ;
80+
7881import java .awt .Desktop ;
7982import java .net .URI ;
8083import java .net .URISyntaxException ;;
@@ -207,9 +210,12 @@ public boolean generateReport(){
207210 if (_useCurrentFile .isSelected ()){
208211 final ReportGenerator generator = new ReportGenerator (_model , _model .getDocumentNavigator ().getSelectedDocuments (), _outputDirSelector .getFileFromField ());
209212 generator .create ();
213+ highlight (generator );
214+
210215 }else {
211216 final ReportGenerator generator = new ReportGenerator (_model , _srcRootSelector .getFileFromField (), _mainDocumentSelector .getText (), _outputDirSelector .getFileFromField ());
212217 generator .create ();
218+ highlight (generator );
213219 }
214220
215221 } catch (Exception e ){
@@ -220,6 +226,44 @@ public boolean generateReport(){
220226 return true ;
221227 }
222228
229+
230+ private void highlight (ReportGenerator generator ) {
231+
232+ Iterator <OpenDefinitionsDocument > iter = _model .getDocumentNavigator ().getDocuments ().iterator ();
233+ while (iter .hasNext ()) {
234+ OpenDefinitionsDocument o = iter .next ();
235+ DefinitionsPane pane = _mainFrame .getDefPaneGivenODD (o );
236+ try {
237+ ArrayList <String > colors = generator .getLineColorsForClass (o .getQualifiedClassName ());
238+
239+ for (int i = 0 ; i < colors .size (); i ++) {
240+ String color = colors .get (i );
241+
242+ Color c = Color .black ;
243+ if (color .equals ("" )) {
244+ continue ;
245+ }
246+ if (color .equals ("green" )) {
247+ c = Color .green ;
248+ }
249+ if (color .equals ("red" )) {
250+ c = Color .red ;
251+ }
252+ if (color .equals ("yellow" )) {
253+ c = Color .yellow ;
254+ }
255+
256+
257+ pane .getHighlightManager ().
258+ addHighlight (o ._getOffset (i ), o ._getOffset (i +1 ), new ReverseHighlighter .DrJavaHighlightPainter (c ));
259+ }
260+ }
261+ catch (ClassNameNotFoundException e ) {
262+ continue ;
263+ }
264+
265+ }
266+ }
223267
224268 /** Caches the settings in the global model */
225269 public boolean saveSettings () {//throws IOException {
0 commit comments