SQLの窓

2013年06月13日


HashMap の Key と Value をそれぞれソートして、最終的には 配列に変換して テンプレートを使って for ループを簡単に記述する




『囲む』というテンプレートは、『行選択』から実行します。この際、『ソース』メニューからでないと、出来上がったコードのインデントがうまくいかないので注意して下さい。



定義済みの『配列』を自動的に使って for ループを作成してくれます。



for 行の 3つの変数 i は、選択中に変更すると全て内容が変わります。
Map<String,String> hm = new HashMap<String,String>();

hm.put("a", "009");
hm.put("b", "007");
hm.put("c", "008");

// キーのソート
List<String> keys = new ArrayList<String>(hm.keySet());
Collections.sort(keys);
String[] arrkeys = keys.toArray(new String[0]);
for (int i = 0; i < arrkeys.length; i++) {
	System.out.println("key:" + arrkeys[i]);
	System.out.println("hm.get(key):" + hm.get(arrkeys[i]));
}

// 値のソート
List<String> values = new ArrayList<String>(hm.values());
Collections.sort(values);
String[] arr = values.toArray(new String[0]);
for (int i = 0; i < arr.length; i++) {
	System.out.println("value:" + arr[i]);
}




posted by lightbox at 2013-06-13 21:37 | Android | このブログの読者になる | 更新情報をチェックする

ADT Eclipse : sysout テンプレートの変更

Android で、Log クラスを使用せずとも System.out.println が使えるので、テンプレートにある sysout を変更しておくといいと思います。( もちろん通常使う場合でも、変更しておいたほうが得だと思います )

変更したテンプレートや追加したテンプレートの情報は、".metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.jdt.ui.prefs" に更新されるので、他のワークスペースへはコピーするだけで利用可能になります。
System.out.println("${word_selection}:"+${word_selection}${});${cursor}
変更場所



使い方

対象となる変数をタイプして、選択して CTRL+SPACE で候補ウインドウを開いて一番下までスクロールして sysout を選択します。







posted by lightbox at 2013-06-13 20:21 | Android | このブログの読者になる | 更新情報をチェックする

Android(ADT Eclipse) 用 ボタンイベントテンプレート

Android の一般的なボタンのイベントコードを作成します
Button ${word_selection} = (Button) findViewById(R.id);
${word_selection}.setOnClickListener(new View.OnClickListener() {
	public void onClick(View v) {
		android.util.Log.i("i","ボタンイベント:${word_selection}");
	}
});


ボタン作成



追加したテンプレート



変数のみタイプして選択



CTRL+SPACE 後、一番下までスクロール



選択して、残りは id 設定のみ



id 選択



完成





posted by lightbox at 2013-06-13 01:28 | Android | このブログの読者になる | 更新情報をチェックする

2013年06月11日


jQuery と フォームチェックと 未入力チェック( String.trim )

今は、Native で、String.trim はあるはずですが、一応。
( 漢字スペースも対象です )
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
if(!String.prototype.trim) {
	String.prototype.trim = function () {
		return this.replace(/^\s+|\s+$/g,'');
	};
}

$(function() {

	$('#frm').submit(function() {

		if ( $("#name").val().trim() == "" ) {
			alert("未入力です");
			$("#name").focus();
			$("#name").select();
			return false;
		}

		if ( $("#name").val() == "123456" ) {
			alert("エラー時選択テスト");
			$("#name").focus();
			$("#name").select();
			return false;
		}

	});

});
</script>
<form
	id="frm"
	method="post"
>
<div id="input_box">
	名前<br />
	<input type="text" name="name" id="name" value="" /><br />
	コメント<br />
	<textarea name="comment" id="comment"></textarea><br />
	<input type="submit" name="send" value="投稿" /><br />
</div>
</form>


関連する情報

String.prototype.trim()



タグ:jquery TRIM
posted by lightbox at 2013-06-11 23:03 | jQuery | このブログの読者になる | 更新情報をチェックする

document.createElement("a") で新しいウインドウ(タブ)を開く


いまどきはタブで開くと思いますが、昔は click() で開いたのは IE だけだったような記憶があります。Google Chrome と Firefox と IE で試しましたが、いずれも動作しました。

ただ、Google Chrome だけが、appendChild しなくても実行できました( どこにも属さない状態で動く )
<script type="text/javascript">
function openLink(url) {
	var obj = document.createElement("a");
	obj.href = url;
	obj.target = "_target";
	document.body.appendChild(obj)
	obj.click();
	document.body.removeChild(obj)
}
</script>
<input type="button" value="Open Link" onclick='openLink("http://winofsql.jp/open_link.htm");'>

開かれたほうでは、window.open 時と同じように、IE の場合のみ window.close() だけでは、確認ダイアログが表示されるので以下の『閉じる2』のようにする必要があります
<!DOCTYPE html>
<html>
<head>
<meta charset="shift_jis" />
<title>画面遷移</title>
<script type="text/javascript">
</script>
</head>
<body>
<input type="button" value="閉じる1" onclick='window.close();' />
<input type="button" value="閉じる2" onclick='(window.open("","_self")).close();' />
</body>
</html>




posted by lightbox at 2013-06-11 21:04 | JavaScript | このブログの読者になる | 更新情報をチェックする

2013年06月10日


Win8 ストアアプリで、『選択肢を応答するダイアログ』を簡単に使うための MessageBox クラス

MessageBox に馴染んでいる人も多いと思うので、とりあえず使うために。( MessageDialog を使うと結構面倒なので )



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.UI.Popups;

namespace LBOX_Http
{
	class MessageBox
	{
		// **********************************************************
		// 選択肢を応答するダイアログ
		// **********************************************************
		public static async Task<bool> ShowAsync(string title, string message, UICommandInvokedHandler handler)
		{
			var messageDialog = new MessageDialog(message, title);

			// イベントを定義する
			var OK_Handler = new UICommandInvokedHandler(handler);
			var OK_Command = new UICommand("YES", OK_Handler) { Id = 0 };
			messageDialog.Commands.Add(OK_Command);

			// イベントを定義する
			var CANCEL_Handler = new UICommandInvokedHandler(handler);
			var CANCEL_Command = new UICommand("NO", CANCEL_Handler) { Id = 1 };
			messageDialog.Commands.Add(CANCEL_Command);

			// Enter キーで反応するデフォルトボタン
			messageDialog.DefaultCommandIndex = 1;
			// ESC キーで反応するキャンセルボタン
			messageDialog.CancelCommandIndex = 1;

			await messageDialog.ShowAsync();

			return true;

		}

		// **********************************************************
		// 確認をするだけのダイアログ
		// **********************************************************
		public static async Task<bool> ShowAsync(string title, string message)
		{
			var messageDialog = new MessageDialog(message, title);

			// OK ボタンのイベントを定義する
			var OK_Command = new UICommand("OK", (command) => { });
			messageDialog.Commands.Add(OK_Command);

			// Enter キーで反応するデフォルトボタン
			messageDialog.DefaultCommandIndex = 0;
			// ESC キーで反応するキャンセルボタン
			messageDialog.CancelCommandIndex = 0;

			await messageDialog.ShowAsync();

			return true;

		}

	}
}



▼ 使用方法
// *************************************************
// 保存ボタン
// *************************************************
private async void SaveButton_Click(object sender, RoutedEventArgs e)
{
	if (MyCode.Text.Trim() == "")
	{
		await MessageBox.ShowAsync("入力確認","データが入力されていません");
		return;
	}

	await MessageBox.ShowAsync("処理確認","データを保存しますか?", (IUICommand command) =>
	{
		// ボタンの応答
		if (command.Id.Equals(0))
		{
			Debug.WriteLine("YES");
		}
		if (command.Id.Equals(1))
		{
			Debug.WriteLine("NO");
		}
	});
}

ラムダ式で使用しています



posted by lightbox at 2013-06-10 20:00 | Win8 ストアアプリ | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり