package de.urszeidler.shr5.ecp.editor.pages.character; import org.eclipse.core.databinding.DataBindingContext; import org.eclipse.core.databinding.observable.value.IObservableValue; import org.eclipse.core.databinding.observable.value.IValueChangeListener; import org.eclipse.core.databinding.observable.value.ValueChangeEvent; import org.eclipse.core.databinding.property.value.IValueProperty; import org.eclipse.emf.databinding.EMFProperties; import org.eclipse.emf.databinding.edit.EMFEditProperties; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ImageHyperlink; import org.eclipse.ui.forms.widgets.ScrolledForm; import org.eclipse.ui.forms.widgets.Section; import de.urszeidler.eclipse.shr5.AbstraktPersona; import de.urszeidler.eclipse.shr5.AspektMagier; import de.urszeidler.eclipse.shr5.BaseMagischePersona; import de.urszeidler.eclipse.shr5.KiAdept; import de.urszeidler.eclipse.shr5.KoerperPersona; import de.urszeidler.eclipse.shr5.Shr5Package; import de.urszeidler.eclipse.shr5.Technomancer; import de.urszeidler.eclipse.shr5.Zauberer; import de.urszeidler.eclipse.shr5.util.AdapterFactoryUtil; import de.urszeidler.eclipse.shr5Management.ManagedCharacter; import de.urszeidler.eclipse.shr5Management.PlayerCharacter; import de.urszeidler.eclipse.shr5Management.Shr5managementPackage; import de.urszeidler.emf.commons.ui.util.EmfFormBuilder; import de.urszeidler.emf.commons.ui.util.EmfFormBuilder.ReferenceManager; import de.urszeidler.emf.commons.ui.util.FormbuilderEntry; import de.urszeidler.emf.commons.ui.util.FormbuilderEntry.EntryFactory; import de.urszeidler.shr5.ecp.editor.actions.ActionM2TDialog; import de.urszeidler.shr5.ecp.editor.actions.ExportObjectAction; import de.urszeidler.shr5.ecp.editor.pages.AbstractShr5Page; import de.urszeidler.shr5.ecp.editor.pages.Messages; import de.urszeidler.shr5.ecp.editor.widgets.BeschreibbarWidget; import de.urszeidler.shr5.ecp.editor.widgets.PersonaFertigkeitenWidget; import de.urszeidler.shr5.ecp.editor.widgets.PersonaUIToolkit; import de.urszeidler.shr5.ecp.editor.widgets.SimpleTreeTableWidget; import de.urszeidler.shr5.ecp.util.ShadowrunEditingTools; public class CommitedCharacterPage extends AbstractShr5Page<ManagedCharacter> { private ManagedCharacter object; private EditingDomain editingDomain; private DataBindingContext m_bindingContext; private AbstraktPersona persona; private PersonaFertigkeitenWidget personaFertigkeitenWidget; /** * Create the form page. * * @param id * @param title */ public CommitedCharacterPage(String id, String title) { super(id, title); } /** * Create the form page. * * @param editor * @param id * @param title * @wbp.parser.constructor * @wbp.eval.method.parameter id "Some id" * @wbp.eval.method.parameter title "Some title" */ public CommitedCharacterPage(FormEditor editor, String id, String title) { super(editor, id, title); // this.object = Shr5Factory.eINSTANCE.createFertigkeitsGruppe(); } public CommitedCharacterPage(FormEditor editor, String id, String titel, ManagedCharacter object, EditingDomain editingDomain, ReferenceManager manager) { super(editor, id, titel, manager); this.object = object; this.persona = object.getPersona(); this.editingDomain = editingDomain; } /** * Create contents of the form. * * @param managedForm */ @Override protected void createFormContent(IManagedForm managedForm) { final FormToolkit toolkit = managedForm.getToolkit(); ScrolledForm form = managedForm.getForm(); form.setText(AdapterFactoryUtil.getInstance().getLabelProvider().getText(object)); Composite body = form.getBody(); toolkit.decorateFormHeading(form.getForm()); toolkit.paintBordersFor(body); form.getToolBarManager().add(new ActionM2TDialog(form.getShell(), object)); form.getToolBarManager().add(new ExportObjectAction(form.getShell(), object)); addValidationResult(form.getToolBarManager(), object); form.getToolBarManager().update(true); managedForm.getForm().getBody().setLayout(new GridLayout(1, false)); BeschreibbarWidget beschreibbarWidget = new BeschreibbarWidget(managedForm.getForm().getBody(), SWT.NONE, persona, toolkit, editingDomain); // gd_beschreibbarWidget.widthHint = 0; beschreibbarWidget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); managedForm.getToolkit().adapt(beschreibbarWidget); managedForm.getToolkit().paintBordersFor(beschreibbarWidget); Section sctnNewSection = managedForm.getToolkit().createSection(managedForm.getForm().getBody(), Section.TWISTIE | Section.TITLE_BAR); sctnNewSection.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1)); managedForm.getToolkit().paintBordersFor(sctnNewSection); sctnNewSection.setText("attributes & skills"); sctnNewSection.setExpanded(true); Composite composite_1 = managedForm.getToolkit().createComposite(sctnNewSection, SWT.NONE); managedForm.getToolkit().paintBordersFor(composite_1); sctnNewSection.setClient(composite_1); composite_1.setLayout(new GridLayout(2, false)); Group grpAttributes = new Group(composite_1, SWT.NONE); GridLayout gl_grpAttributes = new GridLayout(1, false); gl_grpAttributes.verticalSpacing = 0; gl_grpAttributes.marginWidth = 0; gl_grpAttributes.marginHeight = 0; gl_grpAttributes.horizontalSpacing = 0; grpAttributes.setLayout(gl_grpAttributes); grpAttributes.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1)); grpAttributes.setText("attributes"); managedForm.getToolkit().adapt(grpAttributes); managedForm.getToolkit().paintBordersFor(grpAttributes); Composite composite_2 = new Composite(grpAttributes, SWT.NONE); managedForm.getToolkit().adapt(composite_2); managedForm.getToolkit().paintBordersFor(composite_2); GridLayout gl_composite_2 = new GridLayout(1, false); gl_composite_2.marginWidth = 0; gl_composite_2.marginHeight = 0; gl_composite_2.horizontalSpacing = 0; composite_2.setLayout(gl_composite_2); Composite composite_phy_att = new Composite(composite_2, SWT.NONE); managedForm.getToolkit().adapt(composite_phy_att); managedForm.getToolkit().paintBordersFor(composite_phy_att); composite_phy_att.setLayout(new GridLayout(4, false)); Composite composite_mental = new Composite(composite_2, SWT.NONE); managedForm.getToolkit().adapt(composite_mental); managedForm.getToolkit().paintBordersFor(composite_mental); composite_mental.setLayout(new GridLayout(4, false)); Composite composite_spec = new Composite(composite_2, SWT.NONE); managedForm.getToolkit().adapt(composite_spec); managedForm.getToolkit().paintBordersFor(composite_spec); composite_spec.setLayout(new GridLayout(4, false)); Composite composite_limits = new Composite(composite_2, SWT.NONE); managedForm.getToolkit().adapt(composite_limits); managedForm.getToolkit().paintBordersFor(composite_limits); composite_limits.setLayout(new GridLayout(4, false)); // Composite composite_3 = new Composite(composite_2, SWT.NONE); // managedForm.getToolkit().adapt(composite_3); // managedForm.getToolkit().paintBordersFor(composite_3); // composite_3.setLayout(new GridLayout(3, false)); Group grpSkills = new Group(composite_1, SWT.NONE); GridData gd_grpSkills = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1); grpSkills.setLayoutData(gd_grpSkills); grpSkills.setText("Skills"); managedForm.getToolkit().adapt(grpSkills); managedForm.getToolkit().paintBordersFor(grpSkills); grpSkills.setLayout(new FillLayout(SWT.HORIZONTAL)); if (object != null) { personaFertigkeitenWidget = new PersonaFertigkeitenWidget(grpSkills, SWT.NONE, object, toolkit, editingDomain); personaFertigkeitenWidget.setFilterOnlyPersona(true); personaFertigkeitenWidget.setReadOnly(true); } Composite composite = managedForm.getToolkit().createComposite(composite_1, SWT.NONE); composite.setLayout(new GridLayout(9, false)); composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1)); managedForm.getToolkit().paintBordersFor(composite); m_bindingContext = initDataBindings(); PersonaUIToolkit personaUIToolkit = new PersonaUIToolkit(m_bindingContext, null, object, editingDomain, toolkit); personaUIToolkit.createKoerperlicheAttributesRO(composite_phy_att); personaUIToolkit.createGeistigeAttributesRO(composite_mental); personaUIToolkit.createSpezielleAttributesRO(composite_spec); personaUIToolkit.createLimits(composite_limits); createFormBuilder(managedForm); gd_grpSkills.heightHint = grpAttributes.getBounds().height; EntryFactory linkLabelEntryFactory = new ReadOnlyLinkEntry(toolkit);// EntryFactory() { // // @Override // public void createEntry(Composite container, FormbuilderEntry entry, EObject object, DataBindingContext dbc, EmfFormBuilder emfFormBuilder) { // createLinkRO(toolkit, container, entry, object, emfFormBuilder); // } // }; emfFormBuilder.addTextEntry(Shr5Package.Literals.ABSTRAKT_PERSONA__SPEZIES, composite, linkLabelEntryFactory); if (persona instanceof Zauberer) { emfFormBuilder.addTextEntry(Shr5Package.Literals.ZAUBERER__TRADITION, composite, linkLabelEntryFactory); } if (persona instanceof AspektMagier) { emfFormBuilder.addTextEntry(Shr5Package.Literals.ASPEKT_MAGIER__ASPEKT, composite, linkLabelEntryFactory); } emfFormBuilder.buildinComposite(m_bindingContext, body, persona); // composite.setEnabled(false); Section sctnNewSection_1 = managedForm.getToolkit().createSection(managedForm.getForm().getBody(), Section.TWISTIE | Section.TITLE_BAR); sctnNewSection_1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); managedForm.getToolkit().paintBordersFor(sctnNewSection_1); sctnNewSection_1.setText("others"); sctnNewSection_1.setExpanded(true); Composite composite_3 = new Composite(sctnNewSection_1, SWT.NONE); sctnNewSection_1.setClient(composite_3); composite_3.setLayout(new GridLayout(2, true)); managedForm.getToolkit().adapt(composite_3); managedForm.getToolkit().paintBordersFor(composite_3); Section sctnCharacter = managedForm.getToolkit().createSection(managedForm.getForm().getBody(), Section.TWISTIE | Section.TITLE_BAR); sctnCharacter.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); managedForm.getToolkit().paintBordersFor(sctnCharacter); sctnCharacter.setText("character"); sctnCharacter.setExpanded(true); Composite composite_4 = new Composite(sctnCharacter, SWT.NONE); managedForm.getToolkit().adapt(composite_4); managedForm.getToolkit().paintBordersFor(composite_4); sctnCharacter.setClient(composite_4); composite_4.setLayout(new GridLayout(3, false)); Composite composite_5 = new Composite(composite_4, SWT.NONE); composite_5.setLayout(new GridLayout(1, false)); composite_5.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1)); managedForm.getToolkit().adapt(composite_5); managedForm.getToolkit().paintBordersFor(composite_5); Composite composite_6 = new Composite(composite_4, SWT.NONE); composite_6.setLayout(new GridLayout(1, false)); composite_6.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1)); managedForm.getToolkit().adapt(composite_6); managedForm.getToolkit().paintBordersFor(composite_6); Composite composite_7 = new Composite(composite_4, SWT.NONE); composite_7.setLayout(new GridLayout(3, false)); composite_7.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1)); managedForm.getToolkit().adapt(composite_7); managedForm.getToolkit().paintBordersFor(composite_7); EmfFormBuilder emfFormBuilder1 = new EmfFormBuilder(managedForm.getToolkit(), AdapterFactoryUtil.getInstance().getItemDelegator(), labelprovider, getEditingDomain()); emfFormBuilder1.setManager(mananger); emfFormBuilder1.setNullString(Messages.EmfFormbuilder_non_selected); // emfFormBuilder.setBorderStyle(SWT.NONE); emfFormBuilder1.setDblListner(this); emfFormBuilder1.addTextEntry(Shr5managementPackage.Literals.MANAGED_CHARACTER__KARMA_GAINT, composite, labelEntryFactory); emfFormBuilder1.addTextEntry(Shr5managementPackage.Literals.MANAGED_CHARACTER__CURRENT_KARMA, composite, labelEntryFactory); emfFormBuilder1.addTextEntry(Shr5managementPackage.Literals.MANAGED_CHARACTER__CHOOSEN_LIFESTYLE, composite, linkLabelEntryFactory); emfFormBuilder1.addTextEntry(Shr5managementPackage.Literals.MANAGED_CHARACTER__NOTORIETY, composite, labelEntryFactory); emfFormBuilder1.addTextEntry(Shr5managementPackage.Literals.MANAGED_CHARACTER__PUBLIC_AWARENESS, composite, labelEntryFactory); emfFormBuilder1.addTextEntry(Shr5managementPackage.Literals.MANAGED_CHARACTER__NATIVE_LANGUAGE, composite, linkLabelEntryFactory); emfFormBuilder1.addTextEntry(Shr5managementPackage.Literals.MANAGED_CHARACTER__STREET_CRED, composite, labelEntryFactory); emfFormBuilder1.addTextEntry(Shr5managementPackage.Literals.MANAGED_CHARACTER__SEX, composite, new LabelEnumEntry()); emfFormBuilder1.addTextEntry(Shr5managementPackage.Literals.MANAGED_CHARACTER__HEIGHT, composite, new LabelEnumEntry()); emfFormBuilder1.addTextEntry(Shr5managementPackage.Literals.MANAGED_CHARACTER__WEIGHT, composite, new LabelEnumEntry()); if (object instanceof PlayerCharacter) { emfFormBuilder1.addTextEntry(Shr5managementPackage.Literals.PLAYER_CHARACTER__AGE, composite, new LabelEnumEntry()); } emfFormBuilder1.buildinComposite(m_bindingContext, composite_7, object); createCharacterParts(managedForm, toolkit, composite_5, composite_6); createPersonaParts(managedForm, toolkit, composite_3); Composite composite_8 = new Composite(managedForm.getForm().getBody(), SWT.NONE); GridData gd_composite_8 = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1); gd_composite_8.heightHint = 17; composite_8.setLayoutData(gd_composite_8); managedForm.getToolkit().adapt(composite_8); managedForm.getToolkit().paintBordersFor(composite_8); managedForm.reflow(true); } /** * @param managedForm * @param toolkit * @param composite_5 * @param composite_6 */ private void createCharacterParts(IManagedForm managedForm, FormToolkit toolkit, Composite composite_5, Composite composite_6) { if (!object.getInventar().isEmpty()) { SimpleTreeTableWidget treeTableWidgetEigenschaften = new SimpleTreeTableWidget(composite_5, featureName(Shr5managementPackage.Literals.MANAGED_CHARACTER__INVENTAR), SWT.NONE, object, Shr5managementPackage.Literals.MANAGED_CHARACTER__INVENTAR, toolkit, mananger, editingDomain, this, this); GridData layoutData = new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1); treeTableWidgetEigenschaften.setLayoutData(layoutData); managedForm.getToolkit().adapt(treeTableWidgetEigenschaften); managedForm.getToolkit().paintBordersFor(treeTableWidgetEigenschaften); } if (!object.getConnections().isEmpty()) { SimpleTreeTableWidget treeTableWidgetEigenschaften = new SimpleTreeTableWidget(composite_6, featureName(Shr5managementPackage.Literals.MANAGED_CHARACTER__CONNECTIONS), SWT.NONE, object, Shr5managementPackage.Literals.MANAGED_CHARACTER__CONNECTIONS, toolkit, mananger, editingDomain, this, this); GridData layoutData = new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1); layoutData.heightHint = 150; treeTableWidgetEigenschaften.setLayoutData(layoutData); managedForm.getToolkit().adapt(treeTableWidgetEigenschaften); managedForm.getToolkit().paintBordersFor(treeTableWidgetEigenschaften); } if (!object.getContracts().isEmpty()) { SimpleTreeTableWidget treeTableWidgetEigenschaften = new SimpleTreeTableWidget(composite_6, featureName(Shr5managementPackage.Literals.MANAGED_CHARACTER__CONTRACTS), SWT.NONE, object, Shr5managementPackage.Literals.MANAGED_CHARACTER__CONTRACTS, toolkit, mananger, editingDomain, this, this); GridData layoutData = new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1); layoutData.heightHint = 150; treeTableWidgetEigenschaften.setLayoutData(layoutData); managedForm.getToolkit().adapt(treeTableWidgetEigenschaften); managedForm.getToolkit().paintBordersFor(treeTableWidgetEigenschaften); } if (!object.getVehicels().isEmpty()) { SimpleTreeTableWidget treeTableWidgetEigenschaften = new SimpleTreeTableWidget(composite_6, featureName(Shr5managementPackage.Literals.MANAGED_CHARACTER__VEHICELS), SWT.NONE, object, Shr5managementPackage.Literals.MANAGED_CHARACTER__VEHICELS, toolkit, mananger, editingDomain, this, this); GridData layoutData = new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1); layoutData.heightHint = 150; treeTableWidgetEigenschaften.setLayoutData(layoutData); managedForm.getToolkit().adapt(treeTableWidgetEigenschaften); managedForm.getToolkit().paintBordersFor(treeTableWidgetEigenschaften); } } /** * @param managedForm * @param toolkit * @param composite_3 */ private void createPersonaParts(IManagedForm managedForm, FormToolkit toolkit, Composite composite_3) { if (persona instanceof KoerperPersona) { KoerperPersona kp = (KoerperPersona)persona; if (!kp.getEigenschaften().isEmpty()) { SimpleTreeTableWidget treeTableWidgetEigenschaften = new SimpleTreeTableWidget(composite_3, Messages.AbstraktPersonaPage_sct_quallities, SWT.NONE, persona, Shr5Package.Literals.KOERPER_PERSONA__EIGENSCHAFTEN, toolkit, mananger, editingDomain, this, this); GridData layoutData = new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1); layoutData.heightHint = 150; treeTableWidgetEigenschaften.setLayoutData(layoutData); managedForm.getToolkit().adapt(treeTableWidgetEigenschaften); managedForm.getToolkit().paintBordersFor(treeTableWidgetEigenschaften); } if (!kp.getKoerperMods().isEmpty()) { SimpleTreeTableWidget treeTableWidgetInventar = new SimpleTreeTableWidget(composite_3, Messages.AbstraktPersonaPage_sct_Augmentation, SWT.NONE, persona, Shr5Package.Literals.KOERPER_PERSONA__KOERPER_MODS, toolkit, mananger, editingDomain, this, this); GridData layoutData2 = new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1); layoutData2.heightHint = 150; treeTableWidgetInventar.setLayoutData(layoutData2); managedForm.getToolkit().adapt(treeTableWidgetInventar); managedForm.getToolkit().paintBordersFor(treeTableWidgetInventar); } if (!kp.getMartialartStyles().isEmpty()) { SimpleTreeTableWidget treeTableWidgetInventar = new SimpleTreeTableWidget(composite_3, Messages.AbstraktPersonaPage_sct_Augmentation, SWT.NONE, persona, Shr5Package.Literals.ABSTRAKT_PERSONA__MARTIALART_STYLES, toolkit, mananger, editingDomain, this, this); GridData layoutData2 = new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1); layoutData2.heightHint = 150; treeTableWidgetInventar.setLayoutData(layoutData2); managedForm.getToolkit().adapt(treeTableWidgetInventar); managedForm.getToolkit().paintBordersFor(treeTableWidgetInventar); } } if (persona instanceof BaseMagischePersona) { BaseMagischePersona bm = (BaseMagischePersona)persona; if (!bm.getInitationen().isEmpty()) { SimpleTreeTableWidget treeTableWidgetKiPower = new SimpleTreeTableWidget(composite_3, Messages.AbstraktPersonaPage_KiPowers, SWT.NONE, persona, Shr5Package.Literals.BASE_MAGISCHE_PERSONA__INITATIONEN, toolkit, mananger, editingDomain, this, this); treeTableWidgetKiPower.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); managedForm.getToolkit().adapt(treeTableWidgetKiPower); managedForm.getToolkit().paintBordersFor(treeTableWidgetKiPower); } } if (persona instanceof KiAdept) { SimpleTreeTableWidget treeTableWidgetKiPower = new SimpleTreeTableWidget(composite_3, Messages.AbstraktPersonaPage_KiPowers, SWT.NONE, persona, Shr5Package.Literals.KI_ADEPT__KIKRAFT, toolkit, mananger, editingDomain, this, this); treeTableWidgetKiPower.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); managedForm.getToolkit().adapt(treeTableWidgetKiPower); managedForm.getToolkit().paintBordersFor(treeTableWidgetKiPower); } if (persona instanceof Zauberer) { Zauberer z = (Zauberer)persona; if (!z.getZauber().isEmpty()) { SimpleTreeTableWidget treeTableWidgetKiPower = new SimpleTreeTableWidget(composite_3, Messages.AbstraktPersonaPage_Spells, SWT.NONE, persona, Shr5Package.Literals.ZAUBERER__ZAUBER, toolkit, mananger, editingDomain, this, this); treeTableWidgetKiPower.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); managedForm.getToolkit().adapt(treeTableWidgetKiPower); managedForm.getToolkit().paintBordersFor(treeTableWidgetKiPower); } if (!z.getGebundeneGeister().isEmpty()) { SimpleTreeTableWidget treeTableWidgetKiPower = new SimpleTreeTableWidget(composite_3, Messages.AbstraktPersonaPage_sct_bound_spririts, SWT.NONE, persona, Shr5Package.Literals.ZAUBERER__GEBUNDENE_GEISTER, toolkit, mananger, editingDomain, this,this); treeTableWidgetKiPower.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); managedForm.getToolkit().adapt(treeTableWidgetKiPower); managedForm.getToolkit().paintBordersFor(treeTableWidgetKiPower); } } if (persona instanceof Technomancer) { SimpleTreeTableWidget treeTableWidgetKiPower = new SimpleTreeTableWidget(composite_3, Messages.AbstraktPersonaPage_sct_complex_forms, SWT.NONE, persona, Shr5Package.Literals.TECHNOMANCER__COMPLEX_FORMS, toolkit, mananger, editingDomain, this,this); treeTableWidgetKiPower.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1)); managedForm.getToolkit().adapt(treeTableWidgetKiPower); managedForm.getToolkit().paintBordersFor(treeTableWidgetKiPower); } } @Override protected EditingDomain getEditingDomain() { return editingDomain; } protected String featureName(EStructuralFeature feature) { return ShadowrunEditingTools.toFeatureName(object, feature); } /** * @param toolkit * @param container * @param e * @param object * @param emfFormBuilder */ private void createLinkRO(final FormToolkit toolkit, Composite container, FormbuilderEntry e, EObject object, EmfFormBuilder emfFormBuilder) { Label label = emfFormBuilder.createConfiguredLable(container, e, object); label.setText(featureName(e.getFeature())); final ImageHyperlink srcLink = toolkit.createImageHyperlink(container, SWT.NONE); toolkit.paintBordersFor(srcLink); srcLink.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 2, 1)); Object value = object.eGet(e.getFeature()); final String nullString = Messages.EmfFormbuilder_non_selected; String element = value == null ? nullString : labelprovider.getText(value); srcLink.setText(element); srcLink.setImage(labelprovider.getImage(value)); // ISWTObservableValue uiObs = SWTObservables.observeText(srcLink); IValueProperty property = null; if (getEditingDomain() != null) property = EMFEditProperties.value(getEditingDomain(), e.getFeature()); else property = EMFProperties.value(e.getFeature()); final IObservableValue mObs = property.observe(object); e.setObservable(mObs); mObs.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { Object value = event.getObservableValue().getValue(); srcLink.setText(value == null ? nullString : labelprovider.getText(value)); srcLink.setImage(labelprovider.getImage(value)); } }); } protected DataBindingContext initDataBindings() { DataBindingContext bindingContext = new DataBindingContext(); // // IObservableValue observeTextLblNewLabel_1ObserveWidget = WidgetProperties.text().observe(lblNewLabel_1); // IObservableValue objectNativeLanguageObserveValue = EMFEditObservables.observeValue(editingDomain, object, // Literals.MANAGED_CHARACTER__NATIVE_LANGUAGE); // UpdateValueStrategy strategy = new UpdateValueStrategy(); // strategy.setConverter(new ReferenceConverter()); // bindingContext.bindValue(observeTextLblNewLabel_1ObserveWidget, objectNativeLanguageObserveValue, new // UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), strategy); // return bindingContext; } }