/**
  * Creates a new site feature instance with the same settings as the given source feature.
  *
  * @param model site model to create the feature from
  * @param sourceFeature the feature to copy settings out of
  * @return a new site feature instance
  * @throws CoreException
  */
 private ISiteFeature copySiteFeature(ISiteModel model, ISiteFeature sourceFeature)
     throws CoreException {
   ISiteFeature sfeature = model.getFactory().createFeature();
   sfeature.setId(sourceFeature.getId());
   sfeature.setVersion(sourceFeature.getVersion());
   sfeature.setURL(sourceFeature.getURL());
   sfeature.setOS(sourceFeature.getOS());
   sfeature.setWS(sourceFeature.getWS());
   sfeature.setArch(sourceFeature.getArch());
   sfeature.setNL(sourceFeature.getNL());
   sfeature.setIsPatch(sourceFeature.isPatch());
   return sfeature;
 }
 private void addCategory(ISiteFeature aFeature, String catName) {
   try {
     if (aFeature == null) return;
     ISiteCategory[] cats = aFeature.getCategories();
     for (int j = 0; j < cats.length; j++) {
       if (cats[j].getName().equals(catName)) return;
     }
     ISiteCategory cat = fModel.getFactory().createCategory(aFeature);
     cat.setName(catName);
     expandCategory(catName);
     aFeature.addCategories(new ISiteCategory[] {cat});
   } catch (CoreException e) {
   }
 }
 public static ISiteFeature createSiteFeature(ISiteModel model, IFeatureModel featureModel)
     throws CoreException {
   IFeature feature = featureModel.getFeature();
   ISiteFeature sfeature = model.getFactory().createFeature();
   sfeature.setId(feature.getId());
   sfeature.setVersion(feature.getVersion());
   // sfeature.setURL(model.getBuildModel().getSiteBuild().getFeatureLocation()
   // + "/" + feature.getId() + "_" + feature.getVersion() + ".jar");
   // //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
   sfeature.setURL(
       "features/"
           + feature.getId()
           + "_"
           + formatVersion(feature.getVersion())
           + ".jar"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
   sfeature.setOS(feature.getOS());
   sfeature.setWS(feature.getWS());
   sfeature.setArch(feature.getArch());
   sfeature.setNL(feature.getNL());
   sfeature.setIsPatch(isFeaturePatch(feature));
   return sfeature;
 }
 private void handleAddCategoryDefinition() {
   String name =
       NLS.bind(
           PDEUIMessages.CategorySection_newCategoryName, Integer.toString(++newCategoryCounter));
   while (categoryExists(name)) {
     name =
         NLS.bind(
             PDEUIMessages.CategorySection_newCategoryName,
             Integer.toString(++newCategoryCounter));
   }
   String label =
       NLS.bind(
           PDEUIMessages.CategorySection_newCategoryLabel, Integer.toString(newCategoryCounter));
   ISiteCategoryDefinition categoryDef = fModel.getFactory().createCategoryDefinition();
   try {
     categoryDef.setName(name);
     categoryDef.setLabel(label);
     fModel.getSite().addCategoryDefinitions(new ISiteCategoryDefinition[] {categoryDef});
   } catch (CoreException e) {
     PDEPlugin.logException(e);
   }
   fCategoryViewer.setSelection(new StructuredSelection(categoryDef), true);
 }