Como buscar o caminho de um arquivo da página de preferências e imprimir a Saída no console via Button on Workbenc
Fiz uma página de preferências cuja programação é:
public class SAML
extends FieldEditorPreferencePage
implements IWorkbenchPreferencePage {
public SAML() {
super(GRID);
setPreferenceStore(RmpPlugin.getDefault().getPreferenceStore());
setDescription("Browse Appropriate files");
}
public FileFieldEditor f;
public FileFieldEditor f1;
public void createFieldEditors() {
f=new FileFieldEditor(PreferenceConstants.P_PATH,
"&Prism.bat File:", getFieldEditorParent());
addField(f);
f1=new FileFieldEditor(PreferenceConstants.P_PATH1,
"&NuSMV Application File:", getFieldEditorParent());
addField(f1);
}
Eu quero encontrar o caminho deFileFieldEditor f
e deseja que esse caminho seja executado em um botão incorporado no ambiente de trabalho (mas a programação desse botão está em um projeto diferente no mesmo espaço de trabalho). A programação de botões que possui o caminho codificado do arquivo "prism.bat" é:
try {
//to clear the console on every click of button
IViewPart view = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(IConsoleConstants.ID_CONSOLE_VIEW);
if (view != null) {
(myConsole).clearConsole();
}
ProcessBuilder pb=new ProcessBuilder("C:\\Program Files\\prism-4.0\\bin\\prism.bat");
pb.directory(new File("C:\\Program Files\\prism-4.0\\bin"));
Process p=pb.start();
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String in;
while((in = input.readLine()) != null) {
out.println(in);
}
int exitVal=p.waitFor();
if(exitVal==0)
{
out.println("Process Successful");
out.println("Printing on console with Exitvalue =0");
}
else
{out.println("Process failed");
out.println("Exitvalue = 1");
}
}
catch (Exception e)
{
out.println(e.toString());
e.printStackTrace();
}
Mas quero buscar o arquivo da minha página de preferênciasFileFieldEditor f
e deseja que esse caminho seja incorporado na programação dos botões para que, quando o botão for pressionado, o resultado seja mostrad