Wie kann ich Workspace Browse
und EPackages Browse
in SWT/jface
implementieren? Der folgende Code durchsuchen Dateisystem nicht Arbeitsbereich.SWT - Workspace und EPackage Registry durchsuchen
Button button = new Button(grpModelProperties, SWT.PUSH);
button.setText("Browse Workspace...");
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
FileDialog dialog = new FileDialog(getShell(), SWT.NULL);
String path = dialog.open();
if (path != null) {
File file = new File(path);
if (file.isFile())
displayFiles(new String[] { file.toString()});
else
displayFiles(file.list());
}
}
});
ich auch versucht, die in SWT Component for choose file only from workspace von @sambi Reddy präsentierte Lösung, aber ich habe die folgenden Fehler:
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/osgi/util/NLS
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.eclipse.ui.dialogs.SelectionDialog.<clinit>(SelectionDialog.java:55)
at mypackage.FrontPage.createControl(FrontPage.java:38)
at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:175)
at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:705)
at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:597)
at org.eclipse.jface.window.Window.create(Window.java:430)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1096)
at org.eclipse.jface.window.Window.open(Window.java:792)
at mypackage.ReservationWizard.main(ReservationWizard.java:76)
Caused by: java.lang.ClassNotFoundException: org.eclipse.osgi.util.NLS
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 21 more
ich eine Idee nicht auch haben über EPackages zu sehen.
edit: Wenn ich den folgenden Code ausführen, keine Einträge vorhanden, obwohl Arbeitsplatz Projekte hat:
Button button2 = new Button(grpModelProperties1, SWT.PUSH);
button2.setText("Browse Workspace...");
final GridData button2Data = new GridData(SWT.RIGHT, SWT.CENTER, true, true);
button2.setLayoutData(button2Data);
button2.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e2) {
ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(
Display.getDefault().getActiveShell(),
new WorkbenchLabelProvider(),
new BaseWorkbenchContentProvider());
dialog.open();
}
});
Wenn Sie über den Eclipse-Arbeitsbereich sprechen, müssen Sie ein Eclipse-Plug-in verwenden. Der Arbeitsbereich ist für ein einfaches Java-Programm nicht verfügbar. Die Antworten, auf die Sie verlinken, funktionieren in einem Plugin. Ich habe keine Ahnung, was du mit EPackages browse meinst. –
@ greg-449 Vielen Dank. Ja, meine Mittel sind Eclipse Workspace. Wenn ich Eclipse-Plugin und diesen Code verwende, werden die Dateien nicht angezeigt. Es gibt keine Einträge verfügbar. Weißt du, was kann ich tun? Mein Mean ist EMF-Registrierung (Metamodelle, die in Eclipse registriert sind). Sie werden auch in Fenster-> Zeige Ansicht -> andere -> Epsilon -> E-Package Registry oder in der Run-Konfiguration von ATL und Epsilon Sprachen in Eclipse gezeigt. –
Wenn Sie Ihr Plugin testen, wird ein neuer Arbeitsbereich erstellt, der leer ist. Sie müssen diesem Arbeitsbereich Testprojekte hinzufügen. Ich benutze Eclipse Epsilon nicht, also kann ich dazu nichts sagen. –