2016年2月15日月曜日

GeoExt3-dev 9 - Feature Grid Example 2

9-2 JavaScript ファイルの作成
「grid.js(9-geoext3.js)」は、マップを表示するための JavaScript ファイルです。

「9-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])
 */
 'Ext.container.Container',
 /** Ext.container.Container
  * Base class for any Ext.Component that may contain other 
  * Components. Containers handle the basic behavior of 
  * containing items, namely adding, inserting and removing 
  * items.
  * The most commonly used Container classes are 
  * Ext.panel.Panel, Ext.window.Window and Ext.tab.Panel. 
  * If you do not need the capabilities offered by the 
  * aforementioned classes you can create a lightweight 
  * Container to be encapsulated by an HTML element to your 
  * specifications by using the autoEl config option.
  * 他の Component を含むことができる任意の Ext.Component の
  * 基本クラス。コンテナ(Container)は、items(アイテム)を
  * 含む基本的な動作、すなわち、items(アイテム)を追加、挿入、
  * 削除すること、を処理します。
  * 最も一般的に使用される Container クラスは Ext.panel.Panel、
  * Ext.window.Window と Ext.tab.Panel です。上記のクラスに
  * よって提供される機能が必要ない場合は、autoEl 設定オプショ
  * ンを使用して、にHTML要素によってカプセル化される軽量のコン
  * テナを独自に作成することができます。
  * (GeoExt doc[w/ext])
  */
 '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])
  */
 'Ext.grid.Panel',
 /** Ext.grid.Pane
  * Grids are an excellent way of showing large amounts of 
  * tabular data on the client side. Essentially a 
  * supercharged <table>, GridPanel makes it easy to fetch, 
  * sort and filter large amounts of data.
  * Grids are composed of two main pieces - a Store full of 
  * data and a set of columns to render.
  * grid(グリッド)は、クライアント側で大量の表データを示すた
  * めの優れた方法です。基本的に過給された <table> は、
  * GridPanelは、大量のデータを簡単にフェッチ、並べ替え、および
  * フィルタリングすることができます。
  * grid は、 2つの主要部品 - データの完全な保存とレンダリング
  * する列のセット - で構成されています。
  * (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.Features',
 /** GeoExt.data.store.Features
  * A data store holding OpenLayers feature objects 
  * (ol.Feature).
  * OpenLayers feature オブジェクトを保持するデータストア
  *  (ol.Feature)。
  * (GeoExt doc[w/ext])
  */
 'GeoExt.grid.column.Symbolizer'
 /** GeoExt.grid.column.Symbolizer
  * An Ext.grid.column.Column pre-configured with a 
  * GeoExt.FeatureRenderer. This can be used to display the 
  * rendering style of a vector feature in a grid column.
  * GeoExt.FeatureRenderer を使用して事前に設定された 
  * Ext.grid.column.Column。これは、グリッドカラムにベクタ
  * フィーチャのレンダリングスタイルを表示するために使用されま
  * す。
  * (GeoExt doc[w/ext])
  */
]);
var olMap, gridWest, gridEast, featStore1, featStore2;
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: 'FeatureGrids',
 /** 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 geojson1 = {
   "type": "FeatureCollection",
   "features": [
    {
     "type": "Feature",
     "properties": {
      "city": "Hamburg",
      "pop": 1700000
     },
     "geometry": {
      "type": "Point",
      "coordinates": [
       10.107421874999998,
       53.527247970102465
      ]
     }
    },
    {
     "type": "Feature",
     "properties": {
      "city": "Frankfurt / Main",
      "pop": 700000
     },
     "geometry": {
      "type": "Point",
      "coordinates": [
       8.76708984375,
       50.064191736659104
      ]
     }
    },
    {
     "type": "Feature",
     "properties": {
      "city": "Berlin",
      "pop": 3500000
     },
     "geometry": {
      "type": "Point",
      "coordinates": [
       13.447265624999998,
       52.53627304145948
      ]
     }
    },
    {
     "type": "Feature",
     "properties": {
      "city": "München",
      "pop": 1400000
     },
     "geometry": {
      "type": "Point",
      "coordinates": [
       11.6455078125,
       48.1367666796927
      ]
     }
    }
   ]
  };
  var geojson2 = {
   "type": "FeatureCollection",
   "features": [
    {
     "type": "Feature",
     "properties": {
      "city": "Dortmund"
     },
     "geometry": {
      "type": "Point",
      "coordinates": [
       7.481689453125,
       51.49506473014368
      ]
     }
    },
    {
     "type": "Feature",
     "properties": {
      "city": "Köln"
     },
     "geometry": {
      "type": "Point",
      "coordinates": [
       6.976318359375,
       50.93073802371819
      ]
     }
    },
    {
     "type": "Feature",
     "properties": {
      "city": "Kaiserslautern"
     },
     "geometry": {
      "type": "Point",
      "coordinates": [
       7.7838134765625,
       49.44670029695474
      ]
     }
    },
    {
     "type": "Feature",
     "properties": {
      "city": "Bonn"
     },
     "geometry": {
      "type": "Point",
      "coordinates": [
       7.102661132812499,
       50.74688365485319
      ]
     }
    },
    {
     "type": "Feature",
     "properties": {
      "city": "Stuttgart"
     },
     "geometry": {
      "type": "Point",
      "coordinates": [
       9.1461181640625,
       48.77429274267509
      ]
     }
    }
   ]
  };
  // style objects
  var blueStyle = new ol.style.Style({
  /** ol.style.Style 
   * Container for vector feature rendering styles. Any 
   * changes made to the style or its children through 
   * set*() methods will not take effect until the 
   * feature or layer that uses the style is re-rendered.
   * ベクタフィーチャがスタイルを描画するためのコンテナ。
   * スタイルや set*() メソッドを通じてその子に加えられた変
   * 更は、スタイルを使用するフィーチャまたはレイヤが再レン
   * ダリングされるまで有効になりません。
   * (ol3 API[説明は Stable Only のチェックを外すと表示])
   */
   image: new ol.style.Circle({
   /** ol.style.Circle
    * Set circle style for vector features.
    * ベクタフィーチャの円のスタイルを設定。(ol3 API)
    */
    radius: 6,
    fill: new ol.style.Fill({
    /** ol.style.Fill 
     * Set fill style for vector features.
     * ベクタフィーチャの塗りつぶしスタイルを設定。
     * (ol3 API[説明は Stable Only のチェックを外すと表示])
     */
     color: '#0099CC'
    }),
    stroke: new ol.style.Stroke({
    /** ol.style.Stroke 
     * Set stroke style for vector features. 
     * Note that the defaults given are the Canvas defaults, 
     * which will be used if option is not defined. 
     * The get functions return whatever was entered 
     * in the options;  they will not return the default.
     * ベクタフィーチャのためのストロークスタイルの設定。
     * デフォルトは、オプションが定義されていない場合に使用さ
     * れる Canvas のデフォルトを与えられることに注意してくだ
     * さい。GET 関数は、オプションで入力されたものはすべて返
     * す。それらはデフォルトを返しません。
     * (ol3 API[説明は Stable Only のチェックを外すと表示])
     */
     color: '#fff',
     width: 2
    })
   })
  });
  var redStyle = new ol.style.Style({
   image: new ol.style.Circle({
    radius: 6,
    fill: new ol.style.Fill({
     color: '#8B0000'
    }),
    stroke: new ol.style.Stroke({
     color: '#fff',
     width: 2
    })
   })
  });
  var selectStyle = new ol.style.Style({
   image: new ol.style.Circle({
    radius: 6,
    fill: new ol.style.Fill({
     color: '#EE0000'
    }),
    stroke: new ol.style.Stroke({
     color: 'gray',
     width: 3
    })
   })
  });
  // create a feature collection in order to put into a 
  // feature store
  //フィーチャストアに置くためにフィーチャコレクションを作成
  //します。
  var vectorSource = new ol.source.Vector({
  /** ol.source.Vector
   * Provides a source of features for vector layers. 
   * Vector features provided by this source are 
   * suitable for editing. See ol.source.VectorTile for 
   * vector data that is optimized for rendering.
   * ベクタレイヤのフィーチャのソースを用意します。このソース
   * が提供するベクタフィーチャは、編集に適しています。レンダ
   * リングのために最適化されたベクタデータの 
   * ol.source.VectorTile を参照してください。(ol3 API)
   */
   features: (new ol.format.GeoJSON()).readFeatures(geojson1, {
   /** ol.format.GeoJSON 
    * Feature format for reading and writing data in the 
    * GeoJSON format.
    * GeoJSON フォーマットのデータを読み書きするためのフィー
    * チャフォーマット。(ol3 API)
    */
   /** readFeatures(source, opt_options)
    * Read all features from a GeoJSON source.
    * Works with both Feature and FeatureCollection 
    * sources. 
    * GeoJSON ソースからすべてのフィーチャを読み取ります。
    * フィーチャとフィーチャコレクションソースの両方で動作し
    * ます。
    * (ol3 API)
    */
    dataProjection: 'EPSG:4326',
    /** dataProjection:
     * Projection of the data we are reading. If not 
     * provided, the projection will be derived from the 
     * data (where possible) or the defaultDataProjection 
     * of the format is assigned (where set). If the 
     * projection can not be derived from the data and if 
     * no defaultDataProjection is set for a format, the 
     * features will not be reprojected.
     * 読み込んでいるデータの投影。提供されていない場合は、
     * 投影は、データ(可能な場合)または、割り当てられた
     * フォーマットの defaultDataProjection (設定されてい
     * る場合)が導き出されます。投影がデータから導き出され
     * ることができない場合、そして、defaultDataProjection 
     * がフォーマットに対して設定されていない場合、フィーチャ
     * は再投影されることはありません。(ol3 API)
     */
    featureProjection: 'EPSG:3857'
    /** featureProjection:
     * Projection of the feature geometries created by the 
     * format reader. If not provided, features will be 
     * returned in the dataProjection.
     * フォーマットリーダによって作成されたフィーチャジオメト
     * リの投影。提供されていない場合、フィーチャは、
     * dataProjection で返されます。(ol3 API)
     */
   })
  });
  var featColl = new ol.Collection(vectorSource.getFeatures());
  /** ol.Collection
   * An expanded version of standard JS Array, adding 
   * convenience methods for manipulation. Add and remove 
   * changes to the Collection trigger a Collection event. 
   * Note that this does not cover changes to the objects 
   * within the Collection; they trigger events on the 
   * appropriate object, not on the Collection as a whole.
   * 標準 JS Array の拡張バージョン、操作のための便利なメソッド
   * を追加します。Collection イベントを Collection トリガへ変
   * 更することを追加、削除します。これは Collection 内のオブ
   * ジェクトへの変更をカバーしていないことに注意してください。
   * それらは適切なオブジェクトにイベントをトリガし、Collection 
   * 全体にはしません。(ol3 API)
   */
  /** getFeatures()
   * Get all features on the source.
   * ソース上の不すべてのフィーチャを取得します。
   * (ol3 API)
   */
  // loading data via into ol source and create a vector 
  // layer to bind a vector layer to a feature store
  // ol.source を経由してデータをロードし、ベクタレイヤを
  // フィーチャストアに結合するためのベクタレイヤを作成します。
  var vectorLayer = new ol.layer.Vector({
  /** ol.layer.Vector
   * Vector data that is rendered client-side.
   * クライアント側で描画されるベクタデータ。(ol3 API)
   */
   source: new ol.source.Vector({
    features: (new ol.format.GeoJSON()).readFeatures(geojson2, {
     dataProjection: 'EPSG:4326',
     featureProjection: 'EPSG:3857'
    })
   }),
   style: redStyle
  });
  olMap = new ol.Map({
   layers: [
    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)
     */
     source: new ol.source.TileWMS({
     /** ol.source.TileWMS
      * Layer source for tile data from WMS servers.
      * WMS サーバからのタイルデータのレイヤソース。
      * (ol3 API)
      */
      url: 'http://ows.terrestris.de/osm-gray/service',
      params: {'LAYERS': 'OSM-WMS', 'TILED': true}
     })
    }),
    vectorLayer
   ],
   view: new ol.View({
    center: ol.proj.fromLonLat([8, 50]),
    /** ol.proj.fromLonLat(coordinate, opt_projection)
     * Transforms a coordinate from longitude/latitude to a 
     * different projection.
     * 緯度/経度座標から異なる投影に変換します。(ol3 API)
     */
    zoom: 5
   })
  });
  // create feature store by passing a feature collection
  // フィーチャコレクションを渡すことによって、フィーチャスト
  // アを作成します。
  featStore1 = Ext.create('GeoExt.data.store.Features', {
  /** 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)
   */
   features: featColl,
   /** features : ol.Collection
    * Initial set of features. Has to be an ol.Collection 
    * object with ol.Feature objects in it.
    * フィーチャの初期セット。その中で ol.Feature オブジェク
    * トと ol.Collection オブジェクトである必要があります。
    * (GeoExt doc[w/ext)
    */
   map: olMap,
   /** map : ol.Map
    * A map object to which a possible layer will be added.
    * 可能なレイヤが追加されるマップオブジェクト。
    * (GeoExt doc[w/ext)
    */
   createLayer: true,
   /** createLayer : Boolean
    * Setting this flag to true will create a vector layer 
    * with the given features and adds it to the given map 
    * (if available).
    * Defaults to: false
    * このフラグを true に設定すると、指定したfフィーチャを備え
    * たベクトルレイヤを作成し、(可能なら)それを指定されたマッ
    * プに追加します。
    * デフォルトは:false。(GeoExt doc[w/ext)
    */
   style: blueStyle
   /** style : ol.Style
    * An OpenLayers 3 style object to style the vector layer 
    * representing the features of this store.
    * このストアのフィーチャを表すベクトルレイヤのスタイルを設定
    * する OpenLayers 3 スタイルオブジェクト。
    * (GeoExt doc[w/ext)
    */
  });
  // create feature store by passing a vector layer
  // ベクタレイヤを通すことによってフィーチャストアを作成
  featStore2 = Ext.create('GeoExt.data.store.Features', {
   layer: vectorLayer,
   /** layer : ol.Layer
    * Initial layer holding features which will be added to 
    * the store.
    * ストアに追加されるフィーチャを保持する初期レイヤ。
    * (GeoExt doc[w/ext)
    */
   map: olMap
  });
  // default feature grid
  gridWest = Ext.create('Ext.grid.Panel', {
  /** Ext.grid.Panel
   * Grids are an excellent way of showing large amounts of 
   * tabular data on the client side. Essentially a 
   * supercharged <table>, GridPanel makes it easy to fetch, 
   * sort and filter large amounts of data.
   * グリッドは、クライアント側で表形式の大量のデータを示すための
   * 優れた方法です。基本的にあふれるほどの <table> に、グリッド
   * パネルは、大量のデータを簡単に読み込み、ソート、および、フィ
   * ルタリングすることができます。
   * (GeoExt doc[w/ext)
   */
   title: 'Feature Grid',
   /** title : String
    * The title text to be used to display in the Panel 
    * Header. Or a config object for a Panel Title. When 
    * a title is specified the Ext.panel.Header will 
    * automatically be created and displayed unless header 
    * is set to false.
    * Panel Header に表示するために使用される title テキスト。
    * または Panel Title のための config オブジェクト。タイト
    * ルが指定されている場合、ヘッダがfalseに設定されていない限 
    * り Ext.panel.Headerが自動的に作成され、表示されます。
    * (GeoExt doc[w/ext)
    */
   border: true,
   /** 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
    * Overrides: Ext.Component.border
    * ゼロ幅の border(境界線)でパネルを描画するため false 
    * を指定します。
    * true として値を残すためには、選択されたテーマ 
    * $panel-border-width を使用します。
    * ネプチューン(Neptune Theme)を使用するか拡張すると
    * き、デフォルトは false です。
    * デフォルトは:true。
    * (GeoExt doc[w/ext)
    */
   region: 'west',
   /** region : "north"/"south"/"east"/"west"/"center"
    * Defines the region inside border layout.
    * ボーダレイアウトの内側の領域を定義します。
    * Possible values:
    * north - Positions component at top.
    * south - Positions component at bottom.
    * east - Positions component at right.
    * west - Positions component at left.
    * center - Positions component at the remaining space. 
    *  There must be a component with region: "center" in 
    *  every border layout.
    *  region でコンポーネント、すべてのボーダレイアウト内の
    *  「center」、が存在する必要があります。
    * (GeoExt doc[w/ext)
    */
   store: featStore1,
   /** store : Ext.data.Store/String/Object
    * The data source to which the grid / tree is bound. 
    * Acceptable values for this property are:
    * grid / tree がバインドされているデータソース。このプロ
    * パティに指定できる値は以下のとおりです。
    * 
    * any Store class / subclass
    * an ID of a store
    * a Store config object. When passing a config you can 
    * specify the store type by alias. Passing a config 
    * object with a store type will dynamically create a 
    * new store of that type when the grid / tree is 
    * instantiated.
    * 設定を渡すときは、エイリアスによって、ストレージタイプを
    * 指定することができます。grid / tree がインスタンス化さ
    * れるときにストアタイプでconfigオブジェクトを渡すと、動
    * 的にそのタイプの新しいストアを作成します。
    * (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)
    */
    {xtype: 'gx_symbolizercolumn', width: 40},
    /** gx_symbolizercolumn
     * Alias for GeoExt.grid.column.Symbolizer.
     * Defaults to: 'gx_symbolizercolumn'
     * (GeoExt doc[w/ext)
     */
    /** GeoExt.grid.column.Symbolizer
     * An Ext.grid.column.Column pre-configured with a 
     * GeoExt.FeatureRenderer. This can be used to display 
     * the rendering style of a vector feature in a grid 
     * column.
     * GeoExt.FeatureRenderer で事前に設定された 
     * Ext.grid.column.Column 。これは、グリッドカラムにベクタ
     * のフィーチャのレンダリングスタイルを表示するために使用で
     * きます。
     * (GeoExt doc[w/ext)
     */
    {text: 'Name', dataIndex: 'city', flex: 1},
    /** 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 : 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)
     */
    {
     text: 'Population',
     dataIndex: 'pop',
     xtype: 'numbercolumn',
     /** numbercolumn(Ext.grid.column.Number)
      * Ext.grid.column.Number
      * A Column definition class which renders a numeric 
      * data field according to a format string.
      * 書式文字列に従って、数値データフィールドをレンダリン
      * グするカラム定義クラス。
      * (GeoExt doc[w/ext)
      */
     format: '0,000',
     /** format : String
      * A formatting string as used by Ext.util.Format.number
      * to format a numeric value for this Column.
      * Defaults to: '0,000.00'
      * このカラムの数値をフォーマットするため 
      * Ext.util.Format.number で使用される書式文字列。
      * デフォルト:「0,000.00」
      * (GeoExt doc[w/ext)
      */
     flex: 1
    }
   ],
   width: 250
   /** 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)
    */
  });
  // feature grid with some selection logic
  gridEast = Ext.create('Ext.grid.Panel', {
   title: 'Feature Grid with selection',
   border: true,
   region: 'east',
   store: featStore2,
   columns: [
    {xtype: 'gx_symbolizercolumn', width: 40},
    {text: 'Name', dataIndex: 'city', flex: 2}
   ],
   width: 250,
   listeners: {
   /** listeners : Object
    * A config object containing one or more event handlers 
    * to be added to this object during initialization. This 
    * should be a valid listeners config object as specified 
    * in the addListener example for attaching multiple 
    * handlers at once.
    * 初期化中にこのオブジェクトに追加される、1つまたは複数の
    * イベントハンドラを含む設定オブジェクト。これは、一度に
    * 複数のハンドラを取り付ける addListener の例で指定され
    * た有効なリスナ設定オブジェクトである必要があります。
    * (GeoExt doc[w/ext)
    */
    'selectionchange': function(grid, selected) {
     // reset all selections
     featStore2.each(function(rec) {
     /**.each( function )
      * Iterate over a jQuery object, executing a function 
      * for each matched element. 
      * 一致する各要素に対して関数を実行し、jQueryオブジェク
      * トを反復処理します。
      * (jQuery[http://api.jquery.com/each/])
      */
      rec.getFeature().setStyle(redStyle);
      /** getFeatures()
       * Get the selected features.
       * 選択されたフィーチャを取得します。
       * Return: Features collection(ol3 API)
       */
      /** setStyle(style)
       * Set the style for the feature. This can be a single 
       * style object, an array of styles, or a function 
       * that takes a resolution and returns an array of 
       * styles. If it is null the feature has no style (a 
       * null style).
       * フィーチャのスタイルを設定します。これは、単一のスタイ
       * ルオブジェクト、スタイルの配列、または解像度をとり、ス
       * タイルの配列を返す関数とすることができます。null の場
       * 合、フィーチャは、スタイルなし(null のスタイル)を持
       * ちます。(ol3 API)
       */
     });
     // highlight grid selection in map
     Ext.each(selected, function(rec) {
     /** each( iterable, fn, [scope], [reverse] ) : Boolean
      * Iterates an array or an iterable value and invoke 
      * the given callback function for each item.
      * 配列または反復可能オブジェクトの値を反復処理し、各項
      * 目に与えられたコールバック関数を呼び出します。
      * (GeoExt doc[w/ext)
      */
      rec.getFeature().setStyle(selectStyle);
     });
    }
   }
  });
  var mapComponent = Ext.create('GeoExt.component.Map', {
   map: olMap
  });
  var mapPanel = Ext.create('Ext.panel.Panel', {
   region: 'center',
   height: 400,
   /** 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)
    */
   layout: 'fit',
   /** layout
    * By default, a lockable grid uses an HBox layout to 
    * arrange the two grids (possibly separated by a 
    * splitter).
    * Using this config it is possible to specify a 
    * different layout to arrange the two grids.
    * Defaults to: 'fit'
    * Overrides: Ext.grid.locking.Lockable.layout 
    * デフォルトでは、ロック可能なグリッドは(おそらくスプリッ
    * タで分離された)2つのグリッドを配置するのHBoxレイアウトを
    * 使用しています。
    * この設定を使用すると、2つのグリッドを配置する別のレイアウ
    * トを指定することが可能です。
    * デフォルト:"fit"
    * オーバーライド:Ext.grid.locking.Lockable.layout
    * (GeoExt doc[w/ext)
    */
   items: [mapComponent]
   /** 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)
    */
  });
  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)
    */
   region: 'south',
   title: 'Description',
   height: 180,
   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)
    */
   autoScroll: true
   /** autoScroll : Booleandeprecated
    * This cfg has been deprected since 5.1.0
    * Use scrollable instead
    */
  });
  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',
   /** 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)
    */
   items: [mapPanel, gridWest, gridEast, description]
  });
 }
});

0 件のコメント: