/** * Through this method the IDE find out, whether a project is a web module * @param project the Project object * @return true if the project is a web module */ public static boolean isWebProject(Project project) { if (project == null) { return false; } WebModule wm = WebModule.getWebModule(project.getProjectDirectory()); return wm != null; } /** * Obtain the value of a project property * @param project the Project object * @param propName name of the property * @return the value of the property */ public static String getProjectProperty(Project project, String propName) { if (isWebProject(project)) { UpdateHelper updateHelper = ((WebProject) project).getUpdateHelper(); EditableProperties props = updateHelper.getProperties (AntProjectHelper.PROJECT_PROPERTIES_PATH); return props.getProperty(propName); } else { return null; } } /** * Set the value of a project property * @param project the Project object * @param propName name of the property * @param value the value of the property */ public static void putProjectProperty(Project project, String propName, String value) { if (isWebProject(project)) { UpdateHelper updateHelper = ((WebProject) project).getUpdateHelper(); AntProjectHelper helper = ((WebProject) project).getHelper(); EditableProperties props = updateHelper.getProperties (AntProjectHelper.PROJECT_PROPERTIES_PATH); props.setProperty(propName, value); helper.putProperties(AntProjectHelper.PROJECT_PROPERTIES_PATH, props); try { ProjectManager.getDefault().saveProject(project); } catch (Exception e) { ErrorManager.getDefault().notify(e); } } } /** * Add a property listener to the project * @param project the Project object * @param l Listener implementation */ public static void addProjectPropertyListener(Project project, PropertyChangeListener l) { if (isWebProject(project)) { AntProjectHelper helper = ((WebProject) project).getHelper(); PropertyEvaluator propEval = helper.getStandardPropertyEvaluator(); propEval.addPropertyChangeListener(l); } } /** * Remove a property listener from the project * @param project the Project object * @param l Listener implementation */ public static void removeProjectPropertyListener(Project project, PropertyChangeListener l) { if (isWebProject(project)) { AntProjectHelper helper = ((WebProject) project).getHelper(); PropertyEvaluator propEval = helper.getStandardPropertyEvaluator(); propEval.removePropertyChangeListener(l); } }