/******************************************************************************* * Copyright (c) 2006-2008, G. Weirich and Elexis * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * G. Weirich - initial implementation * *******************************************************************************/ package ch.elexis.base.ch.artikel.views; import org.eclipse.swt.SWT; import org.eclipse.swt.events.FocusAdapter; import org.eclipse.swt.events.FocusEvent; 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.Text; import org.eclipse.ui.IViewSite; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; import org.eclipse.ui.forms.widgets.TableWrapData; import org.eclipse.ui.forms.widgets.TableWrapLayout; import ch.elexis.artikel_ch.data.Medical; import ch.elexis.core.ui.UiDesk; import ch.elexis.core.ui.util.LabeledInputField; import ch.elexis.core.ui.views.IDetailDisplay; import ch.elexis.core.ui.views.artikel.Artikeldetail; import ch.elexis.core.ui.views.controls.ArticleDefaultSignatureComposite; import ch.elexis.core.ui.views.controls.StockDetailComposite; public class MedicalDetailDisplay implements IDetailDisplay { FormToolkit tk = UiDesk.getToolkit(); ScrolledForm form; LabeledInputField.AutoForm tblArtikel; LabeledInputField ifName; Text tName; Medical act; private StockDetailComposite sdc; private ArticleDefaultSignatureComposite adsc; public Composite createDisplay(Composite parent, IViewSite site){ parent.setLayout(new FillLayout()); form = tk.createScrolledForm(parent); Composite ret = form.getBody(); ret.setLayout(new TableWrapLayout()); ifName = new LabeledInputField(ret, "Name"); ifName.setLayoutData(new TableWrapData(TableWrapData.FILL)); tName = (Text) ifName.getControl(); tName.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e){ if (act != null) { act.setInternalName(tName.getText()); } super.focusLost(e); } }); tblArtikel = new LabeledInputField.AutoForm(ret, Artikeldetail.getFieldDefs(parent.getShell())); tblArtikel.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB)); Group grpStockDetails = new Group(ret, SWT.NONE); grpStockDetails.setLayout(new GridLayout(1, false)); grpStockDetails.setText("Lagerhaltung"); grpStockDetails.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB)); sdc = new StockDetailComposite(grpStockDetails, SWT.NONE); sdc.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); Group grpDefaultSignature = new Group(ret, SWT.NONE); grpDefaultSignature.setLayout(new GridLayout(1, false)); grpDefaultSignature.setText("Standard-Signatur"); grpDefaultSignature.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB)); adsc = new ArticleDefaultSignatureComposite(grpDefaultSignature, SWT.NONE); adsc.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); adsc.initDataBindings(null); adsc.setEnabled(false); return ret; } public Class getElementClass(){ return Medical.class; } public void display(Object obj){ if (obj instanceof Medical) { act = (Medical) obj; form.setText(act.getLabel()); tblArtikel.reload(act); ifName.setText(act.getInternalName()); adsc.setArticleToBind(act); sdc.setArticle(act); } else { adsc.setArticleToBind(null); sdc.setArticle(null); } } public String getTitle(){ return "Medical"; //$NON-NLS-1$ } }