Can’t connect to any repository:

Posted by muchag | Eclipse,Library & PlugIn & AddIn | 2015-12-03 (木) 12:37:39

EGit + Bitbucket でプッシュしようとしたときのエラー。

【環境】
[Eclipse] 4.4.1(LUNA SP1)
[EGit] 3.7.1.201504261725-r
[OS] Windows7 SP1 64bit
状況

EGit プラグインを入れてローカルリポジトリを作成し
後から Bitbucket へ登録してリモートリポジトリを設定した。

  1. プロジェクトのコンテキストメニュー
  2. [チーム]-[リモート]-[プッシュ]
  3. [宛先 Git リポジトリー]
  4. [完了]

初回設定時も [構成済みのリモート・リポジトリー] 利用時も同様のエラーが出た。

Can’t connect to any repository: ssh://git@bitbucket.org/username/projectname.git (Nothing to Push。)
原因

プッシュ仕様設定を行っていなかった。

解決策
  1. プロジェクトのコンテキストメニュー
  2. [チーム]-[リモート]-[プッシュ]
  3. [宛先 Git リポジトリー]
  4. [次へ]
  5. [プッシュ仕様設定]
    1. [作成/更新仕様の追加]
      1. [ソース参照]-[refs/heads/master(当該ブランチ?)
      2. [宛先参照] は、ソース参照を設定することで自動的に設定される
      3. [仕様の追加] をクリックすると、[プッシュの仕様に追加される
    2. [‘origin’ 構成に仕様を保管] にチェックを入れると、次からは [宛先 Git リポジトリー] で [完了] するだけでプッシュできる
  6. [次へ]
  7. [プッシュ確認]
  8. [完了]
参考サイト

メモ:ubuntu14.10でGit

別ルート対処法

プロジェクトコンテキストメニューではなく、Git リポジトリービューからプッシュする。

  1. Git リポジトリービュー内の当該プロジェクトを開く
  2. [リモート] を開く
  3. 当該リモート名(リモートリポジトリ設定時に入力した名称。デフォルトは origin)を開く
  4. 同じ URI が2行並んでいるので、プッシュ用(赤い↑)を右クリック
  5. [プッシュの構成]
  6. [保管およびプッシュ]
参考サイト

じっとしてないEGit:プッシュしたい内容があるのに、Can’t connect to any repository: XXXXXXX (Nothing to push.) と出た時の対応

Eclipse,Library & PlugIn & AddIn | 2015-12-03 (木) 12:37:39 |

jsTree

Posted by muchag | jQuery,Library & PlugIn & AddIn | 2015-10-28 (水) 14:21:48

ひさびさにツリーメニューを実装しようと思って
Treeview を設置してみたけど、動かない。。。
更新も止まっているようだし、他のプラグインを探してみたら良さそうなのがあった。 😯
採用するかどうかはわからないけど、使い方をメモ。

コード中に出てくる vakata って何かと思ってたけど
作者の HN でした。
GitHub:vakata

【環境】
jsTree:3.2.1
jQuery:1.11.3
DL

公式 の Download ボタンより DL。
2015-10-28 現在
vakata-jstree-3.2.1-0-g8ea6ce7.zip

ファイル配置
  1. DL したファイルを解凍
  2. 中身の dist ディレクトリを js ディレクトリへ配置
  3. 配置した dist ディレクトリを jstree にリネーム

中には CSS ファイルや画像ファイルもあるので、本来なら分けるべきかもしれないけど、ここで完結させる。
なぜなら、テーマ名を設定するだけで、テーマの変更をできるようになっているから。
でも、その割には CSS ファイルへの参照はちゃんと記述しないとダメ。。。

利用
前提
  1. <link rel="stylesheet" type="text/css" href="./css/jstree.min.css">
  2. <script type="text/javascript" src="./js/jquery-1.11.3.min.js"></script>
  3. <script type="text/javascript" src="./js/jstree.min.js"></script>
リストタグ
  1. <script>
  2. $(document).ready(function(){
  3.       $('#tree').jstree();
  4. });
  5. </script>
  6.  
  7. <div id="tree">
  8. <ul>
  9.     <li>階層1
  10.     <ul>
  11.         <li>階層2</li>
  12.     </ul>
  13.     </li>
  14. </ul>
  15. </div>

注意
階層リストの場合、書式に注意。
下記タイプA、タイプB、どちらでもリスト表示をできるけど
jsTree は、タイプB で記述しないと認識しない。

  1. // タイプA
  2. <ul>
  3.     <li>階層1</li>
  4.     <ul>
  5.         <li>階層2</li>
  6.     </ul>
  7. </ul>
  8.  
  9. // タイプB
  10. <ul>
  11.     <li>階層1
  12.     <ul>
  13.         <li>階層2</li>
  14.     </ul>
  15.     </li>
  16. </ul>

私は今までタイプAで書くのが普通だったんだけど
もしかして、正式はタイプBなのかしら。。。汗

XML データ
JSON データ
注意

ツリー項目に a タグを付けてリンクを貼ろうとしたけど
どうも表示が変になる。

  1. <li>Content <a href="#">Edit</a></li>

としても、Edit だけが表示される。

dnd の研究にノードオブジェクトの中身を覗いてみたけど
jsTree が表示用に a タグを利用しているようで
リンクを貼りたければ、click イベントで制御するしかなさそう。

設定書式

プラグインも含めた設定の例。

  1. $(document).ready(function(){
  2.     $('#jstree').jstree({
  3.         // 基本設定
  4.         'core' : {
  5.             'themes' : {
  6.                 'variant' : 'large'
  7.             }
  8.         },
  9.         // プラグイン毎の設定
  10.         'checkbox' : {
  11.             'keep_selected_style' : false
  12.         },
  13.         // 利用するプラグインを列挙?
  14.         'plugins' : [ 'wholerow', 'checkbox' ]
  15.     });
  16. });
  17. </script>

こんな感じ。
他のプラグインと同じ~。 😯

‘plugins’ で、On にしたいプラグインを列挙し
プラグイン毎の設定で、各プラグインの設定変更をする。

設定変更がなければ、プラグイン各個の設定は記述しなくて良い。

core(基本設定)
themes
  1. $(document).ready(function(){
  2.     $('#jstree').jstree({
  3.         "core" : {
  4.             'themes' : {
  5.                 // 独自テーマを利用したい場合は、当該ディレクトリ名文字列を指定?
  6.                 'name' : false,
  7.                 // 独自テーマを利用したくて、.js ファイルと別階層に置きたい場合に true を指定?
  8.                 'url' : false,
  9.                 // url を true にしたときだけ有効。テーマの場所を記述?
  10.                 'dir' : false,
  11.                 // ツリー罫線を表示するか否か
  12.                 'dots' : true,
  13.                 // ノード(フォルダ)アイコンを表示するか否か
  14.                 'icons' : true,
  15.                 // 1行おきに背景色を付けて縞々にするか否か
  16.                 'stripes' : false,
  17.                 // CSS クラス('large', 'small', 'responsive')があるっぽい
  18.                 // false でデフォルトなんだろうけど、どれかわからない
  19.                 'variant' : false,
  20.                 // 小さい画面の時は ture って書いてある気がするけど、true にしてみても、違いがわからない
  21.                 'responsive' : false,
  22.             }
  23.         }
  24.     });
  25. });
check_callback

ユーザーによるツリーの変更を許可するか否か。
デフォルトは false。

  1. $(document).ready(function(){
  2.     $('#jstree').jstree({
  3.         "core" : {
  4.             'check_callback' : false,
  5.         }
  6.     });
  7. });
関数指定

true か false か、状況によって変化させるために
関数を指定することができる。

  1. $(document).ready(function(){
  2.     $('#jstree').jstree({
  3.         "core" : {
  4.             'check_callback' : function (operation, node, node_parent, node_position, more) {
  5.                 if ((operation === 'move_node' || operation === 'copy_node') && (node_parent.id === '#')) return false;
  6.             },
  7.         }
  8.     });
  9. });
jstree.js
  1. * __Examples__
  2. *
  3. *   $('#tree').jstree({
  4. *       'core' : {
  5. *           'check_callback' : function (operation, node, node_parent, node_position, more) {
  6. *               // operation can be 'create_node', 'rename_node', 'delete_node', 'move_node' or 'copy_node'
  7. *               // in case of 'rename_node' node_position is filled with the new node name
  8. *               return operation === 'rename_node' ? true : false;
  9. *           }
  10. *       }
  11. *   });
引数
jstree.js
  1. * @name check(chk, obj, par, pos)
  2. * @param  {String} chk the operation to check, can be "create_node", "rename_node", "delete_node", "copy_node" or "move_node"
  3. * @param  {mixed} obj the node
  4. * @param  {mixed} par the parent
  5. * @param  {mixed} pos the position to insert at, or if "rename_node" - the new name
  6. * @param  {mixed} more some various additional information, for example if a "move_node" operations is triggered by DND this will be the hovered node
  7. * @return {Boolean}
  • 引数
    • operation(String)
      • ソース説明の通り。5種
    • node(Object)
      • オブジェクト
    • node_parent(Object)
      • 移動先の親オブジェクト
    • node_position(integer)
    • more(Object)
      • core
      • is_foreign
      • is_multi
      • origin(Object)
        • 恐らく移動前のツリー全体の情報が格納されている
        • 参考記事の more.ref.data.type の使い方不明
よくわからないオブジェクト連鎖

stackoverflow:JsTree v3.0 drag and drop plugin. Reference target node upon dropping
こちらに書かれている下記コードにおける
more.ref.data.type
が、何をどう辿っているのか不明。

  1. if (more.ref.data.type === "folder") {
  2.     return true;
  3. }
  1. console.log(more.ref.data.type);
TypeError: more.ref is undefined
タイミング

チェックは常に行っているらしく
上記のように指定することで、ドラッグ中に
root 直下へは、移動先候補 ▶ のマークが出なくなった。

data(Ajax)

こちらを設定しておくことで、ページ読み込み時に
そちらを読みにいく。

  1. $(document).ready(function(){
  2.     $('#jstree').jstree({
  3.         "core" : {
  4.             'data' : {
  5.                 'url' : function (node){
  6.                             if (node.id === '#') {
  7.                         return "http://localhost:9000/getCourses/" ;
  8.                             }
  9.                             else
  10.                         return "http://localhost:9000/getCourses/" + node.id;
  11.                             }
  12.                         },
  13.                 'data' : function (node) {
  14.                             return { 'id' : node.id };
  15.                         }
  16.             }
  17.         }
  18.     });
  19. });

こちらは下記サイトのコードをいただいてきたが
あちこちでこのような書き方がされている。
answer uxu:jstree html and json

どうもデフォルトでは、node.id がルートの # になっていて
ルートの情報を取得して表示。
後はノードを選択する度に、そのノードの ID を送り、その配下の情報を取得し表示。
という仕様になっているっぽい。

変更の通信ではない?

プラグイン

jsTree という名前の jQuery プラグインに実装されている
プラグイン(追加機能)。

一覧

公式:Plugins?

  1. 'plugins' : [
  2.     'checkbox',
  3.     'contextmenu',
  4.     'dnd',
  5.     'massload',
  6.     'search',
  7.     'sort',
  8.     'state',
  9.     'types',
  10.     'unique',
  11.     'wholerow',
  12.     'changed',
  13.     'conditionalselect'
  14. ]
checkbox
設定
  1. $(document).ready(function(){
  2.     $('#jstree').jstree({
  3.         'checkbox' : {
  4.             // 選択された行に背景色をつけるか否か
  5.             'keep_selected_style' : true
  6.         }
  7.         'plugins' : [ 'checkbox' ]
  8.     });
  9. });
contextmenu

contextmenu

dnd(Drag and Drop)

dnd(Drag and Drop)

search
設定

JSFIDDLE:http://jsfiddle.net/53cvtbv9/1/

  1. $(document).ready(function(){
  2.     $('#jstree').jstree({
  3.         'plugins' : [ 'search' ]
  4.     });
  5. });
  1. <div><?php echo __('Search : '); ?><input type="text" class="search-input" /></div>
  2.  
  3. <script>
  4. $(document).ready(function() {
  5.     $(".search-input").keyup(function() {
  6.         var searchString = $(this).val();
  7.         $(selectorTree).jstree('search', searchString);
  8.     });
  9. });
  10. <script>
unique

単一ノード直下の重複チェック。

設定
  1. $(document).ready(function(){
  2.     $('#jstree').jstree({
  3.         'unique' : {
  4.             // 大文字小文字の区別をするか否か
  5.             'case_sensitive' : false,
  6.             // 重複した場合の名称を hoge -> hoge (2) のように変更する
  7.             'duplicate' : false,
  8.         }
  9.         'plugins' : [ 'unique' ]
  10.     });
  11. });
イベントリスナー

イベントリスナー

メソッド
書式

複数あるっぽい。

  1. $('#jstree').jstree('select_all'); // うまくいった
  2. $('#jstree').select_all(true); // 未試行
一覧
  1. // 選択系
  2. $('#jstree').jstree('select_all'); // 全選択
  3. $('#jstree').jstree('check_all'); // 全選択
  4. $('#jstree').jstree('deselect_all'); // 全選択解除
  5.  
  6. $('#jstree').jstree('select_node', node.id); // 個別選択
  7. $('#jstree').jstree('deselect_node', node.id); // 個別選択解除
  8.  
  9. // オープン系
  10. $('#jstree').jstree('open_all'); // 全開く
  11. $('#jstree').jstree('close_all'); // 全閉じる
  12. // 後はパターンで考えてましょう。。。
本体解析
this

全部でないかもしれないけど、本体コード中に現れる this は
カスタマイズの際には $(selectorTree).jstree(true) に読みかえればよいかも?

Loading

本体の Ajax 通信を利用せずに、独自の通信ロジックにしたら
Loading 表示のやり方がわからなかった。

独自にした理由

どこの例を見ても、’data’ : のところが、{ “id” : node.id } となっていて、それ以外のデータの渡し方がわからなかったから
当該ノードだけを更新するわけでなくて、ツリー全体を更新しているから

本体解析

うまい例を見つけられなかったので、本体を見てみた。

jstree.js
  1. refresh : function (skip_loading, forget_state) {
  2.  
  3.     __snip__
  4.  
  5.     if(!skip_loading) {
  6.         this.element.html("<"+"ul class='"+c+"' role='group'><"+"li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><i class='jstree-icon jstree-ocl'></i><"+"a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>" + this.get_string("Loading ...") + "</a></li></ul>");
  7.         this.element.attr('aria-activedescendant','j'+this._id+'_loading');
  8.     }
  9.  
  10.     __snip__
  11. }

どうやら、ここで表示しているらしい。

本体の HTML を一旦 Loading 用に書き換えちゃってるのね~。

refresh

それで、いくつか refresh メソッドを試してみたけど表示されなかった。

  1. $(selectorTree).jstree(true).trigger('refresh');
  2.  
  3. // create で試したけど、当該ノードが消えただけ
  4. // refresh をかけたわけだから、create に前に戻るので当たり前
  5. $(selectorTree).jstree(true).refresh();
Loading 表示

上記の HTML の内、わからないところとか、不必要と思われる箇所を少しだけ除いて
無理くり下記のようにしてみたら、ツリー全体を Loading 画像で置き換えることができた。

  1. var htmlLoading = '<ul class="jstree-container-ul jstree-children" role="group">'
  2. + '<li class="jstree-initial-node jstree-loading jstree-leaf jstree-last" role="tree-item">'
  3. + '<i class="jstree-icon jstree-ocl"></i>'
  4. + '<a class="jstree-anchor" href="#">'
  5. + '<i class="jstree-icon jstree-themeicon-hidden"></i>Loading ...'
  6. + '</a>'
  7. + '</li>'
  8. + '</ul>';
  9.  
  10. $('#jstree').jstree(true).element.html(htmlLoading);
refresh

そのまんま。
読み込んだときの状態に戻す。

  1. $(selectorTree).jstree(true).refresh();
  2.  
  3. $(selectorTree).jstree(true).refresh(false, false);

第1引数:skip_loading。Loading 表示をスキップするか否か
第2引数:forget_state。現状を記憶するか否か

参考サイト

株式会社アンフィニ 技術ブログ:【javascript】jQueryプラグイン jsTreeの紹介
海外製ライブラリ・Web API ドキュメントの翻訳ページ:jsTreeドキュメント日本語訳

jQuery,Library & PlugIn & AddIn | 2015-10-28 (水) 14:21:48 |

plugin -> iG:Syntax Hiliter カスタマイズ 2015-09-01

Posted by muchag | Library & PlugIn & AddIn,WordPress | 2015-09-01 (火) 16:52:52

iG:Syntax Hiliter をカスタマイズ その3。
数日前、WordPress 本体のヴァージョンアップのお知らせがきており、それに合わせて更新したら
iG:Syntax Hiliter も更新のお知らせがきたので、更新してみた。
そうしたら、表示が大分変わってしまった・・・ので、再挑戦~。

前回記事

【環境】
WordPress:4.3
iG:Syntax Hiliter:5.0
GeSHi:1.0.8.11
独自タグの追加
ハイライト設定ファイルへの紐付け

独自に設定したショートタグをプラグインに認識させる方法。

plugins/igsyntax-hiliter/classes/frontend.php
  1. /**
  2.  * @var Array Contains file names for GeSHi language files associated with expected tag names
  3.  */
  4. protected $__geshi_language = array(
  5.     'as' => 'actionscript',
  6.     'html' => 'html4strict',
  7.     'js' => 'javascript',
  8.     'evba' => 'vbnet',        ← 追加した独自タグ
  9. );

このように記述してやることで、独自に設定したショートタグから

plugins/igsyntax-hiliter/geshi

にある、各言語ハイライト設定ファイルへと紐付けることができる。

言語表示文字列への紐付け

独自に設定したショートタグを任意の文字列にて表示させる方法。

plugins/igsyntax-hiliter/classes/frontend.php
  1. /**
  2.  * @var Array Contains display names for some languages, like C# for csharp, VB.NET for vbnet
  3.  */
  4. protected $__geshi_language_display = array(
  5.     'cpp'         => 'C++',
  6.     'cfm'         => 'Cold Fusion',
  7.     'csharp'      => 'C#',
  8.     'vbnet'       => 'VB.NET',
  9.     'as'          => 'ActionScript',
  10.     'c_mac'       => 'CMac',
  11.     'html'        => 'HTML',
  12.     'html4strict' => 'HTML4',
  13.     'evba'        => 'Excel VBA',
  14. );
外観

今回の CSS ファイルは圧縮してあるので
行番号はなし。

全体
幅とマージン
plugins\igsyntax-hiliter\assets\css\front-end.css
  1. .syntax_hilite {
  2. background:#FFFFFF;
  3. width:98%;
  4. margin:10px 0px 20px 0px;
  5. border:1px solid #CCCCCC;
  6. border-left:none;
  7. border-right:none
  8. }
コード部
文字サイズ
plugins\igsyntax-hiliter\assets\css\front-end.css
  1. .syntax_hilite ol,.syntax_hilite .pre {
  2. width:90%;
  3. line-height:1.5em;
  4. margin-bottom:0px;
  5. padding-top:5px;
  6. font-size:1.25em
  7. }

全体幅を調節したせいか、こちらの幅を狭めておかないと
ハイライト行がはみ出す。

plugins\igsyntax-hiliter\assets\css\front-end.css
  1. .syntax_hilite ol,.syntax_hilite .pre {
  2. width:90%;
  3. line-height:1.5em;
  4. margin-bottom:0px;
  5. padding-top:5px;
  6. font-size:1.25em
  7. }
ツールバー
文字サイズ
plugins\igsyntax-hiliter\assets\css\front-end.css
  1. .syntax_hilite .toolbar {
  2. width:97.5%;
  3. margin:0px 0px 10px 0px;
  4. padding:5px 10px 5px 4px;
  5. background:#EEEEEE;
  6. font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
  7. font-size:1em;
  8. color:#555555
  9. }
Library & PlugIn & AddIn,WordPress | 2015-09-01 (火) 16:52:52 |

Add-on -> FireQuery

Posted by muchag | Firefox,Library & PlugIn & AddIn | 2015-04-04 (土) 13:38:49

Firefoxデバッグツール。
Firebug の拡張みたい。
Firebug がないと動作しないとのこと。

【環境】
Firebug:2.0.8
Firefox:36.0.4
インストール

Firefox Add-ons:FireQuery

参考サイト

THE HAM MEDIA BLOG:Firebugを活用しよう!jQueryの動作チェックに最適な『FireQuery』

Firefox,Library & PlugIn & AddIn | 2015-04-04 (土) 13:38:49 |

Add-on -> Firebug

Posted by muchag | Firefox,Library & PlugIn & AddIn | 2015-04-04 (土) 13:25:30

Firefoxデバッグツール。

【環境】
Firebug:2.0.8
Firefox:36.0.4
インストール

Firefox Add-ons:Firebug

設定
オプション

ツールボタンバーのバグボタンから、オプションを設定できる。

レジストリ?

Windows のレジストリキー操作のイメージ。
実際、「これを触ると危ないじょ!気をつけてね!」メッセージが表示される。

フォントサイズ

extensions.firebug.textSize
デフォルトが 1。
試してないけど、あちこち見た感じでは整数値。
小さくする場合は、小数ではなくて負の数っぽい。
 
Firefox のアドレスバーに about:config と入力。
extensions.firebug で始まるキーが Firebug 関連。

ショートカットキー
Ctrl

Ctrl + +:文字拡大(但し、全体を拡大するのでメニューバーなどまで拡大される)
Ctrl + -:文字縮小(但し、全体を縮小するのでメニューバーなどまで縮小される)
Ctrl + 0:文字標準

Function

F12:Firebug の起動、表示、非表示トグル

Firefox,Library & PlugIn & AddIn | 2015-04-04 (土) 13:25:30 |

jquery.combobox.js

Posted by muchag | jQuery,Library & PlugIn & AddIn | 2015-04-03 (金) 10:15:30

選択、入力ともにできるコンポーネントが欲しくて
コンボボックスのやり方を調べてみた。

HTML5 になって、テキストボックスに候補を表示することができるようになったみたいだけど、オートコンプリート機能のためらしく、1文字入れるだけで候補が絞られちゃう。
仕方ないので、JavaScript で実現。
作者の方、ありがとうございます!

DL

SQL の窓:使いどころが難しいですが、入力をコンボボックス化する jQuery プラグインの実装が不便だったので、modify しました。
のリンクから
jquery.combobox.js
style.css
をいただいてきた。

導入

上記プラグインファイルと CSS ファイルを読み込む。

  1. <input type="text" id="hoge" />
  1. $( '#hoge' ).combobox([
  2.     '1',
  3.     '2',
  4.     '3',
  5. ]);

これで終わり!
かんた~ん♪

jQuery,Library & PlugIn & AddIn | 2015-04-03 (金) 10:15:30 |

Highcharts 4.1.4

Posted by muchag | JavaScript,Library & PlugIn & AddIn | 2015-03-30 (月) 14:20:41

歩み値からチャートについて
Flotr2 で頑張ってみたけど
X軸値が日付(タイムスタンプ)のせいか、うまくローソクの幹を描画できなかったので
Highcharts を試してみる。

2016-01-17

バージョンアップが行われたので、念のため新しく書き直し。
新記事:Highcharts 4.2.1

2016-01-17
【環境】
Highcharts 4.1.4
Highstock 2.1.4
Highmaps 1.1.4
導入
ダウンロード

Highcharts:Download
ここにダウンロード用のリンクがある。

Highcharts 4.1.4
Highstock 2.1.4
Highmaps 1.1.4
3種あり、Highstock Demos › Candlestick を見る限りでは
ローソク足を実現するには、Highstock みたい。

オリジナルパッケージ

必要な物だけをパッケージしてくれる
Download builder (experimental)
というものもある。

直リンク

Highcharts へリンクを張るのでもいいみたい。

… or just grab the files directly from code.highcharts.com.

  1. <script src="http://code.highcharts.com/stock/highstock.js"></script>
  2. <script src="http://code.highcharts.com/stock/modules/exporting.js"></script>
書式
  1. $( '#chart_candlestick' ).highcharts( 'StockChart', getOptions() );
基本設定

Highcharts:Options Reference
Highcharts
Highstock
部品説明
Highmaps

navigator

navigator

adaptToUpdatedData

データがアップデートされたときに、ナビゲーターを最適化するか。

これを false にして、リアルタイム更新グラフを作成すると
X軸の表示幅が自動で変更にならないので
グラフは生成されているのに、見えないエリアが出てくる。

デフォルトは true。

plotOptions(描画オプション?)
series
marker

プロットマーカーの表示、非表示。

  1. enabled: false,
turboThreshold

データ個数最大値。
デフォルトが 1000。
0 で無制限。

PILOG:Highcharts JSは1000件を超えるデータはプロットできません。デフォルトでは。

xAxis(X軸)

xAxis

gridLineWidth

0 に設定すると、縦のグリッド線は引かれない。

minRange

X軸ズームの最低値。

range

X軸値の表示幅?

識別子
日時
識別子 内容
%Y 西暦:4桁
%y
%m 月:2桁(0Full)
%b 月:英語3桁
%d 日:2桁(0Full)
%e
%H 時:2桁(0Full)
%M 分:2桁(0Full)
%S 秒:2桁(0Full)
%L ミリ秒:3桁(0Full)
JavaScript,Library & PlugIn & AddIn | 2015-03-30 (月) 14:20:41 |

Flotr2 -> ローソク足(CandleStick)

Posted by muchag | JavaScript,Library & PlugIn & AddIn | 2015-03-28 (土) 19:00:47

歩み値からチャート推移を再現しようとして
このプラグインに当たった。

【環境】
Flotr2:バージョン不明
導入

Flotr2:Basic Candle
ここからサンプルソースをコピペ。

書式
  1. Flotr.draw(
  2.     target,
  3.     [data],
  4.     [options],
  5. )
target(描画対象)

チャートを描画するエレメントを指定。

  1. var target = document.getElementById( "chart_candlestick" );
  2.  
  3. var target = $( "#chart_candlestick" ); // jQuery 形式だとうまくいかない

jQuery 形式だとうまくいかない。
なぜかしらね~。

data(データ)
書式
  1. var data = [
  2.     [ X軸値, 始値, 高値, 安値, 終値 ],
  3.     [ X軸値, 始値, 高値, 安値, 終値 ],
  4.     ・・・
  5. ];
options(設定)

GitHub:flotr2.js

基本設定

1600行目辺りから基本設定。

  1. Flotr.defaultOptions = {
  2.     colors: ['#00A8F0', '#C0D800', '#CB4B4B', '#4DA74D', '#9440ED'], //=> The default colorscheme. When there are > 5 series, additional colors are generated.
  3.     ieBackgroundColor: '#FFFFFF', // Background color for excanvas clipping
  4.     title: null, // => The graph's title
  5.     subtitle: null, // => The graph's subtitle
  6.     shadowSize: 4, // => size of the 'fake' shadow
  7.     defaultType: null, // => default series type
  8.     HtmlText: true, // => wether to draw the text using HTML or on the canvas
  9.     fontColor: '#545454', // => default font color
  10.     fontSize: 7.5, // => canvas' text font size
  11.     resolution: 1, // => resolution of the graph, to have printer-friendly graphs !
  12.     parseFloat: true, // => whether to preprocess data for floats (ie. if input is string)
  13.     preventDefault: true, // => preventDefault by default for mobile events. Turn off to enable scroll.
  14.     xaxis: {
  15.         ticks: null, // => format: either [1, 3] or [[1, 'a'], 3]
  16.         minorTicks: null, // => format: either [1, 3] or [[1, 'a'], 3]
  17.         showLabels: true, // => setting to true will show the axis ticks labels, hide otherwise
  18.         showMinorLabels: false,// => true to show the axis minor ticks labels, false to hide
  19.         labelsAngle: 0, // => labels' angle, in degrees
  20.         title: null, // => axis title
  21.         titleAngle: 0, // => axis title's angle, in degrees
  22.         noTicks: 5, // => number of ticks for automagically generated ticks
  23.         minorTickFreq: null, // => number of minor ticks between major ticks for autogenerated ticks
  24.         tickFormatter: Flotr.defaultTickFormatter, // => fn: number, Object -> string
  25.         tickDecimals: null, // => no. of decimals, null means auto
  26.         min: null, // => min. value to show, null means set automatically
  27.         max: null, // => max. value to show, null means set automatically
  28.         autoscale: false, // => Turns autoscaling on with true
  29.         autoscaleMargin: 0, // => margin in % to add if auto-setting min/max
  30.         color: null, // => color of the ticks
  31.         mode: 'normal', // => can be 'time' or 'normal'
  32.         timeFormat: null,
  33.         timeMode:'UTC', // => For UTC time ('local' for local time).
  34.         timeUnit:'millisecond',// => Unit for time (millisecond, second, minute, hour, day, month, year)
  35.         scaling: 'linear', // => Scaling, can be 'linear' or 'logarithmic'
  36.         base: Math.E,
  37.         titleAlign: 'center',
  38.         margin: true // => Turn off margins with false
  39.     },
  40.     x2axis: {},
  41.     yaxis: {
  42.         ticks: null, // => format: either [1, 3] or [[1, 'a'], 3]
  43.         minorTicks: null, // => format: either [1, 3] or [[1, 'a'], 3]
  44.         showLabels: true, // => setting to true will show the axis ticks labels, hide otherwise
  45.         showMinorLabels: false,// => true to show the axis minor ticks labels, false to hide
  46.         labelsAngle: 0, // => labels' angle, in degrees
  47.         title: null, // => axis title
  48.         titleAngle: 90, // => axis title's angle, in degrees
  49.         noTicks: 5, // => number of ticks for automagically generated ticks
  50.         minorTickFreq: null, // => number of minor ticks between major ticks for autogenerated ticks
  51.         tickFormatter: Flotr.defaultTickFormatter, // => fn: number, Object -> string
  52.         tickDecimals: null, // => no. of decimals, null means auto
  53.         min: null, // => min. value to show, null means set automatically
  54.         max: null, // => max. value to show, null means set automatically
  55.         autoscale: false, // => Turns autoscaling on with true
  56.         autoscaleMargin: 0, // => margin in % to add if auto-setting min/max
  57.         color: null, // => The color of the ticks
  58.         scaling: 'linear', // => Scaling, can be 'linear' or 'logarithmic'
  59.         base: Math.E,
  60.         titleAlign: 'center',
  61.         margin: true // => Turn off margins with false
  62.     },
  63.     y2axis: {
  64.         titleAngle: 270
  65.     },
  66.     grid: {
  67.         color: '#545454', // => primary color used for outline and labels
  68.         backgroundColor: null, // => null for transparent, else color
  69.         backgroundImage: null, // => background image. String or object with src, left and top
  70.         watermarkAlpha: 0.4, // =>
  71.         tickColor: '#DDDDDD', // => color used for the ticks
  72.         labelMargin: 3, // => margin in pixels
  73.         verticalLines: true, // => whether to show gridlines in vertical direction
  74.         minorVerticalLines: null, // => whether to show gridlines for minor ticks in vertical dir.
  75.         horizontalLines: true, // => whether to show gridlines in horizontal direction
  76.         minorHorizontalLines: null, // => whether to show gridlines for minor ticks in horizontal dir.
  77.         outlineWidth: 1, // => width of the grid outline/border in pixels
  78.         outline : 'nsew', // => walls of the outline to display
  79.         circular: false // => if set to true, the grid will be circular, must be used when radars are drawn
  80.     },
  81.     mouse: {
  82.         track: false, // => true to track the mouse, no tracking otherwise
  83.         trackAll: false,
  84.         position: 'se', // => position of the value box (default south-east). False disables.
  85.         relative: false, // => next to the mouse cursor
  86.         trackFormatter: Flotr.defaultTrackFormatter, // => formats the values in the value box
  87.         margin: 5, // => margin in pixels of the valuebox
  88.         lineColor: '#FF3F19', // => line color of points that are drawn when mouse comes near a value of a series
  89.         trackDecimals: 1, // => decimals for the track values
  90.         sensibility: 2, // => the lower this number, the more precise you have to aim to show a value
  91.         trackY: true, // => whether or not to track the mouse in the y axis
  92.         radius: 3, // => radius of the track point
  93.         fillColor: null, // => color to fill our select bar with only applies to bar and similar graphs (only bars for now)
  94.         fillOpacity: 0.4 // => opacity of the fill color, set to 1 for a solid fill, 0 hides the fill
  95.     }
  96. };
ieBackgroundColor(チャート背景色)

だと思うんだけど、変更しても変わらない。

xaxis(X軸)
mode

‘normal’ か ‘time’。

‘time’ を設定することで、日付や時刻をX軸値に設定できる。
ただし、X軸値はタイムスタンプで設定。
それも、文字列ではなく、数値として設定。
正:[ 1427241960000, 始値, 高値, 安値, 終値 ]
誤:[ ‘1427241960000’, 始値, 高値, 安値, 終値 ]

値自動変換機能がある割には、これは変換してくれない。

noTicks

どうも横幅に対して値が少ない時に、補助の軸線を何分割で引くか
という設定みたい。
1 にすると、どんなに項目間が広くても、補助線なしになる。

tickFormatter

項目値のフォーマット。
関数でも指定できるみたい。
でも、まだ使い方がよくわからない。

  1. tickFormatter: function(x){
  2.     var x = parseInt(x);
  3.     var myDate = new Date(x*1000);
  4.     var string = myDate.getFullYear();
  5.     string = string + "-" + myDate.getMonth() + "-" + myDate.getDate();
  6.     result = string;
  7.     return string;
  8. }

stackoverflow:Putting timestamp onto x axis in Flotr2 line graph

tickDecimals

小数点以下の桁数。
0 で整数表示。

timeFormat

日付のフォーマット。

  1. %h: hours
  2. %H: hours (left-padded with a zero)
  3. %M: minutes (left-padded with a zero)
  4. %S: seconds (left-padded with a zero)
  5. %d: day of month (1-31), use %0d for zero-padding
  6. %m: month (1-12), use %0m for zero-padding
  7. %y: year (four digits)
  8. %b: month name (customizable)
  9. %p: am/pm, additionally switches %h/%H to 12 hour instead of 24
  10. %P: AM/PM (uppercase version of %p)

stackoverflow:Putting timestamp onto x axis in Flotr2 line graph

timeformat “%y/<br>%m” 日時ラベルの書式。htmlタグ使える。

k16’s note:時系列データのグラフをjQueryとFlotで描く

timeMode

‘UTC’ か ‘local’。

固有設定

4200行目辺りからローソク足グラフ専用設定。

  1. options: {
  2.     show: false, // => setting to true will show candle sticks, false will hide
  3.     lineWidth: 1, // => in pixels
  4.     wickLineWidth: 1, // => in pixels
  5.     candleWidth: 0.6, // => in units of the x axis
  6.     fill: true, // => true to fill the area from the line to the x axis, false for (transparent) no fill
  7.     upFillColor: '#00A8F0',// => up sticks fill color
  8.     downFillColor: '#CB4B4B',// => down sticks fill color
  9.     fillOpacity: 0.5, // => opacity of the fill color, set to 1 for a solid fill, 0 hides the fill
  10.     barcharts: false // => draw as barcharts (not standard bars but financial barcharts)
  11. },
candles
wickLineWidth

ひげの線の太さ。

candleWidth

塗りグラフ部分の太さ。
どうもひげの線からどのくらい太くする? という設定みたい。

fillOpacity

塗りグラフの中をどの程度塗るか。
透明度のイメージ。
0(塗らない)→ 1(ベタ塗り)まで。

JavaScript,Library & PlugIn & AddIn | 2015-03-28 (土) 19:00:47 |

Flotr2

Posted by muchag | JavaScript,Library & PlugIn & AddIn | 2015-03-28 (土) 18:58:13

歩み値からチャート推移を再現しようとして
このプラグインに当たった。

【環境】
Flotr2:バージョン不明

別に Flot というグラフプラグインも存在するので
Flotr2 は、Flot revision 2 なのかしらね。

Flotr2
GitHub:HumbleSoftware/Flotr2

インストール

GItHub:flotr2.min.js
からコピペ。

グラフの種類

いっぱいw
ローソク足(CandleStick)

Flotr2 参照。

基本設定

GitHub:flotr2.js

1600行目辺りから基本設定。

  1. Flotr.defaultOptions = {
  2.     colors: ['#00A8F0', '#C0D800', '#CB4B4B', '#4DA74D', '#9440ED'], //=> The default colorscheme. When there are > 5 series, additional colors are generated.
  3.     ieBackgroundColor: '#FFFFFF', // Background color for excanvas clipping
  4.     title: null, // => The graph's title
  5.     subtitle: null, // => The graph's subtitle
  6.     shadowSize: 4, // => size of the 'fake' shadow
  7.     defaultType: null, // => default series type
  8.     HtmlText: true, // => wether to draw the text using HTML or on the canvas
  9.     fontColor: '#545454', // => default font color
  10.     fontSize: 7.5, // => canvas' text font size
  11.     resolution: 1, // => resolution of the graph, to have printer-friendly graphs !
  12.     parseFloat: true, // => whether to preprocess data for floats (ie. if input is string)
  13.     preventDefault: true, // => preventDefault by default for mobile events. Turn off to enable scroll.
  14.     xaxis: {
  15.         ticks: null, // => format: either [1, 3] or [[1, 'a'], 3]
  16.         minorTicks: null, // => format: either [1, 3] or [[1, 'a'], 3]
  17.         showLabels: true, // => setting to true will show the axis ticks labels, hide otherwise
  18.         showMinorLabels: false,// => true to show the axis minor ticks labels, false to hide
  19.         labelsAngle: 0, // => labels' angle, in degrees
  20.         title: null, // => axis title
  21.         titleAngle: 0, // => axis title's angle, in degrees
  22.         noTicks: 5, // => number of ticks for automagically generated ticks
  23.         minorTickFreq: null, // => number of minor ticks between major ticks for autogenerated ticks
  24.         tickFormatter: Flotr.defaultTickFormatter, // => fn: number, Object -> string
  25.         tickDecimals: null, // => no. of decimals, null means auto
  26.         min: null, // => min. value to show, null means set automatically
  27.         max: null, // => max. value to show, null means set automatically
  28.         autoscale: false, // => Turns autoscaling on with true
  29.         autoscaleMargin: 0, // => margin in % to add if auto-setting min/max
  30.         color: null, // => color of the ticks
  31.         mode: 'normal', // => can be 'time' or 'normal'
  32.         timeFormat: null,
  33.         timeMode:'UTC', // => For UTC time ('local' for local time).
  34.         timeUnit:'millisecond',// => Unit for time (millisecond, second, minute, hour, day, month, year)
  35.         scaling: 'linear', // => Scaling, can be 'linear' or 'logarithmic'
  36.         base: Math.E,
  37.         titleAlign: 'center',
  38.         margin: true // => Turn off margins with false
  39.     },
  40.     x2axis: {},
  41.     yaxis: {
  42.         ticks: null, // => format: either [1, 3] or [[1, 'a'], 3]
  43.         minorTicks: null, // => format: either [1, 3] or [[1, 'a'], 3]
  44.         showLabels: true, // => setting to true will show the axis ticks labels, hide otherwise
  45.         showMinorLabels: false,// => true to show the axis minor ticks labels, false to hide
  46.         labelsAngle: 0, // => labels' angle, in degrees
  47.         title: null, // => axis title
  48.         titleAngle: 90, // => axis title's angle, in degrees
  49.         noTicks: 5, // => number of ticks for automagically generated ticks
  50.         minorTickFreq: null, // => number of minor ticks between major ticks for autogenerated ticks
  51.         tickFormatter: Flotr.defaultTickFormatter, // => fn: number, Object -> string
  52.         tickDecimals: null, // => no. of decimals, null means auto
  53.         min: null, // => min. value to show, null means set automatically
  54.         max: null, // => max. value to show, null means set automatically
  55.         autoscale: false, // => Turns autoscaling on with true
  56.         autoscaleMargin: 0, // => margin in % to add if auto-setting min/max
  57.         color: null, // => The color of the ticks
  58.         scaling: 'linear', // => Scaling, can be 'linear' or 'logarithmic'
  59.         base: Math.E,
  60.         titleAlign: 'center',
  61.         margin: true // => Turn off margins with false
  62.     },
  63.     y2axis: {
  64.         titleAngle: 270
  65.     },
  66.     grid: {
  67.         color: '#545454', // => primary color used for outline and labels
  68.         backgroundColor: null, // => null for transparent, else color
  69.         backgroundImage: null, // => background image. String or object with src, left and top
  70.         watermarkAlpha: 0.4, // =>
  71.         tickColor: '#DDDDDD', // => color used for the ticks
  72.         labelMargin: 3, // => margin in pixels
  73.         verticalLines: true, // => whether to show gridlines in vertical direction
  74.         minorVerticalLines: null, // => whether to show gridlines for minor ticks in vertical dir.
  75.         horizontalLines: true, // => whether to show gridlines in horizontal direction
  76.         minorHorizontalLines: null, // => whether to show gridlines for minor ticks in horizontal dir.
  77.         outlineWidth: 1, // => width of the grid outline/border in pixels
  78.         outline : 'nsew', // => walls of the outline to display
  79.         circular: false // => if set to true, the grid will be circular, must be used when radars are drawn
  80.     },
  81.     mouse: {
  82.         track: false, // => true to track the mouse, no tracking otherwise
  83.         trackAll: false,
  84.         position: 'se', // => position of the value box (default south-east). False disables.
  85.         relative: false, // => next to the mouse cursor
  86.         trackFormatter: Flotr.defaultTrackFormatter, // => formats the values in the value box
  87.         margin: 5, // => margin in pixels of the valuebox
  88.         lineColor: '#FF3F19', // => line color of points that are drawn when mouse comes near a value of a series
  89.         trackDecimals: 1, // => decimals for the track values
  90.         sensibility: 2, // => the lower this number, the more precise you have to aim to show a value
  91.         trackY: true, // => whether or not to track the mouse in the y axis
  92.         radius: 3, // => radius of the track point
  93.         fillColor: null, // => color to fill our select bar with only applies to bar and similar graphs (only bars for now)
  94.         fillOpacity: 0.4 // => opacity of the fill color, set to 1 for a solid fill, 0 hides the fill
  95.     }
  96. };
ieBackgroundColor(チャート背景色)

だと思うんだけど、変更しても変わらない。

xaxis(X軸)
mode

‘normal’ か ‘time’。

‘time’ を設定することで、日付や時刻をX軸値に設定できる。
ただし、X軸値はタイムスタンプで設定。
それも、文字列ではなく、数値として設定。
正:[ 1427241960000, 始値, 高値, 安値, 終値 ]
誤:[ ‘1427241960000’, 始値, 高値, 安値, 終値 ]

値自動変換機能がある割には、これは変換してくれない。

noTicks

どうも横幅に対して値が少ない時に、補助の軸線を何分割で引くか
という設定みたい。
1 にすると、どんなに項目間が広くても、補助線なしになる。

tickFormatter

項目値のフォーマット。
関数でも指定できるみたい。
でも、まだ使い方がよくわからない。

  1. tickFormatter: function(x){
  2.     var x = parseInt(x);
  3.     var myDate = new Date(x*1000);
  4.     var string = myDate.getFullYear();
  5.     string = string + "-" + myDate.getMonth() + "-" + myDate.getDate();
  6.     result = string;
  7.     return string;
  8. }

stackoverflow:Putting timestamp onto x axis in Flotr2 line graph

tickDecimals

小数点以下の桁数。
0 で整数表示。

timeFormat

日付のフォーマット。

  1. %h: hours
  2. %H: hours (left-padded with a zero)
  3. %M: minutes (left-padded with a zero)
  4. %S: seconds (left-padded with a zero)
  5. %d: day of month (1-31), use %0d for zero-padding
  6. %m: month (1-12), use %0m for zero-padding
  7. %y: year (four digits)
  8. %b: month name (customizable)
  9. %p: am/pm, additionally switches %h/%H to 12 hour instead of 24
  10. %P: AM/PM (uppercase version of %p)

stackoverflow:Putting timestamp onto x axis in Flotr2 line graph

timeformat “%y/<br>%m” 日時ラベルの書式。htmlタグ使える。

k16’s note:時系列データのグラフをjQueryとFlotで描く

timeMode

‘UTC’ か ‘local’。

JavaScript,Library & PlugIn & AddIn | 2015-03-28 (土) 18:58:13 |

Moment の isValid() が機能しない

Posted by muchag | JavaScript,Library & PlugIn & AddIn,困ったTT | 2015-03-28 (土) 18:29:11

【環境】
moment:2.9.0

Moment.js
Moment.js Documentation

現象

公式ドキュメント:Moment.js Documentation

  1. moment("2010 13",           "YYYY MM").isValid();     // false (not a real month)

こう書いてあるけど、月を3ケタにすると通っちゃう。

しかも挙動がマチマチ。

  1. // 根本的にフォーマットが違っているパターン
  2. moment( '2010 12', 'YYYY-MM' ).isValid() // true
  3. var date = moment( $( '#month' ).val() );
  4. var datem = date.format( 'YYYY-MM' ).toString(); // datem -> Invalid Date
  5.  
  6. moment( '2010 99', 'YYYY-MM' ).isValid() // false
  7.  
  8. moment( '2010 100', 'YYYY-MM' ).isValid() // true
  9. var date = moment( $( '#month' ).val() );
  10. var datem = date.format( 'YYYY-MM' ).toString(); // datem -> Invalid Date
  11.  
  12. moment( '2010 129', 'YYYY-MM' ).isValid() // true
  13. var date = moment( $( '#month' ).val() );
  14. var datem = date.format( 'YYYY-MM' ).toString(); // datem -> Invalid Date
  15.  
  16. moment( '2010 130', 'YYYY-MM' ).isValid() // false
  17.  
  18. // フォーマットは正しいパターン
  19. moment( '2010-100', 'YYYY-MM' ).isValid() // true
  20. var date = moment( $( '#month' ).val() );
  21. var datem = date.format( 'YYYY-MM' ).toString(); // datem -> 2010-04
  22. var datem = date.format( 'YYYY-MM-DD' ).toString(); // datem -> 2010-04-10
  23.  
  24. moment( '2010-101', 'YYYY-MM' ).isValid() // true
  25. var date = moment( $( '#month' ).val() );
  26. var datem = date.format( 'YYYY-MM' ).toString(); // datem -> 2010-04
  27. var datem = date.format( 'YYYY-MM-DD' ).toString(); // datem -> 2010-04-11
  28.  
  29. moment( '2010-129', 'YYYY-MM' ).isValid() // true
  30. var date = moment( $( '#month' ).val() );
  31. var datem = date.format( 'YYYY-MM' ).toString(); // datem -> 2010-05
  32. var datem = date.format( 'YYYY-MM-DD' ).toString(); // datem -> 2010-05-09
  33.  
  34. moment( '2010-130', 'YYYY-MM' ).isValid() // false

上記実験結果をまとめると

  • 2ケタ月は 13~99 について false
  • 3ケタ月は 100~129 について true、130~ false
  • フォーマットが異なっているときは、moment オブジェクトとしては認めても、Invalid Date
  • フォーマットが合っているときは、YYYY-DDD として、元日からの総合日数で年月日を算出している模様
    ただし、130日以降は NG

面白くていくつか実験してみたけど、解決策があるので、この辺で。
 

解決策

というか正しい書式。

  1. moment('It is 2012-05-25', 'YYYY-MM-DD').isValid();       // true
  2. moment('It is 2012-05-25', 'YYYY-MM-DD', true).isValid(); // false
  3. moment('2012-05-25',       'YYYY-MM-DD', true).isValid(); // true

第3引数に true を入れると「真面目に」チェックしてくれるみたい。 😎
今のところは正常にバリデーションしてくれてます。

と思ったら嘘だった

と、思ったら、次の日、鯖に上げてみたら true が機能しない。
そして、あれ?っと思ってローカルで再び試したら機能していない。
???
むぅ。。。

困った
JavaScript,Library & PlugIn & AddIn,困ったTT | 2015-03-28 (土) 18:29:11 |
« 前ページへ次ページへ »