diff options
author | Thomas Schindl | 2011-03-04 15:11:43 +0000 |
---|---|---|
committer | Thomas Schindl | 2011-03-04 15:11:43 +0000 |
commit | 707a4f23b74b418ee201d48bed0b41c1c4082e2b (patch) | |
tree | aba697529ed35e13d4701c29db1b5c137e3f0334 | |
parent | 2b37a77642251586af863b7eaff06c81497446ba (diff) | |
download | org.eclipse.e4.tools-707a4f23b74b418ee201d48bed0b41c1c4082e2b.tar.gz org.eclipse.e4.tools-707a4f23b74b418ee201d48bed0b41c1c4082e2b.tar.xz org.eclipse.e4.tools-707a4f23b74b418ee201d48bed0b41c1c4082e2b.zip |
Bug 335767 - [ModelTooling] Add support for NLSv20110304-1630
-rw-r--r-- | bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ExternalizeStringHandler.java | 46 |
1 files changed, 32 insertions, 14 deletions
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ExternalizeStringHandler.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ExternalizeStringHandler.java index e7a69953..e6525b7f 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ExternalizeStringHandler.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ExternalizeStringHandler.java @@ -8,7 +8,9 @@ import java.util.List; import java.util.Properties; import javax.inject.Named; import org.eclipse.core.databinding.observable.list.IObservableList; +import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.NullProgressMonitor; @@ -203,25 +205,29 @@ public class ExternalizeStringHandler { if (els.length > 0) { try { IFile f = getBasePropertyFile(); - if (f.exists()) { - StringBuilder b = new StringBuilder(System.getProperty("line.separator")); - for (Object o : els) { - Entry e = (Entry) o; - b.append(e.key + " = " + e.value + System.getProperty("line.separator")); //$NON-NLS-1$//$NON-NLS-2$ - } - System.err.println("Appending: " + b); + StringBuilder b = new StringBuilder(System.getProperty("line.separator")); + for (Object o : els) { + Entry e = (Entry) o; + b.append(e.key + " = " + e.value + System.getProperty("line.separator")); //$NON-NLS-1$//$NON-NLS-2$ + } - ByteArrayInputStream stream = new ByteArrayInputStream(b.toString().getBytes()); + ByteArrayInputStream stream = new ByteArrayInputStream(b.toString().getBytes()); + if (f.exists()) { f.appendContents(stream, IFile.KEEP_HISTORY, new NullProgressMonitor()); + } else { + createParent(f.getParent()); + f.create(stream, IFile.KEEP_HISTORY, new NullProgressMonitor()); + } + + stream.close(); - for (Object o : els) { - Entry e = (Entry) o; - Command cmd = SetCommand.create(resource.getEditingDomain(), e.object, e.feature, "%" + e.key); + for (Object o : els) { + Entry e = (Entry) o; + Command cmd = SetCommand.create(resource.getEditingDomain(), e.object, e.feature, "%" + e.key); //$NON-NLS-1$ - if (cmd.canExecute()) { - resource.getEditingDomain().getCommandStack().execute(cmd); - } + if (cmd.canExecute()) { + resource.getEditingDomain().getCommandStack().execute(cmd); } } super.okPressed(); @@ -236,6 +242,18 @@ public class ExternalizeStringHandler { } } + private void createParent(IContainer container) throws CoreException { + if (!container.exists()) { + + createParent(container.getParent()); + + if (container instanceof IFolder) { + IFolder f = (IFolder) container; + f.create(true, true, new NullProgressMonitor()); + } + } + } + private IFile getBasePropertyFile() throws CoreException, IOException { IFile file = project.getFile("META-INF/MANIFEST.MF"); //$NON-NLS-1$ String base = ProjectOSGiTranslationProvider.extractBasenameFromManifest(file); |