/*******************************************************************************
* Copyright (c) 2006-2007, 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 java.util.Arrays;
import java.util.List;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import ch.elexis.agenda.data.Termin;
import ch.elexis.core.ui.util.SWTHelper;
import ch.elexis.data.Query;
import ch.rgw.tools.TimeTool;
public class TagesgrenzenDialog extends TitleAreaDialog {
String day;
Text text;
String beiwem;
List<Termin> lRes;
public TagesgrenzenDialog(Shell parent, String tag, String bereich){
super(parent);
day = tag;
beiwem = bereich;
}
@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());
text = SWTHelper.createText(ret, 6, SWT.BORDER);
Query<Termin> qbe = new Query<Termin>(Termin.class);
qbe.add("Tag", "=", day);
qbe.add("Typ", "=", Termin.typReserviert());
qbe.add("BeiWem", "=", beiwem);
qbe.add("deleted", "=", "0");
lRes = qbe.execute();
Termin[] lt = lRes.toArray(new Termin[0]);
Arrays.sort(lt);
StringBuilder sb = new StringBuilder();
for (Termin t : lt) {
sb.append(t.getTimeSpan().from.toString(TimeTool.TIME_SMALL)).append("-")
.append(t.getTimeSpan().until.toString(TimeTool.TIME_SMALL)).append("\n");
}
text.setText(sb.toString());
return ret;
}
@Override
public void create(){
super.create();
setTitle("Tagesgrenzen");
setMessage("Bitte geben Sie nicht planbare Zeiträume in der Form hh:mm-hh:mm jeweils in einer eigenen Zeile ein");
getShell().setText("Agenda");
}
@Override
protected void okPressed(){
for (Termin t : lRes) {
t.delete();
}
String[] sl = text.getText().split("\\s*[\\n*\\r*,]\\n?\\r?\\s*");
for (String s : sl) {
String[] lim = s.split("-");
int start = TimeTool.minutesStringToInt(lim[0]);
int end = TimeTool.minutesStringToInt(lim[1]);
new Termin(beiwem, day, start, end, Termin.typReserviert(), Termin.statusLeer());
}
super.okPressed();
}
}