<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSWT_JFace_Eclipse%2FCalendar</id>
		<title>Java/SWT JFace Eclipse/Calendar - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSWT_JFace_Eclipse%2FCalendar"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/Calendar&amp;action=history"/>
		<updated>2026-04-22T13:50:37Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/Calendar&amp;diff=5622&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/Calendar&amp;diff=5622&amp;oldid=prev"/>
				<updated>2010-06-01T05:54:29Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:54, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/Calendar&amp;diff=5621&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/Calendar&amp;diff=5621&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== SWT Calendar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
* this is a example for Kalendar dialog for swt dialog.&lt;br /&gt;
*&lt;br /&gt;
* author: yin_zhiguo&lt;br /&gt;
*&lt;br /&gt;
* email: yin_zhiguo@hotmail.ru&lt;br /&gt;
*&lt;br /&gt;
*/&lt;br /&gt;
import java.text.SimpleDateFormat;&lt;br /&gt;
import java.util.Calendar;&lt;br /&gt;
import java.util.Date;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.custom.CLabel;&lt;br /&gt;
import org.eclipse.swt.events.SelectionAdapter;&lt;br /&gt;
import org.eclipse.swt.events.SelectionEvent;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.layout.GridData;&lt;br /&gt;
import org.eclipse.swt.layout.GridLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Button;&lt;br /&gt;
import org.eclipse.swt.widgets.Dialog;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.graphics.Color;&lt;br /&gt;
import org.eclipse.swt.events.MouseListener;&lt;br /&gt;
import org.eclipse.swt.events.MouseEvent;&lt;br /&gt;
public class KalendarDialog extends Dialog implements MouseListener {&lt;br /&gt;
    private Display display = null;&lt;br /&gt;
    private Date nowDate = null; //current date&lt;br /&gt;
    private String selectedDate = null; //selected date&lt;br /&gt;
    private Shell shell = null;&lt;br /&gt;
    private GridLayout gridLayout = null;&lt;br /&gt;
    private GridData gridData = null;&lt;br /&gt;
    private CLabel sunday = null;&lt;br /&gt;
    private CLabel monday = null;&lt;br /&gt;
    private CLabel tuesday = null;&lt;br /&gt;
    private CLabel wednesday = null;&lt;br /&gt;
    private CLabel thursday = null;&lt;br /&gt;
    private CLabel friday = null;&lt;br /&gt;
    private CLabel saturday = null;&lt;br /&gt;
    private Button yearUp = null;&lt;br /&gt;
    private Button yearNext = null;&lt;br /&gt;
    private Button monthUp = null;&lt;br /&gt;
    private Button monthNext = null;&lt;br /&gt;
    private CLabel nowLabel = null;&lt;br /&gt;
    private CLabel[] days = new CLabel[42];&lt;br /&gt;
    public KalendarDialog(Shell parent, int style) {&lt;br /&gt;
        super(parent, style);&lt;br /&gt;
    }&lt;br /&gt;
    public KalendarDialog(Shell parent) {&lt;br /&gt;
        this(parent, 0);&lt;br /&gt;
    }&lt;br /&gt;
    private int getLastDayOfMonth(int year, int month) {&lt;br /&gt;
        if (month == 1 ||&lt;br /&gt;
            month == 3 ||&lt;br /&gt;
            month == 5 ||&lt;br /&gt;
            month == 7 ||&lt;br /&gt;
            month == 8 ||&lt;br /&gt;
            month == 10 ||&lt;br /&gt;
            month == 12) {&lt;br /&gt;
            return 31;&lt;br /&gt;
        }&lt;br /&gt;
        if (month == 4 ||&lt;br /&gt;
            month == 6 ||&lt;br /&gt;
            month == 9 ||&lt;br /&gt;
            month == 11) {&lt;br /&gt;
            return 30;&lt;br /&gt;
        }&lt;br /&gt;
        if (month == 2) {&lt;br /&gt;
            if (isLeapYear(year)) {&lt;br /&gt;
                return 29;&lt;br /&gt;
            } else {&lt;br /&gt;
                return 28;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return 0;&lt;br /&gt;
    }&lt;br /&gt;
    public boolean isLeapYear(int year) {&lt;br /&gt;
        return (year % 4 == 0 &amp;amp;&amp;amp; year % 100 != 0) || (year % 400 == 0);&lt;br /&gt;
    }&lt;br /&gt;
    private void moveTo(int type, int value) {&lt;br /&gt;
        Calendar now = Calendar.getInstance(); //get current Calendar object&lt;br /&gt;
        now.setTime(nowDate); //set current date&lt;br /&gt;
        now.add(type, value); //add to spec time.&lt;br /&gt;
        nowDate = new Date(now.getTimeInMillis()); //result&lt;br /&gt;
        SimpleDateFormat formatter = new &lt;br /&gt;
SimpleDateFormat(&amp;quot;yyyy-MM&amp;quot;);//format date&lt;br /&gt;
        nowLabel.setText(formatter.format(nowDate)); //set to label&lt;br /&gt;
        setDayForDisplay(now);&lt;br /&gt;
    }&lt;br /&gt;
    private void setDayForDisplay(Calendar now) {&lt;br /&gt;
        int currentDay = now.get(Calendar.DATE);&lt;br /&gt;
        now.add(Calendar.DAY_OF_MONTH, -(now.get(Calendar.DATE) - 1)); //&lt;br /&gt;
        int startIndex = now.get(Calendar.DAY_OF_WEEK) - 1; //&lt;br /&gt;
        int year = now.get(Calendar.YEAR); //&lt;br /&gt;
        int month = now.get(Calendar.MONTH) + 1; //&lt;br /&gt;
        int lastDay = this.getLastDayOfMonth(year, month); //&lt;br /&gt;
        int endIndex = startIndex + lastDay - 1; //&lt;br /&gt;
        int startday = 1;&lt;br /&gt;
        for (int i = 0; i &amp;lt; 42; i++) {&lt;br /&gt;
            Color temp = days[i].getBackground();&lt;br /&gt;
            if (temp.equals(display.getSystemColor(SWT.COLOR_BLUE))) {&lt;br /&gt;
                &lt;br /&gt;
days[i].setBackground(display.getSystemColor(SWT.COLOR_WHITE));&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        for (int i = 0; i &amp;lt; 42; i++) {&lt;br /&gt;
            if (i &amp;gt;= startIndex &amp;amp;&amp;amp; i &amp;lt;= endIndex) {&lt;br /&gt;
                days[i].setText(&amp;quot;&amp;quot; + startday);&lt;br /&gt;
                if (startday == currentDay) {&lt;br /&gt;
                    &lt;br /&gt;
days[i].setBackground(display.getSystemColor(SWT.COLOR_BLUE)); //&lt;br /&gt;
                }&lt;br /&gt;
                startday++;&lt;br /&gt;
            } else {&lt;br /&gt;
                days[i].setText(&amp;quot;&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public void previousYear() {&lt;br /&gt;
        moveTo(Calendar.YEAR, -1);&lt;br /&gt;
    }&lt;br /&gt;
    public void nextYear() {&lt;br /&gt;
        moveTo(Calendar.YEAR, 1);&lt;br /&gt;
    }&lt;br /&gt;
    public void nextMonth() {&lt;br /&gt;
        moveTo(Calendar.MONTH, 1);&lt;br /&gt;
    }&lt;br /&gt;
    public void previousMonth() {&lt;br /&gt;
        moveTo(Calendar.MONTH, -1);&lt;br /&gt;
    }&lt;br /&gt;
    public void mouseDoubleClick(MouseEvent e) {&lt;br /&gt;
        CLabel day = (CLabel) e.getSource();&lt;br /&gt;
        if(!day.getText().equals(&amp;quot;&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
            this.selectedDate = nowLabel.getText() + &amp;quot;-&amp;quot; + day.getText();&lt;br /&gt;
            this.shell.close();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public void mouseDown(MouseEvent e) {}&lt;br /&gt;
    public void mouseUp(MouseEvent e) {}&lt;br /&gt;
&lt;br /&gt;
    public Object open() {&lt;br /&gt;
        Shell parent = getParent();&lt;br /&gt;
        display = Display.getDefault();&lt;br /&gt;
        shell = new Shell(parent,  SWT.TITLE |SWT.PRIMARY_MODAL);&lt;br /&gt;
        shell.setText(&amp;quot;Calendar ver0.02&amp;quot;);&lt;br /&gt;
        shell.setSize(230, 220);&lt;br /&gt;
        gridLayout = new GridLayout();&lt;br /&gt;
        gridLayout.numColumns = 7;&lt;br /&gt;
        shell.setLayout(gridLayout);&lt;br /&gt;
        gridData = new GridData(GridData.FILL_HORIZONTAL);&lt;br /&gt;
        yearUp = new Button(shell, SWT.PUSH | SWT.FLAT);&lt;br /&gt;
        yearUp.setText(&amp;quot;&amp;lt;&amp;quot;);&lt;br /&gt;
        yearUp.setLayoutData(gridData);&lt;br /&gt;
        yearUp.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
            public void widgetSelected(SelectionEvent e) {&lt;br /&gt;
                previousYear();&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        gridData = new GridData(GridData.FILL_HORIZONTAL);&lt;br /&gt;
        monthUp = new Button(shell, SWT.PUSH | SWT.FLAT);&lt;br /&gt;
        monthUp.setText(&amp;quot;&amp;lt;&amp;lt;&amp;quot;);&lt;br /&gt;
        monthUp.setLayoutData(gridData);&lt;br /&gt;
        monthUp.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
            public void widgetSelected(SelectionEvent e) {&lt;br /&gt;
                previousMonth();&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        nowLabel = new CLabel(shell, SWT.CENTER | SWT.SHADOW_OUT);&lt;br /&gt;
        gridData = new GridData(GridData.FILL_HORIZONTAL);&lt;br /&gt;
        gridData.horizontalSpan = 3;&lt;br /&gt;
        nowLabel.setLayoutData(gridData);&lt;br /&gt;
        SimpleDateFormat formatter = new SimpleDateFormat(&amp;quot;yyyy-MM&amp;quot;);&lt;br /&gt;
        nowLabel.setText(formatter.format(new Date()));&lt;br /&gt;
        gridData = new GridData(GridData.FILL_HORIZONTAL);&lt;br /&gt;
        monthNext = new Button(shell, SWT.PUSH | SWT.FLAT);&lt;br /&gt;
        monthNext.setText(&amp;quot;&amp;gt;&amp;gt;&amp;quot;);&lt;br /&gt;
        monthNext.setLayoutData(gridData);&lt;br /&gt;
        monthNext.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
            public void widgetSelected(SelectionEvent e) {&lt;br /&gt;
                nextMonth();&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        gridData = new GridData(GridData.FILL_HORIZONTAL);&lt;br /&gt;
        yearNext = new Button(shell, SWT.PUSH | SWT.FLAT);&lt;br /&gt;
        yearNext.setText(&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
        yearNext.setLayoutData(gridData);&lt;br /&gt;
        yearNext.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
            public void widgetSelected(SelectionEvent e) {&lt;br /&gt;
                nextYear();&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        sunday = new CLabel(shell, SWT.CENTER | SWT.SHADOW_OUT);&lt;br /&gt;
        gridData = new GridData(GridData.FILL_HORIZONTAL |&lt;br /&gt;
                                GridData.FILL_VERTICAL);&lt;br /&gt;
        gridData.widthHint = 20;&lt;br /&gt;
        gridData.heightHint = 20;&lt;br /&gt;
        sunday.setLayoutData(gridData);&lt;br /&gt;
        sunday.setText(&amp;quot;Sun&amp;quot;);&lt;br /&gt;
        monday = new CLabel(shell, SWT.CENTER | SWT.SHADOW_OUT);&lt;br /&gt;
        gridData = new GridData(GridData.FILL_HORIZONTAL |&lt;br /&gt;
                                GridData.FILL_VERTICAL);&lt;br /&gt;
        gridData.widthHint = 20;&lt;br /&gt;
        gridData.heightHint = 20;&lt;br /&gt;
        monday.setLayoutData(gridData);&lt;br /&gt;
        monday.setText(&amp;quot;Mon&amp;quot;);&lt;br /&gt;
        tuesday = new CLabel(shell, SWT.CENTER | SWT.SHADOW_OUT);&lt;br /&gt;
        gridData = new GridData(GridData.FILL_HORIZONTAL |&lt;br /&gt;
                                GridData.FILL_VERTICAL);&lt;br /&gt;
        gridData.widthHint = 20;&lt;br /&gt;
        gridData.heightHint = 20;&lt;br /&gt;
        tuesday.setLayoutData(gridData);&lt;br /&gt;
        tuesday.setText(&amp;quot;Tue&amp;quot;);&lt;br /&gt;
        wednesday = new CLabel(shell, SWT.CENTER | SWT.SHADOW_OUT);&lt;br /&gt;
        gridData = new GridData(GridData.FILL_HORIZONTAL |&lt;br /&gt;
                                GridData.FILL_VERTICAL);&lt;br /&gt;
        gridData.widthHint = 20;&lt;br /&gt;
        gridData.heightHint = 20;&lt;br /&gt;
        wednesday.setLayoutData(gridData);&lt;br /&gt;
        wednesday.setText(&amp;quot;Wed&amp;quot;);&lt;br /&gt;
        thursday = new CLabel(shell, SWT.CENTER | SWT.SHADOW_OUT);&lt;br /&gt;
        gridData = new GridData(GridData.FILL_HORIZONTAL |&lt;br /&gt;
                                GridData.FILL_VERTICAL);&lt;br /&gt;
        gridData.widthHint = 20;&lt;br /&gt;
        gridData.heightHint = 20;&lt;br /&gt;
        thursday.setLayoutData(gridData);&lt;br /&gt;
        thursday.setText(&amp;quot;Thu&amp;quot;);&lt;br /&gt;
        friday = new CLabel(shell, SWT.CENTER | SWT.SHADOW_OUT);&lt;br /&gt;
        gridData = new GridData(GridData.FILL_HORIZONTAL |&lt;br /&gt;
                                GridData.FILL_VERTICAL);&lt;br /&gt;
        gridData.widthHint = 20;&lt;br /&gt;
        gridData.heightHint = 20;&lt;br /&gt;
        friday.setLayoutData(gridData);&lt;br /&gt;
        friday.setText(&amp;quot;Fri&amp;quot;);&lt;br /&gt;
        saturday = new CLabel(shell, SWT.CENTER | SWT.SHADOW_OUT);&lt;br /&gt;
        gridData = new GridData(GridData.FILL_HORIZONTAL |&lt;br /&gt;
                                GridData.FILL_VERTICAL);&lt;br /&gt;
        gridData.widthHint = 20;&lt;br /&gt;
        gridData.heightHint = 20;&lt;br /&gt;
        saturday.setLayoutData(gridData);&lt;br /&gt;
        saturday.setText(&amp;quot;Sat&amp;quot;);&lt;br /&gt;
        for (int i = 0; i &amp;lt; 42; i++) {&lt;br /&gt;
            days[i] = new CLabel(shell, SWT.FLAT | SWT.CENTER);&lt;br /&gt;
            gridData = new GridData(GridData.FILL_HORIZONTAL |&lt;br /&gt;
                                    GridData.FILL_VERTICAL);&lt;br /&gt;
            days[i].setLayoutData(gridData);&lt;br /&gt;
            days[i].setBackground(display.getSystemColor(SWT.COLOR_WHITE));&lt;br /&gt;
            days[i].addMouseListener(this);&lt;br /&gt;
            days[i].setToolTipText(&amp;quot;double click get current date.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        Calendar now = Calendar.getInstance(); //&lt;br /&gt;
        nowDate = new Date(now.getTimeInMillis());&lt;br /&gt;
        setDayForDisplay(now);&lt;br /&gt;
        shell.open();&lt;br /&gt;
        Display display = parent.getDisplay();&lt;br /&gt;
        while (!shell.isDisposed()) {&lt;br /&gt;
            if (!display.readAndDispatch()) {&lt;br /&gt;
                display.sleep();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return selectedDate;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * @param args&lt;br /&gt;
     */&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        Display display = new Display();&lt;br /&gt;
        final Shell shell = new Shell(display);&lt;br /&gt;
        shell.setText(&amp;quot;&amp;quot;);&lt;br /&gt;
        FillLayout fl = new FillLayout();&lt;br /&gt;
        shell.setLayout(fl);&lt;br /&gt;
        Button open = new Button(shell, SWT.PUSH);&lt;br /&gt;
        open.setText(&amp;quot;open&amp;quot;);&lt;br /&gt;
        open.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
            public void widgetSelected(SelectionEvent e) {&lt;br /&gt;
              KalendarDialog cd = new KalendarDialog(shell);&lt;br /&gt;
                System.out.println(cd.open());&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        shell.pack();&lt;br /&gt;
        shell.open();&lt;br /&gt;
        while (!shell.isDisposed()) {&lt;br /&gt;
            if (!display.readAndDispatch()) {&lt;br /&gt;
                display.sleep();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>