mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-06 00:25:25 +02:00
Fix to address PR 52085 where there was no mechanism
for importing environment variables into the configuration.
This commit is contained in:
parent
d542c7f179
commit
4823463798
2 changed files with 77 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2004-02-17 Thomas Fletcher
|
||||||
|
|
||||||
|
Fix to address PR 52085. We allow the user to import a text file formatted
|
||||||
|
as key=value pairs.
|
||||||
|
|
||||||
|
* src/org/eclipse/cdt/launch/ui/CEnvironmentTab.java
|
||||||
|
|
||||||
2004-02-12 Thomas Fletcher
|
2004-02-12 Thomas Fletcher
|
||||||
|
|
||||||
Fix to address PR 39580. Since we can't do anything short term about the
|
Fix to address PR 39580. Since we can't do anything short term about the
|
||||||
|
|
|
@ -5,7 +5,10 @@ package org.eclipse.cdt.launch.ui;
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
@ -17,6 +20,7 @@ import org.eclipse.debug.core.ILaunchConfiguration;
|
||||||
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
|
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
|
||||||
import org.eclipse.jface.dialogs.Dialog;
|
import org.eclipse.jface.dialogs.Dialog;
|
||||||
import org.eclipse.jface.dialogs.IDialogConstants;
|
import org.eclipse.jface.dialogs.IDialogConstants;
|
||||||
|
import org.eclipse.jface.dialogs.MessageDialog;
|
||||||
import org.eclipse.jface.viewers.ColumnWeightData;
|
import org.eclipse.jface.viewers.ColumnWeightData;
|
||||||
import org.eclipse.jface.viewers.DoubleClickEvent;
|
import org.eclipse.jface.viewers.DoubleClickEvent;
|
||||||
import org.eclipse.jface.viewers.IDoubleClickListener;
|
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.Button;
|
||||||
import org.eclipse.swt.widgets.Composite;
|
import org.eclipse.swt.widgets.Composite;
|
||||||
import org.eclipse.swt.widgets.Control;
|
import org.eclipse.swt.widgets.Control;
|
||||||
|
import org.eclipse.swt.widgets.FileDialog;
|
||||||
import org.eclipse.swt.widgets.Label;
|
import org.eclipse.swt.widgets.Label;
|
||||||
import org.eclipse.swt.widgets.Shell;
|
import org.eclipse.swt.widgets.Shell;
|
||||||
import org.eclipse.swt.widgets.Table;
|
import org.eclipse.swt.widgets.Table;
|
||||||
|
@ -58,6 +63,7 @@ public class CEnvironmentTab extends CLaunchConfigurationTab {
|
||||||
protected Button fBtnNew;
|
protected Button fBtnNew;
|
||||||
protected Button fBtnEdit;
|
protected Button fBtnEdit;
|
||||||
protected Button fBtnRemove;
|
protected Button fBtnRemove;
|
||||||
|
protected Button fBtnImport;
|
||||||
|
|
||||||
class SimpleSorter extends ViewerSorter {
|
class SimpleSorter extends ViewerSorter {
|
||||||
public boolean isSorterProperty(Object element, Object property) {
|
public boolean isSorterProperty(Object element, Object property) {
|
||||||
|
@ -290,6 +296,14 @@ public class CEnvironmentTab extends CLaunchConfigurationTab {
|
||||||
newEntry();
|
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 = new Button(composite, SWT.NONE);
|
||||||
fBtnEdit.setText("Edit...");
|
fBtnEdit.setText("Edit...");
|
||||||
fBtnEdit.setLayoutData(new GridData(GridData.FILL_BOTH));
|
fBtnEdit.setLayoutData(new GridData(GridData.FILL_BOTH));
|
||||||
|
@ -330,6 +344,62 @@ public class CEnvironmentTab extends CLaunchConfigurationTab {
|
||||||
updateLaunchConfigurationDialog();
|
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() {
|
protected void edit() {
|
||||||
IStructuredSelection selection = (IStructuredSelection) fVariableList.getSelection();
|
IStructuredSelection selection = (IStructuredSelection) fVariableList.getSelection();
|
||||||
doEdit((Map.Entry) selection.getFirstElement());
|
doEdit((Map.Entry) selection.getFirstElement());
|
||||||
|
|
Loading…
Add table
Reference in a new issue