1 11 package org.eclipse.pde.internal.core.product; 12 13 import org.eclipse.core.runtime.PlatformObject; 14 import org.eclipse.pde.core.IModelChangeProvider; 15 import org.eclipse.pde.core.ModelChangedEvent; 16 import org.eclipse.pde.internal.core.iproduct.IProduct; 17 import org.eclipse.pde.internal.core.iproduct.IProductModel; 18 import org.eclipse.pde.internal.core.iproduct.IProductObject; 19 import org.eclipse.pde.internal.core.util.PDEXMLHelper; 20 21 22 public abstract class ProductObject extends PlatformObject implements IProductObject { 23 24 private transient IProductModel fModel; 25 26 public ProductObject(IProductModel model) { 27 fModel = model; 28 } 29 30 33 public IProductModel getModel() { 34 return fModel; 35 } 36 37 public void setModel(IProductModel model) { 38 fModel = model; 39 } 40 41 44 public IProduct getProduct() { 45 return getModel().getProduct(); 46 } 47 48 protected void firePropertyChanged( 49 String property, 50 Object oldValue, 51 Object newValue) { 52 firePropertyChanged(this, property, oldValue, newValue); 53 } 54 55 protected void firePropertyChanged( 56 IProductObject object, 57 String property, 58 Object oldValue, 59 Object newValue) { 60 if (fModel.isEditable()) { 61 IModelChangeProvider provider = fModel; 62 provider.fireModelObjectChanged(object, property, oldValue, newValue); 63 } 64 } 65 66 protected void fireStructureChanged(IProductObject child, int changeType) { 67 fireStructureChanged(new IProductObject[] { child }, changeType); 68 } 69 70 protected void fireStructureChanged( 71 IProductObject[] children, 72 int changeType) { 73 if (fModel.isEditable()) { 74 IModelChangeProvider provider = fModel; 75 provider.fireModelChanged(new ModelChangedEvent(provider, changeType, children, null)); 76 } 77 } 78 79 protected boolean isEditable() { 80 return getModel().isEditable(); 81 } 82 83 public String getWritableString(String source) { 84 return PDEXMLHelper.getWritableString(source); 85 } 86 87 88 89 } 90 | Popular Tags |