001: /*
002: * ChainBuilder ESB
003: * Visual Enterprise Integration
004: *
005: * Copyright (C) 2006 Bostech Corporation
006: *
007: * This program is free software; you can redistribute it and/or modify it
008: * under the terms of the GNU General Public License as published by the
009: * Free Software Foundation; either version 2 of the License, or (at your option)
010: * any later version.
011: *
012: * This program is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
014: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
015: * for more details.
016: *
017: * You should have received a copy of the GNU General Public License along with
018: * this program; if not, write to the Free Software Foundation, Inc.,
019: * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
020: *
021: *
022: * $Id$
023: */
024: package com.bostechcorp.cbesb.ui.util.controls;
025:
026: import org.eclipse.swt.SWT;
027: import org.eclipse.swt.events.SelectionAdapter;
028: import org.eclipse.swt.events.SelectionEvent;
029: import org.eclipse.swt.graphics.Image;
030: import org.eclipse.swt.layout.GridData;
031: import org.eclipse.swt.layout.GridLayout;
032: import org.eclipse.swt.nebula.widgets.cdatetime.CDT;
033: import org.eclipse.swt.nebula.widgets.cdatetime.CDateTime;
034: import org.eclipse.swt.widgets.Button;
035: import org.eclipse.swt.widgets.Dialog;
036: import org.eclipse.swt.widgets.Display;
037: import org.eclipse.swt.widgets.Shell;
038:
039: import com.bostechcorp.cbesb.common.i18n.I18N;
040: import com.bostechcorp.cbesb.common.i18n.Messages;
041:
042: /**
043: * Pop up a clock which is 24Hour style,and it return the time when it open.
044: *
045: */
046: public class ClockDialog extends Dialog {
047:
048: protected Object result;
049:
050: protected Shell shell;
051:
052: private Image image;
053:
054: /**
055: * Create the dialog
056: *
057: * @param parent
058: * @param style
059: */
060: public ClockDialog(Shell parent, int style) {
061: super (parent, style);
062: }
063:
064: /**
065: * Create the dialog
066: *
067: * @param parent
068: */
069: public ClockDialog(Shell parent, Image image) {
070: this (parent, SWT.NONE);
071: this .image = image;
072: }
073:
074: /**
075: * Open the dialog
076: *
077: * @return the result
078: */
079: public Object open() {
080: createContents();
081: shell.open();
082: shell.layout();
083: Display display = getParent().getDisplay();
084: while (!shell.isDisposed()) {
085: if (!display.readAndDispatch())
086: display.sleep();
087: }
088: return result;
089: }
090:
091: /**
092: * Create contents of the dialog
093: */
094: protected void createContents() {
095: shell = new Shell(getParent(), SWT.CLOSE
096: | SWT.APPLICATION_MODAL);
097: shell.setLayout(new GridLayout());
098: shell.setSize(267, 267);
099: shell.setImage(image);
100:
101: final CDateTime timeControl = new CDateTime(shell, CDT.BORDER
102: | CDT.CLOCK_24_HOUR | CDT.SIMPLE | CDT.TIME_MEDIUM);
103: timeControl.setLayoutData(new GridData(SWT.FILL, SWT.FILL,
104: true, true));
105:
106: final Button button = new Button(shell, SWT.NONE);
107: button.addSelectionListener(new SelectionAdapter() {
108: public void widgetSelected(SelectionEvent e) {
109: result = timeControl.getText();
110: shell.dispose();
111:
112: }
113: });
114: final GridData gridData = new GridData(SWT.CENTER, SWT.CENTER,
115: true, false);
116: gridData.widthHint = 59;
117: button.setLayoutData(gridData);
118: button.setText(I18N.getString(Messages.OK));
119: }
120:
121: }
|