「tree-legend-simple.js(6-geoext3.js)」は、マップを表示するための JavaScript ファイルです。
「6-geoext3.js」
Ext.require([ /** require( expressions, [fn], [scope] ) * Loads all classes by the given names and all their * direct dependencies; optionally executes the given * callback function when finishes, within the optional * scope. * 指定された名前とそのすべての直接依存によって、すべて * のクラスをロードします。任意の範囲内で、終了するとき * に任意で与えられたコールバック関数を実行します。 * (GeoExt doc[w/ext]) */
'GeoExt.component.Map', /** GeoExt.component.Map * The map component and a panel side by side * map component(マップコンポーネント)とパネルの位置関 * 係(並び)。 * (GeoExt doc[w/ext]) */
'GeoExt.data.store.LayersTree' /** GeoExt.data.store.LayersTree * A store that is synchronized with a * GeoExt.data.store.Layers. It can be used by an * Ext.tree.Panel. * GeoExt.data.store.Layers と同期される store。これは * Ext.tree.Panel によって使用することができます。 * (GeoExt doc[w/ext]) */
]);
/** * A plugin for Ext.grid.column.Column s that overwrites the * internal cellTpl to support legends. * 凡例をサポートするための内部 cellTpl を上書きする * Ext.grid.column.Column s のプラグイン。 */
/** Ext.grid.column.Column * This class specifies the definition for a column inside a * Ext.grid.Panel. It encompasses both the grid header * configuration as well as displaying data within the grid * itself. If the columns configuration is specified, this * column will become a column group and can contain other * columns inside. In general, this class will not be * created directly, rather an array of column * configurations will be passed to the grid: * このクラスは、Ext.grid.Panel内部のカラムの定義を指定します。 * これは、グリッド自体の中に、表示データと同様にグリッドヘッダ * の構成の両方を含みます。カラムの設定が指定されている場合は、 * このカラムはカラムグループになり、内部に他のカラムを含めるこ * とができます。一般的に、カラム構成の配列がグリッドに渡される * よりもこのクラスは直接作成されません。 * (GeoExt doc[w/ext]) */
Ext.define('BasicTreeColumnLegends', {
/** define( className, data, [createdFn] ) : Ext.Base
* Defines a class or override.
* クラスを定義、または、上書きします。
* (GeoExt doc[w/ext])
*/
extend: 'Ext.AbstractPlugin', /** extend : String * The parent class that this class extends. * このクラスが拡張する親クラス。 * (GeoExt doc[w/ext]) **/
/** Ext.AbstractPlugin * The AbstractPlugin class is the base class from which * user-implemented plugins should inherit. * AbstractPluginクラスは、ユーザー実装のプラグインが継承する * 基本クラスです。 * (GeoExt doc[w/ext]) */
alias: 'plugin.basic_tree_column_legend', /** alias : String/String[] * List of short aliases for class names. An alias consists * of a namespace and a name concatenated by a period as * <namespace>.<name>. * クラス名の短いエイリアスのリスト。エイリアスは、<namespace> * <name> としてピリオドによって連結された名前空間(namespace) * と名前(name)で構成されます。 * (GeoExt doc[w/ext]) */
/** * @private */
originalCellTpl: Ext.clone(Ext.tree.Column.prototype.cellTpl).join(''),
/** clone( item ) : Object
* Clone simple variables including array, {}-like objects,
* DOM nodes and Date without keeping the old reference. A
* reference for the object itself is returned if it's not
* a direct descendant of Object. For model cloning, see
* Model.copy.
* 古い参照を保持することなく、オブジェクトの様な {} 配列、DOM
* ノードと Date を含む単純変数をクローンします。オブジェクト
* の直接の子孫ではない場合、オブジェクト自体の参照が返されま
* す。モデルクローニングについては、Model.copy を参照してく
* ださい。
* (GeoExt doc[w/ext])
*/
/** Ext.tree.Column * Provides indentation and folder structure markup for a * Tree taking into account depth and position within the * tree hierarchy. * ツリー階層内のアカウントの深さと位置を考慮して Tree のため * のインデントとフォルダ構造のマークアップを提供します。 * (GeoExt doc[w/ext]) */
/** cellTpl : Arrayprivate * (GeoExt doc[w/ext] を参照してください。) */
/** Array.prototype.join() * join() メソッドは、配列のすべての要素を繋いで文字列にします。 * (MDN[https://developer.mozilla.org/ja/docs/Web/ * JavaScript/Reference/Global_Objects/Array/join]) */
/**
* The Xtemplate strings that will be used instead of the
* plain {value} when rendering.
* レンダリング時に plain {value} の代わりに使用される
* XTemplate 文字列。
*/
valueReplacementTpl: [
'{value}',
'<tpl if="this.hasLegend(values.record)"><br />',
'<tpl for="lines">',
'<img src="{parent.blankUrl}"',
' class="{parent.childCls} {parent.elbowCls}-img ',
'{parent.elbowCls}-<tpl if=".">line<tpl else>empty</tpl>"',
' role="presentation"/>',
'</tpl>',
'<img src="{blankUrl}" class="{childCls} x-tree-elbow-img">',
'<img src="{blankUrl}" class="{childCls} x-tree-elbow-img">',
'<img src="{blankUrl}" class="{childCls} x-tree-elbow-img">',
'{[this.getLegendHtml(values.record)]}',
'</tpl>'
],
/** * The context for methods available in the template * テンプレートで使用可能なメソッドのコンテキスト。 */
valueReplacementContext: {
hasLegend: function(rec){
var isChecked = rec.get('checked');
var layer = rec.data;
return isChecked && !(layer instanceof ol.layer.Group);
/** instanceof
* instanceof 演算子は、オブジェクトが自身のプロトタイプに
* コンストラクタの prototype プロパティを持っているかを確
* 認します。
* (MDN[https://developer.mozilla.org/ja/docs/JavaScript/
* Reference/Operators/instanceof])
*/
},
getLegendHtml: function(rec){
var layer = rec.data;
var legendUrl = layer.get('legendUrl');
if (!legendUrl) {
legendUrl = "http://geoext.github.io/geoext2/" +
"website-resources/img/GeoExt-logo.png";
}
return '<img class="legend" src="' + legendUrl + '" height="32" />';
}
},
init: function(column){
var me = this;
if(!(column instanceof Ext.grid.column.Column)) {
Ext.log.warn("Plugin shall only be applied to instances of" +
" Ext.grid.column.Column");
/** Ext.log( [options], [message] )
* Logs a message. If a console is present it will be
* used. On Opera, the method "opera.postError" is called.
* In other cases, the message is logged to an array
* "Ext.log.out". An attached debugger can watch this
* array and view the log. The log buffer is limited to a
* maximum of "Ext.log.max" entries (defaults to 250).
* メッセージをログに記録します。コンソールが存在する場合、そ
* れが使用されます。Opera では、メソッド「opera.postError」
* と呼ばれています。他の例では、メッセージは配列
* 「Ext.log.out」に記録されます。添付デバッガはこの配列をみ
* て、ログを表示することができます。ログバッファは
* 「Ext.log.max」のエントリ(デフォルトは 250)の最大値に制
* 限されています。
* (GeoExt doc[w/ext])
*/
return; }
var valuePlaceHolderRegExp = /\{value\}/g;
var replacementTpl = me.valueReplacementTpl.join('');
var newCellTpl = me.originalCellTpl.replace( /** String.prototype.replace() * replace() メソッドは、pattern にマッチした文字列の一部ま * たは全てを replacement で置き換えた新しい文字列を返します。 * pattern は文字列または RegExp、replacement は文字列また * は各マッチで呼び出される関数です。 * str.replace(pattern, replacement[, flags]) * (MDN[https://developer.mozilla.org/ja/docs/Web/ * JavaScript/Reference/Global_Objects/String/replace]) */
valuePlaceHolderRegExp, replacementTpl ); column.cellTpl = [ newCellTpl, me.valueReplacementContext ]; } });
var mapComponent, mapPanel, treePanel, treePanel2;
Ext.application({
/** Ext.app.Application
* Represents an Ext JS application, which is typically
* a single page app using a Viewport.
* An application consists of one or more Views. The
* behavior of a View is managed by its corresponding
* ViewController and ViewModel.
* Global activities are coordinated by Controllers
* which are ultimately instantiated by an instance
* of this (or a derived) class.
* 通常、ビューポートを使用して1つのページの app である
* ExtJS アプリケーションを表します。
* アプリケーションは、1つまたは複数の View で構成されて
* います。View の動作は、その対応する ViewController
* と ViewModel によって管理されます。
* グローバルな動作は、このインスタンス(または派生)
* クラスで最終的にインスタンス化されている Controller
* によって調整されます。(GeoExt doc[w/ext])
*/
name: 'LegendTrees', /** name : String * The name of your application. This will also be the * namespace for your views, controllers models and * stores. Don't use spaces or special characters in * the name. Application name is mandatory. * アプリケーションの名前。これはまた、views、controllers * models と stores の名前空間になります。name には * スペースや特殊文字を使用しないでください。アプリケー * ション名は必須です。初期値は、''。 * (GeoExt doc[w/ext]) */
launch: function(){
/** launch( profile ) : Booleantemplate
* Called automatically when the page has completely
* loaded. This is an empty function that should be
* overridden by each application that needs to take
* action on page load.
* ページが完全にロードされたときに自動的に呼び出されます。
* これは、ページのロード時にアクションを実行する必要があ
* る各アプリケーションによって上書きされなければならない
* 空の関数です。(GeoExt doc[w/ext])
*/
var source1, source2, source3, layer1, layer2, layer3, layer4, group, olMap, treeStore, treeStore2;
source1 = new ol.source.MapQuest({layer: 'sat'});
/** ol.source.MapQuest
* Layer source for the MapQuest tile server.
* MapQuest タイルサーバのレイヤソース。(ol3 API
* 2 - ol3ex 23b - MapQuest example 2 参照)
*/
layer1 = new ol.layer.Tile({
/** ol.layer.Tile
* For layer sources that provide pre-rendered, tiled
* images in grids that are organized by zoom levels
* for specific resolutions.
* プリレンダリング(事前描画)を提供するレイヤソースの
* ための、特定の解像度でのズームレベルによって編成され
* ているグリッドのタイルイメージ。(ol3 API)
*/
legendUrl: 'https://otile4-s.mqcdn.com/tiles/1.0.0/sat/4/4/7.jpg', source: source1, name: 'MapQuest Satellite' });
source2 = new ol.source.MapQuest({layer: 'osm'});
layer2 = new ol.layer.Tile({
legendUrl: 'https://otile4-s.mqcdn.com/tiles/1.0.0/osm/4/4/7.jpg',
source: source2,
name: 'MapQuest OSM'
});
source3 = new ol.source.MapQuest({layer: 'hyb'});
layer3 = new ol.layer.Tile({
legendUrl: 'https://otile4-s.mqcdn.com/tiles/1.0.0/hyb/4/4/7.jpg',
source: source3,
name: 'MapQuest Hybrid'
});
layer4 = new ol.layer.Vector({
/** ol.layer.Vector
* Vector data that is rendered client-side.
* クライアント側で描画されたベクタデータ。(ol3 API)
*/
source: new ol.source.Vector(),
/** ol.source.Vector
* Provides a source of features for vector layers.
* ベクタレイヤのフィーチャのソースを用意します。(ol3 API)
*/
name: 'Vector ' });
group = new ol.layer.Group({
/** ol.layer.Group
* A ol.Collection of layers that are handled together.
* A generic change event is triggered when the
* group/Collection changes.
* 同時に扱うレイヤの ol.Collection
* 一般的な change イベントは、グループ/コレクションを変更
* するときトリガされます。(ol3 API)
*/
layers: [layer1, layer2]
});
olMap = new ol.Map({
layers: [group, layer3, layer4],
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
mapComponent = Ext.create('GeoExt.component.Map', {
/** create( [name], [args] ) : Object
* Instantiate a class by either full name, alias or
* alternate name.
* If Ext.Loader is enabled and the class has not been
* defined yet, it will attempt to load the class via
* synchronous loading.
* 完全な名前、別名または代替名のいずれかによってクラスを
* インスタンス化します。
* Ext.Loader が有効になっており、クラスがまだ定義されて
* いない場合は、同期ロードを経由してクラスをロードしよう
* とします。(GeoExt doc[w/ext)
*/
map: olMap });
mapPanel = Ext.create('Ext.panel.Panel', {
/** Ext.panel.Panel
* Panel is a container that has specific functionality
* and structural components that make it the perfect
* building block for application-oriented user interfaces.
* Panels are, by virtue of their inheritance from
* Ext.container.Container, capable of being configured
* with a layout, and containing child Components.
* パネルは、特定の機能とそれアプリケーション指向のユーザ
* インターフェイスに最適なビルディングブロックにする構造
* 的要素を持っているコンテナです。パネルは、
* Ext.container.Container からの継承のおかげで、layout
* で構成し、子コンポーネントを含むことができます。
* (GeoExt doc[w/ext])
*/
region: 'center',
/** region : "north"/"south"/"east"/"west"/"center"
* Defines the region inside border layout.
* ボーダレイアウトの内側の領域を定義します。
* (GeoExt doc[w/ext)
*/
layout: 'fit',
/** layout : Ext.enums.Layout/Object
* Important: In order for child items to be correctly
* sized and positioned, typically a layout manager must
* be specified through the layout configuration option.
* The sizing and positioning of child items is the
* responsibility of the Container's layout manager
* which creates and manages the type of layout you have
* in mind.
* 重要:子アイテムが正しいサイズと配置されるためには、
* 一般的にレイアウトマネージャは、layout configuration
* option(レイアウト設定オプション)を使用して指定する
* 必要があります。
* 子アイテムのサイズと位置は、レイアウトの種類を管理す
* るContainer's layout manager(コンテナレイアウトマ
* ネージャ)の役割です。
* (GeoExt doc[w/ext)
*/
border: false,
/** border : Boolean
* Specify as false to render the Panel with zero width
* borders.
* Leaving the value as true uses the selected theme's
* $panel-border-width.
* Defaults to false when using or extending Neptune.
* Defaults to: true.
* ゼロ幅の border(境界線)でパネルを描画するため false
* を指定します。
* true として値を残すためには、選択されたテーマ
* $panel-border-width を使用します。
* ネプチューン(Neptune Theme)を使用するか拡張すると
* き、デフォルトは false です。
* デフォルトは:true。
* (GeoExt doc[w/ext)
*/
items: [mapComponent]
/** items : Object/Object[]
* A single item, or an array of child Components to be
* added to this container
* Unless configured with a layout, a Container simply
* renders child Components serially into its
* encapsulating element and performs no sizing or
* positioning upon them.
* 単一の item(アイテム)、または子 Compornents(コン
* ポーネント)の配列は、このコンテナに追加します。
* layout(レイアウト)で構成されていない限り、Container
* (コンテナ)は単に、子 Compornents(コンポーネント)
* をそのカプセル化要素に直列にレンダリングし、それらに
* サイズや位置調整も実行しません。
* (GeoExt doc[w/ext)
*/
});
treeStore = Ext.create('GeoExt.data.store.LayersTree', {
layerGroup: olMap.getLayerGroup()
/** layerGroup : ol.layer.Group
* The ol.layer.Group that the tree is derived from.
* tree が派生された ol.layer.Group。
* (GeoExt doc[w/ext)
*/
/** getLayerGroup()
* Get the layergroup associated with this map.
* このマップ(map)に関連付けられている layergroup を取得し
* ます。(ol3 API)
*/
});
treePanel = Ext.create('Ext.tree.Panel', {
/** Ext.tree.Panel
* The TreePanel provides tree-structured UI
* representation of tree-structured data. A TreePanel
* must be bound to a Ext.data.TreeStore.
* TreePanels support multiple columns through the columns
* configuration.
* By default a TreePanel contains a single column which
* uses the text Field of the store's nodes.
* TreePanel は、ツリー構造データのツリー構造 UI 表現を提供
* します。 TreePanel は Ext.data.TreeStore にバインドする
* 必要があります。
* TreePanel は、カラム設定を使用して複数のカラムをサポート
* しています。
* デフォルトでは TreePanel はストアノードのテキストフィール
* ドを使用して単一のカラムを含んでいます。
* (GeoExt doc[w/ext)
*/
title: 'Legends in tree panel',
/** title : String
* The title text to be used to display in the Panel
* Header. Or a config object for a Panel Title.
* Panel Header に表示するために使用される title テキ
* スト。または Panel Title のための config オブジェ
* クト。(GeoExt doc[w/ext)
*/
store: treeStore,
/** store : Ext.data.TreeStore required
* The Store the tree should use as its data source.
* Overrides: Ext.panel.Table.store
* tree がそのデータソースとして使用する Store。
* (GeoExt doc[w/ext)
*/
border: false,
rootVisible: false,
/** rootVisible : Boolean
* False to hide the root node.
* Note that trees always have a root node. If you do not
* specify a root node, one will be created.
* If the root node is not visible, then in order for a
* tree to appear to the end user, the root node is
* autoloaded with its child nodes.
* Defaults to: true
* ルートノードを非表示にする場合は False。
* ツリーは常にルートノードを持っていることに注意してくださ
* い。ルートノードを指定しない場合、1つ作成されます。
* ルートノードが表示されていない場合、ツリーがエンドユーザに
* 表示されるようにするために、ルートノードは、その子ノードと
* 共に自動的にロードされます。
* デフォルトは:true。
* (GeoExt doc[w/ext)
*/
hideHeaders: true,
/** hideHeaders : Boolean
* True to hide the headers.
* Overrides: Ext.panel.Table.hideHeaders
* ヘッダを非表示にするには true。
* 上書きは、Ext.panel.Table.hideHeaders。
* (GeoExt doc[w/ext)
*/
lines: false,
/** lines : Boolean
* False to disable tree lines.
* Defaults to: true
* ツリーラインを無効にする場合は false。
* デフォルトは:true。
* (GeoExt doc[w/ext)
*/
flex: 1,
/** flex : Number
* Flex may be applied to child items of a box layout
* (vbox or hbox). Each child item with a flex property
* will fill space (horizontally in hbox, vertically in
* vbox) according to that item's relative flex value
* compared to the sum of all items with a flex value
* specified.
* Any child items that have either a flex of 0 or
* undefined will not be 'flexed' (the initial size will
* not be changed).
* flex(フレックス)は、ボックスレイアウト(VBOX または
* hbox)の子 item(アイテム)に適用することができます。flex
* プロパティを持つそれぞれの子 item は、指定された flex 値
* を持つすべての item の合計と比べ、その item の相対的な
* flex 値に応じて(VBOX に垂直方向、hbox に水平方向)スペー
* スを埋めます。
* 0 flex または、未定義のいずれかを持っている任意の子 item
* は、「(ウィンドウに合わせて)伸縮」されることはありません
* (初期サイズは変更されません)。
* (GeoExt doc[w/ext)
*/
columns: {
/** columns : Ext.grid.column.Column[]/Object
* An array of column definition objects which define all
* columns that appear in this grid. Each column
* definition provides the header text for the column,
* and a definition of where the data for that column
* comes from.
* This can also be a configuration object for a
* HeaderContainer which may override certain default
* configurations if necessary. For example, the special
* layout may be overridden to use a simpler layout, or
* one can set default values shared by all columns:
* このグリッドに表示されるすべてのカラムを定義するカラム定義
* オブジェクトの配列。各カラム定義は、カラムに対してヘッダー
* テキスト、およびそのカラムのデータの発生場所の定義を提供し
* ます。
* これは、必要に応じて、特定のデフォルト設定を上書きすること
* ができる HeaderContainer ための設定オブジェクトにすること
* もできます。例えば、特殊なレイアウト(layout)が簡単なレイ
* アウトを使用するために上書きすることができ、または、すべて
* のカラムによって共有されるデフォルト値を設定することができ
* ます。
* (GeoExt doc[w/ext)
*/
header: false,
/** header : Boolean/Object
* Pass as false to prevent a Header from being created
* and shown.
* Pass as a config object (optionally containing an
* xtype) to custom-configure this Panel's header.
* See Ext.panel.Header for all the options that may be
* specified here.
* A panel header is a Ext.container.Container which
* contains the Panel's title and tools. You may also
* configure the Panel's header option with its own
* child items which go before the tools
* By default the panel title is inserted after items
* configured in this config, but before any tools. To
* insert the title at any point in the full array,
* specify the titlePosition config:
* 作成され、表示されることからヘッダを防ぐために false とし
* て渡します。
* カスタム構成のこの Panel ヘッダに設定オブジェクト(オプ
* ション xtype を含む)として渡します。
* ここで指定することができるすべてのオプションに対する
* Ext.panel.Header を参照してください。
* パネル・ヘッダは、Panel のタイトルやツールを含む
* Ext.container.Container です。また、ツールの前に動作する
* その子アイテム(item)で Panel のヘッダオプションを設定す
* ることもできます。
* デフォルトでは、パネルタイトル(panel title)は、この設
* 定で構成されたアイテム(item)の後に挿入されますが、すべ
* てのツールの前です。完全な配列のすべての点でタイトル
* (title)を挿入するには、titlePosition 設定を指定します。
* (GeoExt doc[w/ext)
*/
items: [
{
xtype: 'treecolumn',
/** xtype : Ext.enums.Widget
* Note: Only applies to Ext.Component derived classes
* when used as a config in Ext.define.
* This property provides a shorter alternative to
* creating objects than using a full class name.
* Using xtype is the most common way to define
* component instances, especially in a container.
* 注:Ext.define で設定として使用された場合、派生クラス
* を Ext.Component にのみ適用されます。
* このプロパティは、完全なクラス名を使用するよりも、オブ
* ジェクトを作成する短い代替手段を提供します。 xtype を
* 使用することは、特にコンテナで、コンポーネントのインス
* タンスを定義する最も一般的な方法です。
* (GeoExt doc[w/ext])
*/
/** treecolumn
* Ext.tree.Column の エイリアス。
*/
dataIndex: 'text',
/** dataIndex : String
* The name of the field in the grid's
* Ext.data.Store's Ext.data.Model definition from
* which to draw the column's value. Required.
* グリッドのExt.data.Store.のカラムの値を描画する
* Ext.data.Model 定義内のフィールド名。必須。
* (GeoExt doc[w/ext])
*/
flex: 1,
plugins: [
/** plugins : Ext.plugin.Abstract[]/
* Ext.plugin.Abstract/Object[]/Object/
* Ext.enums.Plugin[]/Ext.enums.Plugin
* An array of plugins to be added to this component.
* Can also be just a single plugin instead of array.
* Plugins provide custom functionality for a
* component.
* The only requirement for a valid plugin is that it
* contain an init method that accepts a reference of
* type Ext.Component. When a component is created, if
* any plugins are available, the component will call
* the init method on each plugin, passing a reference
* to itself. Each plugin can then call methods or
* respond to events on the component as needed to
* provide its functionality.
* このコンポーネントに追加されるプラグインの配列。配列の
* 代わりに1つだけのプラグインにすることもできます。
* プラグインは、コンポーネントのカスタム機能を提供します。
* 有効なプラグインの唯一の要件は、それが参照型
* Ext.Component を受け入れる init メソッドが含まれてい
* ることです。コンポーネントが作成されると、任意のプラグ
* インが利用可能である場合、コンポーネントは、それ自身へ
* の参照を渡し、各プラグインに init メソッドを呼び出しま
* す。各プラグインは、その後、メソッドを呼び出したり、そ
* の機能を提供するために、必要に応じてコンポーネント上の
* イベントに応答することができます。
* (GeoExt doc[w/ext)
*/
{
ptype: 'basic_tree_column_legend'
/** ptype:
* プラグインのエイリアス。
*/
}
]
}
]
}
});
treeStore2 = Ext.create('GeoExt.data.store.LayersTree', {
layerGroup: olMap.getLayerGroup()
});
treePanel2 = Ext.create('Ext.tree.Panel', {
title: 'treePanel',
store: treeStore2,
rootVisible: false,
border: false,
flex: 1,
hideHeaders: true,
lines: false,
features: [{
/** features : Ext.grid.feature.Feature[]/Object[]/
* Ext.enums.Feature[]
* An array of grid Features to be added to this grid.
* Can also be just a single feature instead of array.
* このグリッドに追加されるグリッド Feature の配列。配列の代
* わりに、1つだけの feature にすることもできます。
* (GeoExt doc[w/ext)
*/
ftype: 'rowbody',
/** ftype:
* feature のエイリアス。
*/
/** rowbody
* Ext.grid.feature.RowBody のエイリアス。
* Ext.grid.feature.RowBody
* The rowbody feature enhances the grid's markup to
* have an additional tr -> td -> div which spans
* the entire width of the original row.
* This is useful to to associate additional information
* with a particular record in a grid.
* Rowbodies are initially hidden unless you override
* setupRowData.
* Will expose additional events on the gridview with
* the prefix of 'rowbody'. For example: 'rowbodyclick',
* 'rowbodydblclick', 'rowbodycontextmenu'.
* rowbody feature は、元の行の幅全体に及ぶ追加の tr ->
* td -> div を持つグリッドのマークアップを強化します。
* これは、グリッド内の特定のレコードに追加情報を関連付け
* るのに有用です。
* setupRowData を上書きしない限り Rowbodiesは、最初は隠
* されています。
* 'rowbody'の接頭辞を持つ gridview に関し て追加のイベン
* トを公開します。 たとえば:'rowbodyclick'、
* ' rowbodydbclick'、'rowbodycontextmenu' です。
* (GeoExt doc[w/ext)
*/
setupRowData: function(rec, rowIndex, rowValues) {
/** setupRowData( record, idx, rowValues )private
* Parameters
* record : Object, idx : Object, rowValues : Object
*/
var headerCt = this.view.headerCt,
colspan = headerCt.getColumnCount(),
/** getColumnCount( )
* Returns the number of grid columns descended from
* this HeaderContainer. Group Columns are
* HeaderContainers. All grid columns are returned,
* including hidden ones.
* この HeaderContainer からの子グリッドカラムの数を返しま
* す。グループカラム(Group Column)は HeaderContainers
* です。すべてのグリッドカラムが非表示のものも含めて、返さ
* れます。
* (GeoExt doc[w/ext)
*/
isChecked = rec.get('checked'),
layer = rec.data,
GrpClass = ol.layer.Group,
hasLegend = isChecked && !(layer instanceof GrpClass),
legendUrl = hasLegend && layer.get('legendUrl'),
legHtml = "";
if (!legendUrl) {
legendUrl = "http://geoext.github.io/geoext2/" +
"website-resources/img/GeoExt-logo.png";
}
legHtml = '<img class="legend" src="' + legendUrl +
'" height="32" />';
//Usually you would style the my-body-class in CSS file
//通常、css ファイルに my-body-class をスタイル設定します。
Ext.apply(rowValues, {
/** Ext.apply ( object, config, [defaults] ) : Object
* Copies all the properties of config to the specified
* object.
* すべての設定のプロパティを指定されたオブジェクトにコピー
* します。
* (GeoExt doc[w/ext)
*/
/** rowValues
* Private properties used during the row and cell
* render process. They are allocated here on the
* prototype, and cleared/re-used to avoid GC churn
* during repeated rendering.
* 行とセルがプロセスをレンダリングする間に使用されるプライ
* ベートプロパティ。それらはプロトタイプでここに割り当てら
* れ、レンダリングを繰り返す間、GC churn を回避するために
* 削除/再使用されます。
* (GeoExt doc[w/ext)
*/
rowBody: hasLegend ? legHtml : "",
/** 条件演算子 condition ? expr1 : expr2
* condition: true か false かを評価する条件文です。
* expr1, expr2: 各々の値の場合に実行する式です。
* condition が true の場合、演算子は expr1 の値を選択し
* ます。そうでない場合は expr2 の値を選択します。
* (MDN[https://developer.mozilla.org/ja/docs/Web/
* JavaScript/Guide/Expressions_and_Operators])
*/
rowBodyCls: "my-body-class",
/** rowBodyCls:String
* Defaults to: Ext.baseCSSPrefix + 'grid-row-body'
* (GeoExt doc[w/ext)
* baseCSSPrefix : String
* The base prefix to use for all Ext components.
* すべての Ext コンポーネントに使用するベースプレフィッ
* クス。
*/
rowBodyColspan: colspan
});
}
}]
});
var description = Ext.create('Ext.panel.Panel', {
contentEl: 'description',
/** contentEl : String
* Specify an existing HTML element, or the id of an
* existing HTML element to use as the content for this
* component.
* This config option is used to take an existing HTML
* element and place it in the layout element of a new
* component (it simply moves the specified DOM element
* after the Component is rendered to use as the content.
* 既存のHTMLエレメントを指定するか、既存のHTMLエレメン
* トの id は、このコンポーネントのコンテンツとして使用
* します。
* Component(コンポーネント)が 、content(コンテンツ)
* として使用するためにレンダリングされた後に、この設定オ
* プションは、既存のHTMLエレメントを取得し、新しい
* component(コンポーネント)の layout(レイアウト)エレ
* メントでそれを配置するために使用されます(それは単に指定
* された DOM エレメントを移動させます)。
* (GeoExt doc[w/ext)
*/
title: 'Description',
height: 200,
/** height : Number|String
* The height of this component. A numeric value will be
* interpreted as the number of pixels; a string value
* will be treated as a CSS value with units.
* このコンポーネントの高さ。数値は、ピクセル数として解釈さ
* れます。文字列値が単位で CSS 値として扱われます。
* (GeoExt doc[w/ext)
*/
border: false,
bodyPadding: 5
/** bodyPadding : Number/String
* A shortcut for setting a padding style on the body
* element. The value can either be a number to be
* applied to all sides, or a normal css string
* describing padding.
* bodyエレメントにパディングスタイルを設定するための
* ショートカット。値は、すべての側面に適用される数字、
* または通常のCSSの文字列記述パディングのいずれかにで
* きます。
* (GeoExt doc[w/ext)
*/
});
Ext.create('Ext.Viewport', {
/** Ext.Viewport (Ext.container.Viewport)
* A specialized container representing the viewable
* application area (the browser viewport).
* The Viewport renders itself to the document body,
* and automatically sizes itself to the size of the
* browser viewport and manages window resizing. There
* may only be one Viewport created in a page.
* 表示可能なアプリケーション領域(ブラウザのビューポート)
* を表す特殊なコンテナ。
* Viewport は、document body にそれ自身をレンダリングし、
* 自動的に自身のサイズをブラウザのビューポートのサイズにし、
* ウィンドウのサイズ変更を管理します。1ページに作成した
* ビューポートは一つだけ設定できます。
* (GeoExt doc[w/ext])
*/
layout: "border",
items: [
mapPanel,
{
xtype: 'panel',
region: 'west',
width: 400,
/** width : Number|String
* The width of this component. A numeric value will be
* interpreted as the number of pixels; a string value
* will be treated as a CSS value with units.
* このコンポーネントの幅。数値は、ピクセル数として解釈さ
* れます。文字列値が単位で CSS 値として扱われます。
* (GeoExt doc[w/ext)
*/
layout: {
/** layout [Specify as an Object]
* type
* The layout type to be used for this container. If
* not specified, a default Ext.layout.container.Auto
* will be created and used.
* Valid layout type values are listed in
* Ext.enums.Layout. Layout specific configuration
* properties Additional layout specific configuration
* properties may also be specified. For complete
* details regarding the valid config options for each
* layout type, see the layout class corresponding to
* the type specified.
* type(タイプ)
* layout type(レイアウトタイプ)は、この container(コン
* テナ)に使用されます。
* 指定しない場合、デフォルトの Ext.layout.container.Auto
* が作成および使用されます。
* 有効な layout type の値は Ext.enums.Layout に記載され
* ています。
* layout(レイアウト)固有の設定プロパティー
* 追加の layout 固有の構成プロパティを指定することもでき
* ます。各 layout type に有効な設定オプションに関する詳
* 細については、指定された type に対応する layout クラス
* を参照してください。(GeoExt doc[w/ext])
*/
type: 'vbox',
align: 'stretch'
},
items: [
treePanel,
description,
treePanel2
]
}
]
});
}
});


0 件のコメント:
コメントを投稿