Author: DartPeng
Date: 2009-04-28 05:08:02 -0400 (Tue, 28 Apr 2009)
New Revision: 14943
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/actions/OpenEditorEditInnerContentsAction.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/freemarker/TemplateUICreator.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/groovy/ScriptUICreator.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xsl/TemplateUICreator.java
Log:
JBIDE-4175
Synchronize the string of "Text" and "Temp Editor"
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/actions/OpenEditorEditInnerContentsAction.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/actions/OpenEditorEditInnerContentsAction.java 2009-04-28
06:36:25 UTC (rev 14942)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/actions/OpenEditorEditInnerContentsAction.java 2009-04-28
09:08:02 UTC (rev 14943)
@@ -8,6 +8,8 @@
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
@@ -23,6 +25,7 @@
import org.eclipse.emf.ecore.xml.type.AnyType;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.jface.action.Action;
+import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IPartListener;
import org.eclipse.ui.ISharedImages;
@@ -41,6 +44,8 @@
*/
public class OpenEditorEditInnerContentsAction extends Action {
+ private static Map<Object, Map<String, OpenEditorEditInnerContentsAction>>
elementTempFileMap = new HashMap<Object, Map<String,
OpenEditorEditInnerContentsAction>>();
+
private AnyType model;
private int textType = SmooksUIUtils.VALUE_TYPE_TEXT;
@@ -61,7 +66,12 @@
private IFile tempFile;
- public OpenEditorEditInnerContentsAction(EditingDomain domain, AnyType model, int
textType, String fileExtensionName, String editorID) {
+ private Map<String, OpenEditorEditInnerContentsAction> actionMap;
+
+ private Text relateText;
+
+ public OpenEditorEditInnerContentsAction(EditingDomain domain, AnyType model, int
textType,
+ String fileExtensionName, String editorID) {
super();
this.model = model;
this.editingDomain = domain;
@@ -69,15 +79,68 @@
this.fileExtensionName = fileExtensionName;
this.editorID = editorID;
tempFileListener = new TempFileChangeListener();
-
setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJ_FILE));
+ setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJ_FILE));
setDescription("Open an editor to edit inner contents");
setText("Open Editor");
+
+ actionMap = elementTempFileMap.get(model);
+ if (actionMap != null) {
+ OpenEditorEditInnerContentsAction oldAction = actionMap.get(getTypeKey());
+ if (oldAction != null) {
+ tempFile = oldAction.getTempFile();
+ // clean old listener
+ cleanOldActionListeners(oldAction);
+ if (tempFile != null) {
+ tempEditorlistener = createNewPartListener();
+ SmooksConfigurationActivator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage()
+ .addPartListener(tempEditorlistener);
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(tempFileListener);
+ }
+ }
+ } else {
+ actionMap = new HashMap<String, OpenEditorEditInnerContentsAction>();
+ elementTempFileMap.put(model, actionMap);
+ }
+
+ actionMap.put(getTypeKey(), this);
}
public OpenEditorEditInnerContentsAction(EditingDomain domain, AnyType model, int
textType, String fileExtensionName) {
this(domain, model, textType, fileExtensionName, null);
}
+ public TempFileChangeListener getTempFileListener() {
+ return tempFileListener;
+ }
+
+ public void setTempFileListener(TempFileChangeListener tempFileListener) {
+ this.tempFileListener = tempFileListener;
+ }
+
+ public IPartListener getTempEditorlistener() {
+ return tempEditorlistener;
+ }
+
+ public void setTempEditorlistener(IPartListener tempEditorlistener) {
+ this.tempEditorlistener = tempEditorlistener;
+ }
+
+ public IFile getTempFile() {
+ return tempFile;
+ }
+
+ public void setTempFile(IFile tempFile) {
+ this.tempFile = tempFile;
+ }
+
+ public Text getRelateText() {
+ return relateText;
+ }
+
+ public void setRelateText(Text relateText) {
+ this.relateText = relateText;
+ }
+
private void setContent(AnyType model, String contents, int textType) {
String editValue = null;
if (textType == SmooksUIUtils.VALUE_TYPE_TEXT && model instanceof AnyType) {
@@ -98,8 +161,89 @@
SmooksModelUtils.setCDATAToSmooksType(editingDomain, (AnyType) model, contents);
}
}
+
+ if (getRelateText() != null && contents != null) {
+ try {
+ Text relateText = getRelateText();
+ if (relateText != null) {
+ relateText.setText(contents);
+ }
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
}
+ private String getTypeKey() {
+ if (textType == SmooksUIUtils.VALUE_TYPE_TEXT) {
+ return "text";
+ }
+ if (textType == SmooksUIUtils.VALUE_TYPE_COMMENT) {
+ return "comment";
+ }
+ if (textType == SmooksUIUtils.VALUE_TYPE_CDATA) {
+ return "cdata";
+ }
+ return "";
+ }
+
+ private void cleanOldActionListeners(OpenEditorEditInnerContentsAction action) {
+ IPartListener pl = action.getTempEditorlistener();
+ IResourceChangeListener rl = action.getTempFileListener();
+ if (pl != null) {
+ SmooksConfigurationActivator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage()
+ .removePartListener(pl);
+ }
+ if (rl != null) {
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(rl);
+ }
+ }
+
+ private IPartListener createNewPartListener() {
+ IPartListener partListener = new IPartListener() {
+
+ public void partActivated(IWorkbenchPart part) {
+
+ }
+
+ public void partBroughtToTop(IWorkbenchPart part) {
+
+ }
+
+ public void partClosed(IWorkbenchPart part) {
+ if (tempEditor != null && part == tempEditor) {
+ SmooksConfigurationActivator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage()
+ .removePartListener(tempEditorlistener);
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(tempFileListener);
+ try {
+ tempFile.delete(true, new NullProgressMonitor());
+ tempFile.refreshLocal(0, null);
+ if (actionMap != null) {
+ actionMap.remove(getTypeKey());
+ }
+ if (actionMap.isEmpty()) {
+ elementTempFileMap.remove(model);
+ actionMap = null;
+ }
+ tempFile = null;
+ } catch (CoreException e) {
+// e.printStackTrace();
+ // ignore
+ }
+ }
+ }
+
+ public void partDeactivated(IWorkbenchPart part) {
+
+ }
+
+ public void partOpened(IWorkbenchPart part) {
+
+ }
+ };
+ return partListener;
+ }
+
@Override
public void run() {
IWorkbenchWindow window =
SmooksConfigurationActivator.getDefault().getWorkbench().getActiveWorkbenchWindow();
@@ -111,11 +255,11 @@
} else {
tempEditor = IDE.openEditor(window.getActivePage(), tempFile);
}
- return ;
+ return;
}
if (tempEditorlistener != null) {
- SmooksConfigurationActivator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().removePartListener(
- tempEditorlistener);
+ SmooksConfigurationActivator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage()
+ .removePartListener(tempEditorlistener);
}
if (tempFileListener != null) {
ResourcesPlugin.getWorkspace().removeResourceChangeListener(tempFileListener);
@@ -152,46 +296,14 @@
tempEditor = IDE.openEditor(window.getActivePage(), tempFile);
}
- tempEditorlistener = new IPartListener() {
-
- public void partActivated(IWorkbenchPart part) {
-
- }
-
- public void partBroughtToTop(IWorkbenchPart part) {
-
- }
-
- public void partClosed(IWorkbenchPart part) {
- if (tempEditor != null && part == tempEditor) {
- SmooksConfigurationActivator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage()
- .removePartListener(tempEditorlistener);
- ResourcesPlugin.getWorkspace().removeResourceChangeListener(tempFileListener);
- try {
- tempFile.delete(true, new NullProgressMonitor());
- tempFile.refreshLocal(0, null);
- tempFile = null;
- } catch (CoreException e) {
- e.printStackTrace();
- }
- }
- }
-
- public void partDeactivated(IWorkbenchPart part) {
-
- }
-
- public void partOpened(IWorkbenchPart part) {
-
- }
- };
- SmooksConfigurationActivator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().addPartListener(
- tempEditorlistener);
+ tempEditorlistener = createNewPartListener();
+ SmooksConfigurationActivator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage()
+ .addPartListener(tempEditorlistener);
ResourcesPlugin.getWorkspace().addResourceChangeListener(tempFileListener);
}
}
} catch (Exception e) {
-
+
}
}
@@ -244,19 +356,10 @@
IResource res = delta.getResource();
switch (delta.getKind()) {
case IResourceDelta.ADDED:
- System.out.print("Resource ");
- System.out.print(res.getFullPath());
- System.out.println(" was added.");
break;
case IResourceDelta.REMOVED:
- System.out.print("Resource ");
- System.out.print(res.getFullPath());
- System.out.println(" was removed.");
break;
case IResourceDelta.CHANGED:
- System.out.print("Resource ");
- System.out.print(delta.getFullPath());
- System.out.println(" has changed.");
if (res instanceof IFile) {
if (((IFile) res).getLocation().equals(tempFile.getLocation())) {
try {
@@ -271,10 +374,8 @@
}
if ((flags & IResourceDelta.REPLACED) != 0) {
- System.out.println("--> Content Replaced");
}
if ((flags & IResourceDelta.MARKERS) != 0) {
- System.out.println("--> Marker Change");
// IMarkerDelta[] markers = delta.getMarkerDeltas();
// if interested in markers, check these deltas
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/freemarker/TemplateUICreator.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/freemarker/TemplateUICreator.java 2009-04-28
06:36:25 UTC (rev 14942)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/freemarker/TemplateUICreator.java 2009-04-28
09:08:02 UTC (rev 14943)
@@ -15,6 +15,7 @@
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.jboss.tools.smooks.configuration.actions.OpenEditorEditInnerContentsAction;
import org.jboss.tools.smooks.configuration.editors.PropertyUICreator;
@@ -26,7 +27,6 @@
* @author Dart Peng (dpeng(a)redhat.com) Date Apr 10, 2009
*/
public class TemplateUICreator extends PropertyUICreator {
-
/*
* (non-Javadoc)
*
@@ -49,13 +49,16 @@
@Override
public void createExtendUI(AdapterFactoryEditingDomain editingdomain, FormToolkit
toolkit, Composite parent, Object model,
SmooksMultiFormEditor formEditor) {
- OpenEditorEditInnerContentsAction action1 = new
OpenEditorEditInnerContentsAction(editingdomain,(AnyType) model,
SmooksUIUtils.VALUE_TYPE_CDATA, "flt");
- OpenEditorEditInnerContentsAction action2 = new
OpenEditorEditInnerContentsAction(editingdomain,(AnyType) model,
SmooksUIUtils.VALUE_TYPE_COMMENT, "flt");
+ OpenEditorEditInnerContentsAction openCDATAEditorAction = new
OpenEditorEditInnerContentsAction(editingdomain,(AnyType) model,
SmooksUIUtils.VALUE_TYPE_CDATA, "flt");
+ OpenEditorEditInnerContentsAction openCommentEditorAction = new
OpenEditorEditInnerContentsAction(editingdomain,(AnyType) model,
SmooksUIUtils.VALUE_TYPE_COMMENT, "flt");
SmooksUIUtils.createFileSelectionTextFieldEditor("Text Value", parent,
editingdomain, toolkit, null, model, SmooksUIUtils.VALUE_TYPE_TEXT,
null, null);
- SmooksUIUtils.createCDATAFieldEditor("Template Contents(CDATA)",
editingdomain, toolkit, parent, model, action1);
- SmooksUIUtils.createCommentFieldEditor("Template Contents(Comment)",
editingdomain, toolkit, parent, model, action2);
+ Text cdatatext = SmooksUIUtils.createCDATAFieldEditor("Template
Contents(CDATA)", editingdomain, toolkit, parent, model, openCDATAEditorAction);
+ Text commenttext = SmooksUIUtils.createCommentFieldEditor("Template
Contents(Comment)", editingdomain, toolkit, parent, model, openCommentEditorAction);
+
+ openCDATAEditorAction.setRelateText(cdatatext);
+ openCommentEditorAction.setRelateText(commenttext);
}
@Override
@@ -66,4 +69,9 @@
return super.ignoreProperty(feature);
}
+ public Text getText() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
\ No newline at end of file
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/groovy/ScriptUICreator.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/groovy/ScriptUICreator.java 2009-04-28
06:36:25 UTC (rev 14942)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/groovy/ScriptUICreator.java 2009-04-28
09:08:02 UTC (rev 14943)
@@ -15,6 +15,7 @@
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.jboss.tools.smooks.configuration.actions.OpenEditorEditInnerContentsAction;
import org.jboss.tools.smooks.configuration.editors.PropertyUICreator;
@@ -43,7 +44,8 @@
public void createExtendUI(AdapterFactoryEditingDomain editingdomain, FormToolkit
toolkit, Composite parent, Object model,
SmooksMultiFormEditor formEditor) {
OpenEditorEditInnerContentsAction action2 = new
OpenEditorEditInnerContentsAction(editingdomain,(AnyType) model,
SmooksUIUtils.VALUE_TYPE_COMMENT, "groovy");
- SmooksUIUtils.createCommentFieldEditor("Script Contents", editingdomain,
toolkit, parent, model, action2);
+ Text text = SmooksUIUtils.createCommentFieldEditor("Script Contents",
editingdomain, toolkit, parent, model, action2);
+ action2.setRelateText(text);
}
@Override
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-04-28
06:36:25 UTC (rev 14942)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-04-28
09:08:02 UTC (rev 14943)
@@ -516,14 +516,14 @@
return null;
}
- public static void createCDATAFieldEditor(String label, AdapterFactoryEditingDomain
editingdomain, FormToolkit toolkit, Composite parent,
+ public static Text createCDATAFieldEditor(String label, AdapterFactoryEditingDomain
editingdomain, FormToolkit toolkit, Composite parent,
Object model,OpenEditorEditInnerContentsAction action) {
- createStringFieldEditor(label, parent, editingdomain, toolkit, null, model, true, true,
false, 300, null, VALUE_TYPE_CDATA,action);
+ return createStringFieldEditor(label, parent, editingdomain, toolkit, null, model,
true, true, false, 300, null, VALUE_TYPE_CDATA,action);
}
- public static void createCommentFieldEditor(String label, AdapterFactoryEditingDomain
editingdomain, FormToolkit toolkit, Composite parent,
+ public static Text createCommentFieldEditor(String label, AdapterFactoryEditingDomain
editingdomain, FormToolkit toolkit, Composite parent,
Object model,OpenEditorEditInnerContentsAction action) {
- createStringFieldEditor(label, parent, editingdomain, toolkit, null, model, true, true,
false, 300, null, VALUE_TYPE_COMMENT,action);
+ return createStringFieldEditor(label, parent, editingdomain, toolkit, null, model,
true, true, false, 300, null, VALUE_TYPE_COMMENT,action);
}
public static Composite createJavaTypeSearchFieldEditor(Composite parent, FormToolkit
toolkit, final IItemPropertyDescriptor propertyDescriptor,
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xsl/TemplateUICreator.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xsl/TemplateUICreator.java 2009-04-28
06:36:25 UTC (rev 14942)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xsl/TemplateUICreator.java 2009-04-28
09:08:02 UTC (rev 14943)
@@ -15,6 +15,7 @@
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.jboss.tools.smooks.configuration.actions.OpenEditorEditInnerContentsAction;
import org.jboss.tools.smooks.configuration.editors.PropertyUICreator;
@@ -64,12 +65,14 @@
@Override
public void createExtendUI(AdapterFactoryEditingDomain editingdomain, FormToolkit
toolkit, Composite parent, Object model,
SmooksMultiFormEditor formEditor) {
- OpenEditorEditInnerContentsAction action1 = new
OpenEditorEditInnerContentsAction(editingdomain,(AnyType) model,
SmooksUIUtils.VALUE_TYPE_CDATA, "xsl");
- OpenEditorEditInnerContentsAction action2 = new
OpenEditorEditInnerContentsAction(editingdomain,(AnyType) model,
SmooksUIUtils.VALUE_TYPE_COMMENT, "xsl");
+ OpenEditorEditInnerContentsAction openCdataEditorAction = new
OpenEditorEditInnerContentsAction(editingdomain,(AnyType) model,
SmooksUIUtils.VALUE_TYPE_CDATA, "xsl");
+ OpenEditorEditInnerContentsAction openCommentEditorAction = new
OpenEditorEditInnerContentsAction(editingdomain,(AnyType) model,
SmooksUIUtils.VALUE_TYPE_COMMENT, "xsl");
SmooksUIUtils.createFileSelectionTextFieldEditor("Text Value", parent,
editingdomain, toolkit, null, model, SmooksUIUtils.VALUE_TYPE_TEXT,
null, null);
- SmooksUIUtils.createCDATAFieldEditor("Template Contents (CDATA)",
editingdomain, toolkit, parent, model, action1);
- SmooksUIUtils.createCommentFieldEditor("Template Contents (Comment)",
editingdomain, toolkit, parent, model, action2);
+ Text text1 = SmooksUIUtils.createCDATAFieldEditor("Template Contents
(CDATA)", editingdomain, toolkit, parent, model, openCdataEditorAction);
+ Text text2 = SmooksUIUtils.createCommentFieldEditor("Template Contents
(Comment)", editingdomain, toolkit, parent, model, openCommentEditorAction);
+ openCdataEditorAction.setRelateText(text1);
+ openCommentEditorAction.setRelateText(text2);
}
}
\ No newline at end of file