Comment puis-je implémenter Workspace Browse
et EPackages Browse
dans SWT/jface
? Le code ci-dessous parcourt le système de fichiers et non l'espace de travail.SWT - Espace de travail et Registre EPackage parcourir
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());
}
}
});
J'ai aussi essayé la solution présentée dans SWT Component for choose file only from workspace par @sambi reddy mais je l'erreur ci-dessous:
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
Je n'ai pas aussi une idée sur EPackages parcourir.
modifier: Quand j'exécuter le code ci-dessous, aucune entrée disponible même si l'espace de travail a des projets:
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();
}
});
Si vous parlez de l'espace de travail Eclipse, vous devez utiliser un plugin Eclipse, l'espace de travail n'est pas disponible pour un programme Java simple. Les réponses que vous liez fonctionneront dans un plugin. Je n'ai aucune idée de ce que vous entendez par EPackages parcourir. –
@ greg-449 Merci beaucoup. Oui, mes moyens sont Eclipse Workspace. Lorsque j'utilise le plugin Eclipse et ce code, les fichiers ne sont pas affichés. Il dit pas d'entrées disponibles. Savez-vous ce que je peux faire? Mon moyen est EMF Registry (Metamodels qui sont enregistrés en eclipse) .Ils sont également affichés dans Window-> show view -> autre -> Epsilon -> Registre Epackage ou dans la configuration d'exécution des langages ATL et Epsilon dans eclipse. –
Lorsque vous testez votre plugin, un nouvel espace de travail vide est créé. Vous devrez ajouter des projets de test à cet espace de travail. Je n'utilise pas Eclipse Epsilon donc je ne peux pas commenter cela. –