私はプログラミングで1プリファレンスページ作られている:私はFileFieldEditor f
のパスを取得し、このパスは、作業台の上に埋め込まれているボタンに実行したいしたい(ただし、そのボタンのプログラミングは別のプロジェクトである環境設定ページからファイルのパスを取得し、Workbenchのボタンを介して出力をコンソールに出力する方法はありますか?
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);
}
を同じワークスペース上で)。 ハード「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();
}
しかし、ボタンがあるときになるように、私は私の好みのページFileFieldEditor f
からファイルを取得したいと、このパスは、ボタンのプログラミングに埋め込みたいですを押すと、結果が表示されます。
を現在の値を使用するには?あなたは 'FileFieldEditor'を持っています。あなたはハードコードされたパスを持つコードを持っています。ハードコーディングされたパスを' FileFieldEditor'から何かに置き換えたいと思うように聞こえます。したがって、 'FileFieldEditor'への参照を.batファイルへのパスを持つコードに渡すだけで済みます。 – OpenSauce
@BalusC - ありがとうございます:) –
@BalusC - しかし、私は私のボタンのプログラミングでfileFieldEditorにアクセスすることができません。 FileFieldEditorからパスにアクセスしてProcessBuilderへの入力として与える方法を教えてください。 –