Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Schindl2011-03-04 15:11:43 +0000
committerThomas Schindl2011-03-04 15:11:43 +0000
commit707a4f23b74b418ee201d48bed0b41c1c4082e2b (patch)
treeaba697529ed35e13d4701c29db1b5c137e3f0334
parent2b37a77642251586af863b7eaff06c81497446ba (diff)
downloadorg.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.java46
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);

Back to the top