/*
* 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.charts.views;
import java.util.Date;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.ViewerSorter;
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.core.feed.TimeSpan;
import org.eclipsetrader.ui.Util;
public class CustomPeriodDialog extends Dialog {
private CDateTime from;
private CDateTime to;
private ComboViewer resolution;
private Date firstDate;
private Date lastDate;
private TimeSpan resolutionTimeSpan;
public CustomPeriodDialog(Shell parentShell, Date firstDate, Date lastDate) {
super(parentShell);
this.firstDate = firstDate;
this.lastDate = lastDate;
}
/* (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(Messages.CustomPeriodDialog_CustomPeriodTitle);
}
/* (non-Javadoc)
* @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
*/
@Override
protected Control createDialogArea(Composite parent) {
parent = (Composite) super.createDialogArea(parent);
Composite content = new Composite(parent, SWT.NONE);
GridLayout gridLayout = new GridLayout(4, false);
gridLayout.marginHeight = gridLayout.marginWidth = 0;
content.setLayout(gridLayout);
content.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
Label label = new Label(content, SWT.NONE);
label.setText(Messages.CustomPeriodDialog_BeginDateLabel);
from = new CDateTime(content, CDT.BORDER | CDT.DATE_SHORT | CDT.DROP_DOWN | CDT.TAB_FIELDS);
from.setPattern(Util.getDateFormatPattern());
label = new Label(content, SWT.NONE);
label.setText(Messages.CustomPeriodDialog_EndDateLabel);
to = new CDateTime(content, CDT.BORDER | CDT.DATE_SHORT | CDT.DROP_DOWN | CDT.TAB_FIELDS);
to.setPattern(Util.getDateFormatPattern());
label = new Label(content, SWT.NONE);
label.setText(Messages.CustomPeriodDialog_ResolutionLabel);
resolution = new ComboViewer(content, SWT.DROP_DOWN | SWT.READ_ONLY);
resolution.setLabelProvider(new LabelProvider());
resolution.setContentProvider(new ArrayContentProvider());
resolution.setSorter(new ViewerSorter());
resolution.setInput(new Object[] {
TimeSpan.days(1),
TimeSpan.minutes(1),
TimeSpan.minutes(5),
TimeSpan.minutes(10),
TimeSpan.minutes(15),
TimeSpan.minutes(30),
TimeSpan.minutes(60),
});
from.setSelection(firstDate);
to.setSelection(lastDate);
resolution.setSelection(new StructuredSelection(resolutionTimeSpan));
return content;
}
/* (non-Javadoc)
* @see org.eclipse.jface.dialogs.Dialog#okPressed()
*/
@Override
protected void okPressed() {
firstDate = from.getSelection();
lastDate = to.getSelection();
resolutionTimeSpan = (TimeSpan) ((IStructuredSelection) resolution.getSelection()).getFirstElement();
super.okPressed();
}
public Date getFirstDate() {
return firstDate;
}
public Date getLastDate() {
return lastDate;
}
}