Bonjour à tous,
J'ai une PartView contenant une CheckBox. Cette CheckBox est liée à une autre View (un Editor en fait). Je ressors donc les informations de l'Editor pour les transmettre à la PartView. Lorsque l'utilisateur clique sur cette PartView la première fois, elle démarre comme il faut. Jusque-là tout va bien.
Le problème est que j'aimerais faire en sorte que les CheckBox soient liées à l'Editor, et donc faire des rafraichissements de la PartView, pour qu'elle prenne en compte les modifications.
En fait, je souhaiterais pouvoir relancer le "createPartControl(Composite parent)" d’une manière ou d’une autre...
Avez-vous une idée de comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 public class EdComponentsView extends ViewPart { public static Composite top = null; public EdComponentsView() { } @Override public void createPartControl(Composite parent) { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IEditorPart editor = page.getActiveEditor(); if (editor instanceof MultiPageEditorPart) { ((MultiPageEditorPart) editor).getSelectedPage(); } int j=0; while (editor.toString().equals(CmdHdlOpen.tableauOnglet[j])==false){ System.out.println(editor.toString().equals(CmdHdlOpen.tableauOnglet[j])); System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); System.out.println(editor.toString()); System.out.println(CmdHdlOpen.tableauOnglet[j]); System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); j=j+1;; } top = new Composite(parent, SWT.NONE); Table table = new Table(top, SWT.CHECK); table.setSize(204,1000); TableColumn colonne1 = new TableColumn(table, SWT.CENTER); colonne1.setText("Vertex List"); colonne1.setWidth(204); table.setHeaderVisible(true); table.setLinesVisible(false); int i=0; System.out.println("CONSTRUCTION"); System.out.println(j); System.out.println(JungEdGraph.tableauChaine[1][1]); while(i<JungEdGraph.sizeglob){ TableItem ligne = new TableItem(table,SWT.NONE); ligne.setText(JungEdGraph.tableauChaine[i][j]); i=i+1; } } @Override public void setFocus() { // TODO Auto-generated method stub }
J'ai trouvé sur internet une solution pas très "propre" : fermer et réouvrir la PartView. Mais cela me renvoie une erreur à la réouverture.
Sachant que la ligne d’ouverture (PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("fr.eldoon.gui.view.EdComponentsView")) fonctionne bien toute seule, lorsque ma PartView n’a jamais été ouverte bien sûr.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Shell shell; shell = getSite().getShell(); EdComponentsView view = ( EdComponentsView)getSite().getPage().findView("fr.eldoon.gui.view.EdComponentsView"); getSite().getPage().hideView(view); shell.update(); try { PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("fr.eldoon.gui.view.EdComponentsView"); } catch (PartInitException e) { e.printStackTrace(); } }
Dès lors que j'ouvre pour une deuxième fois ma PartView, j'ai une erreur :Quelqu'un saurait-il m'indiquer quoi faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 ENTRY org.eclipse.ui.workbench 4 0 2012-06-26 16:42:20.200 !MESSAGE Unable to create view ID fr.eldoon.gui.view.EdComponentsView: 50 !STACK 0 java.lang.ArrayIndexOutOfBoundsException: 50 at fr.eldoon.gui.view.EdComponentsView.createPartControl(EdComponentsView.java:61) at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:375) at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:229) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) at org.eclipse.ui.internal.Perspective.showView(Perspective.java:2245) at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1071) at org.eclipse.ui.internal.WorkbenchPage$20.run(WorkbenchPage.java:3822) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3819) at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3795) at fr.eldoon.gui.editors.eldoonEditor.setFocus(eldoonEditor.java:151) at org.eclipse.ui.internal.PartPane.setFocus(PartPane.java:332) at org.eclipse.ui.internal.EditorPane.setFocus(EditorPane.java:127) at org.eclipse.ui.internal.WorkbenchPage$3.run(WorkbenchPage.java:629) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.runtime.Platform.run(Platform.java:888) at org.eclipse.ui.internal.WorkbenchPage.activatePart(WorkbenchPage.java:624) at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:3533) at org.eclipse.ui.internal.WorkbenchPage.internalActivate(WorkbenchPage.java:617) at org.eclipse.ui.internal.WorkbenchPage.activate(WorkbenchPage.java:589) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2875) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2768) at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2760) at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2711) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2707) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2691) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2674) at fr.eldoon.gui.commands.CmdHdlOpen.execute(CmdHdlOpen.java:64) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:820) at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:806) at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:796) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at fr.eldoon.gui.Application.start(Application.java:20) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
Merci d'avance pour votre aide.
Partager