new batch
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/AbstractEditingModel.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/AbstractEditingModel.java
index a653093..530675d 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/AbstractEditingModel.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/AbstractEditingModel.java
@@ -95,6 +95,15 @@
public boolean isLoaded() {
return fLoaded;
}
+
+ /**
+ * @param loaded
+ */
+ public void setLoaded(boolean loaded) {
+ // TODO: MP: TEO: Set as API?
+ fLoaded = loaded;
+ }
+
/* (non-Javadoc)
* @see org.eclipse.pde.core.IModel#isInSync()
*/
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/DocumentObject.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/DocumentObject.java
index 285d4a7..e5a8d54 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/DocumentObject.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/DocumentObject.java
@@ -206,44 +206,52 @@
}
}
- /* (non-Javadoc)
- * @see org.eclipse.pde.internal.core.text.plugin.PluginDocumentNode#addChildNode(org.eclipse.pde.internal.core.text.IDocumentNode, int)
+ /**
+ * @param child
+ * @param position
+ * @param fireEvent
*/
- public void addChildNode(IDocumentNode child, int position) {
+ protected void addChildNode(IDocumentNode child, int position, boolean fireEvent) {
super.addChildNode(child, position);
// Fire event
- if (shouldFireEvent()) {
+ if (fireEvent && shouldFireEvent()) {
fireStructureChanged(child, IModelChangedEvent.INSERT);
}
}
- /* (non-Javadoc)
- * @see org.eclipse.pde.internal.core.text.plugin.PluginDocumentNode#addChildNode(org.eclipse.pde.internal.core.text.IDocumentNode)
+ /**
+ * @param child
+ * @param fireEvent
*/
- public void addChildNode(IDocumentNode child) {
+ protected void addChildNode(IDocumentNode child, boolean fireEvent) {
super.addChildNode(child);
// Fire event
- if (shouldFireEvent()) {
+ if (fireEvent && shouldFireEvent()) {
fireStructureChanged(child, IModelChangedEvent.INSERT);
}
}
- /* (non-Javadoc)
- * @see org.eclipse.pde.internal.core.text.plugin.PluginDocumentNode#removeChildNode(org.eclipse.pde.internal.core.text.IDocumentNode)
+ /**
+ * @param child
+ * @param fireEvent
+ * @return
*/
- public IDocumentNode removeChildNode(IDocumentNode child) {
+ protected IDocumentNode removeChildNode(IDocumentNode child, boolean fireEvent) {
IDocumentNode node = super.removeChildNode(child);
// Fire event
- if (shouldFireEvent()) {
+ if (fireEvent && shouldFireEvent()) {
fireStructureChanged(child, IModelChangedEvent.REMOVE);
}
return node;
}
- /* (non-Javadoc)
- * @see org.eclipse.pde.internal.core.text.plugin.PluginDocumentNode#removeChildNode(int)
+ /**
+ * @param index
+ * @param clazz
+ * @param fireEvent
+ * @return
*/
- public IDocumentNode removeChildNode(int index, Class clazz) {
+ protected IDocumentNode removeChildNode(int index, Class clazz, boolean fireEvent) {
// Validate index
if ((index < 0) ||
(index >= getChildCount()) ||
@@ -255,7 +263,7 @@
// Remove the node
IDocumentNode node = super.removeChildNode(index);
// Fire event
- if (shouldFireEvent()) {
+ if (fireEvent && shouldFireEvent()) {
fireStructureChanged(node, IModelChangedEvent.REMOVE);
}
return node;
@@ -285,17 +293,17 @@
} else if (newNode == null) {
// NEW = NULL, OLD = DEF
// Remove the old node
- removeChildNode((IDocumentNode)oldNode);
+ removeChildNode((IDocumentNode)oldNode, true);
} else if (oldNode == null) {
// NEW = DEF, OLD = NULL
// Add the new node as the first child
- addChildNode((IDocumentNode)newNode, 0);
+ addChildNode((IDocumentNode)newNode, 0, true);
} else {
// NEW = DEF, OLD = DEF
// Remove the old node
- removeChildNode((IDocumentNode)oldNode);
+ removeChildNode((IDocumentNode)oldNode, true);
// Add the new node as the first child
- addChildNode((IDocumentNode)newNode, 0);
+ addChildNode((IDocumentNode)newNode, 0, true);
}
if (shouldFireEvent()) {
@@ -528,13 +536,13 @@
return;
}
// Remove the node
- removeChildNode(node);
+ removeChildNode(node, true);
// Removing the node and moving it to a positive relative index alters
// the indexing for insertion; however, this pads the new relative
// index by 1, allowing it to be inserted one position after as
// desired
// Add the node back at the specified index
- addChildNode(node, newIndex);
+ addChildNode(node, newIndex, true);
}
/**
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/XMLEditingModel.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/XMLEditingModel.java
index 8bb4a06..e082943 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/XMLEditingModel.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/XMLEditingModel.java
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.eclipse.pde.internal.core.text;
+import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -51,29 +52,7 @@
} catch (FactoryConfigurationError e) {
}
}
-
- /**
- * @param document
- */
- public void reload(IDocument document) {
- // Get the document's text
- String text = document.get();
- InputStream stream = null;
-
- try {
- // Turn the document's text into a stream
- stream = new ByteArrayInputStream(text.getBytes("UTF8")); //$NON-NLS-1$
- // Reload the model using the stream
- reload(stream, false);
- // Remove the dirty (*) indicator from the editor window
- setDirty(false);
- } catch (UnsupportedEncodingException e) {
- PDECore.logException(e);
- } catch (CoreException e) {
- // Ignore
- }
- }
-
+
protected abstract DefaultHandler createDocumentHandler(IModel model, boolean reconciling);
public void adjustOffsets(IDocument document) {
@@ -87,10 +66,22 @@
}
}
+ /**
+ * @return
+ */
+ private boolean isResourceFile() {
+ if (getUnderlyingResource() == null) {
+ return false;
+ } else if ((getUnderlyingResource() instanceof IFile) == false) {
+ return false;
+ }
+ return true;
+ }
+
public void save() {
- if (getUnderlyingResource() == null
- || !(getUnderlyingResource() instanceof IFile))
+ if (isResourceFile() == false) {
return;
+ }
try {
IFile file = (IFile)getUnderlyingResource();
String contents = getContents();
@@ -108,9 +99,53 @@
}
}
+ /* (non-Javadoc)
+ * @see org.eclipse.pde.internal.core.IWorkspaceModel#reload()
+ */
+ public void reload() {
+ if (isResourceFile() == false) {
+ return;
+ }
+ IFile file = (IFile)getUnderlyingResource();
+ // Underlying file has to exist in order to reload the model
+ if (file.exists()) {
+ InputStream stream = null;
+ try {
+ // Get the file contents
+ stream = new BufferedInputStream(file.getContents(true));
+ // Load the model using the last saved file contents
+ reload(stream, false);
+ // Remove the dirty (*) indicator from the editor window
+ setDirty(false);
+ } catch (CoreException e) {
+ // Ignore
+ }
+ }
+ }
+
+ public void reload(IDocument document) {
+ // Get the document's text
+ String text = document.get();
+ InputStream stream = null;
+
+ try {
+ // Turn the document's text into a stream
+ stream = new ByteArrayInputStream(text.getBytes("UTF8")); //$NON-NLS-1$
+ // Reload the model using the stream
+ reload(stream, false);
+ // Remove the dirty (*) indicator from the editor window
+ setDirty(false);
+ } catch (UnsupportedEncodingException e) {
+ PDECore.logException(e);
+ } catch (CoreException e) {
+ // Ignore
+ }
+ }
+
public String getContents() {
StringWriter swriter = new StringWriter();
PrintWriter writer = new PrintWriter(swriter);
+ setLoaded(true);
save(writer);
writer.flush();
try {
@@ -120,6 +155,9 @@
return swriter.toString();
}
+ /* (non-Javadoc)
+ * @see org.eclipse.pde.internal.core.text.AbstractEditingModel#save(java.io.PrintWriter)
+ */
public void save(PrintWriter writer) {
if (isLoaded()) {
getRoot().write("", writer); //$NON-NLS-1$
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCS.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCS.java
index 9d220a8..b9f329c 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCS.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCS.java
@@ -38,7 +38,7 @@
*/
public void addItem(ISimpleCSItem item) {
((DocumentObject)item).setInTheModel(true);
- addChildNode((IDocumentNode)item);
+ addChildNode((IDocumentNode)item, true);
}
/* (non-Javadoc)
@@ -46,7 +46,7 @@
*/
public void addItem(int index, ISimpleCSItem item) {
((DocumentObject)item).setInTheModel(true);
- addChildNode((IDocumentNode)item, index);
+ addChildNode((IDocumentNode)item, index, true);
}
/* (non-Javadoc)
@@ -131,7 +131,7 @@
* @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCS#removeItem(org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSItem)
*/
public void removeItem(ISimpleCSItem item) {
- removeChildNode((IDocumentNode)item);
+ removeChildNode((IDocumentNode)item, true);
((DocumentObject)item).setInTheModel(false);
}
@@ -139,7 +139,7 @@
* @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCS#removeItem(int)
*/
public void removeItem(int index) {
- ISimpleCSItem item = (ISimpleCSItem)removeChildNode(index, ISimpleCSItem.class);
+ ISimpleCSItem item = (ISimpleCSItem)removeChildNode(index, ISimpleCSItem.class, true);
if (item != null) {
((DocumentObject)item).setInTheModel(false);
}
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCSItem.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCSItem.java
index d5491ac..f1aa718 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCSItem.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCSItem.java
@@ -43,7 +43,7 @@
*/
public void addSubItem(ISimpleCSSubItemObject subitem) {
((DocumentObject)subitem).setInTheModel(true);
- addChildNode((IDocumentNode)subitem);
+ addChildNode((IDocumentNode)subitem, true);
}
/* (non-Javadoc)
@@ -51,7 +51,7 @@
*/
public void addSubItem(int index, ISimpleCSSubItemObject subitem) {
((DocumentObject)subitem).setInTheModel(true);
- addChildNode((IDocumentNode)subitem, index);
+ addChildNode((IDocumentNode)subitem, index, true);
}
/* (non-Javadoc)
@@ -159,7 +159,7 @@
* @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSItem#removeSubItem(org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSSubItemObject)
*/
public void removeSubItem(ISimpleCSSubItemObject subitem) {
- removeChildNode((IDocumentNode)subitem);
+ removeChildNode((IDocumentNode)subitem, true);
((DocumentObject)subitem).setInTheModel(false);
}
@@ -168,7 +168,7 @@
*/
public void removeSubItem(int index) {
ISimpleCSSubItemObject item =
- (ISimpleCSSubItemObject)removeChildNode(index, ISimpleCSSubItemObject.class);
+ (ISimpleCSSubItemObject)removeChildNode(index, ISimpleCSSubItemObject.class, true);
if (item != null) {
((DocumentObject)item).setInTheModel(false);
}
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCSModel.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCSModel.java
index 6967e9b..535f250 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCSModel.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCSModel.java
@@ -84,6 +84,9 @@
return fSimpleCS;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.pde.internal.core.text.XMLEditingModel#getRoot()
+ */
protected IWritable getRoot() {
return getSimpleCS();
}
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCSOnCompletion.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCSOnCompletion.java
index b63a993..4784f12 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCSOnCompletion.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/cheatsheet/simple/SimpleCSOnCompletion.java
@@ -11,7 +11,7 @@
package org.eclipse.pde.internal.core.text.cheatsheet.simple;
-import java.io.PrintWriter;
+import java.util.ArrayList;
import java.util.List;
import org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSModel;
@@ -37,36 +37,35 @@
* @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSOnCompletion#getContent()
*/
public String getContent() {
- // TODO: MP: CURRENT: IMPLEMENT
- return null;
+ return getXMLContent();
}
/* (non-Javadoc)
* @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSOnCompletion#setContent(java.lang.String)
*/
public void setContent(String content) {
- // TODO: MP: CURRENT: IMPLEMENT
-
+ setXMLContent(content);
}
+ /* (non-Javadoc)
+ * @see org.eclipse.pde.internal.core.text.cheatsheet.simple.SimpleCSObject#getChildren()
+ */
public List getChildren() {
- // TODO: MP: CURRENT: IMPLEMENT
- return null;
+ return new ArrayList();
}
+ /* (non-Javadoc)
+ * @see org.eclipse.pde.internal.core.text.cheatsheet.simple.SimpleCSObject#getName()
+ */
public String getName() {
- // TODO: MP: CURRENT: IMPLEMENT
- return null;
+ return ELEMENT_ONCOMPLETION;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.pde.internal.core.text.cheatsheet.simple.SimpleCSObject#getType()
+ */
public int getType() {
- // TODO: MP: CURRENT: IMPLEMENT
- return 0;
- }
-
- public void write(String indent, PrintWriter writer) {
- // TODO: MP: CURRENT: IMPLEMENT
-
+ return TYPE_ON_COMPLETION;
}
}
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/plugin/PluginDocumentNode.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/plugin/PluginDocumentNode.java
index 3072304..2f80a12 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/plugin/PluginDocumentNode.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/plugin/PluginDocumentNode.java
@@ -257,13 +257,16 @@
IDocumentNode child = (IDocumentNode)fChildren.get(index);
// Remove the child
fChildren.remove(child);
- // Determine the new previous sibling
- IDocumentNode prevSibling = null;
- if (index != 0) {
- prevSibling = (IDocumentNode)fChildren.get(index - 1);
+ // Determine the new previous sibling for the new element at the
+ // specified index
+ if (index < fChildren.size()) {
+ IDocumentNode previousSibling = null;
+ if (index != 0) {
+ previousSibling = (IDocumentNode)fChildren.get(index - 1);
+ }
+ IDocumentNode newNode = (IDocumentNode)fChildren.get(index);
+ newNode.setPreviousSibling(previousSibling);
}
- child.setPreviousSibling(prevSibling);
-
return child;
}
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/toc/TocTopic.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/toc/TocTopic.java
index 8a7bba0..8e52ca5 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/toc/TocTopic.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/toc/TocTopic.java
@@ -118,7 +118,7 @@
*/
public void addChild(TocObject child) {
child.setInTheModel(true);
- addChildNode(child);
+ addChildNode(child, true);
}
/**
@@ -136,7 +136,7 @@
{ currentIndex++;
}
child.setInTheModel(true);
- addChildNode(child, currentIndex);
+ addChildNode(child, currentIndex, true);
}
/* (non-Javadoc)
@@ -153,7 +153,7 @@
* @param child The child to add to the TocObject
*/
public void removeChild(TocObject tocObject) {
- removeChildNode(tocObject);
+ removeChildNode(tocObject, true);
tocObject.setInTheModel(false);
}
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/toc/TocSourcePage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/toc/TocSourcePage.java
index 41ee9c1..10fe483 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/toc/TocSourcePage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/toc/TocSourcePage.java
@@ -13,10 +13,10 @@
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.ViewerComparator;
+import org.eclipse.pde.internal.core.text.IDocumentNode;
+import org.eclipse.pde.internal.ui.PDEPlugin;
import org.eclipse.pde.internal.ui.PDEUIMessages;
-import org.eclipse.pde.internal.ui.editor.ISortableContentOutlinePage;
import org.eclipse.pde.internal.ui.editor.PDEFormEditor;
import org.eclipse.pde.internal.ui.editor.XMLSourcePage;
@@ -52,43 +52,40 @@
* @see org.eclipse.pde.internal.ui.editor.PDESourcePage#createOutlineContentProvider()
*/
public ITreeContentProvider createOutlineContentProvider() {
- return null;
+ return new TocContentProvider();
}
/* (non-Javadoc)
* @see org.eclipse.pde.internal.ui.editor.PDESourcePage#createOutlineLabelProvider()
*/
public ILabelProvider createOutlineLabelProvider() {
- return null;
+ return PDEPlugin.getDefault().getLabelProvider();
}
/* (non-Javadoc)
- * @see org.eclipse.pde.internal.ui.editor.PDESourcePage#updateSelection(java.lang.Object)
- */
- public void updateSelection(Object object) {
- // NO-OP
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.internal.ui.editor.PDESourcePage#updateSelection(org.eclipse.jface.viewers.SelectionChangedEvent)
- */
- public void updateSelection(SelectionChangedEvent event) {
- // NO-OP
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.internal.ui.editor.PDESourcePage#createOutlinePage()
- */
- protected ISortableContentOutlinePage createOutlinePage() {
- //TODO: Create a TOC source page outline
- return new TocFormOutlinePage((PDEFormEditor)getEditor());
- }
-
- /* (non-Javadoc)
* @see org.eclipse.ui.part.EditorPart#setPartName(java.lang.String)
*/
protected void setPartName(String partName) {
super.setPartName(PDEUIMessages.EditorSourcePage_pageNameSource);
}
+
+
+ protected boolean isSelectionListener() {
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.pde.internal.ui.editor.PDESourcePage#updateSelection(java.lang.Object)
+ */
+ public void updateSelection(Object object)
+ { if ((object instanceof IDocumentNode) &&
+ !((IDocumentNode)object).isErrorNode()) {
+ fSelection = object;
+ setHighlightRange((IDocumentNode)object, true);
+ setSelectedRange((IDocumentNode)object, false);
+ } else {
+ //resetHighlightRange();
+ }
+ }
}
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/toc/TocTreeSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/toc/TocTreeSection.java
index 47fe8c2..983ee1a 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/toc/TocTreeSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/toc/TocTreeSection.java
@@ -50,8 +50,6 @@
import org.eclipse.pde.internal.ui.editor.toc.actions.TocAddObjectAction;
import org.eclipse.pde.internal.ui.editor.toc.actions.TocAddTopicAction;
import org.eclipse.pde.internal.ui.editor.toc.actions.TocRemoveObjectAction;
-import org.eclipse.pde.internal.ui.editor.toc.details.TocAbstractDetails;
-import org.eclipse.pde.internal.ui.editor.toc.details.TocDetails;
import org.eclipse.pde.internal.ui.parts.TreePart;
import org.eclipse.pde.internal.ui.util.PDELabelUtility;
import org.eclipse.swt.SWT;
@@ -70,7 +68,6 @@
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.actions.ContributionItemFactory;
import org.eclipse.ui.dialogs.PatternFilter;
-import org.eclipse.ui.forms.IDetailsPage;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.ide.IDE;
@@ -1007,38 +1004,7 @@
* @param event The world-change event
*/
private void handleModelEventWorldChanged(IModelChangedEvent event) {
- Object[] objects = event.getChangedObjects();
-
- if (objects[0] != null && objects[0] instanceof TocObject)
- { TocObject object = (TocObject) objects[0];
- if (object.getType() == ITocConstants.TYPE_TOC) {
- // Get the form page
- TocPage page = (TocPage)getPage();
- // Remember the currently selected page
- IDetailsPage previousDetailsPage =
- page.getBlock().getDetailsPart().getCurrentPage();
- // Replace the current dirty model with the model reloaded from
- // file
- fModel = object.getModel();
-
- // Re-initialize the tree viewer. Makes a details page selection
- initializeTreeViewer();
-
- // Get the current details page selection
- IDetailsPage currentDetailsPage =
- page.getBlock().getDetailsPart().getCurrentPage();
-
- // If the selected page before the revert is the same as the
- // selected page after the revert, then its fields will need to
- // be updated
-
- // TODO: Revisit to see if updating details page is necessary - especially after making static
- if (currentDetailsPage.equals(previousDetailsPage) &&
- currentDetailsPage instanceof TocDetails) {
- ((TocAbstractDetails)currentDetailsPage).updateFields();
- }
- }
- }
+ markStale();
}
/**
@@ -1115,6 +1081,16 @@
}
}
+ public void refresh() {
+ TocModel model = (TocModel)getPage().getModel();
+ fTocTree.setInput(model);
+ fTocTree.expandToLevel(2);
+ fTocTree.setSelection(new StructuredSelection(model.getToc()), true);
+ getManagedForm().fireSelectionChanged(this,
+ fTocTree.getSelection());
+ super.refresh();
+ }
+
/* (non-Javadoc)
* @see org.eclipse.pde.internal.ui.editor.TreeSection#createTreeViewer(org.eclipse.swt.widgets.Composite, int)
*/