# 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 files) { + return null; + } + + @Override + public Image annotateIcon(Image icon, int iconType, Set 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 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 files) { + return null; + } + + @Override + public Action[] actions(Set 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