Lines 47-55
Link Here
|
47 |
public MarkersViewSettingDialog(ExtendedMarkersView view) { |
47 |
public MarkersViewSettingDialog(ExtendedMarkersView view) { |
48 |
super(view.getSite().getShell()); |
48 |
super(view.getSite().getShell()); |
49 |
this.extendedView = view; |
49 |
this.extendedView = view; |
50 |
initialize(convert(extendedView.getBuilder().getGenerator() |
50 |
initialize(false); |
51 |
.getVisibleFields()), convert(extendedView.getBuilder() |
|
|
52 |
.getGenerator().getAllFields()), false); |
53 |
setLimitValue(IDEWorkbenchPlugin.getDefault().getPreferenceStore() |
51 |
setLimitValue(IDEWorkbenchPlugin.getDefault().getPreferenceStore() |
54 |
.getInt(IDEInternalPreferences.MARKER_LIMITS_VALUE)); |
52 |
.getInt(IDEInternalPreferences.MARKER_LIMITS_VALUE)); |
55 |
} |
53 |
} |
Lines 111-120
Link Here
|
111 |
int i = 0; |
109 |
int i = 0; |
112 |
Iterator iterator = visible.iterator(); |
110 |
Iterator iterator = visible.iterator(); |
113 |
while (iterator.hasNext()) { |
111 |
while (iterator.hasNext()) { |
114 |
widths[i++] = ((FieldEntry) iterator.next()).width; |
112 |
widths[i] = ((FieldEntry) iterator.next()).width; |
|
|
113 |
i++; |
115 |
} |
114 |
} |
116 |
return widths; |
115 |
return widths; |
117 |
|
|
|
118 |
} |
116 |
} |
119 |
|
117 |
|
120 |
private Collection getVisibleFields() { |
118 |
private Collection getVisibleFields() { |
Lines 133-172
Link Here
|
133 |
* @see org.eclipse.ui.preferences.ViewSettingsDialog#performDefaults() |
131 |
* @see org.eclipse.ui.preferences.ViewSettingsDialog#performDefaults() |
134 |
*/ |
132 |
*/ |
135 |
protected void performDefaults() { |
133 |
protected void performDefaults() { |
136 |
initialize(convert(extendedView.getBuilder().getGenerator() |
134 |
initialize(true); |
137 |
.getInitialVisible()), convert(extendedView.getBuilder() |
|
|
138 |
.getGenerator().getAllFields()), true); |
139 |
setLimitValue(IDEWorkbenchPlugin.getDefault().getPreferenceStore() |
135 |
setLimitValue(IDEWorkbenchPlugin.getDefault().getPreferenceStore() |
140 |
.getDefaultInt(IDEInternalPreferences.MARKER_LIMITS_VALUE)); |
136 |
.getDefaultInt(IDEInternalPreferences.MARKER_LIMITS_VALUE)); |
141 |
super.performDefaults(); |
137 |
super.performDefaults(); |
142 |
} |
138 |
} |
143 |
|
139 |
|
144 |
/** |
140 |
/** |
145 |
* @param visibleFields |
|
|
146 |
* @param allFields |
147 |
*/ |
141 |
*/ |
148 |
void initialize(FieldEntry[] visibleFields, FieldEntry[] allFields, |
142 |
void initialize(boolean defaultWidths) { |
149 |
boolean defaultWidths) { |
143 |
MarkerField[] allFields = extendedView.getBuilder().getGenerator() |
|
|
144 |
.getAllFields(); |
145 |
MarkerField[] visibleFields = extendedView.getBuilder().getGenerator() |
146 |
.getVisibleFields(); |
147 |
|
150 |
List visible = getVisible(); |
148 |
List visible = getVisible(); |
151 |
List nonVisible = getNonVisible(); |
149 |
List nonVisible = getNonVisible(); |
152 |
visible.clear(); |
150 |
visible.clear(); |
153 |
nonVisible.clear(); |
151 |
nonVisible.clear(); |
|
|
152 |
|
153 |
FieldEntry entry = null; |
154 |
for (int i = 0; i < allFields.length; i++) { |
154 |
for (int i = 0; i < allFields.length; i++) { |
155 |
nonVisible.add(allFields[i]); |
155 |
if (!contains(visibleFields, allFields[i])) { |
|
|
156 |
entry = new FieldEntry(allFields[i], -1); |
157 |
if (defaultWidths) { |
158 |
entry.width = extendedView.getFieldWidth(entry.field, 0, |
159 |
true); |
160 |
} else { |
161 |
entry.width = extendedView.getFieldWidth(entry.field, -1, |
162 |
true); |
163 |
} |
164 |
entry.visible = false; |
165 |
nonVisible.add(entry); |
166 |
} |
156 |
} |
167 |
} |
157 |
for (int i = 0; i < visibleFields.length; i++) { |
168 |
for (int i = 0; i < visibleFields.length; i++) { |
158 |
nonVisible.remove(visibleFields[i]); |
169 |
entry = new FieldEntry(visibleFields[i], -1); |
159 |
visible.add(visibleFields[i]); |
|
|
160 |
visibleFields[i].visible = true; |
161 |
if (defaultWidths) { |
170 |
if (defaultWidths) { |
162 |
visibleFields[i].width = extendedView.getFieldWidth( |
171 |
entry.width = extendedView.getFieldWidth(entry.field, 0, true); |
163 |
visibleFields[i].field, 0); |
|
|
164 |
} else { |
172 |
} else { |
165 |
// from a persistent store |
173 |
entry.width = extendedView.getFieldWidth(entry.field, -1, true); |
166 |
visibleFields[i].width = extendedView.getFieldWidth( |
174 |
} |
167 |
visibleFields[i].field, -1); |
175 |
entry.visible = true; |
|
|
176 |
visible.add(entry); |
177 |
} |
178 |
|
179 |
} |
180 |
|
181 |
/** |
182 |
* @param visibleFields |
183 |
* @param field |
184 |
*/ |
185 |
private boolean contains(MarkerField[] visibleFields, MarkerField field) { |
186 |
for (int i = 0; i < visibleFields.length; i++) { |
187 |
if (visibleFields[i].equals(field)) { |
188 |
return true; |
168 |
} |
189 |
} |
169 |
} |
190 |
} |
|
|
191 |
return false; |
170 |
} |
192 |
} |
171 |
|
193 |
|
172 |
/* |
194 |
/* |
Lines 199-205
Link Here
|
199 |
|
221 |
|
200 |
public int getColumnWidth(Object columnObj) { |
222 |
public int getColumnWidth(Object columnObj) { |
201 |
FieldEntry field = (FieldEntry) columnObj; |
223 |
FieldEntry field = (FieldEntry) columnObj; |
202 |
return extendedView.getFieldWidth(field.field, field.width); |
224 |
return extendedView.getFieldWidth(field.field, field.width, |
|
|
225 |
true); |
203 |
} |
226 |
} |
204 |
|
227 |
|
205 |
public boolean isColumnVisible(Object columnObj) { |
228 |
public boolean isColumnVisible(Object columnObj) { |
Lines 248-261
Link Here
|
248 |
}; |
271 |
}; |
249 |
} |
272 |
} |
250 |
|
273 |
|
251 |
private static FieldEntry[] convert(Object[] fields) { |
|
|
252 |
FieldEntry[] entries = new FieldEntry[fields.length]; |
253 |
for (int i = 0; i < entries.length; i++) { |
254 |
entries[i] = new FieldEntry((MarkerField) fields[i], -1); |
255 |
} |
256 |
return entries; |
257 |
} |
258 |
|
259 |
static class FieldEntry { |
274 |
static class FieldEntry { |
260 |
final MarkerField field; |
275 |
final MarkerField field; |
261 |
int width; |
276 |
int width; |
Lines 266-318
Link Here
|
266 |
this.width = width; |
281 |
this.width = width; |
267 |
visible = false; |
282 |
visible = false; |
268 |
} |
283 |
} |
269 |
|
|
|
270 |
/* |
271 |
* (non-Javadoc) |
272 |
* |
273 |
* @see java.lang.Object#toString() |
274 |
*/ |
275 |
public String toString() { |
276 |
// TODO Auto-generated method stub |
277 |
return super.toString(); |
278 |
} |
279 |
|
280 |
/* |
281 |
* (non-Javadoc) |
282 |
* |
283 |
* @see java.lang.Object#hashCode() |
284 |
*/ |
285 |
public int hashCode() { |
286 |
final int prime = 31; |
287 |
int result = 1; |
288 |
result = prime * result + ((field == null) ? 0 : field.hashCode()); |
289 |
return result; |
290 |
} |
291 |
|
292 |
/* |
293 |
* (non-Javadoc) |
294 |
* |
295 |
* @see java.lang.Object#equals(java.lang.Object) |
296 |
*/ |
297 |
public boolean equals(Object obj) { |
298 |
if (this == obj) { |
299 |
return true; |
300 |
} |
301 |
if (obj == null) { |
302 |
return false; |
303 |
} |
304 |
if (!(obj instanceof FieldEntry)) { |
305 |
return false; |
306 |
} |
307 |
FieldEntry other = (FieldEntry) obj; |
308 |
if (field == null) { |
309 |
if (other.field != null) { |
310 |
return false; |
311 |
} |
312 |
} else if (!field.equals(other.field)) { |
313 |
return false; |
314 |
} |
315 |
return true; |
316 |
} |
317 |
} |
284 |
} |
318 |
} |
285 |
} |