Lines 55-60
Link Here
|
55 |
import org.netbeans.modules.cnd.callgraph.api.Call; |
55 |
import org.netbeans.modules.cnd.callgraph.api.Call; |
56 |
import org.netbeans.modules.cnd.callgraph.api.Function; |
56 |
import org.netbeans.modules.cnd.callgraph.api.Function; |
57 |
import org.netbeans.modules.cnd.modelutil.CsmUtilities; |
57 |
import org.netbeans.modules.cnd.modelutil.CsmUtilities; |
|
|
58 |
import org.openide.text.PositionBounds; |
58 |
|
59 |
|
59 |
/** |
60 |
/** |
60 |
* |
61 |
* |
Lines 75-99
Link Here
|
75 |
this.owner = implementationResolver(owner); |
76 |
this.owner = implementationResolver(owner); |
76 |
this.callee = implementationResolver(callee); |
77 |
this.callee = implementationResolver(callee); |
77 |
this.occurrences = initOccurrences(references); |
78 |
this.occurrences = initOccurrences(references); |
78 |
this.firstOccurrence = (!references.isEmpty()) ? references.get(0) : null; |
79 |
firstOccurrence = (!references.isEmpty()) ? references.get(0) : null; |
79 |
this.description = initDescription(firstOccurrence); |
80 |
this.description = initDescription(firstOccurrence); |
80 |
this.htmlName = initHtmlDisplayName(firstOccurrence); |
81 |
this.htmlName = initHtmlDisplayName(firstOccurrence); |
81 |
} |
82 |
} |
82 |
|
83 |
|
83 |
public Object getReferencedCall() { |
|
|
84 |
return firstOccurrence; |
85 |
} |
86 |
|
87 |
@Override |
84 |
@Override |
88 |
public void open() { |
85 |
public void open() { |
89 |
final String taskName = "Open function call"; //NOI18N |
86 |
if (occurrences.isEmpty()) { |
90 |
Runnable run = new Runnable() { |
87 |
return; |
91 |
@Override |
88 |
} |
92 |
public void run() { |
89 |
occurrences.get(0).open(); |
93 |
CsmUtilities.openSource(firstOccurrence); |
|
|
94 |
} |
95 |
}; |
96 |
CsmModelAccessor.getModel().enqueue(run, taskName); |
97 |
} |
90 |
} |
98 |
|
91 |
|
99 |
@Override |
92 |
@Override |
Lines 177-202
Link Here
|
177 |
} |
170 |
} |
178 |
|
171 |
|
179 |
private static class OccurrenceImpl implements Call.Occurrence { |
172 |
private static class OccurrenceImpl implements Call.Occurrence { |
180 |
private final CsmReference reference; |
173 |
private final PositionBounds positions; |
181 |
private final CharSequence description; |
174 |
private final CharSequence description; |
182 |
private final CharSequence htmlName; |
175 |
private final CharSequence htmlName; |
183 |
|
176 |
|
184 |
private OccurrenceImpl(CsmReference reference) { |
177 |
private OccurrenceImpl(CsmReference reference) { |
185 |
this.reference = reference; |
178 |
positions = CsmUtilities.createPositionBounds(reference); |
186 |
description = initDescription(reference); |
179 |
description = initDescription(reference); |
187 |
htmlName = initHtmlDisplayName(reference); |
180 |
htmlName = initHtmlDisplayName(reference); |
188 |
} |
181 |
} |
189 |
|
182 |
|
190 |
@Override |
183 |
@Override |
191 |
public void open() { |
184 |
public void open() { |
192 |
final String taskName = "Open function call"; //NOI18N |
185 |
CsmUtilities.openSource(positions); |
193 |
Runnable run = new Runnable() { |
|
|
194 |
@Override |
195 |
public void run() { |
196 |
CsmUtilities.openSource(reference); |
197 |
} |
198 |
}; |
199 |
CsmModelAccessor.getModel().enqueue(run, taskName); |
200 |
} |
186 |
} |
201 |
|
187 |
|
202 |
@Override |
188 |
@Override |