public FormsetsEditor() {
   formsetsModel.addListener(this);
   languageEditor.formsetsEditor = this;
   formsEditor.setFormsetsModel(formsetsModel);
   bar.formsetsEditor = this;
   formsEditor.addListener(elementEditor);
   formsEditor.addListener(bar);
   menu.setBar(bar);
   formsEditor.registerMenu(menu);
 }
 public void modelChanged(FModel source) {
   elementEditor.update(source);
   if (source == formsetsModel) {
     languageEditor.update();
     formsEditor.reloadTree();
   } else {
     formsEditor.updateTree(source);
     elementEditor.update(source);
   }
 }
 public void setObject(XModelObject object, boolean erroneous) {
   super.setObject(object, erroneous);
   if (isWrongEntity()) return;
   try {
     bar.setObject(object);
     formsetsModel.setObject(object);
     languageEditor.update();
     formsEditor.setObject(object);
     elementEditor.update();
   } catch (Exception e) {
     XStudioValidatorPlugin.getPluginLog().logError(e);
   }
 }
 private Control createLeftComponent(Composite parent) {
   Group g = new Group(parent, SWT.NONE);
   g.setText("Formsets");
   BorderLayout bl = new BorderLayout();
   g.setLayout(bl);
   Composite c1 = new Composite(g, SWT.NONE);
   bl.northComposite = c1;
   bl.northHeight = SWT.DEFAULT;
   c1.setLayout(new VerticalFillLayout());
   bar.createControl(c1);
   new Label(c1, SWT.SEPARATOR | SWT.HORIZONTAL);
   languageEditor.createControl(c1);
   new Label(c1, SWT.SEPARATOR | SWT.HORIZONTAL);
   formsEditor.createControl(g);
   bl.centerComposite = formsEditor.getControl();
   if (contextFlag) {
     ValidatorContext context = new ValidatorContext();
     context.createContext(this);
   }
   return g;
 }
 public void updateEditableMode() {
   languageEditor.update();
   formsEditor.updateSelection();
   elementEditor.update();
 }