salut
comment faire dans un MasterDetailsBlock pour appliquer redimensionner la SashForm entre les deux pages?
Version imprimable
salut
comment faire dans un MasterDetailsBlock pour appliquer redimensionner la SashForm entre les deux pages?
Tu pourrais être plus précis ?
en utilisant la classe MasterDetailsBlock pour les forms on a une sashform avec en master un viewer et en details les pages qu'on enregistre. seulement par defaut le ratio pour la sash est de 1/1 cad la meme taille pour la zone master que la partie details. je n'arrive pas a redimensionner cette sashForm. ca doit etre possible mais ca sera dur et long
en fait j'ai evite le probleme en faisant comme ca :
Code:
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
67
68
69
70
71
72 public class testForm extends FormPage { TreeViewer treeViewer; public testForm(FormEditor editor, String id, String title) { super(editor, id, title); } protected void createFormContent(final IManagedForm managedForm) { final ScrolledForm form = managedForm.getForm(); FormToolkit toolkit = managedForm.getToolkit(); toolkit.decorateFormHeading(form.getForm()); form.setText("Gestion Proprietaires"); // GridLayout layoutForm = new GridLayout(); layoutForm.numColumns = 2; layoutForm.makeColumnsEqualWidth = false; form.getBody().setLayout(layoutForm); // Composite compositeMaster = toolkit.createComposite(form.getBody()); GridData compositeMasterData = new GridData(GridData.FILL_VERTICAL); compositeMaster.setLayoutData(compositeMasterData); compositeMaster.setLayout(new FillLayout()); // Composite compositeSlave = toolkit.createComposite(form.getBody()); GridData compositeSlaveData = new GridData(GridData.FILL_BOTH); compositeSlave.setLayoutData(compositeSlaveData); compositeSlave.setLayout(new FillLayout()); // createMasterPart(managedForm, toolkit, compositeMaster); // DetailsPart detailsPart = new DetailsPart(managedForm, compositeSlave, SWT.NULL); managedForm.addPart(detailsPart); detailsPart.setPageProvider(new newFormProvider()); // ou bien // detailsPart.registerPage(objectClass, page); // } private void createMasterPart(final IManagedForm managedForm, FormToolkit toolkit, Composite compositeMaster) { // Section section = toolkit.createSection(compositeMaster, Section.DESCRIPTION | Section.TITLE_BAR); // Composite compositeSection = toolkit.createComposite(section); GridLayout layout = new GridLayout(); layout.numColumns = 1; compositeSection.setLayout(layout); section.setClient(compositeSection); // treeViewer = new TreeViewer(compositeSection); GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); gridData.grabExcessVerticalSpace = true; treeViewer.getTree().setLayoutData(gridData); // treeViewer.setContentProvider(new ProprietaireFormContentProvider()); treeViewer.setLabelProvider(new ProprietaireFormLabelProvider()); treeViewer.setInput(null); // final SectionPart spart = new SectionPart(section); managedForm.addPart(spart); treeViewer.addSelectionChangedListener(new ISelectionChangedListener(){ public void selectionChanged(SelectionChangedEvent event) { managedForm.fireSelectionChanged(spart, event.getSelection()); } }); } }
Je viens de voir qu'il y a un champs sashForm au MasterDetailsBlock (une instance of SashForm) tu peux donc appeller sa méthod setWeights(int[]) pour spécifier le poids (la proportion de chaque élément de la taille totale).