/******************************************************************************* * Copyright (c) 2009, 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 * D. Lutz - DBBased Importer * *******************************************************************************/ package ch.elexis.core.ui.util; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import ch.elexis.core.ui.UiDesk; import ch.elexis.core.ui.locks.IUnlockable; import ch.elexis.core.ui.util.LabeledInputField.AutoForm; import ch.elexis.core.ui.util.LabeledInputField.InputData; public class InputPanel extends Composite implements IUnlockable { int min, max; Composite top; InputData[] fields; AutoForm af; public InputPanel(Composite parent, int minColumns, int maxColumns, InputData[] fields){ super(parent, SWT.NONE); this.fields = fields; min = minColumns; max = maxColumns; for (InputData id : fields) { LabeledInputField widget = id.getWidget(); if (widget != null) { Label lbl = widget.getLabelComponent(); Font lblFont = UiDesk.getFont("Helvetica", 8, SWT.ITALIC); lbl.setFont(lblFont); } } setLayout(new GridLayout()); af = new LabeledInputField.AutoForm(this, fields, min, max); af.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true)); } public AutoForm getAutoForm(){ return af; } @Override public void setUnlocked(boolean unlock){ for (InputData id : fields) { id.setEditable(unlock); } } public void save() { for (InputData inputData : fields) { af.save(inputData); } } }