]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/widget/ScrolledCompositeWidget.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.document.swt.core / src / org / simantics / document / swt / core / widget / ScrolledCompositeWidget.java
1 package org.simantics.document.swt.core.widget;
2
3 import java.util.TreeMap;
4
5 import org.eclipse.jface.layout.GridDataFactory;
6 import org.eclipse.jface.layout.GridLayoutFactory;
7 import org.eclipse.swt.SWT;
8 import org.eclipse.swt.custom.ScrolledComposite;
9 import org.eclipse.swt.events.ControlEvent;
10 import org.eclipse.swt.events.ControlListener;
11 import org.eclipse.swt.widgets.Composite;
12 import org.eclipse.swt.widgets.Control;
13 import org.eclipse.swt.widgets.Display;
14 import org.simantics.document.server.JSONObject;
15 import org.simantics.document.server.client.WidgetData;
16 import org.simantics.document.swt.core.SWTDocument;
17 import org.simantics.document.swt.core.SWTViews;
18 import org.simantics.document.swt.core.base.HasWidgetsWidgetManager;
19 import org.simantics.document.swt.core.base.ScrolledCompositeContent;
20 import org.simantics.document.swt.core.base.WidgetContainer;
21
22 public class ScrolledCompositeWidget extends HasWidgetsWidgetManager<ScrolledCompositeContent> {
23         
24         @Override
25         protected void doUpdateProperties(SWTDocument document, ScrolledCompositeContent control, JSONObject object) {
26         }
27
28         @Override
29         protected ScrolledCompositeContent doCreateControl(SWTDocument document, Composite parent, JSONObject object) {
30                 
31                 ScrolledComposite explorersScroll = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.BORDER);
32                 explorersScroll.setBackground(Display.getCurrent().getSystemColor(
33                                 SWT.COLOR_WHITE));
34                 explorersScroll.setLayout(GridLayoutFactory.fillDefaults()
35                                 .margins(0, 0).spacing(0, 0).create());
36                 GridDataFactory.fillDefaults().grab(true, true).span(1, 1)
37                                 .applyTo(explorersScroll);
38
39                 ScrolledCompositeContent explorers = new ScrolledCompositeContent(explorersScroll, SWT.NONE);
40
41                 explorersScroll.addControlListener(new ControlListener() {
42
43                         @Override
44                         public void controlResized(ControlEvent e) {
45                                 SWTViews.notifyScrolledComposite(explorers);
46                         }
47
48                         @Override
49                         public void controlMoved(ControlEvent e) {
50                                 SWTViews.notifyScrolledComposite(explorers);
51                         }
52                 });
53
54                 explorers.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
55                 
56                 // Make sure that exploders are initially visible
57                 explorers.setSize(10, 300);
58                 explorers.setLayout(GridLayoutFactory.fillDefaults().margins(0, 0).numColumns(1)
59                                 .spacing(0, 0).create());
60
61                 explorersScroll.setMinSize(100, 100);
62                 explorersScroll.setContent(explorers);
63
64                 return explorers;
65
66         }
67         
68         @Override
69         public void updateChildren(SWTDocument document, JSONObject object, WidgetContainer widget, TreeMap<String, WidgetData> childMap) {
70                 
71                 super.updateChildren(document, object, widget, childMap);
72
73                 for(WidgetData c : childMap.values()) {
74
75                         WidgetContainer con = (WidgetContainer)c.widget;
76                         Control child = con.getControl();
77                         GridDataFactory.fillDefaults().grab(true, false).applyTo(child);
78                         
79                 }
80                 
81         }
82         
83 }