diff --git a/platform/core.multitabs/src/org/netbeans/core/multitabs/Settings.java b/platform/core.multitabs/src/org/netbeans/core/multitabs/Settings.java index c41aa91512aa..2982808c7b73 100644 --- a/platform/core.multitabs/src/org/netbeans/core/multitabs/Settings.java +++ b/platform/core.multitabs/src/org/netbeans/core/multitabs/Settings.java @@ -88,6 +88,10 @@ public boolean isTabRowPerProject() { return impl.isTabRowPerProject(); } + public boolean isShowFolderName() { + return impl.isShowFolderName(); + } + /** * @return Maximum tab row count. */ diff --git a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/DocumentSwitcherTable.java b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/DocumentSwitcherTable.java index 4ff3786b3ac2..4fe8f4b80160 100644 --- a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/DocumentSwitcherTable.java +++ b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/DocumentSwitcherTable.java @@ -63,18 +63,26 @@ class DocumentSwitcherTable extends SwitcherTable { private final JButton btnClose; private final Controller controller; - private final ProjectColorTabDecorator decorator; + private final ProjectColorTabDecorator projectColorTabDecorator; + private final FolderNameTabDecorator folderNameDecorator; private final ItemBorder ITEM_BORDER = new ItemBorder(); private final Border SEPARATOR_BORDER = BorderFactory.createEmptyBorder( 2, 2, 0, 5 ); + private String itemText; + public DocumentSwitcherTable( Controller controller, SwitcherTableItem[] items, int y ) { super( items, y ); this.controller = controller; btnClose = createCloseButton(); if( Settings.getDefault().isSameProjectSameColor() ) { - decorator = new ProjectColorTabDecorator(); + projectColorTabDecorator = new ProjectColorTabDecorator(); + } else { + projectColorTabDecorator = null; + } + if( Settings.getDefault().isShowFolderName() ) { + folderNameDecorator = new FolderNameTabDecorator(); } else { - decorator = null; + folderNameDecorator = null; } ToolTipManager.sharedInstance().registerComponent( this ); } @@ -103,6 +111,13 @@ public Component prepareRenderer( TableCellRenderer renderer, int row, int colum lbl.setIcon( null ); lbl.setText( item.getHtmlName() ); } else { + if(null != folderNameDecorator && null != item) { + TabData tab = item.getTabData(); + if(null != tab) { + itemText = folderNameDecorator.getText(tab) + (item.isActive() ? " ←" : ""); //NOI18N + lbl.setText(itemText); + } + } lbl.setBorder( ITEM_BORDER ); } } @@ -115,10 +130,10 @@ public Component prepareRenderer( TableCellRenderer renderer, int row, int colum res.setBackground( renComponent.getBackground() ); return res; } - if( null != decorator && null != item && !selected ) { + if( null != projectColorTabDecorator && null != item && !selected ) { TabData tab = item.getTabData(); if( null != tab ) { - ITEM_BORDER.color = decorator.getBackground( tab, selected); + ITEM_BORDER.color = projectColorTabDecorator.getBackground( tab, selected); } } return renComponent; diff --git a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/FolderNameTabDecorator.java b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/FolderNameTabDecorator.java index c9fab2d77250..a21f90c50a07 100644 --- a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/FolderNameTabDecorator.java +++ b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/FolderNameTabDecorator.java @@ -41,6 +41,8 @@ public class FolderNameTabDecorator extends TabDecorator { private final SettingsImpl settings = new SettingsImpl(); private static final String pathSeparator = System.getProperty( "file.separator", "/" ); //NOI18N + private static final String FONT_COLOR = ""; //NOI18N + private static final String FONT_COLOR_END = ""; //NOI18N @Override public String getText( TabData tab ) { @@ -54,7 +56,7 @@ public String getText( TabData tab ) { if( fo.isData() ) { FileObject folder = fo.getParent(); if( null != folder ) { - String folderName = folder.getNameExt() + pathSeparator; + String folderName = FONT_COLOR + folder.getNameExt() + pathSeparator + FONT_COLOR_END; String defaultText = tab.getText(); return merge( folderName, defaultText );