/*
 * Copyright © 2016 Toru Takahahshi. All rights reserved.
 */
package calendar;

import com.sun.javafx.scene.control.skin.DatePickerSkin;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.TextStyle;
import java.util.Locale;
import java.util.Map;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.DateCell;
import javafx.scene.control.DatePicker;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

/**
 * カレンダーを表示するJavaFXアプリケーションクラス。
 * 
 */
public class Calendar extends Application {
    private Stage stage;
    
    @Override
    public void start(Stage primaryStage) {
        // コマンドライン引数の解析
        stage = primaryStage;
        parseParameters();

        DatePicker datePicker = new DatePicker(LocalDate.now());
        datePicker.setDayCellFactory(picker -> new DateCell() {
            @Override
            public void updateItem(LocalDate item, boolean empty) {
                super.updateItem(item, empty);
                System.out.println("styleClass=" + this.getStyleClass());
                getStyleClass().add(DayOfWeek.from(item).getDisplayName(TextStyle.FULL, Locale.US).toLowerCase());
            }
        });
        Node calendar = new DatePickerSkin(datePicker).getPopupContent();
        
        StackPane root = new StackPane();
        root.getChildren().add(calendar);
        
        Scene scene = new Scene(root);
        scene.getStylesheets().add(getClass().getResource("Calendar.css").toExternalForm());
        
        primaryStage.initStyle(StageStyle.TRANSPARENT);
        primaryStage.setTitle("Calendar");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * コマンドラインオプション（名前付き値）を解析し、表示位置・大きさの指定があれば反映する。
     */
    private void parseParameters() {
        Map<String, String> params = getParameters().getNamed();
        Platform.runLater(() -> {
            stage.setX(Double.valueOf(params.getOrDefault("x", "0.0")));
            stage.setY(Double.valueOf(params.getOrDefault("y", "0.0")));
            stage.setWidth(Double.valueOf(params.getOrDefault("width", "144")));
            stage.setHeight(Double.valueOf(params.getOrDefault("height", "144")));
        });
    }
    
    /**
     * @param args コマンドライン引数
     */
    public static void main(String[] args) {
        System.out.println("Calendar program start");
        launch(args);
    }
    
}

@@ -930,24 +930,77 @@
 te.now());%0D%0A
+        // %E6%97%A5%E4%BB%98%E3%82%BB%E3%83%AB%E3%81%AE%E3%83%95%E3%82%A1%E3%82%AF%E3%83%88%E3%83%AA%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%80%81%E6%9B%9C%E6%97%A5%E5%90%8D%EF%BC%88%E8%8B%B1%E5%90%8D%EF%BC%89%E3%82%92%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%9F%E6%97%A5%E4%BB%98%E3%82%92%E7%94%9F%E6%88%90%0D%0A
         date
@@ -1196,83 +1196,8 @@
 );%0D%0A
-                System.out.println(%22styleClass=%22 + this.getStyleClass());%0D%0A
     

クリーンアップ（プリント文削除、コメント追加）