1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.vectomatic.svg.edit.client.inspector;
19
20 import org.vectomatic.svg.edit.client.gxt.binding.FormPanelUtils;
21 import org.vectomatic.svg.edit.client.model.AbstractModel;
22 import org.vectomatic.svg.edit.client.model.ModelCategory;
23
24 import com.extjs.gxt.ui.client.binding.FormBinding;
25 import com.extjs.gxt.ui.client.util.Format;
26 import com.extjs.gxt.ui.client.widget.Component;
27 import com.extjs.gxt.ui.client.widget.form.FormPanel;
28 import com.google.gwt.core.client.GWT;
29
30
31
32
33
34
35
36
37 public class FormInspectorSection<M extends AbstractModel<?>> implements IInspectorSection<M> {
38 private FormPanel formPanel;
39 private FormBinding formBinding;
40 private ModelCategory category;
41
42 public FormInspectorSection(FormPanel formPanel, ModelCategory category) {
43 this.formPanel = formPanel;
44 this.category = category;
45 formPanel.setHeading(Format.capitalize(category.getDescription()));
46 formPanel.setAnimCollapse(false);
47 formBinding = new FormBinding(formPanel, false);
48 FormPanelUtils.createFieldBindings(formPanel, formBinding);
49 }
50 @Override
51 public String toString() {
52 StringBuilder builder = new StringBuilder("SVGInspectorFormSection(");
53 builder.append(category);
54 builder.append(")");
55 return builder.toString();
56 }
57 public Component getPanel() {
58 return formPanel;
59 }
60 public void bind(M model) {
61 GWT.log("FormInspectorSection.bind(" + model + ")");
62 formBinding.setStore(model.getStore());
63 formBinding.bind(model);
64 }
65 public void unbind() {
66 formBinding.unbind();
67 formBinding.setStore(null);
68 }
69 }