3305 pane.repaint(); |
3305 pane.repaint(); |
3306 } else if (name == "displayedMnemonicIndexAt") { |
3306 } else if (name == "displayedMnemonicIndexAt") { |
3307 pane.repaint(); |
3307 pane.repaint(); |
3308 } else if (name == "indexForTitle") { |
3308 } else if (name == "indexForTitle") { |
3309 calculatedBaseline = false; |
3309 calculatedBaseline = false; |
3310 updateHtmlViews((Integer) e.getNewValue()); |
3310 updateHtmlViews((Integer) e.getNewValue(), false); |
3311 } else if (name == "tabLayoutPolicy") { |
3311 } else if (name == "tabLayoutPolicy") { |
3312 AquaTabbedPaneCopyFromBasicUI.this.uninstallUI(pane); |
3312 AquaTabbedPaneCopyFromBasicUI.this.uninstallUI(pane); |
3313 AquaTabbedPaneCopyFromBasicUI.this.installUI(pane); |
3313 AquaTabbedPaneCopyFromBasicUI.this.installUI(pane); |
3314 calculatedBaseline = false; |
3314 calculatedBaseline = false; |
3315 } else if (name == "tabPlacement") { |
3315 } else if (name == "tabPlacement") { |
3343 tabPane.revalidate(); |
3343 tabPane.revalidate(); |
3344 tabPane.repaint(); |
3344 tabPane.repaint(); |
3345 calculatedBaseline = false; |
3345 calculatedBaseline = false; |
3346 } else if (name == "indexForNullComponent") { |
3346 } else if (name == "indexForNullComponent") { |
3347 isRunsDirty = true; |
3347 isRunsDirty = true; |
3348 updateHtmlViews((Integer) e.getNewValue()); |
3348 updateHtmlViews((Integer) e.getNewValue(), true); |
3349 } else if (name == "font") { |
3349 } else if (name == "font") { |
3350 calculatedBaseline = false; |
3350 calculatedBaseline = false; |
3351 } |
3351 } |
3352 } |
3352 } |
3353 |
3353 |
3462 final Component child = e.getChild(); |
3462 final Component child = e.getChild(); |
3463 if (child instanceof UIResource) { |
3463 if (child instanceof UIResource) { |
3464 return; |
3464 return; |
3465 } |
3465 } |
3466 isRunsDirty = true; |
3466 isRunsDirty = true; |
3467 updateHtmlViews(tp.indexOfComponent(child)); |
3467 updateHtmlViews(tp.indexOfComponent(child), true); |
3468 } |
3468 } |
3469 |
3469 |
3470 private void updateHtmlViews(int index) { |
3470 private void updateHtmlViews(int index, boolean inserted) { |
3471 final String title = tabPane.getTitleAt(index); |
3471 final String title = tabPane.getTitleAt(index); |
3472 final boolean isHTML = BasicHTML.isHTMLString(title); |
3472 final boolean isHTML = BasicHTML.isHTMLString(title); |
3473 if (isHTML) { |
3473 if (isHTML) { |
3474 if (htmlViews == null) { // Initialize vector |
3474 if (htmlViews == null) { // Initialize vector |
3475 htmlViews = createHTMLVector(); |
3475 htmlViews = createHTMLVector(); |
3476 } else { // Vector already exists |
3476 } else { // Vector already exists |
3477 final View v = BasicHTML.createHTMLView(tabPane, title); |
3477 final View v = BasicHTML.createHTMLView(tabPane, title); |
3478 htmlViews.insertElementAt(v, index); |
3478 setHtmlView(v, inserted, index); |
3479 } |
3479 } |
3480 } else { // Not HTML |
3480 } else { // Not HTML |
3481 if (htmlViews != null) { // Add placeholder |
3481 if (htmlViews != null) { // Add placeholder |
3482 htmlViews.insertElementAt(null, index); |
3482 setHtmlView(null, inserted, index); |
3483 } // else nada! |
3483 } // else nada! |
3484 } |
3484 } |
3485 updateMnemonics(); |
3485 updateMnemonics(); |
|
3486 } |
|
3487 |
|
3488 private void setHtmlView(View v, boolean inserted, int index) { |
|
3489 if (inserted || index >= htmlViews.size()) { |
|
3490 htmlViews.insertElementAt(v, index); |
|
3491 } else { |
|
3492 htmlViews.setElementAt(v, index); |
|
3493 } |
3486 } |
3494 } |
3487 |
3495 |
3488 public void componentRemoved(final ContainerEvent e) { |
3496 public void componentRemoved(final ContainerEvent e) { |
3489 final JTabbedPane tp = (JTabbedPane)e.getContainer(); |
3497 final JTabbedPane tp = (JTabbedPane)e.getContainer(); |
3490 final Component child = e.getChild(); |
3498 final Component child = e.getChild(); |