1 package org.argeo.connect.ui.parts;
2
3 import javax.jcr.Node;
4
5 import org.argeo.cms.ui.eclipse.forms.AbstractFormPart;
6 import org.argeo.cms.util.CmsUtils;
7 import org.argeo.connect.ui.ConnectEditor;
8 import org.eclipse.swt.widgets.Composite;
9
10
11
12
13
14
15 public abstract class AbstractPanelFormPart extends AbstractFormPart {
16
17 private ConnectEditor editor;
18 private Boolean isEditing;
19 private final Composite parent;
20 private final Node entity;
21
22 public AbstractPanelFormPart(Composite parent, ConnectEditor editor, Node entity) {
23 this.parent = parent;
24 this.entity = entity;
25 this.editor = editor;
26 }
27
28 @Override
29 public void refresh() {
30 super.refresh();
31 if (parent == null || parent.isDisposed())
32 return;
33
34
35
36 if ((isEditing == null) || isEditing != editor.isEditing()) {
37 isEditing = editor.isEditing();
38 CmsUtils.clear(parent);
39 reCreateChildComposite(parent, entity);
40 parent.layout();
41 } else
42 refreshContent(parent, entity);
43 }
44
45 protected boolean isEditing() {
46 return isEditing;
47 }
48
49 abstract protected void reCreateChildComposite(Composite parent, Node entity);
50
51 abstract protected void refreshContent(Composite parent, Node entity);
52 }