Revision 7971
trunk/frameworks/_fwAndami/src/com/iver/andami/preferences/GenericDlgPreferences.java | ||
---|---|---|
216 | 216 |
super.add(getJSplitPaneCenter(), java.awt.BorderLayout.CENTER); |
217 | 217 |
getJSplitPaneCenter().setLeftComponent(getJScrollPane()); |
218 | 218 |
getJSplitPaneCenter().setRightComponent(getJPanelNorth()); |
219 |
|
|
220 |
|
|
221 |
|
|
222 | 219 |
treeModel = new DefaultTreeModel(root); |
223 | 220 |
} |
224 | 221 |
|
... | ... | |
283 | 280 |
*/ |
284 | 281 |
private JTree getJTreePlugins() { |
285 | 282 |
if (jTreePlugins == null) { |
286 |
jTreePlugins = new JTree() { |
|
287 |
public void repaint() { |
|
288 |
if (dirtyTree) { |
|
289 |
// rebuild page tree |
|
290 |
ArrayList prefList = new ArrayList(preferences.values()); |
|
291 |
ArrayList alreadyAdded = new ArrayList(); |
|
292 |
DefaultTreeModel model = new DefaultTreeModel(root); |
|
293 |
while (prefList.size()>0) { |
|
294 |
IPreference pref = (IPreference) prefList.get(0); |
|
295 |
while (pref.getParentID() != null && |
|
296 |
!alreadyAdded.contains(preferences.get(pref.getParentID()))) { |
|
297 |
pref = (IPreference) preferences.get(pref.getParentID()); |
|
298 |
} |
|
299 |
doInsertNode(model, pref); |
|
300 |
prefList.remove(pref); |
|
301 |
alreadyAdded.add(pref); |
|
302 |
} |
|
303 |
treeModel = model; |
|
304 |
jTreePlugins.setModel(model); |
|
305 |
dirtyTree = false; |
|
306 |
} |
|
307 |
|
|
308 |
super.repaint(); |
|
309 |
} |
|
310 |
}; |
|
283 |
jTreePlugins = new JTree(); |
|
311 | 284 |
jTreePlugins.setRootVisible(false); |
312 | 285 |
MyTreeCellRenderer treeCellRenderer = new MyTreeCellRenderer(); |
313 | 286 |
treeCellRenderer.setOpenIcon(null); |
314 | 287 |
treeCellRenderer.setClosedIcon(null); |
315 | 288 |
treeCellRenderer.setLeafIcon(null); |
316 | 289 |
|
317 |
|
|
318 |
|
|
319 | 290 |
jTreePlugins.setCellRenderer(treeCellRenderer); |
320 | 291 |
jTreePlugins.setShowsRootHandles(true); |
321 | 292 |
jTreePlugins |
... | ... | |
345 | 316 |
preferences.put(page.getID(), page); |
346 | 317 |
page.initializeValues(); // init values from the last settings |
347 | 318 |
//page.storeValues(); // apply them |
319 |
if (dirtyTree) { |
|
320 |
// rebuild page tree |
|
321 |
ArrayList prefList = new ArrayList(preferences.values()); |
|
322 |
ArrayList alreadyAdded = new ArrayList(); |
|
323 |
DefaultTreeModel model = new DefaultTreeModel(root); |
|
324 |
while (prefList.size()>0) { |
|
325 |
IPreference pref = (IPreference) prefList.get(0); |
|
326 |
while (pref.getParentID() != null && |
|
327 |
!alreadyAdded.contains(preferences.get(pref.getParentID()))) { |
|
328 |
pref = (IPreference) preferences.get(pref.getParentID()); |
|
329 |
} |
|
330 |
doInsertNode(model, pref); |
|
331 |
prefList.remove(pref); |
|
332 |
alreadyAdded.add(pref); |
|
333 |
} |
|
334 |
treeModel = model; |
|
335 |
jTreePlugins.setModel(model); |
|
336 |
dirtyTree = false; |
|
337 |
} |
|
348 | 338 |
doInsertNode(treeModel, page); |
349 | 339 |
getJTreePlugins().setModel(treeModel); |
350 |
dirtyTree = true;
|
|
340 |
getJTreePlugins().repaint();
|
|
351 | 341 |
} |
352 | 342 |
|
353 | 343 |
private DefaultMutableTreeNode findNode(String searchID) |
... | ... | |
373 | 363 |
private void doInsertNode(DefaultTreeModel treeModel, IPreference page) |
374 | 364 |
{ |
375 | 365 |
|
366 |
dirtyTree = ((page.getParentID() != null) && (findNode(page.getParentID())==null)); |
|
376 | 367 |
if (findNode(page.getID()) != null) // It is already added |
377 | 368 |
return; |
378 | 369 |
if (page.getParentID() != null) |
Also available in: Unified diff