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.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.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.Beschreibbar; import de.urszeidler.eclipse.shr5.Geist; import de.urszeidler.eclipse.shr5.KomplexeForm; import de.urszeidler.eclipse.shr5.MagischeTradition; import de.urszeidler.eclipse.shr5.MartialartStyle; import de.urszeidler.eclipse.shr5.MartialartTechnique; import de.urszeidler.eclipse.shr5.MetaMagie; import de.urszeidler.eclipse.shr5.Quelle; import de.urszeidler.eclipse.shr5.SensorFunction; import de.urszeidler.eclipse.shr5.Shr5Factory; import de.urszeidler.eclipse.shr5.Shr5Package; import de.urszeidler.eclipse.shr5.SourceLink; import de.urszeidler.eclipse.shr5.Zauber; import de.urszeidler.eclipse.shr5.util.AdapterFactoryUtil; import de.urszeidler.eclipse.shr5Management.LifeModule; 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.CreateTOCFromSourcebook; import de.urszeidler.shr5.ecp.editor.widgets.BeschreibbarWidget; import de.urszeidler.shr5.ecp.editor.widgets.TreeTableWidget; /** * Use for object that is only a {@link Quelle}. * @author urs * */ public class VariousObjectsPage extends AbstractShr5Page<Beschreibbar> { private Beschreibbar object; private EditingDomain editingDomain; private DataBindingContext m_bindingContext; // private WritableValue filterValue = new WritableValue(); /** * Create the form page. * * @param id * @param title */ public VariousObjectsPage(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 VariousObjectsPage(FormEditor editor, String id, String title) { super(editor, id, title); this.object = Shr5Factory.eINSTANCE.createFertigkeitsGruppe(); } public VariousObjectsPage(FormEditor editor, String id, String title, Beschreibbar object, EditingDomain editingDomain, ReferenceManager mananger1) { super(editor, id, title, mananger1); 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); if (object instanceof LifeModule) { form.getToolBarManager().add(new ActionM2TDialog(form.getShell(), object)); }else if (object instanceof SourceLink) { SourceLink o = (SourceLink)object; if(o.getPage()==null || o.getPage().isEmpty()) form.getToolBarManager().add(new CreateTOCFromSourcebook(form.getShell(), o)); } 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); // gd_beschreibbarWidget.widthHint = 0; beschreibbarWidget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1)); managedForm.getToolkit().adapt(beschreibbarWidget); managedForm.getToolkit().paintBordersFor(beschreibbarWidget); Group grpGegenstand = new Group(managedForm.getForm().getBody(), SWT.NONE); grpGegenstand.setLayout(new GridLayout(2, false)); grpGegenstand.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); managedForm.getToolkit().adapt(grpGegenstand); managedForm.getToolkit().paintBordersFor(grpGegenstand); Composite composite_Additional = new Composite(managedForm.getForm().getBody(), SWT.NONE); composite_Additional.setLayout(new GridLayout(3, false)); composite_Additional.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1)); managedForm.getToolkit().adapt(composite_Additional); managedForm.getToolkit().paintBordersFor(composite_Additional); Composite composite = new Composite(managedForm.getForm().getBody(), SWT.NONE); composite.setLayout(new FillLayout(SWT.HORIZONTAL)); composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); managedForm.getToolkit().adapt(composite); managedForm.getToolkit().paintBordersFor(composite); // Group grpWert = new Group(composite, SWT.NONE); // grpWert.setText(Messages.ObjectPage_price); // managedForm.getToolkit().adapt(grpWert); // managedForm.getToolkit().paintBordersFor(grpWert); // grpWert.setLayout(new GridLayout(9, false)); Group grpQuelle = new Group(composite, SWT.NONE); grpQuelle.setText(Messages.ObjectPage_source); managedForm.getToolkit().adapt(grpQuelle); managedForm.getToolkit().paintBordersFor(grpQuelle); grpQuelle.setLayout(new GridLayout(6, false)); Section sctnRuntime = managedForm.getToolkit().createSection(managedForm.getForm().getBody(), Section.TWISTIE | Section.TITLE_BAR); sctnRuntime.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); managedForm.getToolkit().paintBordersFor(sctnRuntime); sctnRuntime.setText(Messages.GegenstandPage_sctnRuntime_text); sctnRuntime.setExpanded(true); final Composite composite_runtime = managedForm.getToolkit().createComposite(sctnRuntime, SWT.NONE); managedForm.getToolkit().paintBordersFor(composite_runtime); sctnRuntime.setClient(composite_runtime); composite_runtime.setLayout(new GridLayout(6, false)); m_bindingContext = initDataBindings(); createFormBuilder(managedForm); grpGegenstand.setText(labelProvider.getText(object.eClass())); if (object instanceof Geist) { emfFormBuilder.addTextEntry(Shr5Package.Literals.STUFEN_PERSONA__STUFE, grpGegenstand); emfFormBuilder.addSeperatorEntry(grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.GEIST__KONSTITUTION_BASIS, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.GEIST__STAERKE_BASIS, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.GEIST__GESCHICKLICHKEIT_BASIS, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.GEIST__REAKTION_BASIS, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.GEIST__CHARISMA_BASIS, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.GEIST__WILLENSKRAFT_BASIS, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.GEIST__INTUITION_BASIS, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.GEIST__LOGIK_BASIS, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.STUFEN_PERSONA__SKILLS, composite_Additional); emfFormBuilder.addTextEntry(Shr5Package.Literals.STUFEN_PERSONA__SKILL_GROUPS, composite_Additional); emfFormBuilder.addTextEntry(Shr5Package.Literals.GEIST__POWERS, composite_Additional); } else if (object instanceof Zauber) { emfFormBuilder.addTextEntry(Shr5Package.Literals.ZAUBER__KATEGORIE, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.ZAUBER__ENTZUG, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.ZAUBER__ART, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.ZAUBER__DAUER, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.ZAUBER__REICHWEITE, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.ZAUBER__SCHADEN, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.ZAUBER__MERKMALE, grpGegenstand); }else if (object instanceof KomplexeForm) { emfFormBuilder.addTextEntry(Shr5Package.Literals.KOMPLEXE_FORM__ZIEL, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.KOMPLEXE_FORM__SCHWUND, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.KOMPLEXE_FORM__DAUER, grpGegenstand); }else if (object instanceof MetaMagie) { }else if (object instanceof MagischeTradition) { emfFormBuilder.addTextEntry(Shr5Package.Literals.MAGISCHE_TRADITION__ENZUG, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.MAGISCHE_TRADITION__BESCHWOERBAR, grpGegenstand); }else if (object instanceof LifeModule) { emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.LIFE_MODULE__KARMA_COST, grpGegenstand); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.LIFE_MODULE__MODULE_TYPE, grpGegenstand); emfFormBuilder.addTextEntry(Shr5managementPackage.Literals.LIFE_MODULE__TIME, grpGegenstand); }else if (object instanceof SensorFunction) { emfFormBuilder.addTextEntry(Shr5Package.Literals.SENSOR_FUNCTION__MAX_RANGE, grpGegenstand); } else if (object instanceof MartialartStyle) { grpGegenstand.setLayout(new GridLayout(3, false)); emfFormBuilder.addTextEntry(Shr5Package.Literals.MARTIALART_STYLE__USABLE_WITH, grpGegenstand); emfFormBuilder.addTextEntry(Shr5Package.Literals.MARTIALART_STYLE__TECHNIQUES, grpGegenstand,createControllGridData(100)); }else if (object instanceof MartialartTechnique) { }else if (object instanceof SourceLink) { grpGegenstand.setLayout(new GridLayout(3, false)); TreeTableWidget createTreeTableWidget = createTreeTableWidget(composite_Additional, Shr5Package.Literals.SOURCE_LINK__SUB_LINKS, managedForm, object); createFilterWidgets(managedForm, grpGegenstand, createTreeTableWidget); } addSourceFeature(grpQuelle); emfFormBuilder.buildinComposite(m_bindingContext, managedForm.getForm().getBody(), object); if (object instanceof LifeModule) { TreeTableWidget treeTableWidget = new TreeTableWidget(grpGegenstand, labelProvider.getText(Shr5managementPackage.Literals.LIFE_MODULE__CHARACTER_CHANGES), SWT.NONE, object, Shr5managementPackage.Literals.LIFE_MODULE__CHARACTER_CHANGES, toolkit, mananger, editingDomain, this); GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, false, 6, 1); layoutData.heightHint = 250; layoutData.minimumHeight = 250; treeTableWidget.setLayoutData(layoutData); managedForm.getToolkit().adapt(treeTableWidget); managedForm.getToolkit().paintBordersFor(treeTableWidget); } managedForm.reflow(true); } @Override protected EditingDomain getEditingDomain() { return editingDomain; } protected DataBindingContext initDataBindings() { DataBindingContext bindingContext = new DataBindingContext(); // // return bindingContext; } }