/** * */ package de.urszeidler.shr5.ecp.editor.pages; import org.eclipse.core.databinding.DataBindingContext; import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.SWT; 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.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; import org.eclipse.ui.forms.widgets.Section; import de.urszeidler.eclipse.shr5.util.AdapterFactoryUtil; import de.urszeidler.eclipse.shr5Management.LifeModulesSystem; import de.urszeidler.eclipse.shr5Management.Shr5System; import de.urszeidler.eclipse.shr5Management.Shr5managementPackage; import de.urszeidler.emf.commons.ui.util.EmfFormBuilder.ReferenceManager; import de.urszeidler.shr5.ecp.editor.actions.ActionM2TDialog; import de.urszeidler.shr5.ecp.editor.actions.ImportObjectAction; import de.urszeidler.shr5.ecp.editor.widgets.BeschreibbarWidget; import de.urszeidler.shr5.ecp.editor.widgets.TreeTableWidget; /** * @author urs */ public class GeneratorSystemPage extends AbstractShr5Page<Shr5System> { private Shr5System object; private EditingDomain editingDomain; private DataBindingContext m_bindingContext; /** * Create the form page. * * @param id * @param title */ public GeneratorSystemPage(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 GeneratorSystemPage(FormEditor editor, String id, String title) { super(editor, id, title); } public GeneratorSystemPage(FormEditor editor, String id, String title, Shr5System object, EditingDomain editingDomain, ReferenceManager manager) { super(editor, id, title, manager); this.object = object; this.editingDomain = editingDomain; } /** * Create contents of the form. * * @param managedForm */ @Override protected void createFormContent(IManagedForm managedForm) { FormToolkit toolkit = managedForm.getToolkit(); ScrolledForm form = managedForm.getForm(); LabelProvider labelProvider = AdapterFactoryUtil.getInstance().getLabelProvider(); form.setText(labelProvider.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 ImportObjectAction(form.getShell(), object)); addFillToolbar(form.getToolBarManager(), object, form.getShell()); form.getToolBarManager().update(true); managedForm.getForm().getBody().setLayout(new GridLayout(1, false)); BeschreibbarWidget beschreibbarWidget = new BeschreibbarWidget(managedForm.getForm().getBody(), SWT.NONE, object, toolkit, editingDomain); beschreibbarWidget.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, 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.CENTER, false, false, 1, 1)); managedForm.getToolkit().paintBordersFor(sctnNewSection); // sctnNewSection.setText("New Section"); sctnNewSection.setExpanded(true); Composite composite = managedForm.getToolkit().createComposite(sctnNewSection, SWT.NONE); managedForm.getToolkit().paintBordersFor(composite); sctnNewSection.setClient(composite); composite.setLayout(new GridLayout(4, false)); Group grpPrioritySytem = new Group(composite, SWT.NONE); grpPrioritySytem.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1)); grpPrioritySytem.setText("Priority sytem"); managedForm.getToolkit().adapt(grpPrioritySytem); managedForm.getToolkit().paintBordersFor(grpPrioritySytem); grpPrioritySytem.setLayout(new GridLayout(3, false)); Group grpKarmapriority = new Group(composite, SWT.NONE); grpKarmapriority.setLayout(new GridLayout(3, false)); grpKarmapriority.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1)); grpKarmapriority.setText("Karma"); managedForm.getToolkit().adapt(grpKarmapriority); managedForm.getToolkit().paintBordersFor(grpKarmapriority); Group grpKarmafactors = new Group(composite, SWT.NONE); grpKarmafactors.setLayout(new GridLayout(3, false)); grpKarmafactors.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1)); grpKarmafactors.setText("Karmafactors"); managedForm.getToolkit().adapt(grpKarmafactors); managedForm.getToolkit().paintBordersFor(grpKarmafactors); Group grpConstraint = new Group(composite, SWT.NONE); grpConstraint.setLayout(new GridLayout(3, false)); grpConstraint.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1)); grpConstraint.setText("Constrains"); managedForm.getToolkit().adapt(grpConstraint); managedForm.getToolkit().paintBordersFor(grpConstraint); Group grpQuelle = new Group(composite, SWT.NONE); grpQuelle.setText(Messages.ObjectPage_source); grpQuelle.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1)); managedForm.getToolkit().adapt(grpQuelle); managedForm.getToolkit().paintBordersFor(grpQuelle); grpQuelle.setLayout(new GridLayout(6, 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("New Section"); sctnNewSection_1.setExpanded(true); Composite composite_1 = managedForm.getToolkit().createComposite(sctnNewSection_1, SWT.NONE); sctnNewSection_1.setClient(composite_1); managedForm.getToolkit().paintBordersFor(composite_1); composite_1.setLayout(new GridLayout(3, false)); Composite composite_2 = managedForm.getToolkit().createComposite(managedForm.getForm().getBody(), SWT.NONE); composite_2.setLayout(new GridLayout(2, true)); composite_2.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1)); managedForm.getToolkit().paintBordersFor(composite_2); String refname = AdapterFactoryUtil.getInstance().getLabelProvider().getText(Shr5managementPackage.Literals.PRIORITY_SYSTEM__PRIORITIES); TreeTableWidget treeTableWidget = new TreeTableWidget(composite_2, refname, SWT.NONE, object, Shr5managementPackage.Literals.PRIORITY_SYSTEM__PRIORITIES, toolkit, mananger, editingDomain, this); GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1); layoutData.heightHint = 250; layoutData.minimumHeight = 250; treeTableWidget.setLayoutData(layoutData); managedForm.getToolkit().adapt(treeTableWidget); managedForm.getToolkit().paintBordersFor(treeTableWidget); if (object instanceof LifeModulesSystem) { treeTableWidget = new TreeTableWidget(composite_2, AdapterFactoryUtil.getInstance().getLabelProvider() .getText(Shr5managementPackage.Literals.LIFE_MODULES_SYSTEM__MODULES), SWT.NONE, object, Shr5managementPackage.Literals.LIFE_MODULES_SYSTEM__MODULES, toolkit, mananger, editingDomain, this); treeTableWidget.setLayoutData(layoutData); managedForm.getToolkit().adapt(treeTableWidget); managedForm.getToolkit().paintBordersFor(treeTableWidget); } refname = AdapterFactoryUtil.getInstance().getLabelProvider() .getText(Shr5managementPackage.Literals.CHARACTER_GENERATOR_SYSTEM__ADDITIONAL_CONSTRAINS); treeTableWidget = new TreeTableWidget(composite_2, refname, SWT.NONE, object, Shr5managementPackage.Literals.CHARACTER_GENERATOR_SYSTEM__ADDITIONAL_CONSTRAINS, toolkit, mananger, editingDomain, this); treeTableWidget.setLayoutData(layoutData); managedForm.getToolkit().adapt(treeTableWidget); managedForm.getToolkit().paintBordersFor(treeTableWidget); { m_bindingContext = initDataBindings(); createFormBuilder(managedForm); sctnNewSection.setText(labelProvider.getText(object.eClass())); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__CHARISMA_TO_CONNECTION_FACTOR, grpPrioritySytem); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__KNOWLEGE_SKILL_FACTOR, grpPrioritySytem); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__MAX_MARTIAL_ART_STYLES, grpPrioritySytem); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__FREE_MARTIAL_ART_TECHNIQUES, grpPrioritySytem); emfFormBuilder.addSeperatorEntry(grpPrioritySytem); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__BOUND_SPRITIT_SERVICE_COST, grpPrioritySytem); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__KARMA_TO_CONNECTION_FACTOR, grpKarmafactors); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__KARMA_TO_RESOURCE_FACTOR, grpKarmafactors); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__KARMA_TO_MAGIC_FACTOR, grpKarmafactors); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.PRIORITY_SYSTEM__KARMA_POINTS, grpKarmapriority); emfFormBuilder.addSeperatorEntry(grpKarmapriority); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__MAX_KARMA_TO_KEEP, grpKarmapriority); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__MAX_KARMA_TO_RESOURCES, grpKarmapriority); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__MAX_RESOURCE_TO_KEEP, grpKarmapriority); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__SUM_TO_TEN_VALUE, grpKarmapriority); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__NUMBER_OF_MAX_ATTRIBUTES, grpConstraint); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__NUMBER_OF_SPECALISM, grpConstraint); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__SKILL_MAX, grpConstraint); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__MAX_CONNECTION_RATING, grpConstraint); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.SHR5_SYSTEM__APPLICABLE_GENERATORS, composite_1); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.CHARACTER_GENERATOR_SYSTEM__LIFESTYLE_TO_START_MONEY, composite_1); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.CHARACTER_GENERATOR_SYSTEM__CHARACTER_ADVANCEMENTS, composite_1); if (object instanceof LifeModulesSystem) { emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.LIFE_MODULES_SYSTEM__KNOWLEGE_SKILL_MAX, grpConstraint); } addSourceFeature(grpQuelle); } emfFormBuilder.buildinComposite(m_bindingContext, managedForm.getForm().getBody(), object); managedForm.reflow(true); } protected DataBindingContext initDataBindings() { DataBindingContext bindingContext = new DataBindingContext(); // return bindingContext; } @Override protected EditingDomain getEditingDomain() { return editingDomain; } }