01: package org.drools.eclipse.rulebuilder.editors;
02:
03: import org.drools.brms.client.modeldriven.brl.RuleModel;
04: import org.drools.brms.server.util.BRXMLPersistence;
05: import org.drools.eclipse.rulebuilder.ui.RuleModeller;
06: import org.eclipse.ui.forms.IManagedForm;
07: import org.eclipse.ui.forms.editor.FormPage;
08: import org.eclipse.ui.forms.widgets.FormToolkit;
09: import org.eclipse.ui.forms.widgets.ScrolledForm;
10:
11: /**
12: * Rule Builder main page used as a tab in {@link RuleEditor} multipage.
13: *
14: * @author Ahti Kitsik
15: *
16: */
17: public class BrlPage extends FormPage {
18:
19: private static final String PAGE_NAME = "Rule Builder";
20: private static final String PAGE_ID = BrlPage.class.getName();
21:
22: private RuleModeller modeller;
23: private RuleModel model;
24: private RuleEditor editor;
25:
26: public BrlPage(RuleEditor editor) {
27: super (editor, PAGE_ID, PAGE_NAME);
28: this .editor = editor;
29: }
30:
31: protected void createFormContent(IManagedForm managedForm) {
32: ScrolledForm form = managedForm.getForm();
33: FormToolkit toolkit = managedForm.getToolkit();
34:
35: modeller = new RuleModeller(form, toolkit, model, editor);
36: }
37:
38: public void setModelXML(String xml) {
39: model = BRXMLPersistence.getInstance().unmarshal(xml);
40: modeller.setModel(model);
41: modeller.reloadWidgets();
42: }
43:
44: public RuleModel getRuleModel() {
45: return model;
46: }
47:
48: public RuleModeller getModeller() {
49: return modeller;
50: }
51:
52: public boolean isDirty() {
53: return modeller.isDirty();
54: }
55:
56: public void fireDirtyPropertyChanged() {
57: editor.dirtyPropertyChanged();
58: }
59:
60: public void refresh() {
61: modeller.refresh();
62: }
63:
64: }
|