1 11 package org.eclipse.pde.internal.core.site; 12 13 import java.io.PrintWriter ; 14 15 import org.eclipse.core.runtime.CoreException; 16 import org.eclipse.pde.internal.core.isite.ISite; 17 import org.eclipse.pde.internal.core.isite.ISiteCategory; 18 import org.eclipse.pde.internal.core.isite.ISiteCategoryDefinition; 19 import org.w3c.dom.Node ; 20 21 public class SiteCategory extends SiteObject implements ISiteCategory { 22 private static final long serialVersionUID = 1L; 23 private String name; 24 27 public String getName() { 28 return name; 29 } 30 31 public boolean isValid() { 32 return name!=null; 33 } 34 35 protected void parse(Node node) { 36 name = getNodeAttribute(node, "name"); } 38 39 protected void reset() { 40 name = null; 41 } 42 43 46 public void setName(String name) throws CoreException { 47 ensureModelEditable(); 48 Object oldValue = this.name; 49 this.name = name; 50 firePropertyChanged(P_NAME, oldValue, name); 51 } 52 public void write(String indent, PrintWriter writer) { 53 writer.print(indent); 54 writer.print("<category"); if (name!=null) 56 writer.print(" name=\"" + SiteObject.getWritableString(name) + "\""); writer.println("/>"); } 59 public void restoreProperty(String name, Object oldValue, Object newValue) 60 throws CoreException { 61 if (name.equals(P_NAME)) { 62 setName(newValue != null ? newValue.toString() : null); 63 } 64 else super.restoreProperty(name, oldValue, newValue); 65 } 66 67 public ISiteCategoryDefinition getDefinition() { 68 ISite site = getSite(); 69 ISiteCategoryDefinition [] definitions = site.getCategoryDefinitions(); 70 for (int i=0; i<definitions.length; i++) { 71 ISiteCategoryDefinition def = definitions[i]; 72 if (def.getName().equals(getName())) 73 return def; 74 } 75 return null; 76 } 77 } 78 | Popular Tags |