diff --git a/subversion/src/org/netbeans/modules/subversion/Annotator.java b/subversion/src/org/netbeans/modules/subversion/Annotator.java --- a/subversion/src/org/netbeans/modules/subversion/Annotator.java +++ b/subversion/src/org/netbeans/modules/subversion/Annotator.java @@ -54,7 +54,6 @@ import org.netbeans.modules.subversion.ui.checkout.CheckoutAction; import org.openide.util.actions.SystemAction; import org.openide.util.NbBundle; -import org.openide.util.Utilities; import org.openide.util.Lookup; import org.openide.nodes.Node; import org.netbeans.modules.subversion.util.SvnUtils; @@ -77,6 +76,7 @@ import org.netbeans.modules.subversion.ui.relocate.RelocateAction; import org.netbeans.modules.versioning.util.SystemActionBridge; import org.netbeans.modules.diff.PatchAction; +import org.openide.util.ImageUtilities; import org.tigris.subversion.svnclientadapter.*; /** @@ -100,6 +100,14 @@ private static MessageFormat mergeableFormat = getFormat("mergeableFormat"); // NOI18N private static MessageFormat excludedFormat = getFormat("excludedFormat"); // NOI18N + private static String badgeModified = "org/netbeans/modules/subversion/resources/icons/modified-badge.png"; + private static String badgeConflicts = "org/netbeans/modules/subversion/resources/icons/conflicts-badge.png"; + + private static String toolTipPackageModifiedLocally = " " + + NbBundle.getMessage(Annotator.class, "MSG_Package_Modified_Locally"); + private static String toolTipPackageContainsConflict = " " + + NbBundle.getMessage(Annotator.class, "MSG_Package_Contains_Conflicts"); + private static final int STATUS_TEXT_ANNOTABLE = FileInformation.STATUS_NOTVERSIONED_EXCLUDED | FileInformation.STATUS_NOTVERSIONED_NEWLOCALLY | FileInformation.STATUS_VERSIONED_UPTODATE | FileInformation.STATUS_VERSIONED_MODIFIEDLOCALLY | FileInformation.STATUS_VERSIONED_CONFLICT | @@ -605,8 +613,8 @@ if (info.isDirectory()) continue; int status = info.getStatus(); if (status == FileInformation.STATUS_VERSIONED_CONFLICT) { - Image badge = Utilities.loadImage("org/netbeans/modules/subversion/resources/icons/conflicts-badge.png", true); // NOI18N - return Utilities.mergeImages(icon, badge, 16, 9); + Image badge = ImageUtilities.assignToolTipToImage(ImageUtilities.loadImage(badgeConflicts, true), toolTipPackageContainsConflict); // NOI18N + return ImageUtilities.mergeImages(icon, badge, 16, 9); } modified = true; allExcluded &= config.isExcludedFromCommit(mf.getAbsolutePath()); @@ -622,8 +630,8 @@ continue; } if (status == FileInformation.STATUS_VERSIONED_CONFLICT) { - Image badge = Utilities.loadImage("org/netbeans/modules/subversion/resources/icons/conflicts-badge.png", true); // NOI18N - return Utilities.mergeImages(icon, badge, 16, 9); + Image badge = ImageUtilities.assignToolTipToImage(ImageUtilities.loadImage(badgeConflicts, true), toolTipPackageContainsConflict); // NOI18N + return ImageUtilities.mergeImages(icon, badge, 16, 9); } modified = true; allExcluded &= config.isExcludedFromCommit(mf.getAbsolutePath()); @@ -633,8 +641,8 @@ } if (modified && !allExcluded) { - Image badge = Utilities.loadImage("org/netbeans/modules/subversion/resources/icons/modified-badge.png", true); // NOI18N - return Utilities.mergeImages(icon, badge, 16, 9); + Image badge = ImageUtilities.assignToolTipToImage(ImageUtilities.loadImage(badgeModified, true), toolTipPackageModifiedLocally); // NOI18N + return ImageUtilities.mergeImages(icon, badge, 16, 9); } else { return null; } diff --git a/subversion/src/org/netbeans/modules/subversion/Bundle.properties b/subversion/src/org/netbeans/modules/subversion/Bundle.properties --- a/subversion/src/org/netbeans/modules/subversion/Bundle.properties +++ b/subversion/src/org/netbeans/modules/subversion/Bundle.properties @@ -115,3 +115,7 @@ CTL_OutputTab_Name = SVN Output MSG_UnknownURL=[Unknown repository URL] + +MSG_Package_Modified_Locally = The package or folder contains files that were modified locally +MSG_Package_Contains_Conflicts = The package or folder contains files that are in conflict with those in the repository +