|
Lines 14-19
Link Here
|
| 14 |
import org.eclipse.jface.action.IMenuManager; |
14 |
import org.eclipse.jface.action.IMenuManager; |
| 15 |
import org.eclipse.jface.action.MenuManager; |
15 |
import org.eclipse.jface.action.MenuManager; |
| 16 |
import org.eclipse.jface.action.Separator; |
16 |
import org.eclipse.jface.action.Separator; |
|
|
17 |
import org.eclipse.jface.text.IDocument; |
| 17 |
import org.eclipse.jface.viewers.CellEditor; |
18 |
import org.eclipse.jface.viewers.CellEditor; |
| 18 |
import org.eclipse.jface.viewers.ISelection; |
19 |
import org.eclipse.jface.viewers.ISelection; |
| 19 |
import org.eclipse.jface.viewers.SelectionChangedEvent; |
20 |
import org.eclipse.jface.viewers.SelectionChangedEvent; |
|
Lines 27-32
Link Here
|
| 27 |
import org.eclipse.ui.PlatformUI; |
28 |
import org.eclipse.ui.PlatformUI; |
| 28 |
import org.eclipse.wst.sse.core.internal.provisional.IModelStateListener; |
29 |
import org.eclipse.wst.sse.core.internal.provisional.IModelStateListener; |
| 29 |
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; |
30 |
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; |
|
|
31 |
import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager; |
| 30 |
import org.eclipse.wst.sse.ui.internal.ViewerSelectionManager; |
32 |
import org.eclipse.wst.sse.ui.internal.ViewerSelectionManager; |
| 31 |
import org.eclipse.wst.sse.ui.internal.view.events.INodeSelectionListener; |
33 |
import org.eclipse.wst.sse.ui.internal.view.events.INodeSelectionListener; |
| 32 |
import org.eclipse.wst.sse.ui.internal.view.events.NodeSelectionChangedEvent; |
34 |
import org.eclipse.wst.sse.ui.internal.view.events.NodeSelectionChangedEvent; |
|
Lines 152-169
Link Here
|
| 152 |
|
154 |
|
| 153 |
class NodeActionMenuListener implements IMenuListener { |
155 |
class NodeActionMenuListener implements IMenuListener { |
| 154 |
public void menuAboutToShow(IMenuManager menuManager) { |
156 |
public void menuAboutToShow(IMenuManager menuManager) { |
| 155 |
// used to disable NodeSelection listening while running |
157 |
if (fModel != null) { |
| 156 |
// NodeAction |
158 |
// used to disable NodeSelection listening while running |
| 157 |
XMLNodeActionManager nodeActionManager = new XMLNodeActionManager(fModel, XMLTableTreeViewer.this) { |
159 |
// NodeAction |
| 158 |
public void beginNodeAction(NodeAction action) { |
160 |
XMLNodeActionManager nodeActionManager = new XMLNodeActionManager(fModel, XMLTableTreeViewer.this) { |
| 159 |
super.beginNodeAction(action); |
161 |
public void beginNodeAction(NodeAction action) { |
| 160 |
} |
162 |
super.beginNodeAction(action); |
| 161 |
|
163 |
} |
| 162 |
public void endNodeAction(NodeAction action) { |
164 |
|
| 163 |
super.endNodeAction(action); |
165 |
public void endNodeAction(NodeAction action) { |
| 164 |
} |
166 |
super.endNodeAction(action); |
| 165 |
}; |
167 |
} |
| 166 |
nodeActionManager.fillContextMenu(menuManager, getSelection()); |
168 |
}; |
|
|
169 |
nodeActionManager.fillContextMenu(menuManager, getSelection()); |
| 170 |
} |
| 167 |
} |
171 |
} |
| 168 |
} |
172 |
} |
| 169 |
|
173 |
|
|
Lines 258-264
Link Here
|
| 258 |
protected void handleDispose(DisposeEvent event) { |
262 |
protected void handleDispose(DisposeEvent event) { |
| 259 |
super.handleDispose(event); |
263 |
super.handleDispose(event); |
| 260 |
treeExtension.dispose(); |
264 |
treeExtension.dispose(); |
| 261 |
setModel(null); |
265 |
setDocument(null); |
| 262 |
setViewerSelectionManager(null); |
266 |
setViewerSelectionManager(null); |
| 263 |
} |
267 |
} |
| 264 |
|
268 |
|
|
Lines 317-338
Link Here
|
| 317 |
} |
321 |
} |
| 318 |
} |
322 |
} |
| 319 |
|
323 |
|
| 320 |
public void setModel(IStructuredModel model) { |
324 |
public void setDocument(IDocument document) { |
| 321 |
// remove |
325 |
// remove |
| 322 |
if (fModel != null) { |
326 |
if (fModel != null) { |
| 323 |
fModel.removeModelStateListener(fInternalModelStateListener); |
327 |
fModel.removeModelStateListener(fInternalModelStateListener); |
|
|
328 |
fModel.releaseFromEdit(); |
| 324 |
} |
329 |
} |
| 325 |
|
330 |
|
| 326 |
fModel = model; |
331 |
// get model for read and allow text editor to be the one that getmodelforedit |
| 327 |
Document domDoc = null; |
332 |
IStructuredModel model = null; |
|
|
333 |
model = StructuredModelManager.getModelManager().getExistingModelForEdit(document); |
| 328 |
|
334 |
|
| 329 |
if (fModel != null && fModel instanceof IDOMModel) { |
335 |
if (model != null && model instanceof IDOMModel) { |
|
|
336 |
Document domDoc = null; |
| 330 |
model.addModelStateListener(fInternalModelStateListener); |
337 |
model.addModelStateListener(fInternalModelStateListener); |
| 331 |
ModelQuery mq = ModelQueryUtil.getModelQuery(model); |
338 |
ModelQuery mq = ModelQueryUtil.getModelQuery(model); |
| 332 |
treeExtension.setModelQuery(mq); |
339 |
treeExtension.setModelQuery(mq); |
| 333 |
domDoc = ((IDOMModel) fModel).getDocument(); |
340 |
domDoc = ((IDOMModel) model).getDocument(); |
| 334 |
setInput(domDoc); |
341 |
setInput(domDoc); |
|
|
342 |
treeExtension.setIsUnsupportedInput(false); |
| 343 |
} else { |
| 344 |
treeExtension.setIsUnsupportedInput(true); |
| 335 |
} |
345 |
} |
|
|
346 |
|
| 347 |
fModel = model; |
| 336 |
} |
348 |
} |
| 337 |
|
349 |
|
| 338 |
// the following methods implement the IDesignViewer interface |
350 |
// the following methods implement the IDesignViewer interface |