Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   *  Copyright (c) 2011 Leibniz Institute of Plant Genetics and Crop Plant Research (IPK), Gatersleben, Germany.
   *  All rights reserved. This program and the accompanying materials
   *  are made available under the terms of the GNU Lesser Public License v2.1
   *  which accompanies this distribution, and is available at
   *  http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
   *
   *  Contributors:
   *      Leibniz Institute of Plant Genetics and Crop Plant Research (IPK), Gatersleben, Germany - RMI Client, FileChooser and WebDAV
  */
 package de.ipk_gatersleben.bit.bi.edal.rmi.client.gui;
 
 import java.awt.Color;
 import java.awt.Font;
 import java.util.Date;
 
 
 
 public class EdalDateChooser extends JDialog implements ActionListener,	ChangeListener {	
 	private static final long serialVersionUID = 1L;
 	private static final String CENTURY = "Century";
 	private static final String DECADE = "Decade";
 	private static final String YEAR = "Year";
 	private static final String MONTH = "Month";
 	private static final String DAY = "Day";
 	private static final String HOUR = "Hour";
 	private static final String MINUTE = "Minute";
 	private static final String SECOND = "Second";
 	private static final String MILLISECOND = "Millisecond";
 	
 	private static final Font FONT = new Font("Courier New"., 12);

Return value if cancel is chosen.
 
 	public static final int CANCEL_OPTION = 1;
Return value if approve (yes, ok) is chosen.
 
 	public static final int APPROVE_OPTION = 0;
 
 	public int returnvalue;
 	
 	private Calendar showcalendar;
 	
 	private int startYear = 1;
 	private int lastYear = 5000;
 	private int width = 750;
 	private int height = 280;
 
 	private Color backGroundColor = .;
 	private Color weekFontColor = .;
 	private Color dateFontColor = .;
 	private Color weekendFontColor = .;
 
 	private JSpinner yearSpin;
 	private JSpinner monthSpin;
 	private JSpinner daySpin;
 	private JSpinner hourSpin;
 	private JSpinner minuteSpin;
 	private JSpinner secondSpin;
 
 	private JButton[][] daysButton = new JButton[6][7];
 
 	public EdalDateChooser(EdalDate edaldate,boolean showprecision) {
 		if (edaldate != null) {
			this. = edaldate.getStartDate();
			this. = edaldate.getStartPrecision();
else {
			this. = Calendar.getInstance();
		}
		setTitle("DatetimePicker");
		JPanel mainPane = new JPanel();
		mainPane.setLayout(new BorderLayout());
		if(showprecision)
		{
			mainPane.add(toppanel.);
			JPanel controlpanel = createYearAndMonthPanel();
			mainPane.add(controlpanel.);
			JPanel displaypanel = createWeekAndDayPanel();
			mainPane.add(displaypanel.);
		}
		else
		{
			JPanel controlpanel = createYearAndMonthPanel();
			mainPane.add(controlpanel.);
			JPanel displaypanel = createWeekAndDayPanel();
			mainPane.add(displaypanel.);
			 =  - 80;
		}
		JPanel buttonPane = new JPanel(new FlowLayout(., 5, 5));
		JButton savebtn = new JButton();
		JButton cancelbtn = new JButton();
		buttonPane.add(savebtn);
		buttonPane.add(cancelbtn);
		add(mainPane.);
		add(buttonPane.);
	}
		JPanel result = new JPanel();
		result.setLayout(new FlowLayout());
		ButtonGroup g = new ButtonGroup();
		final JRadioButton centuryrb = new JRadioButton();
		if ( != null
			centuryrb.setSelected(true);
		}
		centuryrb.addActionListener(this);
		g.add(centuryrb);
		result.add(centuryrb);
		JRadioButton decaderb = new JRadioButton();
		if ( != null
			decaderb.setSelected(true);
		}
		decaderb.addActionListener(this);
		g.add(decaderb);
		result.add(decaderb);
		JRadioButton yearrb = new JRadioButton();
		if ( != null
			yearrb.setSelected(true);
		}
		yearrb.addActionListener(this);
		g.add(yearrb);
		result.add(yearrb);
		JRadioButton monthrb = new JRadioButton();
		if ( != null
			monthrb.setSelected(true);
		}
		monthrb.addActionListener(this);
		g.add(monthrb);
		result.add(monthrb);
		JRadioButton dayrb = new JRadioButton();
		if ( != null
			dayrb.setSelected(true);
		}
		dayrb.addActionListener(this);
		g.add(dayrb);
		result.add(dayrb);
		JRadioButton hourrb = new JRadioButton();
		if ( != null
			hourrb.setSelected(true);
		}
		hourrb.addActionListener(this);
		g.add(hourrb);
		result.add(hourrb);
		JRadioButton minuterb = new JRadioButton();
		if ( != null
			minuterb.setSelected(true);
		}
		minuterb.addActionListener(this);
		g.add(minuterb);
		result.add(minuterb);
		JRadioButton secondrb = new JRadioButton();
		if ( != null
			secondrb.setSelected(true);
		}
		secondrb.addActionListener(this);
		g.add(secondrb);
		result.add(secondrb);
		JRadioButton millisecondrb = new JRadioButton();
		if ( != null
			millisecondrb.setSelected(true);
		}
		millisecondrb.addActionListener(this);
		g.add(millisecondrb);
		result.add(millisecondrb);
		if ( == null) {
			secondrb.setSelected(true);
		}
		return result;
	}
		int currentYear = c.get(.);
		int currentMonth = c.get(.) + 1;
		int currentday = c.get(.);
		int currentHour = c.get(.);
		int currentMinute = c.get(.);
		int currentSecond = c.get(.);
		int currentMillisecond = c.get(.);
		JPanel result = new JPanel();
		result.setLayout(new FlowLayout());
		JLabel yearLabel = new JLabel();
		result.add(yearLabel);
		 = new JSpinner(new SpinnerNumberModel(currentYear,
				, 1));
		result.add();
		JLabel monthLabel = new JLabel();
		result.add(monthLabel);
		 = new JSpinner(new SpinnerNumberModel(currentMonth, 1, 12, 1));
		result.add();
		JLabel dayLabel = new JLabel();
		result.add(dayLabel);
		 = new JSpinner(getdaymodel(currentYearcurrentMonth,
				currentday));
		result.add();
		JLabel hourLabel = new JLabel();
		result.add(hourLabel);
		 = new JSpinner(new SpinnerNumberModel(currentHour, 0, 23, 1));
		result.add();
		JLabel minuteLabel = new JLabel();
		result.add(minuteLabel);
		 = new JSpinner(new SpinnerNumberModel(currentMinute, 0, 59,
				1));
		result.add();
		JLabel secondLabel = new JLabel();
		result.add(secondLabel);
		 = new JSpinner(new SpinnerNumberModel(currentSecond, 0, 59,
				1));
		result.add();
		JLabel millisecondLabel = new JLabel();
		result.add(millisecondLabel);
				currentMillisecond, 0, 999, 1));
		return result;
	}
	private SpinnerNumberModel getdaymodel(int currentYearint currentMonth,
			int currentday) {
		int minday = 1;
		int maxday = 30;
		if (currentMonth == 1 || currentMonth == 3 || currentMonth == 5
				|| currentMonth == 7 || currentMonth == 8 || currentMonth == 10
				|| currentMonth == 12) {
			maxday = 31;
else if (currentMonth == 2) {
			if (isleapyear(currentYear)) {
				maxday = 29;
else {
				maxday = 28;
			}
		}
		return new SpinnerNumberModel(currentdaymindaymaxday, 1);
	}
	private boolean isleapyear(int year) {
		if (year % 100 == 0) {
			if (year % 400 == 0) {
				return true;
			}
else {
			if (year % 4 == 0) {
				return true;
			}
		}
		return false;
	}
		String colname[] = { "Sunday""Monday""Tuesday ""Wednesday",
				"Thursday""Friday""Saturday " };
		JPanel result = new JPanel();
		result.setFont();
		result.setLayout(new GridLayout(7, 7));
		JLabel cell;
		for (int i = 0; i < 7; i++) {
			cell = new JLabel(colname[i]);
			if (i == 0 || i == 6)
			else
			result.add(cell);
		}
		int actionCommandId = 0;
		for (int i = 0; i < 6; i++)
			for (int j = 0; j < 7; j++) {
				JButton numberButton = new JButton();
				numberButton.setBorder(null);
				numberButton.setActionCommand(String.valueOf(actionCommandId));
				numberButton.addActionListener(this);
				if (j == 0 || j == 6)
				else
				[i][j] = numberButton;
				result.add(numberButton);
				actionCommandId++;
			}
		return result;
	}
	public int showDateChooser() {
		setModal(true);
		return ;
	}
	public void reset() {		
		this. = Calendar.getInstance();
	}
	private Date getDate() {
		return this..getTime();
	}
	public Calendar getCalendar() {
		if ( == null) {
			 = Calendar.getInstance();
		}
		return ;
	}
	}
	private int getSelectedYear() {
	}
	private int getSelectedMonth() {
	}
	private int getSelectedDay() {
		return ((Integer.getValue()).intValue();
	}
	private int getSelectedHour() {
	}
	private int getSelectedMinite() {
	}
	private int getSelectedSecond() {
	}
	private int getSelectedMillisecond() {
	}
	private void flushWeekAndDay() {
		int curday = c.get(.);
		int dayNo = 2 - c.get(.);
		for (int i = 0; i < 6; i++) {
			for (int j = 0; j < 7; j++) {
				String s = "";
				if (dayNo >= 1 && dayNo <= maxDayNo)
					s = String.valueOf(dayNo);
				dayNo++;
				if (j == 0 || j == 6)
				else
			}
		}
	}
	private void refreshdayspin(int currentYearint currentMonth,
			int currentday) {
		.setModel(getdaymodel(currentYearcurrentMonthcurrentday));
	}
	public void stateChanged(ChangeEvent e) {
		JSpinner source = (JSpinnere.getSource();
		if (source.getName().equals("Day")) {
			return;
		}
		if (source.getName().equals("Hour")) {
			return;
		}
		if (source.getName().equals("Minute")) {
			return;
		}
		if (source.getName().equals("Second")) {
			return;
		}
		if (source.getName().equals("Millisecond")) {
			return;
		}
		if (source.getName().equals("Year")) {
else if (source.getName().equals("Month")) {
		}
	}
	private void changeSpinnerStatus(boolean enableYearSpinner,
			boolean enableMonthSpinnerboolean enableDaySpinner,
			boolean enableHourSpinnerboolean enableMinuteSpinner,
			boolean enableSecondSpinnerboolean enableMillisecondSpinner,
			boolean enableDisplayButtons) {
		.setEnabled(enableYearSpinner);
		.setEnabled(enableMonthSpinner);
		.setEnabled(enableDaySpinner);
		.setEnabled(enableHourSpinner);
		.setEnabled(enableMinuteSpinner);
		.setEnabled(enableSecondSpinner);
		.setEnabled(enableMillisecondSpinner);
		enabledisplaybuttons(enableDaySpinner);
	}
	public void actionPerformed(ActionEvent e) {
		String classname = e.getSource().getClass().getName();
		if (classname.equals("javax.swing.JButton")) {
			JButton source = (JButtone.getSource();
			if (source.getText().length() == 0)
				return;
			if(!source.isEnabled())
			{
				return;
			}
			int newDay = Integer.parseInt(source.getText());
			.setValue(Integer.valueOf(newDay));
else if (classname.equals("javax.swing.JRadioButton")) {
			if (source.isSelected()) {
				switch (source.getText()) {
				case :
					changeSpinnerStatus(falsefalsefalsefalsefalse,
							falsefalsefalse);
					break;
				case :
					changeSpinnerStatus(falsefalsefalsefalsefalse,
							falsefalsefalse);
					break;
				case :
					changeSpinnerStatus(truefalsefalsefalsefalse,
							falsefalsefalse);
					break;
				case :
					changeSpinnerStatus(truetruefalsefalsefalsefalse,
							falsefalse);
					break;
				case :
					changeSpinnerStatus(truetruetruefalsefalsefalse,
							falsetrue);
					break;
				case :
					changeSpinnerStatus(truetruetruetruefalsefalse,
							falsetrue);
					break;
				case :
					changeSpinnerStatus(truetruetruetruetruefalse,
							falsetrue);
					break;
				case :
					changeSpinnerStatus(truetruetruetruetruetrue,
							falsetrue);
					break;
					changeSpinnerStatus(truetruetruetruetruetrue,
							truetrue);
					break;
				default:
					break;
				}
			}
		}
	}
	private void enabledisplaybuttons(boolean enable) {
		for (int i = 0; i < .i++) {
			for (int j = 0; j < [i].lengthj++) {
				[i][j].setEnabled(enable);
			}
		}
	}
	private int formatyeartocentury(int year) {
		if (year < 100) {
			return 0;
		}
		int century = year / 100;
		return (century) * 100;
	}
	private int formatyeartodecade(int year) {
		if (year < 10) {
			return 0;
		}
		int century = year / 10;
		return (century) * 10;
	}
	private void refreshtime() {
		if ( == null) {
		}
		if ( != null
else if ( != null
else if ( != null
else if ( != null
else if ( != null
else if ( != null
else if ( != null
else if ( != null
else if ( != null
		}
	}
		private static final long serialVersionUID = 1L;
		public void actionPerformed(ActionEvent e) {
			setVisible(false);
		}
	};
		private static final long serialVersionUID = 1L;
		public void actionPerformed(ActionEvent e) {
			 = Calendar.getInstance();
			setVisible(false);
		}
	};
	public void mouseEntered(MouseEvent e) {
	}
	public void mouseExited(MouseEvent e) {
	}
	public void mousePressed(MouseEvent e) {
	}
	public void mouseReleased(MouseEvent e) {
	}
		return new WindowAdapter() {
			public void windowClosing(final WindowEvent we) {
			}
		};
	}