/******************************************************************************* * Copyright (c) 2006-2010, 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, adapted from JavaAgenda * *******************************************************************************/ package ch.elexis.dialogs; import org.eclipse.jface.dialogs.TitleAreaDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; import ch.elexis.agenda.Messages; import ch.elexis.agenda.data.Termin; import ch.elexis.core.data.events.ElexisEventDispatcher; import ch.elexis.core.ui.util.SWTHelper; public class TerminStatusDialog extends TitleAreaDialog { Button[] bStatus; String[] status; Termin termin; public TerminStatusDialog(Shell shell){ super(shell); termin = (Termin) ElexisEventDispatcher.getSelected(Termin.class); } public TerminStatusDialog(Shell shell, Termin termin) { super(shell); this.termin = termin; } @Override protected Control createDialogArea(Composite parent){ Composite ret = new Composite(parent, SWT.NONE); ret.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true)); ret.setLayout(new GridLayout()); status = Termin.TerminStatus; bStatus = new Button[status.length]; String orig = termin.getStatus(); for (int i = 0; i < status.length; i++) { bStatus[i] = new Button(ret, SWT.RADIO); bStatus[i].setText(status[i]); bStatus[i].setLayoutData(SWTHelper.getFillGridData(1, true, 1, false)); if (status[i].equals(orig)) { bStatus[i].setSelection(true); } } return ret; } @Override public void create(){ super.create(); getShell().setText(Messages.TerminStatusDialog_terminState); setMessage(Messages.TerminStatusDialog_enterState); setTitle(Messages.TerminStatusDialog_terminState); } @Override protected void okPressed(){ for (int i = 0; i < status.length; i++) { if (bStatus[i].getSelection()) { termin.setStatus(status[i]); break; } } ElexisEventDispatcher.reload(Termin.class); super.okPressed(); } }