かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Java

Spring Bootを使ってHello world(Thymeleafの使用からwar化してAzureデプロイまで)

ちょっとSpring Bootを始めました。eclipseもMersになったことだし約4年ぶりくらいのeclipse生活です。JavaはもちろんJava 8!Stream使っていこうと思います。 さて、関係ない話はそれくらいにしてSpring Bootを始めたいと思います。 プロジェクトの作成 ま…

Andoridでタブを作る

タブを作るだけなのにめんどくさくない!? すごく参考になったサイト。 Fragmentによるタブのレイアウト | Fragmentによるタブ作成|サイト構築日記 タブでコンテンツ(Fragment) を切り替える | Fragmentによるタブ作成|サイト構築日記

Loaderを使ったデータの読み込み

最近のAndroidでのデータの読み込みはLoaderというものを使うらしいです。ちょっとやってみました。 オレオレ仕様にカスタムできるLoader カーソル前提のLoaderもあるんですが、自前のデータ読み込み処理を書けるAsyncTaskLoaderというのがあるのでそれを使…

BaseAdapterを継承しよう

ListViewにデータを表示するためにAdapterを使いますが、こいつを実装してみたいとおもいます。 とりあえず、前提として以下のようなクラスを画面に表示するとします。 package com.example.kazuki.myapplication.data; import android.provider.BaseColumns…

Androidでファイルの読み書きを行う

openFileOutputとopenFileInputで読み書きできる。getFilesDirで保存されてるファイルの入ってるフォルダが取れる。 public void onWrite(View v) { PrintWriter w = null; try { w = new PrintWriter(openFileOutput("out.txt", MODE_PRIVATE)); w.println(…

AndroidからAndroidWearのアプリを起動する

基本的には、これに準じます。 Android Wear → Androidの通信 - かずきのBlog@hatena 上記ページがAndroid Wear → AndroidなのをAndroid → Android WearにしてやればOK。 Android Studioでプロジェクトを作ってMobile側のアプリでメニューのSettingsをタップ…

Android Wearで通知を出したら即通知を表示する方法

いたってシンプル。通知を出したらアプリを閉じればいいのです。 アクティビティあたりで以下のような雰囲気のコードを書けばOK. Notification n = ...組み立て処理...; NotificationManager nm = (NotificationManager) this.getSystemService(Context.NOTI…

Android Wearで通知に丸いボタンをつける

Android Wearらしいあの丸いボタンのつけ方です。 NotificationのextendメソッドにNotification.WearableExtenderを突っ込みます。このWearableExtenderに対して、addActionメソッドでNotification.Actionを渡します。Notification.Actionには、アイコンと、…

Android WearのWearableListViewで、中央の項目以外を選択出来ないように見せる

めんどくさかった…! 以下の記事のソースをもとに作成します。 Android WearのWearableListViewの最小の使い方 - かずきのBlog@hatena WearableListView.Itemを実装したクラスを作成 色々あるけど、onScaleUpStartで中央にあるときの表示を制御して、onScale…

Android WearのWearableListViewの最小の使い方

ぐぐっても、あんまりWearableListViewの使い方が出てこなくて難儀しました。NotificationsのサンプルにWearableListViewの使い方はありましたが、色々余計な処理が入ってたので、備忘録として、最小限の使い方をメモっておきます。 プロジェクトの作成とWea…

ActivityからLayoutInflaterを作る

レイアウトファイルからViewを作ってくれるLayoutInflaterの作り方です。 LayoutInflater li = LayoutInflater.from(context); コンストラクタでActivityでも受け取っておいてActivityから作るのが一般的かな?作ったらあとは使えばOK View v = li.inflate(R…

Android Wear → Androidの通信

こちらのページを参考に、メッセージ送信の部分だけを抜き出して作ってみました。 Android Wearable Message API example (adsbygoogle = window.adsbygoogle || []).push({}); Android, Android Wear共通 両方のAndroidManifest.xmlのapplicationタグの下に…

GridViewPager + CardFragmentを使ってAndroid WearらしいUIを作る

Android Wearを触る機会を得たので少しアプリの作り方でも…。以下のページが超参考になります。 Y.A.M の 雑記帳: Android Wear アプリ開発 その1 Android - Wear用ViewのGridViewPagerを使う - Qiita Androidも、Androidで動くJavaのような言語も初心者です…

AlertDialogで背景のグレーになっている箇所をタップすると閉じるようにしたい

AlertDialog.Builderでダイアログを組み立てたあとにcreate()で取得したAlertDialogに対してsetCanceledOnTouchOutside(true)でいけるみたい。 package com.example.helloworld; import android.app.Activity; import android.app.AlertDialog; import andro…

JVMの起動オプションでロケールを変える

たとえば日本にしたかったら以下のオプションをつければOK -Duser.language=ja -Duser.country=JPGlassFishの場合は、管理コンソールでJVMの起動オプションを指定できるのでそこに追加する。

Windows 8のHyper-V上にCentOS 6.4+GlassFish+Apache+PostgreSQL

CentOSのインストール CentOS6.4だと凄い楽。最初からこのサイト見ておけばよかった・・・。 Windows 8 メモ / CentOS 6.4をHyper-Vにインストールする 続いて、GlassFishを入れるときに参考にしたサイト CentOS6.2にGlassFish3.1.2.2をインストールする Apa…

PrimeFacesのp:ajaxを複合コンポーネントに入れたい

JSF2.0になって、簡単なコンポーネントなら自作できるようになったけど、情報が少なくてはまると辛い。PrimeFacesのp:ajaxのlistener属性にcc:attributeから指定したメソッドを設定しようとするとリンク先のようなエラーがでる。 http://stackoverflow.com/q…

PrimeFacesのtreeコントロールで遅延読み込み

最近遅延読み込みがマイブームです。PrimeFacesのtreeコントロールは、遅延読み込み機能とかいうのは明示的にあったりはしないんですよね。dataTableの方にはあるのに。ということで、treeのほうはTreeNodeを自前実装してgetChildCountやisLeafやgetChildren…

PrimeFacesでJavaScriptと連携

JavaScriptからRPCみたいなことをしたあげく、サーバーサイドのコンポーネントツリーの変更を画面に反映したいとき〜!に使えます。 p:remoteCommand PrimeFacesには、remoteCommandという部品があって、こいつを使うと、タグを書くだけで管理ビーンのメソッ…

PrimefacesのdataTableで遅延読み込み

RichFacesからPrimeFacesに浮気中。こいつも遅延読み込みできるのね。 表示するデータは、以下の単純なクラス。 package com.mycompany.richtest; import java.io.Serializable; public class Person implements Serializable { private int id; private Str…

RichFaces4.xのDataTableでページングしつつ遅延読み込み

遅延読み込みしたいですよね?10000件とか下手したら無限とも言えるデータを全部メモリに抱え込んでとか、特にサーバーサイドにステートを持つのがデフォのJSFでやったら死んでしまいます。RichFacesには、そんな要望に応えるためのクラスがあります!! 個…

RichFaces4.xのTreeコントロールで選択中の要素を取得する

とりあえずメモメモ。 xhtmlでのポイントは、ajaxでやりたいからselectionTypeをajaxにしているところと、選択結果をレンダリングするためのrenderをoutpanelにしているところです。 outpanelは、ただのoutputTextです。その他の、toggleTypeをajaxにしたりt…

Hibernate4 + PostgreSQLでマルチテナントしてみよう

PostgreSQLのスキーマをうまいこと使うとマルチテナントのアプリが作れそうだという雰囲気でした。アプリでガリガリSQL書くのは嫌いな人なのでJavaならJPA2.0使いたい。SQL書かないと嫌な感じになるところはSQLでやるので仕方ないとして簡単なものは簡単に済…

JAX-RSのMessageBodyWriterを使って出力をカスタマイズ

JAX-RSって出力を柔軟に差し替えれるんですね。知りませんでした。これは捗る。やりかたは簡単。MessageBodyWriterインターフェースを実装して@Providerアノテーションをつけるだけ。 package okazuki.mavenproject7; import java.io.IOException; import ja…

ThymeleafのHello world

HTMLとかXHTMLとかHTML5とかのテンプレートエンジンのThymeleafいい感じっぽいのでHello worldしてみます。 NetBeansでMavenのJavaアプリケーションのプロジェクトを作成して依存性の追加でthymeleafで検索するとorg.thymeleafが出てくるので、それを追加し…

RichFaces 4.xのtreeコンポーネントで遅延読み込み

でっかいツリーを表示したいが、最初に全部データをクライアントに持っていくのは忍びない。というか普通にある程度の規模以上になると性能問題になりますよね。 そんなときのために、表示するのに必要最低限のデータだけをとっておいて、あとは必要に応じて…

GlassFishのeclipselink 2.4.0にアップグレードするときの手順

知らないとはまる。 http://computingat40s.wordpress.com/installing-glassfish-3-1-2-2/

JAXBでJSON出力したい

eclipselinkの2.4.0を入れる jsonに出力したいクラスのあるパッケージにjaxb.propertiesを置く javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory JAXBContextを生成するときにJAXBContextProperties.MEDIA_TYPEにapplicatio…

RichFaces 4.2.xのtreeコンポーネントの基本的な使い方

毎回調べるのもあれなので個人的なメモ。 pom.xmlにrichfacesを追加 <dependency> <groupId>org.richfaces.ui</groupId> <artifactId>richfaces-components-ui</artifactId> <version>${richfaces.version}</version> </dependency> <dependency> <groupId>org.richfaces.core</groupId> <artifactId>richfaces-core-impl</artifactId> <version>${…</version></dependency>

Java EE 6の単体テストでClassFormatErrorが出る

Java EEのクラスに依存してるクラスを単体テストしようとして以下のエラーに悩まされました。 java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file [Java EEの中のクラスの名前]ぐぐってみたら解決…