|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.ant.freeform; import java.beans.PropertyChangeListener; import java.io.IOException; import javax.swing.Icon; import javax.swing.ImageIcon; import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectInformation; import org.netbeans.modules.ant.freeform.ui.ProjectCustomizerProvider; import org.netbeans.modules.ant.freeform.ui.View; import org.netbeans.spi.project.support.ant.AntProjectHelper; import org.netbeans.spi.project.support.ant.PropertyEvaluator; import org.netbeans.spi.project.support.ant.PropertyUtils; import org.netbeans.spi.project.ui.PrivilegedTemplates; import org.netbeans.spi.project.ui.ProjectOpenedHook; import org.openide.filesystems.FileObject; import org.openide.util.Lookup; import org.openide.util.Utilities; import org.openide.util.lookup.Lookups; import org.w3c.dom.Element; /** * One freeform project. * @author Jesse Glick */ public final class FreeformProject implements Project { private final AntProjectHelper helper; private final PropertyEvaluator eval; private final Lookup lookup; public FreeformProject(AntProjectHelper helper) throws IOException { this.helper = helper; eval = new FreeformEvaluator(this); lookup = initLookup(); } public AntProjectHelper helper() { return helper; } private Lookup initLookup() throws IOException { Classpaths cp = new Classpaths(this); return Lookups.fixed(new Object[] { new Info(), // ProjectInformation new FreeformSources(this), // Sources new Actions(this), // ActionProvider new View(this), // LogicalViewProvider cp, // ClassPathProvider new SourceLevelQueryImpl(this), // SourceLevelQueryImplementation new SourceForBinaryQueryImpl(this), // SourceForBinaryQueryImplementation new WebModules(this), // WebModuleProvider new ProjectCustomizerProvider(this, helper, eval), // CustomizerProvider new OpenHook(cp), // ProjectOpenedHook helper().createAuxiliaryConfiguration(), // AuxiliaryConfiguration helper().createCacheDirectoryProvider(), // CacheDirectoryProvider new PrivilegedTemplatesImpl(), // List of templates in New action popup new Subprojects(this), }); } public FileObject getProjectDirectory() { return helper.getProjectDirectory(); } public Lookup getLookup() { return lookup; } public PropertyEvaluator evaluator() { return eval; } public String toString() { return "FreeformProject[" + getProjectDirectory() + "]"; // NOI18N } private final class Info implements ProjectInformation { public Info() {} public String getName() { return PropertyUtils.getUsablePropertyName(getDisplayName()); } public String getDisplayName() { Element genldata = helper.getPrimaryConfigurationData(true); Element nameEl = Util.findElement(genldata, "name", FreeformProjectType.NS_GENERAL); // NOI18N if (nameEl == null) { // Corrupt. Cf. #48267 (cause unknown). return "???"; // NOI18N } return Util.findText(nameEl); } public Icon getIcon() { return new ImageIcon(Utilities.loadImage("org/netbeans/modules/ant/freeform/resources/freeform-project.png", true)); // NOI18N } public Project getProject() { return FreeformProject.this; } public void addPropertyChangeListener(PropertyChangeListener listener) { // XXX } public void removePropertyChangeListener(PropertyChangeListener listener) { // XXX } } private final class OpenHook extends ProjectOpenedHook { private final Classpaths cp; public OpenHook(Classpaths cp) { this.cp = cp; } protected void projectOpened() { cp.opened(); } protected void projectClosed() { cp.closed(); } } private static final class PrivilegedTemplatesImpl implements PrivilegedTemplates { private static final String[] PRIVILEGED_NAMES = new String[] { "Templates/Classes/Class.java", // NOI18N "Templates/Classes/Package", // NOI18N "Templates/Classes/Interface.java", // NOI18N }; public String[] getPrivilegedTemplates() { return PRIVILEGED_NAMES; } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.