Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/launch
diff options
context:
space:
mode:
Diffstat (limited to 'launch')
-rw-r--r--launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CEnvironmentTab.java70
1 files changed, 70 insertions, 0 deletions
diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CEnvironmentTab.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CEnvironmentTab.java
index d889e693471..8d070ee9822 100644
--- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CEnvironmentTab.java
+++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CEnvironmentTab.java
@@ -5,7 +5,10 @@ package org.eclipse.cdt.launch.ui;
* All Rights Reserved.
*/
+import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.Properties;
@@ -17,6 +20,7 @@ import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
@@ -43,6 +47,7 @@ import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
@@ -58,6 +63,7 @@ public class CEnvironmentTab extends CLaunchConfigurationTab {
protected Button fBtnNew;
protected Button fBtnEdit;
protected Button fBtnRemove;
+ protected Button fBtnImport;
class SimpleSorter extends ViewerSorter {
public boolean isSorterProperty(Object element, Object property) {
@@ -290,6 +296,14 @@ public class CEnvironmentTab extends CLaunchConfigurationTab {
newEntry();
}
});
+ fBtnImport = new Button(composite, SWT.NONE);
+ fBtnImport.setText("Import...");
+ fBtnImport.setLayoutData(new GridData(GridData.FILL_BOTH));
+ fBtnImport.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ importEntries();
+ }
+ });
fBtnEdit = new Button(composite, SWT.NONE);
fBtnEdit.setText("Edit...");
fBtnEdit.setLayoutData(new GridData(GridData.FILL_BOTH));
@@ -330,6 +344,62 @@ public class CEnvironmentTab extends CLaunchConfigurationTab {
updateLaunchConfigurationDialog();
}
+ protected void importEntries() {
+ FileDialog fileDialog = new FileDialog(getShell(), SWT.OPEN);
+ final String filename = fileDialog.open();
+ if(filename == null) {
+ return;
+ }
+
+ parseImportFile(filename);
+
+ updateButtons();
+ updateLaunchConfigurationDialog();
+ }
+
+ protected void parseImportFile(String filename) {
+ File file = new File(filename);
+ if(!file.exists()) {
+ return;
+ }
+
+ //Iterate through each key/value property we discover
+ try {
+ BufferedReader reader = new BufferedReader(new FileReader(file));
+
+ String line, key, value;
+ while((line = reader.readLine()) != null) {
+ line = line.trim();
+ if(line.length() == 0) {
+ continue;
+ }
+
+ int demarcation = line.indexOf("=");
+ if(demarcation == -1) {
+ key = line;
+ value = "";
+ } else {
+ key = line.substring(0, demarcation);
+ value = line.substring(demarcation + 1, line.length());
+ }
+
+ if(fElements.getProperty(key) != null) {
+ boolean overwrite;
+ overwrite = MessageDialog.openQuestion(getShell(), "Existing Environment Variable", "Environment variable \"" + key + "\" exists.\nDo you want to overwrite?");
+ if(!overwrite) {
+ continue;
+ }
+ }
+
+ fElements.setProperty(key, value);
+ }
+ } catch(Exception ex) {
+
+ }
+
+ fVariableList.refresh();
+ }
+
protected void edit() {
IStructuredSelection selection = (IStructuredSelection) fVariableList.getSelection();
doEdit((Map.Entry) selection.getFirstElement());

Back to the top