01: /*******************************************************************************
02: * Copyright (c) 2005, 2007 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.pde.internal.core.target;
11:
12: import org.eclipse.core.runtime.PlatformObject;
13: import org.eclipse.pde.core.IModelChangeProvider;
14: import org.eclipse.pde.core.ModelChangedEvent;
15: import org.eclipse.pde.internal.core.itarget.ITarget;
16: import org.eclipse.pde.internal.core.itarget.ITargetModel;
17: import org.eclipse.pde.internal.core.itarget.ITargetObject;
18: import org.eclipse.pde.internal.core.util.PDEXMLHelper;
19:
20: public abstract class TargetObject extends PlatformObject implements
21: ITargetObject {
22:
23: private transient ITargetModel fModel;
24:
25: public TargetObject(ITargetModel model) {
26: fModel = model;
27: }
28:
29: public ITargetModel getModel() {
30: return fModel;
31: }
32:
33: public void setModel(ITargetModel model) {
34: fModel = model;
35: }
36:
37: public ITarget getTarget() {
38: return getModel().getTarget();
39: }
40:
41: protected void firePropertyChanged(String property,
42: Object oldValue, Object newValue) {
43: firePropertyChanged(this , property, oldValue, newValue);
44: }
45:
46: protected void firePropertyChanged(ITargetObject object,
47: String property, Object oldValue, Object newValue) {
48: if (fModel.isEditable()) {
49: IModelChangeProvider provider = fModel;
50: provider.fireModelObjectChanged(object, property, oldValue,
51: newValue);
52: }
53: }
54:
55: protected void fireStructureChanged(ITargetObject child,
56: int changeType) {
57: fireStructureChanged(new ITargetObject[] { child }, changeType);
58: }
59:
60: protected void fireStructureChanged(ITargetObject[] children,
61: int changeType) {
62: if (fModel.isEditable()) {
63: IModelChangeProvider provider = fModel;
64: provider.fireModelChanged(new ModelChangedEvent(provider,
65: changeType, children, null));
66: }
67: }
68:
69: protected boolean isEditable() {
70: return getModel().isEditable();
71: }
72:
73: public String getWritableString(String source) {
74: return PDEXMLHelper.getWritableString(source);
75: }
76:
77: }
|