1 package org.wcb.common; 2 3 import org.wcb.common.component.JTimeSlider; 4 import org.wcb.autohome.AutoHomeAdminSession; 5 import org.wcb.autohome.interfaces.I18nConstants; 6 7 import javax.swing.*; 8 import javax.swing.event.ChangeListener; 9 import javax.swing.event.ChangeEvent; 10 import java.awt.*; 11 import java.util.Calendar; 12 import java.util.GregorianCalendar; 13 import java.text.SimpleDateFormat; 14 import java.text.ParseException; 15 16 /*** 17 * Copyright (C) 1999 Walter Bogaardt 18 * 19 * This library is free software; you can redistribute it and/or 20 * modify it under the terms of the GNU Lesser General Public 21 * License as published by the Free Software Foundation; either 22 * version 2 of the License, or (at your option) any later version. 23 * 24 * This library is distributed in the hope that it will be useful, 25 * but WITHOUT ANY WARRANTY; without even the implied warranty of 26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 27 * Lesser General Public License for more details. 28 * 29 * You should have received a copy of the GNU Lesser General Public 30 * License along with this library; if not, write to the Free Software 31 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 32 * 33 * Project: Alice X10 Home Automation 34 * Filename: $Id: JTimeDialog.java,v 1.5 2004/07/22 03:06:50 wbogaardt Exp $<BR> 35 * Abstract: Used to display general configuration settings such as serial port settings and languages. 36 * 37 * $Log: JTimeDialog.java,v $ 38 * Revision 1.5 2004/07/22 03:06:50 wbogaardt 39 * removed deprecated method calls. 40 * 41 * Revision 1.4 2004/02/06 23:27:13 wbogaardt 42 * added clock label to internationalization, refactored menu bar from home center panel, fixed display of JTimeDialog so that it looks a bit better. 43 * 44 * Revision 1.3 2004/02/06 20:06:36 wbogaardt 45 * replaced ampm drop boxes with time buttons which launch a time panel move menu items around on main panel 46 * 47 * Revision 1.2 2004/02/06 05:58:22 wbogaardt 48 * have a working time slider panel that gets and sets time 49 * 50 * Revision 1.1 2004/02/05 14:30:30 wbogaardt 51 * added dialog 52 * 53 */ 54 public class JTimeDialog extends JDialog implements ChangeListener{ 55 56 JTextField time; 57 JTimeSlider timeslider; 58 59 /*** 60 * This dialog takes the frame reference a calender object to to 61 * display a time dialog box. This dialog box makes it easier for the 62 * user to set the time as they can drag a slide bar across and it will 63 * change the time rather than typing in the time. 64 * @param frame main frame reference 65 * @param cal Time to set the slide bar and print in a text box. 66 * @param controller The button that will controll closing this dialog. 67 */ 68 public JTimeDialog(Frame frame, Calendar cal, JButton controller){ 69 super(frame,"Time Settings",true); 70 Container pane = getContentPane(); 71 pane.setLayout(new BorderLayout()); 72 time = new JTextField(5); 73 time.setText(cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE)); 74 timeslider = new JTimeSlider(cal); 75 timeslider.addChangeListener(this); 76 JPanel northPanel = new JPanel(); 77 northPanel.add(new JLabel(AutoHomeAdminSession.getInstance().getI18n().getString(I18nConstants.TIME_LABEL))); 78 northPanel.add(time); 79 JPanel centerPanel = new JPanel(); 80 centerPanel.add(timeslider); 81 JPanel southPanel = new JPanel(); 82 southPanel.add(controller); 83 pane.add(northPanel, BorderLayout.NORTH); 84 pane.add(centerPanel, BorderLayout.CENTER); 85 pane.add(southPanel, BorderLayout.SOUTH); 86 pane.setSize(200,50); 87 pack(); 88 } 89 90 public String getTime(){ 91 GregorianCalendar calendar = new GregorianCalendar(); 92 try{ 93 SimpleDateFormat sdfParse = new SimpleDateFormat("HH:mm"); 94 calendar.setTime(sdfParse.parse(time.getText())); 95 }catch(ParseException pe){} 96 SimpleDateFormat sdfShow = new SimpleDateFormat("h:mm a"); 97 return sdfShow.format(calendar.getTime()); 98 } 99 100 public void stateChanged(ChangeEvent e){ 101 Object s = e.getSource(); 102 if(s == timeslider){ 103 time.setText(timeslider.getCalenderOfSlider()); 104 } 105 } 106 }