/* * Copyright (c) 2004-2011 Marco Maccaferri and others. * 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: * Marco Maccaferri - initial API and implementation */ package org.eclipsetrader.ui.internal.ats; import java.util.Calendar; import java.util.Date; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.nebula.widgets.cdatetime.CDT; import org.eclipse.nebula.widgets.cdatetime.CDateTime; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipsetrader.ui.Util; import org.eclipsetrader.ui.internal.UIActivator; public class SimulationParametersDialog extends Dialog { public static final String K_BEGIN_DATE = "BEGIN_DATE"; public static final String K_END_DATE = "END_DATE"; public static final String TODAY = "Today"; private CDateTime begin; private CDateTime end; private Date beginDate; private Date endDate; private final IDialogSettings rootDialogSettings; public SimulationParametersDialog(Shell parentShell) { super(parentShell); rootDialogSettings = UIActivator.getDefault().getDialogSettings(); } /* (non-Javadoc) * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) */ @Override protected void configureShell(Shell newShell) { super.configureShell(newShell); newShell.setText("Run Simulation"); } /* (non-Javadoc) * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) */ @Override protected Control createDialogArea(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(4, false); layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); composite.setLayout(layout); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); applyDialogFont(composite); Label label = new Label(composite, SWT.NONE); label.setText("Begin"); begin = new CDateTime(composite, CDT.BORDER | CDT.DATE_SHORT | CDT.DROP_DOWN | CDT.TAB_FIELDS); begin.setPattern(Util.getDateFormatPattern()); begin.setLayoutData(new GridData(convertHorizontalDLUsToPixels("gtk".equals(SWT.getPlatform()) ? 80 : 65), SWT.DEFAULT)); label = new Label(composite, SWT.NONE); label.setText("End"); end = new CDateTime(composite, CDT.BORDER | CDT.DATE_SHORT | CDT.DROP_DOWN | CDT.TAB_FIELDS); end.setPattern(Util.getDateFormatPattern()); end.setNullText(TODAY); end.setLayoutData(new GridData(convertHorizontalDLUsToPixels("gtk".equals(SWT.getPlatform()) ? 80 : 65), SWT.DEFAULT)); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -30); begin.setSelection(calendar.getTime()); IDialogSettings dialogSettings = rootDialogSettings.getSection(getClass().getName()); if (dialogSettings != null) { if (dialogSettings.get(K_BEGIN_DATE) != null) { calendar.setTimeInMillis(dialogSettings.getLong(K_BEGIN_DATE)); begin.setSelection(calendar.getTime()); } if (dialogSettings.get(K_END_DATE) != null && !TODAY.equals(dialogSettings.get(K_END_DATE))) { calendar.setTimeInMillis(dialogSettings.getLong(K_END_DATE)); end.setSelection(calendar.getTime()); } } return composite; } /* (non-Javadoc) * @see org.eclipse.jface.dialogs.Dialog#okPressed() */ @Override protected void okPressed() { beginDate = begin.getSelection(); endDate = end.getSelection(); IDialogSettings dialogSettings = rootDialogSettings.getSection(getClass().getName()); if (dialogSettings == null) { dialogSettings = rootDialogSettings.addNewSection(getClass().getName()); } dialogSettings.put(K_BEGIN_DATE, beginDate.getTime()); if (endDate == null) { dialogSettings.put(K_END_DATE, TODAY); endDate = Calendar.getInstance().getTime(); } else { dialogSettings.put(K_END_DATE, endDate.getTime()); } super.okPressed(); } public Date getBeginDate() { return beginDate; } public Date getEndDate() { return endDate; } }