package org.openlca.app.editors.reports; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormPage; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; import org.openlca.app.M; import org.openlca.app.editors.DataBinding; import org.openlca.app.editors.projects.ProjectEditor; import org.openlca.app.editors.reports.model.Report; import org.openlca.app.rcp.images.Icon; import org.openlca.app.util.Controls; import org.openlca.app.util.UI; public class ReportEditorPage extends FormPage { private Report report; private ProjectEditor editor; private DataBinding binding; private FormToolkit tk; private SectionList sectionList; public ReportEditorPage(ProjectEditor editor, Report report) { super(editor, "ReportInfoPage", M.ReportSections); this.editor = editor; this.report = report; this.binding = new DataBinding(editor); } @Override protected void createFormContent(IManagedForm managedForm) { ScrolledForm form = UI.formHeader(managedForm, M.ReportSections); tk = managedForm.getToolkit(); Composite body = UI.formBody(form, tk); createInfoSection(body); createAddButton(body); sectionList = new SectionList(editor, body, form, tk); form.reflow(true); } private void createAddButton(Composite body) { Composite comp = UI.formComposite(body, tk); UI.filler(comp); Button addButton = tk.createButton(comp, M.AddSection, SWT.NONE); addButton.setImage(Icon.ADD.get()); Controls.onSelect(addButton, e -> sectionList.addNew()); } private void createInfoSection(Composite body) { Composite comp = UI.formSection(body, tk, M.GeneralInformation); Text titleText = UI.formText(comp, tk, M.Title); binding.onString(() -> report, "title", titleText); } }