# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: /Users/petrdvorak/NetBeansSources/cdev
# This patch can be applied using context Tools: Patch action on respective folder.
# It uses platform neutral UTF-8 encoding and \n newlines.
# Above lines and this line are ignored by the patching process.
Index: kenai.ui/nbproject/project.xml
--- kenai.ui/nbproject/project.xml Base (BASE)
+++ kenai.ui/nbproject/project.xml Locally Modified (Based On LOCAL)
@@ -85,6 +85,15 @@
+ org.netbeans.modules.masterfs
+
+
+
+ 2
+ 2.17
+
+
+
org.netbeans.modules.mercurial
Index: kenai.ui/src/org/netbeans/modules/kenai/ui/project/Bundle.properties
--- kenai.ui/src/org/netbeans/modules/kenai/ui/project/Bundle.properties Base (BASE)
+++ kenai.ui/src/org/netbeans/modules/kenai/ui/project/Bundle.properties Locally Modified (Based On LOCAL)
@@ -42,6 +42,7 @@
MSG_SUBVERSION=Subversion repository
MSG_GIT=Git repository
MSG_UNKNOWN_SCM=Unknown SCM or external repository
+MSG_PART_OF_KENAI_PROJ=Part of a Kenai project
SourcesInformationPanel.srcFeedPane.contentType=text/html
IssuesInformationPanel.issuesInfoPane.contentType=text/html
kenaiProjectTopComponent.jLabel4.text=Back to top
Index: kenai.ui/src/org/netbeans/modules/kenai/ui/project/KenaiAnnotationProvider.java
--- kenai.ui/src/org/netbeans/modules/kenai/ui/project/KenaiAnnotationProvider.java Base (BASE)
+++ kenai.ui/src/org/netbeans/modules/kenai/ui/project/KenaiAnnotationProvider.java Locally New
@@ -0,0 +1,150 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License. When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2009 Sun Microsystems, Inc.
+ */
+
+package org.netbeans.modules.kenai.ui.project;
+
+import java.awt.Image;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.Set;
+import javax.swing.Action;
+import org.netbeans.api.project.Project;
+import org.netbeans.api.project.ProjectManager;
+import org.netbeans.modules.masterfs.providers.AnnotationProvider;
+import org.netbeans.modules.masterfs.providers.InterceptionListener;
+import org.openide.filesystems.FileObject;
+import org.openide.util.ImageUtilities;
+import org.openide.util.Lookup;
+import org.openide.util.NbBundle;
+
+/**
+ *
+ * @author petrdvorak
+ */
+@org.openide.util.lookup.ServiceProvider(service=org.netbeans.modules.masterfs.providers.AnnotationProvider.class, position=106)
+public class KenaiAnnotationProvider extends AnnotationProvider {
+
+ public KenaiAnnotationProvider() {
+ }
+
+ private static final URL kenaiBadgeIconURL = KenaiAnnotationProvider.class.getClassLoader().getResource("org/netbeans/modules/kenai/ui/resources/kenai-badge.png");
+ private static final String tooltip = " " + NbBundle.getMessage(KenaiAnnotationProvider.class, "MSG_PART_OF_KENAI_PROJ");
+
+ @Override
+ public String annotateName(String name, Set extends FileObject> files) {
+ return null;
+ }
+
+ @Override
+ public Image annotateIcon(Image icon, int iconType, Set extends FileObject> files) {
+ Image i = icon;
+ boolean isKenai = false;
+ for (FileObject fo : files) {
+ if (fo.isFolder() && ProjectManager.getDefault().isProject(fo.getParent())) {
+ Project proj = null;
+ try {
+ proj = ProjectManager.getDefault().findProject(fo.getParent());
+ } catch (IOException ex) {
+ } catch (IllegalArgumentException ex) {
+ }
+ if (proj != null) {
+ String projRepo = (String) proj.getProjectDirectory().getAttribute("ProvidedExtensions.RemoteLocation"); //NOI18N
+ if (projRepo != null && projRepo.contains("kenai.com")) {
+ i = ImageUtilities.addToolTipToImage(icon, tooltip);
+ isKenai = true;
+ break;
+ }
+ }
+ } else if (fo.isFolder() && ProjectManager.getDefault().isProject(fo)) {
+ Project proj = null;
+ try {
+ proj = ProjectManager.getDefault().findProject(fo);
+ } catch (IOException ex) {
+ } catch (IllegalArgumentException ex) {
+ }
+ if (proj != null) {
+ String projRepo = (String) proj.getProjectDirectory().getAttribute("ProvidedExtensions.RemoteLocation"); //NOI18N
+ if (projRepo != null && projRepo.contains("kenai.com")) {
+ i = ImageUtilities.addToolTipToImage(icon, tooltip);
+ isKenai = true;
+ break;
+ }
+ }
+ }
+ }
+
+ Iterator extends AnnotationProvider> it = Lookup.getDefault().lookupAll(AnnotationProvider.class).iterator();
+ boolean found = false;
+
+ if (isKenai) {
+ while (it.hasNext()) {
+ AnnotationProvider p = it.next();
+
+ if (found) {
+ Image res = p.annotateIcon(i, iconType, files);
+
+ if (res != null) {
+ return res;
+ }
+ } else {
+ found = p == this;
+ }
+ }
+ return i;
+ }
+ return null;
+ }
+
+ @Override
+ public String annotateNameHtml(String name, Set extends FileObject> files) {
+ return null;
+ }
+
+ @Override
+ public Action[] actions(Set extends FileObject> files) {
+ return null;
+ }
+
+ @Override
+ public InterceptionListener getInterceptionListener() {
+ return null;
+ }
+
+}
Index: kenai.ui/src/org/netbeans/modules/kenai/ui/resources/kenai-badge.png
--- kenai.ui/src/org/netbeans/modules/kenai/ui/resources/kenai-badge.png Base (BASE)
+++ kenai.ui/src/org/netbeans/modules/kenai/ui/resources/kenai-badge.png Locally New
Index: masterfs/nbproject/project.xml
--- masterfs/nbproject/project.xml Base (BASE)
+++ masterfs/nbproject/project.xml Locally Modified (Based On LOCAL)
@@ -100,6 +100,7 @@
org.netbeans.modules.java.source
org.netbeans.modules.javafx.source
org.netbeans.modules.versioning
+ org.netbeans.modules.kenai.ui
org.netbeans.modules.masterfs.providers