[jbosstools-commits] JBoss Tools SVN: r12924 - in trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui: editors and 1 other directory.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Wed Jan 7 21:52:27 EST 2009
Author: DartPeng
Date: 2009-01-07 21:52:27 -0500 (Wed, 07 Jan 2009)
New Revision: 12924
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
Log:
JBIDE-3429
Do somethings to synchronize the source and model:
1.when pages are changed from graph page to source page , generate new xml contents replace the old source text.
2.when pages are changed from source page to graph page, parse the source again to create new graph model for the graph page.
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java 2009-01-08 01:32:48 UTC (rev 12923)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java 2009-01-08 02:52:27 UTC (rev 12924)
@@ -34,6 +34,12 @@
private Composite errorComposite;
private Label messageLabel;
+ private String errorMessage;
+
+ public String getErrorMessage() {
+ return errorMessage;
+ }
+
public SmooksTextEdtor(Throwable error) {
super();
this.setErrorThrowable(error);
@@ -106,6 +112,7 @@
parent.layout();
}
} else {
+ errorMessage = message;
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
errorComposite.setVisible(true);
messageLabel.setText(message);
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java 2009-01-08 01:32:48 UTC (rev 12923)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java 2009-01-08 02:52:27 UTC (rev 12924)
@@ -80,9 +80,11 @@
// private SmooksTextEdtor textEdtior = null;
private boolean forceDirty = false;
- private boolean onlyShowTextEditor = false;
+// private boolean onlyShowTextEditor = false;
private Throwable showTextEditorReason = null;
+ private boolean allowdActiveErrorSourcePage = true;
+
public SmooksFormEditor() {
super();
adapterFactory = new ComposedAdapterFactory(
@@ -157,7 +159,6 @@
}
public void setParseException(boolean onlyShowTextEditor, Throwable reason) {
- this.onlyShowTextEditor = onlyShowTextEditor;
this.showTextEditorReason = reason;
}
@@ -190,7 +191,6 @@
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
super.init(site, input);
- onlyShowTextEditor = false;
Throwable parsingException = null;
IFile file = ((IFileEditorInput) input).getFile();
String path = file.getLocation().toOSString();
@@ -206,7 +206,6 @@
}
if (parsingException != null) {
- onlyShowTextEditor = true;
showTextEditorReason = parsingException;
return;
}
@@ -268,6 +267,9 @@
public void fireEditorDirty(boolean dirty) {
this.forceDirty = dirty;
+ if (graphicalPage != null) {
+ graphicalPage.setDirty(false);
+ }
this.firePropertyChange(PROP_DIRTY);
}
@@ -331,7 +333,7 @@
}
public void endAnalyze(AnalyzeResult result) {
- if (result.getError() != null) {
+ if (result.getError() != null && allowdActiveErrorSourcePage ) {
this.setActivePage(2);
}
}
@@ -345,45 +347,54 @@
super.pageChange(newPageIndex);
return;
}
-
- if(!isDirty()){
+
+ if (!isDirty()) {
super.pageChange(newPageIndex);
return;
}
-
+
ByteArrayOutputStream tempStream = null;
XMLWriter writer = null;
try {
- if (oldPageIndex == 0 && newPageIndex == 2) {
- InputStream stream = graphicalPage.generateSmooksContents(null);
- SAXReader reader = new SAXReader();
- Document rootElement = reader.read(stream);
- if (prettyXMLOutput) {
- tempStream = new ByteArrayOutputStream();
- OutputFormat format = OutputFormat.createPrettyPrint();
- writer = new XMLWriter(tempStream, format);
- writer.write(rootElement);
+ if ((oldPageIndex == 0 || oldPageIndex == 1)&& newPageIndex == 2) {
+ if (xmlTextEditor.getErrorMessage() == null) {
+ InputStream stream = graphicalPage
+ .generateSmooksContents(null);
+ SAXReader reader = new SAXReader();
+ Document rootElement = reader.read(stream);
+ if (prettyXMLOutput) {
+ tempStream = new ByteArrayOutputStream();
+ OutputFormat format = OutputFormat.createPrettyPrint();
+ writer = new XMLWriter(tempStream, format);
+ writer.write(rootElement);
+ }
+ String text = null;
+ if (prettyXMLOutput) {
+ text = new String(tempStream.toByteArray());
+ } else {
+ text = rootElement.asXML();
+ }
+ xmlTextEditor.getTextViewer().getDocument().set(text);
}
- String text = null;
- if (prettyXMLOutput) {
- text = new String(tempStream.toByteArray());
- } else {
- text = rootElement.asXML();
- }
- xmlTextEditor.getTextViewer().getDocument().set(text);
}
- if (newPageIndex == 0 && oldPageIndex == 2) {
- String contents = xmlTextEditor.getTextViewer().getDocument().get();
- graphicalPage.refreshAllGUI(new ByteArrayInputStream(contents.getBytes()));
+ if ((newPageIndex == 0 || newPageIndex == 1) && oldPageIndex == 2) {
+ String contents = xmlTextEditor.getTextViewer().getDocument()
+ .get();
+ allowdActiveErrorSourcePage = false;
+ graphicalPage.refreshAllGUI(new ByteArrayInputStream(contents
+ .getBytes()));
+ allowdActiveErrorSourcePage = true;
}
} catch (Exception e) {
- }finally{
- try{
- if(writer != null) writer.close();
- if(tempStream != null) tempStream.close();
- }catch(Exception e){
-
+ } finally {
+ try {
+ if (writer != null)
+ writer.close();
+ if (tempStream != null)
+ tempStream.close();
+ } catch (Exception e) {
+
}
}
super.pageChange(newPageIndex);
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2009-01-08 01:32:48 UTC (rev 12923)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2009-01-08 02:52:27 UTC (rev 12924)
@@ -892,6 +892,10 @@
control.setBackground(ColorConstants.white);
return viewer;
}
+
+ public void setDirty(boolean dirty){
+ commandStackChanged = dirty;
+ }
/*
* (non-Javadoc)
More information about the jbosstools-commits
mailing list